joist-orm 1.293.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 (486) 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 -127
  18. package/build/index.d.ts.map +1 -1
  19. package/build/index.js +8 -282
  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/build/trusted.d.ts +5 -0
  38. package/build/trusted.d.ts.map +1 -0
  39. package/build/trusted.js +15 -0
  40. package/build/trusted.js.map +1 -0
  41. package/package.json +85 -16
  42. package/build/AliasAssigner.d.ts +0 -7
  43. package/build/AliasAssigner.d.ts.map +0 -1
  44. package/build/AliasAssigner.js +0 -30
  45. package/build/AliasAssigner.js.map +0 -1
  46. package/build/Aliases.d.ts +0 -110
  47. package/build/Aliases.d.ts.map +0 -1
  48. package/build/Aliases.js +0 -456
  49. package/build/Aliases.js.map +0 -1
  50. package/build/BaseEntity.d.ts +0 -66
  51. package/build/BaseEntity.d.ts.map +0 -1
  52. package/build/BaseEntity.js +0 -120
  53. package/build/BaseEntity.js.map +0 -1
  54. package/build/ConditionBuilder.d.ts +0 -50
  55. package/build/ConditionBuilder.d.ts.map +0 -1
  56. package/build/ConditionBuilder.js +0 -178
  57. package/build/ConditionBuilder.js.map +0 -1
  58. package/build/Entity.d.ts +0 -38
  59. package/build/Entity.d.ts.map +0 -1
  60. package/build/Entity.js +0 -8
  61. package/build/Entity.js.map +0 -1
  62. package/build/EntityFields.d.ts +0 -37
  63. package/build/EntityFields.d.ts.map +0 -1
  64. package/build/EntityFields.js +0 -3
  65. package/build/EntityFields.js.map +0 -1
  66. package/build/EntityFilter.d.ts +0 -113
  67. package/build/EntityFilter.d.ts.map +0 -1
  68. package/build/EntityFilter.js +0 -3
  69. package/build/EntityFilter.js.map +0 -1
  70. package/build/EntityGraphQLFilter.d.ts +0 -51
  71. package/build/EntityGraphQLFilter.d.ts.map +0 -1
  72. package/build/EntityGraphQLFilter.js +0 -54
  73. package/build/EntityGraphQLFilter.js.map +0 -1
  74. package/build/EntityManager.d.ts +0 -734
  75. package/build/EntityManager.d.ts.map +0 -1
  76. package/build/EntityManager.js +0 -2069
  77. package/build/EntityManager.js.map +0 -1
  78. package/build/EntityMetadata.d.ts +0 -185
  79. package/build/EntityMetadata.d.ts.map +0 -1
  80. package/build/EntityMetadata.js +0 -61
  81. package/build/EntityMetadata.js.map +0 -1
  82. package/build/EnumMetadata.d.ts +0 -15
  83. package/build/EnumMetadata.d.ts.map +0 -1
  84. package/build/EnumMetadata.js +0 -3
  85. package/build/EnumMetadata.js.map +0 -1
  86. package/build/FlushLock.d.ts +0 -26
  87. package/build/FlushLock.d.ts.map +0 -1
  88. package/build/FlushLock.js +0 -57
  89. package/build/FlushLock.js.map +0 -1
  90. package/build/HintTree.d.ts +0 -42
  91. package/build/HintTree.d.ts.map +0 -1
  92. package/build/HintTree.js +0 -64
  93. package/build/HintTree.js.map +0 -1
  94. package/build/IndexManager.d.ts +0 -30
  95. package/build/IndexManager.d.ts.map +0 -1
  96. package/build/IndexManager.js +0 -206
  97. package/build/IndexManager.js.map +0 -1
  98. package/build/InstanceData.d.ts +0 -59
  99. package/build/InstanceData.d.ts.map +0 -1
  100. package/build/InstanceData.js +0 -162
  101. package/build/InstanceData.js.map +0 -1
  102. package/build/IsLoadedCache.d.ts +0 -32
  103. package/build/IsLoadedCache.d.ts.map +0 -1
  104. package/build/IsLoadedCache.js +0 -80
  105. package/build/IsLoadedCache.js.map +0 -1
  106. package/build/JoinRows.d.ts +0 -75
  107. package/build/JoinRows.d.ts.map +0 -1
  108. package/build/JoinRows.js +0 -246
  109. package/build/JoinRows.js.map +0 -1
  110. package/build/PluginManager.d.ts +0 -90
  111. package/build/PluginManager.d.ts.map +0 -1
  112. package/build/PluginManager.js +0 -97
  113. package/build/PluginManager.js.map +0 -1
  114. package/build/QueryParser.d.ts +0 -271
  115. package/build/QueryParser.d.ts.map +0 -1
  116. package/build/QueryParser.js +0 -853
  117. package/build/QueryParser.js.map +0 -1
  118. package/build/QueryParser.pruning.d.ts +0 -5
  119. package/build/QueryParser.pruning.d.ts.map +0 -1
  120. package/build/QueryParser.pruning.js +0 -118
  121. package/build/QueryParser.pruning.js.map +0 -1
  122. package/build/QueryVisitor.d.ts +0 -19
  123. package/build/QueryVisitor.d.ts.map +0 -1
  124. package/build/QueryVisitor.js +0 -84
  125. package/build/QueryVisitor.js.map +0 -1
  126. package/build/ReactionsManager.d.ts +0 -84
  127. package/build/ReactionsManager.d.ts.map +0 -1
  128. package/build/ReactionsManager.js +0 -307
  129. package/build/ReactionsManager.js.map +0 -1
  130. package/build/Todo.d.ts +0 -31
  131. package/build/Todo.d.ts.map +0 -1
  132. package/build/Todo.js +0 -73
  133. package/build/Todo.js.map +0 -1
  134. package/build/caches.d.ts +0 -6
  135. package/build/caches.d.ts.map +0 -1
  136. package/build/caches.js +0 -42
  137. package/build/caches.js.map +0 -1
  138. package/build/changes.d.ts +0 -79
  139. package/build/changes.d.ts.map +0 -1
  140. package/build/changes.js +0 -251
  141. package/build/changes.js.map +0 -1
  142. package/build/config.d.ts +0 -237
  143. package/build/config.d.ts.map +0 -1
  144. package/build/config.js +0 -298
  145. package/build/config.js.map +0 -1
  146. package/build/config.test.d.ts +0 -2
  147. package/build/config.test.d.ts.map +0 -1
  148. package/build/config.test.js +0 -53
  149. package/build/config.test.js.map +0 -1
  150. package/build/configure.d.ts +0 -13
  151. package/build/configure.d.ts.map +0 -1
  152. package/build/configure.js +0 -329
  153. package/build/configure.js.map +0 -1
  154. package/build/dataloaders/findByUniqueDataLoader.d.ts +0 -7
  155. package/build/dataloaders/findByUniqueDataLoader.d.ts.map +0 -1
  156. package/build/dataloaders/findByUniqueDataLoader.js +0 -47
  157. package/build/dataloaders/findByUniqueDataLoader.js.map +0 -1
  158. package/build/dataloaders/findCountDataLoader.d.ts +0 -7
  159. package/build/dataloaders/findCountDataLoader.d.ts.map +0 -1
  160. package/build/dataloaders/findCountDataLoader.js +0 -74
  161. package/build/dataloaders/findCountDataLoader.js.map +0 -1
  162. package/build/dataloaders/findDataLoader.d.ts +0 -37
  163. package/build/dataloaders/findDataLoader.d.ts.map +0 -1
  164. package/build/dataloaders/findDataLoader.js +0 -337
  165. package/build/dataloaders/findDataLoader.js.map +0 -1
  166. package/build/dataloaders/findIdsDataLoader.d.ts +0 -7
  167. package/build/dataloaders/findIdsDataLoader.d.ts.map +0 -1
  168. package/build/dataloaders/findIdsDataLoader.js +0 -74
  169. package/build/dataloaders/findIdsDataLoader.js.map +0 -1
  170. package/build/dataloaders/findOrCreateDataLoader.d.ts +0 -13
  171. package/build/dataloaders/findOrCreateDataLoader.d.ts.map +0 -1
  172. package/build/dataloaders/findOrCreateDataLoader.js +0 -174
  173. package/build/dataloaders/findOrCreateDataLoader.js.map +0 -1
  174. package/build/dataloaders/lensDataLoader.d.ts +0 -12
  175. package/build/dataloaders/lensDataLoader.d.ts.map +0 -1
  176. package/build/dataloaders/lensDataLoader.js +0 -180
  177. package/build/dataloaders/lensDataLoader.js.map +0 -1
  178. package/build/dataloaders/loadDataLoader.d.ts +0 -11
  179. package/build/dataloaders/loadDataLoader.d.ts.map +0 -1
  180. package/build/dataloaders/loadDataLoader.js +0 -54
  181. package/build/dataloaders/loadDataLoader.js.map +0 -1
  182. package/build/dataloaders/manyToManyDataLoader.d.ts +0 -8
  183. package/build/dataloaders/manyToManyDataLoader.d.ts.map +0 -1
  184. package/build/dataloaders/manyToManyDataLoader.js +0 -74
  185. package/build/dataloaders/manyToManyDataLoader.js.map +0 -1
  186. package/build/dataloaders/manyToManyFindDataLoader.d.ts +0 -8
  187. package/build/dataloaders/manyToManyFindDataLoader.d.ts.map +0 -1
  188. package/build/dataloaders/manyToManyFindDataLoader.js +0 -70
  189. package/build/dataloaders/manyToManyFindDataLoader.js.map +0 -1
  190. package/build/dataloaders/oneToManyDataLoader.d.ts +0 -7
  191. package/build/dataloaders/oneToManyDataLoader.d.ts.map +0 -1
  192. package/build/dataloaders/oneToManyDataLoader.js +0 -60
  193. package/build/dataloaders/oneToManyDataLoader.js.map +0 -1
  194. package/build/dataloaders/oneToManyFindDataLoader.d.ts +0 -8
  195. package/build/dataloaders/oneToManyFindDataLoader.d.ts.map +0 -1
  196. package/build/dataloaders/oneToManyFindDataLoader.js +0 -71
  197. package/build/dataloaders/oneToManyFindDataLoader.js.map +0 -1
  198. package/build/dataloaders/oneToOneDataLoader.d.ts +0 -7
  199. package/build/dataloaders/oneToOneDataLoader.d.ts.map +0 -1
  200. package/build/dataloaders/oneToOneDataLoader.js +0 -59
  201. package/build/dataloaders/oneToOneDataLoader.js.map +0 -1
  202. package/build/dataloaders/populateDataLoader.d.ts +0 -13
  203. package/build/dataloaders/populateDataLoader.d.ts.map +0 -1
  204. package/build/dataloaders/populateDataLoader.js +0 -148
  205. package/build/dataloaders/populateDataLoader.js.map +0 -1
  206. package/build/dataloaders/recursiveChildrenDataLoader.d.ts +0 -7
  207. package/build/dataloaders/recursiveChildrenDataLoader.d.ts.map +0 -1
  208. package/build/dataloaders/recursiveChildrenDataLoader.js +0 -77
  209. package/build/dataloaders/recursiveChildrenDataLoader.js.map +0 -1
  210. package/build/dataloaders/recursiveParentsDataLoader.d.ts +0 -7
  211. package/build/dataloaders/recursiveParentsDataLoader.d.ts.map +0 -1
  212. package/build/dataloaders/recursiveParentsDataLoader.js +0 -59
  213. package/build/dataloaders/recursiveParentsDataLoader.js.map +0 -1
  214. package/build/defaults.d.ts +0 -54
  215. package/build/defaults.d.ts.map +0 -1
  216. package/build/defaults.js +0 -282
  217. package/build/defaults.js.map +0 -1
  218. package/build/driverApi.d.ts +0 -19
  219. package/build/driverApi.d.ts.map +0 -1
  220. package/build/driverApi.js +0 -17
  221. package/build/driverApi.js.map +0 -1
  222. package/build/drivers/Driver.d.ts +0 -26
  223. package/build/drivers/Driver.d.ts.map +0 -1
  224. package/build/drivers/Driver.js +0 -3
  225. package/build/drivers/Driver.js.map +0 -1
  226. package/build/drivers/EntityWriter.d.ts +0 -64
  227. package/build/drivers/EntityWriter.d.ts.map +0 -1
  228. package/build/drivers/EntityWriter.js +0 -237
  229. package/build/drivers/EntityWriter.js.map +0 -1
  230. package/build/drivers/IdAssigner.d.ts +0 -50
  231. package/build/drivers/IdAssigner.d.ts.map +0 -1
  232. package/build/drivers/IdAssigner.js +0 -133
  233. package/build/drivers/IdAssigner.js.map +0 -1
  234. package/build/drivers/PostgresDriver.d.ts.map +0 -1
  235. package/build/drivers/PostgresDriver.js.map +0 -1
  236. package/build/drivers/buildRawQuery.d.ts +0 -20
  237. package/build/drivers/buildRawQuery.d.ts.map +0 -1
  238. package/build/drivers/buildRawQuery.js +0 -148
  239. package/build/drivers/buildRawQuery.js.map +0 -1
  240. package/build/drivers/buildUtils.d.ts +0 -4
  241. package/build/drivers/buildUtils.d.ts.map +0 -1
  242. package/build/drivers/buildUtils.js +0 -79
  243. package/build/drivers/buildUtils.js.map +0 -1
  244. package/build/drivers/index.d.ts +0 -5
  245. package/build/drivers/index.d.ts.map +0 -1
  246. package/build/drivers/index.js.map +0 -1
  247. package/build/fields.d.ts +0 -24
  248. package/build/fields.d.ts.map +0 -1
  249. package/build/fields.js +0 -161
  250. package/build/fields.js.map +0 -1
  251. package/build/getProperties.d.ts +0 -28
  252. package/build/getProperties.d.ts.map +0 -1
  253. package/build/getProperties.js +0 -141
  254. package/build/getProperties.js.map +0 -1
  255. package/build/json.d.ts +0 -77
  256. package/build/json.d.ts.map +0 -1
  257. package/build/json.js +0 -116
  258. package/build/json.js.map +0 -1
  259. package/build/k.d.ts +0 -2
  260. package/build/k.d.ts.map +0 -1
  261. package/build/k.js +0 -9
  262. package/build/k.js.map +0 -1
  263. package/build/keys.d.ts +0 -49
  264. package/build/keys.d.ts.map +0 -1
  265. package/build/keys.js +0 -195
  266. package/build/keys.js.map +0 -1
  267. package/build/keywords.d.ts +0 -5
  268. package/build/keywords.d.ts.map +0 -1
  269. package/build/keywords.js +0 -124
  270. package/build/keywords.js.map +0 -1
  271. package/build/loadHints.d.ts +0 -112
  272. package/build/loadHints.d.ts.map +0 -1
  273. package/build/loadHints.js +0 -75
  274. package/build/loadHints.js.map +0 -1
  275. package/build/loadLens.d.ts +0 -66
  276. package/build/loadLens.d.ts.map +0 -1
  277. package/build/loadLens.js +0 -287
  278. package/build/loadLens.js.map +0 -1
  279. package/build/logging/FactoryLogger.d.ts +0 -24
  280. package/build/logging/FactoryLogger.d.ts.map +0 -1
  281. package/build/logging/FactoryLogger.js +0 -77
  282. package/build/logging/FactoryLogger.js.map +0 -1
  283. package/build/logging/FieldLogger.d.ts +0 -27
  284. package/build/logging/FieldLogger.d.ts.map +0 -1
  285. package/build/logging/FieldLogger.js +0 -69
  286. package/build/logging/FieldLogger.js.map +0 -1
  287. package/build/logging/ReactionLogger.d.ts +0 -23
  288. package/build/logging/ReactionLogger.d.ts.map +0 -1
  289. package/build/logging/ReactionLogger.js +0 -65
  290. package/build/logging/ReactionLogger.js.map +0 -1
  291. package/build/newEntity.d.ts +0 -45
  292. package/build/newEntity.d.ts.map +0 -1
  293. package/build/newEntity.js +0 -106
  294. package/build/newEntity.js.map +0 -1
  295. package/build/newTestInstance.d.ts +0 -193
  296. package/build/newTestInstance.d.ts.map +0 -1
  297. package/build/newTestInstance.js +0 -738
  298. package/build/newTestInstance.js.map +0 -1
  299. package/build/normalizeHints.d.ts +0 -16
  300. package/build/normalizeHints.d.ts.map +0 -1
  301. package/build/normalizeHints.js +0 -31
  302. package/build/normalizeHints.js.map +0 -1
  303. package/build/plugins/ImmutableEntitiesPlugin.d.ts +0 -9
  304. package/build/plugins/ImmutableEntitiesPlugin.d.ts.map +0 -1
  305. package/build/plugins/ImmutableEntitiesPlugin.js +0 -21
  306. package/build/plugins/ImmutableEntitiesPlugin.js.map +0 -1
  307. package/build/plugins/PreloadPlugin.d.ts +0 -69
  308. package/build/plugins/PreloadPlugin.d.ts.map +0 -1
  309. package/build/plugins/PreloadPlugin.js +0 -3
  310. package/build/plugins/PreloadPlugin.js.map +0 -1
  311. package/build/preloading/JsonAggregatePreloader.d.ts +0 -16
  312. package/build/preloading/JsonAggregatePreloader.d.ts.map +0 -1
  313. package/build/preloading/JsonAggregatePreloader.js +0 -238
  314. package/build/preloading/JsonAggregatePreloader.js.map +0 -1
  315. package/build/preloading/canPreload.d.ts +0 -3
  316. package/build/preloading/canPreload.d.ts.map +0 -1
  317. package/build/preloading/canPreload.js +0 -21
  318. package/build/preloading/canPreload.js.map +0 -1
  319. package/build/preloading/partitionHint.d.ts +0 -5
  320. package/build/preloading/partitionHint.d.ts.map +0 -1
  321. package/build/preloading/partitionHint.js +0 -56
  322. package/build/preloading/partitionHint.js.map +0 -1
  323. package/build/reactiveHints.d.ts +0 -129
  324. package/build/reactiveHints.d.ts.map +0 -1
  325. package/build/reactiveHints.js +0 -458
  326. package/build/reactiveHints.js.map +0 -1
  327. package/build/relations/AbstractPropertyImpl.d.ts +0 -8
  328. package/build/relations/AbstractPropertyImpl.d.ts.map +0 -1
  329. package/build/relations/AbstractPropertyImpl.js +0 -15
  330. package/build/relations/AbstractPropertyImpl.js.map +0 -1
  331. package/build/relations/AbstractRelationImpl.d.ts +0 -36
  332. package/build/relations/AbstractRelationImpl.d.ts.map +0 -1
  333. package/build/relations/AbstractRelationImpl.js +0 -19
  334. package/build/relations/AbstractRelationImpl.js.map +0 -1
  335. package/build/relations/Collection.d.ts +0 -28
  336. package/build/relations/Collection.d.ts.map +0 -1
  337. package/build/relations/Collection.js +0 -18
  338. package/build/relations/Collection.js.map +0 -1
  339. package/build/relations/CustomCollection.d.ts +0 -69
  340. package/build/relations/CustomCollection.d.ts.map +0 -1
  341. package/build/relations/CustomCollection.js +0 -166
  342. package/build/relations/CustomCollection.js.map +0 -1
  343. package/build/relations/CustomReference.d.ts +0 -71
  344. package/build/relations/CustomReference.d.ts.map +0 -1
  345. package/build/relations/CustomReference.js +0 -152
  346. package/build/relations/CustomReference.js.map +0 -1
  347. package/build/relations/LargeCollection.d.ts +0 -19
  348. package/build/relations/LargeCollection.d.ts.map +0 -1
  349. package/build/relations/LargeCollection.js +0 -3
  350. package/build/relations/LargeCollection.js.map +0 -1
  351. package/build/relations/ManyToManyCollection.d.ts +0 -44
  352. package/build/relations/ManyToManyCollection.d.ts.map +0 -1
  353. package/build/relations/ManyToManyCollection.js +0 -268
  354. package/build/relations/ManyToManyCollection.js.map +0 -1
  355. package/build/relations/ManyToManyLargeCollection.d.ts +0 -30
  356. package/build/relations/ManyToManyLargeCollection.d.ts.map +0 -1
  357. package/build/relations/ManyToManyLargeCollection.js +0 -119
  358. package/build/relations/ManyToManyLargeCollection.js.map +0 -1
  359. package/build/relations/ManyToOneReference.d.ts +0 -121
  360. package/build/relations/ManyToOneReference.d.ts.map +0 -1
  361. package/build/relations/ManyToOneReference.js +0 -389
  362. package/build/relations/ManyToOneReference.js.map +0 -1
  363. package/build/relations/OneToManyCollection.d.ts +0 -58
  364. package/build/relations/OneToManyCollection.d.ts.map +0 -1
  365. package/build/relations/OneToManyCollection.js +0 -347
  366. package/build/relations/OneToManyCollection.js.map +0 -1
  367. package/build/relations/OneToManyLargeCollection.d.ts +0 -26
  368. package/build/relations/OneToManyLargeCollection.d.ts.map +0 -1
  369. package/build/relations/OneToManyLargeCollection.js +0 -102
  370. package/build/relations/OneToManyLargeCollection.js.map +0 -1
  371. package/build/relations/OneToOneReference.d.ts +0 -93
  372. package/build/relations/OneToOneReference.d.ts.map +0 -1
  373. package/build/relations/OneToOneReference.js +0 -228
  374. package/build/relations/OneToOneReference.js.map +0 -1
  375. package/build/relations/PolymorphicReference.d.ts +0 -89
  376. package/build/relations/PolymorphicReference.d.ts.map +0 -1
  377. package/build/relations/PolymorphicReference.js +0 -244
  378. package/build/relations/PolymorphicReference.js.map +0 -1
  379. package/build/relations/ReactiveField.d.ts +0 -87
  380. package/build/relations/ReactiveField.d.ts.map +0 -1
  381. package/build/relations/ReactiveField.js +0 -149
  382. package/build/relations/ReactiveField.js.map +0 -1
  383. package/build/relations/ReactiveGetter.d.ts +0 -30
  384. package/build/relations/ReactiveGetter.d.ts.map +0 -1
  385. package/build/relations/ReactiveGetter.js +0 -38
  386. package/build/relations/ReactiveGetter.js.map +0 -1
  387. package/build/relations/ReactiveManyToMany.d.ts +0 -56
  388. package/build/relations/ReactiveManyToMany.d.ts.map +0 -1
  389. package/build/relations/ReactiveManyToMany.js +0 -243
  390. package/build/relations/ReactiveManyToMany.js.map +0 -1
  391. package/build/relations/ReactiveManyToManyOtherSide.d.ts +0 -47
  392. package/build/relations/ReactiveManyToManyOtherSide.d.ts.map +0 -1
  393. package/build/relations/ReactiveManyToManyOtherSide.js +0 -155
  394. package/build/relations/ReactiveManyToManyOtherSide.js.map +0 -1
  395. package/build/relations/ReactiveQueryField.d.ts +0 -41
  396. package/build/relations/ReactiveQueryField.d.ts.map +0 -1
  397. package/build/relations/ReactiveQueryField.js +0 -125
  398. package/build/relations/ReactiveQueryField.js.map +0 -1
  399. package/build/relations/ReactiveReference.d.ts +0 -119
  400. package/build/relations/ReactiveReference.d.ts.map +0 -1
  401. package/build/relations/ReactiveReference.js +0 -333
  402. package/build/relations/ReactiveReference.js.map +0 -1
  403. package/build/relations/ReadOnlyCollection.d.ts +0 -19
  404. package/build/relations/ReadOnlyCollection.d.ts.map +0 -1
  405. package/build/relations/ReadOnlyCollection.js +0 -15
  406. package/build/relations/ReadOnlyCollection.js.map +0 -1
  407. package/build/relations/RecursiveCollection.d.ts +0 -84
  408. package/build/relations/RecursiveCollection.d.ts.map +0 -1
  409. package/build/relations/RecursiveCollection.js +0 -296
  410. package/build/relations/RecursiveCollection.js.map +0 -1
  411. package/build/relations/Reference.d.ts +0 -35
  412. package/build/relations/Reference.d.ts.map +0 -1
  413. package/build/relations/Reference.js +0 -21
  414. package/build/relations/Reference.js.map +0 -1
  415. package/build/relations/Relation.d.ts +0 -14
  416. package/build/relations/Relation.d.ts.map +0 -1
  417. package/build/relations/Relation.js +0 -12
  418. package/build/relations/Relation.js.map +0 -1
  419. package/build/relations/hasAsyncMethod.d.ts +0 -27
  420. package/build/relations/hasAsyncMethod.d.ts.map +0 -1
  421. package/build/relations/hasAsyncMethod.js +0 -47
  422. package/build/relations/hasAsyncMethod.js.map +0 -1
  423. package/build/relations/hasAsyncProperty.d.ts +0 -49
  424. package/build/relations/hasAsyncProperty.d.ts.map +0 -1
  425. package/build/relations/hasAsyncProperty.js +0 -98
  426. package/build/relations/hasAsyncProperty.js.map +0 -1
  427. package/build/relations/hasManyDerived.d.ts +0 -22
  428. package/build/relations/hasManyDerived.d.ts.map +0 -1
  429. package/build/relations/hasManyDerived.js +0 -32
  430. package/build/relations/hasManyDerived.js.map +0 -1
  431. package/build/relations/hasManyThrough.d.ts +0 -10
  432. package/build/relations/hasManyThrough.d.ts.map +0 -1
  433. package/build/relations/hasManyThrough.js +0 -24
  434. package/build/relations/hasManyThrough.js.map +0 -1
  435. package/build/relations/hasOneDerived.d.ts +0 -12
  436. package/build/relations/hasOneDerived.d.ts.map +0 -1
  437. package/build/relations/hasOneDerived.js +0 -24
  438. package/build/relations/hasOneDerived.js.map +0 -1
  439. package/build/relations/hasOneThrough.d.ts +0 -10
  440. package/build/relations/hasOneThrough.d.ts.map +0 -1
  441. package/build/relations/hasOneThrough.js +0 -24
  442. package/build/relations/hasOneThrough.js.map +0 -1
  443. package/build/relations/index.d.ts +0 -28
  444. package/build/relations/index.d.ts.map +0 -1
  445. package/build/relations/index.js +0 -88
  446. package/build/relations/index.js.map +0 -1
  447. package/build/rules.d.ts +0 -123
  448. package/build/rules.d.ts.map +0 -1
  449. package/build/rules.js +0 -231
  450. package/build/rules.js.map +0 -1
  451. package/build/runtimeConfig.d.ts +0 -17
  452. package/build/runtimeConfig.d.ts.map +0 -1
  453. package/build/runtimeConfig.js +0 -18
  454. package/build/runtimeConfig.js.map +0 -1
  455. package/build/serde.d.ts +0 -277
  456. package/build/serde.d.ts.map +0 -1
  457. package/build/serde.js +0 -517
  458. package/build/serde.js.map +0 -1
  459. package/build/temporal.d.ts +0 -16
  460. package/build/temporal.d.ts.map +0 -1
  461. package/build/temporal.js +0 -48
  462. package/build/temporal.js.map +0 -1
  463. package/build/temporalMappers.d.ts +0 -25
  464. package/build/temporalMappers.d.ts.map +0 -1
  465. package/build/temporalMappers.js +0 -59
  466. package/build/temporalMappers.js.map +0 -1
  467. package/build/typeMap.d.ts +0 -68
  468. package/build/typeMap.d.ts.map +0 -1
  469. package/build/typeMap.js +0 -3
  470. package/build/typeMap.js.map +0 -1
  471. package/build/unnest.d.ts +0 -13
  472. package/build/unnest.d.ts.map +0 -1
  473. package/build/unnest.js +0 -85
  474. package/build/unnest.js.map +0 -1
  475. package/build/upsert.d.ts +0 -42
  476. package/build/upsert.d.ts.map +0 -1
  477. package/build/upsert.js +0 -265
  478. package/build/upsert.js.map +0 -1
  479. package/build/utils.d.ts +0 -58
  480. package/build/utils.d.ts.map +0 -1
  481. package/build/utils.js +0 -236
  482. package/build/utils.js.map +0 -1
  483. package/build/withLoaded.d.ts +0 -56
  484. package/build/withLoaded.d.ts.map +0 -1
  485. package/build/withLoaded.js +0 -76
  486. package/build/withLoaded.js.map +0 -1
