joist-core 2.2.0 → 2.3.0-next.2

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 (233) hide show
  1. package/build/Aliases.d.ts.map +1 -1
  2. package/build/Aliases.js.map +1 -1
  3. package/build/BaseEntity.d.ts +2 -0
  4. package/build/BaseEntity.d.ts.map +1 -1
  5. package/build/BaseEntity.js +1 -1
  6. package/build/BaseEntity.js.map +1 -1
  7. package/build/Entity.d.ts +1 -0
  8. package/build/Entity.d.ts.map +1 -1
  9. package/build/EntityFilter.d.ts +29 -10
  10. package/build/EntityFilter.d.ts.map +1 -1
  11. package/build/EntityFilter.js +18 -0
  12. package/build/EntityFilter.js.map +1 -1
  13. package/build/EntityGraphQLFilter.d.ts +3 -0
  14. package/build/EntityGraphQLFilter.d.ts.map +1 -1
  15. package/build/EntityGraphQLFilter.js.map +1 -1
  16. package/build/EntityManager.d.ts +36 -50
  17. package/build/EntityManager.d.ts.map +1 -1
  18. package/build/EntityManager.js +248 -124
  19. package/build/EntityManager.js.map +1 -1
  20. package/build/EntityMetadata.d.ts +48 -2
  21. package/build/EntityMetadata.d.ts.map +1 -1
  22. package/build/EntityMetadata.js +17 -0
  23. package/build/EntityMetadata.js.map +1 -1
  24. package/build/IndexManager.d.ts +5 -5
  25. package/build/IndexManager.d.ts.map +1 -1
  26. package/build/IndexManager.js +48 -32
  27. package/build/IndexManager.js.map +1 -1
  28. package/build/InstanceData.d.ts +16 -2
  29. package/build/InstanceData.d.ts.map +1 -1
  30. package/build/InstanceData.js +37 -4
  31. package/build/InstanceData.js.map +1 -1
  32. package/build/IsLoadedCache.d.ts.map +1 -1
  33. package/build/IsLoadedCache.js +31 -25
  34. package/build/IsLoadedCache.js.map +1 -1
  35. package/build/JoinRows.d.ts +54 -12
  36. package/build/JoinRows.d.ts.map +1 -1
  37. package/build/JoinRows.js +114 -44
  38. package/build/JoinRows.js.map +1 -1
  39. package/build/QueryParser.collectionJoins.js +8 -2
  40. package/build/QueryParser.collectionJoins.js.map +1 -1
  41. package/build/QueryParser.d.ts +15 -3
  42. package/build/QueryParser.d.ts.map +1 -1
  43. package/build/QueryParser.js +293 -190
  44. package/build/QueryParser.js.map +1 -1
  45. package/build/QueryParser.pruning.d.ts.map +1 -1
  46. package/build/QueryParser.pruning.js +8 -1
  47. package/build/QueryParser.pruning.js.map +1 -1
  48. package/build/QueryParser.test.d.ts +2 -0
  49. package/build/QueryParser.test.d.ts.map +1 -0
  50. package/build/QueryParser.test.js +27 -0
  51. package/build/QueryParser.test.js.map +1 -0
  52. package/build/ReactionsManager.d.ts +2 -1
  53. package/build/ReactionsManager.d.ts.map +1 -1
  54. package/build/ReactionsManager.js +53 -49
  55. package/build/ReactionsManager.js.map +1 -1
  56. package/build/Todo.d.ts +4 -0
  57. package/build/Todo.d.ts.map +1 -1
  58. package/build/Todo.js.map +1 -1
  59. package/build/batchloaders/BatchLoader.d.ts.map +1 -1
  60. package/build/batchloaders/BatchLoader.js +6 -1
  61. package/build/batchloaders/BatchLoader.js.map +1 -1
  62. package/build/batchloaders/enumCollectionBatchLoader.d.ts +7 -0
  63. package/build/batchloaders/enumCollectionBatchLoader.d.ts.map +1 -0
  64. package/build/batchloaders/enumCollectionBatchLoader.js +54 -0
  65. package/build/batchloaders/enumCollectionBatchLoader.js.map +1 -0
  66. package/build/batchloaders/manyToManyBatchLoader.d.ts.map +1 -1
  67. package/build/batchloaders/manyToManyBatchLoader.js +10 -2
  68. package/build/batchloaders/manyToManyBatchLoader.js.map +1 -1
  69. package/build/batchloaders/populateBatchLoader.d.ts.map +1 -1
  70. package/build/batchloaders/populateBatchLoader.js +26 -8
  71. package/build/batchloaders/populateBatchLoader.js.map +1 -1
  72. package/build/batchloaders/recursiveChildrenBatchLoader.d.ts.map +1 -1
  73. package/build/batchloaders/recursiveChildrenBatchLoader.js +2 -0
  74. package/build/batchloaders/recursiveChildrenBatchLoader.js.map +1 -1
  75. package/build/batchloaders/recursiveM2mBatchLoader.d.ts.map +1 -1
  76. package/build/batchloaders/recursiveM2mBatchLoader.js +1 -3
  77. package/build/batchloaders/recursiveM2mBatchLoader.js.map +1 -1
  78. package/build/batchloaders/recursiveParentsBatchLoader.d.ts.map +1 -1
  79. package/build/batchloaders/recursiveParentsBatchLoader.js +2 -0
  80. package/build/batchloaders/recursiveParentsBatchLoader.js.map +1 -1
  81. package/build/changes.d.ts +13 -0
  82. package/build/changes.d.ts.map +1 -1
  83. package/build/changes.js +49 -0
  84. package/build/changes.js.map +1 -1
  85. package/build/configure.d.ts +5 -3
  86. package/build/configure.d.ts.map +1 -1
  87. package/build/configure.js +70 -0
  88. package/build/configure.js.map +1 -1
  89. package/build/dataloaders/fastWhereFilterHash.d.ts +15 -0
  90. package/build/dataloaders/fastWhereFilterHash.d.ts.map +1 -0
  91. package/build/dataloaders/fastWhereFilterHash.js +164 -0
  92. package/build/dataloaders/fastWhereFilterHash.js.map +1 -0
  93. package/build/dataloaders/fastWhereFilterHash.test.d.ts +2 -0
  94. package/build/dataloaders/fastWhereFilterHash.test.d.ts.map +1 -0
  95. package/build/dataloaders/fastWhereFilterHash.test.js +59 -0
  96. package/build/dataloaders/fastWhereFilterHash.test.js.map +1 -0
  97. package/build/dataloaders/findCountDataLoader.d.ts +13 -4
  98. package/build/dataloaders/findCountDataLoader.d.ts.map +1 -1
  99. package/build/dataloaders/findCountDataLoader.js +58 -15
  100. package/build/dataloaders/findCountDataLoader.js.map +1 -1
  101. package/build/dataloaders/findDataLoader.d.ts +49 -10
  102. package/build/dataloaders/findDataLoader.d.ts.map +1 -1
  103. package/build/dataloaders/findDataLoader.js +217 -108
  104. package/build/dataloaders/findDataLoader.js.map +1 -1
  105. package/build/dataloaders/findIdsDataLoader.d.ts +1 -2
  106. package/build/dataloaders/findIdsDataLoader.d.ts.map +1 -1
  107. package/build/dataloaders/findIdsDataLoader.js +18 -17
  108. package/build/dataloaders/findIdsDataLoader.js.map +1 -1
  109. package/build/dataloaders/findOrCreateDataLoader.d.ts.map +1 -1
  110. package/build/dataloaders/findOrCreateDataLoader.js +3 -3
  111. package/build/dataloaders/findOrCreateDataLoader.js.map +1 -1
  112. package/build/dataloaders/findPaginatedDataLoader.d.ts +7 -0
  113. package/build/dataloaders/findPaginatedDataLoader.d.ts.map +1 -0
  114. package/build/dataloaders/findPaginatedDataLoader.js +84 -0
  115. package/build/dataloaders/findPaginatedDataLoader.js.map +1 -0
  116. package/build/dataloaders/manyToManyFindDataLoader.js +7 -1
  117. package/build/dataloaders/manyToManyFindDataLoader.js.map +1 -1
  118. package/build/drivers/EntityWriter.js +13 -7
  119. package/build/drivers/EntityWriter.js.map +1 -1
  120. package/build/drivers/buildRawQuery.d.ts +6 -4
  121. package/build/drivers/buildRawQuery.d.ts.map +1 -1
  122. package/build/drivers/buildRawQuery.js +8 -4
  123. package/build/drivers/buildRawQuery.js.map +1 -1
  124. package/build/fields.d.ts +2 -0
  125. package/build/fields.d.ts.map +1 -1
  126. package/build/fields.js +18 -6
  127. package/build/fields.js.map +1 -1
  128. package/build/index.d.ts +3 -1
  129. package/build/index.d.ts.map +1 -1
  130. package/build/index.js +4 -1
  131. package/build/index.js.map +1 -1
  132. package/build/keys.d.ts.map +1 -1
  133. package/build/keys.js +8 -6
  134. package/build/keys.js.map +1 -1
  135. package/build/loadHints.d.ts +13 -4
  136. package/build/loadHints.d.ts.map +1 -1
  137. package/build/loadHints.js +63 -9
  138. package/build/loadHints.js.map +1 -1
  139. package/build/loadLens.d.ts +11 -0
  140. package/build/loadLens.d.ts.map +1 -1
  141. package/build/loadLens.js +43 -10
  142. package/build/loadLens.js.map +1 -1
  143. package/build/newEntity.d.ts.map +1 -1
  144. package/build/newEntity.js +16 -14
  145. package/build/newEntity.js.map +1 -1
  146. package/build/newTestInstance.d.ts.map +1 -1
  147. package/build/newTestInstance.js +3 -0
  148. package/build/newTestInstance.js.map +1 -1
  149. package/build/normalizeHints.d.ts +7 -0
  150. package/build/normalizeHints.d.ts.map +1 -1
  151. package/build/normalizeHints.js +40 -2
  152. package/build/normalizeHints.js.map +1 -1
  153. package/build/preloading/JsonAggregatePreloader.d.ts.map +1 -1
  154. package/build/preloading/JsonAggregatePreloader.js +91 -9
  155. package/build/preloading/JsonAggregatePreloader.js.map +1 -1
  156. package/build/preloading/canPreload.d.ts +2 -2
  157. package/build/preloading/canPreload.d.ts.map +1 -1
  158. package/build/preloading/canPreload.js +3 -0
  159. package/build/preloading/canPreload.js.map +1 -1
  160. package/build/preloading/partitionHint.d.ts.map +1 -1
  161. package/build/preloading/partitionHint.js +10 -4
  162. package/build/preloading/partitionHint.js.map +1 -1
  163. package/build/reactiveHints.d.ts +2 -2
  164. package/build/reactiveHints.d.ts.map +1 -1
  165. package/build/reactiveHints.js +9 -0
  166. package/build/reactiveHints.js.map +1 -1
  167. package/build/relations/EnumCollection.d.ts +81 -0
  168. package/build/relations/EnumCollection.d.ts.map +1 -0
  169. package/build/relations/EnumCollection.js +211 -0
  170. package/build/relations/EnumCollection.js.map +1 -0
  171. package/build/relations/ManyToManyCollection.d.ts +1 -0
  172. package/build/relations/ManyToManyCollection.d.ts.map +1 -1
  173. package/build/relations/ManyToManyCollection.js +5 -2
  174. package/build/relations/ManyToManyCollection.js.map +1 -1
  175. package/build/relations/ManyToManyLargeCollection.d.ts +3 -2
  176. package/build/relations/ManyToManyLargeCollection.d.ts.map +1 -1
  177. package/build/relations/ManyToManyLargeCollection.js +7 -4
  178. package/build/relations/ManyToManyLargeCollection.js.map +1 -1
  179. package/build/relations/OneToManyCollection.d.ts.map +1 -1
  180. package/build/relations/OneToManyCollection.js +2 -2
  181. package/build/relations/OneToManyCollection.js.map +1 -1
  182. package/build/relations/OneToManyLargeCollection.d.ts.map +1 -1
  183. package/build/relations/OneToManyLargeCollection.js +2 -1
  184. package/build/relations/OneToManyLargeCollection.js.map +1 -1
  185. package/build/relations/ReactiveManyToMany.d.ts +1 -0
  186. package/build/relations/ReactiveManyToMany.d.ts.map +1 -1
  187. package/build/relations/ReactiveManyToMany.js +4 -1
  188. package/build/relations/ReactiveManyToMany.js.map +1 -1
  189. package/build/relations/ReactiveManyToManyOtherSide.d.ts +1 -0
  190. package/build/relations/ReactiveManyToManyOtherSide.d.ts.map +1 -1
  191. package/build/relations/ReactiveManyToManyOtherSide.js +4 -1
  192. package/build/relations/ReactiveManyToManyOtherSide.js.map +1 -1
  193. package/build/relations/RecursiveCollection.d.ts +2 -6
  194. package/build/relations/RecursiveCollection.d.ts.map +1 -1
  195. package/build/relations/RecursiveCollection.js +9 -17
  196. package/build/relations/RecursiveCollection.js.map +1 -1
  197. package/build/relations/RecursiveCycleError.d.ts +13 -0
  198. package/build/relations/RecursiveCycleError.d.ts.map +1 -0
  199. package/build/relations/RecursiveCycleError.js +15 -0
  200. package/build/relations/RecursiveCycleError.js.map +1 -0
  201. package/build/relations/hasOneThrough.d.ts.map +1 -1
  202. package/build/relations/hasOneThrough.js +6 -4
  203. package/build/relations/hasOneThrough.js.map +1 -1
  204. package/build/relations/hasProperty.d.ts +2 -1
  205. package/build/relations/hasProperty.d.ts.map +1 -1
  206. package/build/relations/hasProperty.js +15 -5
  207. package/build/relations/hasProperty.js.map +1 -1
  208. package/build/relations/index.d.ts +1 -0
  209. package/build/relations/index.d.ts.map +1 -1
  210. package/build/relations/index.js +5 -2
  211. package/build/relations/index.js.map +1 -1
  212. package/build/rules.js +1 -1
  213. package/build/rules.js.map +1 -1
  214. package/build/scopes.d.ts +185 -0
  215. package/build/scopes.d.ts.map +1 -0
  216. package/build/scopes.js +302 -0
  217. package/build/scopes.js.map +1 -0
  218. package/build/temporal.d.ts +32 -2
  219. package/build/temporal.d.ts.map +1 -1
  220. package/build/temporal.js +18 -0
  221. package/build/temporal.js.map +1 -1
  222. package/build/upsert.d.ts.map +1 -1
  223. package/build/upsert.js +9 -2
  224. package/build/upsert.js.map +1 -1
  225. package/build/utils.d.ts +2 -0
  226. package/build/utils.d.ts.map +1 -1
  227. package/build/utils.js +12 -0
  228. package/build/utils.js.map +1 -1
  229. package/package.json +8 -10
  230. package/build/caches.d.ts +0 -6
  231. package/build/caches.d.ts.map +0 -1
  232. package/build/caches.js +0 -42
  233. package/build/caches.js.map +0 -1
