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
@@ -1,784 +1,522 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FactoryInitialValue = exports.testIndex = exports.testZonedDateTime = exports.testPlainDateTime = exports.testPlainDate = exports.testDate = exports.factories = void 0;
4
- exports.newTestInstance = newTestInstance;
5
- exports.defaultValue = defaultValue;
6
- exports.noValue = noValue;
7
- exports.maybeBranchValue = maybeBranchValue;
8
- exports.maybeNew = maybeNew;
9
- exports.maybeNewPoly = maybeNewPoly;
10
- exports.getTestIndex = getTestIndex;
11
- exports.setFactoryLogging = setFactoryLogging;
12
- exports.isFactoryCreation = isFactoryCreation;
13
- exports.resetFactoryCreated = resetFactoryCreated;
14
- const joist_utils_1 = require("joist-utils");
15
- const BaseEntity_1 = require("./BaseEntity");
16
- const Entity_1 = require("./Entity");
17
- const EntityManager_1 = require("./EntityManager");
18
- const EntityMetadata_1 = require("./EntityMetadata");
19
- const defaults_1 = require("./defaults");
20
- const FactoryLogger_1 = require("./logging/FactoryLogger");
21
- const temporal_1 = require("./temporal");
22
- const utils_1 = require("./utils");
23
- let logger = undefined;
24
- // Maybe we should scope this per-em, but assuming tests are single-threaded for now
25
- let factoryCreated = new WeakSet();
26
- // The last EntityManager used in a factory call, for the `factories` proxy to resolve entities
1
+ import { maybeRequireTemporal } from "./serde/temporal.js";
2
+ import { assertNever } from "./utils.js";
3
+ import "./typeMap.js";
4
+ import { getBaseAndSelfMetas, getBaseSelfAndSubMetas, getMetadata, isManyToOneField, isOneToOneField } from "./EntityMetadata.js";
5
+ import { hasDefaultValue, setAsyncDefaultsSynchronously } from "./defaults.js";
6
+ import { FactoryLogger } from "./logging/FactoryLogger.js";
7
+ import "./index.js";
8
+ import { isId } from "./EntityManager.js";
9
+ import { isEntity } from "./Entity.js";
10
+ import { getInstanceData } from "./BaseEntity.js";
11
+ import { isPlainObject } from "joist-utils";
12
+ //#region src/newTestInstance.ts
13
+ let logger = void 0;
14
+ let factoryCreated = /* @__PURE__ */ new WeakSet();
27
15
  let lastFactoryEm;
28
16
  const factoryKeyRegex = /^([a-zA-Z]+)(\d+)$/;
