@expo/entity 0.25.2 → 0.26.1

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 (117) hide show
  1. package/build/ComposedEntityCacheAdapter.d.ts +4 -2
  2. package/build/ComposedEntityCacheAdapter.js +39 -3
  3. package/build/ComposedEntityCacheAdapter.js.map +1 -1
  4. package/build/ComposedSecondaryEntityCache.d.ts +3 -2
  5. package/build/ComposedSecondaryEntityCache.js +3 -2
  6. package/build/ComposedSecondaryEntityCache.js.map +1 -1
  7. package/build/Entity.js +4 -4
  8. package/build/Entity.js.map +1 -1
  9. package/build/EntityAssociationLoader.d.ts +5 -0
  10. package/build/EntityAssociationLoader.js +5 -0
  11. package/build/EntityAssociationLoader.js.map +1 -1
  12. package/build/EntityFieldDefinition.d.ts +16 -8
  13. package/build/EntityFieldDefinition.js +12 -5
  14. package/build/EntityFieldDefinition.js.map +1 -1
  15. package/build/EntityLoader.js +2 -2
  16. package/build/EntityLoader.js.map +1 -1
  17. package/build/EntityMutationInfo.d.ts +2 -0
  18. package/build/EntityMutator.d.ts +6 -8
  19. package/build/EntityMutator.js +58 -46
  20. package/build/EntityMutator.js.map +1 -1
  21. package/build/EntityMutatorFactory.d.ts +4 -4
  22. package/build/EntityMutatorFactory.js +6 -6
  23. package/build/EntityMutatorFactory.js.map +1 -1
  24. package/build/EntityPrivacyPolicy.d.ts +13 -0
  25. package/build/EntityPrivacyPolicy.js +13 -0
  26. package/build/EntityPrivacyPolicy.js.map +1 -1
  27. package/build/EntityQueryContext.d.ts +11 -0
  28. package/build/EntityQueryContext.js +11 -0
  29. package/build/EntityQueryContext.js.map +1 -1
  30. package/build/ViewerScopedEntityMutatorFactory.d.ts +4 -4
  31. package/build/ViewerScopedEntityMutatorFactory.js +6 -6
  32. package/build/ViewerScopedEntityMutatorFactory.js.map +1 -1
  33. package/build/__tests__/ComposedCacheAdapter-test.js +37 -4
  34. package/build/__tests__/ComposedCacheAdapter-test.js.map +1 -1
  35. package/build/__tests__/EntityCommonUseCases-test.js +5 -1
  36. package/build/__tests__/EntityCommonUseCases-test.js.map +1 -1
  37. package/build/__tests__/EntityCompanion-test.js +5 -1
  38. package/build/__tests__/EntityCompanion-test.js.map +1 -1
  39. package/build/__tests__/EntityCompanionProvider-test.js +5 -1
  40. package/build/__tests__/EntityCompanionProvider-test.js.map +1 -1
  41. package/build/__tests__/EntityEdges-test.js +199 -33
  42. package/build/__tests__/EntityEdges-test.js.map +1 -1
  43. package/build/__tests__/EntityLoader-test.js +5 -1
  44. package/build/__tests__/EntityLoader-test.js.map +1 -1
  45. package/build/__tests__/EntityMutator-test.js +38 -53
  46. package/build/__tests__/EntityMutator-test.js.map +1 -1
  47. package/build/__tests__/EntityPrivacyPolicy-test.js +5 -1
  48. package/build/__tests__/EntityPrivacyPolicy-test.js.map +1 -1
  49. package/build/__tests__/EntitySelfReferentialEdges-test.js +2 -2
  50. package/build/__tests__/EntitySelfReferentialEdges-test.js.map +1 -1
  51. package/build/__tests__/ViewerScopedEntityCompanionProvider-test.js +5 -1
  52. package/build/__tests__/ViewerScopedEntityCompanionProvider-test.js.map +1 -1
  53. package/build/__tests__/ViewerScopedEntityMutatorFactory-test.js +2 -3
  54. package/build/__tests__/ViewerScopedEntityMutatorFactory-test.js.map +1 -1
  55. package/build/errors/EntityCacheAdapterError.js +5 -1
  56. package/build/errors/EntityCacheAdapterError.js.map +1 -1
  57. package/build/errors/EntityDatabaseAdapterError.js +5 -1
  58. package/build/errors/EntityDatabaseAdapterError.js.map +1 -1
  59. package/build/errors/EntityInvalidFieldValueError.js +6 -2
  60. package/build/errors/EntityInvalidFieldValueError.js.map +1 -1
  61. package/build/errors/EntityNotAuthorizedError.js +5 -1
  62. package/build/errors/EntityNotAuthorizedError.js.map +1 -1
  63. package/build/errors/EntityNotFoundError.js +6 -2
  64. package/build/errors/EntityNotFoundError.js.map +1 -1
  65. package/build/index.js +5 -1
  66. package/build/index.js.map +1 -1
  67. package/build/internal/EntityDataManager.js +7 -4
  68. package/build/internal/EntityDataManager.js.map +1 -1
  69. package/build/internal/EntityFieldTransformationUtils.js +1 -1
  70. package/build/internal/EntityFieldTransformationUtils.js.map +1 -1
  71. package/build/internal/ReadThroughEntityCache.js +1 -1
  72. package/build/internal/ReadThroughEntityCache.js.map +1 -1
  73. package/build/internal/__tests__/EntityDataManager-test.js +12 -7
  74. package/build/internal/__tests__/EntityDataManager-test.js.map +1 -1
  75. package/build/internal/__tests__/ReadThroughEntityCache-test.js +5 -1
  76. package/build/internal/__tests__/ReadThroughEntityCache-test.js.map +1 -1
  77. package/build/metrics/IEntityMetricsAdapter.d.ts +62 -17
  78. package/build/metrics/IEntityMetricsAdapter.js +17 -1
  79. package/build/metrics/IEntityMetricsAdapter.js.map +1 -1
  80. package/build/metrics/NoOpEntityMetricsAdapter.d.ts +1 -3
  81. package/build/metrics/NoOpEntityMetricsAdapter.js +1 -3
  82. package/build/metrics/NoOpEntityMetricsAdapter.js.map +1 -1
  83. package/build/rules/AlwaysAllowPrivacyPolicyRule.js +5 -1
  84. package/build/rules/AlwaysAllowPrivacyPolicyRule.js.map +1 -1
  85. package/build/rules/AlwaysDenyPrivacyPolicyRule.js +5 -1
  86. package/build/rules/AlwaysDenyPrivacyPolicyRule.js.map +1 -1
  87. package/build/rules/AlwaysSkipPrivacyPolicyRule.js +5 -1
  88. package/build/rules/AlwaysSkipPrivacyPolicyRule.js.map +1 -1
  89. package/build/utils/testing/StubDatabaseAdapter.js +6 -2
  90. package/build/utils/testing/StubDatabaseAdapter.js.map +1 -1
  91. package/package.json +1 -1
  92. package/src/ComposedEntityCacheAdapter.ts +44 -3
  93. package/src/ComposedSecondaryEntityCache.ts +3 -2
  94. package/src/Entity.ts +4 -4
  95. package/src/EntityAssociationLoader.ts +5 -0
  96. package/src/EntityFieldDefinition.ts +15 -6
  97. package/src/EntityLoader.ts +4 -2
  98. package/src/EntityMutationInfo.ts +2 -0
  99. package/src/EntityMutator.ts +98 -67
  100. package/src/EntityMutatorFactory.ts +4 -10
  101. package/src/EntityPrivacyPolicy.ts +15 -0
  102. package/src/EntityQueryContext.ts +11 -0
  103. package/src/ViewerScopedEntityMutatorFactory.ts +7 -22
  104. package/src/__tests__/ComposedCacheAdapter-test.ts +43 -4
  105. package/src/__tests__/EntityEdges-test.ts +287 -32
  106. package/src/__tests__/EntityMutator-test.ts +33 -54
  107. package/src/__tests__/EntitySelfReferentialEdges-test.ts +2 -2
  108. package/src/__tests__/ViewerScopedEntityMutatorFactory-test.ts +2 -6
  109. package/src/errors/EntityInvalidFieldValueError.ts +1 -1
  110. package/src/errors/EntityNotFoundError.ts +1 -1
  111. package/src/internal/EntityDataManager.ts +13 -5
  112. package/src/internal/EntityFieldTransformationUtils.ts +1 -1
  113. package/src/internal/ReadThroughEntityCache.ts +3 -1
  114. package/src/internal/__tests__/EntityDataManager-test.ts +11 -8
  115. package/src/metrics/IEntityMetricsAdapter.ts +72 -19
  116. package/src/metrics/NoOpEntityMetricsAdapter.ts +1 -5
  117. package/src/utils/testing/StubDatabaseAdapter.ts +4 -1
