joist-orm 1.294.0 → 2.0.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 (482) hide show
  1. package/build/{drivers/PostgresDriver.d.ts → PostgresDriver.d.ts} +1 -4
  2. package/build/PostgresDriver.d.ts.map +1 -0
  3. package/build/{drivers/PostgresDriver.js → PostgresDriver.js} +49 -58
  4. package/build/PostgresDriver.js.map +1 -0
  5. package/build/codegen.d.ts +2 -0
  6. package/build/codegen.d.ts.map +1 -0
  7. package/build/codegen.js +29 -0
  8. package/build/codegen.js.map +1 -0
  9. package/build/graphql-codegen-export.d.ts +2 -0
  10. package/build/graphql-codegen-export.d.ts.map +1 -0
  11. package/build/{drivers/index.js → graphql-codegen-export.js} +3 -5
  12. package/build/graphql-codegen-export.js.map +1 -0
  13. package/build/graphql-export.d.ts +2 -0
  14. package/build/graphql-export.d.ts.map +1 -0
  15. package/build/graphql-export.js +19 -0
  16. package/build/graphql-export.js.map +1 -0
  17. package/build/index.d.ts +3 -128
  18. package/build/index.d.ts.map +1 -1
  19. package/build/index.js +8 -284
  20. package/build/index.js.map +1 -1
  21. package/build/knex-export.d.ts +2 -0
  22. package/build/knex-export.d.ts.map +1 -0
  23. package/build/knex-export.js +19 -0
  24. package/build/knex-export.js.map +1 -0
  25. package/build/pg-migrate.d.ts +2 -0
  26. package/build/pg-migrate.d.ts.map +1 -0
  27. package/build/pg-migrate.js +30 -0
  28. package/build/pg-migrate.js.map +1 -0
  29. package/build/postgres-driver.d.ts +2 -0
  30. package/build/postgres-driver.d.ts.map +1 -0
  31. package/build/postgres-driver.js +7 -0
  32. package/build/postgres-driver.js.map +1 -0
  33. package/build/tests-export.d.ts +2 -0
  34. package/build/tests-export.d.ts.map +1 -0
  35. package/build/tests-export.js +19 -0
  36. package/build/tests-export.js.map +1 -0
  37. package/package.json +85 -16
  38. package/build/AliasAssigner.d.ts +0 -7
  39. package/build/AliasAssigner.d.ts.map +0 -1
  40. package/build/AliasAssigner.js +0 -30
  41. package/build/AliasAssigner.js.map +0 -1
  42. package/build/Aliases.d.ts +0 -110
  43. package/build/Aliases.d.ts.map +0 -1
  44. package/build/Aliases.js +0 -456
  45. package/build/Aliases.js.map +0 -1
  46. package/build/BaseEntity.d.ts +0 -66
  47. package/build/BaseEntity.d.ts.map +0 -1
  48. package/build/BaseEntity.js +0 -120
  49. package/build/BaseEntity.js.map +0 -1
  50. package/build/ConditionBuilder.d.ts +0 -50
  51. package/build/ConditionBuilder.d.ts.map +0 -1
  52. package/build/ConditionBuilder.js +0 -178
  53. package/build/ConditionBuilder.js.map +0 -1
  54. package/build/Entity.d.ts +0 -38
  55. package/build/Entity.d.ts.map +0 -1
  56. package/build/Entity.js +0 -8
  57. package/build/Entity.js.map +0 -1
  58. package/build/EntityFields.d.ts +0 -37
  59. package/build/EntityFields.d.ts.map +0 -1
  60. package/build/EntityFields.js +0 -3
  61. package/build/EntityFields.js.map +0 -1
  62. package/build/EntityFilter.d.ts +0 -113
  63. package/build/EntityFilter.d.ts.map +0 -1
  64. package/build/EntityFilter.js +0 -3
  65. package/build/EntityFilter.js.map +0 -1
  66. package/build/EntityGraphQLFilter.d.ts +0 -51
  67. package/build/EntityGraphQLFilter.d.ts.map +0 -1
  68. package/build/EntityGraphQLFilter.js +0 -54
  69. package/build/EntityGraphQLFilter.js.map +0 -1
  70. package/build/EntityManager.d.ts +0 -734
  71. package/build/EntityManager.d.ts.map +0 -1
  72. package/build/EntityManager.js +0 -2075
  73. package/build/EntityManager.js.map +0 -1
  74. package/build/EntityMetadata.d.ts +0 -185
  75. package/build/EntityMetadata.d.ts.map +0 -1
  76. package/build/EntityMetadata.js +0 -61
  77. package/build/EntityMetadata.js.map +0 -1
  78. package/build/EnumMetadata.d.ts +0 -15
  79. package/build/EnumMetadata.d.ts.map +0 -1
  80. package/build/EnumMetadata.js +0 -3
  81. package/build/EnumMetadata.js.map +0 -1
  82. package/build/FlushLock.d.ts +0 -26
  83. package/build/FlushLock.d.ts.map +0 -1
  84. package/build/FlushLock.js +0 -57
  85. package/build/FlushLock.js.map +0 -1
  86. package/build/HintTree.d.ts +0 -42
  87. package/build/HintTree.d.ts.map +0 -1
  88. package/build/HintTree.js +0 -64
  89. package/build/HintTree.js.map +0 -1
  90. package/build/IndexManager.d.ts +0 -30
  91. package/build/IndexManager.d.ts.map +0 -1
  92. package/build/IndexManager.js +0 -206
  93. package/build/IndexManager.js.map +0 -1
  94. package/build/InstanceData.d.ts +0 -59
  95. package/build/InstanceData.d.ts.map +0 -1
  96. package/build/InstanceData.js +0 -162
  97. package/build/InstanceData.js.map +0 -1
  98. package/build/IsLoadedCache.d.ts +0 -32
  99. package/build/IsLoadedCache.d.ts.map +0 -1
  100. package/build/IsLoadedCache.js +0 -80
  101. package/build/IsLoadedCache.js.map +0 -1
  102. package/build/JoinRows.d.ts +0 -75
  103. package/build/JoinRows.d.ts.map +0 -1
  104. package/build/JoinRows.js +0 -246
  105. package/build/JoinRows.js.map +0 -1
  106. package/build/PluginManager.d.ts +0 -90
  107. package/build/PluginManager.d.ts.map +0 -1
  108. package/build/PluginManager.js +0 -97
  109. package/build/PluginManager.js.map +0 -1
  110. package/build/QueryParser.d.ts +0 -271
  111. package/build/QueryParser.d.ts.map +0 -1
  112. package/build/QueryParser.js +0 -853
  113. package/build/QueryParser.js.map +0 -1
  114. package/build/QueryParser.pruning.d.ts +0 -5
  115. package/build/QueryParser.pruning.d.ts.map +0 -1
  116. package/build/QueryParser.pruning.js +0 -118
  117. package/build/QueryParser.pruning.js.map +0 -1
  118. package/build/QueryVisitor.d.ts +0 -19
  119. package/build/QueryVisitor.d.ts.map +0 -1
  120. package/build/QueryVisitor.js +0 -84
  121. package/build/QueryVisitor.js.map +0 -1
  122. package/build/ReactionsManager.d.ts +0 -84
  123. package/build/ReactionsManager.d.ts.map +0 -1
  124. package/build/ReactionsManager.js +0 -308
  125. package/build/ReactionsManager.js.map +0 -1
  126. package/build/Todo.d.ts +0 -31
  127. package/build/Todo.d.ts.map +0 -1
  128. package/build/Todo.js +0 -73
  129. package/build/Todo.js.map +0 -1
  130. package/build/caches.d.ts +0 -6
  131. package/build/caches.d.ts.map +0 -1
  132. package/build/caches.js +0 -42
  133. package/build/caches.js.map +0 -1
  134. package/build/changes.d.ts +0 -79
  135. package/build/changes.d.ts.map +0 -1
  136. package/build/changes.js +0 -251
  137. package/build/changes.js.map +0 -1
  138. package/build/config.d.ts +0 -237
  139. package/build/config.d.ts.map +0 -1
  140. package/build/config.js +0 -298
  141. package/build/config.js.map +0 -1
  142. package/build/config.test.d.ts +0 -2
  143. package/build/config.test.d.ts.map +0 -1
  144. package/build/config.test.js +0 -53
  145. package/build/config.test.js.map +0 -1
  146. package/build/configure.d.ts +0 -13
  147. package/build/configure.d.ts.map +0 -1
  148. package/build/configure.js +0 -329
  149. package/build/configure.js.map +0 -1
  150. package/build/dataloaders/findByUniqueDataLoader.d.ts +0 -7
  151. package/build/dataloaders/findByUniqueDataLoader.d.ts.map +0 -1
  152. package/build/dataloaders/findByUniqueDataLoader.js +0 -47
  153. package/build/dataloaders/findByUniqueDataLoader.js.map +0 -1
  154. package/build/dataloaders/findCountDataLoader.d.ts +0 -7
  155. package/build/dataloaders/findCountDataLoader.d.ts.map +0 -1
  156. package/build/dataloaders/findCountDataLoader.js +0 -74
  157. package/build/dataloaders/findCountDataLoader.js.map +0 -1
  158. package/build/dataloaders/findDataLoader.d.ts +0 -37
  159. package/build/dataloaders/findDataLoader.d.ts.map +0 -1
  160. package/build/dataloaders/findDataLoader.js +0 -337
  161. package/build/dataloaders/findDataLoader.js.map +0 -1
  162. package/build/dataloaders/findIdsDataLoader.d.ts +0 -7
  163. package/build/dataloaders/findIdsDataLoader.d.ts.map +0 -1
  164. package/build/dataloaders/findIdsDataLoader.js +0 -74
  165. package/build/dataloaders/findIdsDataLoader.js.map +0 -1
  166. package/build/dataloaders/findOrCreateDataLoader.d.ts +0 -13
  167. package/build/dataloaders/findOrCreateDataLoader.d.ts.map +0 -1
  168. package/build/dataloaders/findOrCreateDataLoader.js +0 -174
  169. package/build/dataloaders/findOrCreateDataLoader.js.map +0 -1
  170. package/build/dataloaders/lensDataLoader.d.ts +0 -12
  171. package/build/dataloaders/lensDataLoader.d.ts.map +0 -1
  172. package/build/dataloaders/lensDataLoader.js +0 -180
  173. package/build/dataloaders/lensDataLoader.js.map +0 -1
  174. package/build/dataloaders/loadDataLoader.d.ts +0 -11
  175. package/build/dataloaders/loadDataLoader.d.ts.map +0 -1
  176. package/build/dataloaders/loadDataLoader.js +0 -54
  177. package/build/dataloaders/loadDataLoader.js.map +0 -1
  178. package/build/dataloaders/manyToManyDataLoader.d.ts +0 -8
  179. package/build/dataloaders/manyToManyDataLoader.d.ts.map +0 -1
  180. package/build/dataloaders/manyToManyDataLoader.js +0 -74
  181. package/build/dataloaders/manyToManyDataLoader.js.map +0 -1
  182. package/build/dataloaders/manyToManyFindDataLoader.d.ts +0 -8
  183. package/build/dataloaders/manyToManyFindDataLoader.d.ts.map +0 -1
  184. package/build/dataloaders/manyToManyFindDataLoader.js +0 -70
  185. package/build/dataloaders/manyToManyFindDataLoader.js.map +0 -1
  186. package/build/dataloaders/oneToManyDataLoader.d.ts +0 -7
  187. package/build/dataloaders/oneToManyDataLoader.d.ts.map +0 -1
  188. package/build/dataloaders/oneToManyDataLoader.js +0 -60
  189. package/build/dataloaders/oneToManyDataLoader.js.map +0 -1
  190. package/build/dataloaders/oneToManyFindDataLoader.d.ts +0 -8
  191. package/build/dataloaders/oneToManyFindDataLoader.d.ts.map +0 -1
  192. package/build/dataloaders/oneToManyFindDataLoader.js +0 -71
  193. package/build/dataloaders/oneToManyFindDataLoader.js.map +0 -1
  194. package/build/dataloaders/oneToOneDataLoader.d.ts +0 -7
  195. package/build/dataloaders/oneToOneDataLoader.d.ts.map +0 -1
  196. package/build/dataloaders/oneToOneDataLoader.js +0 -59
  197. package/build/dataloaders/oneToOneDataLoader.js.map +0 -1
  198. package/build/dataloaders/populateDataLoader.d.ts +0 -13
  199. package/build/dataloaders/populateDataLoader.d.ts.map +0 -1
  200. package/build/dataloaders/populateDataLoader.js +0 -148
  201. package/build/dataloaders/populateDataLoader.js.map +0 -1
  202. package/build/dataloaders/recursiveChildrenDataLoader.d.ts +0 -7
  203. package/build/dataloaders/recursiveChildrenDataLoader.d.ts.map +0 -1
  204. package/build/dataloaders/recursiveChildrenDataLoader.js +0 -77
  205. package/build/dataloaders/recursiveChildrenDataLoader.js.map +0 -1
  206. package/build/dataloaders/recursiveParentsDataLoader.d.ts +0 -7
  207. package/build/dataloaders/recursiveParentsDataLoader.d.ts.map +0 -1
  208. package/build/dataloaders/recursiveParentsDataLoader.js +0 -59
  209. package/build/dataloaders/recursiveParentsDataLoader.js.map +0 -1
  210. package/build/defaults.d.ts +0 -54
  211. package/build/defaults.d.ts.map +0 -1
  212. package/build/defaults.js +0 -282
  213. package/build/defaults.js.map +0 -1
  214. package/build/driverApi.d.ts +0 -19
  215. package/build/driverApi.d.ts.map +0 -1
  216. package/build/driverApi.js +0 -17
  217. package/build/driverApi.js.map +0 -1
  218. package/build/drivers/Driver.d.ts +0 -26
  219. package/build/drivers/Driver.d.ts.map +0 -1
  220. package/build/drivers/Driver.js +0 -3
  221. package/build/drivers/Driver.js.map +0 -1
  222. package/build/drivers/EntityWriter.d.ts +0 -64
  223. package/build/drivers/EntityWriter.d.ts.map +0 -1
  224. package/build/drivers/EntityWriter.js +0 -237
  225. package/build/drivers/EntityWriter.js.map +0 -1
  226. package/build/drivers/IdAssigner.d.ts +0 -50
  227. package/build/drivers/IdAssigner.d.ts.map +0 -1
  228. package/build/drivers/IdAssigner.js +0 -133
  229. package/build/drivers/IdAssigner.js.map +0 -1
  230. package/build/drivers/PostgresDriver.d.ts.map +0 -1
  231. package/build/drivers/PostgresDriver.js.map +0 -1
  232. package/build/drivers/buildRawQuery.d.ts +0 -20
  233. package/build/drivers/buildRawQuery.d.ts.map +0 -1
  234. package/build/drivers/buildRawQuery.js +0 -148
  235. package/build/drivers/buildRawQuery.js.map +0 -1
  236. package/build/drivers/buildUtils.d.ts +0 -4
  237. package/build/drivers/buildUtils.d.ts.map +0 -1
  238. package/build/drivers/buildUtils.js +0 -79
  239. package/build/drivers/buildUtils.js.map +0 -1
  240. package/build/drivers/index.d.ts +0 -5
  241. package/build/drivers/index.d.ts.map +0 -1
  242. package/build/drivers/index.js.map +0 -1
  243. package/build/fields.d.ts +0 -24
  244. package/build/fields.d.ts.map +0 -1
  245. package/build/fields.js +0 -162
  246. package/build/fields.js.map +0 -1
  247. package/build/getProperties.d.ts +0 -28
  248. package/build/getProperties.d.ts.map +0 -1
  249. package/build/getProperties.js +0 -141
  250. package/build/getProperties.js.map +0 -1
  251. package/build/json.d.ts +0 -77
  252. package/build/json.d.ts.map +0 -1
  253. package/build/json.js +0 -116
  254. package/build/json.js.map +0 -1
  255. package/build/k.d.ts +0 -2
  256. package/build/k.d.ts.map +0 -1
  257. package/build/k.js +0 -9
  258. package/build/k.js.map +0 -1
  259. package/build/keys.d.ts +0 -49
  260. package/build/keys.d.ts.map +0 -1
  261. package/build/keys.js +0 -195
  262. package/build/keys.js.map +0 -1
  263. package/build/keywords.d.ts +0 -5
  264. package/build/keywords.d.ts.map +0 -1
  265. package/build/keywords.js +0 -124
  266. package/build/keywords.js.map +0 -1
  267. package/build/loadHints.d.ts +0 -112
  268. package/build/loadHints.d.ts.map +0 -1
  269. package/build/loadHints.js +0 -75
  270. package/build/loadHints.js.map +0 -1
  271. package/build/loadLens.d.ts +0 -66
  272. package/build/loadLens.d.ts.map +0 -1
  273. package/build/loadLens.js +0 -287
  274. package/build/loadLens.js.map +0 -1
  275. package/build/logging/FactoryLogger.d.ts +0 -24
  276. package/build/logging/FactoryLogger.d.ts.map +0 -1
  277. package/build/logging/FactoryLogger.js +0 -77
  278. package/build/logging/FactoryLogger.js.map +0 -1
  279. package/build/logging/FieldLogger.d.ts +0 -27
  280. package/build/logging/FieldLogger.d.ts.map +0 -1
  281. package/build/logging/FieldLogger.js +0 -69
  282. package/build/logging/FieldLogger.js.map +0 -1
  283. package/build/logging/ReactionLogger.d.ts +0 -23
  284. package/build/logging/ReactionLogger.d.ts.map +0 -1
  285. package/build/logging/ReactionLogger.js +0 -65
  286. package/build/logging/ReactionLogger.js.map +0 -1
  287. package/build/newEntity.d.ts +0 -45
  288. package/build/newEntity.d.ts.map +0 -1
  289. package/build/newEntity.js +0 -106
  290. package/build/newEntity.js.map +0 -1
  291. package/build/newTestInstance.d.ts +0 -193
  292. package/build/newTestInstance.d.ts.map +0 -1
  293. package/build/newTestInstance.js +0 -738
  294. package/build/newTestInstance.js.map +0 -1
  295. package/build/normalizeHints.d.ts +0 -16
  296. package/build/normalizeHints.d.ts.map +0 -1
  297. package/build/normalizeHints.js +0 -31
  298. package/build/normalizeHints.js.map +0 -1
  299. package/build/plugins/ImmutableEntitiesPlugin.d.ts +0 -9
  300. package/build/plugins/ImmutableEntitiesPlugin.d.ts.map +0 -1
  301. package/build/plugins/ImmutableEntitiesPlugin.js +0 -21
  302. package/build/plugins/ImmutableEntitiesPlugin.js.map +0 -1
  303. package/build/plugins/PreloadPlugin.d.ts +0 -69
  304. package/build/plugins/PreloadPlugin.d.ts.map +0 -1
  305. package/build/plugins/PreloadPlugin.js +0 -3
  306. package/build/plugins/PreloadPlugin.js.map +0 -1
  307. package/build/preloading/JsonAggregatePreloader.d.ts +0 -16
  308. package/build/preloading/JsonAggregatePreloader.d.ts.map +0 -1
  309. package/build/preloading/JsonAggregatePreloader.js +0 -238
  310. package/build/preloading/JsonAggregatePreloader.js.map +0 -1
  311. package/build/preloading/canPreload.d.ts +0 -3
  312. package/build/preloading/canPreload.d.ts.map +0 -1
  313. package/build/preloading/canPreload.js +0 -21
  314. package/build/preloading/canPreload.js.map +0 -1
  315. package/build/preloading/partitionHint.d.ts +0 -5
  316. package/build/preloading/partitionHint.d.ts.map +0 -1
  317. package/build/preloading/partitionHint.js +0 -56
  318. package/build/preloading/partitionHint.js.map +0 -1
  319. package/build/reactiveHints.d.ts +0 -129
  320. package/build/reactiveHints.d.ts.map +0 -1
  321. package/build/reactiveHints.js +0 -458
  322. package/build/reactiveHints.js.map +0 -1
  323. package/build/relations/AbstractPropertyImpl.d.ts +0 -8
  324. package/build/relations/AbstractPropertyImpl.d.ts.map +0 -1
  325. package/build/relations/AbstractPropertyImpl.js +0 -15
  326. package/build/relations/AbstractPropertyImpl.js.map +0 -1
  327. package/build/relations/AbstractRelationImpl.d.ts +0 -36
  328. package/build/relations/AbstractRelationImpl.d.ts.map +0 -1
  329. package/build/relations/AbstractRelationImpl.js +0 -19
  330. package/build/relations/AbstractRelationImpl.js.map +0 -1
  331. package/build/relations/Collection.d.ts +0 -28
  332. package/build/relations/Collection.d.ts.map +0 -1
  333. package/build/relations/Collection.js +0 -18
  334. package/build/relations/Collection.js.map +0 -1
  335. package/build/relations/CustomCollection.d.ts +0 -69
  336. package/build/relations/CustomCollection.d.ts.map +0 -1
  337. package/build/relations/CustomCollection.js +0 -166
  338. package/build/relations/CustomCollection.js.map +0 -1
  339. package/build/relations/CustomReference.d.ts +0 -71
  340. package/build/relations/CustomReference.d.ts.map +0 -1
  341. package/build/relations/CustomReference.js +0 -152
  342. package/build/relations/CustomReference.js.map +0 -1
  343. package/build/relations/LargeCollection.d.ts +0 -19
  344. package/build/relations/LargeCollection.d.ts.map +0 -1
  345. package/build/relations/LargeCollection.js +0 -3
  346. package/build/relations/LargeCollection.js.map +0 -1
  347. package/build/relations/ManyToManyCollection.d.ts +0 -44
  348. package/build/relations/ManyToManyCollection.d.ts.map +0 -1
  349. package/build/relations/ManyToManyCollection.js +0 -268
  350. package/build/relations/ManyToManyCollection.js.map +0 -1
  351. package/build/relations/ManyToManyLargeCollection.d.ts +0 -30
  352. package/build/relations/ManyToManyLargeCollection.d.ts.map +0 -1
  353. package/build/relations/ManyToManyLargeCollection.js +0 -119
  354. package/build/relations/ManyToManyLargeCollection.js.map +0 -1
  355. package/build/relations/ManyToOneReference.d.ts +0 -121
  356. package/build/relations/ManyToOneReference.d.ts.map +0 -1
  357. package/build/relations/ManyToOneReference.js +0 -389
  358. package/build/relations/ManyToOneReference.js.map +0 -1
  359. package/build/relations/OneToManyCollection.d.ts +0 -58
  360. package/build/relations/OneToManyCollection.d.ts.map +0 -1
  361. package/build/relations/OneToManyCollection.js +0 -347
  362. package/build/relations/OneToManyCollection.js.map +0 -1
  363. package/build/relations/OneToManyLargeCollection.d.ts +0 -26
  364. package/build/relations/OneToManyLargeCollection.d.ts.map +0 -1
  365. package/build/relations/OneToManyLargeCollection.js +0 -102
  366. package/build/relations/OneToManyLargeCollection.js.map +0 -1
  367. package/build/relations/OneToOneReference.d.ts +0 -93
  368. package/build/relations/OneToOneReference.d.ts.map +0 -1
  369. package/build/relations/OneToOneReference.js +0 -228
  370. package/build/relations/OneToOneReference.js.map +0 -1
  371. package/build/relations/PolymorphicReference.d.ts +0 -89
  372. package/build/relations/PolymorphicReference.d.ts.map +0 -1
  373. package/build/relations/PolymorphicReference.js +0 -244
  374. package/build/relations/PolymorphicReference.js.map +0 -1
  375. package/build/relations/ReactiveField.d.ts +0 -87
  376. package/build/relations/ReactiveField.d.ts.map +0 -1
  377. package/build/relations/ReactiveField.js +0 -149
  378. package/build/relations/ReactiveField.js.map +0 -1
  379. package/build/relations/ReactiveGetter.d.ts +0 -30
  380. package/build/relations/ReactiveGetter.d.ts.map +0 -1
  381. package/build/relations/ReactiveGetter.js +0 -38
  382. package/build/relations/ReactiveGetter.js.map +0 -1
  383. package/build/relations/ReactiveManyToMany.d.ts +0 -56
  384. package/build/relations/ReactiveManyToMany.d.ts.map +0 -1
  385. package/build/relations/ReactiveManyToMany.js +0 -243
  386. package/build/relations/ReactiveManyToMany.js.map +0 -1
  387. package/build/relations/ReactiveManyToManyOtherSide.d.ts +0 -47
  388. package/build/relations/ReactiveManyToManyOtherSide.d.ts.map +0 -1
  389. package/build/relations/ReactiveManyToManyOtherSide.js +0 -155
  390. package/build/relations/ReactiveManyToManyOtherSide.js.map +0 -1
  391. package/build/relations/ReactiveQueryField.d.ts +0 -41
  392. package/build/relations/ReactiveQueryField.d.ts.map +0 -1
  393. package/build/relations/ReactiveQueryField.js +0 -125
  394. package/build/relations/ReactiveQueryField.js.map +0 -1
  395. package/build/relations/ReactiveReference.d.ts +0 -119
  396. package/build/relations/ReactiveReference.d.ts.map +0 -1
  397. package/build/relations/ReactiveReference.js +0 -333
  398. package/build/relations/ReactiveReference.js.map +0 -1
  399. package/build/relations/ReadOnlyCollection.d.ts +0 -19
  400. package/build/relations/ReadOnlyCollection.d.ts.map +0 -1
  401. package/build/relations/ReadOnlyCollection.js +0 -15
  402. package/build/relations/ReadOnlyCollection.js.map +0 -1
  403. package/build/relations/RecursiveCollection.d.ts +0 -84
  404. package/build/relations/RecursiveCollection.d.ts.map +0 -1
  405. package/build/relations/RecursiveCollection.js +0 -296
  406. package/build/relations/RecursiveCollection.js.map +0 -1
  407. package/build/relations/Reference.d.ts +0 -35
  408. package/build/relations/Reference.d.ts.map +0 -1
  409. package/build/relations/Reference.js +0 -21
  410. package/build/relations/Reference.js.map +0 -1
  411. package/build/relations/Relation.d.ts +0 -14
  412. package/build/relations/Relation.d.ts.map +0 -1
  413. package/build/relations/Relation.js +0 -12
  414. package/build/relations/Relation.js.map +0 -1
  415. package/build/relations/hasAsyncMethod.d.ts +0 -27
  416. package/build/relations/hasAsyncMethod.d.ts.map +0 -1
  417. package/build/relations/hasAsyncMethod.js +0 -47
  418. package/build/relations/hasAsyncMethod.js.map +0 -1
  419. package/build/relations/hasAsyncProperty.d.ts +0 -49
  420. package/build/relations/hasAsyncProperty.d.ts.map +0 -1
  421. package/build/relations/hasAsyncProperty.js +0 -98
  422. package/build/relations/hasAsyncProperty.js.map +0 -1
  423. package/build/relations/hasManyDerived.d.ts +0 -22
  424. package/build/relations/hasManyDerived.d.ts.map +0 -1
  425. package/build/relations/hasManyDerived.js +0 -32
  426. package/build/relations/hasManyDerived.js.map +0 -1
  427. package/build/relations/hasManyThrough.d.ts +0 -10
  428. package/build/relations/hasManyThrough.d.ts.map +0 -1
  429. package/build/relations/hasManyThrough.js +0 -24
  430. package/build/relations/hasManyThrough.js.map +0 -1
  431. package/build/relations/hasOneDerived.d.ts +0 -12
  432. package/build/relations/hasOneDerived.d.ts.map +0 -1
  433. package/build/relations/hasOneDerived.js +0 -24
  434. package/build/relations/hasOneDerived.js.map +0 -1
  435. package/build/relations/hasOneThrough.d.ts +0 -10
  436. package/build/relations/hasOneThrough.d.ts.map +0 -1
  437. package/build/relations/hasOneThrough.js +0 -24
  438. package/build/relations/hasOneThrough.js.map +0 -1
  439. package/build/relations/index.d.ts +0 -28
  440. package/build/relations/index.d.ts.map +0 -1
  441. package/build/relations/index.js +0 -88
  442. package/build/relations/index.js.map +0 -1
  443. package/build/rules.d.ts +0 -123
  444. package/build/rules.d.ts.map +0 -1
  445. package/build/rules.js +0 -231
  446. package/build/rules.js.map +0 -1
  447. package/build/runtimeConfig.d.ts +0 -17
  448. package/build/runtimeConfig.d.ts.map +0 -1
  449. package/build/runtimeConfig.js +0 -18
  450. package/build/runtimeConfig.js.map +0 -1
  451. package/build/serde.d.ts +0 -277
  452. package/build/serde.d.ts.map +0 -1
  453. package/build/serde.js +0 -517
  454. package/build/serde.js.map +0 -1
  455. package/build/temporal.d.ts +0 -16
  456. package/build/temporal.d.ts.map +0 -1
  457. package/build/temporal.js +0 -48
  458. package/build/temporal.js.map +0 -1
  459. package/build/temporalMappers.d.ts +0 -25
  460. package/build/temporalMappers.d.ts.map +0 -1
  461. package/build/temporalMappers.js +0 -59
  462. package/build/temporalMappers.js.map +0 -1
  463. package/build/typeMap.d.ts +0 -68
  464. package/build/typeMap.d.ts.map +0 -1
  465. package/build/typeMap.js +0 -3
  466. package/build/typeMap.js.map +0 -1
  467. package/build/unnest.d.ts +0 -13
  468. package/build/unnest.d.ts.map +0 -1
  469. package/build/unnest.js +0 -85
  470. package/build/unnest.js.map +0 -1
  471. package/build/upsert.d.ts +0 -42
  472. package/build/upsert.d.ts.map +0 -1
  473. package/build/upsert.js +0 -265
  474. package/build/upsert.js.map +0 -1
  475. package/build/utils.d.ts +0 -58
  476. package/build/utils.d.ts.map +0 -1
  477. package/build/utils.js +0 -236
  478. package/build/utils.js.map +0 -1
  479. package/build/withLoaded.d.ts +0 -56
  480. package/build/withLoaded.d.ts.map +0 -1
  481. package/build/withLoaded.js +0 -76
  482. package/build/withLoaded.js.map +0 -1