package/build/HintTree.js DELETED
@@ -1,64 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildHintTree = buildHintTree;
4
- const normalizeHints_1 = require("./normalizeHints");
5
- /**
6
- * Given a number of potentially overlapping load hints, i.e. `{ authors: "books" }` and
7
- * `{ authors: "reviews" }`, combines them into a single `HintNode` tree, with bookkeeping
8
- * of which entities requested each specific node of the tree.
9
- *
10
- * I.e. if we're populating three publishers, two with `{ authors: "books" }` and one with
11
- * `{ authors: "reviews" }`, we'll end up with a tree like:
12
- *
13
- * ```
14
- * {
15
- * authors: {
16
- * entities: [p1, p2, p3],
17
- * hints: {
18
- * books: { entities: [p1, p2], hints: {} },
19
- * reviews: { entities: [p3], hints: {} },
20
- * }
21
- * }
22
- * }
23
- * ```
24
- *
25
- * Which will let us preload `authors` for all three publishers, but `books` only for the
26
- * first two, and `reviews` only for the third, i.e. we can prevent over-fetching.
27
- */
28
- function buildHintTree(hints) {
29
- if (Array.isArray(hints)) {
30
- // This might be a top-level LoadHint string[] like ["books"]
31
- const isLoadHint = hints.length > 0 && typeof hints[0] === "string";
32
- if (isLoadHint) {
33
- const root = { entitiesKind: "none", entities: new Set(), hints: {} };
34
- addHintNode(root, undefined, hints);
35
- return root;
36
- }
37
- else {
38
- const entitiesKind = typeof hints[0].entity === "string" ? "ids" : "instances";
39
- const root = { entitiesKind, entities: new Set(), hints: {} };
40
- for (const { entity, hint } of hints) {
41
- addHintNode(root, entity, hint);
42
- }
43
- return root;
44
- }
45
- }
46
- else {
47
- const root = { entitiesKind: "none", entities: new Set(), hints: {} };
48
- addHintNode(root, undefined, hints);
49
- return root;
50
- }
51
- }
52
- function addHintNode(node, entity, hint) {
53
- // It's tempting to filter out new entities here, but we need to call `.load()` on their
54
- // relations to ensure the `.get`s will later work, even if we don't look in the db for them.
55
- if (entity)
56
- node.entities.add(entity);
57
- if (hint) {
58
- for (const [key, nestedHint] of Object.entries((0, normalizeHints_1.normalizeHint)(hint))) {
59
- const child = (node.hints[key] ??= { entitiesKind: node.entitiesKind, entities: new Set(), hints: {} });
60
- addHintNode(child, entity, nestedHint);
61
- }
62
- }
63
- }
64
- //# sourceMappingURL=HintTree.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"HintTree.js","sourceRoot":"","sources":["../src/HintTree.ts"],"names":[],"mappings":";;AA2CA,sCAuBC;AA/DD,qDAAiD;AAiBjD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,SAAgB,aAAa,CAC3B,KAAgF;IAEhF,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,6DAA6D;QAC7D,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC;QACpE,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,IAAI,GAAgB,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;YACnF,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,KAAsB,CAAC,CAAC;YACrD,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,CAAC;YACN,MAAM,YAAY,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAE,KAAe,CAAC,CAAC,CAAE,WAAqB,CAAC;YACrG,MAAM,IAAI,GAAgB,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;YAC3E,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,KAAK,EAAE,CAAC;gBACrC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;YAClC,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,GAAgB,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QACnF,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,KAAsB,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAuB,IAAiB,EAAE,MAAqB,EAAE,IAA+B;IAClH,wFAAwF;IACxF,6FAA6F;IAC7F,IAAI,MAAM;QAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACtC,IAAI,IAAI,EAAE,CAAC;QACT,KAAK,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAA,8BAAa,EAAC,IAAI,CAAC,CAAC,EAAE,CAAC;YACpE,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;YACxG,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1,30 +0,0 @@
1
- import { Entity } from "./Entity";
2
- import { EntityMetadata } from "./EntityMetadata";
3
- /**
4
- * IndexManager provides field-based indexing for entity queries to avoid O(n) linear scans of `em.entities`.
5
- *
6
- * Key features:
7
- * - Only indexes entity types with >1000 entities to avoid overhead for small datasets
8
- * - Supports dual indexing for m2o/poly fields (by ID for saved, by instance for unsaved)
9
- * - Automatically maintains indexes when fields are updated via setField()
10
- */
11
- export declare class IndexManager {
12
- #private;
13
- /** @return if we should index entities of this type/count. */
14
- shouldIndexType(entityCount: number): boolean;
15
- /** Visible for testing. */
16
- isIndexed(tagName: string): boolean;
17
- /** Enables indexing for an entity type and builds initial indexes. */
18
- enableIndexingForType<T extends Entity>(meta: EntityMetadata<T>, entities: T[]): void;
19
- /** Adds an entity to all relevant indexes. */
20
- maybeIndexEntity(entity: Entity): void;
21
- /** Updates indexes when a field value changes. */
22
- maybeUpdateFieldIndex(entity: Entity, fieldName: string, oldValue: any, newValue: any): void;
23
- /**
24
- * Finds entities matching the given where clause using indexes.
25
- * Returns null if the type is not indexed (fallback to linear search).
26
- */
27
- findMatching<T extends Entity>(meta: EntityMetadata<T>, where: any): T[];
28
- private addEntitiesToIndex;
29
- }
30
- //# sourceMappingURL=IndexManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IndexManager.d.ts","sourceRoot":"","sources":["../src/IndexManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAY,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAe,MAAM,kBAAkB,CAAC;AAW/D;;;;;;;GAOG;AACH,qBAAa,YAAY;;IAGvB,8DAA8D;IAC9D,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAI7C,2BAA2B;IAC3B,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAInC,sEAAsE;IACtE,qBAAqB,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,IAAI;IAerF,8CAA8C;IAC9C,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAOtC,kDAAkD;IAClD,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI;IAgB5F;;;OAGG;IACH,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,EAAE;IA0BxE,OAAO,CAAC,kBAAkB;CAgB3B"}
@@ -1,206 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.IndexManager = void 0;
4
- const Entity_1 = require("./Entity");
5
- const EntityMetadata_1 = require("./EntityMetadata");
6
- const relations_1 = require("./relations");
7
- const utils_1 = require("./utils");
8
- // The test reproducing a n^2 with n=500 went from 100ms to 50ms if indexed
9
- const indexThreshold = 500;
10
- /**
11
- * IndexManager provides field-based indexing for entity queries to avoid O(n) linear scans of `em.entities`.
12
- *
13
- * Key features:
14
- * - Only indexes entity types with >1000 entities to avoid overhead for small datasets
15
- * - Supports dual indexing for m2o/poly fields (by ID for saved, by instance for unsaved)
16
- * - Automatically maintains indexes when fields are updated via setField()
17
- */
18
- class IndexManager {
19
- #indexes = new Map();
20
- /** @return if we should index entities of this type/count. */
21
- shouldIndexType(entityCount) {
22
- return entityCount >= indexThreshold;
23
- }
24
- /** Visible for testing. */
25
- isIndexed(tagName) {
26
- return this.#indexes.has(tagName);
27
- }
28
- /** Enables indexing for an entity type and builds initial indexes. */
29
- enableIndexingForType(meta, entities) {
30
- const { tagName } = meta;
31
- if (this.#indexes.has(tagName))
32
- return; // Already indexed
33
- this.#indexes.set(tagName, new Map());
34
- // If subtypes are involved, group by each subtype
35
- if (meta.baseType || meta.subTypes.length > 0) {
36
- [...(0, utils_1.groupBy)(entities, (e) => (0, EntityMetadata_1.getMetadata)(e)).entries()].forEach(([meta, entities]) => {
37
- this.addEntitiesToIndex(meta, entities);
38
- });
39
- }
40
- else {
41
- this.addEntitiesToIndex(meta, entities);
42
- }
43
- }
44
- /** Adds an entity to all relevant indexes. */
45
- maybeIndexEntity(entity) {
46
- const meta = (0, EntityMetadata_1.getMetadata)(entity);
47
- if (this.#indexes.has(meta.tagName)) {
48
- this.addEntitiesToIndex(meta, [entity]);
49
- }
50
- }
51
- /** Updates indexes when a field value changes. */
52
- maybeUpdateFieldIndex(entity, fieldName, oldValue, newValue) {
53
- // Fast return for the common case, which is no indexing
54
- if (this.#indexes.size === 0)
55
- return;
56
- const meta = (0, EntityMetadata_1.getMetadata)(entity);
57
- const fieldIndexes = this.#indexes.get(meta.tagName);
58
- if (!fieldIndexes)
59
- return; // Type not indexed
60
- const field = meta.allFields[fieldName] ?? fail(`Invalid field ${fieldName}`);
61
- const fieldIndex = fieldIndexes.get(field.fieldName);
62
- if (!fieldIndex)
63
- return; // Field is not indexed
64
- fieldIndex.remove(oldValue, entity);
65
- fieldIndex.add(newValue, entity);
66
- }
67
- /**
68
- * Finds entities matching the given where clause using indexes.
69
- * Returns null if the type is not indexed (fallback to linear search).
70
- */
71
- findMatching(meta, where) {
72
- const { tagName } = meta;
73
- if (!this.#indexes.has(tagName)) {
74
- throw new Error(`${meta.type} is not indexed`);
75
- }
76
- const fieldIndexes = this.#indexes.get(tagName);
77
- // Start with all entities of the 1st condition, then intersect (AND) each subsequent field in `where`
78
- let candidates;
79
- for (const [fieldName, value] of Object.entries(where)) {
80
- const fieldIndex = fieldIndexes.get(fieldName) ?? new FieldIndex();
81
- const fieldCandidates = fieldIndex.get(value) ?? new Set();
82
- if (!candidates) {
83
- candidates = fieldCandidates; // This is the 1st clause
84
- }
85
- else {
86
- candidates = intersectSets(candidates, fieldCandidates);
87
- }
88
- // Early exit if no candidates remain
89
- if (candidates.size === 0)
90
- break;
91
- }
92
- if (candidates === undefined) {
93
- throw new Error(`Expected where clause with at least one condition`);
94
- }
95
- return [...candidates];
96
- }
97
- // `entities` should all be of the exact same subtype
98
- addEntitiesToIndex(meta, entities) {
99
- const { tagName } = meta;
100
- const indexes = this.#indexes.get(tagName);
101
- // Iterate over each field so we can do a shared fieldIndex lookup
102
- for (const [fieldName, field] of Object.entries(meta.allFields)) {
103
- let fieldIndex = indexes.get(fieldName);
104
- if (!fieldIndex) {
105
- fieldIndex = new FieldIndex();
106
- indexes.set(fieldName, fieldIndex);
107
- }
108
- for (const entity of entities) {
109
- const value = getFieldValue(entity, fieldName);
110
- fieldIndex.add(value, entity);
111
- }
112
- }
113
- }
114
- }
115
- exports.IndexManager = IndexManager;
116
- // Use the same field access pattern as entityMatches
117
- function getFieldValue(entity, fieldName) {
118
- const meta = (0, EntityMetadata_1.getMetadata)(entity);
119
- const field = meta.allFields[fieldName] ?? fail();
120
- const fn = fieldName;
121
- switch (field.kind) {
122
- case "primaryKey":
123
- return entity.idTaggedMaybe;
124
- case "enum":
125
- case "primitive":
126
- return entity[fn];
127
- case "m2o":
128
- case "poly":
129
- const relation = entity[fn];
130
- if ((0, relations_1.isLoadedReference)(relation)) {
131
- return relation.get;
132
- }
133
- else if (relation.isSet) {
134
- return relation.id;
135
- }
136
- else {
137
- return undefined;
138
- }
139
- default:
140
- return undefined;
141
- }
142
- }
143
- /**
144
- * For a given field, like `firstName`, holds the reverse index of value `bob` -> entities `[a1, a2]`.
145
- *
146
- * This also handles indexes `Entity` values as both instances & IDs, to handle both:
147
- * - new/unpersisted entities not yet having IDs, and
148
- * - relations not having loaded their instances yet
149
- */
150
- class FieldIndex {
151
- #valueToEntities = new Map();
152
- /** @return entities that have `value` as their current value for this field. */
153
- get(value) {
154
- if ((0, Entity_1.isEntity)(value) && value.idTaggedMaybe) {
155
- // If `value` is a persisted entity like `a:1`, and entities could have indexed their `author_id=a:1` field
156
- // values as the unloaded "just an a:1 string id" value, before `a:1` was loaded into memory.
157
- const matchId = this.#valueToEntities.get(value.idTaggedMaybe);
158
- // But other entities could also have indexes `a:1` as an instance, so go ahead and check both
159
- const matchInstance = this.#valueToEntities.get(value);
160
- if (matchId && matchInstance) {
161
- return new Set([...matchId, ...matchInstance]);
162
- }
163
- return matchId ?? matchInstance;
164
- }
165
- return this.#valueToEntities.get(value);
166
- }
167
- add(value, entity) {
168
- // If this is an entity, store both the entity itself & its ID
169
- if ((0, Entity_1.isEntity)(value) && value.idTaggedMaybe) {
170
- this.doAdd(value.idTaggedMaybe, entity);
171
- }
172
- this.doAdd(value, entity);
173
- }
174
- remove(value, entity) {
175
- if ((0, Entity_1.isEntity)(value) && value.idTaggedMaybe) {
176
- this.doRemove(value.idTaggedMaybe, entity);
177
- }
178
- this.doRemove(value, entity);
179
- }
180
- doAdd(value, entity) {
181
- const set = this.#valueToEntities.get(value) ?? new Set();
182
- if (set.size === 0)
183
- this.#valueToEntities.set(value, set);
184
- set.add(entity);
185
- }
186
- doRemove(value, entity) {
187
- const set = this.#valueToEntities.get(value);
188
- if (set) {
189
- set.delete(entity);
190
- if (set.size === 0) {
191
- this.#valueToEntities.delete(value);
192
- }
193
- }
194
- }
195
- }
196
- function intersectSets(set1, set2) {
197
- const [smaller, larger] = set1.size <= set2.size ? [set1, set2] : [set2, set1];
198
- const result = new Set();
199
- for (const item of smaller) {
200
- if (larger.has(item)) {
201
- result.add(item);
202
- }
203
- }
204
- return result;
205
- }
206
- //# sourceMappingURL=IndexManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IndexManager.js","sourceRoot":"","sources":["../src/IndexManager.ts"],"names":[],"mappings":"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"}
@@ -1,59 +0,0 @@
1
- import { Entity } from "./Entity";
2
- import { EntityManager } from "./EntityManager";
3
- import { EntityMetadata } from "./EntityMetadata";
4
- /** The `#orm` metadata field we track on each instance. */
5
- export declare class InstanceData {
6
- #private;
7
- /** All entities must be associated to an `EntityManager` to handle lazy loading/etc. */
8
- readonly em: EntityManager;
9
- /** A pointer to our entity type's metadata. */
10
- readonly metadata: EntityMetadata;
11
- /** A bag for our lazy-initialized relations. */
12
- relations: Record<any, any>;
13
- /** The database-value of columns, as-is returned from the driver. */
14
- row: Record<string, any>;
15
- /** The domain-value of fields, lazily converted (if needed) on read from the database columns. */
16
- data: Record<string, any>;
17
- /** A bag to keep the original values, lazily populated as fields are mutated. */
18
- originalData: Record<any, any>;
19
- /** A bag to keep the flushed-to-database values, only for ReactiveQueryField reactivity. */
20
- flushedData: Record<any, any> | undefined;
21
- /** The `a#1`, `a#2` index if we're an em.create-d entity. We never unset this, to keep ids stable across flushes. */
22
- createId: string | undefined;
23
- /** Whether our entity should flush regardless of any other changes. */
24
- isTouched: boolean;
25
- /** Creates the `#orm` field. */
26
- constructor(em: EntityManager, metadata: EntityMetadata, isNew: boolean);
27
- /** If `em.flush` has detected a dirty RQF, reset our internal dirty state, w/o reseting our external-dirty state. */
28
- resetForRqfLoop(): void;
29
- resetAfterFlushed(): void;
30
- /** Our public-facing `isNewEntity`. */
31
- get isNewEntity(): boolean;
32
- /** Our public-facing `isDeletedEntity`. */
33
- get isDeletedEntity(): boolean;
34
- /** Our public-facing `isDirtyEntity`. */
35
- get isDirtyEntity(): boolean;
36
- /** This is our internal "is pending flush", which is aware of RQF micro-flush loops. */
37
- get pendingOperation(): "insert" | "update" | "delete" | "none" | "created-then-deleted";
38
- get changedFields(): string[];
39
- /** Called when an `em.load` tries to find the entity and it's just gone from the db. */
40
- markDeletedBecauseNotFound(): void;
41
- /** Called by `em.delete`, returns true if this is new information. */
42
- markDeleted(entity: Entity): boolean;
43
- fixupCreatedThenDeleted(): void;
44
- get isDeletedAndFlushed(): boolean;
45
- /**
46
- * Returns true if the entity is new or was new in this EM.
47
- *
48
- * This is primarily used for lazy-initializing relations, i.e. if:
49
- *
50
- * - A new `Author` is created
51
- * - We `em.flush` the author to the database
52
- * - Then `a1.books` is accessed for the first time
53
- *
54
- * We can have a high-confidence that `a1` has no books, because we just
55
- * created it, so we can set the OneToManyCollection to loaded.
56
- */
57
- get isOrWasNew(): boolean;
58
- }
59
- //# sourceMappingURL=InstanceData.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InstanceData.d.ts","sourceRoot":"","sources":["../src/InstanceData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,aAAa,EAAoB,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,2DAA2D;AAC3D,qBAAa,YAAY;;IACvB,wFAAwF;IACxF,QAAQ,CAAC,EAAE,EAAE,aAAa,CAAC;IAC3B,+CAA+C;IAC/C,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,gDAAgD;IAChD,SAAS,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAM;IACjC,qEAAqE;IACrE,GAAG,EAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,kGAAkG;IAClG,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1B,iFAAiF;IACjF,YAAY,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,CAAM;IACpC,4FAA4F;IAC5F,WAAW,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC;IAW1C,qHAAqH;IACrH,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,uEAAuE;IACvE,SAAS,EAAE,OAAO,CAAS;IAE3B,gCAAgC;gBACpB,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO;IAevE,qHAAqH;IACrH,eAAe;IAMf,iBAAiB;IAYjB,uCAAuC;IACvC,IAAI,WAAW,IAAI,OAAO,CAEzB;IAED,2CAA2C;IAC3C,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED,yCAAyC;IACzC,IAAI,aAAa,IAAI,OAAO,CAE3B;IAED,wFAAwF;IACxF,IAAI,gBAAgB,IAAI,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,sBAAsB,CAmBvF;IAED,IAAI,aAAa,IAAI,MAAM,EAAE,CAE5B;IAED,wFAAwF;IACxF,0BAA0B,IAAI,IAAI;IAIlC,sEAAsE;IACtE,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAiBpC,uBAAuB,IAAI,IAAI;IAK/B,IAAI,mBAAmB,IAAI,OAAO,CAEjC;IAED;;;;;;;;;;;OAWG;IACH,IAAI,UAAU,IAAI,OAAO,CAGxB;CACF"}
@@ -1,162 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InstanceData = void 0;
4
- const EntityManager_1 = require("./EntityManager");
5
- /** The `#orm` metadata field we track on each instance. */
6
- class InstanceData {
7
- /** All entities must be associated to an `EntityManager` to handle lazy loading/etc. */
8
- em;
9
- /** A pointer to our entity type's metadata. */
10
- metadata;
11
- /** A bag for our lazy-initialized relations. */
12
- relations = {};
13
- /** The database-value of columns, as-is returned from the driver. */
14
- row;
15
- /** The domain-value of fields, lazily converted (if needed) on read from the database columns. */
16
- data;
17
- /** A bag to keep the original values, lazily populated as fields are mutated. */
18
- originalData = {};
19
- /** A bag to keep the flushed-to-database values, only for ReactiveQueryField reactivity. */
20
- flushedData;
21
- /**
22
- * Whether our entity has been deleted or not.
23
- *
24
- * - `pending` means we've been marked for deletion via `em.delete` but not issued a `DELETE`
25
- * - `flushed` means we've flushed a `DELETE` but `em.flush` hasn't fully completed yet, likely due to ReactiveQueryField calcs
26
- * - `deleted` means we've been flushed and `em.flush` has completed
27
- */
28
- #deleted;
29
- /** Whether our entity is new or not. */
30
- #new;
31
- /** The `a#1`, `a#2` index if we're an em.create-d entity. We never unset this, to keep ids stable across flushes. */
32
- createId;
33
- /** Whether our entity should flush regardless of any other changes. */
34
- isTouched = false;
35
- /** Creates the `#orm` field. */
36
- constructor(em, metadata, isNew) {
37
- this.em = em;
38
- this.metadata = metadata;
39
- if (isNew) {
40
- this.#new = Operation.Pending;
41
- this.data = {};
42
- this.row = {};
43
- this.flushedData = undefined;
44
- }
45
- else {
46
- this.#new = undefined;
47
- this.data = {};
48
- this.flushedData = undefined;
49
- }
50
- }
51
- /** If `em.flush` has detected a dirty RQF, reset our internal dirty state, w/o reseting our external-dirty state. */
52
- resetForRqfLoop() {
53
- this.flushedData = {};
54
- if (this.#new === Operation.Pending)
55
- this.#new = Operation.Flushed;
56
- if (this.#deleted === Operation.Pending)
57
- this.#deleted = Operation.Flushed;
58
- }
59
- resetAfterFlushed() {
60
- this.originalData = {};
61
- this.flushedData = undefined;
62
- this.isTouched = false;
63
- if (this.#new === Operation.Pending || this.#new === Operation.Flushed) {
64
- this.#new = Operation.Complete;
65
- }
66
- if (this.#deleted === Operation.Pending || this.#deleted === Operation.Flushed) {
67
- this.#deleted = Operation.Complete;
68
- }
69
- }
70
- /** Our public-facing `isNewEntity`. */
71
- get isNewEntity() {
72
- return this.#new !== undefined && this.#new !== Operation.Complete;
73
- }
74
- /** Our public-facing `isDeletedEntity`. */
75
- get isDeletedEntity() {
76
- return this.#deleted !== undefined;
77
- }
78
- /** Our public-facing `isDirtyEntity`. */
79
- get isDirtyEntity() {
80
- return Object.keys(this.originalData).length > 0;
81
- }
82
- /** This is our internal "is pending flush", which is aware of RQF micro-flush loops. */
83
- get pendingOperation() {
84
- if (this.#deleted !== undefined) {
85
- // Mark entities that were created and them immediately `em.delete`-d; granted this is
86
- // probably rare, but we shouldn't run hooks or have the driver try and delete these.
87
- // Note that we return them, instead of skipping entirely, so that fixupCreatedThenDeleted
88
- // can later be called.
89
- return this.#deleted === Operation.Pending && this.#new === Operation.Pending
90
- ? "created-then-deleted"
91
- : this.#deleted === Operation.Pending
92
- ? "delete"
93
- : "none";
94
- }
95
- else if (this.#new === Operation.Pending) {
96
- // Per ^, if `#new === flushed`, we fall through to check if micro-flush UPDATEs are required
97
- return "insert";
98
- }
99
- else if (this.flushedData) {
100
- return Object.keys(this.flushedData).length > 0 ? "update" : "none";
101
- }
102
- else {
103
- return this.isTouched || Object.keys(this.originalData).length > 0 ? "update" : "none";
104
- }
105
- }
106
- get changedFields() {
107
- return this.flushedData ? Object.keys(this.flushedData) : Object.keys(this.originalData);
108
- }
109
- /** Called when an `em.load` tries to find the entity and it's just gone from the db. */
110
- markDeletedBecauseNotFound() {
111
- this.#deleted = Operation.Complete;
112
- }
113
- /** Called by `em.delete`, returns true if this is new information. */
114
- markDeleted(entity) {
115
- if (this.#deleted === undefined) {
116
- // Let any OneToManyCollection.get caches know that they should recalc (i.e. their filterDeleted logic)
117
- // by asserting the `deleteBook.author` field is changing.
118
- //
119
- // Technically, the o2m caches use the "naive" cache, so we don't really need to pass along the field.
120
- for (const field of Object.values(this.metadata.allFields)) {
121
- if (field.kind === "m2o") {
122
- (0, EntityManager_1.getEmInternalApi)(this.em).isLoadedCache.resetIsLoaded(entity, field.fieldName);
123
- }
124
- }
125
- this.#deleted = Operation.Pending;
126
- return true;
127
- }
128
- return false;
129
- }
130
- fixupCreatedThenDeleted() {
131
- // Ideally we could do this via `resetAfterFlushed`?
132
- this.#deleted = Operation.Complete;
133
- }
134
- get isDeletedAndFlushed() {
135
- return this.#deleted === Operation.Complete;
136
- }
137
- /**
138
- * Returns true if the entity is new or was new in this EM.
139
- *
140
- * This is primarily used for lazy-initializing relations, i.e. if:
141
- *
142
- * - A new `Author` is created
143
- * - We `em.flush` the author to the database
144
- * - Then `a1.books` is accessed for the first time
145
- *
146
- * We can have a high-confidence that `a1` has no books, because we just
147
- * created it, so we can set the OneToManyCollection to loaded.
148
- */
149
- get isOrWasNew() {
150
- // #new will be left as `complete`
151
- return this.#new !== undefined;
152
- }
153
- }
154
- exports.InstanceData = InstanceData;
155
- /** An enum to track our insert/delete state progression. */
156
- var Operation;
157
- (function (Operation) {
158
- Operation[Operation["Pending"] = 1] = "Pending";
159
- Operation[Operation["Flushed"] = 2] = "Flushed";
160
- Operation[Operation["Complete"] = 3] = "Complete";
161
- })(Operation || (Operation = {}));
162
- //# sourceMappingURL=InstanceData.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InstanceData.js","sourceRoot":"","sources":["../src/InstanceData.ts"],"names":[],"mappings":";;;AACA,mDAAkE;AAGlE,2DAA2D;AAC3D,MAAa,YAAY;IACvB,wFAAwF;IAC/E,EAAE,CAAgB;IAC3B,+CAA+C;IACtC,QAAQ,CAAiB;IAClC,gDAAgD;IAChD,SAAS,GAAqB,EAAE,CAAC;IACjC,qEAAqE;IACrE,GAAG,CAAuB;IAC1B,kGAAkG;IAClG,IAAI,CAAsB;IAC1B,iFAAiF;IACjF,YAAY,GAAqB,EAAE,CAAC;IACpC,4FAA4F;IAC5F,WAAW,CAA+B;IAC1C;;;;;;OAMG;IACH,QAAQ,CAAa;IACrB,wCAAwC;IACxC,IAAI,CAAa;IACjB,qHAAqH;IACrH,QAAQ,CAAqB;IAC7B,uEAAuE;IACvE,SAAS,GAAY,KAAK,CAAC;IAE3B,gCAAgC;IAChC,YAAY,EAAiB,EAAE,QAAwB,EAAE,KAAc;QACrE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC;YAC9B,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,GAAG,EAAE,CAAC;YACd,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;YACtB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;YACf,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,qHAAqH;IACrH,eAAe;QACb,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,OAAO;YAAE,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC;QACnE,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,OAAO;YAAE,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC;IAC7E,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,OAAO,EAAE,CAAC;YACvE,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC;QACjC,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,OAAO,EAAE,CAAC;YAC/E,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;QACrC,CAAC;IACH,CAAC;IAED,uCAAuC;IACvC,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,QAAQ,CAAC;IACrE,CAAC;IAED,2CAA2C;IAC3C,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC;IACrC,CAAC;IAED,yCAAyC;IACzC,IAAI,aAAa;QACf,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACnD,CAAC;IAED,wFAAwF;IACxF,IAAI,gBAAgB;QAClB,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAChC,sFAAsF;YACtF,qFAAqF;YACrF,0FAA0F;YAC1F,uBAAuB;YACvB,OAAO,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,OAAO;gBAC3E,CAAC,CAAC,sBAAsB;gBACxB,CAAC,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,OAAO;oBACnC,CAAC,CAAC,QAAQ;oBACV,CAAC,CAAC,MAAM,CAAC;QACf,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,OAAO,EAAE,CAAC;YAC3C,6FAA6F;YAC7F,OAAO,QAAQ,CAAC;QAClB,CAAC;aAAM,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAC5B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;QACtE,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;QACzF,CAAC;IACH,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC3F,CAAC;IAED,wFAAwF;IACxF,0BAA0B;QACxB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;IACrC,CAAC;IAED,sEAAsE;IACtE,WAAW,CAAC,MAAc;QACxB,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAChC,uGAAuG;YACvG,0DAA0D;YAC1D,EAAE;YACF,sGAAsG;YACtG,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3D,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;oBACzB,IAAA,gCAAgB,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;gBACjF,CAAC;YACH,CAAC;YACD,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC;YAClC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,uBAAuB;QACrB,oDAAoD;QACpD,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;IACrC,CAAC;IAED,IAAI,mBAAmB;QACrB,OAAO,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,QAAQ,CAAC;IAC9C,CAAC;IAED;;;;;;;;;;;OAWG;IACH,IAAI,UAAU;QACZ,kCAAkC;QAClC,OAAO,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC;IACjC,CAAC;CACF;AA1JD,oCA0JC;AAED,4DAA4D;AAC5D,IAAK,SAIJ;AAJD,WAAK,SAAS;IACZ,+CAAW,CAAA;IACX,+CAAW,CAAA;IACX,iDAAY,CAAA;AACd,CAAC,EAJI,SAAS,KAAT,SAAS,QAIb"}
@@ -1,32 +0,0 @@
1
- import { Entity } from "./Entity";
2
- /**
3
- * Interface for our relations that have dynamic & expensive `isLoaded` checks.
4
- *
5
- * ...and also `OneToManyCollection.get` calls.
6
- *
7
- * The primary m2o/o2m/m2m relations all have trivial `isLoaded` checks--are they
8
- * loaded or not.
9
- *
10
- * But for "composite relations", i.e. a ReactiveField or ReactiveRelation whose
11
- * "load-ness" is calculated by evaluating its load hint across a subgraph of entities
12
- * & relations, load-ness can be more dynamic true-then-false, as its subgraph changes.
13
- *
14
- * To avoid performance issues (see https://github.com/joist-orm/joist-orm/issues/1166),
15
- * we cache this dynamic/expensive `isLoaded` checks, and then do targeted, reactivity-driven
16
- * cache invalidation whenever relations are mutated (via a hook in `setField`).
17
- */
18
- export interface IsLoadedCachable {
19
- entity: Entity;
20
- fieldName: string;
21
- isLoaded: boolean;
22
- resetIsLoaded(): void;
23
- }
24
- export declare class IsLoadedCache {
25
- #private;
26
- /** Adds a ReactiveField/Relation/Collection to be invalidated when its dependencies change. */
27
- add(target: IsLoadedCachable): void;
28
- addNaive(target: IsLoadedCachable): void;
29
- /** Resets any isLoaded caches that depend on `entity.fieldName`. */
30
- resetIsLoaded(entity: Entity, fieldName: string): void;
31
- }
32
- //# sourceMappingURL=IsLoadedCache.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IsLoadedCache.d.ts","sourceRoot":"","sources":["../src/IsLoadedCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAIlC;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,IAAI,IAAI,CAAC;CACvB;AAED,qBAAa,aAAa;;IAWxB,+FAA+F;IAC/F,GAAG,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAOnC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAKxC,oEAAoE;IACpE,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;CA+CvD"}