@@ -1,4 +1,3 @@
1
- import DataLoader from "dataloader";
2
1
  import { Entity } from "../Entity";
3
2
  import { FilterAndSettings } from "../EntityFilter";
4
3
  import { EntityManager, MaybeAbstractEntityConstructor } from "../EntityManager";
@@ -7,18 +6,58 @@ import { ParsedCteClause, ParsedFindQuery } from "../QueryParser";
7
6
  import { OpColumn } from "../drivers/EntityWriter";
8
7
  import { LoadHint } from "../loadHints";
9
8
  export declare const findOperation = "find";
10
- export declare function findDataLoader<T extends Entity>(em: EntityManager, type: MaybeAbstractEntityConstructor<T>, filter: FilterAndSettings<T>, hint: LoadHint<T> | undefined): DataLoader<FilterAndSettings<T>, T[]>;
11
- export declare function whereFilterHash(where: FilterAndSettings<any>): any;
9
+ export declare function findDataLoader<T extends Entity>(em: EntityManager, type: MaybeAbstractEntityConstructor<T>, filter: FilterAndSettings<T>, hint: LoadHint<T> | undefined): Promise<T[]>;
12
10
  /**
13
- * Recursively finds args in `query` and replaces them with `_find.argX` placeholders.
11
+ * Returns a stable cache key from the already-parsed query rather than the raw `where`.
14
12
  *
15
- * We also return the name/type of each found/rewritten arg so we can build the `_find` CTE table.
13
+ * A scope `where` is an opaque proxy that `fastWhereFilterHash` can't serialize but it doesn't need
14
+ * to: by this point the scope's structure and values are already worked into the `ParsedFindQuery`, so
15
+ * hashing that distinguishes e.g. `Author.adult` (age>=18) from `Author.senior` (age>=65) correctly.
16
16
  */