@@ -1,71 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.oneToManyFindOperation = void 0;
4
- exports.oneToManyFindDataLoader = oneToManyFindDataLoader;
5
- const index_1 = require("../index");
6
- const utils_1 = require("../utils");
7
- exports.oneToManyFindOperation = "o2m-find";
8
- /** Batches o2m.find/include calls (i.e. that don't fully load the o2m relation). */
9
- function oneToManyFindDataLoader(em, collection) {
10
- const { meta } = collection;
11
- const batchKey = `${meta.tableName}-${collection.fieldName}`;
12
- return em.getLoader(exports.oneToManyFindOperation, batchKey, async (keys) => {
13
- const { em } = collection.entity;
14
- const meta = collection.otherMeta;
15
- const alias = (0, utils_1.abbreviation)(meta.tableName);
16
- const query = {
17
- selects: [`"${alias}".*`],
18
- tables: [{ alias, join: "primary", table: meta.tableName }],
19
- // Or together `where (id = X and book_id = Y)`
20
- condition: {
21
- kind: "exp",
22
- op: "or",
23
- conditions: keys.map((key) => {
24
- const [one, two] = key.split(",");
25
- // columnOne is the `id=`, so is really the "other" side of the o2m
26
- const [columnOne, idOne] = one.split("=");
27
- const [columnTwo, idTwo] = two.split("=");
28
- const [meta1, meta2] = [collection.otherMeta, collection.meta];
29
- // Pick the right meta i.e. tag_id --> TagMeta or book_id --> BookMeta
30
- return {
31
- kind: "exp",
32
- op: "and",
33
- conditions: [
34
- {
35
- kind: "column",
36
- alias,
37
- column: columnOne,
38
- dbType: meta1.idDbType,
39
- cond: { kind: "eq", value: (0, index_1.keyToNumber)(meta1, idOne) },
40
- },
41
- {
42
- kind: "column",
43
- alias,
44
- column: columnTwo,
45
- dbType: meta2.idDbType,
46
- cond: { kind: "eq", value: (0, index_1.keyToNumber)(meta2, idTwo) },
47
- },
48
- ],
49
- };
50
- }),
51
- },
52
- orderBys: [{ alias, column: "id", order: "ASC" }],
53
- };
54
- (0, index_1.addTablePerClassJoinsAndClassTag)(query, meta, alias, true);
55
- // Skip maybeAddOrderBy b/c we're only returning 1 result
56
- // maybeAddNotSoftDeleted(conditions, meta, alias, "include");
57
- const rows = await em["executeFind"](collection.otherMeta, exports.oneToManyFindOperation, query, {});
58
- em.hydrate(collection.otherMeta.cstr, rows);
59
- // Decode `id=b:1,author_id=a:1`
60
- return keys.map((k) => {
61
- const [otherKey, parentKey] = k.split(",");
62
- const [, otherId] = otherKey.split("=");
63
- const [, parentId] = parentKey.split("=");
64
- const other = em.getEntity(otherId);
65
- // We have may fetched `other` for a different parent in our batch
66
- const isMine = other?.[collection.otherFieldName].id === parentId;
67
- return isMine ? other : undefined;
68
- });
69
- });
70
- }
71
- //# sourceMappingURL=oneToManyFindDataLoader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oneToManyFindDataLoader.js","sourceRoot":"","sources":["../../src/dataloaders/oneToManyFindDataLoader.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import DataLoader from "dataloader";
2
- import { Entity } from "../Entity";
3
- import { EntityManager } from "../EntityManager";
4
- import { OneToOneReferenceImpl } from "../relations/OneToOneReference";
5
- export declare const oneToOneLoadOperation = "o2o-load";
6
- export declare function oneToOneDataLoader<T extends Entity, U extends Entity>(em: EntityManager, reference: OneToOneReferenceImpl<T, U>): DataLoader<string, U | undefined>;
7
- //# sourceMappingURL=oneToOneDataLoader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oneToOneDataLoader.d.ts","sourceRoot":"","sources":["../../src/dataloaders/oneToOneDataLoader.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAUjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAGvE,eAAO,MAAM,qBAAqB,aAAa,CAAC;AAEhD,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EACnE,EAAE,EAAE,aAAa,EACjB,SAAS,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,GACrC,UAAU,CAAC,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC,CAoDnC"}
@@ -1,59 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.oneToOneLoadOperation = void 0;
4
- exports.oneToOneDataLoader = oneToOneDataLoader;
5
- const EntityMetadata_1 = require("../EntityMetadata");
6
- const fields_1 = require("../fields");
7
- const index_1 = require("../index");
8
- const utils_1 = require("../utils");
9
- exports.oneToOneLoadOperation = "o2o-load";
10
- function oneToOneDataLoader(em, reference) {
11
- // The metadata for the entity that contains the reference, i.e. Author.image is the o2o,
12
- // and (otherMeta/otherFieldName) Image.author is the physical m2o/FK column.
13
- const meta = (0, EntityMetadata_1.getMetadata)(reference.entity);
14
- const batchKey = `${meta.tableName}-${reference.fieldName}`;
15
- return em.getLoader(exports.oneToOneLoadOperation, batchKey, async (_keys) => {
16
- const { otherMeta, otherFieldName } = reference;
17
- (0, index_1.assertIdsAreTagged)(_keys);
18
- const keys = (0, index_1.deTagIds)(meta, _keys);
19
- const alias = (0, utils_1.abbreviation)(otherMeta.tableName);
20
- const o2o = meta.allFields[reference.fieldName];
21
- const other = otherMeta.allFields[reference.otherFieldName];
22
- const query = {
23
- selects: [`"${alias}".*`],
24
- tables: [{ alias, join: "primary", table: otherMeta.tableName }],
25
- condition: {
26
- kind: "exp",
27
- op: "and",
28
- conditions: [
29
- {
30
- kind: "column",
31
- alias: `${alias}${other.aliasSuffix}`,
32
- column: o2o.otherColumnName,
33
- dbType: meta.idDbType,
34
- cond: { kind: "in", value: keys },
35
- },
36
- ],
37
- },
38
- orderBys: [],
39
- };
40
- (0, index_1.addTablePerClassJoinsAndClassTag)(query, otherMeta, alias, true);
41
- const { em } = reference.entity;
42
- const rows = await em["executeFind"](otherMeta, exports.oneToOneLoadOperation, query, {});
43
- const entities = em.hydrate(otherMeta.cstr, rows);
44
- const entitiesByOtherId = (0, utils_1.groupBy)(entities, (entity) => {
45
- // TODO If this came from the UoW, it may not be an id? I.e. pre-insert.
46
- const ownerId = (0, index_1.maybeResolveReferenceToId)((0, fields_1.getField)(entity, otherFieldName));
47
- // We almost always expect ownerId to be found, b/c normally we just hydrated this entity
48
- // directly from a SQL row with owner_id=X, however we might be loading this reference
49
- // (i.e. find all children where owner_id=X) when the SQL thinks a child is still pointing
50
- // at the parent (i.e. owner_id=X in the db), but our already-loaded child has had its
51
- // `child.owner` field either changed to some other owner, or set to undefined. In either,
52
- // that child should no longer be parent of this owner's collection, so just return a
53
- // dummy value.
54
- return ownerId ?? "dummyNoLongerOwned";
55
- });
56
- return _keys.map((k) => entitiesByOtherId.get(k)?.[0]);
57
- });
58
- }
59
- //# sourceMappingURL=oneToOneDataLoader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oneToOneDataLoader.js","sourceRoot":"","sources":["../../src/dataloaders/oneToOneDataLoader.ts"],"names":[],"mappings":";;;AAiBA,gDAuDC;AArED,sDAA+D;AAC/D,sCAAqC;AACrC,oCAMkB;AAElB,oCAAiD;AAEpC,QAAA,qBAAqB,GAAG,UAAU,CAAC;AAEhD,SAAgB,kBAAkB,CAChC,EAAiB,EACjB,SAAsC;IAEtC,yFAAyF;IACzF,6EAA6E;IAC7E,MAAM,IAAI,GAAG,IAAA,4BAAW,EAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;IAC5D,OAAO,EAAE,CAAC,SAAS,CAAC,6BAAqB,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;QACnE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,SAAS,CAAC;QAEhD,IAAA,0BAAkB,EAAC,KAAK,CAAC,CAAC;QAC1B,MAAM,IAAI,GAAG,IAAA,gBAAQ,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAEnC,MAAM,KAAK,GAAG,IAAA,oBAAY,EAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAChD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,SAAS,CAAkB,CAAC;QACjE,MAAM,KAAK,GAAG,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QAC5D,MAAM,KAAK,GAAoB;YAC7B,OAAO,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC;YACzB,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,SAAS,EAAE,CAAC;YAChE,SAAS,EAAE;gBACT,IAAI,EAAE,KAAK;gBACX,EAAE,EAAE,KAAK;gBACT,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,QAAQ;wBACd,KAAK,EAAE,GAAG,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE;wBACrC,MAAM,EAAE,GAAG,CAAC,eAAe;wBAC3B,MAAM,EAAE,IAAI,CAAC,QAAQ;wBACrB,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;qBAClC;iBACF;aACF;YACD,QAAQ,EAAE,EAAE;SACb,CAAC;QACF,IAAA,wCAAgC,EAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAEhE,MAAM,EAAE,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,CAAC;QAChC,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,CAAC,SAAS,EAAE,6BAAqB,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAClF,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAElD,MAAM,iBAAiB,GAAG,IAAA,eAAO,EAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE;YACrD,wEAAwE;YACxE,MAAM,OAAO,GAAG,IAAA,iCAAyB,EAAC,IAAA,iBAAQ,EAAC,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC;YAC5E,yFAAyF;YACzF,sFAAsF;YACtF,0FAA0F;YAC1F,sFAAsF;YACtF,0FAA0F;YAC1F,qFAAqF;YACrF,eAAe;YACf,OAAO,OAAO,IAAI,oBAAoB,CAAC;QACzC,CAAC,CAAC,CAAC;QACH,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAkB,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,13 +0,0 @@
1
- import DataLoader from "dataloader";
2
- import { Entity } from "../Entity";
3
- import { EntityMetadata } from "../EntityMetadata";
4
- import { EntityManager } from "../index";
5
- import { LoadHint } from "../loadHints";
6
- export declare const populateOperation = "populate";
7
- export declare function populateDataLoader(em: EntityManager, meta: EntityMetadata, hint: LoadHint<any>, mode: "preload" | "intermixed", opts?: {
8
- forceReload?: boolean;
9
- }): DataLoader<{
10
- entity: Entity;
11
- hint: LoadHint<any>;
12
- }, any>;
13
- //# sourceMappingURL=populateDataLoader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"populateDataLoader.d.ts","sourceRoot":"","sources":["../../src/dataloaders/populateDataLoader.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAEL,aAAa,EAOd,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAKxC,eAAO,MAAM,iBAAiB,aAAa,CAAC;AAE5C,wBAAgB,kBAAkB,CAChC,EAAE,EAAE,aAAa,EACjB,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,EACnB,IAAI,EAAE,SAAS,GAAG,YAAY,EAC9B,IAAI,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,GACnC,UAAU,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAA;CAAE,EAAE,GAAG,CAAC,CAmJ1D"}
@@ -1,148 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.populateOperation = void 0;
4
- exports.populateDataLoader = populateDataLoader;
5
- const HintTree_1 = require("../HintTree");
6
- const index_1 = require("../index");
7
- const reactiveHints_1 = require("../reactiveHints");
8
- const ReactiveField_1 = require("../relations/ReactiveField");
9
- const utils_1 = require("../utils");
10
- exports.populateOperation = "populate";
11
- function populateDataLoader(em, meta, hint, mode, opts = {}) {
12
- // For batching populates, we want different levels of course-ness:
13
- // - preloading populates that are only SQL should be batched together as much as possible, but
14
- // - intermixed populates (some with custom relations) should be batched as separately as possible
15
- // (while still batching identical populates together) to reduce the chance of promise deadlocks.
16
- //
17
- // I.e. if we know this is a sql-only hint, we can batch all loads for a given entity
18
- // together do leverage join-based preloading.
19
- //
20
- // However, intermixed batches can be prone to promise deadlocking (one relation .load getting
21
- // stuck in a batch that is asking for its own dependencies to load), so if this is an intermixed
22
- // hint, then use a batch key that includes the hint itself, which will make it unlikely
23
- // for non-sql relations to deadlock on each other/themselves.
24
- const batchKey = mode === "preload"
25
- ? `${meta.tagName}:${opts.forceReload}`
26
- : `${meta.tagName}:${JSON.stringify(hint)}:${opts.forceReload}`;
27
- return em.getLoader(exports.populateOperation, batchKey, async (populates) => {
28
- async function populateLayer(layerMeta, layerNode) {
29
- // Skip join-based preloading if nothing in this layer needs loading. If any entity in the list
30
- // needs loading, just load everything
31
- const { preloader } = (0, index_1.getEmInternalApi)(em);
32
- // We may not have a layerMeta if we're going through non-field properties
33
- if (preloader && layerMeta) {
34
- const preloadThisLayer = Object.entries(layerNode.hints).some(([key, hint]) => {
35
- return [...hint.entities].some((entity) => !!entity[key] && !entity[key].isLoaded && !entity[key].isPreloaded);
36
- });
37
- if (preloadThisLayer) {
38
- // Do an up-front SQL call of `select id, ...preloads... from table`,
39
- const assigner = new index_1.AliasAssigner();
40
- const meta = layerMeta;
41
- const alias = assigner.getAlias(meta.tableName);
42
- const entities = [...layerNode.entities].filter((e) => !e.isNewEntity);
43
- const ids = entities.map((e) => (0, index_1.keyToNumber)(meta, e.id));
44
- // Create a ParsedFindQuery for `addPreloading` to inject joins into
45
- const query = {
46
- // We already have the entities loaded, so can do just `SELECT a.id` + the preload columns
47
- selects: [(0, index_1.kqDot)(alias, "id")],
48
- tables: [{ alias, join: "primary", table: meta.tableName }],
49
- condition: {
50
- kind: "exp",
51
- op: "and",
52
- conditions: [
53
- { kind: "column", alias, column: "id", dbType: meta.idDbType, cond: { kind: "in", value: ids } },
54
- ],
55
- },
56
- orderBys: [],
57
- };
58
- // If we're selecting from small_publishers, join in our base class in case
59
- // the preloader wants to join on a column like `publishers.group_id`
60
- (0, index_1.addTablePerClassJoinsAndClassTag)(query, meta, alias, false);
61
- const hydrator = preloader.addPreloading(meta, layerNode, query);
62
- if (hydrator) {
63
- const rows = await em["executeFind"](meta, exports.populateOperation, query, {});
64
- const entitiesById = (0, index_1.indexBy)(entities, (e) => (0, index_1.keyToNumber)(meta, e.id));
65
- const entitiesInOrder = rows.map((row) => entitiesById.get(row["id"]));
66
- hydrator(rows, entitiesInOrder);
67
- }
68
- }
69
- }
70
- // One breadth-width pass (only 1 level deep, our 2nd pass recurses) to ensure each relation is loaded
71
- const loadPromises = Object.entries(layerNode.hints).flatMap(([key, tree]) => {
72
- return [...tree.entities].map((entity) => {
73
- const relation = (0, reactiveHints_1.getRelationFromMaybePolyKey)(entity, key);
74
- // This happens to let through non-relation hints like 'name' on user, which wasn't intentional,
75
- // but currently doesn't blow up (somehow), and is not depended on by internal tests.
76
- if (!relation || typeof relation.load !== "function") {
77
- // We don't want to throw on poly hints, because they're not actually loaded on the entity
78
- if ((0, reactiveHints_1.isPolyHint)(key))
79
- return;
80
- throw new Error(`Invalid load hint '${key}' on ${entity}`);
81
- }
82
- // If we're populating a hasReactiveField, don't bother loading it
83
- // if it's already been calculated (i.e. we have no reason to believe its value
84
- // is stale, so we should avoid pulling all of its data into memory).
85
- //
86
- // (Note that we can't do this same optimization for ReactiveReferenceImpl, because
87
- // as a FK, it will always need at least some `.load()` to fetch its entity from the database.
88
- // So we go ahead and call `.load()`, assuming it will just load its cached value, but it
89
- // will also check internally if it's marked for recalc, and load its load hint if necessary.
90
- if (relation instanceof ReactiveField_1.ReactiveFieldImpl && relation.isSet)
91
- return;
92
- if (relation.isLoaded && !opts.forceReload)
93
- return undefined;
94
- // Avoid creating a promise for preloaded relations
95
- if (relation.isPreloaded) {
96
- relation.preload();
97
- return undefined;
98
- }
99
- return relation.load(opts);
100
- });
101
- });
102
- // 2nd breadth-width pass to do nested load hints, this will fan out at the sibling level.
103
- // i.e. populateLayer(...reviews...) & populateLayer(...comments...)
104
- return Promise.all(loadPromises).then(() => {
105
- // Each of these keys will be fanning out to a new entity, like book -> reviews or book -> comments
106
- const nestedLoadPromises = Object.entries(layerNode.hints).map(([key, tree]) => {
107
- if (Object.keys(tree.hints).length === 0)
108
- return;
109
- // Get the children we found, i.e. [a1, a2, a3] -> all of their books
110
- const childrenByParent = new Map([...tree.entities].map((entity) => {
111
- const relation = (0, reactiveHints_1.getRelationFromMaybePolyKey)(entity, key);
112
- return [entity, relation ? (0, utils_1.toArray)(getEvenDeleted(relation)) : []];
113
- }));
114
- if (childrenByParent.size === 0)
115
- return;
116
- // Rewrite our node.entities to be the next layer of children, i.e. children will be all books, for all of
117
- // `[a1, a2, a3]`, but only the books of `a2` need to recurse into `book: reviews` and only the books of
118
- // `a3` need to recurse into `book: comments`, so swap `node.entities` (which is currently authors)
119
- // with the books. This is what prevents our dataloader-merged TreeHint from over-fetching and loading
120
- // the superset load hint for all entities.
121
- function rewrite(node) {
122
- node.entities = new Set(Array.from(node.entities).flatMap((entity) => childrenByParent.get(entity) ?? []));
123
- Object.values(node.hints).forEach((node) => rewrite(node));
124
- }
125
- rewrite(tree);
126
- const nextMeta = layerMeta?.allFields[key]?.otherMetadata?.();
127
- return populateLayer(nextMeta, tree);
128
- });
129
- return Promise.all(nestedLoadPromises);
130
- });
131
- }
132
- return populateLayer(meta, (0, HintTree_1.buildHintTree)(populates)).then(() => populates);
133
- },
134
- // We always disable caching, because during a UoW, having called `populate(author, nestedHint1)`
135
- // once doesn't mean that, on the 2nd call to `populate(author, nestedHint1)`, we can completely
136
- // skip it b/c author's relations may have been changed/mutated to different not-yet-loaded
137
- // entities.
138
- //
139
- // Even though having `{ cache: false }` looks weird here, i.e. why use dataloader at all?, it
140
- // still helps us fan-in resolvers callers that are happening ~simultaneously into the same
141
- // effort.
142
- { cache: false });
143
- }
144
- /** Probes `relation` to see if it's a m2o/o2m/m2m relation that supports `getWithDeleted`, otherwise calls `get`. */
145
- function getEvenDeleted(relation) {
146
- return "getWithDeleted" in relation ? relation.getWithDeleted : relation.get;
147
- }
148
- //# sourceMappingURL=populateDataLoader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"populateDataLoader.js","sourceRoot":"","sources":["../../src/dataloaders/populateDataLoader.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import DataLoader from "dataloader";
2
- import { Entity } from "../Entity";
3
- import { EntityManager } from "../EntityManager";
4
- import { RecursiveChildrenCollectionImpl } from "../relations/RecursiveCollection";
5
- export declare const recursiveChildrenOperation = "o2m-recursive";
6
- export declare function recursiveChildrenDataLoader<T extends Entity, U extends Entity>(em: EntityManager, collection: RecursiveChildrenCollectionImpl<T, U>): DataLoader<Entity, U[]>;
7
- //# sourceMappingURL=recursiveChildrenDataLoader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"recursiveChildrenDataLoader.d.ts","sourceRoot":"","sources":["../../src/dataloaders/recursiveChildrenDataLoader.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,aAAa,EAAoB,MAAM,kBAAkB,CAAC;AAcnE,OAAO,EAAE,+BAA+B,EAAE,MAAM,kCAAkC,CAAC;AAGnF,eAAO,MAAM,0BAA0B,kBAAkB,CAAC;AAE1D,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAC5E,EAAE,EAAE,aAAa,EACjB,UAAU,EAAE,+BAA+B,CAAC,CAAC,EAAE,CAAC,CAAC,GAChD,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAwEzB"}
@@ -1,77 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.recursiveChildrenOperation = void 0;
4
- exports.recursiveChildrenDataLoader = recursiveChildrenDataLoader;
5
- const configure_1 = require("../configure");
6
- const EntityManager_1 = require("../EntityManager");
7
- const index_1 = require("../index");
8
- const utils_1 = require("../utils");
9
- exports.recursiveChildrenOperation = "o2m-recursive";
10
- function recursiveChildrenDataLoader(em, collection) {
11
- let { meta, fieldName } = collection;
12
- // This could be called from subtypes to get relations defined on the parent. So we need to make sure we are using the
13
- // correct meta by walking the inheritance tree until we find the meta that actually has the root o2m field
14
- while (!(collection.o2mFieldName in meta.fields) && meta.baseType)
15
- meta = (0, configure_1.getMetadataForType)(meta.baseType);
16
- const batchKey = `${meta.tableName}-${fieldName}`;
17
- return em.getLoader(exports.recursiveChildrenOperation, batchKey, async (parents) => {
18
- const o2m = meta.allFields[collection.o2mFieldName];
19
- const m2o = meta.allFields[o2m.otherFieldName];
20
- const { columnName } = m2o.serde.columns[0];
21
- const alias = (0, utils_1.abbreviation)(meta.tableName);
22
- const query = {
23
- selects: [`"${alias}".*`],
24
- tables: [
25
- // We still select directly from our table, and join into the CTE so that we
26
- // can use `addTablePerClassJoinsAndClassTag` to get inheritance added for free.
27
- { alias, join: "primary", table: meta.tableName },
28
- { alias: `${alias}_cte`, join: "inner", table: `${alias}_cte`, col1: `${alias}.id`, col2: `${alias}_cte.id` },
29
- ],
30
- orderBys: [{ alias, column: "id", order: "ASC" }],
31
- ctes: [
32
- {
33
- alias: `${alias}_cte`,
34
- query: {
35
- kind: "raw",
36
- // b is our base case, which is the immediate children of the parents, and r is the
37
- // recursive case of finding their children.
38
- sql: `
39
- SELECT b.id, b.${columnName} FROM ${(0, index_1.kq)(meta.tableName)} b WHERE b.${columnName} = ANY(?)
40
- UNION
41
- SELECT r.id, r.${columnName} FROM ${(0, index_1.kq)(meta.tableName)} r JOIN ${alias}_cte ON r.${columnName} = ${alias}_cte.id
42
- `,
43
- // RecursiveChildrenCollectionImpl won't call `.load` on new entities, so we can assume entities have an id
44
- bindings: [(0, index_1.unsafeDeTagIds)(parents.map((e) => e.idTagged))],
45
- },
46
- recursive: true,
47
- },
48
- ],
49
- };
50
- (0, index_1.addTablePerClassJoinsAndClassTag)(query, meta, alias, true);
51
- const rows = await em["executeFind"](meta, exports.recursiveChildrenOperation, query, {});
52
- const entities = em.hydrate(meta.cstr, rows);
53
- // For all the entities we found, group them by their parent (or the root node, which has no parent)
54
- const entitiesById = (0, utils_1.groupBy)(entities, (entity) => {
55
- const parentId = (0, index_1.maybeResolveReferenceToId)((0, index_1.getField)(entity, m2o.fieldName));
56
- return parentId ?? "root";
57
- });
58
- // For each found parent, use the preloading infra to inject the children into the relation
59
- for (const [parentId, children] of entitiesById) {
60
- if (parentId !== "root") {
61
- (0, EntityManager_1.getEmInternalApi)(em).setPreloadedRelation(parentId, o2m.fieldName, children);
62
- // I thought we could delay calling this, but currently `em.populate` calls `preload()` explicitly
63
- em.getEntity(parentId)[o2m.fieldName].preload();
64
- }
65
- }
66
- // Any entity[o2m] still not loaded must be a leaf which didn't have any children; go ahead and mark it as loaded
67
- for (const entity of [...parents, ...entities]) {
68
- if (!(0, index_1.isLoadedCollection)(entity[o2m.fieldName]) && !(0, index_1.isLoadedOneToOneReference)(entity[o2m.fieldName])) {
69
- (0, EntityManager_1.getEmInternalApi)(em).setPreloadedRelation(entity.id, o2m.fieldName, []);
70
- entity[o2m.fieldName].preload();
71
- }
72
- }
73
- // We used preloading to load keys + any recursive keys, so the return value doesn't matter
74
- return parents.map(() => []);
75
- });
76
- }
77
- //# sourceMappingURL=recursiveChildrenDataLoader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"recursiveChildrenDataLoader.js","sourceRoot":"","sources":["../../src/dataloaders/recursiveChildrenDataLoader.ts"],"names":[],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import DataLoader from "dataloader";
2
- import { Entity } from "../Entity";
3
- import { EntityManager } from "../EntityManager";
4
- import { RecursiveParentsCollectionImpl } from "../relations/RecursiveCollection";
5
- export declare const recursiveParentsOperation = "m2o-recursive";
6
- export declare function recursiveParentsDataLoader<T extends Entity, U extends Entity>(em: EntityManager, collection: RecursiveParentsCollectionImpl<T, U>): DataLoader<Entity, U[]>;
7
- //# sourceMappingURL=recursiveParentsDataLoader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"recursiveParentsDataLoader.d.ts","sourceRoot":"","sources":["../../src/dataloaders/recursiveParentsDataLoader.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AASjD,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAGlF,eAAO,MAAM,yBAAyB,kBAAkB,CAAC;AAEzD,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAC3E,EAAE,EAAE,aAAa,EACjB,UAAU,EAAE,8BAA8B,CAAC,CAAC,EAAE,CAAC,CAAC,GAC/C,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAqDzB"}
@@ -1,59 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.recursiveParentsOperation = void 0;
4
- exports.recursiveParentsDataLoader = recursiveParentsDataLoader;
5
- const configure_1 = require("../configure");
6
- const index_1 = require("../index");
7
- const utils_1 = require("../utils");
8
- exports.recursiveParentsOperation = "m2o-recursive";
9
- function recursiveParentsDataLoader(em, collection) {
10
- let { meta, fieldName } = collection;
11
- // This could be called from subtypes to get relations defined on the parent. So we need to make sure we are using the
12
- // correct meta by walking the inheritance tree until we find the meta that actually has the root m2o field
13
- while (!(collection.m2oFieldName in meta.fields) && meta.baseType)
14
- meta = (0, configure_1.getMetadataForType)(meta.baseType);
15
- const batchKey = `${meta.tableName}-${fieldName}`;
16
- return em.getLoader(exports.recursiveParentsOperation, batchKey, async (children) => {
17
- const m2o = meta.allFields[collection.m2oFieldName];
18
- // ...can `getField` return a new entity? In theory, we shouldn't see new entities because
19
- // RecursiveParentsCollectionImpl.load/isLoaded will see the `ManyToOneReferenceImpl` as loaded.
20
- const immediateParentIds = children.map((c) => (0, index_1.getField)(c, m2o.fieldName)).filter((id) => id !== undefined);
21
- const { columnName } = m2o.serde.columns[0];
22
- const alias = (0, utils_1.abbreviation)(meta.tableName);
23
- const query = {
24
- selects: [`"${alias}".*`],
25
- tables: [
26
- // We still select directly from our table, and join into the CTE so that we
27
- // can use `addTablePerClassJoinsAndClassTag` to get inheritance added for free.
28
- { alias, join: "primary", table: meta.tableName },
29
- { alias: `${alias}_cte`, join: "inner", table: `${alias}_cte`, col1: `${alias}.id`, col2: `${alias}_cte.id` },
30
- ],
31
- orderBys: [{ alias, column: "id", order: "ASC" }],
32
- ctes: [
33
- {
34
- alias: `${alias}_cte`,
35
- query: {
36
- kind: "raw",
37
- // b is our base case, which is the immediate parents of the children we're loading,
38
- // and r is the recursive case of finding their parents.
39
- sql: `
40
- SELECT b.id, b.${columnName} FROM ${(0, index_1.kq)(meta.tableName)} b WHERE b.id = ANY(?)
41
- UNION
42
- SELECT r.id, r.${columnName} FROM ${(0, index_1.kq)(meta.tableName)} r JOIN ${alias}_cte ON r.id = ${alias}_cte.${columnName}
43
- `,
44
- bindings: [(0, index_1.unsafeDeTagIds)(immediateParentIds)],
45
- },
46
- recursive: true,
47
- },
48
- ],
49
- };
50
- (0, index_1.addTablePerClassJoinsAndClassTag)(query, meta, alias, true);
51
- const rows = await em["executeFind"](meta, exports.recursiveParentsOperation, query, {});
52
- // Since we're preloading m2os up the tree, merely having the entities in the EM is enough
53
- // for the ManyToOneReferenceImpl to find them, so we don't need to map them back to the
54
- // keys, or push them into the preloader cache.
55
- em.hydrate(meta.cstr, rows);
56
- return children.map(() => []);
57
- });
58
- }
59
- //# sourceMappingURL=recursiveParentsDataLoader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"recursiveParentsDataLoader.js","sourceRoot":"","sources":["../../src/dataloaders/recursiveParentsDataLoader.ts"],"names":[],"mappings":"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"}
@@ -1,54 +0,0 @@
1
- import { Deferred } from "joist-utils";
2
- import { Entity } from "./Entity";
3
- import { EntityMetadata } from "./EntityMetadata";
4
- import { ReactiveHint } from "./reactiveHints";
5
- export declare function hasDefaultValue(meta: EntityMetadata, fieldName: string): boolean;
6
- /** Run the sync defaults for `entity`. */
7
- export declare function setSyncDefaults(entity: Entity): void;
8
- /** Runs the async defaults for all inserted entities in `todos`. */
9
- export declare function setAsyncDefaults(suppressedTypeErrors: Error[], ctx: unknown, insertsBySubType: Map<EntityMetadata, Entity[]>): Promise<void>;
10
- /** Sets async defaults *synchronously*, only safe for factories with `DeepNew` entities. */
11
- export declare function setAsyncDefaultsSynchronously(ctx: unknown, entity: Entity): void;
12
- /** Wraps the hint + lambda of an async `setDefault`. */
13
- export declare class AsyncDefault<T extends Entity> {
14
- #private;
15
- readonly fieldName: string;
16
- readonly fieldHint: ReactiveHint<T>;
17
- readonly fn: (entity: any, ctx: any) => any;
18
- constructor(fieldName: string, fieldHint: ReactiveHint<T>, fn: (entity: T, ctx: any) => any);
19
- /** Given a list of inserts of the same type/subtype, set ourselves on each of them. */
20
- setOnEntities(ctx: any, dt: DependencyTracker, suppressedTypeErrors: Error[], baseMetadata: EntityMetadata, inserts: T[]): Promise<any>;
21
- setOnFactoryEntity(ctx: unknown, entity: T): void;
22
- /** For the given `entity`, returns what the default value should be. */
23
- private getValue;
24
- private deps;
25
- }
26
- type DefaultDependency = {
27
- meta: EntityMetadata;
28
- fieldName: string;
29
- };
30
- /**
31
- * Given a `meta` and a nested field hint, return the meta+field tuples included within the hint.
32
- *
33
- * I.e. passing `{ author: { firstName: {}, publisher: "name" } }` would return `[[Author, "firstName"],
34
- * [Publisher, "name"]]`.
35
- */
36
- export declare function getDefaultDependencies<T extends Entity>(baseMeta: EntityMetadata<T>, baseFieldName: string, baseHint: ReactiveHint<T>): DefaultDependency[];
37
- /**
38
- * This tracks cross-default dependencies that are active within a single `em.flush` loop.
39
- *
40
- * I.e. this is not a static "the Author.firstName in general depends on Publisher.whatever",
41
- * it tracks that we're actively inserting 10 new `Author` instances, and their `firstName`
42
- * default needs to wait until the `Publisher.whatever` fields have their async default
43
- * calculated.
44
- *
45
- * Really this is just a smaller wrapper around a map of `Deferred`s.
46
- */
47
- declare class DependencyTracker {
48
- #private;
49
- constructor(insertsBySubType: Map<EntityMetadata, Entity[]>);
50
- hasMaybePending(meta: EntityMetadata): boolean;
51
- getDeferred(meta: EntityMetadata, fieldName: string): Deferred<void>;
52
- }
53
- export {};
54
- //# sourceMappingURL=defaults.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,cAAc,EAAsE,MAAM,kBAAkB,CAAC;AAGtH,OAAO,EAAqB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAIlE,wBAAgB,eAAe,CAAC,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAIhF;AAED,0CAA0C;AAC1C,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAyCpD;AAED,oEAAoE;AACpE,wBAAsB,gBAAgB,CACpC,oBAAoB,EAAE,KAAK,EAAE,EAC7B,GAAG,EAAE,OAAO,EAIZ,gBAAgB,EAAE,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC,GAC9C,OAAO,CAAC,IAAI,CAAC,CAWf;AAED,4FAA4F;AAC5F,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAKhF;AAED,wDAAwD;AACxD,qBAAa,YAAY,CAAC,CAAC,SAAS,MAAM;;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IACpC,QAAQ,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC;gBAKhC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,KAAK,GAAG;IAM3F,uFAAuF;IACjF,aAAa,CACjB,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,iBAAiB,EACrB,oBAAoB,EAAE,KAAK,EAAE,EAC7B,YAAY,EAAE,cAAc,EAC5B,OAAO,EAAE,CAAC,EAAE,GACX,OAAO,CAAC,GAAG,CAAC;IA0Df,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI;IAmCjD,wEAAwE;IACxE,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,IAAI;CAGb;AAED,KAAK,iBAAiB,GAAG;IACvB,IAAI,EAAE,cAAc,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,MAAM,EACrD,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,EAC3B,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,GACxB,iBAAiB,EAAE,CAuCrB;AAED;;;;;;;;;GASG;AACH,cAAM,iBAAiB;;gBAIT,gBAAgB,EAAE,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,CAAC;IAQ3D,eAAe,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO;IAI9C,WAAW,CAAC,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC;CASrE"}