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,59 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.zonedDateTimeMapper = exports.plainDateTimeMapper = exports.plainTimeMapper = exports.plainDateMapper = void 0;
4
- const temporal_1 = require("./temporal");
5
- const utils_1 = require("./utils");
6
- const { Temporal: t } = (0, temporal_1.maybeRequireTemporal)() ?? {};
7
- const temporalNotAvailable = {
8
- fromDb: () => (0, utils_1.fail)("Temporal not available"),
9
- toDb: () => (0, utils_1.fail)("Temporal not available"),
10
- };
11
- /** Converts Postgres `DATE` to/from Temporal.PlainDate. */
12
- exports.plainDateMapper = t
13
- ? {
14
- fromDb: t.PlainDate.from,
15
- toDb: (p) => p.toString(),
16
- }
17
- : temporalNotAvailable;
18
- /** Converts Postgres `TIME` to/from Temporal.PlainTime. */
19
- exports.plainTimeMapper = t
20
- ? {
21
- fromDb: t.PlainTime.from,
22
- toDb: (pt) => pt.toString(),
23
- }
24
- : temporalNotAvailable;
25
- /** Converts Postgres `TIMESTAMP` / `TIMESTAMP WITHOUT TIME ZONE` to/from Temporal.PlainDateTime. */
26
- exports.plainDateTimeMapper = t
27
- ? {
28
- // Should look like `2018-01-01 10:00:00`
29
- fromDb: (s) => t.PlainDateTime.from(s),
30
- toDb: (p) => p.toString(),
31
- }
32
- : temporalNotAvailable;
33
- /**
34
- * Converts Postgres `TIMESTAMPTZ`, `TIMESTAMPTZ WITH TIME ZONE` to/from Temporal.ZonedDateTime.
35
- *
36
- * Specifically, Postgres uses ISO 8601, which Temporal supports as well, except that PG ouputs a space instead of `T`
37
- * between the date/time for output.
38
- *
39
- * Additionally, `Temporal.ZonedDateTime.from` expects a time zone literal name to be supplied as part of the string,
40
- * but this is not stored by postgres.
41
- *
42
- * As such, we parse the offset and append it to string passed to `from` as the time zone. This means that if we did a
43
- * round trip of generating a db value then parsing it, then it may not strictly equal the original zdt.
44
- *
45
- * Finally, PG stores dates as UTC and converts them to its local time zone for output, so we could get any offset
46
- * theoretically. If, somehow, we don't get an offset, then we assume UTC.
47
- */
48
- exports.zonedDateTimeMapper = t
49
- ? {
50
- // Produce a ZDT from a PG output like "2021-01-01 12:00:00-05:00"
51
- fromDb: (s) => {
52
- const [offset] = s.match(/([+-]\d{2}(?::?\d{2})?)$/) ?? [];
53
- return t.ZonedDateTime.from(`${s}[${!offset || /^\+00(:?00)?$/.test(offset) ? "UTC" : offset}]`);
54
- },
55
- // Match a PG `TIMESTAMPTZ` input format, i.e. "2021-01-01T12:00:00-05:00"
56
- toDb: (zdt) => zdt.toString({ timeZoneName: "never" }),
57
- }
58
- : temporalNotAvailable;
59
- //# sourceMappingURL=temporalMappers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"temporalMappers.js","sourceRoot":"","sources":["../src/temporalMappers.ts"],"names":[],"mappings":";;;AAEA,yCAAkD;AAClD,mCAA+B;AAE/B,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,IAAA,+BAAoB,GAAE,IAAI,EAAE,CAAC;AACrD,MAAM,oBAAoB,GAAG;IAC3B,MAAM,EAAE,GAAG,EAAE,CAAC,IAAA,YAAI,EAAC,wBAAwB,CAAC;IAC5C,IAAI,EAAE,GAAG,EAAE,CAAC,IAAA,YAAI,EAAC,wBAAwB,CAAC;CAC3C,CAAC;AAEF,2DAA2D;AAC9C,QAAA,eAAe,GAA4C,CAAC;IACvE,CAAC,CAAC;QACE,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI;QACxB,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;KAC1B;IACH,CAAC,CAAC,oBAAoB,CAAC;AAEzB,2DAA2D;AAC9C,QAAA,eAAe,GAA4C,CAAC;IACvE,CAAC,CAAC;QACE,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI;QACxB,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE;KAC5B;IACH,CAAC,CAAC,oBAAoB,CAAC;AAEzB,oGAAoG;AACvF,QAAA,mBAAmB,GAAgD,CAAC;IAC/E,CAAC,CAAC;QACE,yCAAyC;QACzC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;QACtC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;KAC1B;IACH,CAAC,CAAC,oBAAoB,CAAC;AAEzB;;;;;;;;;;;;;;GAcG;AACU,QAAA,mBAAmB,GAAgD,CAAC;IAC/E,CAAC,CAAC;QACE,kEAAkE;QAClE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;YACZ,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,0BAA0B,CAAC,IAAI,EAAE,CAAC;YAC3D,OAAO,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;QACnG,CAAC;QACD,0EAA0E;QAC1E,IAAI,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC;KACvD;IACH,CAAC,CAAC,oBAAoB,CAAC"}
@@ -1,68 +0,0 @@
1
- import { Entity } from "./Entity";
2
- import { EntityManager } from "./EntityManager";
3
- /**
4
- * Provides a container for entities to attach their application-specific types.
5
- *
6
- * Downstream applications inject their types into this map, so we can look them up
7
- * via types like `OptsOf<Author>` or `FilterOf<Author>`, by including a `declare module`
8
- * snippet in each entity's `...Codegen` file.
9
- *
10
- * ```ts
11
- * declare module "joist-orm" {
12
- * interface TypeMap {
13
- * Author: { optsType: AuthorOpts; fieldsType: AuthorFields; filterType: AuthorFilter };
14
- * }
15
- * }
16
- * ```
17
- *
18
- * Inspired by Tanstack Router, which uses a similar `declare module` approach.
19
- */
20
- export interface TypeMap {
21
- }
22
- /**
23
- * Returns a key like `"Author"` or `"SmallPublisher"` for looking up types in the `TypeMap`.
24
- *
25
- * This is currently hard-coded to look for two levels of inheritance: we probe for the subtype
26
- * key (1) first, and then fallback on the base type key (0) that all entities will have.
27
- */
28
- type TypeMapKey<T> = T extends {
29
- __type: {
30
- 1: infer K;
31
- };
32
- } ? K : T extends {
33
- __type: {
34
- 0: infer K;
35
- };
36
- } ? K : never;
37
- /** A helper type to look up `U` in the `TypeMap` for a given entity type `T`. */
38
- export type TypeMapEntry<T, U extends string> = TypeMapKey<T> extends infer K ? K extends keyof TypeMap ? U extends keyof TypeMap[K] ? TypeMap[K][U] : unknown : unknown : unknown;
39
- /** Return the `FooOpts` type for the given `Foo` entity. */
40
- export type OptsOf<T> = TypeMapEntry<T, "optsType">;
41
- /** Return the `FooFields` type for the given `Foo` entity. */
42
- export type FieldsOf<T> = TypeMapEntry<T, "fieldsType">;
43
- export type OptIdsOf<T> = TypeMapEntry<T, "optIdsType">;
44
- /** Pulls the entity query type out of a given entity type T. */
45
- export type FilterOf<T> = TypeMapEntry<T, "filterType">;
46
- /** Pulls the entity GraphQL query type out of a given entity type T. */
47
- export type GraphQLFilterOf<T> = TypeMapEntry<T, "gqlFilterType">;
48
- /** Pulls the entity order type out of a given entity type T. */
49
- export type OrderOf<T> = TypeMapEntry<T, "orderType">;
50
- /** Returns the factory "extras" type, like `withDerivedField`. */
51
- export type FactoryExtrasOf<T> = TypeMapEntry<T, "factoryExtrasType">;
52
- /**
53
- * Returns the opts of the entity's `newEntity` factory method, as exists in the actual file.
54
- *
55
- * This is because `FactoryOpts` is a set of defaults, but the user can customize it if they want.
56
- */
57
- export type ActualFactoryOpts<T> = TypeMapEntry<T, "factoryOptsType">;
58
- /** Return the `Foo` type for a given `Foo` entity constructor. */
59
- export type EntityOf<C> = C extends new (em: EntityManager, opts: any) => infer T ? T : never;
60
- type RelationsKeysOf<T> = {
61
- [K in keyof OptsOf<T>]: OptsOf<T>[K] extends Entity[] | undefined ? K : never;
62
- }[keyof OptsOf<T>];
63
- /** Return the Relation keys from `FooOpt` type, given a `Foo` entity */
64
- export type RelationsOf<T extends Entity> = {
65
- [K in RelationsKeysOf<T>]: NonNullable<OptsOf<T>[K]>;
66
- };
67
- export {};
68
- //# sourceMappingURL=typeMap.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"typeMap.d.ts","sourceRoot":"","sources":["../src/typeMap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,OAAO;CAAG;AAE3B;;;;;GAKG;AACH,KAAK,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC,CAAA;KAAE,CAAA;CAAE,GAAG,CAAC,GAAG,CAAC,SAAS;IAAE,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC,CAAA;KAAE,CAAA;CAAE,GAAG,CAAC,GAAG,KAAK,CAAC;AAEjH,iFAAiF;AACjF,MAAM,MAAM,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,IAC1C,UAAU,CAAC,CAAC,CAAC,SAAS,MAAM,CAAC,GACzB,CAAC,SAAS,MAAM,OAAO,GACrB,CAAC,SAAS,MAAM,OAAO,CAAC,CAAC,CAAC,GACxB,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACb,OAAO,GACT,OAAO,GACT,OAAO,CAAC;AAEd,4DAA4D;AAC5D,MAAM,MAAM,MAAM,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AAEpD,8DAA8D;AAC9D,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;AAExD,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;AAExD,gEAAgE;AAChE,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;AAExD,wEAAwE;AACxE,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;AAElE,gEAAgE;AAChE,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC;AAEtD,kEAAkE;AAClE,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;AAEtE;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;AAEtE,kEAAkE;AAClE,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,KAAK,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAE9F,KAAK,eAAe,CAAC,CAAC,IAAI;KACvB,CAAC,IAAI,MAAM,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,SAAS,GAAG,CAAC,GAAG,KAAK;CAC9E,CAAC,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAEnB,wEAAwE;AACxE,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,MAAM,IAAI;KACzC,CAAC,IAAI,eAAe,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACrD,CAAC"}
package/build/typeMap.js DELETED
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=typeMap.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"typeMap.js","sourceRoot":"","sources":["../src/typeMap.ts"],"names":[],"mappings":""}
package/build/unnest.d.ts DELETED
@@ -1,13 +0,0 @@
1
- import { OpColumn } from "./drivers/EntityWriter";
2
- import { ParsedCteClause } from "./QueryParser";
3
- /**
4
- * Creates a CTE named `alias` that bulk-injects the `columnValues` into a SQL query.
5
- *
6
- * I.e. `columns = [first_name, last_name]` means columnValues would be all first names,
7
- * then all last names, i.e.`[["f1","f2"], ["l1","l2"]]`.
8
- *
9
- * Note that `columnValues` will be mutated if any array columns need to be made rectangular.
10
- */
11
- export declare function buildUnnestCte(alias: string, columns: OpColumn[], columnValues: any[][]): ParsedCteClause;
12
- export declare function ensureRectangularArraySizes(columns: OpColumn[], columnValues: any[][]): void;
13
- //# sourceMappingURL=unnest.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"unnest.d.ts","sourceRoot":"","sources":["../src/unnest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,EAAE,GAAG,eAAe,CAoBzG;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,QAAQ,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,EAAE,GAAG,IAAI,CAW5F"}
package/build/unnest.js DELETED
@@ -1,85 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildUnnestCte = buildUnnestCte;
4
- exports.ensureRectangularArraySizes = ensureRectangularArraySizes;
5
- /**
6
- * Creates a CTE named `alias` that bulk-injects the `columnValues` into a SQL query.
7
- *
8
- * I.e. `columns = [first_name, last_name]` means columnValues would be all first names,
9
- * then all last names, i.e.`[["f1","f2"], ["l1","l2"]]`.
10
- *
11
- * Note that `columnValues` will be mutated if any array columns need to be made rectangular.
12
- */
13
- function buildUnnestCte(alias, columns, columnValues) {
14
- // Make any arrays-of-arrays rectangular by filling them with nulls
15
- ensureRectangularArraySizes(columns, columnValues);
16
- // Use unnest or unnest_arrays depending on whether the column is an array column
17
- const selects = columns.map((c) => {
18
- if (c.dbType.endsWith("[]")) {
19
- if (c.isNullableArray) {
20
- return `unnest_arrays(?::${c.dbType}[], true)`;
21
- }
22
- else {
23
- return `unnest_arrays(?::${c.dbType}[])`;
24
- }
25
- }
26
- else {
27
- return `unnest(?::${c.dbType}[])`;
28
- }
29
- });
30
- return {
31
- alias,
32
- columns,
33
- query: { kind: "raw", sql: `SELECT ${selects.join(", ")}`, bindings: columnValues },
34
- };
35
- }
36
- function ensureRectangularArraySizes(columns, columnValues) {
37
- for (let i = 0; i < columns.length; i++) {
38
- const column = columns[i];
39
- if (column.dbType.endsWith("[]")) {
40
- const values = columnValues[i];
41
- const fillTo = findArrayMaxSize(values);
42
- for (let j = 0; j < values.length; j++) {
43
- values[j] = fillArrayWithNulls(column, values[j], fillTo);
44
- }
45
- }
46
- }
47
- }
48
- function findArrayMaxSize(columnValues) {
49
- let max = 1; // postgres really doesn't like `{{}}` so always send at least 1 element
50
- for (let i = 0; i < columnValues.length; i++)
51
- max = Math.max(max, columnValues[i]?.length ?? 0);
52
- return max;
53
- }
54
- // Because postgres array-of-arrays must be rectangular, we fill all arrays up the same max size
55
- // to put on the wire, and then later strip the padded nulls during the unnest_arrays call.
56
- function fillArrayWithNulls(c, array, maxSize) {
57
- const wasNull = array === null;
58
- const result = array ? [...array] : [];
59
- const nullsToAdd = Math.max(0, maxSize - (array?.length ?? 0));
60
- for (let i = 0; i < nullsToAdd; i++)
61
- result.push(null);
62
- // Add our unset marker
63
- if (c.isNullableArray)
64
- result.unshift(wasNull ? null : notNullMarker(c));
65
- return result;
66
- }
67
- function notNullMarker(c) {
68
- // Should probably push this into an OpColumn.notNullMarker value
69
- if (c.dbType.startsWith("varchar") || c.dbType.startsWith("character") || c.dbType.startsWith("text")) {
70
- return "";
71
- }
72
- else if (c.dbType.startsWith("int")) {
73
- return 1;
74
- }
75
- else if (c.dbType.startsWith("date")) {
76
- return new Date(); // maybe something temporal?
77
- }
78
- else if (c.dbType.startsWith("timestamp")) {
79
- return new Date(); // maybe something temporal?
80
- }
81
- else {
82
- throw new Error("Unhandled nullable array column type " + c.dbType);
83
- }
84
- }
85
- //# sourceMappingURL=unnest.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"unnest.js","sourceRoot":"","sources":["../src/unnest.ts"],"names":[],"mappings":"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"}
package/build/upsert.d.ts DELETED
@@ -1,42 +0,0 @@
1
- import { Entity } from "./Entity";
2
- import { EntityManager, IdOf, MaybeAbstractEntityConstructor } from "./EntityManager";
3
- import { PartialOrNull } from "./index";
4
- import { OptIdsOf, OptsOf } from "./typeMap";
5
- import { NullOrDefinedOr } from "./utils";
6
- /**
7
- * The type for `EntityManager.createOrUpdateUnsafe` that allows "upsert"-ish behavior.
8
- *
9
- * I.e. `T` is an entity with an optional id (create if unset, update if set), and we recurse
10
- * into any relations (references or collections) to allow those relations themselves to be
11
- * any combination of 1) ids to existing entities, 2) entities directly, 3) null/undefined
12
- * with the appropriate partial-update behavior, or 4) partials.
13
- */
14
- export type DeepPartialOrNull<T extends Entity> = {
15
- id?: IdOf<T> | null;
16
- } & AllowRelationsToBeIdsOrEntitiesOrPartials<PartialOrNull<OptsOf<T> & OptIdsOf<T>>> & OptIdsOf<T>;
17
- /** Flags that allow `upsert` to delete or remove entities. */
18
- type CollectionFlags = {
19
- delete?: boolean | null;
20
- remove?: boolean | null;
21
- op?: "remove" | "delete" | "include" | "incremental";
22
- };
23
- /** Flag that allows `upsert` to delete. */
24
- type DeleteFlag = {
25
- delete?: boolean | null;
26
- };
27
- type AllowRelationsToBeIdsOrEntitiesOrPartials<T> = {
28
- [P in keyof T]: T[P] extends NullOrDefinedOr<infer U> ? U extends Array<infer V> ? V extends Entity ? Array<V | (DeepPartialOrNull<V> & CollectionFlags) | IdOf<V>> | null : T[P] : U extends Entity ? U | (DeepPartialOrNull<U> & DeleteFlag) | IdOf<U> | null : T[P] : T[P];
29
- };
30
- /**
31
- * A utility function to do partial-update style updates.
32
- *
33
- * The difference between this and `Entity.setPartial` is that we accept `DeepPartialOrNull`
34
- * updates, similar to `createOrUpdateUnsafe`, instead of just a flat/shallow list of opts.
35
- */
36
- export declare function updatePartial<T extends Entity>(entity: T, input: DeepPartialOrNull<T>): Promise<void>;
37
- /**
38
- * A utility function to create-or-update/upsert entities coming from a partial-update style API.
39
- */
40
- export declare function upsert<T extends Entity>(em: EntityManager<any, any, any>, constructor: MaybeAbstractEntityConstructor<T>, input: DeepPartialOrNull<T>): Promise<T>;
41
- export {};
42
- //# sourceMappingURL=upsert.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"upsert.d.ts","sourceRoot":"","sources":["../src/upsert.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAY,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,8BAA8B,EAAS,MAAM,iBAAiB,CAAC;AAE7F,OAAO,EACL,aAAa,EAMd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAW,MAAM,SAAS,CAAC;AAEnD;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,MAAM,IAAI;IAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;CAAE,GAAG,yCAAyC,CACnH,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CACvC,GACC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAEd,8DAA8D;AAC9D,KAAK,eAAe,GAAG;IACrB,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,EAAE,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,aAAa,CAAC;CACtD,CAAC;AAEF,2CAA2C;AAC3C,KAAK,UAAU,GAAG;IAChB,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CACzB,CAAC;AAEF,KAAK,yCAAyC,CAAC,CAAC,IAAI;KACjD,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,eAAe,CAAC,MAAM,CAAC,CAAC,GACjD,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GACtB,CAAC,SAAS,MAAM,GACd,KAAK,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GACpE,CAAC,CAAC,CAAC,CAAC,GACN,CAAC,SAAS,MAAM,GACd,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GACxD,CAAC,CAAC,CAAC,CAAC,GACR,CAAC,CAAC,CAAC,CAAC;CACT,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAmM3G;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAC,CAAC,SAAS,MAAM,EAC3C,EAAE,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAChC,WAAW,EAAE,8BAA8B,CAAC,CAAC,CAAC,EAC9C,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAC1B,OAAO,CAAC,CAAC,CAAC,CAaZ"}
package/build/upsert.js DELETED
@@ -1,265 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.updatePartial = updatePartial;
4
- exports.upsert = upsert;
5
- const joist_utils_1 = require("joist-utils");
6
- const defaults_1 = require("./defaults");
7
- const Entity_1 = require("./Entity");
8
- const EntityManager_1 = require("./EntityManager");
9
- const EntityMetadata_1 = require("./EntityMetadata");
10
- const index_1 = require("./index");
11
- const utils_1 = require("./utils");
12
- /**
13
- * A utility function to do partial-update style updates.
14
- *
15
- * The difference between this and `Entity.setPartial` is that we accept `DeepPartialOrNull`
16
- * updates, similar to `createOrUpdateUnsafe`, instead of just a flat/shallow list of opts.
17
- */
18
- async function updatePartial(entity, input) {
19
- if (Object.keys(input).length === 0)
20
- return;
21
- const meta = (0, EntityMetadata_1.getMetadata)(entity);
22
- const { em } = entity;
23
- // Do a Promise.all so we .load() relations in parallel
24
- await Promise.all(Object.entries(input).map(async ([key, value]) => {
25
- // setPartial ==> `undefined` is a noop
26
- if (value === undefined)
27
- return;
28
- // Watch for the `bookId` / `bookIds` aliases
29
- const field = meta.allFields[key] || Object.values(meta.allFields).find((f) => f.fieldIdName === key);
30
- if (!field) {
31
- // Allow (ignore here) delete/remove flags that we assume the API layer (i.e. GraphQL) will have specifically
32
- // allowed, i.e. this isn't the Rails form bug where users can POST in any random field they want.
33
- const flagField = key === "delete" || key === "remove" || key === "op";
34
- if (flagField)
35
- return;
36
- // Look for non-field properties like a fullName setter
37
- const prop = (0, index_1.getProperties)(meta)[key];
38
- if (prop) {
39
- (0, index_1.setOpt)(meta, entity, key, value);
40
- return;
41
- }
42
- else {
43
- throw new Error(`Unknown field ${key}`);
44
- }
45
- }
46
- // Don't use key b/c it might be the bookId alias
47
- const name = field.fieldName;
48
- if (field.kind === "poly" && value && !(0, Entity_1.isEntity)(value)) {
49
- // Resolve non-entity poly values
50
- if ((0, EntityManager_1.isKey)(value)) {
51
- (0, index_1.setOpt)(meta, entity, name, await em.load((0, index_1.getConstructorFromTaggedId)(value), value));
52
- }
53
- else {
54
- throw new Error(`Cannot use partial value for polymorphic field `);
55
- }
56
- }
57
- else if (field.kind === "m2o" && value && !(0, Entity_1.isEntity)(value)) {
58
- // This is a many-to-one reference
59
- if ((0, EntityManager_1.isKey)(value)) {
60
- (0, index_1.setOpt)(meta, entity, name, await em.load(field.otherMetadata().cstr, value));
61
- }
62
- else if (typeof value === "object" && value) {
63
- let other;
64
- if ("id" in value) {
65
- // This is a many-to-one partial update to an existing entity (they passed an id)
66
- other = await upsert(em, field.otherMetadata().cstr, value);
67
- }
68
- else {
69
- // This is a many-to-one partial w/o passing an id, i.e. `upsert(Author, { id: "a:1", publisher: { name: "p1" } })`
70
- if (entity.isNewEntity) {
71
- // If we're brand new, our child/other has to be brand new as well
72
- other = await upsert(em, field.otherMetadata().cstr, value);
73
- }
74
- else {
75
- // the o2o upsert hash didn't have an id, so find-or-create it
76
- other = await entity[name].load();
77
- if (other) {
78
- await updatePartial(other, value);
79
- }
80
- else {
81
- other = await upsert(em, field.otherMetadata().cstr, value);
82
- }
83
- }
84
- }
85
- const deleteMarker = getDeleteMarker(field, value);
86
- if (deleteMarker) {
87
- em.delete(other);
88
- other = undefined;
89
- }
90
- (0, index_1.setOpt)(meta, entity, name, other);
91
- }
92
- }
93
- else if (field.kind === "o2o") {
94
- // ^-- o2o always need loaded to be set, so don't fall through
95
- if (value === null || (0, Entity_1.isEntity)(value)) {
96
- await entity[name].load();
97
- (0, index_1.setOpt)(meta, entity, name, value);
98
- }
99
- else if ((0, EntityManager_1.isKey)(value)) {
100
- const [, other] = await Promise.all([
101
- entity[name].load(),
102
- em.load(field.otherMetadata().cstr, value),
103
- ]);
104
- (0, index_1.setOpt)(meta, entity, name, other);
105
- }
106
- else if (typeof value === "object" && (0, joist_utils_1.isPlainObject)(value)) {
107
- const deleteMarker = getDeleteMarker(field, value);
108
- // Always load the o2o so we can set it
109
- const current = await entity[name].load();
110
- let other;
111
- if ("id" in value) {
112
- // The o2o upsert hash was passed an id, so load it
113
- other = await upsert(em, field.otherMetadata().cstr, value);
114
- }
115
- else {
116
- // the o2o upsert hash didn't have an id, so find-or-create it
117
- other = current;
118
- if (other) {
119
- await updatePartial(other, value);
120
- }
121
- else {
122
- other = await upsert(em, field.otherMetadata().cstr, value);
123
- }
124
- }
125
- if (deleteMarker) {
126
- em.delete(other);
127
- }
128
- else {
129
- (0, index_1.setOpt)(meta, entity, name, other);
130
- }
131
- }
132
- else {
133
- throw new Error(`Invalid value ${value}`);
134
- }
135
- }
136
- else if (field.kind === "o2m" || field.kind === "m2m") {
137
- // Look for one-to-many/many-to-many partials
138
- // `null` is handled later, and treated as `[]`, which needs the collection loaded
139
- const values = (0, utils_1.toArray)(value);
140
- const otherMeta = field.otherMetadata();
141
- const maybeSoftDelete = otherMeta.timestampFields?.deletedAt;
142
- // Incremental handling
143
- const anyValueHasOp = values.some((v) => v && typeof v === "object" && !(0, Entity_1.isEntity)(v) && "op" in v);
144
- if (anyValueHasOp) {
145
- let anyValueMissingOp = false;
146
- const current = entity[name];
147
- // The `op` behavior means incremental and wants to do this:
148
- await Promise.all(values.map(async (value) => {
149
- const [, , op] = getCollectionMarkers(field, value);
150
- if (op === "delete") {
151
- const other = await upsert(em, otherMeta.cstr, value);
152
- // We need to check if this is a soft-deletable entity, and if so, we will soft-delete it.
153
- if (maybeSoftDelete) {
154
- const serde = otherMeta.fields[maybeSoftDelete].serde;
155
- const now = new Date();
156
- other.set({ [maybeSoftDelete]: serde.mapFromNow(now) });
157
- }
158
- else {
159
- entity.em.delete(other);
160
- }
161
- }
162
- else if (op === "remove") {
163
- const other = await upsert(em, otherMeta.cstr, value);
164
- current.remove(other);
165
- }
166
- else if (op === "include") {
167
- const other = await upsert(em, otherMeta.cstr, value);
168
- current.add(other);
169
- }
170
- else if (op === "incremental") {
171
- // This is a marker entry, just ignore it
172
- }
173
- }));
174
- if (anyValueMissingOp) {
175
- throw new Error("If any child sets the `op` key, then all children must have the `op` key.");
176
- }
177
- return; // return from the op-based incremental behavior
178
- }
179
- // Otherwise we do exhaustive sets, will still looking for `delete`/`remove` markers
180
- const others = await Promise.all(values.map(async (value) => {
181
- if ((0, Entity_1.isEntity)(value)) {
182
- return value;
183
- }
184
- else if ((0, EntityManager_1.isKey)(value)) {
185
- return em.load(field.otherMetadata().cstr, value);
186
- }
187
- else if (value === null || value === undefined) {
188
- return undefined;
189
- }
190
- else if (!(0, joist_utils_1.isPlainObject)(value)) {
191
- throw new Error(`Invalid value ${value}`);
192
- }
193
- else {
194
- // Look for `delete: true/false` and `remove: true/false` markers
195
- const [deleteMarker, removeMarker] = getCollectionMarkers(field, value);
196
- const other = await upsert(em, field.otherMetadata().cstr, value);
197
- if (deleteMarker) {
198
- // if (maybeSoftDelete) {
199
- // const serde = meta.fields[maybeSoftDelete].serde as TimestampSerde<unknown>;
200
- // const now = new Date();
201
- // other.set({ [maybeSoftDelete]: serde.mapFromNow(now) });
202
- // } else {
203
- // }
204
- em.delete(other);
205
- return other;
206
- }
207
- else if (removeMarker) {
208
- return undefined;
209
- }
210
- else {
211
- return other;
212
- }
213
- }
214
- }));
215
- await entity[name].load();
216
- (0, index_1.setOpt)(meta, entity, name, others.filter((v) => v !== undefined));
217
- }
218
- else {
219
- // If we get here, value should be a vanilla value that `setOpt` can handle/pass through as-is
220
- (0, index_1.setOpt)(meta, entity, name, value);
221
- }
222
- }));
223
- }
224
- /**
225
- * A utility function to create-or-update/upsert entities coming from a partial-update style API.
226
- */
227
- async function upsert(em, constructor, input) {
228
- const { id, ...rest } = input;
229
- const isNew = id === null || id === undefined;
230
- const entity = isNew
231
- ? // asConcreteCstr is not actually safe but for now we rely on our cstr runtime check to catch this
232
- em.createPartial((0, index_1.asConcreteCstr)(constructor), {})
233
- : await em.load(constructor, id);
234
- await updatePartial(entity, rest);
235
- // Do this manually since we're not going through setOpts anymore
236
- if (isNew) {
237
- (0, defaults_1.setSyncDefaults)(entity);
238
- }
239
- return entity;
240
- }
241
- function getCollectionMarkers(field, value) {
242
- const allowDelete = !field.otherMetadata().fields["delete"];
243
- const allowRemove = !field.otherMetadata().fields["remove"];
244
- const allowOp = !field.otherMetadata().fields["op"];
245
- // Look for `delete: true/false` and `remove: true/false` markers
246
- const deleteMarker = allowDelete && value["delete"];
247
- const removeMarker = allowRemove && value["remove"];
248
- const opMarker = allowOp && value["op"];
249
- // Remove the markers, regardless of true/false, before recursing into upsert to avoid unknown fields
250
- if (deleteMarker !== undefined)
251
- delete value.delete;
252
- if (removeMarker !== undefined)
253
- delete value.remove;
254
- if (opMarker !== undefined)
255
- delete value.op;
256
- return [deleteMarker, removeMarker, opMarker];
257
- }
258
- function getDeleteMarker(field, value) {
259
- const allowDelete = !field.otherMetadata().fields["delete"];
260
- const deleteMarker = allowDelete && value["delete"];
261
- if (deleteMarker !== undefined)
262
- delete value.delete;
263
- return deleteMarker;
264
- }
265
- //# sourceMappingURL=upsert.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"upsert.js","sourceRoot":"","sources":["../src/upsert.ts"],"names":[],"mappings":"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"}
package/build/utils.d.ts DELETED
@@ -1,58 +0,0 @@
1
- import { Entity } from "./Entity";
2
- import { OrderBy } from "./EntityFilter";
3
- import { New } from "./loadHints";
4
- export type MaybePromise<T> = T | Promise<T>;
5
- /**
6
- * Given a `MaybePromise` of T, invoke `callback` against `T` either immediately or via `then`.
7
- *
8
- * This is the same as:
9
- *
10
- * ```
11
- * const r = await maybePromise;
12
- * return callback(r;;
13
- * ```
14
- *
15
- * But saves an `await` if `maybePromise` is not actually a promise.
16
- */
17
- export declare function maybePromiseThen<T, U>(promiseOrObj: MaybePromise<T>, callback: (obj: T) => U): MaybePromise<U>;
18
- export declare function failIfAnyRejected<T>(results: PromiseSettledResult<T>[]): T[];
19
- export declare function getOrSet<T extends Record<keyof unknown, unknown>>(record: T, key: keyof T, defaultValue: T[keyof T] | (() => T[keyof T])): T[keyof T];
20
- /**
21
- * A utility to ensure a Promise-returning method actually returns a promise and doesn't
22
- * early exit. Using `async function` guarantees these semantics, but sometimes we avoid
23
- * `async` as a likely-premature optimization to avoid the overhead.
24
- */
25
- export declare function tryResolve<T>(fn: () => T): Promise<T>;
26
- export declare function fail(message?: string): never;
27
- export declare function remove<T>(array: T[], t: T): void;
28
- export declare function maybeRemove<T>(array: T[] | undefined, t: T): void;
29
- export declare function maybeAdd<T>(array: T[], t: T): void;
30
- export declare function clear<T>(array: T[]): void;
31
- /** Returns 0 inclusive to n exclusive. */
32
- export declare function zeroTo(n: number): number[];
33
- export declare function groupBy<T, Y = T, K = string>(list: readonly T[], fn: (x: T) => K, valueFn?: (x: T) => Y): Map<K, Y[]>;
34
- export declare function indexBy<T, Y = T, K = string>(list: T[], fn: (x: T) => K, valueFn?: (x: T) => Y): Map<K, Y>;
35
- export declare function batched<T>(list: Array<T>, n: number): T[][];
36
- export declare function partition<T>(array: ReadonlyArray<T>, f: (el: T) => boolean): [T[], T[]];
37
- export declare function toArray<T>(maybeArray: T | T[] | undefined | null): T[];
38
- export type NullOrDefinedOr<T> = T | null | undefined;
39
- export declare function assertNever(x: never): never;
40
- export declare function abbreviation(tableName: string): string;
41
- /**
42
- * Utility method for casting `entity` to a `New` entity.
43
- *
44
- * Note that we don't actually do any runtime checks; a very simple one would be if the id is undefined,
45
- * but we want this method to be used in tests that are post-`flush` but still "know" the entity is
46
- * effectively new / fully loaded.
47
- *
48
- * Granted, we could do a runtime check that all relations are loaded.
49
- */
50
- export declare function asNew<T extends Entity>(entity: T): New<T>;
51
- export declare function compareValues(av: any, bv: any, direction: OrderBy): number;
52
- /** A ~naive deep merge that requires already-normalized hints and will mutate `source`. */
53
- export declare function mergeNormalizedHints(target: any, source: any): void;
54
- export declare function cleanStringValue(value: unknown): string | undefined;
55
- /** Strips new lines/indentation from our `UPDATE` string; doesn't do any actual SQL param escaping/etc. */
56
- export declare function cleanSql(sql: string): string;
57
- export declare function flatAndUnique<T extends unknown>(list: (T | T[] | undefined)[]): Set<T>;
58
- //# sourceMappingURL=utils.d.ts.map