17
- export declare function collectAndReplaceArgs(query: ParsedFindQuery): {
18
- columnName: string;
19
- dbType: string;
20
- }[];
21
- export declare function createColumnValues(meta: EntityMetadata, columns: OpColumn[], queries: readonly FilterAndSettings<any>[]): any[][];
17
+ export declare function queryFilterHash(entry: {
18
+ query: ParsedFindQuery;
19
+ findSettings: object;
20
+ }): any;
21
+ export declare function whereFilterHash(where: object): any;
22
+ /** Filters pending-delete entities in place to avoid allocating a replacement array for the common find path. */
23
+ export declare function filterDeletedEntities<T extends Entity>(em: EntityManager, entities: T[]): T[];
24
+ /**
25
+ * A single batched arg: the `_find` CTE column to create, plus the index into each entry's `bindings`
26
+ * array that fills it. `bindingIndex` can differ from the column's position because inlined constants
27
+ * are skipped — see {@link collectAndReplaceArgs}.
28
+ */
29
+ export interface CteArg {
30
+ column: OpColumn;
31
+ bindingIndex: number;
32
+ }
33
+ /**
34
+ * Rewrites each batched arg in `query` into a `_find.argX` placeholder.
35
+ *
36
+ * Any condition whose value(s) are identical across every batched query is left inline (using
37
+ * query's condition as-is from entity0), so it renders as `col = ?` for better query planning.
38
+ *
39
+ * The returned array has the non-constant CTE columns, one {@link CteArg} per `_find.argX`.
40
+ *
41
+ * Because constants are skipped, the 1st CTE column (i.e. for last name) might actually have a
42
+ * binding index of `1` if we've skipped an early constant column (i.e. first name).
43
+ *
44
+ * @param query the initial query in the batch, that all other queries structurally match
45
+ * @param entries the values (bindings) for each query in the batch
46
+ */
47
+ export declare function collectAndReplaceArgs(query: ParsedFindQuery, entries: readonly {
48
+ bindings: any[];
49
+ }[]): CteArg[];
50
+ /**
51
+ * Builds the column-major values for the `_find` CTE.
52
+ *
53
+ * Column 0 is the per-entry `tag`; the remaining columns mirror `args` 1:1, each pulling its
54
+ * `bindingIndex` from every entry's `bindings` (so inlined constants are naturally skipped).
55
+ */
56
+ export declare function createColumnValuesFromPrepared(args: readonly CteArg[], entries: readonly {
57
+ bindings: any[];
58
+ }[]): any[][];
59
+ /** Pushes the arg values of a given query in the cross-query `bindings` array. */
60
+ export declare function collectValues(bindings: any[], query: ParsedFindQuery): void;
22
61
  /**
23
62
  * Creates a `VALUES (...), (...)` SQL string for use in a CTE, typically for our
24
63
  * batch INSERTs/UPDATEs where the CTE is how we inject N rows of data/params into
@@ -1 +1 @@
1
- {"version":3,"file":"findDataLoader.d.ts","sourceRoot":"","sources":["../../src/dataloaders/findDataLoader.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AAGpC,OAAO,EAAE,MAAM,EAAY,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,8BAA8B,EAAoB,MAAM,kBAAkB,CAAC;AACnG,OAAO,EAAE,cAAc,EAAe,MAAM,mBAAmB,CAAC;AAEhE,OAAO,EAEL,eAAe,EACf,eAAe,EAMhB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAMxC,eAAO,MAAM,aAAa,SAAS,CAAC;AAEpC,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,EAC7C,EAAE,EAAE,aAAa,EACjB,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,EACvC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAC5B,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,GAC5B,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAwGvC;AA0BD,wBAAgB,eAAe,CAAC,KAAK,EAAE,iBAAiB,CAAC,GAAG,CAAC,GAAG,GAAG,CAElE;AASD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,eAAe,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,CAiCtG;AAaD,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,QAAQ,EAAE,EACnB,OAAO,EAAE,SAAS,iBAAiB,CAAC,GAAG,CAAC,EAAE,GACzC,GAAG,EAAE,EAAE,CAcT;AA2ED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,EACjD,IAAI,EAAE,SAAS,GAAG,EAAE,EAEpB,QAAQ,EAAE,SAAS,GAAG,EAAE,GACvB,eAAe,CAYjB;AAED,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,GAAG,MAAM,CAUpG"}
1
+ {"version":3,"file":"findDataLoader.d.ts","sourceRoot":"","sources":["../../src/dataloaders/findDataLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,8BAA8B,EAAoB,MAAM,kBAAkB,CAAC;AACnG,OAAO,EAAE,cAAc,EAAe,MAAM,mBAAmB,CAAC;AAEhE,OAAO,EAEL,eAAe,EACf,eAAe,EAQhB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAGnD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAMxC,eAAO,MAAM,aAAa,SAAS,CAAC;AAUpC,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,EAC7C,EAAE,EAAE,aAAa,EACjB,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,EACvC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAC5B,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,SAAS,GAC5B,OAAO,CAAC,CAAC,EAAE,CAAC,CA2Gd;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE;IAAE,KAAK,EAAE,eAAe,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG,GAAG,CAE5F;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAIlD;AAED,iHAAiH;AACjH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,MAAM,EAAE,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAgB7F;AASD;;;;GAIG;AACH,MAAM,WAAW,MAAM;IACrB,MAAM,EAAE,QAAQ,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,SAAS;IAAE,QAAQ,EAAE,GAAG,EAAE,CAAA;CAAE,EAAE,GAAG,MAAM,EAAE,CAiD/G;AAaD;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,EAAE,SAAS;IAAE,QAAQ,EAAE,GAAG,EAAE,CAAA;CAAE,EAAE,GACtC,GAAG,EAAE,EAAE,CAUT;AAED,kFAAkF;AAClF,wBAAgB,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI,CAc3E;AAuHD;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,EACjD,IAAI,EAAE,SAAS,GAAG,EAAE,EAEpB,QAAQ,EAAE,SAAS,GAAG,EAAE,GACvB,eAAe,CAYjB;AA+BD,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,GAAG,MAAM,CAUpG"}
@@ -1,59 +1,62 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.findOperation = void 0;
7
4
  exports.findDataLoader = findDataLoader;
5
+ exports.queryFilterHash = queryFilterHash;
8
6
  exports.whereFilterHash = whereFilterHash;
7
+ exports.filterDeletedEntities = filterDeletedEntities;
9
8
  exports.collectAndReplaceArgs = collectAndReplaceArgs;
10
- exports.createColumnValues = createColumnValues;
9
+ exports.createColumnValuesFromPrepared = createColumnValuesFromPrepared;
10
+ exports.collectValues = collectValues;
11
11
  exports.buildValuesCte = buildValuesCte;
12
12
  exports.getBatchKeyFromGenericStructure = getBatchKeyFromGenericStructure;
13
- const object_hash_1 = __importDefault(require("object-hash"));
14
- const Aliases_1 = require("../Aliases");
15
- const Entity_1 = require("../Entity");
16
13
  const EntityGraphQLFilter_1 = require("../EntityGraphQLFilter");
17
14
  const EntityManager_1 = require("../EntityManager");
18
15
  const EntityMetadata_1 = require("../EntityMetadata");
19
16
  const HintTree_1 = require("../HintTree");
20
17
  const QueryParser_1 = require("../QueryParser");
21
18
  const QueryVisitor_1 = require("../QueryVisitor");
19
+ const fields_1 = require("../fields");
22
20
  const keywords_1 = require("../keywords");
23
- const temporal_1 = require("../temporal");
24
- const temporalMappers_1 = require("../temporalMappers");
21
+ const normalizeHints_1 = require("../normalizeHints");
25
22
  const unnest_1 = require("../unnest");
26
23
  const utils_1 = require("../utils");
24
+ const fastWhereFilterHash_1 = require("./fastWhereFilterHash");
27
25
  exports.findOperation = "find";
28
26
  function findDataLoader(em, type, filter, hint) {
29
27
  const { where, ...opts } = filter;
30
- if (opts.limit || opts.offset) {
28
+ if ("limit" in opts || "offset" in opts) {
31
29
  throw new Error("Cannot use limit/offset with findDataLoader");
32
30
  }
33
31
  const meta = (0, EntityMetadata_1.getMetadata)(type);
34
32
  const query = (0, QueryParser_1.parseFindQuery)(meta, where, opts);
33
+ const { checkLimit, findSettings } = em["prepareFind"](meta, exports.findOperation, query, {
34
+ ...opts,
35
+ limit: em.entityLimit,
36
+ });
37
+ const bindings = [];
38
+ collectValues(bindings, query);
39
+ const prepared = { filter, query, bindings, findSettings, checkLimit };
35
40
  const batchKey = getBatchKeyFromGenericStructure(meta, query);
36
- return em.getLoader(exports.findOperation,
41
+ return em
42
+ .getLoader(exports.findOperation,
37
43
  // It's unlikely we'll have simultaneous em.finds with the same WHERE clause structure
38
44
  // but lots of different load hints, and it'd be complicated to implement the preloading
39
45
  // in a way that doesn't naively over-fetch data (which our loadDataLoader does prevent,
40
46
  // but it's simpler b/c it's given exact ids to load), so for now just include the load
41
47
  // hint in the batch key.
42
- `${batchKey}-${JSON.stringify(hint)}`, async (queries) => {
48
+ `${batchKey}-${(0, normalizeHints_1.hintKey)(hint)}`, async (entries) => {
43
49
  // We're guaranteed that these queries all have the same structure
44
50
  // Don't bother with the CTE if there's only 1 query (or each query has exactly the same filter values)
45
- if (queries.length === 1) {
46
- const { where, ...opts } = queries[0];
47
- // We have to parseFindQuery queries[0], b/c our query variable may be captured from
48
- // a prior invocation that instantiated our dataloader instance.
49
- const query = (0, QueryParser_1.parseFindQuery)(meta, where, opts);
51
+ if (entries.length === 1) {
52
+ const { query, findSettings, checkLimit } = entries[0];
50
53
  // Maybe add preload joins
51
54
  const { preloader } = (0, EntityManager_1.getEmInternalApi)(em);
52
55
  const preloadHydrator = preloader && hint && preloader.addPreloading(meta, (0, HintTree_1.buildHintTree)(hint), query);
53
- const rows = await em["executeFind"](meta, exports.findOperation, query, opts);
56
+ const rows = await em["executePreparedFind"](meta, exports.findOperation, query, findSettings, checkLimit);
54
57
  const entities = em.hydrate(type, rows);
55
58
  preloadHydrator?.(rows, entities);
56
- return [entities];
59
+ return [filterDeletedEntities(em, entities)];
57
60
  }
58
61
  // WITH _find (tag, arg1, arg2) AS (
59
62
  // SELECT unnest($0::int[]), unnest($0::varchar[]), unnest($0::varchar[])
@@ -64,85 +67,87 @@ function findDataLoader(em, type, filter, hint) {
64
67
  // WHERE a.first_name = _find.arg0 OR a.last_name = _find.arg1
65
68
  // GROUP BY a.id
66
69
  // Build the list of 'arg1', 'arg2', ... strings
67
- const { where, ...options } = queries[0];
68
- const query = (0, QueryParser_1.parseFindQuery)((0, EntityMetadata_1.getMetadata)(type), where, options);
69
- const argsColumns = collectAndReplaceArgs(query);
70
- argsColumns.unshift({ columnName: "tag", dbType: "int" });
71
- query.selects.unshift("array_agg(_find.tag) as _tags");
72
- // Inject a cross join into the query
73
- query.tables.unshift({ join: "cross", table: "_find", alias: "_find" });
74
- query.ctes = [(0, unnest_1.buildUnnestCte)("_find", argsColumns, createColumnValues(meta, argsColumns, queries))];
75
- // Because we want to use `array_agg(tag)`, add `GROUP BY`s to the values we're selecting
76
- query.groupBys = query.selects
77
- .filter((s) => typeof s === "string")
78
- .filter((s) => !s.includes("array_agg") && !s.includes("CASE") && !s.includes(" as "))
79
- .map((s) => {
80
- // Make a liberal assumption that this is a `a.id` or `a_st0.id` string
81
- const alias = (0, QueryParser_1.parseAlias)(s);
82
- return { alias, column: "id" };
83
- });
84
- // Also because of our `array_agg` group by, add any order bys to the group by
85
- const [primary] = (0, QueryParser_1.getTables)(query);
86
- for (const { alias, column } of query.orderBys) {
87
- if (alias !== primary.alias) {
88
- query.groupBys.push({ alias, column });
89
- }
90
- }
70
+ const { query, findSettings, checkLimit } = entries[0];
91
71
  const { preloader } = (0, EntityManager_1.getEmInternalApi)(em);
92
72
  const preloadJoins = preloader && hint && preloader.getPreloadJoins(meta, (0, HintTree_1.buildHintTree)(hint), query);
73
+ const args = collectAndReplaceArgs(query, entries);
74
+ const argsColumns = [{ columnName: "tag", dbType: "int" }, ...args.map((a) => a.column)];
75
+ const columnValues = createColumnValuesFromPrepared(args, entries);
76
+ const query2 = {
77
+ ...query,
78
+ selects: ["array_agg(_find.tag) as _tags", ...query.selects],
79
+ tables: [{ join: "cross", table: "_find", alias: "_find" }, ...query.tables],
80
+ ctes: [(0, unnest_1.buildUnnestCte)("_find", argsColumns, columnValues), ...(query.ctes ?? [])],
81
+ };
93
82
  if (preloadJoins) {
94
- query.selects.push(...preloadJoins.flatMap((j) =>
83
+ query2.selects.push(...preloadJoins.flatMap((j) =>
95
84
  // Because we 'group by primary.id' to collapse the "a1 matched multiple finds" into
96
85
  // a single row, we also need to pick just the first value of each preload column
97
86
  j.selects.map((s) => `(array_agg(${s.value}))[1] AS ${s.as}`)));
98
- query.tables.push(...preloadJoins.map((j) => j.join));
87
+ query2.tables.push(...preloadJoins.map((j) => j.join));
99
88
  }
100
- const rows = await em["executeFind"](meta, exports.findOperation, query, { limit: em.entityLimit });
89
+ // Because we want to use `array_agg(tag)`, add `GROUP BY`s to the values we're selecting
90
+ query2.groupBys = buildGroupBys(query2.selects);
91
+ // Also because of our `array_agg` group by, add any order bys to the group by
92
+ const [primary] = (0, QueryParser_1.getTables)(query2);
93
+ for (const { alias, column } of query2.orderBys) {
94
+ if (alias !== primary.alias) {
95
+ query2.groupBys.push({ alias, column });
96
+ }
97
+ }
98
+ const rows = await em["executePreparedFind"](meta, exports.findOperation, query2, findSettings, checkLimit);
101
99
  const entities = em.hydrate(type, rows);
102
100
  preloadJoins?.forEach((j) => j.hydrator(rows, entities));
103
101
  // Make an empty array for each batched query, per the dataloader contract
104
- const results = queries.map(() => []);
102
+ const results = entries.map(() => []);
105
103
  // Then put each row into the tagged query it matched
106
104
  rows.forEach((row, i) => {
107
105
  const entity = entities[i];
108
- for (const tag of row._tags)
109
- results[tag].push(entity);
106
+ if (!entity.isDeletedEntity) {
107
+ for (const tag of row._tags)
108
+ results[tag].push(entity);
109
+ }
110
110
  delete row._tags;
111
111
  });
112
112
  return results;
113
113
  },
114
- // Our filter/order tuple is a complex object, so object-hash it to ensure caching works
115
- { cacheKeyFn: whereFilterHash });
114
+ // Our filter/order tuple is a complex object, so use a stable cache key to ensure caching works.
115
+ { cacheKeyFn: queryFilterHash })
116
+ .load(prepared);
116
117
  }
117
- const Temporal = (0, temporal_1.maybeRequireTemporal)()?.Temporal;
118
- // If a where clause includes an entity, object-hash cannot hash it, so just use the id.
119
- function replacer(v) {
120
- if ((0, Entity_1.isEntity)(v)) {
121
- // Use toString() instead of id so that new entities are kept separate, i.e. `Author#2`
122
- return v.toString();
123
- }
124
- else if ((0, Aliases_1.isAlias)(v)) {
125
- // Strip out `{ as: ...alias proxy... }` from the `em.find` inline conditions
126
- return "alias";
127
- }
128
- else if (Temporal) {
129
- if (v instanceof Temporal.ZonedDateTime) {
130
- return temporalMappers_1.zonedDateTimeMapper.toDb(v);
131
- }
132
- else if (v instanceof Temporal.PlainDateTime) {
133
- return temporalMappers_1.plainDateTimeMapper.toDb(v);
134
- }
135
- else if (v instanceof Temporal.PlainDate) {
136
- return temporalMappers_1.plainDateMapper.toDb(v);
137
- }
138
- else if (v instanceof Temporal.PlainTime) {
139
- return temporalMappers_1.plainTimeMapper.toDb(v);
140
- }
141
- }
142
- return v;
118
+ /**
119
+ * Returns a stable cache key from the already-parsed query rather than the raw `where`.
120
+ *
121
+ * A scope `where` is an opaque proxy that `fastWhereFilterHash` can't serialize — but it doesn't need
122
+ * to: by this point the scope's structure and values are already worked into the `ParsedFindQuery`, so
123
+ * hashing that distinguishes e.g. `Author.adult` (age>=18) from `Author.senior` (age>=65) correctly.
124
+ */
125
+ function queryFilterHash(entry) {
126
+ return whereFilterHash({ query: entry.query, findSettings: entry.findSettings });
143
127
  }
