@expo/entity 0.31.1 → 0.33.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 (257) hide show
  1. package/build/ComposedEntityCacheAdapter.d.ts +4 -6
  2. package/build/ComposedEntityCacheAdapter.js +3 -6
  3. package/build/ComposedEntityCacheAdapter.js.map +1 -1
  4. package/build/EnforcingEntityLoader.d.ts +6 -1
  5. package/build/EnforcingEntityLoader.js +8 -0
  6. package/build/EnforcingEntityLoader.js.map +1 -1
  7. package/build/Entity.d.ts +20 -10
  8. package/build/Entity.js +2 -2
  9. package/build/Entity.js.map +1 -1
  10. package/build/EntityAssociationLoader.d.ts +9 -9
  11. package/build/EntityCompanion.d.ts +6 -5
  12. package/build/EntityCompanion.js +6 -4
  13. package/build/EntityCompanion.js.map +1 -1
  14. package/build/EntityCompanionProvider.d.ts +28 -36
  15. package/build/EntityCompanionProvider.js +4 -19
  16. package/build/EntityCompanionProvider.js.map +1 -1
  17. package/build/EntityConfiguration.d.ts +3 -3
  18. package/build/EntityConfiguration.js +2 -2
  19. package/build/EntityConfiguration.js.map +1 -1
  20. package/build/EntityDatabaseAdapter.d.ts +1 -1
  21. package/build/EntityDatabaseAdapter.js +1 -1
  22. package/build/EntityDatabaseAdapter.js.map +1 -1
  23. package/build/EntityFieldDefinition.d.ts +2 -2
  24. package/build/EntityFieldDefinition.js +1 -1
  25. package/build/EntityFieldDefinition.js.map +1 -1
  26. package/build/EntityLoader.d.ts +10 -2
  27. package/build/EntityLoader.js +32 -7
  28. package/build/EntityLoader.js.map +1 -1
  29. package/build/EntityLoaderFactory.d.ts +4 -7
  30. package/build/EntityLoaderFactory.js +3 -5
  31. package/build/EntityLoaderFactory.js.map +1 -1
  32. package/build/EntityMutationInfo.d.ts +3 -3
  33. package/build/EntityMutationInfo.js +1 -1
  34. package/build/EntityMutationInfo.js.map +1 -1
  35. package/build/EntityMutationTriggerConfiguration.d.ts +3 -3
  36. package/build/EntityMutationValidator.d.ts +1 -1
  37. package/build/EntityMutator.d.ts +9 -7
  38. package/build/EntityMutator.js +21 -21
  39. package/build/EntityMutator.js.map +1 -1
  40. package/build/EntityMutatorFactory.d.ts +4 -2
  41. package/build/EntityMutatorFactory.js +5 -4
  42. package/build/EntityMutatorFactory.js.map +1 -1
  43. package/build/EntityPrivacyPolicy.d.ts +3 -3
  44. package/build/EntityPrivacyPolicy.js +2 -2
  45. package/build/EntityPrivacyPolicy.js.map +1 -1
  46. package/build/EntityQueryContext.d.ts +13 -5
  47. package/build/EntityQueryContext.js +11 -4
  48. package/build/EntityQueryContext.js.map +1 -1
  49. package/build/EntityQueryContextProvider.d.ts +3 -3
  50. package/build/EntityQueryContextProvider.js +2 -2
  51. package/build/EntityQueryContextProvider.js.map +1 -1
  52. package/build/EntitySecondaryCacheLoader.d.ts +1 -1
  53. package/build/EntitySecondaryCacheLoader.js +1 -1
  54. package/build/EntitySecondaryCacheLoader.js.map +1 -1
  55. package/build/GenericEntityCacheAdapter.d.ts +14 -0
  56. package/build/GenericEntityCacheAdapter.js +38 -0
  57. package/build/GenericEntityCacheAdapter.js.map +1 -0
  58. package/build/{EntityCacheAdapter.d.ts → IEntityCacheAdapter.d.ts} +5 -8
  59. package/build/IEntityCacheAdapter.js +3 -0
  60. package/build/IEntityCacheAdapter.js.map +1 -0
  61. package/build/IEntityCacheAdapterProvider.d.ts +2 -2
  62. package/build/IEntityGenericCacher.d.ts +31 -2
  63. package/build/ReadonlyEntity.d.ts +19 -7
  64. package/build/ReadonlyEntity.js +15 -13
  65. package/build/ReadonlyEntity.js.map +1 -1
  66. package/build/ViewerContext.d.ts +3 -3
  67. package/build/ViewerContext.js +3 -3
  68. package/build/ViewerContext.js.map +1 -1
  69. package/build/ViewerScopedEntityCompanion.d.ts +2 -2
  70. package/build/ViewerScopedEntityCompanion.js.map +1 -1
  71. package/build/ViewerScopedEntityCompanionProvider.d.ts +3 -3
  72. package/build/ViewerScopedEntityCompanionProvider.js +3 -3
  73. package/build/ViewerScopedEntityCompanionProvider.js.map +1 -1
  74. package/build/ViewerScopedEntityLoaderFactory.d.ts +1 -1
  75. package/build/ViewerScopedEntityMutatorFactory.d.ts +1 -1
  76. package/build/__tests__/ComposedCacheAdapter-test.js +4 -8
  77. package/build/__tests__/ComposedCacheAdapter-test.js.map +1 -1
  78. package/build/__tests__/EnforcingEntityLoader-test.js +28 -0
  79. package/build/__tests__/EnforcingEntityLoader-test.js.map +1 -1
  80. package/build/__tests__/Entity-test.js +42 -20
  81. package/build/__tests__/Entity-test.js.map +1 -1
  82. package/build/__tests__/EntityAssociationLoader-test.js +6 -6
  83. package/build/__tests__/EntityAssociationLoader-test.js.map +1 -1
  84. package/build/__tests__/EntityCommonUseCases-test.js +20 -22
  85. package/build/__tests__/EntityCommonUseCases-test.js.map +1 -1
  86. package/build/__tests__/EntityCompanion-test.js +2 -1
  87. package/build/__tests__/EntityCompanion-test.js.map +1 -1
  88. package/build/__tests__/EntityCompanionProvider-test.js +15 -40
  89. package/build/__tests__/EntityCompanionProvider-test.js.map +1 -1
  90. package/build/__tests__/EntityEdges-test.js +48 -54
  91. package/build/__tests__/EntityEdges-test.js.map +1 -1
  92. package/build/__tests__/EntityLoader-constructor-test.d.ts +9 -5
  93. package/build/__tests__/EntityLoader-constructor-test.js +13 -14
  94. package/build/__tests__/EntityLoader-constructor-test.js.map +1 -1
  95. package/build/__tests__/EntityLoader-test.js +22 -12
  96. package/build/__tests__/EntityLoader-test.js.map +1 -1
  97. package/build/__tests__/EntityMutator-MutationCacheConsistency-test.js +20 -22
  98. package/build/__tests__/EntityMutator-MutationCacheConsistency-test.js.map +1 -1
  99. package/build/__tests__/EntityMutator-test.js +67 -14
  100. package/build/__tests__/EntityMutator-test.js.map +1 -1
  101. package/build/__tests__/EntityPrivacyPolicy-test.js +82 -29
  102. package/build/__tests__/EntityPrivacyPolicy-test.js.map +1 -1
  103. package/build/__tests__/EntityQueryContext-test.js +12 -0
  104. package/build/__tests__/EntityQueryContext-test.js.map +1 -1
  105. package/build/__tests__/EntitySecondaryCacheLoader-test.js +1 -2
  106. package/build/__tests__/EntitySecondaryCacheLoader-test.js.map +1 -1
  107. package/build/__tests__/EntitySelfReferentialEdges-test.js +16 -20
  108. package/build/__tests__/EntitySelfReferentialEdges-test.js.map +1 -1
  109. package/build/__tests__/GenericEntityCacheAdapter-test.d.ts +1 -0
  110. package/build/__tests__/GenericEntityCacheAdapter-test.js +80 -0
  111. package/build/__tests__/GenericEntityCacheAdapter-test.js.map +1 -0
  112. package/build/__tests__/ReadonlyEntity-test.js +79 -13
  113. package/build/__tests__/ReadonlyEntity-test.js.map +1 -1
  114. package/build/__tests__/ViewerScopedEntityCompanionProvider-test.js +2 -25
  115. package/build/__tests__/ViewerScopedEntityCompanionProvider-test.js.map +1 -1
  116. package/build/__tests__/cases/TwoEntitySameTableDisjointRows-test.js +20 -23
  117. package/build/__tests__/cases/TwoEntitySameTableDisjointRows-test.js.map +1 -1
  118. package/build/__tests__/cases/TwoEntitySameTableOverlappingRows-test.js +17 -20
  119. package/build/__tests__/cases/TwoEntitySameTableOverlappingRows-test.js.map +1 -1
  120. package/build/errors/EntityError.js +2 -2
  121. package/build/errors/EntityError.js.map +1 -1
  122. package/build/errors/EntityInvalidFieldValueError.d.ts +2 -2
  123. package/build/errors/EntityInvalidFieldValueError.js.map +1 -1
  124. package/build/errors/EntityNotAuthorizedError.d.ts +2 -2
  125. package/build/errors/EntityNotAuthorizedError.js +1 -1
  126. package/build/errors/EntityNotAuthorizedError.js.map +1 -1
  127. package/build/errors/EntityNotFoundError.d.ts +2 -2
  128. package/build/errors/EntityNotFoundError.js.map +1 -1
  129. package/build/index.d.ts +2 -1
  130. package/build/index.js +3 -3
  131. package/build/index.js.map +1 -1
  132. package/build/internal/EntityDataManager.d.ts +1 -1
  133. package/build/internal/EntityDataManager.js +1 -1
  134. package/build/internal/EntityDataManager.js.map +1 -1
  135. package/build/internal/EntityFieldTransformationUtils.d.ts +1 -1
  136. package/build/internal/EntityFieldTransformationUtils.js +4 -4
  137. package/build/internal/EntityFieldTransformationUtils.js.map +1 -1
  138. package/build/internal/EntityTableDataCoordinator.d.ts +3 -3
  139. package/build/internal/EntityTableDataCoordinator.js.map +1 -1
  140. package/build/internal/ReadThroughEntityCache.d.ts +3 -3
  141. package/build/internal/ReadThroughEntityCache.js +1 -1
  142. package/build/internal/ReadThroughEntityCache.js.map +1 -1
  143. package/build/internal/__tests__/EntityDataManager-test.js +1 -1
  144. package/build/internal/__tests__/EntityDataManager-test.js.map +1 -1
  145. package/build/internal/__tests__/ReadThroughEntityCache-test.js.map +1 -1
  146. package/build/metrics/EntityMetricsUtils.js.map +1 -1
  147. package/build/metrics/IEntityMetricsAdapter.js +4 -4
  148. package/build/metrics/IEntityMetricsAdapter.js.map +1 -1
  149. package/build/rules/AlwaysAllowPrivacyPolicyRule.d.ts +2 -2
  150. package/build/rules/AlwaysAllowPrivacyPolicyRule.js.map +1 -1
  151. package/build/rules/AlwaysDenyPrivacyPolicyRule.d.ts +2 -2
  152. package/build/rules/AlwaysDenyPrivacyPolicyRule.js.map +1 -1
  153. package/build/rules/AlwaysSkipPrivacyPolicyRule.d.ts +2 -2
  154. package/build/rules/AlwaysSkipPrivacyPolicyRule.js.map +1 -1
  155. package/build/rules/PrivacyPolicyRule.d.ts +1 -1
  156. package/build/rules/PrivacyPolicyRule.js +1 -1
  157. package/build/rules/PrivacyPolicyRule.js.map +1 -1
  158. package/build/testfixtures/DateIDTestEntity.d.ts +2 -3
  159. package/build/testfixtures/DateIDTestEntity.js +7 -9
  160. package/build/testfixtures/DateIDTestEntity.js.map +1 -1
  161. package/build/testfixtures/SimpleTestEntity.d.ts +3 -4
  162. package/build/testfixtures/SimpleTestEntity.js +7 -9
  163. package/build/testfixtures/SimpleTestEntity.js.map +1 -1
  164. package/build/testfixtures/TestEntity.d.ts +2 -3
  165. package/build/testfixtures/TestEntity.js +14 -10
  166. package/build/testfixtures/TestEntity.js.map +1 -1
  167. package/build/testfixtures/TestEntity2.d.ts +2 -3
  168. package/build/testfixtures/TestEntity2.js +7 -9
  169. package/build/testfixtures/TestEntity2.js.map +1 -1
  170. package/build/testfixtures/TestEntityNumberKey.d.ts +2 -3
  171. package/build/testfixtures/TestEntityNumberKey.js +7 -9
  172. package/build/testfixtures/TestEntityNumberKey.js.map +1 -1
  173. package/build/utils/testing/PrivacyPolicyRuleTestUtils.d.ts +4 -4
  174. package/build/utils/testing/StubCacheAdapter.d.ts +6 -5
  175. package/build/utils/testing/StubCacheAdapter.js +5 -6
  176. package/build/utils/testing/StubCacheAdapter.js.map +1 -1
  177. package/build/utils/testing/StubDatabaseAdapterProvider.js.map +1 -1
  178. package/build/utils/testing/StubQueryContextProvider.d.ts +2 -1
  179. package/build/utils/testing/StubQueryContextProvider.js +1 -1
  180. package/build/utils/testing/StubQueryContextProvider.js.map +1 -1
  181. package/build/utils/testing/createUnitTestEntityCompanionProvider.js +2 -2
  182. package/build/utils/testing/createUnitTestEntityCompanionProvider.js.map +1 -1
  183. package/package.json +3 -3
  184. package/src/ComposedEntityCacheAdapter.ts +4 -11
  185. package/src/EnforcingEntityLoader.ts +10 -1
  186. package/src/Entity.ts +23 -12
  187. package/src/EntityAssociationLoader.ts +12 -12
  188. package/src/EntityCompanion.ts +13 -32
  189. package/src/EntityCompanionProvider.ts +41 -80
  190. package/src/EntityConfiguration.ts +4 -5
  191. package/src/EntityFieldDefinition.ts +2 -2
  192. package/src/EntityLoader.ts +36 -2
  193. package/src/EntityLoaderFactory.ts +7 -9
  194. package/src/EntityMutationInfo.ts +2 -2
  195. package/src/EntityMutationTriggerConfiguration.ts +3 -3
  196. package/src/EntityMutationValidator.ts +1 -1
  197. package/src/EntityMutator.ts +38 -31
  198. package/src/EntityMutatorFactory.ts +6 -1
  199. package/src/EntityPrivacyPolicy.ts +2 -2
  200. package/src/EntityQueryContext.ts +24 -4
  201. package/src/EntityQueryContextProvider.ts +7 -5
  202. package/src/EntitySecondaryCacheLoader.ts +1 -1
  203. package/src/GenericEntityCacheAdapter.ts +65 -0
  204. package/src/{EntityCacheAdapter.ts → IEntityCacheAdapter.ts} +5 -8
  205. package/src/IEntityCacheAdapterProvider.ts +2 -2
  206. package/src/IEntityGenericCacher.ts +32 -2
  207. package/src/ReadonlyEntity.ts +32 -32
  208. package/src/ViewerContext.ts +10 -8
  209. package/src/ViewerScopedEntityCompanion.ts +2 -2
  210. package/src/ViewerScopedEntityCompanionProvider.ts +4 -12
  211. package/src/ViewerScopedEntityLoaderFactory.ts +1 -1
  212. package/src/ViewerScopedEntityMutatorFactory.ts +1 -1
  213. package/src/__tests__/ComposedCacheAdapter-test.ts +6 -11
  214. package/src/__tests__/EnforcingEntityLoader-test.ts +44 -0
  215. package/src/__tests__/Entity-test.ts +42 -21
  216. package/src/__tests__/EntityCommonUseCases-test.ts +20 -22
  217. package/src/__tests__/EntityCompanion-test.ts +6 -9
  218. package/src/__tests__/EntityCompanionProvider-test.ts +14 -26
  219. package/src/__tests__/EntityEdges-test.ts +43 -49
  220. package/src/__tests__/EntityLoader-constructor-test.ts +16 -12
  221. package/src/__tests__/EntityLoader-test.ts +14 -1
  222. package/src/__tests__/EntityMutator-MutationCacheConsistency-test.ts +20 -22
  223. package/src/__tests__/EntityMutator-test.ts +119 -19
  224. package/src/__tests__/EntityPrivacyPolicy-test.ts +82 -29
  225. package/src/__tests__/EntityQueryContext-test.ts +23 -1
  226. package/src/__tests__/EntitySelfReferentialEdges-test.ts +8 -10
  227. package/src/__tests__/GenericEntityCacheAdapter-test.ts +102 -0
  228. package/src/__tests__/ReadonlyEntity-test.ts +79 -13
  229. package/src/__tests__/ViewerScopedEntityCompanionProvider-test.ts +2 -5
  230. package/src/__tests__/cases/TwoEntitySameTableDisjointRows-test.ts +30 -24
  231. package/src/__tests__/cases/TwoEntitySameTableOverlappingRows-test.ts +14 -18
  232. package/src/errors/EntityInvalidFieldValueError.ts +2 -2
  233. package/src/errors/EntityNotAuthorizedError.ts +2 -2
  234. package/src/errors/EntityNotFoundError.ts +2 -2
  235. package/src/index.ts +2 -1
  236. package/src/internal/EntityDataManager.ts +1 -1
  237. package/src/internal/EntityTableDataCoordinator.ts +4 -4
  238. package/src/internal/ReadThroughEntityCache.ts +2 -2
  239. package/src/internal/__tests__/EntityDataManager-test.ts +2 -1
  240. package/src/internal/__tests__/ReadThroughEntityCache-test.ts +8 -8
  241. package/src/metrics/EntityMetricsUtils.ts +1 -1
  242. package/src/rules/AlwaysAllowPrivacyPolicyRule.ts +2 -2
  243. package/src/rules/AlwaysDenyPrivacyPolicyRule.ts +2 -2
  244. package/src/rules/AlwaysSkipPrivacyPolicyRule.ts +2 -2
  245. package/src/rules/PrivacyPolicyRule.ts +1 -1
  246. package/src/testfixtures/DateIDTestEntity.ts +6 -8
  247. package/src/testfixtures/SimpleTestEntity.ts +6 -8
  248. package/src/testfixtures/TestEntity.ts +19 -15
  249. package/src/testfixtures/TestEntity2.ts +6 -8
  250. package/src/testfixtures/TestEntityNumberKey.ts +6 -8
  251. package/src/utils/testing/PrivacyPolicyRuleTestUtils.ts +4 -4
  252. package/src/utils/testing/StubCacheAdapter.ts +9 -11
  253. package/src/utils/testing/StubDatabaseAdapterProvider.ts +1 -1
  254. package/src/utils/testing/StubQueryContextProvider.ts +4 -3
  255. package/src/utils/testing/createUnitTestEntityCompanionProvider.ts +3 -3
  256. package/build/EntityCacheAdapter.js +0 -13
  257. package/build/EntityCacheAdapter.js.map +0 -1
