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,8 +0,0 @@
1
- /** A base class for relations & non-relation (i.e. `ReactiveField) properties. */
2
- export declare abstract class AbstractPropertyImpl<T> {
3
- #private;
4
- constructor(entity: T);
5
- get entity(): T;
6
- abstract get isLoaded(): boolean;
7
- }
8
- //# sourceMappingURL=AbstractPropertyImpl.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AbstractPropertyImpl.d.ts","sourceRoot":"","sources":["../../src/relations/AbstractPropertyImpl.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,8BAAsB,oBAAoB,CAAC,CAAC;;gBAG9B,MAAM,EAAE,CAAC;IAIrB,IAAI,MAAM,IAAI,CAAC,CAEd;IAED,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC;CAClC"}
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AbstractPropertyImpl = void 0;
4
- /** A base class for relations & non-relation (i.e. `ReactiveField) properties. */
5
- class AbstractPropertyImpl {
6
- #entity;
7
- constructor(entity) {
8
- this.#entity = entity;
9
- }
10
- get entity() {
11
- return this.#entity;
12
- }
13
- }
14
- exports.AbstractPropertyImpl = AbstractPropertyImpl;
15
- //# sourceMappingURL=AbstractPropertyImpl.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AbstractPropertyImpl.js","sourceRoot":"","sources":["../../src/relations/AbstractPropertyImpl.ts"],"names":[],"mappings":";;;AAAA,kFAAkF;AAClF,MAAsB,oBAAoB;IACxC,OAAO,CAAI;IAEX,YAAY,MAAS;QACnB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CAGF;AAZD,oDAYC"}
@@ -1,36 +0,0 @@
1
- import { AbstractPropertyImpl } from "./AbstractPropertyImpl";
2
- /**
3
- * Defines common hooks that relations can respond to to keep the entity graph in sync.
4
- */
5
- export declare abstract class AbstractRelationImpl<T, U> extends AbstractPropertyImpl<T> {
6
- constructor(entity: T);
7
- /** Called with the opts from a `new` or `em.create` call, i.e. on a new entity. */
8
- abstract setFromOpts(value: U): void;
9
- /** Similar to setFromOpts, but called post-construction. */
10
- abstract set(value: U): void;
11
- /** Whether this relation is loaded. */
12
- abstract get isLoaded(): boolean;
13
- /** Whether this relation is preloaded. */
14
- abstract get isPreloaded(): boolean;
15
- /** Loads the other side of this relation. */
16
- abstract load(opts?: {
17
- forceReload?: boolean;
18
- }): Promise<any>;
19
- /** Whether the relation from the preload cache, if preloaded. */
20
- abstract preload(): void;
21
- abstract get get(): U | undefined;
22
- /**
23
- * Called when our entity has been `EntityManager.delete`'d _and_ `EntityManager.flush` is being called,
24
- * so we can unset any foreign keys to the being-deleted entity and clear out any pointers to it.
25
- */
26
- abstract cleanupOnEntityDeleted(): Promise<void>;
27
- /**
28
- * Called to cascade deletes into the relation if it has cascade behavior enabled. This function is called twice,
29
- * once on the initial `EntityManager.delete` call in a potentially unloaded state, then again from a `beforeDelete`
30
- * hook after the relation is fully loaded.
31
- */
32
- abstract maybeCascadeDelete(): void;
33
- abstract get fieldName(): string;
34
- }
35
- export declare function isCascadeDelete(relation: AbstractRelationImpl<any, any>, fieldName: string): boolean;
36
- //# sourceMappingURL=AbstractRelationImpl.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AbstractRelationImpl.d.ts","sourceRoot":"","sources":["../../src/relations/AbstractRelationImpl.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D;;GAEG;AACH,8BAAsB,oBAAoB,CAAC,CAAC,EAAE,CAAC,CAAE,SAAQ,oBAAoB,CAAC,CAAC,CAAC;gBAClE,MAAM,EAAE,CAAC;IAIrB,mFAAmF;IACnF,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAEpC,4DAA4D;IAC5D,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAE5B,uCAAuC;IACvC,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC;IAEjC,0CAA0C;IAC1C,QAAQ,KAAK,WAAW,IAAI,OAAO,CAAC;IAEpC,6CAA6C;IAC7C,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,GAAG,CAAC;IAE7D,iEAAiE;IACjE,QAAQ,CAAC,OAAO,IAAI,IAAI;IAExB,QAAQ,KAAK,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC;IAElC;;;OAGG;IACH,QAAQ,CAAC,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IAEhD;;;;OAIG;IACH,QAAQ,CAAC,kBAAkB,IAAI,IAAI;IAEnC,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC;CAClC;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,oBAAoB,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAIpG"}
@@ -1,19 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AbstractRelationImpl = void 0;
4
- exports.isCascadeDelete = isCascadeDelete;
5
- const EntityMetadata_1 = require("../EntityMetadata");
6
- const AbstractPropertyImpl_1 = require("./AbstractPropertyImpl");
7
- /**
8
- * Defines common hooks that relations can respond to to keep the entity graph in sync.
9
- */
10
- class AbstractRelationImpl extends AbstractPropertyImpl_1.AbstractPropertyImpl {
11
- constructor(entity) {
12
- super(entity);
13
- }
14
- }
15
- exports.AbstractRelationImpl = AbstractRelationImpl;
16
- function isCascadeDelete(relation, fieldName) {
17
- return (0, EntityMetadata_1.getBaseAndSelfMetas)((0, EntityMetadata_1.getMetadata)(relation.entity)).some((meta) => meta.config.__data.cascadeDeleteFields.includes(fieldName));
18
- }
19
- //# sourceMappingURL=AbstractRelationImpl.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AbstractRelationImpl.js","sourceRoot":"","sources":["../../src/relations/AbstractRelationImpl.ts"],"names":[],"mappings":";;;AA+CA,0CAIC;AAnDD,sDAAqE;AACrE,iEAA8D;AAE9D;;GAEG;AACH,MAAsB,oBAA2B,SAAQ,2CAAuB;IAC9E,YAAY,MAAS;QACnB,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;CAoCF;AAvCD,oDAuCC;AAED,SAAgB,eAAe,CAAC,QAAwC,EAAE,SAAiB;IACzF,OAAO,IAAA,oCAAmB,EAAC,IAAA,4BAAW,EAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CACrE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,SAAgB,CAAC,CAClE,CAAC;AACJ,CAAC"}
@@ -1,28 +0,0 @@
1
- import { Entity } from "../Entity";
2
- import { IdOf } from "../EntityManager";
3
- import { Relation } from "./index";
4
- /** A collection of `U` within `T`, either one-to-many or many-to-many. */
5
- export interface Collection<T extends Entity, U extends Entity> extends Relation<T, U> {
6
- load(opts?: {
7
- withDeleted: boolean;
8
- }): Promise<ReadonlyArray<U>>;
9
- /** Looks up the specific `id` without fully loading the collection. */
10
- find(id: IdOf<U>): Promise<U | undefined>;
11
- /** Looks up the specific `other` without fully loading the collection. */
12
- includes(other: U): Promise<boolean>;
13
- add(other: U): void;
14
- remove(other: U): void;
15
- readonly isLoaded: boolean;
16
- }
17
- /** Adds a known-safe `get` accessor. */
18
- export interface LoadedCollection<T extends Entity, U extends Entity> extends Collection<T, U> {
19
- get: ReadonlyArray<U>;
20
- getWithDeleted: ReadonlyArray<U>;
21
- set(values: U[]): void;
22
- removeAll(): void;
23
- }
24
- /** Type guard utility for determining if an entity field is a Collection. */
25
- export declare function isCollection(maybeCollection: any): maybeCollection is Collection<any, any>;
26
- /** Type guard utility for determining if an entity field is a loaded Collection. */
27
- export declare function isLoadedCollection(maybeCollection: any): maybeCollection is Collection<any, any> & LoadedCollection<any, any>;
28
- //# sourceMappingURL=Collection.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Collection.d.ts","sourceRoot":"","sources":["../../src/relations/Collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAML,QAAQ,EACT,MAAM,SAAS,CAAC;AAEjB,0EAA0E;AAC1E,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAE,SAAQ,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;IACpF,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,WAAW,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjE,uEAAuE;IACvE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;IAE1C,0EAA0E;IAC1E,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAErC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAEpB,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAEvB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED,wCAAwC;AACxC,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAE,SAAQ,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5F,GAAG,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAEtB,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAEjC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC;IAEvB,SAAS,IAAI,IAAI,CAAC;CACnB;AAED,6EAA6E;AAC7E,wBAAgB,YAAY,CAAC,eAAe,EAAE,GAAG,GAAG,eAAe,IAAI,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAQ1F;AAED,oFAAoF;AACpF,wBAAgB,kBAAkB,CAChC,eAAe,EAAE,GAAG,GACnB,eAAe,IAAI,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,CAEtE"}
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isCollection = isCollection;
4
- exports.isLoadedCollection = isLoadedCollection;
5
- const index_1 = require("./index");
6
- /** Type guard utility for determining if an entity field is a Collection. */
7
- function isCollection(maybeCollection) {
8
- return (maybeCollection instanceof index_1.OneToManyCollection ||
9
- maybeCollection instanceof index_1.ManyToManyCollection ||
10
- maybeCollection instanceof index_1.ReactiveManyToManyImpl ||
11
- maybeCollection instanceof index_1.ReactiveManyToManyOtherSideImpl ||
12
- maybeCollection instanceof index_1.CustomCollection);
13
- }
14
- /** Type guard utility for determining if an entity field is a loaded Collection. */
15
- function isLoadedCollection(maybeCollection) {
16
- return isCollection(maybeCollection) && maybeCollection.isLoaded;
17
- }
18
- //# sourceMappingURL=Collection.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Collection.js","sourceRoot":"","sources":["../../src/relations/Collection.ts"],"names":[],"mappings":";;AAwCA,oCAQC;AAGD,gDAIC;AArDD,mCAOiB;AA8BjB,6EAA6E;AAC7E,SAAgB,YAAY,CAAC,eAAoB;IAC/C,OAAO,CACL,eAAe,YAAY,2BAAmB;QAC9C,eAAe,YAAY,4BAAoB;QAC/C,eAAe,YAAY,8BAAsB;QACjD,eAAe,YAAY,uCAA+B;QAC1D,eAAe,YAAY,wBAAgB,CAC5C,CAAC;AACJ,CAAC;AAED,oFAAoF;AACpF,SAAgB,kBAAkB,CAChC,eAAoB;IAEpB,OAAO,YAAY,CAAC,eAAe,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC;AACnE,CAAC"}
@@ -1,69 +0,0 @@
1
- import { Entity } from "../Entity";
2
- import { IdOf } from "../EntityManager";
3
- import { Collection, LoadHint } from "../index";
4
- import { AbstractRelationImpl } from "./AbstractRelationImpl";
5
- import { RelationT, RelationU } from "./Relation";
6
- export type CustomCollectionOpts<T extends Entity, U extends Entity> = {
7
- load: (entity: T, opts: {
8
- forceReload?: boolean;
9
- }) => Promise<any>;
10
- get: (entity: T) => readonly U[];
11
- set?: (entity: T, other: U[]) => void;
12
- find?: (entity: T, id: IdOf<U>) => U | undefined;
13
- add?: (entity: T, other: U) => void;
14
- remove?: (entity: T, other: U) => void;
15
- /** Whether the reference is loaded, even w/o an explicit `.load` call, i.e. for DeepNew test instances. */
16
- isLoaded: (entity: T) => boolean;
17
- /**
18
- * A load hint that can be used to speculatively traverse the dependencies of this collection. Currently
19
- * only used by em.importEntity and can be omitted if the collection isn't used with it.
20
- */
21
- loadHint?: ((entity: T) => LoadHint<T>) | LoadHint<T>;
22
- };
23
- export declare function hasCustomCollection<T extends Entity, U extends Entity>(opts: CustomCollectionOpts<T, U>): CustomCollection<T, U>;
24
- /**
25
- * Allows user-defined collections that will work in `populate` / preload hints.
26
- *
27
- * This works because Joist's `populate`/preloading is not based on creating giant SQL joins,
28
- * but instead by just walking "1 dataloader per level". Given this, we don't really care
29
- * what happens at each "level" of resolution, as long as: a) it's a promise, and b) the
30
- * caller uses dataloader to be batch friendly.
31
- *
32
- * This `CustomCollection` API is fairly low-level; users should more likely prefer higher-level
33
- * abstractions like `hasManyThrough`, which are built on `CustomCollection`.
34
- */
35
- export declare class CustomCollection<T extends Entity, U extends Entity> extends AbstractRelationImpl<T, readonly U[]> implements Collection<T, U> {
36
- #private;
37
- private opts;
38
- private loadPromise;
39
- constructor(entity: T, opts: CustomCollectionOpts<T, U>);
40
- get get(): readonly U[];
41
- get getWithDeleted(): readonly U[];
42
- get isLoaded(): boolean;
43
- resetIsLoaded(): void;
44
- get loadHint(): LoadHint<T> | undefined;
45
- load(opts?: {
46
- withDeleted?: boolean;
47
- forceReload?: boolean;
48
- }): Promise<readonly U[]>;
49
- get isPreloaded(): boolean;
50
- preload(): void;
51
- set(values: U[]): void;
52
- setFromOpts(values: U[]): void;
53
- find(id: IdOf<U>): Promise<U | undefined>;
54
- includes(other: U): Promise<boolean>;
55
- add(other: U): void;
56
- remove(other: U): void;
57
- cleanupOnEntityDeleted(): Promise<void>;
58
- maybeCascadeDelete(): void;
59
- /** Finds this CustomCollections field name by looking in the entity for the key that we're assigned to. */
60
- get fieldName(): string;
61
- get hasBeenSet(): boolean;
62
- toString(): string;
63
- private doGet;
64
- private filterDeleted;
65
- private ensureNewOrLoaded;
66
- [RelationT]: T;
67
- [RelationU]: U;
68
- }
69
- //# sourceMappingURL=CustomCollection.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CustomCollection.d.ts","sourceRoot":"","sources":["../../src/relations/CustomCollection.ts"],"names":[],"mappings":"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"}
@@ -1,166 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CustomCollection = void 0;
4
- exports.hasCustomCollection = hasCustomCollection;
5
- const EntityManager_1 = require("../EntityManager");
6
- const index_1 = require("../index");
7
- const newEntity_1 = require("../newEntity");
8
- const AbstractRelationImpl_1 = require("./AbstractRelationImpl");
9
- const Relation_1 = require("./Relation");
10
- function hasCustomCollection(opts) {
11
- return (0, newEntity_1.lazyField)((entity) => {
12
- return new CustomCollection(entity, opts);
13
- });
14
- }
15
- /**
16
- * Allows user-defined collections that will work in `populate` / preload hints.
17
- *
18
- * This works because Joist's `populate`/preloading is not based on creating giant SQL joins,
19
- * but instead by just walking "1 dataloader per level". Given this, we don't really care
20
- * what happens at each "level" of resolution, as long as: a) it's a promise, and b) the
21
- * caller uses dataloader to be batch friendly.
22
- *
23
- * This `CustomCollection` API is fairly low-level; users should more likely prefer higher-level
24
- * abstractions like `hasManyThrough`, which are built on `CustomCollection`.
25
- */
26
- class CustomCollection extends AbstractRelationImpl_1.AbstractRelationImpl {
27
- opts;
28
- // We keep both a promise+loaded flag and not an actual `this.loaded = await load` because
29
- // the values can become stale; we want to each `.get` call to repeatedly evaluate the latest values.
30
- loadPromise;
31
- #hasBeenSet = false;
32
- #isLoaded = undefined;
33
- #loadHint;
34
- constructor(entity, opts) {
35
- super(entity);
36
- this.opts = opts;
37
- }
38
- get get() {
39
- return this.doGet({ withDeleted: false });
40
- }
41
- get getWithDeleted() {
42
- return this.doGet({ withDeleted: true });
43
- }
44
- get isLoaded() {
45
- if (this.#isLoaded !== undefined)
46
- return this.#isLoaded;
47
- (0, EntityManager_1.getEmInternalApi)(this.entity.em).isLoadedCache.addNaive(this);
48
- this.#isLoaded = this.opts.isLoaded(this.entity);
49
- return this.#isLoaded;
50
- }
51
- resetIsLoaded() {
52
- this.#isLoaded = undefined;
53
- }
54
- get loadHint() {
55
- if (this.#loadHint === undefined && this.opts.loadHint !== undefined) {
56
- const { loadHint } = this.opts;
57
- this.#loadHint = typeof loadHint === "function" ? loadHint(this.entity) : loadHint;
58
- }
59
- return this.#loadHint;
60
- }
61
- async load(opts = {}) {
62
- (0, index_1.ensureNotDeleted)(this.entity, "pending");
63
- if (!this.isLoaded || opts.forceReload) {
64
- if (this.loadPromise === undefined) {
65
- this.loadPromise = this.opts.load(this.entity, opts);
66
- await this.loadPromise;
67
- this.loadPromise = undefined;
68
- this.#isLoaded = true;
69
- }
70
- else {
71
- await this.loadPromise;
72
- }
73
- }
74
- return this.doGet(opts);
75
- }
76
- get isPreloaded() {
77
- return false;
78
- }
79
- preload() {
80
- throw new Error("Not implemented");
81
- }
82
- set(values) {
83
- this.ensureNewOrLoaded();
84
- const { set, add, remove } = this.opts;
85
- if (set !== undefined) {
86
- set(this.entity, values);
87
- this.#hasBeenSet = true;
88
- }
89
- else if (add !== undefined && remove !== undefined) {
90
- const current = this.get;
91
- current.filter((value) => !values.includes(value)).forEach((value) => this.remove(value));
92
- values.filter((value) => !current.includes(value)).forEach((value) => this.add(value));
93
- this.#hasBeenSet = true;
94
- }
95
- else {
96
- (0, index_1.fail)(`'set' not implemented and not inferrable from 'add'/'remove' on ${this}`);
97
- }
98
- }
99
- setFromOpts(values) {
100
- this.set(values);
101
- }
102
- async find(id) {
103
- if (!this.isLoaded) {
104
- await this.load();
105
- }
106
- const { find } = this.opts;
107
- if (find === undefined) {
108
- return this.doGet().find((other) => other.id === id);
109
- }
110
- else {
111
- return find(this.entity, id);
112
- }
113
- }
114
- async includes(other) {
115
- throw new Error("Not implemented");
116
- }
117
- add(other) {
118
- this.ensureNewOrLoaded();
119
- const { add } = this.opts;
120
- if (add === undefined) {
121
- (0, index_1.fail)(`'add' not implemented on ${this}`);
122
- }
123
- add(this.entity, other);
124
- }
125
- remove(other) {
126
- this.ensureNewOrLoaded();
127
- const { remove } = this.opts;
128
- if (remove === undefined) {
129
- (0, index_1.fail)(`'add' not implemented on ${this}`);
130
- }
131
- remove(this.entity, other);
132
- }
133
- // these callbacks should be no-ops as they ought to be handled by the underlying relations
134
- async cleanupOnEntityDeleted() { }
135
- maybeCascadeDelete() { }
136
- /** Finds this CustomCollections field name by looking in the entity for the key that we're assigned to. */
137
- get fieldName() {
138
- // Something about running with the transformations breaks the `[0][0]` and it can NPE
139
- return Object.entries(this.entity).filter((e) => e[1] === this)[0]?.[0];
140
- }
141
- get hasBeenSet() {
142
- return this.#hasBeenSet;
143
- }
144
- toString() {
145
- return `CustomCollection(entity: ${this.entity}, fieldName: ${this.fieldName})`;
146
- }
147
- doGet(opts) {
148
- (0, index_1.ensureNotDeleted)(this.entity, "pending");
149
- this.ensureNewOrLoaded();
150
- return this.filterDeleted(this.opts.get(this.entity), opts);
151
- }
152
- filterDeleted(entities, opts) {
153
- return entities.filter((entity) => opts?.withDeleted === true || !entity.isDeletedEntity);
154
- }
155
- ensureNewOrLoaded() {
156
- // This should only be callable in the type system if we've already resolved this to an instance
157
- if (this.isLoaded) {
158
- return;
159
- }
160
- (0, index_1.fail)(`${this.entity}.${this.fieldName} was not loaded`);
161
- }
162
- [Relation_1.RelationT] = null;
163
- [Relation_1.RelationU] = null;
164
- }
165
- exports.CustomCollection = CustomCollection;
166
- //# sourceMappingURL=CustomCollection.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CustomCollection.js","sourceRoot":"","sources":["../../src/relations/CustomCollection.ts"],"names":[],"mappings":"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"}
@@ -1,71 +0,0 @@
1
- import { Entity } from "../Entity";
2
- import { IdOf, TaggedId } from "../EntityManager";
3
- import { LoadHint, Reference } from "../index";
4
- import { AbstractRelationImpl } from "./AbstractRelationImpl";
5
- import { ReferenceN } from "./Reference";
6
- import { RelationT, RelationU } from "./Relation";
7
- /** An alias for creating `CustomReference`s. */
8
- export declare function hasCustomReference<T extends Entity, U extends Entity, N extends never | undefined>(opts: CustomReferenceOpts<T, U, N>): CustomReference<T, U, N>;
9
- export type CustomReferenceOpts<T extends Entity, U extends Entity, N extends never | undefined> = {
10
- load: (entity: T, opts: {
11
- forceReload?: boolean;
12
- }) => Promise<unknown>;
13
- get: (entity: T) => U | N;
14
- set?: (entity: T, other: U) => void;
15
- /** Whether the reference is loaded, even w/o an explicit `.load` call, i.e. for DeepNew test instances. */
16
- isLoaded: (entity: T) => boolean;
17
- /**
18
- * A load hint that can be used to speculatively traverse the dependencies of this reference. Currently
19
- * only used by em.importEntity and can be omitted if the reference isn't used with it.
20
- */
21
- loadHint?: ((entity: T) => LoadHint<T>) | LoadHint<T>;
22
- };
23
- /**
24
- * Allows user-defined references that will work in `populate` / preload hints.
25
- *
26
- * This works because Joist's `populate`/preloading is not based on creating giant SQL joins,
27
- * but instead by just walking "1 dataloader per level". Given this, we don't really care
28
- * what happens at each "level" of resolution, as long as: a) it's a promise, and b) the
29
- * caller uses dataloader to be batch friendly.
30
- *
31
- * This `CustomReference` API is fairly low-level; users should more likely prefer higher-level
32
- * abstractions like `hasOneThrough`, which are built on `CustomReference.
33
- */
34
- export declare class CustomReference<T extends Entity, U extends Entity, N extends never | undefined> extends AbstractRelationImpl<T, U> implements Reference<T, U, N> {
35
- #private;
36
- private opts;
37
- private loadPromise;
38
- constructor(entity: T, opts: CustomReferenceOpts<T, U, N>);
39
- get get(): U | N;
40
- get getWithDeleted(): U | N;
41
- get isLoaded(): boolean;
42
- resetIsLoaded(): void;
43
- get loadHint(): LoadHint<T> | undefined;
44
- load(opts?: {
45
- withDeleted?: boolean;
46
- forceReload?: boolean;
47
- }): Promise<U | N>;
48
- get isPreloaded(): boolean;
49
- preload(): void;
50
- get id(): IdOf<U>;
51
- get idMaybe(): IdOf<U> | undefined;
52
- get idTaggedMaybe(): TaggedId | undefined;
53
- get idUntagged(): string;
54
- get idUntaggedMaybe(): string | undefined;
55
- get isSet(): boolean;
56
- set(value: U): void;
57
- setFromOpts(value: U): void;
58
- cleanupOnEntityDeleted(): Promise<void>;
59
- maybeCascadeDelete(): void;
60
- /** Finds this CustomReferences field name by looking in the entity for the key that we're assigned to. */
61
- get fieldName(): string;
62
- get hasBeenSet(): boolean;
63
- toString(): string;
64
- private doGet;
65
- private filterDeleted;
66
- private ensureNewOrLoaded;
67
- [RelationT]: T;
68
- [RelationU]: U;
69
- [ReferenceN]: N;
70
- }
71
- //# sourceMappingURL=CustomReference.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CustomReference.d.ts","sourceRoot":"","sources":["../../src/relations/CustomReference.ts"],"names":[],"mappings":"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"}
@@ -1,152 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CustomReference = void 0;
4
- exports.hasCustomReference = hasCustomReference;
5
- const EntityManager_1 = require("../EntityManager");
6
- const index_1 = require("../index");
7
- const newEntity_1 = require("../newEntity");
8
- const AbstractRelationImpl_1 = require("./AbstractRelationImpl");
9
- const Reference_1 = require("./Reference");
10
- const Relation_1 = require("./Relation");
11
- /** An alias for creating `CustomReference`s. */
12
- function hasCustomReference(opts) {
13
- return (0, newEntity_1.lazyField)((entity) => {
14
- return new CustomReference(entity, opts);
15
- });
16
- }
17
- /**
18
- * Allows user-defined references that will work in `populate` / preload hints.
19
- *
20
- * This works because Joist's `populate`/preloading is not based on creating giant SQL joins,
21
- * but instead by just walking "1 dataloader per level". Given this, we don't really care
22
- * what happens at each "level" of resolution, as long as: a) it's a promise, and b) the
23
- * caller uses dataloader to be batch friendly.
24
- *
25
- * This `CustomReference` API is fairly low-level; users should more likely prefer higher-level
26
- * abstractions like `hasOneThrough`, which are built on `CustomReference.
27
- */
28
- class CustomReference extends AbstractRelationImpl_1.AbstractRelationImpl {
29
- opts;
30
- // We keep both a promise+loaded flag and not an actual `this.loaded = await load` because
31
- // the value can become stale; we want to each `.get` call to repeatedly evaluate the latest value.
32
- loadPromise;
33
- #hasBeenSet = false;
34
- #isLoaded;
35
- #loadHint;
36
- constructor(entity, opts) {
37
- super(entity);
38
- this.opts = opts;
39
- }
40
- get get() {
41
- return this.doGet({ withDeleted: false });
42
- }
43
- get getWithDeleted() {
44
- return this.doGet({ withDeleted: true });
45
- }
46
- get isLoaded() {
47
- if (this.#isLoaded !== undefined)
48
- return this.#isLoaded;
49
- (0, EntityManager_1.getEmInternalApi)(this.entity.em).isLoadedCache.addNaive(this);
50
- this.#isLoaded = this.opts.isLoaded(this.entity);
51
- return this.#isLoaded;
52
- }
53
- resetIsLoaded() {
54
- this.#isLoaded = undefined;
55
- }
56
- get loadHint() {
57
- if (this.#loadHint === undefined && this.opts.loadHint !== undefined) {
58
- const { loadHint } = this.opts;
59
- this.#loadHint = typeof loadHint === "function" ? loadHint(this.entity) : loadHint;
60
- }
61
- return this.#loadHint;
62
- }
63
- async load(opts = {}) {
64
- (0, index_1.ensureNotDeleted)(this.entity, "pending");
65
- if (!this.isLoaded || opts.forceReload) {
66
- if (this.loadPromise === undefined) {
67
- this.loadPromise = this.opts.load(this.entity, opts);
68
- await this.loadPromise;
69
- this.loadPromise = undefined;
70
- this.#isLoaded = true;
71
- }
72
- else {
73
- await this.loadPromise;
74
- }
75
- }
76
- return this.doGet(opts);
77
- }
78
- get isPreloaded() {
79
- return false;
80
- }
81
- preload() {
82
- throw new Error("Not implemented");
83
- }
84
- get id() {
85
- return (0, index_1.fail)(`CustomReference cannot resolve 'id'`);
86
- }
87
- get idMaybe() {
88
- return (0, index_1.fail)(`CustomReference cannot resolve 'idMaybe'`);
89
- }
90
- get idTaggedMaybe() {
91
- return (0, index_1.fail)(`CustomReference cannot resolve 'idTaggedMaybe'`);
92
- }
93
- get idUntagged() {
94
- return (0, index_1.fail)(`CustomReference cannot resolve 'idUntagged'`);
95
- }
96
- get idUntaggedMaybe() {
97
- return (0, index_1.fail)(`CustomReference cannot resolve 'idUntaggedMaybe'`);
98
- }
99
- get isSet() {
100
- this.ensureNewOrLoaded();
101
- const { get } = this.opts;
102
- return get(this.entity) !== undefined;
103
- }
104
- set(value) {
105
- // We allow setting CustomReferences on new entities w/o being loaded
106
- if (!this.entity.isNewEntity) {
107
- this.ensureNewOrLoaded();
108
- }
109
- const { set } = this.opts;
110
- if (set === undefined) {
111
- throw new Error(`'set' not implemented on ${this}`);
112
- }
113
- set(this.entity, value);
114
- this.#hasBeenSet = true;
115
- }
116
- setFromOpts(value) {
117
- this.set(value);
118
- }
119
- // these callbacks should be no-ops as they ought to be handled by the underlying relations
120
- async cleanupOnEntityDeleted() { }
121
- maybeCascadeDelete() { }
122
- /** Finds this CustomReferences field name by looking in the entity for the key that we're assigned to. */
123
- get fieldName() {
124
- return Object.entries((0, index_1.getProperties)((0, index_1.getMetadata)(this.entity))).filter(([key]) => this.entity[key] === this)[0][0];
125
- }
126
- get hasBeenSet() {
127
- return this.#hasBeenSet;
128
- }
129
- toString() {
130
- return `CustomReference(entity: ${this.entity}, fieldName: ${this.fieldName})`;
131
- }
132
- doGet(opts) {
133
- (0, index_1.ensureNotDeleted)(this.entity, "pending");
134
- this.ensureNewOrLoaded();
135
- return this.filterDeleted(this.opts.get(this.entity), opts);
136
- }
137
- filterDeleted(entity, opts) {
138
- return opts?.withDeleted === true || entity === undefined || !entity.isDeletedEntity ? entity : undefined;
139
- }
140
- ensureNewOrLoaded() {
141
- // This should only be callable in the type system if we've already resolved this to an instance
142
- if (this.isLoaded) {
143
- return;
144
- }
145
- (0, index_1.fail)(`${this.entity}.${this.fieldName} was not loaded`);
146
- }
147
- [Relation_1.RelationT] = null;
148
- [Relation_1.RelationU] = null;
149
- [Reference_1.ReferenceN] = null;
150
- }
151
- exports.CustomReference = CustomReference;
152
- //# sourceMappingURL=CustomReference.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CustomReference.js","sourceRoot":"","sources":["../../src/relations/CustomReference.ts"],"names":[],"mappings":"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"}