144
128
  function whereFilterHash(where) {
145
- return (0, object_hash_1.default)(where, { replacer, algorithm: "md5" });
129
+ const key = (0, fastWhereFilterHash_1.fastWhereFilterHash)(where);
130
+ if (key === undefined)
131
+ throw new Error("fastWhereFilterHash could not serialize find filter");
132
+ return key;
133
+ }
134
+ /** Filters pending-delete entities in place to avoid allocating a replacement array for the common find path. */
135
+ function filterDeletedEntities(em, entities) {
136
+ // Most EMs never delete entities, so skip even the findIndex scan until a delete has happened.
137
+ if (!(0, EntityManager_1.getEmInternalApi)(em).hasAnyDeletes())
138
+ return entities;
139
+ const firstDeleted = entities.findIndex((entity) => entity.isDeletedEntity);
140
+ if (firstDeleted === -1)
141
+ return entities;
142
+ let writeIndex = firstDeleted;
143
+ for (let readIndex = firstDeleted + 1; readIndex < entities.length; readIndex++) {
144
+ const entity = entities[readIndex];
145
+ if (!entity.isDeletedEntity) {
146
+ entities[writeIndex++] = entity;
147
+ }
148
+ }
149
+ entities.length = writeIndex;
150
+ return entities;
146
151
  }
