joist-core 2.1.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. package/build/ConditionBuilder.d.ts +1 -22
  2. package/build/ConditionBuilder.d.ts.map +1 -1
  3. package/build/ConditionBuilder.js +6 -72
  4. package/build/ConditionBuilder.js.map +1 -1
  5. package/build/EntityFilter.d.ts +2 -0
  6. package/build/EntityFilter.d.ts.map +1 -1
  7. package/build/EntityGraphQLFilter.d.ts +2 -0
  8. package/build/EntityGraphQLFilter.d.ts.map +1 -1
  9. package/build/EntityGraphQLFilter.js.map +1 -1
  10. package/build/EntityManager.d.ts +5 -0
  11. package/build/EntityManager.d.ts.map +1 -1
  12. package/build/EntityManager.js +59 -29
  13. package/build/EntityManager.js.map +1 -1
  14. package/build/EntityMetadata.d.ts +2 -0
  15. package/build/EntityMetadata.d.ts.map +1 -1
  16. package/build/EntityMetadata.js.map +1 -1
  17. package/build/InstanceData.d.ts +7 -1
  18. package/build/InstanceData.d.ts.map +1 -1
  19. package/build/InstanceData.js +36 -7
  20. package/build/InstanceData.js.map +1 -1
  21. package/build/IsLoadedCache.d.ts +1 -1
  22. package/build/IsLoadedCache.d.ts.map +1 -1
  23. package/build/IsLoadedCache.js +6 -1
  24. package/build/IsLoadedCache.js.map +1 -1
  25. package/build/JoinRows.d.ts +1 -1
  26. package/build/JoinRows.js +6 -1
  27. package/build/JoinRows.js.map +1 -1
  28. package/build/PluginManager.d.ts +12 -0
  29. package/build/PluginManager.d.ts.map +1 -1
  30. package/build/PluginManager.js +18 -2
  31. package/build/PluginManager.js.map +1 -1
  32. package/build/QueryParser.collectionJoins.d.ts +27 -0
  33. package/build/QueryParser.collectionJoins.d.ts.map +1 -0
  34. package/build/QueryParser.collectionJoins.js +460 -0
  35. package/build/QueryParser.collectionJoins.js.map +1 -0
  36. package/build/QueryParser.collectionJoins.test.d.ts +2 -0
  37. package/build/QueryParser.collectionJoins.test.d.ts.map +1 -0
  38. package/build/QueryParser.collectionJoins.test.js +772 -0
  39. package/build/QueryParser.collectionJoins.test.js.map +1 -0
  40. package/build/QueryParser.d.ts +62 -9
  41. package/build/QueryParser.d.ts.map +1 -1
  42. package/build/QueryParser.js +39 -33
  43. package/build/QueryParser.js.map +1 -1
  44. package/build/QueryParser.pruning.d.ts +4 -2
  45. package/build/QueryParser.pruning.d.ts.map +1 -1
  46. package/build/QueryParser.pruning.js +80 -10
  47. package/build/QueryParser.pruning.js.map +1 -1
  48. package/build/QueryParser.pruning.test.d.ts +2 -0
  49. package/build/QueryParser.pruning.test.d.ts.map +1 -0
  50. package/build/QueryParser.pruning.test.js +106 -0
  51. package/build/QueryParser.pruning.test.js.map +1 -0
  52. package/build/QueryVisitor.d.ts.map +1 -1
  53. package/build/QueryVisitor.js +22 -0
  54. package/build/QueryVisitor.js.map +1 -1
  55. package/build/ReactionsManager.js +2 -2
  56. package/build/batchloaders/BatchLoader.d.ts.map +1 -1
  57. package/build/batchloaders/BatchLoader.js +4 -1
  58. package/build/batchloaders/BatchLoader.js.map +1 -1
  59. package/build/batchloaders/manyToManyBatchLoader.js +3 -1
  60. package/build/batchloaders/manyToManyBatchLoader.js.map +1 -1
  61. package/build/batchloaders/recursiveM2mBatchLoader.d.ts.map +1 -1
  62. package/build/batchloaders/recursiveM2mBatchLoader.js +3 -1
  63. package/build/batchloaders/recursiveM2mBatchLoader.js.map +1 -1
  64. package/build/changes.d.ts.map +1 -1
  65. package/build/changes.js +1 -4
  66. package/build/changes.js.map +1 -1
  67. package/build/config.d.ts.map +1 -1
  68. package/build/config.js +18 -10
  69. package/build/config.js.map +1 -1
  70. package/build/configure.js +2 -2
  71. package/build/dataloaders/findCountDataLoader.js +2 -2
  72. package/build/dataloaders/findCountDataLoader.js.map +1 -1
  73. package/build/dataloaders/findDataLoader.d.ts.map +1 -1
  74. package/build/dataloaders/findDataLoader.js +0 -7
  75. package/build/dataloaders/findDataLoader.js.map +1 -1
  76. package/build/dataloaders/findIdsDataLoader.js +2 -2
  77. package/build/dataloaders/findIdsDataLoader.js.map +1 -1
  78. package/build/dataloaders/findOrCreateDataLoader.d.ts.map +1 -1
  79. package/build/dataloaders/findOrCreateDataLoader.js +6 -1
  80. package/build/dataloaders/findOrCreateDataLoader.js.map +1 -1
  81. package/build/defaults.d.ts.map +1 -1
  82. package/build/defaults.js +49 -42
  83. package/build/defaults.js.map +1 -1
  84. package/build/drivers/buildRawQuery.d.ts.map +1 -1
  85. package/build/drivers/buildRawQuery.js +3 -2
  86. package/build/drivers/buildRawQuery.js.map +1 -1
  87. package/build/drivers/buildUtils.d.ts +7 -2
  88. package/build/drivers/buildUtils.d.ts.map +1 -1
  89. package/build/drivers/buildUtils.js +14 -5
  90. package/build/drivers/buildUtils.js.map +1 -1
  91. package/build/fields.d.ts.map +1 -1
  92. package/build/fields.js +16 -7
  93. package/build/fields.js.map +1 -1
  94. package/build/index.d.ts +2 -1
  95. package/build/index.d.ts.map +1 -1
  96. package/build/index.js +7 -5
  97. package/build/index.js.map +1 -1
  98. package/build/json.d.ts +3 -3
  99. package/build/json.d.ts.map +1 -1
  100. package/build/json.js +4 -4
  101. package/build/json.js.map +1 -1
  102. package/build/loadHints.d.ts +4 -4
  103. package/build/loadHints.d.ts.map +1 -1
  104. package/build/loadLens.js +1 -1
  105. package/build/loadLens.js.map +1 -1
  106. package/build/preloading/JsonAggregatePreloader.js +6 -2
  107. package/build/preloading/JsonAggregatePreloader.js.map +1 -1
  108. package/build/reactiveHints.d.ts +24 -7
  109. package/build/reactiveHints.d.ts.map +1 -1
  110. package/build/reactiveHints.js +45 -28
  111. package/build/reactiveHints.js.map +1 -1
  112. package/build/relations/AbstractRelationImpl.d.ts +7 -2
  113. package/build/relations/AbstractRelationImpl.d.ts.map +1 -1
  114. package/build/relations/AbstractRelationImpl.js.map +1 -1
  115. package/build/relations/AsyncProperty.d.ts +36 -0
  116. package/build/relations/AsyncProperty.d.ts.map +1 -0
  117. package/build/relations/AsyncProperty.js +80 -0
  118. package/build/relations/AsyncProperty.js.map +1 -0
  119. package/build/relations/{ReactiveQueryField.d.ts → AsyncReactiveField.d.ts} +10 -10
  120. package/build/relations/AsyncReactiveField.d.ts.map +1 -0
  121. package/build/relations/{ReactiveQueryField.js → AsyncReactiveField.js} +19 -19
  122. package/build/relations/{ReactiveQueryField.js.map → AsyncReactiveField.js.map} +1 -1
  123. package/build/relations/ReactiveField.d.ts +7 -9
  124. package/build/relations/ReactiveField.d.ts.map +1 -1
  125. package/build/relations/ReactiveField.js +5 -10
  126. package/build/relations/ReactiveField.js.map +1 -1
  127. package/build/relations/ReactiveGetter.d.ts +5 -5
  128. package/build/relations/ReactiveGetter.d.ts.map +1 -1
  129. package/build/relations/ReactiveGetter.js +3 -3
  130. package/build/relations/ReactiveGetter.js.map +1 -1
  131. package/build/relations/ReactiveReference.d.ts +2 -2
  132. package/build/relations/ReactiveReference.d.ts.map +1 -1
  133. package/build/relations/ReactiveReference.js +100 -36
  134. package/build/relations/ReactiveReference.js.map +1 -1
  135. package/build/relations/{hasAsyncProperty.d.ts → hasProperty.d.ts} +12 -12
  136. package/build/relations/hasProperty.d.ts.map +1 -0
  137. package/build/relations/{hasAsyncProperty.js → hasProperty.js} +20 -20
  138. package/build/relations/hasProperty.js.map +1 -0
  139. package/build/relations/index.d.ts +3 -2
  140. package/build/relations/index.d.ts.map +1 -1
  141. package/build/relations/index.js +16 -11
  142. package/build/relations/index.js.map +1 -1
  143. package/build/resurrection.d.ts +10 -0
  144. package/build/resurrection.d.ts.map +1 -0
  145. package/build/resurrection.js +93 -0
  146. package/build/resurrection.js.map +1 -0
  147. package/build/rules.js +3 -3
  148. package/build/trusted.d.ts +1 -1
  149. package/build/trusted.d.ts.map +1 -1
  150. package/build/trusted.js +1 -1
  151. package/build/trusted.js.map +1 -1
  152. package/build/upsert.d.ts.map +1 -1
  153. package/build/upsert.js +26 -10
  154. package/build/upsert.js.map +1 -1
  155. package/build/withLoaded.js +5 -5
  156. package/build/withLoaded.js.map +1 -1
  157. package/package.json +9 -9
  158. package/build/relations/ReactiveQueryField.d.ts.map +0 -1
  159. package/build/relations/hasAsyncProperty.d.ts.map +0 -1
  160. package/build/relations/hasAsyncProperty.js.map +0 -1