29
17
  /**
30
- * A proxy that allows accessing factory-created entities by their factory id.
31
- *
32
- * For example, after creating entities with `as` keys:
33
- *
34
- * ```ts
35
- * newAuthor(em, { books: [{ is: "b#1" }, { is: "b#2", prequel: "b#1" }] });
36
- * const { b1, b2 } = factories;
37
- * ```
38
- *
39
- * The proxy parses property names like `b1` into `b#1` and looks up the entity
40
- * in the most recently used EntityManager.
41
- */
42
- exports.factories = new Proxy(Object.create(null), {
43
- get(_target, prop) {
44
- if (typeof prop !== "string")
45
- return undefined;
46
- const match = prop.match(factoryKeyRegex);
47
- if (!match)
48
- throw new Error(`Invalid id '${prop}', expected 'b1' or 'a2'`);
49
- const [, tag, id] = match;
50
- if (!lastFactoryEm)
51
- throw new Error("No EntityManager available; call a factory like newAuthor(em) first");
52
- const testId = `${tag}#${id}`;
53
- const entity = lastFactoryEm.entities.find((e) => getTestId(lastFactoryEm, e) === testId);
54
- if (!entity)
55
- throw new Error(`No factory entity found for '${testId}'`);
56
- return entity;
57
- },
58
- });
59
- // Chosen b/c it's a monday https://www.timeanddate.com/calendar/monthly.html?year=2018&month=1&country=1
60
- const jan1 = new Date(2018, 0, 1);
61
- exports.testDate = jan1;
62
- const Temporal = (0, temporal_1.maybeRequireTemporal)()?.Temporal;
63
- exports.testPlainDate = Temporal?.PlainDate.from("2018-01-01");
64
- exports.testPlainDateTime = exports.testPlainDate?.toPlainDateTime("00:00:00");
65
- exports.testZonedDateTime = exports.testPlainDate?.toZonedDateTime("UTC");
66
- const knownUseKeys = ["is", "use", "useLogging", "useExistingCheck", "useFactoryDefaults"];
18
+ * A proxy that allows accessing factory-created entities by their factory id.
19
+ *
20
+ * For example, after creating entities with `as` keys:
21
+ *
22
+ * ```ts
23
+ * newAuthor(em, { books: [{ is: "b#1" }, { is: "b#2", prequel: "b#1" }] });
24
+ * const { b1, b2 } = factories;
25
+ * ```
26
+ *
27
+ * The proxy parses property names like `b1` into `b#1` and looks up the entity
28
+ * in the most recently used EntityManager.
29
+ */
30
+ const factories = new Proxy(Object.create(null), { get(_target, prop) {
31
+ if (typeof prop !== "string") return void 0;
32
+ const match = prop.match(factoryKeyRegex);
33
+ if (!match) throw new Error(`Invalid id '${prop}', expected 'b1' or 'a2'`);
34
+ const [, tag, id] = match;
35
+ if (!lastFactoryEm) throw new Error("No EntityManager available; call a factory like newAuthor(em) first");
36
+ const testId = `${tag}#${id}`;
37
+ const entity = lastFactoryEm.entities.find((e) => getTestId(lastFactoryEm, e) === testId);
38
+ if (!entity) throw new Error(`No factory entity found for '${testId}'`);
39
+ return entity;
40
+ } });
41
+ const testDate = new Date(2018, 0, 1);
42
+ const Temporal = maybeRequireTemporal()?.Temporal;
43
+ const testPlainDate = Temporal?.PlainDate.from("2018-01-01");
44
+ const testPlainDateTime = testPlainDate?.toPlainDateTime("00:00:00");
45
+ const testZonedDateTime = testPlainDate?.toZonedDateTime("UTC");
46
+ const knownUseKeys = [
47
+ "is",
48
+ "use",
49
+ "useLogging",
50
+ "useExistingCheck",
51
+ "useFactoryDefaults"
52
+ ];
67
53
  /**
68
- * Creates a test instance of `T`.
69
- *
70
- * If the factory code passes factoryOpts.useExisting, they can "intercept" the `em.create`
71
- * to try and resolve "already created" / singleton instances. The `useExisting` callback is
72
- * useful b/c the `opts` will be the "resolved-to-entity" opts, and not the raw "maybe object
73
- * literal, maybe object instance" opts that tests pass into the factory.
74
- */
75
- function newTestInstance(em, cstr,
76
- /** The test's test-specific override opts. */
77
- testOpts = {},
78
- /** The factory file's default opts. */
79
- factoryOpts = {}) {
80
- // Remember the em so the `factories` proxy can look up entities
81
- lastFactoryEm = em;
82
- // The first factory that is asked to debug, without one in place, will create+unset the logger.
83
- let ownsTheLogger = !logger && testOpts.useLogging;
84
- if (ownsTheLogger)
85
- logger = new FactoryLogger_1.FactoryLogger();
86
- logger?.logCreating(cstr);
87
- logger?.indent();
88
- const meta = (0, EntityMetadata_1.getMetadata)(cstr);
89
- const opts = mergeOpts(meta, testOpts, factoryOpts);
90
- const use = getOrCreateUseMap(opts);
91
- const selfFields = [];
92
- // Create just the primitive and m2o fields 1st, so we can create a minimal/valid
93
- // instance of the entity. We'll do the o2m/other fields as a second pass.
94
- const initialOpts = Object.values(meta.allFields)
95
- .map((field) => {
96
- const { fieldName } = field;
97
- // Don't fill in required fields if told not to
98
- const ignoreAllDefaults = "useFactoryDefaults" in opts && opts.useFactoryDefaults === "none";
99
- // If the field has a default value, don't force fill it, even if passed `author: undefined`
100
- const required = field.required && !ignoreAllDefaults && !(0, defaults_1.hasDefaultValue)(meta, fieldName);
101
- // Use the opts value if they passed one in
102
- if (fieldName in opts && opts[fieldName] !== defaultValueMarker) {
103
- const optValue = opts[fieldName];
104
- // We don't explicitly support null (callers should pass undefined), but we accept it
105
- // because the factory might have done `const { author, ... } = opts` and is accidentally
106
- // passing an `author: undefined` without meaning too.
107
- const shouldRespectUndefined = !required;
108
- if (optValue === null || (optValue === undefined && shouldRespectUndefined)) {
109
- return [];
110
- }
111
- switch (field.kind) {
112
- case "m2o":
113
- case "poly":
114
- return [fieldName, resolveFactoryOpt(em, opts, field, optValue, undefined, undefined)];
115
- case "o2o":
116
- case "o2m":
117
- case "m2m":
118
- // We do these in the 2nd pass after `entity` exists (see additionalOpts)
119
- return [];
120
- case "m2mEnum":
121
- // Enum codes have no entity identity, so pass them straight through.
122
- return [fieldName, optValue];
123
- case "lo2m":
124
- // If a child is passing themselves into a parent that is a large collection, just ignore it
125
- return [];
126
- case "primitive":
127
- case "enum":
128
- case "primaryKey":
129
- // Look for strings that want to use the test index
130
- if (typeof optValue === "string" && optValue.includes(testIndexString)) {
131
- const actualIndex = getTestIndex(em, meta.cstr);
132
- const value = optValue.replace(testIndexString, String(actualIndex));
133
- return [fieldName, value];
134
- }
135
- else if (typeof optValue === "number" && optValue === exports.testIndex) {
136
- const actualIndex = getTestIndex(em, meta.cstr);
137
- return [fieldName, actualIndex];
138
- }
139
- // Otherwise just use the user's opt value as-is
140
- return [fieldName, optValue];
141
- default:
142
- return (0, utils_1.assertNever)(field);
143
- }
144
- }
145
- if (field.kind === "primitive" &&
146
- (required || opts[fieldName] === defaultValueMarker) &&
147
- !field.derived &&
148
- !field.protected) {
149
- return [fieldName, defaultValueForField(em, cstr, field)];
150
- }
151
- else if (field.kind === "m2o" && !field.derived) {
152
- // If neither the user nor the factory (i.e. for an explicit "fan out" case) set this field,
153
- // then look in `use` and for an "obvious" there-is-only-one default (even for optional fields)
154
- const [existing, loggerKey] = getObviousDefault(em, field.otherMetadata(), use);
155
- // If this is a m2o pointing to an o2o, i.e. that as a unique constraint, make sure the
156
- // existing entity we found isn't already claimed
157
- const isUniqueAndAlreadyUsed = existing &&
158
- (0, EntityMetadata_1.isOneToOneField)(field.otherMetadata().allFields[field.otherFieldName]) &&
159
- existing[field.otherFieldName].isLoaded &&
160
- existing[field.otherFieldName].isSet;
161
- if (existing && !isUniqueAndAlreadyUsed && !ignoreAllDefaults) {
162
- logger?.[loggerKey](fieldName, existing);
163
- return [fieldName, existing];
164
- }
165
- // Otherwise, only make a new entity only if the field is required
166
- if (required) {
167
- // ...unless this is a self-referential key, in which case avoid infinite looping.
168
- if (field.otherMetadata() === meta) {
169
- selfFields.push(fieldName);
170
- return [];
171
- }
172
- else {
173
- return [fieldName, resolveFactoryOpt(em, opts, field, undefined, undefined, undefined)];
174
- }
175
- }
176
- }
177
- else if (field.kind === "enum" && required && !field.derived) {
178
- return [fieldName, field.enumDetailType.getValues()[0]];
179
- }
180
- else if (field.kind === "poly" && required) {
181
- return [fieldName, resolveFactoryOpt(em, opts, field, undefined, undefined, undefined)];
182
- }
183
- return [];
184
- })
185
- .filter((t) => t.length > 0);
186
- const createOpts = Object.fromEntries(initialOpts);
187
- if (factoryOpts.useExisting && testOpts.useExistingCheck !== false) {
188
- const existing = em.entities
189
- .filter((e) => e instanceof meta.cstr)
190
- .find((e) => factoryOpts.useExisting(createOpts, e));
191
- if (existing) {
192
- logger?.logFoundExisting(existing);
193
- logger?.dedent();
194
- if (ownsTheLogger)
195
- logger = undefined;
196
- return existing;
197
- }
198
- }
199
- const entity = em.create(cstr, createOpts);
200
- // Verify the `as` assertion if provided
201
- if (opts.is) {
202
- const expected = opts.is;
203
- const actual = getTestId(em, entity);
204
- if (actual !== expected) {
205
- throw new Error(`Test used 'is: ${expected}' but the entity is actually ${actual}`);
206
- }
207
- }
208
- // Report this as factory-created until the next em.flush
209
- factoryCreated.add(entity);
210
- // If the type we just made doesn't exist in `use` yet, remember it. This works better than
211
- // looking at the values in `fullOpts`, because instead of waiting until the end of the
212
- // `build fullOpts` loop, we're also invoking `newTestInstance` as we go through the loop itself,
213
- // creating each test instance within nested/recursive `newTestInstance` calls.
214
- if (!use.has(entity.constructor) || use.get(entity.constructor)[1] === "diffBranch") {
215
- addToUseMap(use, entity, "sameBranch");
216
- }
217
- else {
218
- // The `addToUseMap` does its own 'created & added to scope'
219
- logger?.logCreated(entity);
220
- }
221
- // Now that we've got the entity, do a 2nd pass for o2m/m2m where we pass
222
- // `{ parent: entity }` down to children (i.e. to replace our original
223
- // null marker approach).
224
- const additionalOpts = Object.entries(opts).map(([fieldName, optValue]) => {
225
- const field = meta.allFields[fieldName];
226
- // Look for `use` / etc
227
- if (knownUseKeys.includes(fieldName))
228
- return [];
229
- if (!field) {
230
- // Look for extra/derived fields
231
- if (fieldName.startsWith("with")) {
232
- const realName = fieldName[4].toLowerCase() + fieldName.substring(5);
233
- const realField = meta.allFields[realName];
234
- if (realField && "derived" in realField && realField.derived === "async") {
235
- return [realName, new FactoryInitialValue(optValue)];
236
- }
237
- }
238
- throw new Error(`Unknown field ${fieldName}`);
239
- }
240
- if (optValue === null || optValue === undefined)
241
- return [];
242
- if (field.kind === "o2m") {
243
- // If this is a list of children, i.e. book.authors, handle partials to newTestInstance'd
244
- return [
245
- fieldName,
246
- optValue.map((opt, i) => {
247
- // console.log(`${field.fieldName}`, i);
248
- return resolveFactoryOpt(em, withBranchMap(opts), field, opt, entity, i);
249
- }),
250
- ];
251
- }
252
- else if (field.kind == "m2m") {
253
- return [
254
- fieldName,
255
- optValue.map((opt, i) => resolveFactoryOpt(em, withBranchMap(opts), field, opt, [entity], i)),
256
- ];
257
- }
258
- else if (field.kind === "o2o") {
259
- const otherField = field.otherMetadata().allFields[field.otherFieldName];
260
- const isReactiveReference = "derived" in otherField && otherField.derived === "async";
261
- if (isReactiveReference)
262
- return [];
263
- // If this is an o2o, i.e. author.image, just pass the optValue (i.e. it won't be a list)
264
- return [fieldName, resolveFactoryOpt(em, opts, field, optValue, entity, undefined)];
265
- }
266
- else {
267
- return []; // Assume createOpts handled this
268
- }
269
- });
270
- for (const fieldName of selfFields) {
271
- additionalOpts.push([fieldName, entity]);
272
- }
273
- entity.set(Object.fromEntries(additionalOpts.filter((t) => t.length > 0)));
274
- // em.create applied synchronous defaults automatically; since we're a factory with likely
275
- // deeply-loaded instances, go ahead and synchronously invoke the async defaults, at least
276
- // the ones that just use load hints + a synchronous lambda.
277
- // (...would be nice to log these in the setFactoryLogging output)
278
- (0, defaults_1.setAsyncDefaultsSynchronously)(em.ctx, entity);
279
- // Set it back to undefined
280
- logger?.dedent();
281
- if (ownsTheLogger)
282
- logger = undefined;
283
- return entity;
54
+ * Creates a test instance of `T`.
55
+ *
56
+ * If the factory code passes factoryOpts.useExisting, they can "intercept" the `em.create`
57
+ * to try and resolve "already created" / singleton instances. The `useExisting` callback is
58
+ * useful b/c the `opts` will be the "resolved-to-entity" opts, and not the raw "maybe object
59
+ * literal, maybe object instance" opts that tests pass into the factory.
60
+ */
61
+ function newTestInstance(em, cstr, testOpts = {}, factoryOpts = {}) {
62
+ lastFactoryEm = em;
63
+ let ownsTheLogger = !logger && testOpts.useLogging;
64
+ if (ownsTheLogger) logger = new FactoryLogger();
65
+ logger?.logCreating(cstr);
66
+ logger?.indent();
67
+ const meta = getMetadata(cstr);
68
+ const opts = mergeOpts(meta, testOpts, factoryOpts);
69
+ const use = getOrCreateUseMap(opts);
70
+ const selfFields = [];
71
+ const initialOpts = Object.values(meta.allFields).map((field) => {
72
+ const { fieldName } = field;
73
+ const ignoreAllDefaults = "useFactoryDefaults" in opts && opts.useFactoryDefaults === "none";
74
+ const required = field.required && !ignoreAllDefaults && !hasDefaultValue(meta, fieldName);
75
+ if (fieldName in opts && opts[fieldName] !== defaultValueMarker) {
76
+ const optValue = opts[fieldName];
77
+ if (optValue === null || optValue === void 0 && !required) return [];
78
+ switch (field.kind) {
79
+ case "m2o":
80
+ case "poly": return [fieldName, resolveFactoryOpt(em, opts, field, optValue, void 0, void 0)];
81
+ case "o2o":
82
+ case "o2m":
83
+ case "m2m": return [];
84
+ case "m2mEnum": return [fieldName, optValue];
85
+ case "lo2m": return [];
86
+ case "primitive":
87
+ case "enum":
88
+ case "primaryKey":
89
+ if (typeof optValue === "string" && optValue.includes(testIndexString)) {
90
+ const actualIndex = getTestIndex(em, meta.cstr);
91
+ return [fieldName, optValue.replace(testIndexString, String(actualIndex))];
92
+ } else if (typeof optValue === "number" && optValue === -1111111222) return [fieldName, getTestIndex(em, meta.cstr)];
93
+ return [fieldName, optValue];
94
+ default: return assertNever(field);
95
+ }
96
+ }
97
+ if (field.kind === "primitive" && (required || opts[fieldName] === defaultValueMarker) && !field.derived && !field.protected) return [fieldName, defaultValueForField(em, cstr, field)];
98
+ else if (field.kind === "m2o" && !field.derived) {
99
+ const [existing, loggerKey] = getObviousDefault(em, field.otherMetadata(), use);
100
+ const isUniqueAndAlreadyUsed = existing && isOneToOneField(field.otherMetadata().allFields[field.otherFieldName]) && existing[field.otherFieldName].isLoaded && existing[field.otherFieldName].isSet;
101
+ if (existing && !isUniqueAndAlreadyUsed && !ignoreAllDefaults) {
102
+ logger?.[loggerKey](fieldName, existing);
103
+ return [fieldName, existing];
104
+ }
105
+ if (required) {
106
+ if (field.otherMetadata() === meta) {
107
+ selfFields.push(fieldName);
108
+ return [];
109
+ } else return [fieldName, resolveFactoryOpt(em, opts, field, void 0, void 0, void 0)];
110
+ }
111
+ } else if (field.kind === "enum" && required && !field.derived) return [fieldName, field.enumDetailType.getValues()[0]];
112
+ else if (field.kind === "poly" && required) return [fieldName, resolveFactoryOpt(em, opts, field, void 0, void 0, void 0)];
113
+ return [];
114
+ }).filter((t) => t.length > 0);
115
+ const createOpts = Object.fromEntries(initialOpts);
116
+ if (factoryOpts.useExisting && testOpts.useExistingCheck !== false) {
117
+ const existing = em.entities.filter((e) => e instanceof meta.cstr).find((e) => factoryOpts.useExisting(createOpts, e));
118
+ if (existing) {
119
+ logger?.logFoundExisting(existing);
120
+ logger?.dedent();
121
+ if (ownsTheLogger) logger = void 0;
122
+ return existing;
123
+ }
124
+ }
125
+ const entity = em.create(cstr, createOpts);
126
+ if (opts.is) {
127
+ const expected = opts.is;
128
+ const actual = getTestId(em, entity);
129
+ if (actual !== expected) throw new Error(`Test used 'is: ${expected}' but the entity is actually ${actual}`);
130
+ }
131
+ factoryCreated.add(entity);
132
+ if (!use.has(entity.constructor) || use.get(entity.constructor)[1] === "diffBranch") addToUseMap(use, entity, "sameBranch");
133
+ else logger?.logCreated(entity);
134
+ const additionalOpts = Object.entries(opts).map(([fieldName, optValue]) => {
135
+ const field = meta.allFields[fieldName];
136
+ if (knownUseKeys.includes(fieldName)) return [];
137
+ if (!field) {
138
+ if (fieldName.startsWith("with")) {
139
+ const realName = fieldName[4].toLowerCase() + fieldName.substring(5);
140
+ const realField = meta.allFields[realName];
141
+ if (realField && "derived" in realField && realField.derived === "async") return [realName, new FactoryInitialValue(optValue)];
142
+ }
143
+ throw new Error(`Unknown field ${fieldName}`);
144
+ }
145
+ if (optValue === null || optValue === void 0) return [];
146
+ if (field.kind === "o2m") return [fieldName, optValue.map((opt, i) => {
147
+ return resolveFactoryOpt(em, withBranchMap(opts), field, opt, entity, i);
148
+ })];
149
+ else if (field.kind == "m2m") return [fieldName, optValue.map((opt, i) => resolveFactoryOpt(em, withBranchMap(opts), field, opt, [entity], i))];
150
+ else if (field.kind === "o2o") {
151
+ const otherField = field.otherMetadata().allFields[field.otherFieldName];
152
+ if ("derived" in otherField && otherField.derived === "async") return [];
153
+ return [fieldName, resolveFactoryOpt(em, opts, field, optValue, entity, void 0)];
154
+ } else return [];
155
+ });
156
+ for (const fieldName of selfFields) additionalOpts.push([fieldName, entity]);
157
+ entity.set(Object.fromEntries(additionalOpts.filter((t) => t.length > 0)));
158
+ setAsyncDefaultsSynchronously(em.ctx, entity);
159
+ logger?.dedent();
160
+ if (ownsTheLogger) logger = void 0;
161
+ return entity;
284
162
  }
285
163
  /**
286
- * Resolves a `FactoryEntityOpt` (i.e. maybe an existing entity, maybe an id, maybe a hash of opts) to an entity.
287
- *
288
- * If `opt` is `undefined`, then the usual factory semantics of "check use", "look for only one instance" are
289
- * checked before finally creating a brand new entity.
290
- *
291
- * We also accept an optional `otherFieldName` so that, if we do create a new entity, we pass along the null
292
- * marker for them to know not to create their own version of us.
293
- *
294
- * (This was originally intended to be a public API, but the use case ended up being handled
295
- * by the more-ergonomic `maybeNew` feature; we could explore making this public if another
296
- * similar use case comes up in the future.)
297
- */
164
+ * Resolves a `FactoryEntityOpt` (i.e. maybe an existing entity, maybe an id, maybe a hash of opts) to an entity.
165
+ *
166
+ * If `opt` is `undefined`, then the usual factory semantics of "check use", "look for only one instance" are
167
+ * checked before finally creating a brand new entity.
168
+ *
169
+ * We also accept an optional `otherFieldName` so that, if we do create a new entity, we pass along the null
170
+ * marker for them to know not to create their own version of us.
171
+ *
172
+ * (This was originally intended to be a public API, but the use case ended up being handled
173
+ * by the more-ergonomic `maybeNew` feature; we could explore making this public if another
174
+ * similar use case comes up in the future.)
175
+ */
298
176
  function resolveFactoryOpt(em, opts, field, opt, maybeEntity, fieldIndex) {
299
- const use = getOrCreateUseMap(opts);
300
- const { meta, otherFieldName } = metaFromFieldAndOpt(field, opt);
301
- // const meta = field.kind === "poly" ? field.components[0].otherMetadata() : field.otherMetadata();
302
- // const otherFieldName = field.kind === "poly" ? field.components[0].otherFieldName : field.otherFieldName;
303
- const fieldWithIndex = `${field.fieldName}${fieldIndex !== undefined ? `[${fieldIndex}]` : ""}`;
304
- if ((0, Entity_1.isEntity)(opt)) {
305
- logger?.logFoundOpt(fieldWithIndex, opt);
306
- return opt;
307
- }
308
- else if ((0, EntityManager_1.isId)(opt)) {
309
- // Try finding the entity in the UoW, otherwise fallback on just setting it as the id (which we support that now)
310
- const found = em.entities.find((e) => e.idTaggedMaybe === opt || getTestId(em, e) === opt) || opt;
311
- logger?.logFoundOpt(fieldWithIndex, found);
312
- return found;
313
- }
314
- else if (opt && !(0, joist_utils_1.isPlainObject)(opt) && !(opt instanceof MaybeNew)) {
315
- // If opt isn't a POJO, assume this is a completely-custom factory
316
- logger?.logNotFoundAndCreating(fieldWithIndex, meta);
317
- return meta.factory(em, opt);
318
- }
319
- else {
320
- // Look for an obvious default
321
- if (opt === undefined || opt instanceof MaybeNew) {
322
- if (field.kind === "poly" ||
323
- (field.otherMetadata().subTypes.length > 0 && opt instanceof MaybeNew && opt.polyRefPreferredOrder.length > 0)) {
324
- // We have a polymorphic maybeNew to sort through
325
- const [existing, loggerKey] = (opt instanceof MaybeNew
326
- ? opt.polyRefPreferredOrder.map((cstr) => (0, EntityMetadata_1.getMetadata)(cstr))
327
- : field.kind === "poly"
328
- ? field.components.map((c) => c.otherMetadata())
329
- : [meta])
330
- .map((meta) => getObviousDefault(em, meta, use))
331
- .find((existing) => !!existing[0]) || [undefined, undefined];
332
- if (existing) {
333
- logger?.[loggerKey](fieldWithIndex, existing);
334
- return existing;
335
- }
336
- }
337
- else {
338
- // Otherwise fall though to making a new entity via the factory
339
- const [existing, loggerKey] = getObviousDefault(em, meta, use);
340
- if (existing) {
341
- logger?.[loggerKey](fieldWithIndex, existing);
342
- return existing;
343
- }
344
- }
345
- }
346
- // If this is image.author (m2o) but the other-side is an o2o, pass null instead of []
347
- maybeEntity ??= (meta.allFields[otherFieldName].kind === "o2o" ? null : []);
348
- logger?.logNotFoundAndCreating(fieldWithIndex, meta);
349
- return meta.factory(em, {
350
- // Because of the `!isPlainObject` above, opt will either be undefined or an object here
351
- ...applyUse(opt || {}, use, meta),
352
- ...(opt instanceof MaybeNew && opt.opts),
353
- [otherFieldName]: maybeEntity,
354
- });
355
- }
177
+ const use = getOrCreateUseMap(opts);
178
+ const { meta, otherFieldName } = metaFromFieldAndOpt(field, opt);
179
+ const fieldWithIndex = `${field.fieldName}${fieldIndex !== void 0 ? `[${fieldIndex}]` : ""}`;
180
+ if (isEntity(opt)) {
181
+ logger?.logFoundOpt(fieldWithIndex, opt);
182
+ return opt;
183
+ } else if (isId(opt)) {
184
+ const found = em.entities.find((e) => e.idTaggedMaybe === opt || getTestId(em, e) === opt) || opt;
185
+ logger?.logFoundOpt(fieldWithIndex, found);
186
+ return found;
187
+ } else if (opt && !isPlainObject(opt) && !(opt instanceof MaybeNew)) {
188
+ logger?.logNotFoundAndCreating(fieldWithIndex, meta);
189
+ return meta.factory(em, opt);
190
+ } else {
191
+ if (opt === void 0 || opt instanceof MaybeNew) {
192
+ if (field.kind === "poly" || field.otherMetadata().subTypes.length > 0 && opt instanceof MaybeNew && opt.polyRefPreferredOrder.length > 0) {
193
+ const [existing, loggerKey] = (opt instanceof MaybeNew ? opt.polyRefPreferredOrder.map((cstr) => getMetadata(cstr)) : field.kind === "poly" ? field.components.map((c) => c.otherMetadata()) : [meta]).map((meta) => getObviousDefault(em, meta, use)).find((existing) => !!existing[0]) || [void 0, void 0];
194
+ if (existing) {
195
+ logger?.[loggerKey](fieldWithIndex, existing);
196
+ return existing;
197
+ }
198
+ } else {
199
+ const [existing, loggerKey] = getObviousDefault(em, meta, use);
200
+ if (existing) {
201
+ logger?.[loggerKey](fieldWithIndex, existing);
202
+ return existing;
203
+ }
204
+ }
205
+ }
206
+ maybeEntity ??= meta.allFields[otherFieldName].kind === "o2o" ? null : [];
207
+ logger?.logNotFoundAndCreating(fieldWithIndex, meta);
208
+ return meta.factory(em, {
209
+ ...applyUse(opt || {}, use, meta),
210
+ ...opt instanceof MaybeNew && opt.opts,
211
+ [otherFieldName]: maybeEntity
212
+ });
213
+ }
356
214
  }
357
215
  /** Determines the metadata and otherFieldName to use in resolveFactoryOpt to account for polymorphic fields */
358
216
  function metaFromFieldAndOpt(field, opt) {
359
- if (field.kind === "poly") {
360
- let componentToUse =
361
- // Otherwise, we check if the `opt` specifies a particular component to use, and if not fall back to the first one
362
- field.components.find((component) => opt instanceof MaybeNew &&
363
- (0, EntityMetadata_1.getBaseSelfAndSubMetas)(component.otherMetadata())
364
- .map((m) => m.cstr)
365
- .includes(opt.polyRefPreferredOrder[0])) ?? field.components[0];
366
- return { meta: componentToUse.otherMetadata(), otherFieldName: componentToUse.otherFieldName };
367
- }
368
- else if (field.otherMetadata().subTypes.length > 0 &&
369
- opt instanceof MaybeNew &&
370
- opt.polyRefPreferredOrder.length > 0) {
371
- const otherMeta = field.otherMetadata();
372
- const types = (0, EntityMetadata_1.getBaseSelfAndSubMetas)(otherMeta);
373
- const typeToUse = types.find((subType) => subType.cstr === opt.polyRefPreferredOrder[0]) ?? otherMeta;
374
- return { meta: typeToUse, otherFieldName: field.otherFieldName };
375
- }
376
- else {
377
- // If it isn't a poly field, then the field itself can tell us everything we need to know
378
- return { meta: field.otherMetadata(), otherFieldName: field.otherFieldName };
379
- }
217
+ if (field.kind === "poly") {
218
+ let componentToUse = field.components.find((component) => opt instanceof MaybeNew && getBaseSelfAndSubMetas(component.otherMetadata()).map((m) => m.cstr).includes(opt.polyRefPreferredOrder[0])) ?? field.components[0];
219
+ return {
220
+ meta: componentToUse.otherMetadata(),
221
+ otherFieldName: componentToUse.otherFieldName
222
+ };
223
+ } else if (field.otherMetadata().subTypes.length > 0 && opt instanceof MaybeNew && opt.polyRefPreferredOrder.length > 0) {
224
+ const otherMeta = field.otherMetadata();
225
+ return {
226
+ meta: getBaseSelfAndSubMetas(otherMeta).find((subType) => subType.cstr === opt.polyRefPreferredOrder[0]) ?? otherMeta,
227
+ otherFieldName: field.otherFieldName
228
+ };
229
+ } else return {
230
+ meta: field.otherMetadata(),
231
+ otherFieldName: field.otherFieldName
232
+ };
380
233
  }
381
234
  /** We look for `use`-cached entities, which are either those we created, or had "if-only-one" defaults. */
382
235
  function getObviousDefault(em, metadata, use) {
383
- if (use.has(metadata.cstr)) {
384
- return [use.get(metadata.cstr)[0], "logFoundInUseMap"];
385
- }
386
- // If there is a single existing instance of this type, assume the caller is fine with that.
387
- // ...in theory seeding our `use` map with the only-one entities was supposed to prevent the
388
- // need for doing this (the entities would already be in the use map that we just checked),
389
- // but that approach doesn't catch created-as-side-effect entities.
390
- const existing = em.getEntities(metadata.cstr);
391
- if (existing.length === 1) {
392
- return [existing[0], "logFoundSingleEntity"];
393
- }
394
- return [undefined, undefined];
236
+ if (use.has(metadata.cstr)) return [use.get(metadata.cstr)[0], "logFoundInUseMap"];
237
+ const existing = em.getEntities(metadata.cstr);
238
+ if (existing.length === 1) return [existing[0], "logFoundSingleEntity"];
239
+ return [void 0, void 0];
395
240
  }
396
- // When a factory is called, i.e. `newAuthor`, opts will:
397
- //
398
- // - Have values explicitly passed by the user/other factories
399
- // - Have values from the user's explicit `use` parameter
400
- // - NOT have guessed (i.e. "only existing entity") or an implicitly-created `use` parameter
401
- //
402
- // This allows the factory to "fan out" by default, i.e. newInternalUser creating its own User
403
- // and Market creating its own ProductAttribute, which originally we couldn't do when
404
- // guessed/implicit opts were passed directly to `newAuthor`.
405
- //
406
- // Now, if the `newAuthor` factory doesn't explicitly "fan out" (by passing `user: {}` to
407
- // `newTestInstance`), we still "fan in" by having `newTestInstance` sneak in the guessed/implicit
408
- // opts of only-one-existing or factory-created instances.
409
241
  /** Given we're going to call a factory, make sure any `use`s are put into `opts`. */
410
242
  function applyUse(optsMaybeNew, use, metadata) {
411
- const opts = optsMaybeNew instanceof MaybeNew ? optsMaybeNew.opts : optsMaybeNew;
412
- // Find any unset fields
413
- Object.values(metadata.fields)
414
- .filter((f) => !(f.fieldName in opts))
415
- .forEach((f) => {
416
- // And set them to the current `use` entity for their type, if it exists
417
- if ((((0, EntityMetadata_1.isManyToOneField)(f) && !f.derived) || (0, EntityMetadata_1.isOneToOneField)(f)) && use.has(f.otherMetadata().cstr)) {
418
- const def = use.get(f.otherMetadata().cstr);
419
- // Only pass explicit/user-defined `use` entities, so that factories can "fan out" if they want,
420
- // and not see other factory-created entities look like user-specific values.
421
- if (def[1] === "useOpt") {
422
- opts[f.fieldName] = def[0];
423
- }
424
- }
425
- });
426
- // Make a copy so that we don't leak `use` onto opts that tests might later use in assertions.
427
- return { ...opts, use };
243
+ const opts = optsMaybeNew instanceof MaybeNew ? optsMaybeNew.opts : optsMaybeNew;
244
+ Object.values(metadata.fields).filter((f) => !(f.fieldName in opts)).forEach((f) => {
245
+ if ((isManyToOneField(f) && !f.derived || isOneToOneField(f)) && use.has(f.otherMetadata().cstr)) {
246
+ const def = use.get(f.otherMetadata().cstr);
247
+ if (def[1] === "useOpt") opts[f.fieldName] = def[0];
248
+ }
249
+ });
250
+ return {
251
+ ...opts,
252
+ use
253
+ };
428
254
  }
429
255
  /**
430
- * A marker value for later replacement with the test instance's "unique-ish" index.
431
- *
432
- * This is meant to just be a helpful identifier in fields like entity names/descriptions for
433
- * debugging purposes.
434
- */
435
- exports.testIndex = -1_111_111_222;
436
- const testIndexString = String(exports.testIndex);
256
+ * A marker value for later replacement with the test instance's "unique-ish" index.
257
+ *
258
+ * This is meant to just be a helpful identifier in fields like entity names/descriptions for
259
+ * debugging purposes.
260
+ */
261
+ const testIndex = -1111111222;
262
+ const testIndexString = String(testIndex);
437
263
  const defaultValueMarker = {};
438
264
  const branchValueSym = Symbol("branchValue");
439
265
  /**
440
- * A marker value for the default `newTestInstance` behavior.
441
- *
442
- * Useful for passing arguments to `newTestInstance` where you sometimes want to
443
- * provide a specific value, and other times ask for the "pick a default" behavior
444
- * (i.e. you don't want to pass `undefined` b/c that means explicitly "leave this
445
- * key unset").
446
- *
447
- * Note that this is a function so that we can infer the return type as basically
448
- * `any` without really using `any` (which would disable type-checking in the rest
449
- * of the expression).
450
- */
266
+ * A marker value for the default `newTestInstance` behavior.
267
+ *
268
+ * Useful for passing arguments to `newTestInstance` where you sometimes want to
269
+ * provide a specific value, and other times ask for the "pick a default" behavior
270
+ * (i.e. you don't want to pass `undefined` b/c that means explicitly "leave this
271
+ * key unset").
272
+ *
273
+ * Note that this is a function so that we can infer the return type as basically
274
+ * `any` without really using `any` (which would disable type-checking in the rest
275
+ * of the expression).
276
+ */
451
277
  function defaultValue() {
452
- return defaultValueMarker;
278
+ return defaultValueMarker;
453
279
  }
454
280
  /**
455
- * A marker value to never set a field, even if it's required.
456
- *
457
- * The factories treat `{ author: undefined }` as "still set the author", because of how easy
458
- * it is for destructuring/restructuring opts to implicitly set `undefined` values.
459
- *
460
- * If you want to force a field to not be set, you can use `{ author: noValue() }`.
461
- */
281
+ * A marker value to never set a field, even if it's required.
282
+ *
283
+ * The factories treat `{ author: undefined }` as "still set the author", because of how easy
284
+ * it is for destructuring/restructuring opts to implicitly set `undefined` values.
285
+ *
286
+ * If you want to force a field to not be set, you can use `{ author: noValue() }`.
287
+ */
462
288
  function noValue() {
463
- return null;
289
+ return null;
464
290
  }
465
291
  /**
466
- * A marker value to accept values only if explicitly created-or-passed within the current,
467
- * unique "branch" of a factory call.
468
- *
469
- * This is useful for "diamond-shape" entity models like:
470
- *
471
- * ```
472
- * ParentGroup <-- ParentItem
473
- * | |
474
- * ChildGroup <-- ChildItem
475
- * ```
476
- *
477
- * Where it's important that the `ChildItem -> ParentItem -> ParentGroup` path matches
478
- * the `ChildItem -> ChildGroup -> ParentGroup` path.
479
- *
480
- * This can be hard to achieve in normal factory behavior, i.e. for a call like:
481
- *
482
- * ```ts
483
- * const c = newChild(em, {
484
- * groups: [
485
- * { childItems: [{}, {}] },
486
- * { childItems: [{}, {}] },
487
- * ],
488
- * });
489
- * ```
490
- *
491
- * The first `ChildGroup` will create a new `ParentGroup` that is used by everything, which
492
- * is not our intent, as both `ChildGroup`s, and all four `ParentItem`s, will live in a single
493
- * `ParentGroup`.
494
- *
495
- * An initial idea is to pass `parentGroup: {}` in the factories, because that turns off "reusing
496
- * existing instances", but for this problem the `{}` approach is "too good" at creating new
497
- * instances, b/c the above diamond pattern will be disconnected.
498
- *
499
- * So `branchValue` provides a middle ground, where _usually_ it will be a new entity, unless
500
- * it was explicitly created within the same "branch" of a factory call.
501
- */
292
+ * A marker value to accept values only if explicitly created-or-passed within the current,
293
+ * unique "branch" of a factory call.
294
+ *
295
+ * This is useful for "diamond-shape" entity models like:
296
+ *
297
+ * ```
298
+ * ParentGroup <-- ParentItem
299
+ * | |
300
+ * ChildGroup <-- ChildItem
301
+ * ```
302
+ *
303
+ * Where it's important that the `ChildItem -> ParentItem -> ParentGroup` path matches
304
+ * the `ChildItem -> ChildGroup -> ParentGroup` path.
305
+ *
306
+ * This can be hard to achieve in normal factory behavior, i.e. for a call like:
307
+ *
308
+ * ```ts
309
+ * const c = newChild(em, {
310
+ * groups: [
311
+ * { childItems: [{}, {}] },
312
+ * { childItems: [{}, {}] },
313
+ * ],
314
+ * });
315
+ * ```
316
+ *
317
+ * The first `ChildGroup` will create a new `ParentGroup` that is used by everything, which
318
+ * is not our intent, as both `ChildGroup`s, and all four `ParentItem`s, will live in a single
319
+ * `ParentGroup`.
320
+ *
321
+ * An initial idea is to pass `parentGroup: {}` in the factories, because that turns off "reusing
322
+ * existing instances", but for this problem the `{}` approach is "too good" at creating new
323
+ * instances, b/c the above diamond pattern will be disconnected.
324
+ *
325
+ * So `branchValue` provides a middle ground, where _usually_ it will be a new entity, unless
326
+ * it was explicitly created within the same "branch" of a factory call.
327
+ */
502
328
  function maybeBranchValue(opts) {
503
- // opts get mutated, so we have to return a new value
504
- return { [branchValueSym]: true, ...(opts ? opts : undefined) };
329
+ return {
330
+ [branchValueSym]: true,
331
+ ...opts ? opts : void 0
332
+ };
505
333
  }
506
334
  /**
507
- * Allows a factory to declare that an optional relation should be filled in with an
508
- * "obvious default", or a new entity if one doesn't exist.
509
- *
510
- * This "obvious default or new entity" is what Joist already does for _required_ relations,
511
- * and so `maybeNew` lets the factory tell Joist to apply the same behavior to an optional
512
- * field.
513
- *
514
- * I.e.:
515
- *
516
- * ```typescript
517
- * export function newAuthor(em: Entity, opts: FactoryOpts<Author>) {
518
- * return newTestInstance(em, Author, {
519
- * // this always make a new publisher, unless explicitly overridden by the test,
520
- * // i.e. when each author really needs "their own" publisher.
521
- * publisher: {},
522
- * // this will make a new publisher but first looks for "good defaults" in the
523
- * // test, i.e. an already-created publisher. This is the default behavior of
524
- * // required fields ("look for a good default"), and `maybeNew` lets you tell
525
- * // Joist to invoke that same "maybe new" behavior for an optional field.
526
- * publisher: maybeNew<Publisher>({}),
527
- * ...opts,
528
- * });
529
- * }
530
- * ```
531
- */
335
+ * Allows a factory to declare that an optional relation should be filled in with an
336
+ * "obvious default", or a new entity if one doesn't exist.
337
+ *
338
+ * This "obvious default or new entity" is what Joist already does for _required_ relations,
339
+ * and so `maybeNew` lets the factory tell Joist to apply the same behavior to an optional
340
+ * field.
341
+ *
342
+ * I.e.:
343
+ *
344
+ * ```typescript
345
+ * export function newAuthor(em: Entity, opts: FactoryOpts<Author>) {
346
+ * return newTestInstance(em, Author, {
347
+ * // this always make a new publisher, unless explicitly overridden by the test,
348
+ * // i.e. when each author really needs "their own" publisher.
349
+ * publisher: {},
350
+ * // this will make a new publisher but first looks for "good defaults" in the
351
+ * // test, i.e. an already-created publisher. This is the default behavior of
352
+ * // required fields ("look for a good default"), and `maybeNew` lets you tell
353
+ * // Joist to invoke that same "maybe new" behavior for an optional field.
354
+ * publisher: maybeNew<Publisher>({}),
355
+ * ...opts,
356
+ * });
357
+ * }
358
+ * ```
359
+ */
532
360
  function maybeNew(opts) {
533
- // Return a marker that resolveFactoryOpt will look for
534
- return new MaybeNew((opts || {}));
361
+ return new MaybeNew(opts || {});
535
362
  }
536
363
  /**
537
- * Similar to `maybeNew` in behaviour/use but with enhancements to support polymorphic fields:
538
- * 1) Allows you to specify which entity type to create, if it is found a new one is needed
539
- * 2) Allows you to prioritize which existing entities to select
540
- *
541
- * For example below, we are specifying that an Author should be created if needed (and optionally it's default opts
542
- * in the `ifNewOpts` field), and also that the priority order for choosing existing entities is Author, Book, and then Publisher.
543
- * Note since BookReview is excluded from `existingSearchOrder`, an existing BookReview will never be chosen.
544
- *
545
- * ```typescript
546
- * export function newComment(em: EntityManager, opts: FactoryOpts<Comment> = {}): New<Comment> {
547
- * return newTestInstance(em, Comment, {
548
- * parent: maybeNewPoly<CommentParent, Author>(
549
- * Author, {
550
- * ifNewOpts: { firstName: "optional"},
551
- * existingSearchOrder: [Author, Book, Publisher]
552
- * }),
553
- * ...opts,
554
- * });
555
- * }
556
- * ```
557
- */
364
+ * Similar to `maybeNew` in behaviour/use but with enhancements to support polymorphic fields:
365
+ * 1) Allows you to specify which entity type to create, if it is found a new one is needed
366
+ * 2) Allows you to prioritize which existing entities to select
367
+ *
368
+ * For example below, we are specifying that an Author should be created if needed (and optionally it's default opts
369
+ * in the `ifNewOpts` field), and also that the priority order for choosing existing entities is Author, Book, and then Publisher.
370
+ * Note since BookReview is excluded from `existingSearchOrder`, an existing BookReview will never be chosen.
371
+ *
372
+ * ```typescript
373
+ * export function newComment(em: EntityManager, opts: FactoryOpts<Comment> = {}): New<Comment> {
374
+ * return newTestInstance(em, Comment, {
375
+ * parent: maybeNewPoly<CommentParent, Author>(
376
+ * Author, {
377
+ * ifNewOpts: { firstName: "optional"},
378
+ * existingSearchOrder: [Author, Book, Publisher]
379
+ * }),
380
+ * ...opts,
381
+ * });
382
+ * }
383
+ * ```
384
+ */
558
385
  function maybeNewPoly(ifNewCstr, opts) {
559
- // Return a marker that resolveFactoryOpt will look for
560
- return new MaybeNew((opts?.ifNewOpts || {}), opts?.existingSearchOrder ?? [ifNewCstr]);
561
- }
562
- class MaybeNew {
563
- opts;
564
- polyRefPreferredOrder;
565
- constructor(opts, polyRefPreferredOrder = []) {
566
- this.opts = opts;
567
- this.polyRefPreferredOrder = polyRefPreferredOrder;
568
- }
386
+ return new MaybeNew(opts?.ifNewOpts || {}, opts?.existingSearchOrder ?? [ifNewCstr]);
569
387
  }