@@ -1,15 +1,17 @@
1
1
  import EntityCacheAdapter from './EntityCacheAdapter';
2
2
  import EntityConfiguration from './EntityConfiguration';
3
3
  import { CacheLoadResult } from './internal/ReadThroughEntityCache';
4
+ /**
5
+ * A {@link EntityCacheAdapter} that composes other {@link EntityCacheAdapter} instances.
6
+ */
4
7
  export default class ComposedEntityCacheAdapter<TFields> extends EntityCacheAdapter<TFields> {
5
8
  private readonly cacheAdapters;
6
9
  /**
7
- * A {@link EntityCacheAdapter} that composes other {@link EntityCacheAdapter} instances.
8
- *
9
10
  * @param entityConfiguration - configuration for entity being loaded
10
11
  * @param cacheAdapters - list of cache adapters to compose in order of precedence.
11
12
  * Earlier cache adapters are read from first and written to (including invalidations) last.
12
13
  * Typically, caches closer to the application should be ordered before caches closer to the database.
14
+ * A lower layer cache is closer to the database, while a higher layer cache is closer to the application.
13
15
  */
14
16
  constructor(entityConfiguration: EntityConfiguration<TFields>, cacheAdapters: EntityCacheAdapter<TFields>[]);
15
17
  loadManyAsync<N extends keyof TFields>(fieldName: N, fieldValues: readonly NonNullable<TFields[N]>[]): Promise<ReadonlyMap<NonNullable<TFields[N]>, CacheLoadResult<TFields>>>;
@@ -6,14 +6,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const nullthrows_1 = __importDefault(require("nullthrows"));
7
7
  const EntityCacheAdapter_1 = __importDefault(require("./EntityCacheAdapter"));
8
8
  const ReadThroughEntityCache_1 = require("./internal/ReadThroughEntityCache");
9
+ /**
10
+ * A {@link EntityCacheAdapter} that composes other {@link EntityCacheAdapter} instances.
11
+ */
9
12
  class ComposedEntityCacheAdapter extends EntityCacheAdapter_1.default {
10
13
  /**
11
- * A {@link EntityCacheAdapter} that composes other {@link EntityCacheAdapter} instances.
12
- *
13
14
  * @param entityConfiguration - configuration for entity being loaded
14
15
  * @param cacheAdapters - list of cache adapters to compose in order of precedence.
15
16
  * Earlier cache adapters are read from first and written to (including invalidations) last.
16
17
  * Typically, caches closer to the application should be ordered before caches closer to the database.
18
+ * A lower layer cache is closer to the database, while a higher layer cache is closer to the application.
17
19
  */
18
20
  constructor(entityConfiguration, cacheAdapters) {
19
21
  super(entityConfiguration);
@@ -21,8 +23,10 @@ class ComposedEntityCacheAdapter extends EntityCacheAdapter_1.default {
21
23
  }
22
24
  async loadManyAsync(fieldName, fieldValues) {
23
25
  const retMap = new Map();
26
+ const fulfilledFieldValuesByCacheIndex = Array.from({ length: this.cacheAdapters.length }, () => []);
24
27
  let unfulfilledFieldValues = fieldValues;
25
- for (const cacheAdapter of this.cacheAdapters) {
28
+ for (let i = 0; i < this.cacheAdapters.length; i++) {
29
+ const cacheAdapter = (0, nullthrows_1.default)(this.cacheAdapters[i]);
26
30
  const cacheResultsFromAdapter = await cacheAdapter.loadManyAsync(fieldName, unfulfilledFieldValues);
27
31
  const newUnfulfilledFieldValues = [];
28
32
  for (const [fieldValue, cacheResult] of cacheResultsFromAdapter) {
@@ -31,9 +35,41 @@ class ComposedEntityCacheAdapter extends EntityCacheAdapter_1.default {
31
35
  }
32
36
  else {
33
37
  retMap.set(fieldValue, cacheResult);
38
+ (0, nullthrows_1.default)(fulfilledFieldValuesByCacheIndex[i]).push(fieldValue);
34
39
  }
35
40
  }
36
41
  unfulfilledFieldValues = newUnfulfilledFieldValues;
42
+ if (unfulfilledFieldValues.length === 0) {
43
+ break;
44
+ }
45
+ }
46
+ // Recache values from lower layers that were not found in higher layers
47
+ // Write to lower layers first
48
+ for (let i = this.cacheAdapters.length - 1; i >= 0; i--) {
49
+ const cacheAdapter = (0, nullthrows_1.default)(this.cacheAdapters[i]);
50
+ const hitsToCache = new Map();
51
+ const negativesToCache = [];
52
+ // Loop over all lower layer caches to collect hits and misses
53
+ for (let j = i + 1; j < this.cacheAdapters.length; j++) {
54
+ const fulfilledFieldValues = (0, nullthrows_1.default)(fulfilledFieldValuesByCacheIndex[j]);
55
+ fulfilledFieldValues.forEach((fieldValue) => {
56
+ const cacheResult = (0, nullthrows_1.default)(retMap.get(fieldValue));
57
+ if (cacheResult.status === ReadThroughEntityCache_1.CacheStatus.HIT) {
58
+ hitsToCache.set(fieldValue, cacheResult.item);
59
+ }
60
+ else if (cacheResult.status === ReadThroughEntityCache_1.CacheStatus.NEGATIVE) {
61
+ negativesToCache.push(fieldValue);
62
+ }
63
+ });
64
+ }
65
+ const promises = [];
66
+ if (hitsToCache.size > 0) {
67
+ promises.push(cacheAdapter.cacheManyAsync(fieldName, hitsToCache));
68
+ }
69
+ if (negativesToCache.length > 0) {
70
+ promises.push(cacheAdapter.cacheDBMissesAsync(fieldName, negativesToCache));
71
+ }
72
+ await Promise.all(promises);
37
73
  }
38
74
  for (const fieldValue of unfulfilledFieldValues) {
39
75
  retMap.set(fieldValue, { status: ReadThroughEntityCache_1.CacheStatus.MISS });
@@ -1 +1 @@
1
- {"version":3,"file":"ComposedEntityCacheAdapter.js","sourceRoot":"","sources":["../src/ComposedEntityCacheAdapter.ts"],"names":[],"mappings":";;;;;AAAA,4DAAoC;AAEpC,8EAAsD;AAEtD,8EAAiF;AAEjF,MAAqB,0BAAoC,SAAQ,4BAA2B;IAC1F;;;;;;;OAOG;IACH,YACE,mBAAiD,EAChC,aAA4C;QAE7D,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAFV,kBAAa,GAAb,aAAa,CAA+B;IAG/D,CAAC;IAEM,KAAK,CAAC,aAAa,CACxB,SAAY,EACZ,WAA+C;QAE/C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAqD,CAAC;QAE5E,IAAI,sBAAsB,GAAG,WAAW,CAAC;QACzC,KAAK,MAAM,YAAY,IAAI,IAAI,CAAC,aAAa,EAAE;YAC7C,MAAM,uBAAuB,GAAG,MAAM,YAAY,CAAC,aAAa,CAC9D,SAAS,EACT,sBAAsB,CACvB,CAAC;YAEF,MAAM,yBAAyB,GAAG,EAAE,CAAC;YACrC,KAAK,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,uBAAuB,EAAE;gBAC/D,IAAI,WAAW,CAAC,MAAM,KAAK,oCAAW,CAAC,IAAI,EAAE;oBAC3C,yBAAyB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;iBAC5C;qBAAM;oBACL,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;iBACrC;aACF;YACD,sBAAsB,GAAG,yBAAyB,CAAC;SACpD;QAED,KAAK,MAAM,UAAU,IAAI,sBAAsB,EAAE;YAC/C,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,oCAAW,CAAC,IAAI,EAAE,CAAC,CAAC;SACtD;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,cAAc,CACzB,SAAY,EACZ,SAAkE;QAElE,8BAA8B;QAC9B,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YACvD,MAAM,YAAY,GAAG,IAAA,oBAAU,EAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;YACvD,MAAM,YAAY,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;SACzD;IACH,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAC7B,SAAY,EACZ,WAA+C;QAE/C,8BAA8B;QAC9B,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YACvD,MAAM,YAAY,GAAG,IAAA,oBAAU,EAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;YACvD,MAAM,YAAY,CAAC,kBAAkB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;SAC/D;IACH,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAC9B,SAAY,EACZ,WAA+C;QAE/C,iCAAiC;QACjC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YACvD,MAAM,YAAY,GAAG,IAAA,oBAAU,EAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;YACvD,MAAM,YAAY,CAAC,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;SAChE;IACH,CAAC;CACF;AA/ED,6CA+EC"}
1
+ {"version":3,"file":"ComposedEntityCacheAdapter.js","sourceRoot":"","sources":["../src/ComposedEntityCacheAdapter.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
1
  import { ISecondaryEntityCache } from './EntitySecondaryCacheLoader';
2
+ /**
3
+ * A {@link ISecondaryEntityCache} that composes other {@link ISecondaryEntityCache} instances.
4
+ */
2
5
  export default class ComposedSecondaryEntityCache<TLoadParams, TFields> implements ISecondaryEntityCache<TFields, TLoadParams> {
3
6
  private readonly secondaryEntityCaches;
4
7
  /**
5
- * A {@link ISecondaryEntityCache} that composes other {@link ISecondaryEntityCache} instances.
6
- *
7
8
  * @param secondaryEntityCaches - list of caches to compose in order of precedence.
8
9
  * Earlier caches are read from first and written to (including invalidations) last.
9
10
  * Typically, caches closer to the application should be ordered before caches closer to the database.
@@ -4,10 +4,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const nullthrows_1 = __importDefault(require("nullthrows"));
7
+ /**
8
+ * A {@link ISecondaryEntityCache} that composes other {@link ISecondaryEntityCache} instances.
9
+ */
7
10
  class ComposedSecondaryEntityCache {
8
11
  /**
9
- * A {@link ISecondaryEntityCache} that composes other {@link ISecondaryEntityCache} instances.
10
- *
11
12
  * @param secondaryEntityCaches - list of caches to compose in order of precedence.
12
13
  * Earlier caches are read from first and written to (including invalidations) last.
13
14
  * Typically, caches closer to the application should be ordered before caches closer to the database.
@@ -1 +1 @@
1
- {"version":3,"file":"ComposedSecondaryEntityCache.js","sourceRoot":"","sources":["../src/ComposedSecondaryEntityCache.ts"],"names":[],"mappings":";;;;;AAAA,4DAAoC;AAIpC,MAAqB,4BAA4B;IAG/C;;;;;;OAMG;IACH,YACmB,qBAAoE;QAApE,0BAAqB,GAArB,qBAAqB,CAA+C;IACpF,CAAC;IAEJ,KAAK,CAAC,oBAAoB,CACxB,eAAiD,EACjD,OAE0E;QAE1E,OAAO,MAAM,4BAA4B,CAAC,+BAA+B,CACvE,IAAI,CAAC,qBAAqB,EAC1B,eAAe,EACf,OAAO,CACR,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAClD,qBAAoE,EACpE,eAAiD,EACjD,OAE0E;QAE1E,IAAI,qBAAqB,CAAC,MAAM,KAAK,CAAC,EAAE;YACtC,OAAO,MAAM,OAAO,CAAC,eAAe,CAAC,CAAC;SACvC;QAED,MAAM,CAAC,UAAU,EAAE,GAAG,UAAU,CAAC,GAAG,qBAAqB,CAAC;QAE1D,OAAO,MAAM,IAAA,oBAAU,EAAC,UAAU,CAAC,CAAC,oBAAoB,CACtD,eAAe,EACf,CAAC,sBAAsB,EAAE,EAAE,CACzB,4BAA4B,CAAC,+BAA+B,CAC1D,UAAU,EACV,sBAAsB,EACtB,OAAO,CACR,CACJ,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,eAAiD;QACzE,gCAAgC;QAChC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YAC/D,MAAM,oBAAoB,GAAG,IAAA,oBAAU,EAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;YACvE,MAAM,oBAAoB,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;SACjE;IACH,CAAC;CACF;AA1DD,+CA0DC"}
1
+ {"version":3,"file":"ComposedSecondaryEntityCache.js","sourceRoot":"","sources":["../src/ComposedSecondaryEntityCache.ts"],"names":[],"mappings":";;;;;AAAA,4DAAoC;AAIpC;;GAEG;AACH,MAAqB,4BAA4B;IAG/C;;;;OAIG;IACH,YACmB,qBAAoE;QAApE,0BAAqB,GAArB,qBAAqB,CAA+C;IACpF,CAAC;IAEJ,KAAK,CAAC,oBAAoB,CACxB,eAAiD,EACjD,OAE0E;QAE1E,OAAO,MAAM,4BAA4B,CAAC,+BAA+B,CACvE,IAAI,CAAC,qBAAqB,EAC1B,eAAe,EACf,OAAO,CACR,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,+BAA+B,CAClD,qBAAoE,EACpE,eAAiD,EACjD,OAE0E;QAE1E,IAAI,qBAAqB,CAAC,MAAM,KAAK,CAAC,EAAE;YACtC,OAAO,MAAM,OAAO,CAAC,eAAe,CAAC,CAAC;SACvC;QAED,MAAM,CAAC,UAAU,EAAE,GAAG,UAAU,CAAC,GAAG,qBAAqB,CAAC;QAE1D,OAAO,MAAM,IAAA,oBAAU,EAAC,UAAU,CAAC,CAAC,oBAAoB,CACtD,eAAe,EACf,CAAC,sBAAsB,EAAE,EAAE,CACzB,4BAA4B,CAAC,+BAA+B,CAC1D,UAAU,EACV,sBAAsB,EACtB,OAAO,CACR,CACJ,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,eAAiD;QACzE,gCAAgC;QAChC,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YAC/D,MAAM,oBAAoB,GAAG,IAAA,oBAAU,EAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;YACvE,MAAM,oBAAoB,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;SACjE;IACH,CAAC;CACF;AAxDD,+CAwDC"}
package/build/Entity.js CHANGED
@@ -37,7 +37,7 @@ class Entity extends ReadonlyEntity_1.default {
37
37
  return viewerContext
38
38
  .getViewerScopedEntityCompanionForClass(this)
39
39
  .getMutatorFactory()
40
- .forCreate(queryContext, { cascadingDeleteCause: null });
40
+ .forCreate(queryContext);
41
41
  }
42
42
  /**
43
43
  * Vend mutator for updating an existing entity in given query context.
@@ -54,7 +54,7 @@ class Entity extends ReadonlyEntity_1.default {
54
54
  .getViewerContext()
55
55
  .getViewerScopedEntityCompanionForClass(this)
56
56
  .getMutatorFactory()
57
- .forUpdate(existingEntity, queryContext, { cascadingDeleteCause: null });
57
+ .forUpdate(existingEntity, queryContext);
58
58
  }
59
59
  /**
60
60
  * Delete an existing entity in given query context.
@@ -70,7 +70,7 @@ class Entity extends ReadonlyEntity_1.default {
70
70
  .getViewerContext()
71
71
  .getViewerScopedEntityCompanionForClass(this)
72
72
  .getMutatorFactory()
73
- .forDelete(existingEntity, queryContext, { cascadingDeleteCause: null })
73
+ .forDelete(existingEntity, queryContext)
74
74
  .deleteAsync();
75
75
  }
76
76
  /**
@@ -87,7 +87,7 @@ class Entity extends ReadonlyEntity_1.default {
87
87
  .getViewerContext()
88
88
  .getViewerScopedEntityCompanionForClass(this)
89
89
  .getMutatorFactory()
90
- .forDelete(existingEntity, queryContext, { cascadingDeleteCause: null })
90
+ .forDelete(existingEntity, queryContext)
91
91
  .enforceDeleteAsync();
92
92
  }
93
93
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Entity.js","sourceRoot":"","sources":["../src/Entity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Entity.js","sourceRoot":"","sources":["../src/Entity.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,11 @@ import EntityPrivacyPolicy from './EntityPrivacyPolicy';
4
4
  import { EntityQueryContext } from './EntityQueryContext';
5
5
  import ReadonlyEntity from './ReadonlyEntity';
6
6
  import ViewerContext from './ViewerContext';
7
+ /**
8
+ * An association loader is a set of convenience methods for loading entities
9
+ * associated with an entity. In relational databases, these entities are often referenced
10
+ * by foreign keys.
11
+ */
7
12
  export default class EntityAssociationLoader<TFields, TID extends NonNullable<TFields[TSelectedFields]>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TID, TViewerContext, TSelectedFields>, TSelectedFields extends keyof TFields> {
8
13
  private readonly entity;
9
14
  constructor(entity: TEntity);
@@ -1,6 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const results_1 = require("@expo/results");
4
+ /**
5
+ * An association loader is a set of convenience methods for loading entities
6
+ * associated with an entity. In relational databases, these entities are often referenced
7
+ * by foreign keys.
8
+ */
4
9
  class EntityAssociationLoader {
5
10
  constructor(entity) {
6
11
  this.entity = entity;
@@ -1 +1 @@
1
- {"version":3,"file":"EntityAssociationLoader.js","sourceRoot":"","sources":["../src/EntityAssociationLoader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EntityAssociationLoader.js","sourceRoot":"","sources":["../src/EntityAssociationLoader.ts"],"names":[],"mappings":"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"}
@@ -4,25 +4,32 @@ import ReadonlyEntity from './ReadonlyEntity';
4
4
  import ViewerContext from './ViewerContext';
5
5
  export declare enum EntityEdgeDeletionBehavior {
6
6
  /**
7
- * Default. Invalidate the cache for all entities that reference the entity
7
+ * Invalidate the cache for all entities that reference the entity
8
8
  * being deleted through this field, and transitively run deletions on those entities.
9
9
  * This is most useful when the database itself expresses foreign
10
- * keys and cascading deletes or set nulls and the entity framework just needs to
10
+ * keys and cascading deletes and the entity framework just needs to
11
11
  * be kept consistent with the state of the database.
12
12
  */
13
- CASCADE_DELETE_INVALIDATE_CACHE = 0,
13
+ CASCADE_DELETE_INVALIDATE_CACHE_ONLY = 0,
14
+ /**
15
+ * Invalidate the cache for all entities that reference the entity
16
+ * being deleted through this field. This is most useful when the database itself expresses
17
+ * foreign keys and cascading "SET NULL"s and the entity framework just needs to be
18
+ * kept consistent with the state of the database.
19
+ */
20
+ SET_NULL_INVALIDATE_CACHE_ONLY = 1,
14
21
  /**
15
22
  * Delete all entities that reference the entity being deleted through this field. This is very similar
16
23
  * to SQL `ON DELETE CASCADE` but is done in the Entity framework instead of at the underlying level.
17
24
  * This will also invalidate the cached referencing entities.
18
25
  */
19
- CASCADE_DELETE = 1,
26
+ CASCADE_DELETE = 2,
20
27
  /**
21
28
  * Set this field to null when the referenced entity is deleted. This is very similar
22
29
  * to SQL `ON DELETE SET NULL` but is done in the Entity framework instead of at the underlying level.
23
30
  * This will also invalidate the cached referencing entities.
24
31
  */
25
- SET_NULL = 2
32
+ SET_NULL = 3
26
33
  }
27
34
  /**
28
35
  * Defines an association between entities. An association is primarily used to define cascading deletion behavior.
@@ -43,16 +50,17 @@ export interface EntityAssociationDefinition<TViewerContext extends ViewerContex
43
50
  *
44
51
  * @remarks
45
52
  * The entity framework doesn't prescribe a one-size-fits-all solution for referential
46
- * integrity; instead it exposes mechanisms that supports both database foreign key constraints
53
+ * integrity; instead it exposes mechanisms that support both database foreign key constraints
47
54
  * and implicit entity-specified foreign keys. Choosing which approach to use often depends on
48
55
  * application requirements, and sometimes even a mix-and-match is the right choice.
49
56
  *
50
57
  * - If referential integrity is critical to your application, database foreign key constraints
51
- * combined with {@link EntityEdgeDeletionBehavior.CASACDE_DELETE_INVALIDATE_CACHE} are recommended.
58
+ * combined with {@link EntityEdgeDeletionBehavior.CASCADE_DELETE_INVALIDATE_CACHE_ONLY} or
59
+ * {@link EntityEdgeDeletionBehavior.SET_NULL_INVALIDATE_CACHE_ONLY} are recommended.
52
60
  * - If the database being used doesn't support foreign keys, then using the entity framework for referential
53
61
  * integrity is recommended.
54
62
  */
55
- edgeDeletionBehavior?: EntityEdgeDeletionBehavior;
63
+ edgeDeletionBehavior: EntityEdgeDeletionBehavior;
56
64
  }
57
65
  /**
58
66
  * Definition for a field referencing a column in the underlying database. Specifies things like
@@ -4,25 +4,32 @@ exports.EntityFieldDefinition = exports.EntityEdgeDeletionBehavior = void 0;
4
4
  var EntityEdgeDeletionBehavior;
5
5
  (function (EntityEdgeDeletionBehavior) {
6
6
  /**
7
- * Default. Invalidate the cache for all entities that reference the entity
7
+ * Invalidate the cache for all entities that reference the entity
8
8
  * being deleted through this field, and transitively run deletions on those entities.
9
9
  * This is most useful when the database itself expresses foreign
10
- * keys and cascading deletes or set nulls and the entity framework just needs to
10
+ * keys and cascading deletes and the entity framework just needs to
11
11
  * be kept consistent with the state of the database.
12
12
  */
13
- EntityEdgeDeletionBehavior[EntityEdgeDeletionBehavior["CASCADE_DELETE_INVALIDATE_CACHE"] = 0] = "CASCADE_DELETE_INVALIDATE_CACHE";
13
+ EntityEdgeDeletionBehavior[EntityEdgeDeletionBehavior["CASCADE_DELETE_INVALIDATE_CACHE_ONLY"] = 0] = "CASCADE_DELETE_INVALIDATE_CACHE_ONLY";
14
+ /**
15
+ * Invalidate the cache for all entities that reference the entity
16
+ * being deleted through this field. This is most useful when the database itself expresses
17
+ * foreign keys and cascading "SET NULL"s and the entity framework just needs to be
18
+ * kept consistent with the state of the database.
19
+ */
20
+ EntityEdgeDeletionBehavior[EntityEdgeDeletionBehavior["SET_NULL_INVALIDATE_CACHE_ONLY"] = 1] = "SET_NULL_INVALIDATE_CACHE_ONLY";
14
21
  /**
15
22
  * Delete all entities that reference the entity being deleted through this field. This is very similar
16
23
  * to SQL `ON DELETE CASCADE` but is done in the Entity framework instead of at the underlying level.
17
24
  * This will also invalidate the cached referencing entities.
18
25
  */
19
- EntityEdgeDeletionBehavior[EntityEdgeDeletionBehavior["CASCADE_DELETE"] = 1] = "CASCADE_DELETE";
26
+ EntityEdgeDeletionBehavior[EntityEdgeDeletionBehavior["CASCADE_DELETE"] = 2] = "CASCADE_DELETE";
20
27
  /**
21
28
  * Set this field to null when the referenced entity is deleted. This is very similar
22
29
  * to SQL `ON DELETE SET NULL` but is done in the Entity framework instead of at the underlying level.
23
30
  * This will also invalidate the cached referencing entities.
24
31
  */
25
- EntityEdgeDeletionBehavior[EntityEdgeDeletionBehavior["SET_NULL"] = 2] = "SET_NULL";
32
+ EntityEdgeDeletionBehavior[EntityEdgeDeletionBehavior["SET_NULL"] = 3] = "SET_NULL";
26
33
  })(EntityEdgeDeletionBehavior = exports.EntityEdgeDeletionBehavior || (exports.EntityEdgeDeletionBehavior = {}));
27
34
  /**
28
35
  * Definition for a field referencing a column in the underlying database. Specifies things like
@@ -1 +1 @@
1
- {"version":3,"file":"EntityFieldDefinition.js","sourceRoot":"","sources":["../src/EntityFieldDefinition.ts"],"names":[],"mappings":";;;AAKA,IAAY,0BAuBX;AAvBD,WAAY,0BAA0B;IACpC;;;;;;OAMG;IACH,iIAA+B,CAAA;IAE/B;;;;OAIG;IACH,+FAAc,CAAA;IAEd;;;;OAIG;IACH,mFAAQ,CAAA;AACV,CAAC,EAvBW,0BAA0B,GAA1B,kCAA0B,KAA1B,kCAA0B,QAuBrC;AA4DD;;;GAGG;AACH,MAAsB,qBAAqB;IAIzC;;;;;;;OAOG;IACH,YAAY,EACV,UAAU,EACV,KAAK,GAAG,KAAK,EACb,WAAW,GAKZ;QACC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACI,kBAAkB,CAAC,KAA2B;QACnD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;YACzC,OAAO,IAAI,CAAC;SACb;QAED,OAAO,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;CAEF;AAvCD,sDAuCC"}
1
+ {"version":3,"file":"EntityFieldDefinition.js","sourceRoot":"","sources":["../src/EntityFieldDefinition.ts"],"names":[],"mappings":";;;AAKA,IAAY,0BA+BX;AA/BD,WAAY,0BAA0B;IACpC;;;;;;OAMG;IACH,2IAAoC,CAAA;IAEpC;;;;;OAKG;IACH,+HAA8B,CAAA;IAE9B;;;;OAIG;IACH,+FAAc,CAAA;IAEd;;;;OAIG;IACH,mFAAQ,CAAA;AACV,CAAC,EA/BW,0BAA0B,GAA1B,kCAA0B,KAA1B,kCAA0B,QA+BrC;AA6DD;;;GAGG;AACH,MAAsB,qBAAqB;IAIzC;;;;;;;OAOG;IACH,YAAY,EACV,UAAU,EACV,KAAK,GAAG,KAAK,EACb,WAAW,GAKZ;QACC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACI,kBAAkB,CAAC,KAA2B;QACnD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE;YACzC,OAAO,IAAI,CAAC;SACb;QAED,OAAO,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;CAEF;AAvCD,sDAuCC"}
@@ -67,7 +67,7 @@ class EntityLoader {
67
67
  async loadByFieldEqualingAsync(uniqueFieldName, fieldValue) {
68
68
  var _a;
69
69
  const entityResults = await this.loadManyByFieldEqualingAsync(uniqueFieldName, fieldValue);
70
- (0, invariant_1.default)(entityResults.length <= 1, `loadByFieldEqualing: Multiple entities of type ${this.entityClass.name} found for ${uniqueFieldName}=${fieldValue}`);
70
+ (0, invariant_1.default)(entityResults.length <= 1, `loadByFieldEqualing: Multiple entities of type ${this.entityClass.name} found for ${String(uniqueFieldName)}=${fieldValue}`);
71
71
  return (_a = entityResults[0]) !== null && _a !== void 0 ? _a : null;
72
72
  }
73
73
  /**
@@ -216,7 +216,7 @@ class EntityLoader {
216
216
  }
217
217
  validateFieldValues(fieldName, fieldValues) {
218
218
  const fieldDefinition = this.entityConfiguration.schema.get(fieldName);
219
- (0, invariant_1.default)(fieldDefinition, `must have field definition for field = ${fieldName}`);
219
+ (0, invariant_1.default)(fieldDefinition, `must have field definition for field = ${String(fieldName)}`);
220
220
  for (const fieldValue of fieldValues) {
221
221
  const isInputValid = fieldDefinition.validateInputValue(fieldValue);
222
222
  if (!isInputValid) {
@@ -1 +1 @@
1
- {"version":3,"file":"EntityLoader.js","sourceRoot":"","sources":["../src/EntityLoader.ts"],"names":[],"mappings":";;;;;AAAA,2CAA4D;AAC5D,0DAAkC;AAElC,oFAA4D;AAG5D,mEAIiC;AAKjC,yGAAiF;AACjF,uFAA+D;AAG/D,mDAA+D;AAE/D;;;GAGG;AACH,MAAqB,YAAY;IAc/B,YACmB,aAA6B,EAC7B,YAAgC,EAChC,8BAAoE,EACpE,mBAAiD,EACjD,WAOhB,EACgB,aAA6B,EAC7B,WAAuC,EACrC,cAAqC;QAdvC,kBAAa,GAAb,aAAa,CAAgB;QAC7B,iBAAY,GAAZ,YAAY,CAAoB;QAChC,mCAA8B,GAA9B,8BAA8B,CAAsC;QACpE,wBAAmB,GAAnB,mBAAmB,CAA8B;QACjD,gBAAW,GAAX,WAAW,CAO3B;QACgB,kBAAa,GAAb,aAAa,CAAgB;QAC7B,gBAAW,GAAX,WAAW,CAA4B;QACrC,mBAAc,GAAd,cAAc,CAAuB;IACvD,CAAC;IAEJ;;;;OAIG;IACH,SAAS;QAQP,OAAO,IAAI,+BAAqB,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,gCAAgC,CACpC,SAAY,EACZ,WAA+C;QAE/C,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAEjD,MAAM,yBAAyB,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,4BAA4B,CACnF,IAAI,CAAC,YAAY,EACjB,SAAS,EACT,WAAW,CACZ,CAAC;QAEF,OAAO,MAAM,IAAI,CAAC,kCAAkC,CAAC,yBAAyB,CAAC,CAAC;IAClF,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,4BAA4B,CAChC,SAAY,EACZ,UAAmC;QAEnC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,gCAAgC,CAAC,SAAS,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;QAC3F,MAAM,0BAA0B,GAAG,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACjE,IAAA,mBAAS,EACP,0BAA0B,KAAK,SAAS,EACxC,GAAG,UAAU,iEAAiE,CAC/E,CAAC;QACF,OAAO,0BAA2B,CAAC;IACrC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,wBAAwB,CAC5B,eAAkB,EAClB,UAAmC;;QAEnC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,4BAA4B,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;QAC3F,IAAA,mBAAS,EACP,aAAa,CAAC,MAAM,IAAI,CAAC,EACzB,kDAAkD,IAAI,CAAC,WAAW,CAAC,IAAI,cAAc,eAAe,IAAI,UAAU,EAAE,CACrH,CAAC;QACF,OAAO,MAAA,aAAa,CAAC,CAAC,CAAC,mCAAI,IAAI,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,aAAa,CAAC,EAAO;QACzB,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1D,MAAM,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3C,IAAI,YAAY,KAAK,SAAS,EAAE;YAC9B,OAAO,IAAA,gBAAM,EACX,IAAI,6BAAmB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,EAAE,CAAC,CAChF,CAAC;SACH;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,qBAAqB,CAAC,EAAO;QACjC,OAAO,MAAM,IAAI,CAAC,wBAAwB,CACxC,IAAI,CAAC,mBAAmB,CAAC,OAA0B,EACnD,EAAE,CACH,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,kBAAkB,CAAC,GAAmB;QAC1C,MAAM,aAAa,GAAG,CAAC,MAAM,IAAI,CAAC,gCAAgC,CAChE,IAAI,CAAC,mBAAmB,CAAC,OAA0B,EACnD,GAAG,CACJ,CAAiD,CAAC;QACnD,OAAO,IAAA,aAAM,EAAC,aAAa,EAAE,CAAC,kBAAkB,EAAE,EAAE,EAAE,EAAE;YACtD,MAAM,YAAY,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;YAC3C,OAAO,CACL,YAAY,aAAZ,YAAY,cAAZ,YAAY,GACZ,IAAA,gBAAM,EAAC,IAAI,6BAAmB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CACxF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,uCAAuC,CAC3C,qBAA2D,EAC3D,0BAA4D,EAAE;QAE9D,KAAK,MAAM,oBAAoB,IAAI,qBAAqB,EAAE;YACxD,MAAM,WAAW,GAAG,IAAA,2DAAmC,EAAC,oBAAoB,CAAC;gBAC3E,CAAC,CAAC,CAAC,oBAAoB,CAAC,UAAU,CAAC;gBACnC,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC;YACrC,IAAI,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;SACvE;QAED,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,uCAAuC,CACjF,IAAI,CAAC,YAAY,EACjB,qBAAqB,EACrB,uBAAuB,CACxB,CAAC;QACF,MAAM,sBAAsB,GAAG,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;QACvE,OAAO,MAAM,OAAO,CAAC,GAAG,CACtB,sBAAsB,CAAC,GAAG,CAAC,KAAK,EAAE,qBAAqB,EAAE,EAAE;YACzD,IAAI,CAAC,qBAAqB,CAAC,EAAE,EAAE;gBAC7B,OAAO,qBAAqB,CAAC;aAC9B;YACD,OAAO,MAAM,IAAA,qBAAW,EACtB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CACnC,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,8BAA8B,EACnC,qBAAqB,CAAC,KAAK,EAC3B,IAAI,CAAC,cAAc,CACpB,CACF,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,KAAK,CAAC,6BAA6B,CACjC,cAAsB,EACtB,QAAwB,EACxB,0BAA4D,EAAE;QAE9D,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,6BAA6B,CACvE,IAAI,CAAC,YAAY,EACjB,cAAc,EACd,QAAQ,EACR,uBAAuB,CACxB,CAAC;QACF,MAAM,sBAAsB,GAAG,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAC;QACvE,OAAO,MAAM,OAAO,CAAC,GAAG,CACtB,sBAAsB,CAAC,GAAG,CAAC,KAAK,EAAE,qBAAqB,EAAE,EAAE;YACzD,IAAI,CAAC,qBAAqB,CAAC,EAAE,EAAE;gBAC7B,OAAO,qBAAqB,CAAC;aAC9B;YACD,OAAO,MAAM,IAAA,qBAAW,EACtB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CACnC,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,8BAA8B,EACnC,qBAAqB,CAAC,KAAK,EAC3B,IAAI,CAAC,cAAc,CACpB,CACF,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,qBAAqB,CAAC,YAA+B;QACzD,MAAM,IAAI,CAAC,WAAW,CAAC,2BAA2B,CAAC,YAAY,CAAC,CAAC;IACnE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,qBAAqB,CAAC,MAAe;QACzC,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAClE,CAAC;IAEO,oBAAoB,CAAC,aAAiC;QAC5D,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,EAAE;YACxC,IAAI;gBACF,OAAO,IAAA,gBAAM,EAAC,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC;aACvE;YAAC,OAAO,CAAC,EAAE;gBACV,IAAI,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,EAAE;oBACzB,MAAM,CAAC,CAAC;iBACT;gBACD,OAAO,IAAA,gBAAM,EAAC,CAAC,CAAC,CAAC;aAClB;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,kCAAkC,CAC7C,GAAiD;QAEjD,MAAM,yBAAyB,GAAG,IAAA,aAAM,EAAC,GAAG,EAAE,CAAC,YAAY,EAAE,EAAE,CAC7D,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,CACxC,CAAC;QACF,OAAO,MAAM,IAAA,kBAAW,EAAC,yBAAyB,EAAE,KAAK,EAAE,sBAAsB,EAAE,EAAE;YACnF,OAAO,MAAM,OAAO,CAAC,GAAG,CACtB,sBAAsB,CAAC,GAAG,CAAC,KAAK,EAAE,qBAAqB,EAAE,EAAE;gBACzD,IAAI,CAAC,qBAAqB,CAAC,EAAE,EAAE;oBAC7B,OAAO,qBAAqB,CAAC;iBAC9B;gBACD,OAAO,MAAM,IAAA,qBAAW,EACtB,IAAI,CAAC,aAAa,CAAC,kBAAkB,CACnC,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,8BAA8B,EACnC,qBAAqB,CAAC,KAAK,EAC3B,IAAI,CAAC,cAAc,CACpB,CACF,CAAC;YACJ,CAAC,CAAC,CACH,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,mBAAmB,CACzB,SAAY,EACZ,WAAkC;QAElC,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACvE,IAAA,mBAAS,EAAC,eAAe,EAAE,0CAA0C,SAAS,EAAE,CAAC,CAAC;QAClF,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;YACpC,MAAM,YAAY,GAAG,eAAe,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;YACpE,IAAI,CAAC,YAAY,EAAE;gBACjB,MAAM,IAAI,sCAA4B,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;aACjF;SACF;IACH,CAAC;CACF;AA/UD,+BA+UC"}
1
+ {"version":3,"file":"EntityLoader.js","sourceRoot":"","sources":["../src/EntityLoader.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ export declare type EntityValidatorMutationInfo<TFields, TID extends NonNullable
10
10
  } | {
11
11
  type: EntityMutationType.UPDATE;
12
12
  previousValue: TEntity;
13
+ cascadingDeleteCause: EntityCascadingDeletionInfo | null;
13
14
  };
14
15
  /**
15
16
  * Information about a cascading deletion.
@@ -29,6 +30,7 @@ export declare type EntityTriggerMutationInfo<TFields, TID extends NonNullable<T
29
30
  } | {
30
31
  type: EntityMutationType.UPDATE;
31
32
  previousValue: TEntity;
33
+ cascadingDeleteCause: EntityCascadingDeletionInfo | null;
32
34
  } | {
33
35
  type: EntityMutationType.DELETE;
34
36
  cascadingDeleteCause: EntityCascadingDeletionInfo | null;
@@ -6,14 +6,13 @@ import EntityLoaderFactory from './EntityLoaderFactory';
6
6
  import { EntityValidatorMutationInfo, EntityTriggerMutationInfo } from './EntityMutationInfo';
7
7
  import EntityMutationTriggerConfiguration, { EntityMutationTrigger, EntityNonTransactionalMutationTrigger } from './EntityMutationTriggerConfiguration';
8
8
  import EntityMutationValidator from './EntityMutationValidator';
9
- import EntityPrivacyPolicy, { EntityPrivacyPolicyEvaluationContext } from './EntityPrivacyPolicy';
9
+ import EntityPrivacyPolicy from './EntityPrivacyPolicy';
10
10
  import { EntityQueryContext, EntityTransactionalQueryContext } from './EntityQueryContext';
11
11
  import ViewerContext from './ViewerContext';
12
12
  import IEntityMetricsAdapter from './metrics/IEntityMetricsAdapter';
13
13
  declare abstract class BaseMutator<TFields, TID extends NonNullable<TFields[TSelectedFields]>, TViewerContext extends ViewerContext, TEntity extends Entity<TFields, TID, TViewerContext, TSelectedFields>, TPrivacyPolicy extends EntityPrivacyPolicy<TFields, TID, TViewerContext, TEntity, TSelectedFields>, TSelectedFields extends keyof TFields> {
14
14
  protected readonly viewerContext: TViewerContext;
15
15
  protected readonly queryContext: EntityQueryContext;
16
- protected readonly privacyPolicyEvaluationContext: EntityPrivacyPolicyEvaluationContext;
17
16
  protected readonly entityConfiguration: EntityConfiguration<TFields>;
18
17
  protected readonly entityClass: IEntityClass<TFields, TID, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>;
19
18
  protected readonly privacyPolicy: TPrivacyPolicy;
@@ -22,7 +21,7 @@ declare abstract class BaseMutator<TFields, TID extends NonNullable<TFields[TSel
22
21
  protected readonly entityLoaderFactory: EntityLoaderFactory<TFields, TID, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>;
23
22
  protected readonly databaseAdapter: EntityDatabaseAdapter<TFields>;
24
23
  protected readonly metricsAdapter: IEntityMetricsAdapter;
25
- constructor(viewerContext: TViewerContext, queryContext: EntityQueryContext, privacyPolicyEvaluationContext: EntityPrivacyPolicyEvaluationContext, entityConfiguration: EntityConfiguration<TFields>, entityClass: IEntityClass<TFields, TID, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>, privacyPolicy: TPrivacyPolicy, mutationValidators: EntityMutationValidator<TFields, TID, TViewerContext, TEntity, TSelectedFields>[], mutationTriggers: EntityMutationTriggerConfiguration<TFields, TID, TViewerContext, TEntity, TSelectedFields>, entityLoaderFactory: EntityLoaderFactory<TFields, TID, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>, databaseAdapter: EntityDatabaseAdapter<TFields>, metricsAdapter: IEntityMetricsAdapter);
24
+ constructor(viewerContext: TViewerContext, queryContext: EntityQueryContext, entityConfiguration: EntityConfiguration<TFields>, entityClass: IEntityClass<TFields, TID, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>, privacyPolicy: TPrivacyPolicy, mutationValidators: EntityMutationValidator<TFields, TID, TViewerContext, TEntity, TSelectedFields>[], mutationTriggers: EntityMutationTriggerConfiguration<TFields, TID, TViewerContext, TEntity, TSelectedFields>, entityLoaderFactory: EntityLoaderFactory<TFields, TID, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>, databaseAdapter: EntityDatabaseAdapter<TFields>, metricsAdapter: IEntityMetricsAdapter);
26
25
  protected validateFields(fields: Partial<TFields>): void;
27
26
  protected executeMutationValidatorsAsync(validators: EntityMutationValidator<TFields, TID, TViewerContext, TEntity, TSelectedFields>[], queryContext: EntityTransactionalQueryContext, entity: TEntity, mutationInfo: EntityValidatorMutationInfo<TFields, TID, TViewerContext, TEntity, TSelectedFields>): Promise<void>;
28
27
  protected executeMutationTriggersAsync(triggers: EntityMutationTrigger<TFields, TID, TViewerContext, TEntity, TSelectedFields>[] | undefined, queryContext: EntityTransactionalQueryContext, entity: TEntity, mutationInfo: EntityTriggerMutationInfo<TFields, TID, TViewerContext, TEntity, TSelectedFields>): Promise<void>;
@@ -41,7 +40,7 @@ export declare class CreateMutator<TFields, TID extends NonNullable<TFields[TSel
41
40
  setField<K extends keyof Pick<TFields, TSelectedFields>>(fieldName: K, value: TFields[K]): this;
42
41
  /**
43
42
  * Commit the new entity after authorizing against creation privacy rules. Invalidates all caches for
44
- * queries that would return new entity and caches the new entity if not in a transactional query context.
43
+ * queries that would return new entity.
45
44
  * @returns authorized, cached, newly-created entity result, where result error can be UnauthorizedError
46
45
  */
47
46
  createAsync(): Promise<Result<TEntity>>;
@@ -59,7 +58,7 @@ export declare class UpdateMutator<TFields, TID extends NonNullable<TFields[TSel
59
58
  private readonly originalEntity;
60
59
  private readonly fieldsForEntity;
61
60
  private readonly updatedFields;
62
- constructor(viewerContext: TViewerContext, queryContext: EntityQueryContext, privacyPolicyEvaluationContext: EntityPrivacyPolicyEvaluationContext, entityConfiguration: EntityConfiguration<TFields>, entityClass: IEntityClass<TFields, TID, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>, privacyPolicy: TPrivacyPolicy, mutationValidators: EntityMutationValidator<TFields, TID, TViewerContext, TEntity, TSelectedFields>[], mutationTriggers: EntityMutationTriggerConfiguration<TFields, TID, TViewerContext, TEntity, TSelectedFields>, entityLoaderFactory: EntityLoaderFactory<TFields, TID, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>, databaseAdapter: EntityDatabaseAdapter<TFields>, metricsAdapter: IEntityMetricsAdapter, originalEntity: TEntity);
61
+ constructor(viewerContext: TViewerContext, queryContext: EntityQueryContext, entityConfiguration: EntityConfiguration<TFields>, entityClass: IEntityClass<TFields, TID, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>, privacyPolicy: TPrivacyPolicy, mutationValidators: EntityMutationValidator<TFields, TID, TViewerContext, TEntity, TSelectedFields>[], mutationTriggers: EntityMutationTriggerConfiguration<TFields, TID, TViewerContext, TEntity, TSelectedFields>, entityLoaderFactory: EntityLoaderFactory<TFields, TID, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>, databaseAdapter: EntityDatabaseAdapter<TFields>, metricsAdapter: IEntityMetricsAdapter, originalEntity: TEntity);
63
62
  /**
64
63
  * Set the value for entity field.
65
64
  * @param fieldName - entity field being updated
@@ -68,8 +67,7 @@ export declare class UpdateMutator<TFields, TID extends NonNullable<TFields[TSel
68
67
  setField<K extends keyof Pick<TFields, TSelectedFields>>(fieldName: K, value: TFields[K]): this;
69
68
  /**
70
69
  * Commit the changes to the entity after authorizing against update privacy rules.
71
- * Invalidates all caches for pre-update entity and caches the updated entity if not in a
72
- * transactional query context.
70
+ * Invalidates all caches for pre-update entity.
73
71
  * @returns authorized updated entity result, where result error can be UnauthorizedError
74
72
  */
75
73
  updateAsync(): Promise<Result<TEntity>>;
@@ -85,7 +83,7 @@ export declare class UpdateMutator<TFields, TID extends NonNullable<TFields[TSel
85
83
  */
86
84
  export declare class DeleteMutator<TFields, TID extends NonNullable<TFields[TSelectedFields]>, TViewerContext extends ViewerContext, TEntity extends Entity<TFields, TID, TViewerContext, TSelectedFields>, TPrivacyPolicy extends EntityPrivacyPolicy<TFields, TID, TViewerContext, TEntity, TSelectedFields>, TSelectedFields extends keyof TFields> extends BaseMutator<TFields, TID, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields> {
87
85
  private readonly entity;
88
- constructor(viewerContext: TViewerContext, queryContext: EntityQueryContext, privacyPolicyEvaluationContext: EntityPrivacyPolicyEvaluationContext, entityConfiguration: EntityConfiguration<TFields>, entityClass: IEntityClass<TFields, TID, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>, privacyPolicy: TPrivacyPolicy, mutationValidators: EntityMutationValidator<TFields, TID, TViewerContext, TEntity, TSelectedFields>[], mutationTriggers: EntityMutationTriggerConfiguration<TFields, TID, TViewerContext, TEntity, TSelectedFields>, entityLoaderFactory: EntityLoaderFactory<TFields, TID, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>, databaseAdapter: EntityDatabaseAdapter<TFields>, metricsAdapter: IEntityMetricsAdapter, entity: TEntity);
86
+ constructor(viewerContext: TViewerContext, queryContext: EntityQueryContext, entityConfiguration: EntityConfiguration<TFields>, entityClass: IEntityClass<TFields, TID, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>, privacyPolicy: TPrivacyPolicy, mutationValidators: EntityMutationValidator<TFields, TID, TViewerContext, TEntity, TSelectedFields>[], mutationTriggers: EntityMutationTriggerConfiguration<TFields, TID, TViewerContext, TEntity, TSelectedFields>, entityLoaderFactory: EntityLoaderFactory<TFields, TID, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>, databaseAdapter: EntityDatabaseAdapter<TFields>, metricsAdapter: IEntityMetricsAdapter, entity: TEntity);
89
87
  /**
90
88
  * Delete the entity after authorizing against delete privacy rules. The entity is invalidated in all caches.
91
89
  * @returns void result, where result error can be UnauthorizedError