@@ -1,9 +1,9 @@
1
1
  import { Entity } from "../Entity";
2
2
  import { LoadHint, Loaded } from "../loadHints";
3
3
  import { MaybeReactedPropertyEntity, Reacted, ReactiveHint } from "../reactiveHints";
4
- export declare const AsyncPropertyT: unique symbol;
5
- export interface AsyncProperty<T extends Entity, V> {
6
- [AsyncPropertyT]: T;
4
+ export declare const PropertyT: unique symbol;
5
+ export interface Property<T extends Entity, V> {
6
+ [PropertyT]: T;
7
7
  isLoaded: boolean;
8
8
  load(): Promise<V>;
9
9
  }
@@ -18,7 +18,7 @@ export interface LoadedProperty<T extends Entity, V> {
18
18
  * But if `someProperty` is used as a populate hint, then it can be accessed synchronously,
19
19
  * with `someProperty.get`.
20
20
  */
21
- export declare function hasAsyncProperty<T extends Entity, const H extends LoadHint<T>, V>(loadHint: H, fn: (entity: Loaded<T, H>) => V): AsyncProperty<T, V>;
21
+ export declare function hasProperty<T extends Entity, const H extends LoadHint<T>, V>(loadHint: H, fn: (entity: Loaded<T, H>) => V): Property<T, V>;
22
22
  /**
23
23
  * Creates a calculated derived value from a load hint + lambda.
24
24
  *
@@ -27,8 +27,8 @@ export declare function hasAsyncProperty<T extends Entity, const H extends LoadH
27
27
  * But if `someProperty` is used as a populate hint, then it can be accessed synchronously,
28
28
  * with `someProperty.get`.
29
29
  */
30
- export declare function hasReactiveAsyncProperty<T extends Entity, const H extends ReactiveHint<T>, V>(reactiveHint: H, fn: (entity: Reacted<T, H>) => MaybeReactedPropertyEntity<V>): AsyncProperty<T, V>;
31
- export declare class AsyncPropertyImpl<T extends Entity, H extends LoadHint<T>, V> implements AsyncProperty<T, V> {
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
+ export declare class PropertyImpl<T extends Entity, H extends LoadHint<T>, V> implements Property<T, V> {
32
32
  #private;
33
33
  private fn;
34
34
  private opts;
@@ -40,10 +40,10 @@ export declare class AsyncPropertyImpl<T extends Entity, H extends LoadHint<T>,
40
40
  get reactiveHint(): ReactiveHint<T> | undefined;
41
41
  get get(): V;
42
42
  get isLoaded(): boolean;
43
- [AsyncPropertyT]: T;
43
+ [PropertyT]: T;
44
44
  }
45
- /** Type guard utility for determining if an entity field is an AsyncProperty. */
46
- export declare function isAsyncProperty(maybeAsyncProperty: any): maybeAsyncProperty is AsyncProperty<any, any>;
47
- /** Type guard utility for determining if an entity field is a loaded AsyncProperty. */
48
- export declare function isLoadedAsyncProperty(maybeAsyncProperty: any): maybeAsyncProperty is AsyncProperty<any, any> & LoadedProperty<any, any>;
49
- //# sourceMappingURL=hasAsyncProperty.d.ts.map
45
+ /** Type guard utility for determining if an entity field is a Property. */
46
+ export declare function isProperty(maybeProperty: any): maybeProperty is Property<any, any>;
47
+ /** Type guard utility for determining if an entity field is a loaded Property. */
48
+ export declare function isLoadedProperty(maybeProperty: any): maybeProperty is Property<any, any> & LoadedProperty<any, any>;
49
+ //# sourceMappingURL=hasProperty.d.ts.map
@@ -0,0 +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,16 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AsyncPropertyImpl = exports.AsyncPropertyT = void 0;
4
- exports.hasAsyncProperty = hasAsyncProperty;
5
- exports.hasReactiveAsyncProperty = hasReactiveAsyncProperty;
6
- exports.isAsyncProperty = isAsyncProperty;
7
- exports.isLoadedAsyncProperty = isLoadedAsyncProperty;
3
+ exports.PropertyImpl = exports.PropertyT = void 0;
4
+ exports.hasProperty = hasProperty;
5
+ exports.hasReactiveProperty = hasReactiveProperty;
6
+ exports.isProperty = isProperty;
7
+ exports.isLoadedProperty = isLoadedProperty;
8
8
  const EntityMetadata_1 = require("../EntityMetadata");
9
9
  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
- exports.AsyncPropertyT = Symbol();
13
+ exports.PropertyT = Symbol();
14
14
  /**
15
15
  * Creates a calculated derived value from a load hint + lambda.
16
16
  *
@@ -19,9 +19,9 @@ exports.AsyncPropertyT = Symbol();
19
19
  * But if `someProperty` is used as a populate hint, then it can be accessed synchronously,
20
20
  * with `someProperty.get`.
21
21
  */
22
- function hasAsyncProperty(loadHint, fn) {
22
+ function hasProperty(loadHint, fn) {
23
23
  return (0, newEntity_1.lazyField)((entity) => {
24
- return new AsyncPropertyImpl(entity, loadHint, fn);
24
+ return new PropertyImpl(entity, loadHint, fn);
25
25
  });
26
26
  }
27
27
  /**
@@ -32,12 +32,12 @@ function hasAsyncProperty(loadHint, fn) {
32
32
  * But if `someProperty` is used as a populate hint, then it can be accessed synchronously,
33
33
  * with `someProperty.get`.
34
34
  */
35
- function hasReactiveAsyncProperty(reactiveHint, fn) {
35
+ function hasReactiveProperty(reactiveHint, fn) {
36
36
  return (0, newEntity_1.lazyField)((entity) => {
37
- return new AsyncPropertyImpl(entity, reactiveHint, fn, { isReactive: true });
37
+ return new PropertyImpl(entity, reactiveHint, fn, { isReactive: true });
38
38
  });
39
39
  }
40
- class AsyncPropertyImpl {
40
+ class PropertyImpl {
41
41
  fn;
42
42
  opts;
43
43
  // We'll probe for loaded if undefined
@@ -84,15 +84,15 @@ class AsyncPropertyImpl {
84
84
  }
85
85
  return !!this.#loaded;
86
86
  }
87
- [exports.AsyncPropertyT] = undefined;
87
+ [exports.PropertyT] = undefined;
88
88
  }
89
- exports.AsyncPropertyImpl = AsyncPropertyImpl;
90
- /** Type guard utility for determining if an entity field is an AsyncProperty. */
91
- function isAsyncProperty(maybeAsyncProperty) {
92
- return maybeAsyncProperty instanceof AsyncPropertyImpl;
89
+ exports.PropertyImpl = PropertyImpl;
90
+ /** Type guard utility for determining if an entity field is a Property. */
91
+ function isProperty(maybeProperty) {
92
+ return maybeProperty instanceof PropertyImpl;
93
93
  }
94
- /** Type guard utility for determining if an entity field is a loaded AsyncProperty. */
95
- function isLoadedAsyncProperty(maybeAsyncProperty) {
96
- return isAsyncProperty(maybeAsyncProperty) && maybeAsyncProperty.isLoaded;
94
+ /** Type guard utility for determining if an entity field is a loaded Property. */
95
+ function isLoadedProperty(maybeProperty) {
96
+ return isProperty(maybeProperty) && maybeProperty.isLoaded;
97
97
  }
98
- //# sourceMappingURL=hasAsyncProperty.js.map
98
+ //# sourceMappingURL=hasProperty.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hasProperty.js","sourceRoot":"","sources":["../../src/relations/hasProperty.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,8 @@ export { Collection, LoadedCollection, isCollection, isLoadedCollection } from "
2
2
  export { CustomCollection, hasCustomCollection } from "./CustomCollection";
3
3
  export { CustomReference, hasCustomReference } from "./CustomReference";
4
4
  export { AsyncMethod, LoadedMethod, hasAsyncMethod } from "./hasAsyncMethod";
5
- export { AsyncProperty, AsyncPropertyImpl, LoadedProperty, hasAsyncProperty, hasReactiveAsyncProperty, isAsyncProperty, isLoadedAsyncProperty, } from "./hasAsyncProperty";
5
+ export { LoadedProperty, Property, PropertyImpl, hasProperty, hasReactiveProperty, isLoadedProperty, isProperty, } from "./hasProperty";
6
+ export { AsyncProperty, AsyncPropertyImpl, hasAsyncProperty, isAsyncProperty, isLoadedAsyncProperty, } from "./AsyncProperty";
6
7
  export { hasManyDerived } from "./hasManyDerived";
7
8
  export { hasManyThrough } from "./hasManyThrough";
8
9
  export { hasOneDerived } from "./hasOneDerived";
@@ -19,7 +20,7 @@ export { ReactiveField, hasReactiveField, isReactiveField } from "./ReactiveFiel
19
20
  export { ReactiveGetter, hasReactiveGetter, isReactiveGetter } from "./ReactiveGetter";
20
21
  export { ReactiveManyToMany, ReactiveManyToManyImpl, hasReactiveManyToMany, isReactiveManyToMany, } from "./ReactiveManyToMany";
21
22
  export { ReactiveManyToManyOtherSide, ReactiveManyToManyOtherSideImpl, hasReactiveManyToManyOtherSide, isReactiveManyToManyOtherSide, } from "./ReactiveManyToManyOtherSide";
22
- export { hasReactiveQueryField, isReactiveQueryField } from "./ReactiveQueryField";
23
+ export { hasAsyncReactiveField, isAsyncReactiveField } from "./AsyncReactiveField";
23
24
  export { ReactiveReference, ReactiveReferenceImpl, hasReactiveReference, isReactiveReference, } from "./ReactiveReference";
24
25
  export { LoadedReadOnlyCollection, ReadOnlyCollection, isLoadedReadOnlyCollection, isReadOnlyCollection, } from "./ReadOnlyCollection";
25
26
  export { RecursiveCycleError, hasRecursiveChildren, hasRecursiveM2m, hasRecursiveParents } from "./RecursiveCollection";
@@ -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,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,wBAAwB,EACxB,eAAe,EACf,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAC5B,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,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,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isLoadedReadOnlyCollection = exports.isReactiveReference = exports.hasReactiveReference = exports.ReactiveReferenceImpl = exports.isReactiveQueryField = exports.hasReactiveQueryField = 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.hasReactiveAsyncProperty = exports.hasAsyncProperty = exports.AsyncPropertyImpl = 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 = void 0;
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;
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; } });
@@ -13,12 +13,17 @@ Object.defineProperty(exports, "CustomReference", { enumerable: true, get: funct
13
13
  Object.defineProperty(exports, "hasCustomReference", { enumerable: true, get: function () { return CustomReference_1.hasCustomReference; } });
14
14
  var hasAsyncMethod_1 = require("./hasAsyncMethod");
15
15
  Object.defineProperty(exports, "hasAsyncMethod", { enumerable: true, get: function () { return hasAsyncMethod_1.hasAsyncMethod; } });
16
- var hasAsyncProperty_1 = require("./hasAsyncProperty");
17
- Object.defineProperty(exports, "AsyncPropertyImpl", { enumerable: true, get: function () { return hasAsyncProperty_1.AsyncPropertyImpl; } });
18
- Object.defineProperty(exports, "hasAsyncProperty", { enumerable: true, get: function () { return hasAsyncProperty_1.hasAsyncProperty; } });
19
- Object.defineProperty(exports, "hasReactiveAsyncProperty", { enumerable: true, get: function () { return hasAsyncProperty_1.hasReactiveAsyncProperty; } });
20
- Object.defineProperty(exports, "isAsyncProperty", { enumerable: true, get: function () { return hasAsyncProperty_1.isAsyncProperty; } });
21
- Object.defineProperty(exports, "isLoadedAsyncProperty", { enumerable: true, get: function () { return hasAsyncProperty_1.isLoadedAsyncProperty; } });
16
+ var hasProperty_1 = require("./hasProperty");
17
+ Object.defineProperty(exports, "PropertyImpl", { enumerable: true, get: function () { return hasProperty_1.PropertyImpl; } });
18
+ Object.defineProperty(exports, "hasProperty", { enumerable: true, get: function () { return hasProperty_1.hasProperty; } });
19
+ Object.defineProperty(exports, "hasReactiveProperty", { enumerable: true, get: function () { return hasProperty_1.hasReactiveProperty; } });
20
+ Object.defineProperty(exports, "isLoadedProperty", { enumerable: true, get: function () { return hasProperty_1.isLoadedProperty; } });
21
+ Object.defineProperty(exports, "isProperty", { enumerable: true, get: function () { return hasProperty_1.isProperty; } });
22
+ var AsyncProperty_1 = require("./AsyncProperty");
23
+ Object.defineProperty(exports, "AsyncPropertyImpl", { enumerable: true, get: function () { return AsyncProperty_1.AsyncPropertyImpl; } });
24
+ Object.defineProperty(exports, "hasAsyncProperty", { enumerable: true, get: function () { return AsyncProperty_1.hasAsyncProperty; } });
25
+ Object.defineProperty(exports, "isAsyncProperty", { enumerable: true, get: function () { return AsyncProperty_1.isAsyncProperty; } });
26
+ Object.defineProperty(exports, "isLoadedAsyncProperty", { enumerable: true, get: function () { return AsyncProperty_1.isLoadedAsyncProperty; } });
22
27
  var hasManyDerived_1 = require("./hasManyDerived");
23
28
  Object.defineProperty(exports, "hasManyDerived", { enumerable: true, get: function () { return hasManyDerived_1.hasManyDerived; } });
24
29
  var hasManyThrough_1 = require("./hasManyThrough");
@@ -66,9 +71,9 @@ var ReactiveManyToManyOtherSide_1 = require("./ReactiveManyToManyOtherSide");
66
71
  Object.defineProperty(exports, "ReactiveManyToManyOtherSideImpl", { enumerable: true, get: function () { return ReactiveManyToManyOtherSide_1.ReactiveManyToManyOtherSideImpl; } });
67
72
  Object.defineProperty(exports, "hasReactiveManyToManyOtherSide", { enumerable: true, get: function () { return ReactiveManyToManyOtherSide_1.hasReactiveManyToManyOtherSide; } });
68
73
  Object.defineProperty(exports, "isReactiveManyToManyOtherSide", { enumerable: true, get: function () { return ReactiveManyToManyOtherSide_1.isReactiveManyToManyOtherSide; } });
69
- var ReactiveQueryField_1 = require("./ReactiveQueryField");
70
- Object.defineProperty(exports, "hasReactiveQueryField", { enumerable: true, get: function () { return ReactiveQueryField_1.hasReactiveQueryField; } });
71
- Object.defineProperty(exports, "isReactiveQueryField", { enumerable: true, get: function () { return ReactiveQueryField_1.isReactiveQueryField; } });
74
+ var AsyncReactiveField_1 = require("./AsyncReactiveField");
75
+ Object.defineProperty(exports, "hasAsyncReactiveField", { enumerable: true, get: function () { return AsyncReactiveField_1.hasAsyncReactiveField; } });
76
+ Object.defineProperty(exports, "isAsyncReactiveField", { enumerable: true, get: function () { return AsyncReactiveField_1.isAsyncReactiveField; } });
72
77
  var ReactiveReference_1 = require("./ReactiveReference");
73
78
  Object.defineProperty(exports, "ReactiveReferenceImpl", { enumerable: true, get: function () { return ReactiveReference_1.ReactiveReferenceImpl; } });
74
79
  Object.defineProperty(exports, "hasReactiveReference", { enumerable: true, get: function () { return ReactiveReference_1.hasReactiveReference; } });
@@ -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,uDAQ4B;AAN1B,qHAAA,iBAAiB,OAAA;AAEjB,oHAAA,gBAAgB,OAAA;AAChB,4HAAA,wBAAwB,OAAA;AACxB,mHAAA,eAAe,OAAA;AACf,yHAAA,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,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"}
@@ -0,0 +1,10 @@
1
+ import { Entity } from "./Entity";
2
+ import { EntityManager, MaybeAbstractEntityConstructor } from "./EntityManager";
3
+ /** Clears the soft-delete marker so a matched entity is updated instead of recreated. */
4
+ export declare function resurrectIfSoftDeleted(entity: Entity): void;
5
+ /**
6
+ * Finds an existing entity when the input fully covers one configured `uniqueBy` candidate.
7
+ * I.e. with `uniqueBy = [["email"], ["author", "title"]]`, `{ email }` or `{ authorId, title }` can lookup an existing row.
8
+ */
9
+ export declare function findExistingIfUniqueBy<T extends Entity>(em: EntityManager<any, any, any>, constructor: MaybeAbstractEntityConstructor<T>, input: object): Promise<T | undefined>;
10
+ //# sourceMappingURL=resurrection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resurrection.d.ts","sourceRoot":"","sources":["../src/resurrection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAY,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,8BAA8B,EAAgB,MAAM,iBAAiB,CAAC;AAI9F,yFAAyF;AACzF,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAK3D;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,CAAC,SAAS,MAAM,EAC3D,EAAE,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAChC,WAAW,EAAE,8BAA8B,CAAC,CAAC,CAAC,EAC9C,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC,CAyBxB"}
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resurrectIfSoftDeleted = resurrectIfSoftDeleted;
4
+ exports.findExistingIfUniqueBy = findExistingIfUniqueBy;
5
+ const Entity_1 = require("./Entity");
6
+ const EntityManager_1 = require("./EntityManager");
7
+ const EntityMetadata_1 = require("./EntityMetadata");
8
+ const fields_1 = require("./fields");
9
+ /** Clears the soft-delete marker so a matched entity is updated instead of recreated. */
10
+ function resurrectIfSoftDeleted(entity) {
11
+ const deletedAt = (0, EntityMetadata_1.getBaseMeta)((0, EntityMetadata_1.getMetadata)(entity)).timestampFields?.deletedAt;
12
+ if (deletedAt && entity.isSoftDeletedEntity) {
13
+ (0, fields_1.setField)(entity, deletedAt, undefined);
14
+ }
15
+ }
16
+ /**
17
+ * Finds an existing entity when the input fully covers one configured `uniqueBy` candidate.
18
+ * I.e. with `uniqueBy = [["email"], ["author", "title"]]`, `{ email }` or `{ authorId, title }` can lookup an existing row.
19
+ */
20
+ async function findExistingIfUniqueBy(em, constructor, input) {
21
+ const meta = (0, EntityMetadata_1.getMetadata)(constructor);
22
+ const candidates = getUniqueByCandidates(meta, input);
23
+ for (const where of candidates) {
24
+ const inMemory = onlySoftDeleted(em.filterEntities(constructor, where));
25
+ if (inMemory.length > 1) {
26
+ throw new EntityManager_1.TooManyError(`Found more than one existing ${meta.type} with ${whereAsString(where)}`);
27
+ }
28
+ else if (inMemory.length === 1) {
29
+ resurrectIfSoftDeleted(inMemory[0]);
30
+ return inMemory[0];
31
+ }
32
+ // I.e. `{ publisher: newPublisherEntity }` cannot already exist in the database, so skip the `em.find`.
33
+ const hasNewEntityParam = Object.values(where).some((value) => (0, Entity_1.isEntity)(value) && value.isNewEntity);
34
+ if (hasNewEntityParam)
35
+ continue;
36
+ const entities = onlySoftDeleted(await em.find(constructor, where, { softDeletes: "include" }));
37
+ if (entities.length > 1) {
38
+ throw new EntityManager_1.TooManyError(`Found more than one existing ${meta.type} with ${whereAsString(where)}`);
39
+ }
40
+ else if (entities.length === 1) {
41
+ resurrectIfSoftDeleted(entities[0]);
42
+ return entities[0];
43
+ }
44
+ }
45
+ return undefined;
46
+ }
47
+ /** Returns soft-deleted entities that are safe for upsert to resurrect. */
48
+ function onlySoftDeleted(entities) {
49
+ return entities.filter((entity) => !entity.isDeletedEntity && entity.isSoftDeletedEntity);
50
+ }
51
+ /** Builds pushdown-safe where clauses from configured identity fields. */
52
+ function getUniqueByCandidates(meta, input) {
53
+ return (meta.uniqueBy ?? (0, EntityMetadata_1.getBaseMeta)(meta).uniqueBy ?? []).flatMap((fields) => {
54
+ const where = {};
55
+ for (const fieldName of fields) {
56
+ const field = meta.allFields[fieldName];
57
+ if (!field || !isQueryableIdentityField(field))
58
+ return [];
59
+ const value = getIdentityValue(field, input);
60
+ if (value === undefined || value === null)
61
+ return [];
62
+ where[field.fieldName] = value;
63
+ }
64
+ return [where];
65
+ });
66
+ }
67
+ /** Returns the identity value from the input. */
68
+ function getIdentityValue(field, input) {
69
+ if (Object.hasOwn(input, field.fieldName)) {
70
+ return normalizeIdentityValue(input[field.fieldName]);
71
+ }
72
+ if (field.fieldIdName && Object.hasOwn(input, field.fieldIdName)) {
73
+ return normalizeIdentityValue(input[field.fieldIdName]);
74
+ }
75
+ return undefined;
76
+ }
77
+ /** Returns raw ids from relation inputs, i.e. `{ publisher: { id: "p:1" } }` becomes `{ publisher: "p:1" }`. */
78
+ function normalizeIdentityValue(value) {
79
+ if (!(0, Entity_1.isEntity)(value) && value && typeof value === "object" && Object.hasOwn(value, "id")) {
80
+ return value.id;
81
+ }
82
+ return value;
83
+ }
84
+ /** Returns true if Joist can push this identity field into a flat find clause. */
85
+ function isQueryableIdentityField(field) {
86
+ return field.kind === "primitive" || field.kind === "enum" || field.kind === "m2o" || field.kind === "poly";
87
+ }
88
+ function whereAsString(where) {
89
+ return Object.entries(where)
90
+ .map(([key, value]) => `${key}=${value}`)
91
+ .join(", ");
92
+ }
93
+ //# sourceMappingURL=resurrection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resurrection.js","sourceRoot":"","sources":["../src/resurrection.ts"],"names":[],"mappings":"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"}
package/build/rules.js CHANGED
@@ -68,11 +68,11 @@ function newRequiredRule(key, opts = {}) {
68
68
  return ruleWithOpts(opts, (entity) => {
69
69
  // Use getField so that we peer through relations
70
70
  if ((0, fields_1.getField)(entity, key) === undefined) {
71
- // Sanity check for ReactiveQueryFields--this should be cheap to just always do; alternatively we could
71
+ // Sanity check for AsyncReactiveFields--this should be cheap to just always do; alternatively we could
72
72
  // have a RQF-specific `rqfRequiredRule` so that other `newRequiredRule` users don't pay the cost of these
73
73
  // two `if` checks`.
74
- if (entity.isNewEntity && (0, relations_1.isReactiveQueryField)(entity[key])) {
75
- throw new Error(`ReactiveQueryField ${entity.constructor.name}.${key} must have a default value, either in the database or with config.setDefault (see the 4th step in https://joist-orm.io/modeling/reactive-fields/#reactive-query-fields.`);
74
+ if (entity.isNewEntity && (0, relations_1.isAsyncReactiveField)(entity[key])) {
75
+ throw new Error(`AsyncReactiveField ${entity.constructor.name}.${key} must have a default value, either in the database or with config.setDefault (see the 4th step in https://joist-orm.io/modeling/reactive-fields/#async-reactive-fields.`);
76
76
  }
77
77
  return { field: key, code: ValidationCode.required, message: `${key} is required` };
78
78
  }
@@ -1,4 +1,4 @@
1
- /** Returns true if we're inside a trusted context (reactive field recalculation or validation). */
1
+ /** Returns true if we're inside a trusted context, i.e. hooks, reactions, validations, or defaults. */
2
2
  export declare function isInTrustedContext(): boolean;
3
3
  /** Runs the given function within a trusted context. */
4
4
  export declare function runInTrustedContext<T>(fn: () => T): T;
@@ -1 +1 @@
1
- {"version":3,"file":"trusted.d.ts","sourceRoot":"","sources":["../src/trusted.ts"],"names":[],"mappings":"AAIA,mGAAmG;AACnG,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAED,wDAAwD;AACxD,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAErD"}
1
+ {"version":3,"file":"trusted.d.ts","sourceRoot":"","sources":["../src/trusted.ts"],"names":[],"mappings":"AAIA,uGAAuG;AACvG,wBAAgB,kBAAkB,IAAI,OAAO,CAE5C;AAED,wDAAwD;AACxD,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAErD"}
package/build/trusted.js CHANGED
@@ -4,7 +4,7 @@ exports.isInTrustedContext = isInTrustedContext;
4
4
  exports.runInTrustedContext = runInTrustedContext;
5
5
  const async_hooks_1 = require("async_hooks");
6
6
  const trustedContext = new async_hooks_1.AsyncLocalStorage();
7
- /** Returns true if we're inside a trusted context (reactive field recalculation or validation). */
7
+ /** Returns true if we're inside a trusted context, i.e. hooks, reactions, validations, or defaults. */
8
8
  function isInTrustedContext() {
9
9
  return trustedContext.getStore() === true;
10
10
  }
@@ -1 +1 @@
1
- {"version":3,"file":"trusted.js","sourceRoot":"","sources":["../src/trusted.ts"],"names":[],"mappings":";;AAKA,gDAEC;AAGD,kDAEC;AAZD,6CAAgD;AAEhD,MAAM,cAAc,GAAG,IAAI,+BAAiB,EAAW,CAAC;AAExD,mGAAmG;AACnG,SAAgB,kBAAkB;IAChC,OAAO,cAAc,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC;AAC5C,CAAC;AAED,wDAAwD;AACxD,SAAgB,mBAAmB,CAAI,EAAW;IAChD,OAAO,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"trusted.js","sourceRoot":"","sources":["../src/trusted.ts"],"names":[],"mappings":";;AAKA,gDAEC;AAGD,kDAEC;AAZD,6CAAgD;AAEhD,MAAM,cAAc,GAAG,IAAI,+BAAiB,EAAW,CAAC;AAExD,uGAAuG;AACvG,SAAgB,kBAAkB;IAChC,OAAO,cAAc,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC;AAC5C,CAAC;AAED,wDAAwD;AACxD,SAAgB,mBAAmB,CAAI,EAAW;IAChD,OAAO,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACtC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"upsert.d.ts","sourceRoot":"","sources":["../src/upsert.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAY,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,8BAA8B,EAAS,MAAM,iBAAiB,CAAC;AAE7F,OAAO,EACL,aAAa,EAMd,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAW,MAAM,SAAS,CAAC;AAEnD;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,MAAM,IAAI;IAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;CAAE,GAAG,yCAAyC,CACnH,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CACvC,GACC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAEd,8DAA8D;AAC9D,KAAK,eAAe,GAAG;IACrB,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,EAAE,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,aAAa,CAAC;CACtD,CAAC;AAEF,2CAA2C;AAC3C,KAAK,UAAU,GAAG;IAChB,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CACzB,CAAC;AAEF,KAAK,yCAAyC,CAAC,CAAC,IAAI;KACjD,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,eAAe,CAAC,MAAM,CAAC,CAAC,GACjD,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GACtB,CAAC,SAAS,MAAM,GACd,KAAK,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GACpE,CAAC,CAAC,CAAC,CAAC,GACN,CAAC,SAAS,MAAM,GACd,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GACxD,CAAC,CAAC,CAAC,CAAC,GACR,CAAC,CAAC,CAAC,CAAC;CACT,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAmM3G;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAC,CAAC,SAAS,MAAM,EAC3C,EAAE,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAChC,WAAW,EAAE,8BAA8B,CAAC,CAAC,CAAC,EAC9C,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAC1B,OAAO,CAAC,CAAC,CAAC,CAaZ"}
1
+ {"version":3,"file":"upsert.d.ts","sourceRoot":"","sources":["../src/upsert.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAY,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,IAAI,EAAS,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AAE7F,OAAO,EAIL,aAAa,EAGd,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAW,MAAM,SAAS,CAAC;AAEnD;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,MAAM,IAAI;IAAE,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;CAAE,GAAG,yCAAyC,CACnH,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CACvC,GACC,QAAQ,CAAC,CAAC,CAAC,CAAC;AAEd,8DAA8D;AAC9D,KAAK,eAAe,GAAG;IACrB,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,EAAE,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,aAAa,CAAC;CACtD,CAAC;AAEF,2CAA2C;AAC3C,KAAK,UAAU,GAAG;IAChB,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CACzB,CAAC;AAEF,KAAK,yCAAyC,CAAC,CAAC,IAAI;KACjD,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,eAAe,CAAC,MAAM,CAAC,CAAC,GACjD,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GACtB,CAAC,SAAS,MAAM,GACd,KAAK,CAAC,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GACpE,CAAC,CAAC,CAAC,CAAC,GACN,CAAC,SAAS,MAAM,GACd,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GACxD,CAAC,CAAC,CAAC,CAAC,GACR,CAAC,CAAC,CAAC,CAAC;CACT,CAAC;AAEF;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAmM3G;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAC,CAAC,SAAS,MAAM,EAC3C,EAAE,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAChC,WAAW,EAAE,8BAA8B,CAAC,CAAC,CAAC,EAC9C,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAC1B,OAAO,CAAC,CAAC,CAAC,CAcZ"}
package/build/upsert.js CHANGED
@@ -8,6 +8,7 @@ const Entity_1 = require("./Entity");
8
8
  const EntityManager_1 = require("./EntityManager");
9
9
  const EntityMetadata_1 = require("./EntityMetadata");
10
10
  const index_1 = require("./index");
11
+ const resurrection_1 = require("./resurrection");
11
12
  const utils_1 = require("./utils");
12
13
  /**
13
14
  * A utility function to do partial-update style updates.
@@ -148,7 +149,7 @@ async function updatePartial(entity, input) {
148
149
  await Promise.all(values.map(async (value) => {
149
150
  const [, , op] = getCollectionMarkers(field, value);
150
151
  if (op === "delete") {
151
- const other = await upsert(em, otherMeta.cstr, value);
152
+ const other = await upsert(em, otherMeta.cstr, withOwnerField(field, value, entity));
152
153
  // We need to check if this is a soft-deletable entity, and if so, we will soft-delete it.
153
154
  if (maybeSoftDelete) {
154
155
  const serde = otherMeta.fields[maybeSoftDelete].serde;
@@ -160,11 +161,11 @@ async function updatePartial(entity, input) {
160
161
  }
161
162
  }
162
163
  else if (op === "remove") {
163
- const other = await upsert(em, otherMeta.cstr, value);
164
+ const other = await upsert(em, otherMeta.cstr, withOwnerField(field, value, entity));
164
165
  current.remove(other);
165
166
  }
166
167
  else if (op === "include") {
167
- const other = await upsert(em, otherMeta.cstr, value);
168
+ const other = await upsert(em, otherMeta.cstr, withOwnerField(field, value, entity));
168
169
  current.add(other);
169
170
  }
170
171
  else if (op === "incremental") {
@@ -193,7 +194,7 @@ async function updatePartial(entity, input) {
193
194
  else {
194
195
  // Look for `delete: true/false` and `remove: true/false` markers
195
196
  const [deleteMarker, removeMarker] = getCollectionMarkers(field, value);
196
- const other = await upsert(em, field.otherMetadata().cstr, value);
197
+ const other = await upsert(em, field.otherMetadata().cstr, withOwnerField(field, value, entity));
197
198
  if (deleteMarker) {
198
199
  // if (maybeSoftDelete) {
199
200
  // const serde = meta.fields[maybeSoftDelete].serde as TimestampSerde<unknown>;
@@ -226,18 +227,33 @@ async function updatePartial(entity, input) {
226
227
  */
227
228
  async function upsert(em, constructor, input) {
228
229
  const { id, ...rest } = input;
229
- const isNew = id === null || id === undefined;
230
- const entity = isNew
231
- ? // asConcreteCstr is not actually safe but for now we rely on our cstr runtime check to catch this
232
- em.createPartial((0, index_1.asConcreteCstr)(constructor), {})
233
- : await em.load(constructor, id);
230
+ const entity = id !== null && id !== undefined
231
+ ? await em.load(constructor, id)
232
+ : // Look for an existing entity we could resurrect
233
+ ((id === undefined ? await (0, resurrection_1.findExistingIfUniqueBy)(em, constructor, rest) : undefined) ??
234
+ em.createPartial((0, index_1.asConcreteCstr)(constructor), {}));
234
235
  await updatePartial(entity, rest);
235
236
  // Do this manually since we're not going through setOpts anymore
236
- if (isNew) {
237
+ if (entity.isNewEntity) {
237
238
  (0, defaults_1.setSyncDefaults)(entity);
238
239
  }
239
240
  return entity;
240
241
  }
242
+ /**
243
+ * Adds the o2m owner field so child resurrection can find rows whose `uniqueBy` includes their parent.
244
+ * I.e. upserting `Author.books: [{ title: "b1" }]` should lookup `Book.uniqueBy = [["author", "title"]]`.
245
+ */
246
+ function withOwnerField(field, value, owner) {
247
+ if (field.kind !== "o2m" || !(0, joist_utils_1.isPlainObject)(value))
248
+ return value;
249
+ const ownerField = field.otherFieldName;
250
+ const ownerFieldId = field.otherMetadata().allFields[ownerField]?.fieldIdName;
251
+ if (Object.hasOwn(value, ownerField) || (ownerFieldId && Object.hasOwn(value, ownerFieldId)))
252
+ return value;
253
+ if (ownerFieldId && !owner.isNewEntity)
254
+ return { ...value, [ownerFieldId]: owner.id };
255
+ return { ...value, [ownerField]: owner };
256
+ }
241
257
  function getCollectionMarkers(field, value) {
242
258
  const allowDelete = !field.otherMetadata().fields["delete"];
243
259
  const allowRemove = !field.otherMetadata().fields["remove"];
@@ -1 +1 @@
1
- {"version":3,"file":"upsert.js","sourceRoot":"","sources":["../src/upsert.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upsert.js","sourceRoot":"","sources":["../src/upsert.ts"],"names":[],"mappings":"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"}
@@ -5,22 +5,22 @@ exports.withLoaded = withLoaded;
5
5
  exports.ensureWithLoaded = ensureWithLoaded;
6
6
  const loadHints_1 = require("./loadHints");
7
7
  const relations_1 = require("./relations");
8
- const ReactiveQueryField_1 = require("./relations/ReactiveQueryField");
8
+ const AsyncReactiveField_1 = require("./relations/AsyncReactiveField");
9
9
  const utils_1 = require("./utils");
10
10
  function withLoaded(loadedOrPromise) {
11
11
  return (0, utils_1.maybePromiseThen)(loadedOrPromise, (loaded) => new Proxy(loaded, {
12
12
  get: (target, prop) => {
13
13
  const value = target[prop];
14
14
  if ((0, relations_1.isRelation)(value) ||
15
- (0, relations_1.isAsyncProperty)(value) ||
15
+ (0, relations_1.isProperty)(value) ||
16
16
  (0, relations_1.isReactiveField)(value) ||
17
17
  (0, relations_1.isReactiveGetter)(value) ||
18
- (0, relations_1.isReactiveQueryField)(value)) {
18
+ (0, relations_1.isAsyncReactiveField)(value)) {
19
19
  return (0, relations_1.isLoadedReference)(value) ||
20
20
  (0, relations_1.isLoadedCollection)(value) ||
21
- (0, relations_1.isLoadedAsyncProperty)(value) ||
21
+ (0, relations_1.isLoadedProperty)(value) ||
22
22
  (0, relations_1.isReactiveField)(value) ||
23
- (0, ReactiveQueryField_1.isLoadedReactiveQueryField)(value) ||
23
+ (0, AsyncReactiveField_1.isLoadedAsyncReactiveField)(value) ||
24
24
  (0, relations_1.isReactiveGetter)(value)
25
25
  ? value.get
26
26
  : (0, utils_1.fail)(`${target}.${String(prop)} is not loaded`);
@@ -1 +1 @@
1
- {"version":3,"file":"withLoaded.js","sourceRoot":"","sources":["../src/withLoaded.ts"],"names":[],"mappings":";;;AAmEA,gCAgCC;AAED,4CAMC;AA1GD,2CAA6D;AAC7D,2CAcqB;AACrB,uEAA4E;AAC5E,mCAA+D;AAiD/D,SAAgB,UAAU,CACxB,eAAoC;IAEpC,OAAO,IAAA,wBAAgB,EACrB,eAAe,EACf,CAAC,MAAM,EAAE,EAAE,CACT,IAAI,KAAK,CAAC,MAAM,EAAE;QAChB,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;YACpB,MAAM,KAAK,GAAS,MAAc,CAAC,IAAI,CAAC,CAAC;YACzC,IACE,IAAA,sBAAU,EAAC,KAAK,CAAC;gBACjB,IAAA,2BAAe,EAAC,KAAK,CAAC;gBACtB,IAAA,2BAAe,EAAC,KAAK,CAAC;gBACtB,IAAA,4BAAgB,EAAC,KAAK,CAAC;gBACvB,IAAA,gCAAoB,EAAC,KAAK,CAAC,EAC3B,CAAC;gBACD,OAAO,IAAA,6BAAiB,EAAC,KAAK,CAAC;oBAC7B,IAAA,8BAAkB,EAAC,KAAK,CAAC;oBACzB,IAAA,iCAAqB,EAAC,KAAK,CAAC;oBAC5B,IAAA,2BAAe,EAAC,KAAK,CAAC;oBACtB,IAAA,+CAA0B,EAAC,KAAK,CAAC;oBACjC,IAAA,4BAAgB,EAAC,KAAK,CAAC;oBACvB,CAAC,CAAC,KAAK,CAAC,GAAG;oBACX,CAAC,CAAC,IAAA,YAAI,EAAC,GAAG,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACtD,CAAC;iBAAM,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;gBAC5C,OAAO,KAAK,CAAC,GAAG,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACN,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;KACF,CAAwB,CAC5B,CAAC;AACJ,CAAC;AAED,SAAgB,gBAAgB,CAC9B,MAAS,EACT,IAAO;IAEP,IAAA,wBAAY,EAAO,MAAM,EAAE,IAAI,CAAC,CAAC;IACjC,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAa,eAAe;IACN;IAApB,YAAoB,KAAU;QAAV,UAAK,GAAL,KAAK,CAAK;IAAG,CAAC;IAElC,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;CACF;AAdD,0CAcC"}
1
+ {"version":3,"file":"withLoaded.js","sourceRoot":"","sources":["../src/withLoaded.ts"],"names":[],"mappings":";;;AAmEA,gCAgCC;AAED,4CAMC;AA1GD,2CAA6D;AAC7D,2CAcqB;AACrB,uEAA4E;AAC5E,mCAA+D;AAiD/D,SAAgB,UAAU,CACxB,eAAoC;IAEpC,OAAO,IAAA,wBAAgB,EACrB,eAAe,EACf,CAAC,MAAM,EAAE,EAAE,CACT,IAAI,KAAK,CAAC,MAAM,EAAE;QAChB,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;YACpB,MAAM,KAAK,GAAS,MAAc,CAAC,IAAI,CAAC,CAAC;YACzC,IACE,IAAA,sBAAU,EAAC,KAAK,CAAC;gBACjB,IAAA,sBAAU,EAAC,KAAK,CAAC;gBACjB,IAAA,2BAAe,EAAC,KAAK,CAAC;gBACtB,IAAA,4BAAgB,EAAC,KAAK,CAAC;gBACvB,IAAA,gCAAoB,EAAC,KAAK,CAAC,EAC3B,CAAC;gBACD,OAAO,IAAA,6BAAiB,EAAC,KAAK,CAAC;oBAC7B,IAAA,8BAAkB,EAAC,KAAK,CAAC;oBACzB,IAAA,4BAAgB,EAAC,KAAK,CAAC;oBACvB,IAAA,2BAAe,EAAC,KAAK,CAAC;oBACtB,IAAA,+CAA0B,EAAC,KAAK,CAAC;oBACjC,IAAA,4BAAgB,EAAC,KAAK,CAAC;oBACvB,CAAC,CAAC,KAAK,CAAC,GAAG;oBACX,CAAC,CAAC,IAAA,YAAI,EAAC,GAAG,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YACtD,CAAC;iBAAM,IAAI,KAAK,YAAY,eAAe,EAAE,CAAC;gBAC5C,OAAO,KAAK,CAAC,GAAG,CAAC;YACnB,CAAC;iBAAM,CAAC;gBACN,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;KACF,CAAwB,CAC5B,CAAC;AACJ,CAAC;AAED,SAAgB,gBAAgB,CAC9B,MAAS,EACT,IAAO;IAEP,IAAA,wBAAY,EAAO,MAAM,EAAE,IAAI,CAAC,CAAC;IACjC,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAa,eAAe;IACN;IAApB,YAAoB,KAAU;QAAV,UAAK,GAAL,KAAK,CAAK;IAAG,CAAC;IAElC,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;CACF;AAdD,0CAcC"}