388
+ var MaybeNew = class {
389
+ opts;
390
+ polyRefPreferredOrder;
391
+ constructor(opts, polyRefPreferredOrder = []) {
392
+ this.opts = opts;
393
+ this.polyRefPreferredOrder = polyRefPreferredOrder;
394
+ }
395
+ };
570
396
  /**
571
- * Returns a unique-ish test index for putting in `name` fields.
572
- *
573
- * Note that `testIndex` is easier to just include in a string, because it doesn't require passing
574
- * the `EntityManger` and `type`. But if a factory really wants the test index as a number, they can
575
- * call this method.
576
- *
577
- * Despite the name, these are 1-based, i.e. the first `Author` is `a1`.
578
- */
397
+ * Returns a unique-ish test index for putting in `name` fields.
398
+ *
399
+ * Note that `testIndex` is easier to just include in a string, because it doesn't require passing
400
+ * the `EntityManger` and `type`. But if a factory really wants the test index as a number, they can
401
+ * call this method.
402
+ *
403
+ * Despite the name, these are 1-based, i.e. the first `Author` is `a1`.
404
+ */
579
405
  function getTestIndex(em, type) {
580
- const existing = em.getEntities(type);
581
- return existing.length + 1;
406
+ return em.getEntities(type).length + 1;
582
407
  }