@@ -3,10 +3,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.testEntityCompanion = exports.TestEntityPrivacyPolicy = exports.testEntityConfiguration = void 0;
6
+ exports.TestEntityPrivacyPolicy = exports.testEntityConfiguration = void 0;
7
7
  const results_1 = require("@expo/results");
8
8
  const Entity_1 = __importDefault(require("../Entity"));
9
- const EntityCompanionProvider_1 = require("../EntityCompanionProvider");
10
9
  const EntityConfiguration_1 = __importDefault(require("../EntityConfiguration"));
11
10
  const EntityFields_1 = require("../EntityFields");
12
11
  const EntityPrivacyPolicy_1 = __importDefault(require("../EntityPrivacyPolicy"));
@@ -57,20 +56,30 @@ class TestEntityPrivacyPolicy extends EntityPrivacyPolicy_1.default {
57
56
  }
58
57
  exports.TestEntityPrivacyPolicy = TestEntityPrivacyPolicy;
59
58
  class TestEntity extends Entity_1.default {
60
- static getCompanionDefinition() {
61
- return exports.testEntityCompanion;
59
+ static defineCompanionDefinition() {
60
+ return {
61
+ entityClass: TestEntity,
62
+ entityConfiguration: exports.testEntityConfiguration,
63
+ privacyPolicyClass: TestEntityPrivacyPolicy,
64
+ };
62
65
  }
63
66
  getBlah() {
64
67
  return 'Hello World!';
65
68
  }
66
69
  static async hello(viewerContext, testValue) {
67
- return (0, results_1.result)(new TestEntity(viewerContext, {
70
+ const fields = {
68
71
  customIdField: testValue,
69
72
  testIndexedField: 'hello',
70
73
  stringField: 'hello',
71
74
  intField: 1,
72
75
  dateField: new Date(),
73
76
  nullableField: null,
77
+ };
78
+ return (0, results_1.result)(new TestEntity({
79
+ viewerContext,
80
+ id: testValue,
81
+ databaseFields: fields,
82
+ selectedFields: fields,
74
83
  }));
75
84
  }
76
85
  static async returnError(_viewerContext) {
@@ -84,9 +93,4 @@ class TestEntity extends Entity_1.default {
84
93
  }
85
94
  }
86
95
  exports.default = TestEntity;
87
- exports.testEntityCompanion = new EntityCompanionProvider_1.EntityCompanionDefinition({
88
- entityClass: TestEntity,
89
- entityConfiguration: exports.testEntityConfiguration,
90
- privacyPolicyClass: TestEntityPrivacyPolicy,
91
- });
92
96
  //# sourceMappingURL=TestEntity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TestEntity.js","sourceRoot":"","sources":["../../src/testfixtures/TestEntity.ts"],"names":[],"mappings":";;;;;;AAAA,2CAA+C;AAE/C,uDAA+B;AAC/B,wEAAuE;AACvE,iFAAyD;AACzD,kDAA8E;AAC9E,iFAAyD;AAEzD,yGAAiF;AAWpE,QAAA,uBAAuB,GAAG,IAAI,6BAAmB,CAAa;IACzE,OAAO,EAAE,eAAe;IACxB,SAAS,EAAE,oCAAoC;IAC/C,MAAM,EAAE;QACN,aAAa,EAAE,IAAI,wBAAS,CAAC;YAC3B,UAAU,EAAE,WAAW;SACxB,CAAC;QACF,gBAAgB,EAAE,IAAI,0BAAW,CAAC;YAChC,UAAU,EAAE,YAAY;YACxB,KAAK,EAAE,IAAI;SACZ,CAAC;QACF,WAAW,EAAE,IAAI,0BAAW,CAAC;YAC3B,UAAU,EAAE,cAAc;SAC3B,CAAC;QACF,QAAQ,EAAE,IAAI,uBAAQ,CAAC;YACrB,UAAU,EAAE,cAAc;SAC3B,CAAC;QACF,SAAS,EAAE,IAAI,wBAAS,CAAC;YACvB,UAAU,EAAE,YAAY;SACzB,CAAC;QACF,aAAa,EAAE,IAAI,0BAAW,CAAC;YAC7B,UAAU,EAAE,gBAAgB;SAC7B,CAAC;KACH;IACD,qBAAqB,EAAE,UAAU;IACjC,kBAAkB,EAAE,OAAO;CAC5B,CAAC,CAAC;AAEH,MAAa,uBAAwB,SAAQ,6BAK5C;IALD;;QAM8B,cAAS,GAAG;YACtC,IAAI,sCAA4B,EAAiD;SAClF,CAAC;QAC0B,gBAAW,GAAG;YACxC,IAAI,sCAA4B,EAAiD;SAClF,CAAC;QAC0B,gBAAW,GAAG;YACxC,IAAI,sCAA4B,EAAiD;SAClF,CAAC;QAC0B,gBAAW,GAAG;YACxC,IAAI,sCAA4B,EAAiD;SAClF,CAAC;IACJ,CAAC;CAAA;AAlBD,0DAkBC;AAED,MAAqB,UAAW,SAAQ,gBAAyC;IAC/E,MAAM,CAAC,sBAAsB;QAO3B,OAAO,2BAAmB,CAAC;IAC7B,CAAC;IAED,OAAO;QACL,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,aAA4B,EAAE,SAAiB;QAChE,OAAO,IAAA,gBAAM,EACX,IAAI,UAAU,CAAC,aAAa,EAAE;YAC5B,aAAa,EAAE,SAAS;YACxB,gBAAgB,EAAE,OAAO;YACzB,WAAW,EAAE,OAAO;YACpB,QAAQ,EAAE,CAAC;YACX,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,aAAa,EAAE,IAAI;SACpB,CAAC,CACH,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,cAA6B;QACpD,OAAO,IAAA,gBAAM,EAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,cAA6B;QACnD,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,cAA6B,EAAE,SAAiB;QACrE,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AAvCD,6BAuCC;AAEY,QAAA,mBAAmB,GAAG,IAAI,mDAAyB,CAAC;IAC/D,WAAW,EAAE,UAAU;IACvB,mBAAmB,EAAE,+BAAuB;IAC5C,kBAAkB,EAAE,uBAAuB;CAC5C,CAAC,CAAC"}
1
+ {"version":3,"file":"TestEntity.js","sourceRoot":"","sources":["../../src/testfixtures/TestEntity.ts"],"names":[],"mappings":";;;;;;AAAA,2CAA+C;AAE/C,uDAA+B;AAE/B,iFAAyD;AACzD,kDAA8E;AAC9E,iFAAyD;AAEzD,yGAAiF;AAWpE,QAAA,uBAAuB,GAAG,IAAI,6BAAmB,CAAa;IACzE,OAAO,EAAE,eAAe;IACxB,SAAS,EAAE,oCAAoC;IAC/C,MAAM,EAAE;QACN,aAAa,EAAE,IAAI,wBAAS,CAAC;YAC3B,UAAU,EAAE,WAAW;SACxB,CAAC;QACF,gBAAgB,EAAE,IAAI,0BAAW,CAAC;YAChC,UAAU,EAAE,YAAY;YACxB,KAAK,EAAE,IAAI;SACZ,CAAC;QACF,WAAW,EAAE,IAAI,0BAAW,CAAC;YAC3B,UAAU,EAAE,cAAc;SAC3B,CAAC;QACF,QAAQ,EAAE,IAAI,uBAAQ,CAAC;YACrB,UAAU,EAAE,cAAc;SAC3B,CAAC;QACF,SAAS,EAAE,IAAI,wBAAS,CAAC;YACvB,UAAU,EAAE,YAAY;SACzB,CAAC;QACF,aAAa,EAAE,IAAI,0BAAW,CAAC;YAC7B,UAAU,EAAE,gBAAgB;SAC7B,CAAC;KACH;IACD,qBAAqB,EAAE,UAAU;IACjC,kBAAkB,EAAE,OAAO;CAC5B,CAAC,CAAC;AAEH,MAAa,uBAAwB,SAAQ,6BAK5C;IALD;;QAM8B,cAAS,GAAG;YACtC,IAAI,sCAA4B,EAAiD;SAClF,CAAC;QAC0B,gBAAW,GAAG;YACxC,IAAI,sCAA4B,EAAiD;SAClF,CAAC;QAC0B,gBAAW,GAAG;YACxC,IAAI,sCAA4B,EAAiD;SAClF,CAAC;QAC0B,gBAAW,GAAG;YACxC,IAAI,sCAA4B,EAAiD;SAClF,CAAC;IACJ,CAAC;CAAA;AAlBD,0DAkBC;AAED,MAAqB,UAAW,SAAQ,gBAAyC;IAC/E,MAAM,CAAC,yBAAyB;QAO9B,OAAO;YACL,WAAW,EAAE,UAAU;YACvB,mBAAmB,EAAE,+BAAuB;YAC5C,kBAAkB,EAAE,uBAAuB;SAC5C,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,aAA4B,EAAE,SAAiB;QAChE,MAAM,MAAM,GAAG;YACb,aAAa,EAAE,SAAS;YACxB,gBAAgB,EAAE,OAAO;YACzB,WAAW,EAAE,OAAO;YACpB,QAAQ,EAAE,CAAC;YACX,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,aAAa,EAAE,IAAI;SACpB,CAAC;QACF,OAAO,IAAA,gBAAM,EACX,IAAI,UAAU,CAAC;YACb,aAAa;YACb,EAAE,EAAE,SAAS;YACb,cAAc,EAAE,MAAM;YACtB,cAAc,EAAE,MAAM;SACvB,CAAC,CACH,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,cAA6B;QACpD,OAAO,IAAA,gBAAM,EAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,cAA6B;QACnD,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,cAA6B,EAAE,SAAiB;QACrE,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AAjDD,6BAiDC"}
@@ -4,7 +4,7 @@ import EntityConfiguration from '../EntityConfiguration';
4
4
  import EntityPrivacyPolicy from '../EntityPrivacyPolicy';
5
5
  import ViewerContext from '../ViewerContext';
6
6
  import AlwaysAllowPrivacyPolicyRule from '../rules/AlwaysAllowPrivacyPolicyRule';
7
- export declare type Test2Fields = {
7
+ export type Test2Fields = {
8
8
  id: string;
9
9
  foreignKey: string;
10
10
  };
@@ -16,6 +16,5 @@ export declare class TestEntity2PrivacyPolicy extends EntityPrivacyPolicy<Test2F
16
16
  protected readonly deleteRules: AlwaysAllowPrivacyPolicyRule<Test2Fields, string, ViewerContext, TestEntity2, keyof Test2Fields>[];
17
17
  }
18
18
  export default class TestEntity2 extends Entity<Test2Fields, string, ViewerContext> {
19
- static getCompanionDefinition(): EntityCompanionDefinition<Test2Fields, string, ViewerContext, TestEntity2, TestEntity2PrivacyPolicy>;
19
+ static defineCompanionDefinition(): EntityCompanionDefinition<Test2Fields, string, ViewerContext, TestEntity2, TestEntity2PrivacyPolicy>;
20
20
  }
21
- export declare const testEntity2Companion: EntityCompanionDefinition<Test2Fields, string, ViewerContext, TestEntity2, TestEntity2PrivacyPolicy, keyof Test2Fields>;
@@ -3,9 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.testEntity2Companion = exports.TestEntity2PrivacyPolicy = exports.testEntity2Configuration = void 0;
6
+ exports.TestEntity2PrivacyPolicy = exports.testEntity2Configuration = void 0;
7
7
  const Entity_1 = __importDefault(require("../Entity"));
8
- const EntityCompanionProvider_1 = require("../EntityCompanionProvider");
9
8
  const EntityConfiguration_1 = __importDefault(require("../EntityConfiguration"));
10
9
  const EntityFields_1 = require("../EntityFields");
11
10
  const EntityPrivacyPolicy_1 = __importDefault(require("../EntityPrivacyPolicy"));
@@ -43,14 +42,13 @@ class TestEntity2PrivacyPolicy extends EntityPrivacyPolicy_1.default {
43
42
  }
44
43
  exports.TestEntity2PrivacyPolicy = TestEntity2PrivacyPolicy;
45
44
  class TestEntity2 extends Entity_1.default {
46
- static getCompanionDefinition() {
47
- return exports.testEntity2Companion;
45
+ static defineCompanionDefinition() {
46
+ return {
47
+ entityClass: TestEntity2,
48
+ entityConfiguration: exports.testEntity2Configuration,
49
+ privacyPolicyClass: TestEntity2PrivacyPolicy,
50
+ };
48
51
  }
49
52
  }
50
53
  exports.default = TestEntity2;
51
- exports.testEntity2Companion = new EntityCompanionProvider_1.EntityCompanionDefinition({
52
- entityClass: TestEntity2,
53
- entityConfiguration: exports.testEntity2Configuration,
54
- privacyPolicyClass: TestEntity2PrivacyPolicy,
55
- });
56
54
  //# sourceMappingURL=TestEntity2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TestEntity2.js","sourceRoot":"","sources":["../../src/testfixtures/TestEntity2.ts"],"names":[],"mappings":";;;;;;AAAA,uDAA+B;AAC/B,wEAAuE;AACvE,iFAAyD;AACzD,kDAA4C;AAC5C,iFAAyD;AAEzD,yGAAiF;AAOpE,QAAA,wBAAwB,GAAG,IAAI,6BAAmB,CAAc;IAC3E,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,sCAAsC;IACjD,MAAM,EAAE;QACN,EAAE,EAAE,IAAI,wBAAS,CAAC;YAChB,UAAU,EAAE,IAAI;SACjB,CAAC;QACF,UAAU,EAAE,IAAI,wBAAS,CAAC;YACxB,UAAU,EAAE,aAAa;SAC1B,CAAC;KACH;IACD,qBAAqB,EAAE,UAAU;IACjC,kBAAkB,EAAE,OAAO;CAC5B,CAAC,CAAC;AAEH,MAAa,wBAAyB,SAAQ,6BAK7C;IALD;;QAM8B,cAAS,GAAG;YACtC,IAAI,sCAA4B,EAAmD;SACpF,CAAC;QAC0B,gBAAW,GAAG;YACxC,IAAI,sCAA4B,EAAmD;SACpF,CAAC;QAC0B,gBAAW,GAAG;YACxC,IAAI,sCAA4B,EAAmD;SACpF,CAAC;QAC0B,gBAAW,GAAG;YACxC,IAAI,sCAA4B,EAAmD;SACpF,CAAC;IACJ,CAAC;CAAA;AAlBD,4DAkBC;AAED,MAAqB,WAAY,SAAQ,gBAA0C;IACjF,MAAM,CAAC,sBAAsB;QAO3B,OAAO,4BAAoB,CAAC;IAC9B,CAAC;CACF;AAVD,8BAUC;AAEY,QAAA,oBAAoB,GAAG,IAAI,mDAAyB,CAAC;IAChE,WAAW,EAAE,WAAW;IACxB,mBAAmB,EAAE,gCAAwB;IAC7C,kBAAkB,EAAE,wBAAwB;CAC7C,CAAC,CAAC"}
1
+ {"version":3,"file":"TestEntity2.js","sourceRoot":"","sources":["../../src/testfixtures/TestEntity2.ts"],"names":[],"mappings":";;;;;;AAAA,uDAA+B;AAE/B,iFAAyD;AACzD,kDAA4C;AAC5C,iFAAyD;AAEzD,yGAAiF;AAOpE,QAAA,wBAAwB,GAAG,IAAI,6BAAmB,CAAc;IAC3E,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,sCAAsC;IACjD,MAAM,EAAE;QACN,EAAE,EAAE,IAAI,wBAAS,CAAC;YAChB,UAAU,EAAE,IAAI;SACjB,CAAC;QACF,UAAU,EAAE,IAAI,wBAAS,CAAC;YACxB,UAAU,EAAE,aAAa;SAC1B,CAAC;KACH;IACD,qBAAqB,EAAE,UAAU;IACjC,kBAAkB,EAAE,OAAO;CAC5B,CAAC,CAAC;AAEH,MAAa,wBAAyB,SAAQ,6BAK7C;IALD;;QAM8B,cAAS,GAAG;YACtC,IAAI,sCAA4B,EAAmD;SACpF,CAAC;QAC0B,gBAAW,GAAG;YACxC,IAAI,sCAA4B,EAAmD;SACpF,CAAC;QAC0B,gBAAW,GAAG;YACxC,IAAI,sCAA4B,EAAmD;SACpF,CAAC;QAC0B,gBAAW,GAAG;YACxC,IAAI,sCAA4B,EAAmD;SACpF,CAAC;IACJ,CAAC;CAAA;AAlBD,4DAkBC;AAED,MAAqB,WAAY,SAAQ,gBAA0C;IACjF,MAAM,CAAC,yBAAyB;QAO9B,OAAO;YACL,WAAW,EAAE,WAAW;YACxB,mBAAmB,EAAE,gCAAwB;YAC7C,kBAAkB,EAAE,wBAAwB;SAC7C,CAAC;IACJ,CAAC;CACF;AAdD,8BAcC"}
@@ -4,7 +4,7 @@ import EntityConfiguration from '../EntityConfiguration';
4
4
  import EntityPrivacyPolicy from '../EntityPrivacyPolicy';
5
5
  import ViewerContext from '../ViewerContext';
6
6
  import AlwaysAllowPrivacyPolicyRule from '../rules/AlwaysAllowPrivacyPolicyRule';
7
- export declare type NumberKeyFields = {
7
+ export type NumberKeyFields = {
8
8
  id: number;
9
9
  };
10
10
  export declare const numberKeyEntityConfiguration: EntityConfiguration<NumberKeyFields>;
@@ -15,6 +15,5 @@ export declare class NumberKeyPrivacyPolicy extends EntityPrivacyPolicy<NumberKe
15
15
  protected readonly deleteRules: AlwaysAllowPrivacyPolicyRule<NumberKeyFields, number, ViewerContext, NumberKeyEntity, "id">[];
16
16
  }
17
17
  export default class NumberKeyEntity extends Entity<NumberKeyFields, number, ViewerContext> {
18
- static getCompanionDefinition(): EntityCompanionDefinition<NumberKeyFields, number, ViewerContext, NumberKeyEntity, NumberKeyPrivacyPolicy>;
18
+ static defineCompanionDefinition(): EntityCompanionDefinition<NumberKeyFields, number, ViewerContext, NumberKeyEntity, NumberKeyPrivacyPolicy>;
19
19
  }
20
- export declare const numberKeyEntityCompanion: EntityCompanionDefinition<NumberKeyFields, number, ViewerContext, NumberKeyEntity, NumberKeyPrivacyPolicy, "id">;
@@ -3,9 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.numberKeyEntityCompanion = exports.NumberKeyPrivacyPolicy = exports.numberKeyEntityConfiguration = void 0;
6
+ exports.NumberKeyPrivacyPolicy = exports.numberKeyEntityConfiguration = void 0;
7
7
  const Entity_1 = __importDefault(require("../Entity"));
8
- const EntityCompanionProvider_1 = require("../EntityCompanionProvider");
9
8
  const EntityConfiguration_1 = __importDefault(require("../EntityConfiguration"));
10
9
  const EntityFields_1 = require("../EntityFields");
11
10
  const EntityPrivacyPolicy_1 = __importDefault(require("../EntityPrivacyPolicy"));
@@ -40,14 +39,13 @@ class NumberKeyPrivacyPolicy extends EntityPrivacyPolicy_1.default {
40
39
  }
41
40
  exports.NumberKeyPrivacyPolicy = NumberKeyPrivacyPolicy;
42
41
  class NumberKeyEntity extends Entity_1.default {
43
- static getCompanionDefinition() {
44
- return exports.numberKeyEntityCompanion;
42
+ static defineCompanionDefinition() {
43
+ return {
44
+ entityClass: NumberKeyEntity,
45
+ entityConfiguration: exports.numberKeyEntityConfiguration,
46
+ privacyPolicyClass: NumberKeyPrivacyPolicy,
47
+ };
45
48
  }
46
49
  }
47
50
  exports.default = NumberKeyEntity;
48
- exports.numberKeyEntityCompanion = new EntityCompanionProvider_1.EntityCompanionDefinition({
49
- entityClass: NumberKeyEntity,
50
- entityConfiguration: exports.numberKeyEntityConfiguration,
51
- privacyPolicyClass: NumberKeyPrivacyPolicy,
52
- });
53
51
  //# sourceMappingURL=TestEntityNumberKey.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TestEntityNumberKey.js","sourceRoot":"","sources":["../../src/testfixtures/TestEntityNumberKey.ts"],"names":[],"mappings":";;;;;;AAAA,uDAA+B;AAC/B,wEAAuE;AACvE,iFAAyD;AACzD,kDAA2C;AAC3C,iFAAyD;AAEzD,yGAAiF;AAMpE,QAAA,4BAA4B,GAAG,IAAI,6BAAmB,CAAkB;IACnF,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,2CAA2C;IACtD,MAAM,EAAE;QACN,EAAE,EAAE,IAAI,uBAAQ,CAAC;YACf,UAAU,EAAE,WAAW;SACxB,CAAC;KACH;IACD,qBAAqB,EAAE,UAAU;IACjC,kBAAkB,EAAE,OAAO;CAC5B,CAAC,CAAC;AAEH,MAAa,sBAAuB,SAAQ,6BAK3C;IALD;;QAM8B,cAAS,GAAG;YACtC,IAAI,sCAA4B,EAA2D;SAC5F,CAAC;QAC0B,gBAAW,GAAG;YACxC,IAAI,sCAA4B,EAA2D;SAC5F,CAAC;QAC0B,gBAAW,GAAG;YACxC,IAAI,sCAA4B,EAA2D;SAC5F,CAAC;QAC0B,gBAAW,GAAG;YACxC,IAAI,sCAA4B,EAA2D;SAC5F,CAAC;IACJ,CAAC;CAAA;AAlBD,wDAkBC;AAED,MAAqB,eAAgB,SAAQ,gBAA8C;IACzF,MAAM,CAAC,sBAAsB;QAO3B,OAAO,gCAAwB,CAAC;IAClC,CAAC;CACF;AAVD,kCAUC;AAEY,QAAA,wBAAwB,GAAG,IAAI,mDAAyB,CAAC;IACpE,WAAW,EAAE,eAAe;IAC5B,mBAAmB,EAAE,oCAA4B;IACjD,kBAAkB,EAAE,sBAAsB;CAC3C,CAAC,CAAC"}
1
+ {"version":3,"file":"TestEntityNumberKey.js","sourceRoot":"","sources":["../../src/testfixtures/TestEntityNumberKey.ts"],"names":[],"mappings":";;;;;;AAAA,uDAA+B;AAE/B,iFAAyD;AACzD,kDAA2C;AAC3C,iFAAyD;AAEzD,yGAAiF;AAMpE,QAAA,4BAA4B,GAAG,IAAI,6BAAmB,CAAkB;IACnF,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,2CAA2C;IACtD,MAAM,EAAE;QACN,EAAE,EAAE,IAAI,uBAAQ,CAAC;YACf,UAAU,EAAE,WAAW;SACxB,CAAC;KACH;IACD,qBAAqB,EAAE,UAAU;IACjC,kBAAkB,EAAE,OAAO;CAC5B,CAAC,CAAC;AAEH,MAAa,sBAAuB,SAAQ,6BAK3C;IALD;;QAM8B,cAAS,GAAG;YACtC,IAAI,sCAA4B,EAA2D;SAC5F,CAAC;QAC0B,gBAAW,GAAG;YACxC,IAAI,sCAA4B,EAA2D;SAC5F,CAAC;QAC0B,gBAAW,GAAG;YACxC,IAAI,sCAA4B,EAA2D;SAC5F,CAAC;QAC0B,gBAAW,GAAG;YACxC,IAAI,sCAA4B,EAA2D;SAC5F,CAAC;IACJ,CAAC;CAAA;AAlBD,wDAkBC;AAED,MAAqB,eAAgB,SAAQ,gBAA8C;IACzF,MAAM,CAAC,yBAAyB;QAO9B,OAAO;YACL,WAAW,EAAE,eAAe;YAC5B,mBAAmB,EAAE,oCAA4B;YACjD,kBAAkB,EAAE,sBAAsB;SAC3C,CAAC;IACJ,CAAC;CACF;AAdD,kCAcC"}
@@ -3,17 +3,17 @@ import { EntityQueryContext } from '../../EntityQueryContext';
3
3
  import ReadonlyEntity from '../../ReadonlyEntity';
4
4
  import ViewerContext from '../../ViewerContext';
5
5
  import PrivacyPolicyRule from '../../rules/PrivacyPolicyRule';
6
- export interface Case<TFields, TID extends NonNullable<TFields[TSelectedFields]>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TID, TViewerContext, TSelectedFields>, TSelectedFields extends keyof TFields> {
6
+ export interface Case<TFields extends object, TID extends NonNullable<TFields[TSelectedFields]>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TID, TViewerContext, TSelectedFields>, TSelectedFields extends keyof TFields> {
7
7
  viewerContext: TViewerContext;
8
8
  queryContext: EntityQueryContext;
9
9
  evaluationContext: EntityPrivacyPolicyEvaluationContext;
10
10
  entity: TEntity;
11
11
  }
12
- export declare type CaseMap<TFields, TID extends NonNullable<TFields[TSelectedFields]>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TID, TViewerContext, TSelectedFields>, TSelectedFields extends keyof TFields> = Map<string, () => Promise<Case<TFields, TID, TViewerContext, TEntity, TSelectedFields>>>;
12
+ export type CaseMap<TFields extends object, TID extends NonNullable<TFields[TSelectedFields]>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TID, TViewerContext, TSelectedFields>, TSelectedFields extends keyof TFields> = Map<string, () => Promise<Case<TFields, TID, TViewerContext, TEntity, TSelectedFields>>>;
13
13
  /**
14
14
  * Useful for defining test cases that have async preconditions.
15
15
  */
16
- export declare const describePrivacyPolicyRuleWithAsyncTestCase: <TFields, TID extends NonNullable<TFields[TSelectedFields]>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TID, TViewerContext, TSelectedFields>, TSelectedFields extends keyof TFields = keyof TFields>(privacyPolicyRule: PrivacyPolicyRule<TFields, TID, TViewerContext, TEntity, TSelectedFields>, { allowCases, skipCases, denyCases, }: {
16
+ export declare const describePrivacyPolicyRuleWithAsyncTestCase: <TFields extends object, TID extends NonNullable<TFields[TSelectedFields]>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TID, TViewerContext, TSelectedFields>, TSelectedFields extends keyof TFields = keyof TFields>(privacyPolicyRule: PrivacyPolicyRule<TFields, TID, TViewerContext, TEntity, TSelectedFields>, { allowCases, skipCases, denyCases, }: {
17
17
  allowCases?: CaseMap<TFields, TID, TViewerContext, TEntity, TSelectedFields>;
18
18
  skipCases?: CaseMap<TFields, TID, TViewerContext, TEntity, TSelectedFields>;
19
19
  denyCases?: CaseMap<TFields, TID, TViewerContext, TEntity, TSelectedFields>;
@@ -21,7 +21,7 @@ export declare const describePrivacyPolicyRuleWithAsyncTestCase: <TFields, TID e
21
21
  /**
22
22
  * For test simple privacy rules that don't have complex async preconditions.
23
23
  */
24
- export declare const describePrivacyPolicyRule: <TFields, TID extends NonNullable<TFields[TSelectedFields]>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TID, TViewerContext, TSelectedFields>, TSelectedFields extends keyof TFields = keyof TFields>(privacyPolicyRule: PrivacyPolicyRule<TFields, TID, TViewerContext, TEntity, TSelectedFields>, { allowCases, skipCases, denyCases, }: {
24
+ export declare const describePrivacyPolicyRule: <TFields extends object, TID extends NonNullable<TFields[TSelectedFields]>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TID, TViewerContext, TSelectedFields>, TSelectedFields extends keyof TFields = keyof TFields>(privacyPolicyRule: PrivacyPolicyRule<TFields, TID, TViewerContext, TEntity, TSelectedFields>, { allowCases, skipCases, denyCases, }: {
25
25
  allowCases?: Case<TFields, TID, TViewerContext, TEntity, TSelectedFields>[];
26
26
  skipCases?: Case<TFields, TID, TViewerContext, TEntity, TSelectedFields>[];
27
27
  denyCases?: Case<TFields, TID, TViewerContext, TEntity, TSelectedFields>[];
@@ -1,11 +1,11 @@
1
- import EntityCacheAdapter from '../../EntityCacheAdapter';
2
1
  import EntityConfiguration from '../../EntityConfiguration';
2
+ import IEntityCacheAdapter from '../../IEntityCacheAdapter';
3
3
  import IEntityCacheAdapterProvider from '../../IEntityCacheAdapterProvider';
4
4
  import { CacheLoadResult } from '../../internal/ReadThroughEntityCache';
5
5
  export declare class NoCacheStubCacheAdapterProvider implements IEntityCacheAdapterProvider {
6
- getCacheAdapter<TFields>(entityConfiguration: EntityConfiguration<TFields>): EntityCacheAdapter<TFields>;
6
+ getCacheAdapter<TFields>(_entityConfiguration: EntityConfiguration<TFields>): IEntityCacheAdapter<TFields>;
7
7
  }
8
- export declare class NoCacheStubCacheAdapter<TFields> extends EntityCacheAdapter<TFields> {
8
+ export declare class NoCacheStubCacheAdapter<TFields> implements IEntityCacheAdapter<TFields> {
9
9
  loadManyAsync<N extends keyof TFields>(_fieldName: N, fieldValues: readonly NonNullable<TFields[N]>[]): Promise<ReadonlyMap<NonNullable<TFields[N]>, CacheLoadResult<TFields>>>;
10
10
  cacheManyAsync<N extends keyof TFields>(_fieldName: N, _objectMap: ReadonlyMap<NonNullable<TFields[N]>, Readonly<TFields>>): Promise<void>;
11
11
  cacheDBMissesAsync<N extends keyof TFields>(_fieldName: N, _fieldValues: readonly NonNullable<TFields[N]>[]): Promise<void>;
@@ -13,9 +13,10 @@ export declare class NoCacheStubCacheAdapter<TFields> extends EntityCacheAdapter
13
13
  }
14
14
  export declare class InMemoryFullCacheStubCacheAdapterProvider implements IEntityCacheAdapterProvider {
15
15
  cache: Map<string, Readonly<object>>;
16
- getCacheAdapter<TFields>(entityConfiguration: EntityConfiguration<TFields>): EntityCacheAdapter<TFields>;
16
+ getCacheAdapter<TFields>(entityConfiguration: EntityConfiguration<TFields>): IEntityCacheAdapter<TFields>;
17
17
  }
18
- export declare class InMemoryFullCacheStubCacheAdapter<TFields> extends EntityCacheAdapter<TFields> {
18
+ export declare class InMemoryFullCacheStubCacheAdapter<TFields> implements IEntityCacheAdapter<TFields> {
19
+ private readonly entityConfiguration;
19
20
  readonly cache: Map<string, Readonly<TFields>>;
20
21
  constructor(entityConfiguration: EntityConfiguration<TFields>, cache: Map<string, Readonly<TFields>>);
21
22
  loadManyAsync<N extends keyof TFields>(fieldName: N, fieldValues: readonly NonNullable<TFields[N]>[]): Promise<ReadonlyMap<NonNullable<TFields[N]>, CacheLoadResult<TFields>>>;
@@ -5,15 +5,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.InMemoryFullCacheStubCacheAdapter = exports.InMemoryFullCacheStubCacheAdapterProvider = exports.NoCacheStubCacheAdapter = exports.NoCacheStubCacheAdapterProvider = void 0;
7
7
  const invariant_1 = __importDefault(require("invariant"));
8
- const EntityCacheAdapter_1 = __importDefault(require("../../EntityCacheAdapter"));
9
8
  const ReadThroughEntityCache_1 = require("../../internal/ReadThroughEntityCache");
10
9
  class NoCacheStubCacheAdapterProvider {
11
- getCacheAdapter(entityConfiguration) {
12
- return new NoCacheStubCacheAdapter(entityConfiguration);
10
+ getCacheAdapter(_entityConfiguration) {
11
+ return new NoCacheStubCacheAdapter();
13
12
  }
14
13
  }
15
14
  exports.NoCacheStubCacheAdapterProvider = NoCacheStubCacheAdapterProvider;
16
- class NoCacheStubCacheAdapter extends EntityCacheAdapter_1.default {
15
+ class NoCacheStubCacheAdapter {
17
16
  async loadManyAsync(_fieldName, fieldValues) {
18
17
  return fieldValues.reduce((acc, v) => {
19
18
  acc.set(v, {
@@ -36,9 +35,9 @@ class InMemoryFullCacheStubCacheAdapterProvider {
36
35
  }
37
36
  }
38
37
  exports.InMemoryFullCacheStubCacheAdapterProvider = InMemoryFullCacheStubCacheAdapterProvider;
39
- class InMemoryFullCacheStubCacheAdapter extends EntityCacheAdapter_1.default {
38
+ class InMemoryFullCacheStubCacheAdapter {
40
39
  constructor(entityConfiguration, cache) {
41
- super(entityConfiguration);
40
+ this.entityConfiguration = entityConfiguration;
42
41
  this.cache = cache;
43
42
  }
44
43
  async loadManyAsync(fieldName, fieldValues) {
@@ -1 +1 @@
1
- {"version":3,"file":"StubCacheAdapter.js","sourceRoot":"","sources":["../../../src/utils/testing/StubCacheAdapter.ts"],"names":[],"mappings":";;;;;;AAAA,0DAAkC;AAElC,kFAA0D;AAG1D,kFAAqF;AAErF,MAAa,+BAA+B;IAC1C,eAAe,CACb,mBAAiD;QAEjD,OAAO,IAAI,uBAAuB,CAAC,mBAAmB,CAAC,CAAC;IAC1D,CAAC;CACF;AAND,0EAMC;AAED,MAAa,uBAAiC,SAAQ,4BAA2B;IACxE,KAAK,CAAC,aAAa,CACxB,UAAa,EACb,WAA+C;QAE/C,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,GAA2D,EAAE,CAAC,EAAE,EAAE;YAC3F,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;gBACT,MAAM,EAAE,oCAAW,CAAC,IAAI;aACzB,CAAC,CAAC;YACH,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,cAAc,CACzB,UAAa,EACb,UAAmE,IACnD,CAAC;IAEZ,KAAK,CAAC,kBAAkB,CAC7B,UAAa,EACb,YAAgD,IAChC,CAAC;IAEnB,KAAK,CAAC,mBAAmB,CACvB,UAAa,EACb,YAAmC,IACnB,CAAC;CACpB;AA3BD,0DA2BC;AAED,MAAa,yCAAyC;IAAtD;QACE,UAAK,GAAkC,IAAI,GAAG,EAAE,CAAC;IAUnD,CAAC;IARC,eAAe,CACb,mBAAiD;QAEjD,OAAO,IAAI,iCAAiC,CAC1C,mBAAmB,EACnB,IAAI,CAAC,KAAuC,CAC7C,CAAC;IACJ,CAAC;CACF;AAXD,8FAWC;AAED,MAAa,iCAA2C,SAAQ,4BAA2B;IACzF,YACE,mBAAiD,EACxC,KAAqC;QAE9C,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAFlB,UAAK,GAAL,KAAK,CAAgC;IAGhD,CAAC;IAEM,KAAK,CAAC,aAAa,CACxB,SAAY,EACZ,WAA+C;QAE/C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAqD,CAAC;QAC7E,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YAC5D,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;gBAC7B,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE;oBACtB,MAAM,EAAE,oCAAW,CAAC,IAAI;iBACzB,CAAC,CAAC;aACJ;iBAAM;gBACL,MAAM,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACrD,IAAA,mBAAS,EAAC,mBAAmB,KAAK,SAAS,EAAE,+BAA+B,CAAC,CAAC;gBAC9E,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE;oBACtB,MAAM,EAAE,oCAAW,CAAC,GAAG;oBACvB,IAAI,EAAE,mBAAmB;iBAC1B,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC;IAEM,KAAK,CAAC,cAAc,CACzB,SAAY,EACZ,SAAkE;QAElE,SAAS,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,UAAU,EAAE,EAAE;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YAC5D,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAC7B,UAAa,EACb,YAAgD,IAChC,CAAC;IAEZ,KAAK,CAAC,mBAAmB,CAC9B,SAAY,EACZ,WAA+C;QAE/C,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;YAC5D,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,cAAc,CAA0B,SAAY,EAAE,UAAsB;QAClF,OAAO;YACL,IAAI,CAAC,mBAAmB,CAAC,SAAS;YAClC,IAAI,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE;YAC9C,SAAmB;YACnB,MAAM,CAAC,UAAU,CAAC;SACnB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACd,CAAC;CACF;AAhED,8EAgEC"}
1
+ {"version":3,"file":"StubCacheAdapter.js","sourceRoot":"","sources":["../../../src/utils/testing/StubCacheAdapter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"StubDatabaseAdapterProvider.js","sourceRoot":"","sources":["../../../src/utils/testing/StubDatabaseAdapterProvider.ts"],"names":[],"mappings":";;;;;AAGA,gFAAwD;AAExD,MAAqB,2BAA2B;IAAhD;QACmB,qBAAgB,GAAG,IAAI,GAAG,EAAE,CAAC;IAOhD,CAAC;IALC,kBAAkB,CAChB,mBAAiD;QAEjD,OAAO,IAAI,6BAAmB,CAAC,mBAAmB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC7E,CAAC;CACF;AARD,8CAQC"}
1
+ {"version":3,"file":"StubDatabaseAdapterProvider.js","sourceRoot":"","sources":["../../../src/utils/testing/StubDatabaseAdapterProvider.ts"],"names":[],"mappings":";;;;;AAAA,gFAAwD;AAKxD,MAAqB,2BAA2B;IAAhD;QACmB,qBAAgB,GAAG,IAAI,GAAG,EAAE,CAAC;IAOhD,CAAC;IALC,kBAAkB,CAChB,mBAAiD;QAEjD,OAAO,IAAI,6BAAmB,CAAC,mBAAmB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC7E,CAAC;CACF;AARD,8CAQC"}
@@ -1,7 +1,8 @@
1
+ import { TransactionConfig } from '../../EntityQueryContext';
1
2
  import EntityQueryContextProvider from '../../EntityQueryContextProvider';
2
3
  export declare class StubQueryContextProvider extends EntityQueryContextProvider {
3
4
  protected getQueryInterface(): any;
4
- protected createTransactionRunner<T>(): (transactionScope: (queryInterface: any) => Promise<T>) => Promise<T>;
5
+ protected createTransactionRunner<T>(_transactionConfig?: TransactionConfig): (transactionScope: (queryInterface: any) => Promise<T>) => Promise<T>;
5
6
  protected createNestedTransactionRunner<T>(_outerQueryInterface: any): (transactionScope: (queryInterface: any) => Promise<T>) => Promise<T>;
6
7
  }
7
8
  declare const _default: StubQueryContextProvider;
@@ -9,7 +9,7 @@ class StubQueryContextProvider extends EntityQueryContextProvider_1.default {
9
9
  getQueryInterface() {
10
10
  return {};
11
11
  }
12
- createTransactionRunner() {
12
+ createTransactionRunner(_transactionConfig) {
13
13
  return (transactionScope) => Promise.resolve(transactionScope({}));
14
14
  }
15
15
  createNestedTransactionRunner(_outerQueryInterface) {
@@ -1 +1 @@
1
- {"version":3,"file":"StubQueryContextProvider.js","sourceRoot":"","sources":["../../../src/utils/testing/StubQueryContextProvider.ts"],"names":[],"mappings":";;;;;;AAAA,kGAA0E;AAE1E,MAAa,wBAAyB,SAAQ,oCAA0B;IAC5D,iBAAiB;QACzB,OAAO,EAAE,CAAC;IACZ,CAAC;IAES,uBAAuB;QAG/B,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;IACrE,CAAC;IAES,6BAA6B,CACrC,oBAAyB;QAEzB,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;IACrE,CAAC;CACF;AAhBD,4DAgBC;AAED,kBAAe,IAAI,wBAAwB,EAAE,CAAC"}
1
+ {"version":3,"file":"StubQueryContextProvider.js","sourceRoot":"","sources":["../../../src/utils/testing/StubQueryContextProvider.ts"],"names":[],"mappings":";;;;;;AACA,kGAA0E;AAE1E,MAAa,wBAAyB,SAAQ,oCAA0B;IAC5D,iBAAiB;QACzB,OAAO,EAAE,CAAC;IACZ,CAAC;IAES,uBAAuB,CAC/B,kBAAsC;QAEtC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;IACrE,CAAC;IAES,6BAA6B,CACrC,oBAAyB;QAEzB,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;IACrE,CAAC;CACF;AAhBD,4DAgBC;AAED,kBAAe,IAAI,wBAAwB,EAAE,CAAC"}
@@ -4,11 +4,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.createUnitTestEntityCompanionProvider = void 0;
7
- const EntityCompanionProvider_1 = __importDefault(require("../../EntityCompanionProvider"));
8
- const NoOpEntityMetricsAdapter_1 = __importDefault(require("../../metrics/NoOpEntityMetricsAdapter"));
9
7
  const StubCacheAdapter_1 = require("./StubCacheAdapter");
10
8
  const StubDatabaseAdapterProvider_1 = __importDefault(require("./StubDatabaseAdapterProvider"));
11
9
  const StubQueryContextProvider_1 = __importDefault(require("./StubQueryContextProvider"));
10
+ const EntityCompanionProvider_1 = __importDefault(require("../../EntityCompanionProvider"));
11
+ const NoOpEntityMetricsAdapter_1 = __importDefault(require("../../metrics/NoOpEntityMetricsAdapter"));
12
12
  /**
13
13
  * Entity companion provider for use in unit tests. All database and cache implementations
14
14
  * are replaced with in-memory simulations.
@@ -1 +1 @@
1
- {"version":3,"file":"createUnitTestEntityCompanionProvider.js","sourceRoot":"","sources":["../../../src/utils/testing/createUnitTestEntityCompanionProvider.ts"],"names":[],"mappings":";;;;;;AAAA,4FAAoE;AAEpE,sGAA8E;AAC9E,yDAA+E;AAC/E,gGAAwE;AACxE,0FAAkE;AAElE;;;GAGG;AACI,MAAM,qCAAqC,GAAG,CACnD,iBAAwC,IAAI,kCAAwB,EAAE,EAC7C,EAAE;IAC3B,OAAO,IAAI,iCAAuB,CAChC,cAAc,EACd,IAAI,GAAG,CAAC;QACN;YACE,UAAU;YACV;gBACE,eAAe,EAAE,IAAI,qCAA2B,EAAE;gBAClD,oBAAoB,EAAE,kCAAwB;aAC/C;SACF;KACF,CAAC,EACF,IAAI,GAAG,CAAC;QACN;YACE,OAAO;YACP;gBACE,oBAAoB,EAAE,IAAI,4DAAyC,EAAE;aACtE;SACF;KACF,CAAC,CACH,CAAC;AACJ,CAAC,CAAC;AAvBW,QAAA,qCAAqC,yCAuBhD"}
1
+ {"version":3,"file":"createUnitTestEntityCompanionProvider.js","sourceRoot":"","sources":["../../../src/utils/testing/createUnitTestEntityCompanionProvider.ts"],"names":[],"mappings":";;;;;;AAAA,yDAA+E;AAC/E,gGAAwE;AACxE,0FAAkE;AAClE,4FAAoE;AAEpE,sGAA8E;AAE9E;;;GAGG;AACI,MAAM,qCAAqC,GAAG,CACnD,iBAAwC,IAAI,kCAAwB,EAAE,EAC7C,EAAE;IAC3B,OAAO,IAAI,iCAAuB,CAChC,cAAc,EACd,IAAI,GAAG,CAAC;QACN;YACE,UAAU;YACV;gBACE,eAAe,EAAE,IAAI,qCAA2B,EAAE;gBAClD,oBAAoB,EAAE,kCAAwB;aAC/C;SACF;KACF,CAAC,EACF,IAAI,GAAG,CAAC;QACN;YACE,OAAO;YACP;gBACE,oBAAoB,EAAE,IAAI,4DAAyC,EAAE;aACtE;SACF;KACF,CAAC,CACH,CAAC;AACJ,CAAC,CAAC;AAvBW,QAAA,qCAAqC,yCAuBhD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expo/entity",
3
- "version": "0.31.1",
3
+ "version": "0.33.0",
4
4
  "description": "A privacy-first data model",
5
5
  "files": [
6
6
  "build",
@@ -19,7 +19,7 @@
19
19
  "barrelsby": "barrelsby --directory src --location top --exclude tests__ --singleQuotes --exportDefault --delete"
20
20
  },
21
21
  "engines": {
22
- "node": ">=12"
22
+ "node": ">=16"
23
23
  },
24
24
  "keywords": [
25
25
  "entity"
@@ -33,5 +33,5 @@
33
33
  "invariant": "^2.2.4",
34
34
  "uuid": "^8.3.0"
35
35
  },
36
- "gitHead": "83fe9cdea5b0cd69f38ac58eed12e96d5fa51d07"
36
+ "gitHead": "659e08386f2c5e33e9ac4c670fd832a62a2b6382"
37
37
  }
@@ -1,26 +1,19 @@
1
1
  import nullthrows from 'nullthrows';
2
2
 
3
- import EntityCacheAdapter from './EntityCacheAdapter';
4
- import EntityConfiguration from './EntityConfiguration';
3
+ import IEntityCacheAdapter from './IEntityCacheAdapter';
5
4
  import { CacheStatus, CacheLoadResult } from './internal/ReadThroughEntityCache';
6
5
 
7
6
  /**
8
- * A EntityCacheAdapter that composes other EntityCacheAdapter instances.
7
+ * A IEntityCacheAdapter that composes other IEntityCacheAdapter instances.
9
8
  */
10
- export default class ComposedEntityCacheAdapter<TFields> extends EntityCacheAdapter<TFields> {
9
+ export default class ComposedEntityCacheAdapter<TFields> implements IEntityCacheAdapter<TFields> {
11
10
  /**
12
- * @param entityConfiguration - configuration for entity being loaded
13
11
  * @param cacheAdapters - list of cache adapters to compose in order of precedence.
14
12
  * Earlier cache adapters are read from first and written to (including invalidations) last.
15
13
  * Typically, caches closer to the application should be ordered before caches closer to the database.
16
14
  * A lower layer cache is closer to the database, while a higher layer cache is closer to the application.
17
15
  */
18
- constructor(
19
- entityConfiguration: EntityConfiguration<TFields>,
20
- private readonly cacheAdapters: EntityCacheAdapter<TFields>[]
21
- ) {
22
- super(entityConfiguration);
23
- }
16
+ constructor(private readonly cacheAdapters: IEntityCacheAdapter<TFields>[]) {}
24
17
 
25
18
  public async loadManyAsync<N extends keyof TFields>(
26
19
  fieldName: N,
@@ -14,7 +14,7 @@ import { mapMap } from './utils/collections/maps';
14
14
  * if the loads are not successful.
15
15
  */
16
16
  export default class EnforcingEntityLoader<
17
- TFields,
17
+ TFields extends object,
18
18
  TID extends NonNullable<TFields[TSelectedFields]>,
19
19
  TViewerContext extends ViewerContext,
20
20
  TEntity extends ReadonlyEntity<TFields, TID, TViewerContext, TSelectedFields>,
@@ -114,6 +114,15 @@ export default class EnforcingEntityLoader<
114
114
  return mapMap(entityResults, (result) => result.enforceValue());
115
115
  }
116
116
 
117
+ /**
118
+ * Enforcing version of entity loader method by the same name.
119
+ * @throws EntityNotAuthorizedError when viewer is not authorized to view one or more of the returned entities
120
+ */
121
+ async loadManyByIDsNullableAsync(ids: readonly TID[]): Promise<ReadonlyMap<TID, TEntity | null>> {
122
+ const entityResults = await this.entityLoader.loadManyByIDsNullableAsync(ids);
123
+ return mapMap(entityResults, (result) => result?.enforceValue() ?? null);
124
+ }
125
+
117
126
  /**
118
127
  * Enforcing version of entity loader method by the same name.
119
128
  * @throws EntityNotAuthorizedError when viewer is not authorized to view one or more of the returned entities
package/src/Entity.ts CHANGED
@@ -26,7 +26,7 @@ import ViewerContext from './ViewerContext';
26
26
  * own EntityCompanionDefinition.
27
27
  */
28
28
  export default abstract class Entity<
29
- TFields,
29
+ TFields extends object,
30
30
  TID extends NonNullable<TFields[TSelectedFields]>,
31
31
  TViewerContext extends ViewerContext,
32
32
  TSelectedFields extends keyof TFields = keyof TFields
@@ -38,7 +38,7 @@ export default abstract class Entity<
38
38
  * @returns mutator for creating an entity
39
39
  */
40
40
  static creator<
41
- TMFields,
41
+ TMFields extends object,
42
42
  TMID extends NonNullable<TMFields[TMSelectedFields]>,
43
43
  TMViewerContext extends ViewerContext,
44
44
  TMViewerContext2 extends TMViewerContext,
@@ -79,7 +79,7 @@ export default abstract class Entity<
79
79
  * @returns mutator for updating existingEntity
80
80
  */
81
81
  static updater<
82
- TMFields,
82
+ TMFields extends object,
83
83
  TMID extends NonNullable<TMFields[TMSelectedFields]>,
84
84
  TMViewerContext extends ViewerContext,
85
85
  TMEntity extends Entity<TMFields, TMID, TMViewerContext, TMSelectedFields>,
@@ -120,7 +120,7 @@ export default abstract class Entity<
120
120
  * @param queryContext - query context in which to perform the delete
121
121
  */
122
122
  static deleteAsync<
123
- TMFields,
123
+ TMFields extends object,
124
124
  TMID extends NonNullable<TMFields[TMSelectedFields]>,
125
125
  TMViewerContext extends ViewerContext,
126
126
  TMEntity extends Entity<TMFields, TMID, TMViewerContext, TMSelectedFields>,
@@ -162,7 +162,7 @@ export default abstract class Entity<
162
162
  * @param queryContext - query context in which to perform the delete
163
163
  */
164
164
  static enforceDeleteAsync<
165
- TMFields,
165
+ TMFields extends object,
166
166
  TMID extends NonNullable<TMFields[TMSelectedFields]>,
167
167
  TMViewerContext extends ViewerContext,
168
168
  TMEntity extends Entity<TMFields, TMID, TMViewerContext, TMSelectedFields>,
@@ -215,7 +215,7 @@ export default abstract class Entity<
215
215
  * @param queryContext - query context in which to perform the check
216
216
  */
217
217
  static async canViewerUpdateAsync<
218
- TMFields,
218
+ TMFields extends object,
219
219
  TMID extends NonNullable<TMFields[TMSelectedFields]>,
220
220
  TMViewerContext extends ViewerContext,
221
221
  TMEntity extends Entity<TMFields, TMID, TMViewerContext, TMSelectedFields>,
@@ -246,7 +246,7 @@ export default abstract class Entity<
246
246
  const companion = existingEntity
247
247
  .getViewerContext()
248
248
  .getViewerScopedEntityCompanionForClass(this);
249
- const privacyPolicy = new (this.getCompanionDefinition().privacyPolicyClass)();
249
+ const privacyPolicy = companion.entityCompanion.privacyPolicy;
250
250
  const evaluationResult = await asyncResult(
251
251
  privacyPolicy.authorizeUpdateAsync(
252
252
  existingEntity.getViewerContext(),
@@ -269,7 +269,7 @@ export default abstract class Entity<
269
269
  * @param queryContext - query context in which to perform the check
270
270
  */
271
271
  static async canViewerDeleteAsync<
272
- TMFields,
272
+ TMFields extends object,
273
273
  TMID extends NonNullable<TMFields[TMSelectedFields]>,
274
274
  TMViewerContext extends ViewerContext,
275
275
  TMEntity extends Entity<TMFields, TMID, TMViewerContext, TMSelectedFields>,
@@ -300,7 +300,7 @@ export default abstract class Entity<
300
300
  const companion = existingEntity
301
301
  .getViewerContext()
302
302
  .getViewerScopedEntityCompanionForClass(this);
303
- const privacyPolicy = new (this.getCompanionDefinition().privacyPolicyClass)();
303
+ const privacyPolicy = companion.entityCompanion.privacyPolicy;
304
304
  const evaluationResult = await asyncResult(
305
305
  privacyPolicy.authorizeDeleteAsync(
306
306
  existingEntity.getViewerContext(),
@@ -318,7 +318,7 @@ export default abstract class Entity<
318
318
  * An interface to pass in constructor (class) of an Entity as a function argument.
319
319
  */
320
320
  export interface IEntityClass<
321
- TFields,
321
+ TFields extends object,
322
322
  TID extends NonNullable<TFields[TSelectedFields]>,
323
323
  TViewerContext extends ViewerContext,
324
324
  TEntity extends ReadonlyEntity<TFields, TID, TViewerContext, TSelectedFields>,
@@ -331,8 +331,19 @@ export interface IEntityClass<
331
331
  >,
332
332
  TSelectedFields extends keyof TFields = keyof TFields
333
333
  > {
334
- new (viewerContext: TViewerContext, obj: Readonly<TFields>): TEntity;
335
- getCompanionDefinition(): EntityCompanionDefinition<
334
+ new (constructorParam: {
335
+ viewerContext: TViewerContext;
336
+ id: TID;
337
+ databaseFields: Readonly<TFields>;
338
+ selectedFields: Readonly<Pick<TFields, TSelectedFields>>;
339
+ }): TEntity;
340
+
341
+ /**
342
+ * Returns a EntityCompanionDefinition for this entity.
343
+ *
344
+ * Memoized by the entity framework.
345
+ */
346
+ defineCompanionDefinition(): EntityCompanionDefinition<
336
347
  TFields,
337
348
  TID,
338
349
  TViewerContext,