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
@@ -0,0 +1,13 @@
1
+ import { Entity } from "../Entity";
2
+ interface RecursiveCycleRelation {
3
+ entity: Entity;
4
+ fieldName: string;
5
+ }
6
+ /** Indicates a recursive relation/property cycle that cannot be safely evaluated. */
7
+ export declare class RecursiveCycleError extends Error {
8
+ readonly fieldName: string;
9
+ entities: Entity[];
10
+ constructor(relation: RecursiveCycleRelation, entities: Entity[]);
11
+ }
12
+ export {};
13
+ //# sourceMappingURL=RecursiveCycleError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RecursiveCycleError.d.ts","sourceRoot":"","sources":["../../src/relations/RecursiveCycleError.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,UAAU,sBAAsB;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qFAAqF;AACrF,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,MAAM,EAAE,CAAM;gBAEZ,QAAQ,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,EAAE;CAKjE"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RecursiveCycleError = void 0;
4
+ /** Indicates a recursive relation/property cycle that cannot be safely evaluated. */
5
+ class RecursiveCycleError extends Error {
6
+ fieldName;
7
+ entities = [];
8
+ constructor(relation, entities) {
9
+ super(`Cycle detected in ${relation.entity.toString()}.${relation.fieldName}`);
10
+ this.fieldName = relation.fieldName;
11
+ this.entities = entities;
12
+ }
13
+ }
14
+ exports.RecursiveCycleError = RecursiveCycleError;
15
+ //# sourceMappingURL=RecursiveCycleError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RecursiveCycleError.js","sourceRoot":"","sources":["../../src/relations/RecursiveCycleError.ts"],"names":[],"mappings":";;;AAOA,qFAAqF;AACrF,MAAa,mBAAoB,SAAQ,KAAK;IACnC,SAAS,CAAS;IAC3B,QAAQ,GAAa,EAAE,CAAC;IAExB,YAAY,QAAgC,EAAE,QAAkB;QAC9D,KAAK,CAAC,qBAAqB,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;QAC/E,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AATD,kDASC"}
@@ -1 +1 @@
1
- {"version":3,"file":"hasOneThrough.d.ts","sourceRoot":"","sources":["../../src/relations/hasOneThrough.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,MAAM,EAIN,IAAI,EAGJ,SAAS,EACV,MAAM,UAAU,CAAC;AAGlB;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,KAAK,GAAG,SAAS,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAC5G,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,GAC/B,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAUpB"}
1
+ {"version":3,"file":"hasOneThrough.d.ts","sourceRoot":"","sources":["../../src/relations/hasOneThrough.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,MAAM,EAIN,IAAI,EAIJ,SAAS,EACV,MAAM,UAAU,CAAC;AAGlB;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,KAAK,GAAG,SAAS,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAC5G,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,GAC/B,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAYpB"}
@@ -11,13 +11,15 @@ const newEntity_1 = require("../newEntity");
11
11
  * Because this is based on `CustomReference`, it will work in populates, i.e. `em.populate(review, "author")`.
12
12
  */
13
13
  function hasOneThrough(lens) {
14
+ const paths = (0, index_1.lensToPath)(lens);
15
+ const loadHint = (0, index_1.lensPathToLoadHint)(paths);
14
16
  return (0, newEntity_1.lazyField)((entity) => {
15
17
  const meta = (0, index_1.getMetadata)(entity);
16
18
  return new index_1.CustomReference(entity, {
17
- load: (entity, opts) => (0, index_1.loadLens)(entity, lens, opts),
18
- get: () => (0, index_1.getLens)(meta, entity, lens),
19
- isLoaded: () => (0, index_1.isLensLoaded)(entity, lens),
20
- loadHint: () => (0, index_1.lensToLoadHint)(lens),
19
+ load: (entity, opts) => (0, index_1.loadLensPath)(entity, paths, opts),
20
+ get: () => (0, index_1.getLensPath)(meta, entity, paths),
21
+ isLoaded: () => (0, index_1.isLensLoadedPath)(entity, paths),
22
+ loadHint,
21
23
  });
22
24
  });
23
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"hasOneThrough.js","sourceRoot":"","sources":["../../src/relations/hasOneThrough.ts"],"names":[],"mappings":";;AAoBA,sCAYC;AAhCD,oCAUkB;AAClB,4CAAyC;AAEzC;;;;;;GAMG;AACH,SAAgB,aAAa,CAC3B,IAAgC;IAEhC,OAAO,IAAA,qBAAS,EAAC,CAAC,MAAS,EAAE,EAAE;QAC7B,MAAM,IAAI,GAAG,IAAA,mBAAW,EAAC,MAAM,CAAC,CAAC;QACjC,OAAO,IAAI,uBAAe,CAAU,MAAM,EAAE;YAC1C,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,IAAA,gBAAQ,EAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC;YACpD,GAAG,EAAE,GAAG,EAAE,CAAC,IAAA,eAAO,EAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC;YACtC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAA,oBAAY,EAAC,MAAM,EAAE,IAAI,CAAC;YAC1C,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAA,sBAAc,EAAC,IAAI,CAAC;SACrC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"hasOneThrough.js","sourceRoot":"","sources":["../../src/relations/hasOneThrough.ts"],"names":[],"mappings":";;AAqBA,sCAcC;AAnCD,oCAWkB;AAClB,4CAAyC;AAEzC;;;;;;GAMG;AACH,SAAgB,aAAa,CAC3B,IAAgC;IAEhC,MAAM,KAAK,GAAG,IAAA,kBAAU,EAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,QAAQ,GAAG,IAAA,0BAAkB,EAAI,KAAK,CAAC,CAAC;IAC9C,OAAO,IAAA,qBAAS,EAAC,CAAC,MAAS,EAAE,EAAE;QAC7B,MAAM,IAAI,GAAG,IAAA,mBAAW,EAAC,MAAM,CAAC,CAAC;QACjC,OAAO,IAAI,uBAAe,CAAU,MAAM,EAAE;YAC1C,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,IAAA,oBAAY,EAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC;YACzD,GAAG,EAAE,GAAG,EAAE,CAAC,IAAA,mBAAW,EAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC;YAC3C,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAA,wBAAgB,EAAC,MAAM,EAAE,KAAK,CAAC;YAC/C,QAAQ;SACT,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -30,9 +30,10 @@ export declare function hasProperty<T extends Entity, const H extends LoadHint<T
30
30
  export declare function hasReactiveProperty<T extends Entity, const H extends ReactiveHint<T>, V>(reactiveHint: H, fn: (entity: Reacted<T, H>) => MaybeReactedPropertyEntity<V>): Property<T, V>;
31
31
  export declare class PropertyImpl<T extends Entity, H extends LoadHint<T>, V> implements Property<T, V> {
32
32
  #private;
33
+ private fieldName;
33
34
  private fn;
34
35
  private opts;
35
- constructor(entity: T, hint: H | ReactiveHint<T>, fn: (entity: Loaded<T, H>) => V, opts?: {
36
+ constructor(entity: T, fieldName: string, hint: H | ReactiveHint<T>, fn: (entity: Loaded<T, H>) => V, opts?: {
36
37
  isReactive?: boolean;
37
38
  });
38
39
  load(): Promise<V>;
@@ -1 +1 @@
1
- {"version":3,"file":"hasProperty.d.ts","sourceRoot":"","sources":["../../src/relations/hasProperty.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAY,MAAM,cAAc,CAAC;AAE1D,OAAO,EAAE,0BAA0B,EAAE,OAAO,EAAE,YAAY,EAAqB,MAAM,kBAAkB,CAAC;AAGxG,eAAO,MAAM,SAAS,eAAW,CAAC;AAElC,MAAM,WAAW,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC;IAE3C,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;CACpB;AAED,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC;IACjD,GAAG,EAAE,CAAC,CAAC;CACR;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAC1E,QAAQ,EAAE,CAAC,EACX,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAC9B,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAIhB;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,CAAC,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EACtF,YAAY,EAAE,CAAC,EACf,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,0BAA0B,CAAC,CAAC,CAAC,GAC3D,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAIhB;AAED,qBAAa,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAE,YAAW,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;;IAW3F,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,IAAI;gBAHZ,MAAM,EAAE,CAAC,EACT,IAAI,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,EACjB,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAC/B,IAAI,GAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAA;KAAO;IAQ7C,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC;IAWlB,IAAI,QAAQ,IAAI,CAAC,CAMhB;IAED,IAAI,YAAY,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAE9C;IAED,IAAI,GAAG,IAAI,CAAC,CAEX;IAED,IAAI,QAAQ,YAMX;IAED,CAAC,SAAS,CAAC,EAAuB,CAAC,CAAC;CACrC;AAED,2EAA2E;AAC3E,wBAAgB,UAAU,CAAC,aAAa,EAAE,GAAG,GAAG,aAAa,IAAI,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAElF;AAED,kFAAkF;AAClF,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,GAAG,GACjB,aAAa,IAAI,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAEhE"}
1
+ {"version":3,"file":"hasProperty.d.ts","sourceRoot":"","sources":["../../src/relations/hasProperty.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAY,MAAM,cAAc,CAAC;AAE1D,OAAO,EAAE,0BAA0B,EAAE,OAAO,EAAE,YAAY,EAAqB,MAAM,kBAAkB,CAAC;AAIxG,eAAO,MAAM,SAAS,eAAW,CAAC;AAElC,MAAM,WAAW,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC;IAE3C,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;CACpB;AAED,MAAM,WAAW,cAAc,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC;IACjD,GAAG,EAAE,CAAC,CAAC;CACR;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,CAAC,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAC1E,QAAQ,EAAE,CAAC,EACX,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAC9B,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAIhB;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,CAAC,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EACtF,YAAY,EAAE,CAAC,EACf,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,0BAA0B,CAAC,CAAC,CAAC,GAC3D,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAIhB;AAED,qBAAa,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAE,YAAW,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;;IAW3F,OAAO,CAAC,SAAS;IAEjB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,IAAI;gBAJZ,MAAM,EAAE,CAAC,EACD,SAAS,EAAE,MAAM,EACzB,IAAI,EAAE,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,EACjB,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,EAC/B,IAAI,GAAE;QAAE,UAAU,CAAC,EAAE,OAAO,CAAA;KAAO;IAQ7C,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC;IAWlB,IAAI,QAAQ,IAAI,CAAC,CAMhB;IAED,IAAI,YAAY,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAE9C;IAED,IAAI,GAAG,IAAI,CAAC,CAEX;IAED,IAAI,QAAQ,YAYX;IAED,CAAC,SAAS,CAAC,EAAuB,CAAC,CAAC;CACrC;AAED,2EAA2E;AAC3E,wBAAgB,UAAU,CAAC,aAAa,EAAE,GAAG,GAAG,aAAa,IAAI,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAElF;AAED,kFAAkF;AAClF,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,GAAG,GACjB,aAAa,IAAI,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAEhE"}
@@ -10,6 +10,7 @@ const loadHints_1 = require("../loadHints");
10
10
  const newEntity_1 = require("../newEntity");
11
11
  const reactiveHints_1 = require("../reactiveHints");
12
12
  const utils_1 = require("../utils");
13
+ const RecursiveCycleError_1 = require("./RecursiveCycleError");
13
14
  exports.PropertyT = Symbol();
14
15
  /**
15
16
  * Creates a calculated derived value from a load hint + lambda.
@@ -20,8 +21,8 @@ exports.PropertyT = Symbol();
20
21
  * with `someProperty.get`.
21
22
  */
22
23
  function hasProperty(loadHint, fn) {
23
- return (0, newEntity_1.lazyField)((entity) => {
24
- return new PropertyImpl(entity, loadHint, fn);
24
+ return (0, newEntity_1.lazyField)((entity, fieldName) => {
25
+ return new PropertyImpl(entity, fieldName, loadHint, fn);
25
26
  });
26
27
  }
27
28
  /**
@@ -33,20 +34,23 @@ function hasProperty(loadHint, fn) {
33
34
  * with `someProperty.get`.
34
35
  */
35
36
  function hasReactiveProperty(reactiveHint, fn) {
36
- return (0, newEntity_1.lazyField)((entity) => {
37
- return new PropertyImpl(entity, reactiveHint, fn, { isReactive: true });
37
+ return (0, newEntity_1.lazyField)((entity, fieldName) => {
38
+ return new PropertyImpl(entity, fieldName, reactiveHint, fn, { isReactive: true });
38
39
  });
39
40
  }
40
41
  class PropertyImpl {
42
+ fieldName;
41
43
  fn;
42
44
  opts;
43
45
  // We'll probe for loaded if undefined
44
46
  #loaded = undefined;
47
+ #isCheckingLoaded = false;
45
48
  #loadPromise;
46
49
  #entity;
47
50
  #hint;
48
51
  #reactiveHint;
49
- constructor(entity, hint, fn, opts = {}) {
52
+ constructor(entity, fieldName, hint, fn, opts = {}) {
53
+ this.fieldName = fieldName;
50
54
  this.fn = fn;
51
55
  this.opts = opts;
52
56
  const { isReactive = false } = opts;
@@ -80,7 +84,13 @@ class PropertyImpl {
80
84
  get isLoaded() {
81
85
  // Probe the first time, which is useful for factories that are DeepNew
82
86
  if (this.#loaded === undefined) {
87
+ if (this.#isCheckingLoaded) {
88
+ this.#isCheckingLoaded = false;
89
+ throw new RecursiveCycleError_1.RecursiveCycleError({ entity: this.#entity, fieldName: this.fieldName }, [this.#entity]);
90
+ }
91
+ this.#isCheckingLoaded = true;
83
92
  this.#loaded = (0, loadHints_1.isLoaded)(this.#entity, this.loadHint);
93
+ this.#isCheckingLoaded = false;
84
94
  }
85
95
  return !!this.#loaded;
86
96
  }
@@ -1 +1 @@
1
- {"version":3,"file":"hasProperty.js","sourceRoot":"","sources":["../../src/relations/hasProperty.ts"],"names":[],"mappings":";;;AA4BA,kCAOC;AAUD,kDAOC;AA6DD,gCAEC;AAGD,4CAIC;AAzHD,sDAAgD;AAChD,4CAA0D;AAC1D,4CAAyC;AACzC,oDAAwG;AACxG,oCAAsC;AAEzB,QAAA,SAAS,GAAG,MAAM,EAAE,CAAC;AAalC;;;;;;;GAOG;AACH,SAAgB,WAAW,CACzB,QAAW,EACX,EAA+B;IAE/B,OAAO,IAAA,qBAAS,EAAC,CAAC,MAAS,EAAE,EAAE;QAC7B,OAAO,IAAI,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,mBAAmB,CACjC,YAAe,EACf,EAA4D;IAE5D,OAAO,IAAA,qBAAS,EAAC,CAAC,MAAS,EAAE,EAAE;QAC7B,OAAO,IAAI,YAAY,CAAC,MAAM,EAAE,YAAmB,EAAE,EAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IACxF,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAa,YAAY;IAWb;IACA;IAXV,sCAAsC;IACtC,OAAO,GAAwB,SAAS,CAAC;IACzC,YAAY,CAAM;IAET,OAAO,CAAI;IACpB,KAAK,CAAgB;IACrB,aAAa,CAA8B;IAC3C,YACE,MAAS,EACT,IAAyB,EACjB,EAA+B,EAC/B,OAAiC,EAAE;QADnC,OAAE,GAAF,EAAE,CAA6B;QAC/B,SAAI,GAAJ,IAAI,CAA+B;QAE3C,MAAM,EAAE,UAAU,GAAG,KAAK,EAAE,GAAG,IAAI,CAAC;QACpC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,IAAU,CAAC;QAClD,IAAI,CAAC,aAAa,GAAG,UAAU,CAAC,CAAC,CAAE,IAAwB,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1E,CAAC;IAED,IAAI;QACF,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;gBAC7F,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;YACpB,CAAC,CAAC,CAAC,CAAC;QACN,CAAC;QACD,OAAO,IAAA,kBAAU,EAAC,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,QAAQ;QACV,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,0DAA0D;YAC1D,IAAI,CAAC,KAAK,GAAG,IAAA,iCAAiB,EAAC,IAAA,4BAAW,EAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,aAAoB,CAAM,CAAC;QAC5F,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAuB,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,QAAQ;QACV,uEAAuE;QACvE,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,GAAG,IAAA,oBAAQ,EAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,CAAC,iBAAS,CAAC,GAAG,SAAqB,CAAC;CACrC;AAxDD,oCAwDC;AAED,2EAA2E;AAC3E,SAAgB,UAAU,CAAC,aAAkB;IAC3C,OAAO,aAAa,YAAY,YAAY,CAAC;AAC/C,CAAC;AAED,kFAAkF;AAClF,SAAgB,gBAAgB,CAC9B,aAAkB;IAElB,OAAO,UAAU,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"file":"hasProperty.js","sourceRoot":"","sources":["../../src/relations/hasProperty.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  export { Collection, LoadedCollection, isCollection, isLoadedCollection } from "./Collection";
2
2
  export { CustomCollection, hasCustomCollection } from "./CustomCollection";
3
+ export { EnumCollection, EnumCollectionImpl, LoadedEnumCollection, hasEnumCollection } from "./EnumCollection";
3
4
  export { CustomReference, hasCustomReference } from "./CustomReference";
4
5
  export { AsyncMethod, LoadedMethod, hasAsyncMethod } from "./hasAsyncMethod";
5
6
  export { LoadedProperty, Property, PropertyImpl, hasProperty, hasReactiveProperty, isLoadedProperty, isProperty, } from "./hasProperty";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/relations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC9F,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EACL,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,UAAU,GACX,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC5F,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAChH,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACpF,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,WAAW,EACX,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACvF,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,2BAA2B,EAC3B,+BAA+B,EAC/B,8BAA8B,EAC9B,6BAA6B,GAC9B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACxH,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACzF,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/relations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC9F,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC/G,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EACL,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,UAAU,GACX,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,qBAAqB,GACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC5F,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAChH,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACpF,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,WAAW,EACX,yBAAyB,EACzB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACvF,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,2BAA2B,EAC3B,+BAA+B,EAC/B,8BAA8B,EAC9B,6BAA6B,GAC9B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACxH,OAAO,EAAE,eAAe,EAAE,SAAS,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACzF,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC"}
@@ -1,13 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isAsyncReactiveField = exports.hasAsyncReactiveField = exports.isReactiveManyToManyOtherSide = exports.hasReactiveManyToManyOtherSide = exports.ReactiveManyToManyOtherSideImpl = exports.isReactiveManyToMany = exports.hasReactiveManyToMany = exports.ReactiveManyToManyImpl = exports.isReactiveGetter = exports.hasReactiveGetter = exports.isReactiveField = exports.hasReactiveField = exports.isPolymorphicReference = exports.hasOnePolymorphic = exports.PolymorphicReferenceImpl = exports.isOneToOneReference = exports.isLoadedOneToOneReference = exports.hasOneToOne = exports.OneToOneReferenceImpl = exports.hasLargeMany = exports.OneToManyLargeCollection = exports.hasMany = exports.OneToManyCollection = exports.isManyToOneReference = exports.hasOne = exports.ManyToOneReferenceImpl = exports.hasLargeManyToMany = exports.ManyToManyLargeCollection = exports.hasManyToMany = exports.ManyToManyCollection = exports.hasOneThrough = exports.hasOneDerived = exports.hasManyThrough = exports.hasManyDerived = exports.isLoadedAsyncProperty = exports.isAsyncProperty = exports.hasAsyncProperty = exports.AsyncPropertyImpl = exports.isProperty = exports.isLoadedProperty = exports.hasReactiveProperty = exports.hasProperty = exports.PropertyImpl = exports.hasAsyncMethod = exports.hasCustomReference = exports.CustomReference = exports.hasCustomCollection = exports.CustomCollection = exports.isLoadedCollection = exports.isCollection = void 0;
4
- exports.isRelation = exports.isReference = exports.isLoadedReference = exports.hasRecursiveParents = exports.hasRecursiveM2m = exports.hasRecursiveChildren = exports.RecursiveCycleError = exports.isReadOnlyCollection = exports.isLoadedReadOnlyCollection = exports.isReactiveReference = exports.hasReactiveReference = exports.ReactiveReferenceImpl = void 0;
3
+ exports.isReactiveManyToManyOtherSide = exports.hasReactiveManyToManyOtherSide = exports.ReactiveManyToManyOtherSideImpl = exports.isReactiveManyToMany = exports.hasReactiveManyToMany = exports.ReactiveManyToManyImpl = exports.isReactiveGetter = exports.hasReactiveGetter = exports.isReactiveField = exports.hasReactiveField = exports.isPolymorphicReference = exports.hasOnePolymorphic = exports.PolymorphicReferenceImpl = exports.isOneToOneReference = exports.isLoadedOneToOneReference = exports.hasOneToOne = exports.OneToOneReferenceImpl = exports.hasLargeMany = exports.OneToManyLargeCollection = exports.hasMany = exports.OneToManyCollection = exports.isManyToOneReference = exports.hasOne = exports.ManyToOneReferenceImpl = exports.hasLargeManyToMany = exports.ManyToManyLargeCollection = exports.hasManyToMany = exports.ManyToManyCollection = exports.hasOneThrough = exports.hasOneDerived = exports.hasManyThrough = exports.hasManyDerived = exports.isLoadedAsyncProperty = exports.isAsyncProperty = exports.hasAsyncProperty = exports.AsyncPropertyImpl = exports.isProperty = exports.isLoadedProperty = exports.hasReactiveProperty = exports.hasProperty = exports.PropertyImpl = exports.hasAsyncMethod = exports.hasCustomReference = exports.CustomReference = exports.hasEnumCollection = exports.EnumCollectionImpl = exports.hasCustomCollection = exports.CustomCollection = exports.isLoadedCollection = exports.isCollection = void 0;
4
+ exports.isRelation = exports.isReference = exports.isLoadedReference = exports.hasRecursiveParents = exports.hasRecursiveM2m = exports.hasRecursiveChildren = exports.RecursiveCycleError = exports.isReadOnlyCollection = exports.isLoadedReadOnlyCollection = exports.isReactiveReference = exports.hasReactiveReference = exports.ReactiveReferenceImpl = exports.isAsyncReactiveField = exports.hasAsyncReactiveField = void 0;
5
5
  var Collection_1 = require("./Collection");
6
6
  Object.defineProperty(exports, "isCollection", { enumerable: true, get: function () { return Collection_1.isCollection; } });
7
7
  Object.defineProperty(exports, "isLoadedCollection", { enumerable: true, get: function () { return Collection_1.isLoadedCollection; } });
8
8
  var CustomCollection_1 = require("./CustomCollection");
9
9
  Object.defineProperty(exports, "CustomCollection", { enumerable: true, get: function () { return CustomCollection_1.CustomCollection; } });
10
10
  Object.defineProperty(exports, "hasCustomCollection", { enumerable: true, get: function () { return CustomCollection_1.hasCustomCollection; } });
11
+ var EnumCollection_1 = require("./EnumCollection");
12
+ Object.defineProperty(exports, "EnumCollectionImpl", { enumerable: true, get: function () { return EnumCollection_1.EnumCollectionImpl; } });
13
+ Object.defineProperty(exports, "hasEnumCollection", { enumerable: true, get: function () { return EnumCollection_1.hasEnumCollection; } });
11
14
  var CustomReference_1 = require("./CustomReference");
12
15
  Object.defineProperty(exports, "CustomReference", { enumerable: true, get: function () { return CustomReference_1.CustomReference; } });
13
16
  Object.defineProperty(exports, "hasCustomReference", { enumerable: true, get: function () { return CustomReference_1.hasCustomReference; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/relations/index.ts"],"names":[],"mappings":";;;;AAAA,2CAA8F;AAAvD,0GAAA,YAAY,OAAA;AAAE,gHAAA,kBAAkB,OAAA;AACvE,uDAA2E;AAAlE,oHAAA,gBAAgB,OAAA;AAAE,uHAAA,mBAAmB,OAAA;AAC9C,qDAAwE;AAA/D,kHAAA,eAAe,OAAA;AAAE,qHAAA,kBAAkB,OAAA;AAC5C,mDAA6E;AAAzC,gHAAA,cAAc,OAAA;AAClD,6CAQuB;AALrB,2GAAA,YAAY,OAAA;AACZ,0GAAA,WAAW,OAAA;AACX,kHAAA,mBAAmB,OAAA;AACnB,+GAAA,gBAAgB,OAAA;AAChB,yGAAA,UAAU,OAAA;AAEZ,iDAMyB;AAJvB,kHAAA,iBAAiB,OAAA;AACjB,iHAAA,gBAAgB,OAAA;AAChB,gHAAA,eAAe,OAAA;AACf,sHAAA,qBAAqB,OAAA;AAEvB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AAEtB,+DAA6E;AAApE,4HAAA,oBAAoB,OAAA;AAAE,qHAAA,aAAa,OAAA;AAC5C,yEAA4F;AAAnF,sIAAA,yBAAyB,OAAA;AAAE,+HAAA,kBAAkB,OAAA;AACtD,2DAAgH;AAAnF,4HAAA,sBAAsB,OAAA;AAAE,4GAAA,MAAM,OAAA;AAAE,0HAAA,oBAAoB,OAAA;AACjF,6DAAqE;AAA5D,0HAAA,mBAAmB,OAAA;AAAE,8GAAA,OAAO,OAAA;AACrC,uEAAoF;AAA3E,oIAAA,wBAAwB,OAAA;AAAE,wHAAA,YAAY,OAAA;AAC/C,yDAM6B;AAJ3B,0HAAA,qBAAqB,OAAA;AACrB,gHAAA,WAAW,OAAA;AACX,8HAAA,yBAAyB,OAAA;AACzB,wHAAA,mBAAmB,OAAA;AAErB,+DAKgC;AAH9B,gIAAA,wBAAwB,OAAA;AACxB,yHAAA,iBAAiB,OAAA;AACjB,8HAAA,sBAAsB,OAAA;AAExB,iDAAmF;AAA3D,iHAAA,gBAAgB,OAAA;AAAE,gHAAA,eAAe,OAAA;AACzD,mDAAuF;AAA9D,mHAAA,iBAAiB,OAAA;AAAE,kHAAA,gBAAgB,OAAA;AAC5D,2DAK8B;AAH5B,4HAAA,sBAAsB,OAAA;AACtB,2HAAA,qBAAqB,OAAA;AACrB,0HAAA,oBAAoB,OAAA;AAEtB,6EAKuC;AAHrC,8IAAA,+BAA+B,OAAA;AAC/B,6IAAA,8BAA8B,OAAA;AAC9B,4IAAA,6BAA6B,OAAA;AAE/B,2DAAmF;AAA1E,2HAAA,qBAAqB,OAAA;AAAE,0HAAA,oBAAoB,OAAA;AACpD,yDAK6B;AAH3B,0HAAA,qBAAqB,OAAA;AACrB,yHAAA,oBAAoB,OAAA;AACpB,wHAAA,mBAAmB,OAAA;AAErB,2DAK8B;AAF5B,gIAAA,0BAA0B,OAAA;AAC1B,0HAAA,oBAAoB,OAAA;AAEtB,6DAAwH;AAA/G,0HAAA,mBAAmB,OAAA;AAAE,2HAAA,oBAAoB,OAAA;AAAE,sHAAA,eAAe,OAAA;AAAE,0HAAA,mBAAmB,OAAA;AACxF,yCAAyF;AAApD,8GAAA,iBAAiB,OAAA;AAAE,wGAAA,WAAW,OAAA;AACnE,uCAAkD;AAA/B,sGAAA,UAAU,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/relations/index.ts"],"names":[],"mappings":";;;;AAAA,2CAA8F;AAAvD,0GAAA,YAAY,OAAA;AAAE,gHAAA,kBAAkB,OAAA;AACvE,uDAA2E;AAAlE,oHAAA,gBAAgB,OAAA;AAAE,uHAAA,mBAAmB,OAAA;AAC9C,mDAA+G;AAAtF,oHAAA,kBAAkB,OAAA;AAAwB,mHAAA,iBAAiB,OAAA;AACpF,qDAAwE;AAA/D,kHAAA,eAAe,OAAA;AAAE,qHAAA,kBAAkB,OAAA;AAC5C,mDAA6E;AAAzC,gHAAA,cAAc,OAAA;AAClD,6CAQuB;AALrB,2GAAA,YAAY,OAAA;AACZ,0GAAA,WAAW,OAAA;AACX,kHAAA,mBAAmB,OAAA;AACnB,+GAAA,gBAAgB,OAAA;AAChB,yGAAA,UAAU,OAAA;AAEZ,iDAMyB;AAJvB,kHAAA,iBAAiB,OAAA;AACjB,iHAAA,gBAAgB,OAAA;AAChB,gHAAA,eAAe,OAAA;AACf,sHAAA,qBAAqB,OAAA;AAEvB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA;AACvB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AAEtB,+DAA6E;AAApE,4HAAA,oBAAoB,OAAA;AAAE,qHAAA,aAAa,OAAA;AAC5C,yEAA4F;AAAnF,sIAAA,yBAAyB,OAAA;AAAE,+HAAA,kBAAkB,OAAA;AACtD,2DAAgH;AAAnF,4HAAA,sBAAsB,OAAA;AAAE,4GAAA,MAAM,OAAA;AAAE,0HAAA,oBAAoB,OAAA;AACjF,6DAAqE;AAA5D,0HAAA,mBAAmB,OAAA;AAAE,8GAAA,OAAO,OAAA;AACrC,uEAAoF;AAA3E,oIAAA,wBAAwB,OAAA;AAAE,wHAAA,YAAY,OAAA;AAC/C,yDAM6B;AAJ3B,0HAAA,qBAAqB,OAAA;AACrB,gHAAA,WAAW,OAAA;AACX,8HAAA,yBAAyB,OAAA;AACzB,wHAAA,mBAAmB,OAAA;AAErB,+DAKgC;AAH9B,gIAAA,wBAAwB,OAAA;AACxB,yHAAA,iBAAiB,OAAA;AACjB,8HAAA,sBAAsB,OAAA;AAExB,iDAAmF;AAA3D,iHAAA,gBAAgB,OAAA;AAAE,gHAAA,eAAe,OAAA;AACzD,mDAAuF;AAA9D,mHAAA,iBAAiB,OAAA;AAAE,kHAAA,gBAAgB,OAAA;AAC5D,2DAK8B;AAH5B,4HAAA,sBAAsB,OAAA;AACtB,2HAAA,qBAAqB,OAAA;AACrB,0HAAA,oBAAoB,OAAA;AAEtB,6EAKuC;AAHrC,8IAAA,+BAA+B,OAAA;AAC/B,6IAAA,8BAA8B,OAAA;AAC9B,4IAAA,6BAA6B,OAAA;AAE/B,2DAAmF;AAA1E,2HAAA,qBAAqB,OAAA;AAAE,0HAAA,oBAAoB,OAAA;AACpD,yDAK6B;AAH3B,0HAAA,qBAAqB,OAAA;AACrB,yHAAA,oBAAoB,OAAA;AACpB,wHAAA,mBAAmB,OAAA;AAErB,2DAK8B;AAF5B,gIAAA,0BAA0B,OAAA;AAC1B,0HAAA,oBAAoB,OAAA;AAEtB,6DAAwH;AAA/G,0HAAA,mBAAmB,OAAA;AAAE,2HAAA,oBAAoB,OAAA;AAAE,sHAAA,eAAe,OAAA;AAAE,0HAAA,mBAAmB,OAAA;AACxF,yCAAyF;AAApD,8GAAA,iBAAiB,OAAA;AAAE,wGAAA,WAAW,OAAA;AACnE,uCAAkD;AAA/B,sGAAA,UAAU,OAAA"}
package/build/rules.js CHANGED
@@ -102,7 +102,7 @@ function cannotBeUpdated(field, optsOrUnless) {
102
102
  function cannotBeChanged(field, opts) {
103
103
  return ruleWithOpts(opts, (entity) => {
104
104
  const changes = entity.changes[field];
105
- if (changes.kind === "m2m" || changes.kind === "o2m") {
105
+ if (changes.kind === "m2m" || changes.kind === "o2m" || changes.kind === "m2mEnum") {
106
106
  throw new Error("cannotBeChanged is only supported on primitive & m2o fields");
107
107
  }
108
108
  else if (changes.hasUpdated) {
@@ -1 +1 @@
1
- {"version":3,"file":"rules.js","sourceRoot":"","sources":["../src/rules.ts"],"names":[],"mappings":";;;AAkGA,0CAkBC;AAeD,0CAiBC;AAOD,0CAiBC;AAID,sDAEC;AAGD,sCAYC;AAgBD,oCAuBC;AAgBD,oCAuBC;AAgBD,wCAeC;AA5SD,mDAAmD;AACnD,qCAAoC;AAEpC,2CAA8F;AAE9F,mCAAkE;AAElE,IAAY,cAOX;AAPD,WAAY,cAAc;IACxB,uCAAqB,CAAA;IACrB,mDAAiC,CAAA;IACjC,oDAAkC,CAAA;IAClC,yCAAuB,CAAA;IACvB,wCAAsB,CAAA;IACtB,uCAAqB,CAAA;AACvB,CAAC,EAPW,cAAc,8BAAd,cAAc,QAOzB;AAiCD,SAAS,YAAY,CAAC,MAAyB;IAC7C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,qBAAqB,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IACjF,CAAC;SAAM,CAAC;QACN,MAAM,OAAO,GAAG,CAAC,GAAG,IAAA,eAAO,EAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;aACvE,GAAG,CAAC,CAAC,CAAC,cAAc,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,GAAG,cAAc,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;aACjG,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,OAAO,sBAAsB,MAAM,CAAC,MAAM,MAAM,OAAO,EAAE,CAAC;IAC5D,CAAC;AACH,CAAC;AAED,MAAa,gBAAiB,SAAQ,KAAK;IAClC,MAAM,CAAwC;IACrC,MAAM,CAAe;IAGrC,YAAY,eAA2C;QACrD,KAAK,CAAC,OAAO,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CAAC;QAC7F,IAAI,CAAC,MAAM,GAAG,OAAO,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;QACrG,oGAAoG;QACpG,8CAA8C;QAC9C,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,qBAAqB,IAAI,CAAC,OAAO,EAAE,CAAC;IAC1D,CAAC;CACF;AAZD,4CAYC;AAED,SAAS,YAAY,CACnB,IAAuC,EACvC,EAAuC;IAEvC,OAAO,CAAC,MAAM,EAAE,EAAE;QAChB,gHAAgH;QAChH,0FAA0F;QAC1F,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC;QAC1B,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO;QACjC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;QACvC,IAAI,MAAM,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC;QAC7D,MAAM,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;QACzF,OAAO,IAAA,wBAAgB,EACrB,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAE,SAAuB,EAC/F,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CACzD,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAgB,eAAe,CAC7B,GAA+B,EAC/B,OAA8B,EAAE;IAEhC,OAAO,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE;QACnC,iDAAiD;QACjD,IAAI,IAAA,iBAAQ,EAAC,MAAM,EAAE,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;YACxC,uGAAuG;YACvG,0GAA0G;YAC1G,oBAAoB;YACpB,IAAI,MAAM,CAAC,WAAW,IAAI,IAAA,gCAAoB,EAAE,MAAc,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACrE,MAAM,IAAI,KAAK,CACb,sBAAsB,MAAM,CAAC,WAAW,CAAC,IAAI,IAAI,GAAG,yKAAyK,CAC9N,CAAC;YACJ,CAAC;YACD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,GAAG,cAAc,EAAE,CAAC;QACtF,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAeD,SAAgB,eAAe,CAC7B,KAAQ,EACR,YAA8D;IAE9D,MAAM,IAAI,GAAG,OAAO,YAAY,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;IAClG,MAAM,EAAE,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,MAAS,EAAE,EAAE;QAC1C,wFAAwF;QACxF,qEAAqE;QACrE,IAAK,MAAkC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,CAAC;YAClE,MAAM,KAAK,GAAI,MAAc,CAAC,KAAK,CAAC,CAAC;YACrC,0DAA0D;YAC1D,IAAI,IAAA,6BAAiB,EAAC,KAAK,CAAC,IAAI,IAAA,gCAAgB,EAAC,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC;gBAAE,OAAO;YACzF,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,CAAC,eAAe,EAAE,OAAO,EAAE,GAAG,KAAK,oBAAoB,EAAE,CAAC;QAChG,CAAC;QACD,OAAO;IACT,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC,CAAC;AACrG,CAAC;AAED;;;;GAIG;AACH,SAAgB,eAAe,CAC7B,KAAQ,EACR,IAA4B;IAE5B,OAAO,YAAY,CAAC,IAAI,EAAE,CAAC,MAAS,EAAE,EAAE;QACtC,MAAM,OAAO,GAAI,MAAkC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACnE,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,IAAI,OAAO,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;YACrD,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACjF,CAAC;aAAM,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YAC9B,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;YAC5C,IAAI,aAAa,KAAK,SAAS;gBAAE,OAAO;YACxC,MAAM,KAAK,GAAG,IAAA,iBAAQ,EAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACtC,IAAI,IAAA,gCAAgB,EAAC,MAAM,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC;gBAAE,OAAO;YACzD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,CAAC,eAAe,EAAE,OAAO,EAAE,GAAG,KAAK,oBAAoB,EAAE,CAAC;QAChG,CAAC;QACD,OAAO;IACT,CAAC,CAAC,CAAC;AACL,CAAC;AAID,SAAgB,qBAAqB,CAAC,IAAc;IAClD,OAAO,OAAO,IAAI,IAAI,IAAI,WAAW,IAAI,IAAI,CAAC;AAChD,CAAC;AAED,mEAAmE;AACnE,SAAgB,aAAa,CAC3B,YAAe,EACf,OAA8B,EAAE;IAEhC,OAAO,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE;QACnC,MAAM,GAAG,GAAI,MAAc,CAAC,YAAY,CAA0C,CAAC;QACnF,MAAM,KAAK,GAAG,GAAG,CAAC,GAAG,CAAC;QACtB,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;QACrC,IAAI,KAAK,IAAI,CAAC,CAAC,KAAK,YAAY,SAAS,CAAC,EAAE,CAAC;YAC3C,OAAO,GAAG,YAAY,cAAc,SAAS,CAAC,IAAI,QAAQ,KAAK,EAAE,CAAC;QACpE,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAgB,YAAY,CAC1B,KAAQ,EACR,QAAgB,EAChB,OAA8B,EAAE;IAEhC,OAAO,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE;QACnC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5B,8EAA8E;QAC9E,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO;QAClD,oDAAoD;QACpD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,KAAK,mBAAmB,EAAE,CAAC;QACvF,CAAC;QACD,iEAAiE;QACjE,IAAI,KAAK,GAAG,QAAQ,EAAE,CAAC;YACrB,OAAO;gBACL,KAAK;gBACL,IAAI,EAAE,cAAc,CAAC,QAAQ;gBAC7B,OAAO,EAAE,GAAG,KAAK,qCAAqC,QAAQ,EAAE;aACjE,CAAC;QACJ,CAAC;QACD,OAAO;IACT,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAgB,YAAY,CAC1B,KAAQ,EACR,QAAgB,EAChB,OAA8B,EAAE;IAEhC,OAAO,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE;QACnC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5B,8EAA8E;QAC9E,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO;QAClD,oDAAoD;QACpD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,KAAK,mBAAmB,EAAE,CAAC;QACvF,CAAC;QACD,iEAAiE;QACjE,IAAI,KAAK,GAAG,QAAQ,EAAE,CAAC;YACrB,OAAO;gBACL,KAAK;gBACL,IAAI,EAAE,cAAc,CAAC,QAAQ;gBAC7B,OAAO,EAAE,GAAG,KAAK,qCAAqC,QAAQ,EAAE;aACjE,CAAC;QACJ,CAAC;QACD,OAAO;IACT,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,SAAgB,cAAc,CAC5B,KAAQ,EACR,QAAgB,EAChB,QAAgB,EAChB,OAA8B,EAAE;IAEhC,OAAO,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE;QACnC,kHAAkH;QAClH,MAAM,cAAc,GAAG,YAAY,CAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAyB,CAAC;QAC3F,MAAM,cAAc,GAAG,YAAY,CAAO,KAAK,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAyB,CAAC;QAC3F,+BAA+B;QAC/B,IAAI,cAAc;YAAE,OAAO,cAAc,CAAC;QAC1C,IAAI,cAAc;YAAE,OAAO,cAAc,CAAC;QAC1C,OAAO;IACT,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"rules.js","sourceRoot":"","sources":["../src/rules.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,185 @@
1
+ import { type Alias } from "./Aliases";
2
+ import type { Entity } from "./Entity";
3
+ import type { ExpressionCondition, ExpressionFilter, FilterAndSettings, FilterWithAlias, FindFilter } from "./EntityFilter";
4
+ import type { GraphQLFilterWithAlias } from "./EntityGraphQLFilter";
5
+ import type { EntityManager, FindFilterOptions } from "./EntityManager";
6
+ import type { Loaded, LoadHint } from "./loadHints";
7
+ import type { OrderOf } from "./typeMap";
8
+ /**
9
+ * A scope fragment that introduces its own join aliases: a join tree plus conditions
10
+ * that reference the aliases it binds.
11
+ *
12
+ * Lets a scope express predicates a plain nested filter can't, e.g. a top-level `OR`
13
+ * spanning two different joined tables. Both halves are required — the `where` tree binds
14
+ * the aliases (via `as:`) that `conditions` reference, so neither is meaningful alone.
15
+ */
16
+ export interface ScopeJoinFilter<T extends Entity> {
17
+ where: FilterWithAlias<T>;
18
+ conditions: ExpressionFilter;
19
+ }
20
+ /** A predicate expressed against a bound alias, i.e. `(a) => a.age.gte(18)`. */
21
+ export type AliasFn<T extends Entity> = (a: Alias<T>) => ExpressionCondition | ExpressionCondition[] | ScopeJoinFilter<T>;
22
+ /**
23
+ * Discriminates an {@link AliasFn} result that is a {@link ScopeJoinFilter} from a bare
24
+ * condition / condition array.
25
+ *
26
+ * A `ScopeJoinFilter` is the only `AliasFn` return that carries both `where` and `conditions`
27
+ * keys; `ExpressionFilter` (`and`/`or`), `ColumnCondition`/`RawCondition` (`kind`), and arrays
28
+ * have neither, so the two-key check is unambiguous.
29
+ */
30
+ export declare function isScopeJoinFilter<T extends Entity>(result: ExpressionCondition | ExpressionCondition[] | ScopeJoinFilter<T>): result is ScopeJoinFilter<T>;
31
+ /**
32
+ * The fluent builder to either a) terminate/invoke or b) chain scope methods.
33
+ *
34
+ * I.e. `Author.adult` is a ScopeQuery that can either do `.find` or `.popular`.
35
+ *
36
+ * This `ScopeQuery` is just the terminal/invocation methods, the `.popular` methods
37
+ * are chained on via the `Scope` mapped type below.
38
+ */
39
+ export interface ScopeQuery<T extends Entity> {
40
+ /**
41
+ * ANDs an ad-hoc filter onto the scope, i.e. `Author.adult.where({ firstName: "a1" })`.
42
+ *
43
+ * Accepts either a plain find filter (`{ field: value }`) or an alias callback
44
+ * (`(a) => a.field.eq(value)`) and appends it to the recorded ops — multiple
45
+ * `.where(...)` calls on the same field AND together rather than override.
46
+ */
47
+ where(where: FilterWithAlias<T>): this;
48
+ where(fn: AliasFn<T>): this;
49
+ /**
50
+ * Appends an `orderBy` to the scope, i.e. `Author.adult.orderBy({ age: "DESC" })`.
51
+ *
52
+ * Chained `.orderBy(...)` calls **accumulate** (the resulting query has every recorded
53
+ * orderBy in declaration order), unlike `.limit`/`.offset`/`.softDeletes` which are
54
+ * last-wins. To replace an existing scope's ordering, pass `orderBy` to the terminal
55
+ * `.find(em, { orderBy: ... })` instead — terminal options override the scope's.
56
+ */
57
+ orderBy(orderBy: OrderOf<T> | OrderOf<T>[]): this;
58
+ /**
59
+ * Sets the row limit on the scope, i.e. `Author.adult.limit(10)`.
60
+ *
61
+ * Chained `.limit(...)` calls are last-wins — only the most recent value survives compile.
62
+ */
63
+ limit(limit: number): this;
64
+ /**
65
+ * Sets the row offset on the scope, i.e. `Author.adult.offset(10)`.
66
+ *
67
+ * Chained `.offset(...)` calls are last-wins — only the most recent value survives compile.
68
+ */
69
+ offset(offset: number): this;
70
+ /**
71
+ * Overrides Joist's default soft-delete handling for this query, i.e.
72
+ * `Author.adult.softDeletes("include")` to see soft-deleted rows.
73
+ *
74
+ * Chained `.softDeletes(...)` calls are last-wins. The effective value also gates
75
+ * how `.where({ relation: ... })` filters that touch soft-delete-aware entities are
76
+ * composed at compile time.
77
+ */
78
+ softDeletes(softDeletes: "include" | "exclude"): this;
79
+ /**
80
+ * Runs the scope against `em`, returning all matching rows.
81
+ *
82
+ * Terminal options (`orderBy`, `limit`, `offset`, `softDeletes`) passed here
83
+ * **override** anything the scope recorded via `.orderBy(...)`, `.limit(...)`, etc.;
84
+ * `conditions` passed here are ANDed with the scope's compiled conditions rather than
85
+ * replacing them. To extend the scope's ordering instead of replacing it, chain
86
+ * `.orderBy(...)` before `.find(em)`.
87
+ */
88
+ find(em: EntityManager): Promise<T[]>;
89
+ find<const H extends LoadHint<T>>(em: EntityManager, opts?: FindFilterOptions<T> & {
90
+ populate?: H;
91
+ }): Promise<Loaded<T, H>[]>;
92
+ /** Like {@link find} but returns a single match or `undefined`. Same options precedence as `find`. */
93
+ findOne(em: EntityManager): Promise<T | undefined>;
94
+ findOne<const H extends LoadHint<T>>(em: EntityManager, opts?: FindFilterOptions<T> & {
95
+ populate?: H;
96
+ }): Promise<Loaded<T, H> | undefined>;
97
+ /** Like {@link findOne} but throws if no row matches. Same options precedence as `find`. */
98
+ findOneOrFail(em: EntityManager): Promise<T>;
99
+ findOneOrFail<const H extends LoadHint<T>>(em: EntityManager, opts?: FindFilterOptions<T> & {
100
+ populate?: H;
101
+ }): Promise<Loaded<T, H>>;
102
+ /**
103
+ * Returns the count of rows matching the scope.
104
+ *
105
+ * Recorded `orderBy`/`limit`/`offset` ops are dropped (they're meaningless for a count);
106
+ * `softDeletes` and conditions still apply.
107
+ */
108
+ findCount(em: EntityManager): Promise<number>;
109
+ /**
110
+ * Returns the tagged ids of rows matching the scope.
111
+ *
112
+ * Like {@link findCount}, recorded `orderBy`/`limit`/`offset` ops are dropped.
113
+ */
114
+ findIds(em: EntityManager): Promise<string[]>;
115
+ /**
116
+ * Compiles the scope into Joist's `FilterAndSettings` shape for passing to other APIs
117
+ * or for inspection in tests.
118
+ *
119
+ * Useful primarily for debugging — the returned shape captures whatever the terminal
120
+ * `find` methods would have sent to `em.find`, before terminal-options precedence is
121
+ * applied.
122
+ */
123
+ toFindArgs(): FilterAndSettings<T>;
124
+ }
125
+ /** A scope for entity `T`, with chainable named accessors supplied by `S`. */
126
+ export type Scope<T extends Entity, S = {}> = ScopeQuery<T> & S;
127
+ /**
128
+ * A per-entity, pre-typed function for declaring scopes.
129
+ *
130
+ * I.e. this is the type of the `import { authorScope as scope }` that entity files
131
+ * use to declare their scopes.
132
+ *
133
+ * Because of the `authorScope as scope` rename, we can bake into the API that this
134
+ * is the Author entity, and so simplify its usage.
135
+ */
136
+ export interface ScopeFn<T extends Entity, R extends Scope<T>> {
137
+ /** Defines a scope based on a filter condition, i.e. `scope({ name: "John" })` or `scope(a => a.name.eq("John")`. */
138
+ (arg: FilterWithAlias<T> | AliasFn<T>): R;
139
+ /** Defines a parametrized filter, i.e. `scope(name => ({ name: { startsWith: name } }))`. */
140
+ fn<A extends unknown[]>(fn: (...args: A) => FilterWithAlias<T> | AliasFn<T>): (...args: A) => R;
141
+ }
142
+ /** A scope fragment that can be expanded against any current query alias. */
143
+ export type ScopeFilterFragment<T extends Entity> = {
144
+ kind: "alias";
145
+ fn: AliasFn<T>;
146
+ } | {
147
+ kind: "filter";
148
+ filter: FilterWithAlias<T>;
149
+ };
150
+ /**
151
+ * Fully-expanded scope contents, with named refs resolved and settings collapsed.
152
+ *
153
+ * Deliberately *not* a `ParsedFindQuery`, even though they look adjacent: this is the pre-parse,
154
+ * alias-free *input* we feed into `parseFindQuery`, not its alias-committed AST output. Two reasons
155
+ * the distinction matters:
156
+ * - `fragments` are un-parsed DSL — filter objects plus un-invoked `AliasFn` closures — so the same
157
+ * scope can be re-rooted onto the query's primary alias (`Author.adult.find(em)`) or onto a joined
158
+ * relation alias (`em.find(Book, { author: Author.adult })`). A `ParsedFindQuery` has already baked
159
+ * in concrete aliases like `a`/`b1` and could only be reused via alias-rewrite surgery.
160
+ * - keeping `fragments` as a *list* (rather than one merged condition tree) preserves independent-EXISTS
161
+ * semantics: `.where({ books: ... }).where({ books: ... })` must stay two predicates — one EXISTS each —
162
+ * which a collapsed `ParsedFindQuery.condition` can no longer be split back into.
163
+ */
164
+ export interface ResolvedScope<T extends Entity> {
165
+ fragments: ScopeFilterFragment<T>[];
166
+ orderBys: OrderOf<T>[];
167
+ limit: number | undefined;
168
+ offset: number | undefined;
169
+ softDeletes: "include" | "exclude" | undefined;
170
+ }
171
+ /** Creates a per-entity, pre-typed scope function. */
172
+ export declare function newScopeFn<T extends Entity, R extends Scope<T>>(entityType: string): ScopeFn<T, R>;
173
+ /** Returns true if `value` is one of our scope proxies. */
174
+ export declare function isScope<T extends Entity>(value: unknown): value is Scope<T>;
175
+ /** Resolves a scope proxy into ordered filter fragments plus collapsed settings. */
176
+ export declare function resolveScope<T extends Entity>(scope: Scope<T>): ResolvedScope<T>;
177
+ /**
178
+ * Returns true for find filters that select every row of the entity type, i.e. an empty `{}` filter
179
+ * or a scope that resolved to no fragments.
180
+ *
181
+ * Used by `em.findCount` and the count dataloader to short-circuit in-memory delete adjustments, which
182
+ * are only safe when the query has no `where`/`conditions` to evaluate created/deleted entities against.
183
+ */
184
+ export declare function isSelectAllFilter<T extends Entity>(where: FindFilter<T> | GraphQLFilterWithAlias<T>, conditions: ExpressionFilter | undefined): boolean;
185
+ //# sourceMappingURL=scopes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scopes.d.ts","sourceRoot":"","sources":["../src/scopes.ts"],"names":[],"mappings":"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"}