583
408
  /** Returns the stable `a#1` factory id for em.create-d entities, using the createId assigned at creation time. */
584
409
  function getTestId(em, entity) {
585
- const meta = (0, EntityMetadata_1.getMetadata)(entity);
586
- const createId = (0, BaseEntity_1.getInstanceData)(entity).createId;
587
- return createId ? `${meta.tagName}#${createId}` : undefined;
410
+ const meta = getMetadata(entity);
411
+ const createId = getInstanceData(entity).createId;
412
+ return createId ? `${meta.tagName}#${createId}` : void 0;
588
413
  }
589
- // We keep a local copy of `global.Date`, in case a faking library
590
- // like @sinonjs/fake-timers is used and rewrites `global.Date` to
591
- // their own `ClockDate`, which would make our `===` check below fail.
592
414
  const globalDate = global.Date;
593
415
  function defaultValueForField(em, cstr, field) {
594
- if (field.serde.columns[0].isArray)
595
- return [];
596
- if (field.type === "string") {
597
- if (field.fieldName === "name") {
598
- return `${cstr.name} ${getTestIndex(em, cstr)}`;
599
- }
600
- return field.fieldName;
601
- }
602
- else if (field.type === "number") {
603
- return 0;
604
- }
605
- else if (field.type === "bigint") {
606
- return 0n;
607
- }
608
- else if (field.type === globalDate) {
609
- return exports.testDate;
610
- }
611
- else if (field.type === "boolean") {
612
- return false;
613
- }
614
- else if (Temporal) {
615
- if (field.type === Temporal.PlainDate) {
616
- return exports.testPlainDate;
617
- }
618
- else if (field.type === Temporal.PlainDateTime) {
619
- return exports.testPlainDateTime;
620
- }
621
- else if (field.type === Temporal.ZonedDateTime) {
622
- return exports.testZonedDateTime;
623
- }
624
- }
625
- return null;
416
+ if (field.serde.columns[0].isArray) return [];
417
+ if (field.type === "string") {
418
+ if (field.fieldName === "name") return `${cstr.name} ${getTestIndex(em, cstr)}`;
419
+ return field.fieldName;
420
+ } else if (field.type === "number") return 0;
421
+ else if (field.type === "bigint") return 0n;
422
+ else if (field.type === globalDate) return testDate;
423
+ else if (field.type === "boolean") return false;
424
+ else if (field.type === "Object") return {};
425
+ else if (Temporal) {
426
+ if (field.type === Temporal.PlainDate) return testPlainDate;
427
+ else if (field.type === Temporal.PlainDateTime) return testPlainDateTime;
428
+ else if (field.type === Temporal.ZonedDateTime) return testZonedDateTime;
429
+ }
430
+ return null;
626
431
  }