147
152
  class ArgCounter {
148
153
  index = 0;
@@ -151,38 +156,61 @@ class ArgCounter {
151
156
  }
152
157
  }
153
158
  /**
154
- * Recursively finds args in `query` and replaces them with `_find.argX` placeholders.
159
+ * Rewrites each batched arg in `query` into a `_find.argX` placeholder.
155
160
  *
156
- * We also return the name/type of each found/rewritten arg so we can build the `_find` CTE table.
161
+ * Any condition whose value(s) are identical across every batched query is left inline (using
162
+ * query's condition as-is from entity0), so it renders as `col = ?` for better query planning.
163
+ *
164
+ * The returned array has the non-constant CTE columns, one {@link CteArg} per `_find.argX`.
165
+ *
166
+ * Because constants are skipped, the 1st CTE column (i.e. for last name) might actually have a
167
+ * binding index of `1` if we've skipped an early constant column (i.e. first name).
168
+ *
169
+ * @param query the initial query in the batch, that all other queries structurally match
170
+ * @param entries the values (bindings) for each query in the batch
157
171
  */
158
- function collectAndReplaceArgs(query) {
172
+ function collectAndReplaceArgs(query, entries) {
159
173
  const args = [];
160
174
  const argsIndex = new ArgCounter();
175
+ // `bindings` were pushed in this same `visitConditions` order, so we can walk the conditions and
176
+ // each entry's `bindings` in lockstep, deciding per condition whether to inline or batch its value(s).
177
+ const constant = computeConstantBindings(entries);
178
+ let bindingIndex = 0;
161
179
  (0, QueryVisitor_1.visitConditions)(query, {
162
180
  visitCond(c) {
163
181
  if ("value" in c.cond) {
164
182
  const { kind } = c.cond;
165
- if (kind === "in" || kind === "nin") {
166
- args.push({ columnName: `arg${args.length}`, dbType: `${c.dbType}[]` });
167
- return rewriteToRawCondition(c, argsIndex);
168
- }
169
- else if (kind === "between") {
170
- // between has two values
171
- args.push({ columnName: `arg${args.length}`, dbType: c.dbType });
172
- args.push({ columnName: `arg${args.length}`, dbType: c.dbType });
173
- return rewriteToRawCondition(c, argsIndex);
183
+ // `between` consumes two bindings, everything else (incl. array `in`/`nin`) consumes one.
184
+ const consumed = kind === "between" ? 2 : 1;
185
+ const start = bindingIndex;
186
+ bindingIndex += consumed;
187
+ // If every batched query shares this condition's value(s), leave it as a normal `col = ?`
188
+ // condition (rendered from `entries[0]`'s value) instead of threading it through the CTE.
189
+ let allConstant = true;
190
+ for (let k = 0; k < consumed; k++) {
191
+ if (!constant[start + k]) {
192
+ allConstant = false;
193
+ break;
194
+ }
174
195
  }
175
- else if (kind === "jsonPathExists" || kind === "jsonPathPredicate") {
176
- // The CTE needs to use `::jsonpath` instead of `::jsonb`, otherwise we'll get an invalid
177
- // operator error for `jsonb @@ jsonb`. ...maybe the `ColumnCondition` should have a dbType
178
- // baked into its ADT? Then we could avoid this special case handling.
179
- args.push({ columnName: `arg${args.length}`, dbType: "jsonpath" });
180
- return rewriteToRawCondition(c, argsIndex);
196
+ if (allConstant)
197
+ return;
198
+ // `arg${args.length}` keeps the CTE column names in step with the `_find.argX` references that
199
+ // `rewriteToRawCondition` emits, since both only advance for the args we actually batch.
200
+ if (kind === "between") {
201
+ args.push({ column: { columnName: `arg${args.length}`, dbType: c.dbType }, bindingIndex: start });
202
+ args.push({ column: { columnName: `arg${args.length}`, dbType: c.dbType }, bindingIndex: start + 1 });
181
203
  }
182
204
  else {
183
- args.push({ columnName: `arg${args.length}`, dbType: c.dbType });
184
- return rewriteToRawCondition(c, argsIndex);
205
+ // Figure out the _find CTE's `unnest($n::${dbType})` so Postgres knows what we're sending in
206
+ const dbType = kind === "in" || kind === "nin"
207
+ ? `${c.dbType}[]` // `in`/`nin` compare against an array column
208
+ : kind === "jsonPathExists" || kind === "jsonPathPredicate"
209
+ ? "jsonpath" // jsonPath needs `::jsonpath` (not `::jsonb`, which would be an invalid `jsonb @@ jsonb`)
210
+ : c.dbType;
211
+ args.push({ column: { columnName: `arg${args.length}`, dbType }, bindingIndex: start });
185
212
  }
213
+ return rewriteToRawCondition(c, argsIndex);
186
214
  }
187
215
  else if (c.cond.kind === "is-null" || c.cond.kind === "not-null") {
188
216
  // leave it alone
@@ -204,18 +232,20 @@ function rewriteToRawCondition(c, argsIndex) {
204
232
  bindings: [],
205
233
  };
206
234
  }
207
- function createColumnValues(meta, columns, queries) {
208
- const columnValues = Array(columns.length);
209
- for (let i = 0; i < columns.length; i++)
235
+ /**
236
+ * Builds the column-major values for the `_find` CTE.
237
+ *
238
+ * Column 0 is the per-entry `tag`; the remaining columns mirror `args` 1:1, each pulling its
239
+ * `bindingIndex` from every entry's `bindings` (so inlined constants are naturally skipped).
240
+ */
241
+ function createColumnValuesFromPrepared(args, entries) {
242
+ const columnValues = new Array(args.length + 1);
243
+ for (let i = 0; i < columnValues.length; i++)
210
244
  columnValues[i] = [];
211
- queries.forEach((query, i) => {
212
- const { where, ...opts } = query;
213
- // add this query's `tag` value
245
+ entries.forEach((entry, i) => {
214
246
  columnValues[0].push(i);
215
- const bindings = [];
216
- collectValues(bindings, (0, QueryParser_1.parseFindQuery)(meta, where, opts));
217
- for (let j = 0; j < bindings.length; j++) {
218
- columnValues[j + 1].push(bindings[j]);
247
+ for (let k = 0; k < args.length; k++) {
248
+ columnValues[k + 1].push(entry.bindings[args[k].bindingIndex]);
219
249
  }
220
250
  });
221
251
  return columnValues;
@@ -237,6 +267,58 @@ function collectValues(bindings, query) {
237
267
  },
238
268
  });
239
269
  }
270
+ /** Returns true for select expressions that do not need to be represented in GROUP BY. */
271
+ function isAggregateSelect(select) {
272
+ return select.toLowerCase().includes("array_agg(");
273
+ }
274
+ /** Builds GROUP BYs for selected values, accounting for whole-row selects that are grouped by primary key. */
275
+ function buildGroupBys(selects) {
276
+ const sqlSelects = selects.map(selectSqlForGroupBy);
277
+ const wholeRowAliases = new Set(sqlSelects
278
+ .filter((select) => !isAggregateSelect(select) && stripSelectAlias(select).endsWith(".*"))
279
+ .map(QueryParser_1.parseAlias));
280
+ return sqlSelects
281
+ .filter((select) => !isAggregateSelect(select))
282
+ .filter((select) => !isCoveredByWholeRowGroupBy(select, wholeRowAliases))
283
+ .map((select) => groupBySelect(select));
284
+ }
285
+ /** Returns a SQL string for group-by analysis, until we support bindings in ParsedGroupBy. */
286
+ function selectSqlForGroupBy(select) {
287
+ if (typeof select === "string") {
288
+ return select;
289
+ }
290
+ throw new Error(`find batching does not support grouped selects with bindings: ${select.sql}`);
291
+ }
292
+ /** Builds a GROUP BY for a selected value so `array_agg(_find.tag)` can coexist with plugin-rewritten selects. */
293
+ function groupBySelect(select) {
294
+ const expression = stripSelectAlias(select);
295
+ if (expression.endsWith(".*")) {
296
+ return { alias: (0, QueryParser_1.parseAlias)(expression), column: "id" };
297
+ }
298
+ return { expression };
299
+ }
300
+ /** Removes a trailing SQL alias from a select expression, i.e. `(a.id) as id` -> `(a.id)`. */
301
+ function stripSelectAlias(select) {
302
+ const match = /^(.*)\s+as\s+[^\s]+$/i.exec(select);
303
+ return match?.[1] ?? select;
304
+ }
305
+ /** Returns true when an expression is functionally covered by an already-grouped whole-row alias. */
306
+ function isCoveredByWholeRowGroupBy(select, wholeRowAliases) {
307
+ const expression = stripSelectAlias(select);
308
+ if (expression.endsWith(".*")) {
309
+ return false;
310
+ }
311
+ const aliases = findSelectedAliases(expression);
312
+ return aliases.length > 0 && aliases.every((alias) => wholeRowAliases.has(alias));
313
+ }
314
+ /** Finds SQL aliases referenced as `alias.column` or `"alias".column`, i.e. `a.first_name` -> `a`. */
315
+ function findSelectedAliases(expression) {
316
+ const aliases = new Set();
317
+ for (const match of expression.matchAll(/(?:"([^"]+)"|([a-zA-Z_][\w]*))\./g)) {
318
+ aliases.add(match[1] ?? match[2]);
319
+ }
320
+ return [...aliases];
321
+ }
240
322
  /** Replaces all values with `*` so we can see the generic structure of the query. */
241
323
  function stripValues(query) {
242
324
  (0, QueryVisitor_1.visitConditions)(query, {
@@ -316,6 +398,33 @@ bindings) {
316
398
  },
317
399
  };
318
400
  }
401
+ /** Returns, per binding slot, whether every batched query shares the same value. */
402
+ function computeConstantBindings(entries) {
403
+ const length = entries[0].bindings.length;
404
+ const constant = new Array(length);
405
+ for (let j = 0; j < length; j++) {
406
+ const first = entries[0].bindings[j];
407
+ let same = true;
408
+ for (let i = 1; i < entries.length; i++) {
409
+ if (!argsEqual(entries[i].bindings[j], first)) {
410
+ same = false;
411
+ break;
412
+ }
413
+ }
414
+ constant[j] = same;
415
+ }
416
+ return constant;
417
+ }
418
+ /**
419
+ * Deep-equals two find-arg values (scalars, Dates, Temporals, or arrays thereof), reusing the same
420
+ * scalar/array equality `setField` uses for change detection.
421
+ *
422
+ * Only used to decide whether a condition can be inlined, so false negatives are safe (we just fall
423
+ * back to the CTE); we only return true when the values are genuinely equal.
424
+ */
425
+ function argsEqual(a, b) {
426
+ return (0, fields_1.equal)(a, b) || (Array.isArray(a) && Array.isArray(b) && (0, fields_1.equalArrays)(a, b));
427
+ }
319
428
  function getBatchKeyFromGenericStructure(meta, query) {
320
429
  // Clone b/c parseFindQuery does not deep copy complex conditions, i.e. `a.firstName.eq(...)`
321
430
  const clone = structuredClone(query);
@@ -1 +1 @@
1
- {"version":3,"file":"findDataLoader.js","sourceRoot":"","sources":["../../src/dataloaders/findDataLoader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"findDataLoader.js","sourceRoot":"","sources":["../../src/dataloaders/findDataLoader.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,6 @@
1
- import DataLoader from "dataloader";
2
1
  import { Entity } from "../Entity";
3
2
  import { FilterAndSettings } from "../EntityFilter";
4
3
  import { EntityManager, MaybeAbstractEntityConstructor } from "../EntityManager";
5
4
  export declare const findIdsOperation = "find-ids";
6
- export declare function findIdsDataLoader<T extends Entity>(em: EntityManager, type: MaybeAbstractEntityConstructor<T>, filter: FilterAndSettings<T>): DataLoader<FilterAndSettings<T>, string[]>;
5
+ export declare function findIdsDataLoader<T extends Entity>(em: EntityManager, type: MaybeAbstractEntityConstructor<T>, filter: FilterAndSettings<T>): Promise<string[]>;
7
6
  //# sourceMappingURL=findIdsDataLoader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"findIdsDataLoader.d.ts","sourceRoot":"","sources":["../../src/dataloaders/findIdsDataLoader.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAcjF,eAAO,MAAM,gBAAgB,aAAa,CAAC;AAE3C,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,EAChD,EAAE,EAAE,aAAa,EACjB,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,EACvC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAC3B,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CA2E5C"}
1
+ {"version":3,"file":"findIdsDataLoader.d.ts","sourceRoot":"","sources":["../../src/dataloaders/findIdsDataLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAejF,eAAO,MAAM,gBAAgB,aAAa,CAAC;AAE3C,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,EAChD,EAAE,EAAE,aAAa,EACjB,IAAI,EAAE,8BAA8B,CAAC,CAAC,CAAC,EACvC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAC3B,OAAO,CAAC,MAAM,EAAE,CAAC,CA4EnB"}