627
- // Do a one-time conversion of the user's `use` array into a map for internal use, which we'll
628
- // then re-use across all `newTestInstance` calls within a given `new<Entity>` call.
629
432
  function getOrCreateUseMap(opts) {
630
- const use = opts.use;
631
- let map;
632
- if (use instanceof Map) {
633
- // it's already a map
634
- map = use;
635
- }
636
- else {
637
- map = new Map();
638
- if (use instanceof Array) {
639
- // it's a top-level `newAuthor` with a user-passed `use: array`
640
- use.forEach((e) => addToUseMap(map, e, "useOpt"));
641
- }
642
- else if (use) {
643
- // it's a top-level `newAuthor` w/o a `use: entity` param
644
- addToUseMap(map, use, "useOpt");
645
- }
646
- // Scan opts for entities to add to the map, i.e. if the user calls `newAuthor(em, { book: b1 })`,
647
- // we'll use `b1` for any other books we might happen to create.
648
- const todo = [opts];
649
- while (todo.length > 0) {
650
- const opts = todo.pop();
651
- for (const opt of Object.values(opts || {})) {
652
- if ((0, Entity_1.isEntity)(opt) && !map.has(opt.constructor)) {
653
- addToUseMap(map, opt, "testOpts");
654
- }
655
- else if (opt instanceof Array) {
656
- // Push the array as-is, because it will be `Object.value`-d on the next iteration
657
- todo.push(opt);
658
- }
659
- else if ((0, joist_utils_1.isPlainObject)(opt)) {
660
- todo.push(opt);
661
- }
662
- }
663
- }
664
- }
665
- // Store our potentially-massaged map back into opts i.e. in case resolveFactoryOpt needs it.
666
- // Use as any b/c UseMap is our internal impl detail and not public.
667
- opts.use = map;
668
- return map;
433
+ const use = opts.use;
434
+ let map;
435
+ if (use instanceof Map) map = use;
436
+ else {
437
+ map = /* @__PURE__ */ new Map();
438
+ if (use instanceof Array) use.forEach((e) => addToUseMap(map, e, "useOpt"));
439
+ else if (use) addToUseMap(map, use, "useOpt");
440
+ const todo = [opts];
441
+ while (todo.length > 0) {
442
+ const opts = todo.pop();
443
+ for (const opt of Object.values(opts || {})) if (isEntity(opt) && !map.has(opt.constructor)) addToUseMap(map, opt, "testOpts");
444
+ else if (opt instanceof Array) todo.push(opt);
445
+ else if (isPlainObject(opt)) todo.push(opt);
446
+ }
447
+ }
448
+ opts.use = map;
449
+ return map;
669
450
  }
670
- // If e is a subtype like SmallPublisher, register it for the base Publisher as well
671
451
  function addToUseMap(map, e, source) {
672
- logger?.logAddToUseMap(e, source);
673
- const meta = (0, EntityMetadata_1.getMetadata)(e);
674
- if (meta.baseType || meta.subTypes.length) {
675
- (0, EntityMetadata_1.getBaseAndSelfMetas)(meta).forEach((m) => {
676
- // console.log(`Putting ${e.toString()} into ${objectId(map)} as ${source}`);
677
- map.set(m.cstr, [e, source]);
678
- });
679
- }
680
- else {
681
- // console.log(`Putting ${e.toString()} into ${objectId(map)} as ${source}`);
682
- map.set(meta.cstr, [e, source]);
683
- }
452
+ logger?.logAddToUseMap(e, source);
453
+ const meta = getMetadata(e);
454
+ if (meta.baseType || meta.subTypes.length) getBaseAndSelfMetas(meta).forEach((m) => {
455
+ map.set(m.cstr, [e, source]);
456
+ });
457
+ else map.set(meta.cstr, [e, source]);
684
458
  }
685
459
  /** Merge the factory's opts and the test's opts so that `{ age: 40 }` and `{ firstName: "b1" }` get merged. */
686
460
  function mergeOpts(meta, testOpts, factoryOpts) {
687
- // Merge the factory's opts and the test's opts so that `{ age: 40 }` and `{ firstName: "b1" }` get merged
688
- if (testOpts.useFactoryDefaults === false || testOpts.useFactoryDefaults === "none") {
689
- return testOpts;
690
- }
691
- const opts = { ...testOpts };
692
- Object.entries(factoryOpts).forEach(([key, factoryValue]) => {
693
- // Skip special opts
694
- if (key === "useExisting")
695
- return;
696
- const testValue = testOpts[key];
697
- if (testOpts[key] === undefined) {
698
- // If the test doesn't define an opt, we have nothing to merge...unless
699
- // they literally passed `foo: undefined`, in which case they win.
700
- if (!(key in testOpts)) {
701
- opts[key] = factoryValue;
702
- }
703
- }
704
- else if ((0, joist_utils_1.isPlainObject)(factoryValue) && (0, joist_utils_1.isPlainObject)(testValue)) {
705
- // Should this deep merge? Probably?
706
- opts[key] = mergeOpts(meta, testValue, factoryValue);
707
- }
708
- else if (factoryValue instanceof MaybeNew && (0, joist_utils_1.isPlainObject)(testValue)) {
709
- opts[key] = mergeOpts(meta, testValue, factoryValue.opts);
710
- }
711
- else if (factoryValue instanceof MaybeNew && testValue instanceof MaybeNew) {
712
- opts[key] = new MaybeNew(mergeOpts(meta, testValue.opts, factoryValue.opts), testValue.polyRefPreferredOrder ?? factoryValue.polyRefPreferredOrder);
713
- }
714
- // This seemed like a good idea
715
- if (opts[key]?.[branchValueSym]) {
716
- const field = meta.allFields[key];
717
- if (field.kind === "m2o") {
718
- const use = testOpts.use;
719
- const inTree = use?.get(field.otherMetadata().cstr);
720
- if (inTree && (inTree[1] === "sameBranch" || inTree[1] === "testOpts")) {
721
- // console.log(`Putting ${field.fieldName} to`, inTree[0]);
722
- opts[key] = inTree[0];
723
- }
724
- }
725
- else {
726
- throw new Error(`branchValue is not implemented for ${field.kind}`);
727
- }
728
- delete opts[key]?.[branchValueSym];
729
- }
730
- });
731
- return opts;
461
+ if (testOpts.useFactoryDefaults === false || testOpts.useFactoryDefaults === "none") return testOpts;
462
+ const opts = { ...testOpts };
463
+ Object.entries(factoryOpts).forEach(([key, factoryValue]) => {
464
+ if (key === "useExisting") return;
465
+ const testValue = testOpts[key];
466
+ if (testOpts[key] === void 0) {
467
+ if (!(key in testOpts)) opts[key] = factoryValue;
468
+ } else if (isPlainObject(factoryValue) && isPlainObject(testValue)) opts[key] = mergeOpts(meta, testValue, factoryValue);
469
+ else if (factoryValue instanceof MaybeNew && isPlainObject(testValue)) opts[key] = mergeOpts(meta, testValue, factoryValue.opts);
470
+ else if (factoryValue instanceof MaybeNew && testValue instanceof MaybeNew) opts[key] = new MaybeNew(mergeOpts(meta, testValue.opts, factoryValue.opts), testValue.polyRefPreferredOrder ?? factoryValue.polyRefPreferredOrder);
471
+ if (opts[key]?.[branchValueSym]) {
472
+ const field = meta.allFields[key];
473
+ if (field.kind === "m2o") {
474
+ const inTree = testOpts.use?.get(field.otherMetadata().cstr);
475
+ if (inTree && (inTree[1] === "sameBranch" || inTree[1] === "testOpts")) opts[key] = inTree[0];
476
+ } else throw new Error(`branchValue is not implemented for ${field.kind}`);
477
+ delete opts[key]?.[branchValueSym];
478
+ }
479
+ });
480
+ return opts;
732
481
  }
733
- // As we branch out to children, going down the tree, give each branch its own playground of entities
734
482
  function withBranchMap(opts) {
735
- const oldMap = opts.use;
736
- const newMap = new CopyMap(oldMap);
737
- return { ...opts, use: newMap };
483
+ const oldMap = opts.use;
484
+ const newMap = new CopyMap(oldMap);
485
+ return {
486
+ ...opts,
487
+ use: newMap
488
+ };
738
489
  }
739
490
  /** Writes new entities into our branch's map (this map), as well as the root we came from. */
740
- class CopyMap extends Map {
741
- root;
742
- constructor(root) {
743
- super(root);
744
- this.root = root;
745
- }
746
- set(k, v) {
747
- // Purposefully downgrade this to source=diffBranch so that it will not be used by `branchValue()`
748
- // calls that override `{}`, but can still be used to in-fan, i.e. if making multiple books by
749
- // default they get the same author.
750
- // ...also use `root?` because the `super(root)` will call `set` while copying the other map
751
- // but our `this.root` has not been set yet; which is fine, we want to ignore those anyway.
752
- this.root?.set(k, [v[0], "diffBranch"]);
753
- return super.set(k, v);
754
- }
755
- }
756
- // const objectId = (() => {
757
- // let currentId = 0;
758
- // const map = new WeakMap();
759
- // return (object: object): number => {
760
- // if (!map.has(object)) {
761
- // map.set(object, ++currentId);
762
- // }
763
- // return map.get(object)!;
764
- // };
765
- // })();
491
+ var CopyMap = class extends Map {
492
+ root;
493
+ constructor(root) {
494
+ super(root);
495
+ this.root = root;
496
+ }
497
+ set(k, v) {
498
+ this.root?.set(k, [v[0], "diffBranch"]);
499
+ return super.set(k, v);
500
+ }
501
+ };
766
502
  /** Enables factory logging for all factories. */
767
503
  function setFactoryLogging(enabled) {
768
- logger = enabled ? new FactoryLogger_1.FactoryLogger() : undefined;
504
+ logger = enabled ? new FactoryLogger() : void 0;
769
505
  }
770
506
  /** Marker for tests setting derived values during test setup. */
771
- class FactoryInitialValue {
772
- value;
773
- constructor(value) {
774
- this.value = value;
775
- }
776
- }
777
- exports.FactoryInitialValue = FactoryInitialValue;
507
+ var FactoryInitialValue = class {
508
+ value;
509
+ constructor(value) {
510
+ this.value = value;
511
+ }
512
+ };
778
513
  function isFactoryCreation(entity) {
779
- return factoryCreated.has(entity);
514
+ return factoryCreated.has(entity);
780
515
  }
781
516
  function resetFactoryCreated() {
782
- factoryCreated = new WeakSet();
517
+ factoryCreated = /* @__PURE__ */ new WeakSet();
783
518
  }
519
+ //#endregion
520
+ export { FactoryInitialValue, defaultValue, factories, getTestIndex, isFactoryCreation, maybeBranchValue, maybeNew, maybeNewPoly, newTestInstance, noValue, resetFactoryCreated, setFactoryLogging, testDate, testIndex, testPlainDate, testPlainDateTime, testZonedDateTime };
521
+
784
522
  //# sourceMappingURL=newTestInstance.js.map