@expo/entity 0.35.0 → 0.37.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 (309) hide show
  1. package/build/AuthorizationResultBasedEntityLoader.d.ts +128 -0
  2. package/build/AuthorizationResultBasedEntityLoader.js +196 -0
  3. package/build/AuthorizationResultBasedEntityLoader.js.map +1 -0
  4. package/build/ComposedEntityCacheAdapter.js +1 -0
  5. package/build/ComposedEntityCacheAdapter.js.map +1 -1
  6. package/build/ComposedSecondaryEntityCache.js +1 -0
  7. package/build/ComposedSecondaryEntityCache.js.map +1 -1
  8. package/build/EnforcingEntityLoader.d.ts +5 -4
  9. package/build/EnforcingEntityLoader.js +4 -2
  10. package/build/EnforcingEntityLoader.js.map +1 -1
  11. package/build/Entity.d.ts +0 -27
  12. package/build/Entity.js +0 -50
  13. package/build/Entity.js.map +1 -1
  14. package/build/EntityAssociationLoader.d.ts +1 -1
  15. package/build/EntityAssociationLoader.js +17 -8
  16. package/build/EntityAssociationLoader.js.map +1 -1
  17. package/build/EntityCompanion.js +9 -1
  18. package/build/EntityCompanion.js.map +1 -1
  19. package/build/EntityCompanionProvider.d.ts +3 -1
  20. package/build/EntityCompanionProvider.js +10 -4
  21. package/build/EntityCompanionProvider.js.map +1 -1
  22. package/build/EntityConfiguration.d.ts +2 -1
  23. package/build/EntityConfiguration.js +19 -1
  24. package/build/EntityConfiguration.js.map +1 -1
  25. package/build/EntityDatabaseAdapter.d.ts +2 -2
  26. package/build/EntityDatabaseAdapter.js +5 -3
  27. package/build/EntityDatabaseAdapter.js.map +1 -1
  28. package/build/EntityFieldDefinition.d.ts +21 -10
  29. package/build/EntityFieldDefinition.js +8 -9
  30. package/build/EntityFieldDefinition.js.map +1 -1
  31. package/build/EntityFields.d.ts +10 -0
  32. package/build/EntityFields.js +15 -1
  33. package/build/EntityFields.js.map +1 -1
  34. package/build/EntityLoader.d.ts +12 -125
  35. package/build/EntityLoader.js +24 -239
  36. package/build/EntityLoader.js.map +1 -1
  37. package/build/EntityLoaderFactory.d.ts +1 -1
  38. package/build/EntityLoaderFactory.js +3 -0
  39. package/build/EntityLoaderFactory.js.map +1 -1
  40. package/build/EntityLoaderUtils.d.ts +58 -0
  41. package/build/EntityLoaderUtils.js +109 -0
  42. package/build/EntityLoaderUtils.js.map +1 -0
  43. package/build/EntityMutator.d.ts +1 -0
  44. package/build/EntityMutator.js +71 -56
  45. package/build/EntityMutator.js.map +1 -1
  46. package/build/EntityMutatorFactory.js +9 -0
  47. package/build/EntityMutatorFactory.js.map +1 -1
  48. package/build/EntityPrivacyPolicy.d.ts +11 -5
  49. package/build/EntityPrivacyPolicy.js +5 -7
  50. package/build/EntityPrivacyPolicy.js.map +1 -1
  51. package/build/EntityQueryContext.d.ts +2 -1
  52. package/build/EntityQueryContext.js +11 -6
  53. package/build/EntityQueryContext.js.map +1 -1
  54. package/build/EntitySecondaryCacheLoader.js +5 -1
  55. package/build/EntitySecondaryCacheLoader.js.map +1 -1
  56. package/build/GenericEntityCacheAdapter.js +1 -0
  57. package/build/GenericEntityCacheAdapter.js.map +1 -1
  58. package/build/GenericSecondaryEntityCache.js +2 -0
  59. package/build/GenericSecondaryEntityCache.js.map +1 -1
  60. package/build/IEntityCacheAdapterProvider.d.ts +1 -1
  61. package/build/IEntityDatabaseAdapterProvider.d.ts +1 -1
  62. package/build/ReadonlyEntity.js +5 -1
  63. package/build/ReadonlyEntity.js.map +1 -1
  64. package/build/ViewerContext.js +2 -0
  65. package/build/ViewerContext.js.map +1 -1
  66. package/build/ViewerScopedEntityCompanion.js +2 -0
  67. package/build/ViewerScopedEntityCompanion.js.map +1 -1
  68. package/build/ViewerScopedEntityCompanionProvider.d.ts +0 -1
  69. package/build/ViewerScopedEntityCompanionProvider.js +2 -1
  70. package/build/ViewerScopedEntityCompanionProvider.js.map +1 -1
  71. package/build/ViewerScopedEntityLoaderFactory.d.ts +1 -1
  72. package/build/ViewerScopedEntityLoaderFactory.js +2 -0
  73. package/build/ViewerScopedEntityLoaderFactory.js.map +1 -1
  74. package/build/ViewerScopedEntityMutatorFactory.js +2 -0
  75. package/build/ViewerScopedEntityMutatorFactory.js.map +1 -1
  76. package/build/__tests__/ComposedCacheAdapter-test.js +2 -0
  77. package/build/__tests__/ComposedCacheAdapter-test.js.map +1 -1
  78. package/build/__tests__/ComposedSecondaryEntityCache-test.js +1 -0
  79. package/build/__tests__/ComposedSecondaryEntityCache-test.js.map +1 -1
  80. package/build/__tests__/EnforcingEntityLoader-test.js +101 -113
  81. package/build/__tests__/EnforcingEntityLoader-test.js.map +1 -1
  82. package/build/__tests__/Entity-test.js +0 -132
  83. package/build/__tests__/Entity-test.js.map +1 -1
  84. package/build/__tests__/EntityAssociationLoader-test.js +6 -2
  85. package/build/__tests__/EntityAssociationLoader-test.js.map +1 -1
  86. package/build/__tests__/EntityCommonUseCases-test.js +24 -22
  87. package/build/__tests__/EntityCommonUseCases-test.js.map +1 -1
  88. package/build/__tests__/EntityCompanion-test.js +26 -3
  89. package/build/__tests__/EntityCompanion-test.js.map +1 -1
  90. package/build/__tests__/EntityConfiguration-test.js +103 -0
  91. package/build/__tests__/EntityConfiguration-test.js.map +1 -0
  92. package/build/__tests__/EntityDatabaseAdapter-test.js +6 -0
  93. package/build/__tests__/EntityDatabaseAdapter-test.js.map +1 -1
  94. package/build/__tests__/EntityEdges-test.js +61 -20
  95. package/build/__tests__/EntityEdges-test.js.map +1 -1
  96. package/build/__tests__/EntityFields-test.js +6 -0
  97. package/build/__tests__/EntityFields-test.js.map +1 -1
  98. package/build/__tests__/EntityLoader-constructor-test.js +16 -17
  99. package/build/__tests__/EntityLoader-constructor-test.js.map +1 -1
  100. package/build/__tests__/EntityLoader-test.js +74 -22
  101. package/build/__tests__/EntityLoader-test.js.map +1 -1
  102. package/build/__tests__/EntityMutator-MutationCacheConsistency-test.js +12 -15
  103. package/build/__tests__/EntityMutator-MutationCacheConsistency-test.js.map +1 -1
  104. package/build/__tests__/EntityMutator-test.js +54 -9
  105. package/build/__tests__/EntityMutator-test.js.map +1 -1
  106. package/build/__tests__/EntityPrivacyPolicy-test.js +77 -59
  107. package/build/__tests__/EntityPrivacyPolicy-test.js.map +1 -1
  108. package/build/__tests__/EntityQueryContext-test.js +9 -0
  109. package/build/__tests__/EntityQueryContext-test.js.map +1 -1
  110. package/build/__tests__/EntitySelfReferentialEdges-test.js +42 -25
  111. package/build/__tests__/EntitySelfReferentialEdges-test.js.map +1 -1
  112. package/build/__tests__/ViewerScopedEntityLoaderFactory-test.js.map +1 -1
  113. package/build/__tests__/cases/TwoEntitySameTableDisjointRows-test.js +20 -18
  114. package/build/__tests__/cases/TwoEntitySameTableDisjointRows-test.js.map +1 -1
  115. package/build/__tests__/cases/TwoEntitySameTableOverlappingRows-test.js +12 -15
  116. package/build/__tests__/cases/TwoEntitySameTableOverlappingRows-test.js.map +1 -1
  117. package/build/entityUtils.d.ts +1 -1
  118. package/build/entityUtils.js.map +1 -1
  119. package/build/errors/EntityCacheAdapterError.js +2 -5
  120. package/build/errors/EntityCacheAdapterError.js.map +1 -1
  121. package/build/errors/EntityDatabaseAdapterError.js +14 -35
  122. package/build/errors/EntityDatabaseAdapterError.js.map +1 -1
  123. package/build/errors/EntityError.js +1 -0
  124. package/build/errors/EntityError.js.map +1 -1
  125. package/build/errors/EntityInvalidFieldValueError.js +2 -2
  126. package/build/errors/EntityInvalidFieldValueError.js.map +1 -1
  127. package/build/errors/EntityNotAuthorizedError.js +3 -2
  128. package/build/errors/EntityNotAuthorizedError.js.map +1 -1
  129. package/build/errors/EntityNotFoundError.js +2 -2
  130. package/build/errors/EntityNotFoundError.js.map +1 -1
  131. package/build/index.d.ts +26 -20
  132. package/build/index.js +38 -28
  133. package/build/index.js.map +1 -1
  134. package/build/internal/EntityDataManager.d.ts +1 -1
  135. package/build/internal/EntityDataManager.js +6 -1
  136. package/build/internal/EntityDataManager.js.map +1 -1
  137. package/build/internal/EntityFieldTransformationUtils.d.ts +5 -5
  138. package/build/internal/EntityFieldTransformationUtils.js +5 -8
  139. package/build/internal/EntityFieldTransformationUtils.js.map +1 -1
  140. package/build/internal/EntityTableDataCoordinator.d.ts +1 -1
  141. package/build/internal/EntityTableDataCoordinator.js +5 -0
  142. package/build/internal/EntityTableDataCoordinator.js.map +1 -1
  143. package/build/internal/ReadThroughEntityCache.d.ts +1 -1
  144. package/build/internal/ReadThroughEntityCache.js +2 -0
  145. package/build/internal/ReadThroughEntityCache.js.map +1 -1
  146. package/build/internal/__tests__/EntityFieldTransformationUtils-test.js +6 -2
  147. package/build/internal/__tests__/EntityFieldTransformationUtils-test.js.map +1 -1
  148. package/build/internal/__tests__/ReadThroughEntityCache-test.js +33 -0
  149. package/build/internal/__tests__/ReadThroughEntityCache-test.js.map +1 -1
  150. package/build/metrics/IEntityMetricsAdapter.d.ts +1 -1
  151. package/build/rules/AlwaysAllowPrivacyPolicyRule.d.ts +1 -1
  152. package/build/rules/AlwaysAllowPrivacyPolicyRule.js.map +1 -1
  153. package/build/rules/AlwaysDenyPrivacyPolicyRule.d.ts +1 -1
  154. package/build/rules/AlwaysDenyPrivacyPolicyRule.js.map +1 -1
  155. package/build/rules/AlwaysSkipPrivacyPolicyRule.d.ts +1 -1
  156. package/build/rules/AlwaysSkipPrivacyPolicyRule.js.map +1 -1
  157. package/build/rules/PrivacyPolicyRule.d.ts +1 -1
  158. package/build/rules/PrivacyPolicyRule.js.map +1 -1
  159. package/build/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.js.map +1 -1
  160. package/build/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.js.map +1 -1
  161. package/build/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.js.map +1 -1
  162. package/build/testfixtures/DateIDTestEntity.js +12 -15
  163. package/build/testfixtures/DateIDTestEntity.js.map +1 -1
  164. package/build/testfixtures/SimpleTestEntity.js +12 -15
  165. package/build/testfixtures/SimpleTestEntity.js.map +1 -1
  166. package/build/testfixtures/TestEntity.js +12 -15
  167. package/build/testfixtures/TestEntity.js.map +1 -1
  168. package/build/testfixtures/TestEntity2.js +12 -15
  169. package/build/testfixtures/TestEntity2.js.map +1 -1
  170. package/build/testfixtures/TestEntityNumberKey.js +12 -15
  171. package/build/testfixtures/TestEntityNumberKey.js.map +1 -1
  172. package/build/testfixtures/TestEntityWithMutationTriggers.d.ts +36 -0
  173. package/build/testfixtures/TestEntityWithMutationTriggers.js +82 -0
  174. package/build/testfixtures/TestEntityWithMutationTriggers.js.map +1 -0
  175. package/build/utils/EntityPrivacyUtils.d.ts +34 -0
  176. package/build/utils/EntityPrivacyUtils.js +160 -0
  177. package/build/utils/EntityPrivacyUtils.js.map +1 -0
  178. package/build/utils/__tests__/EntityPrivacyUtils-test.d.ts +1 -0
  179. package/build/utils/__tests__/EntityPrivacyUtils-test.js +395 -0
  180. package/build/utils/__tests__/EntityPrivacyUtils-test.js.map +1 -0
  181. package/build/utils/__tests__/mergeEntityMutationTriggerConfigurations-test.d.ts +1 -0
  182. package/build/utils/__tests__/mergeEntityMutationTriggerConfigurations-test.js +26 -0
  183. package/build/utils/__tests__/mergeEntityMutationTriggerConfigurations-test.js.map +1 -0
  184. package/build/utils/collections/maps.js.map +1 -1
  185. package/build/utils/mergeEntityMutationTriggerConfigurations.d.ts +4 -0
  186. package/build/utils/mergeEntityMutationTriggerConfigurations.js +28 -0
  187. package/build/utils/mergeEntityMutationTriggerConfigurations.js.map +1 -0
  188. package/build/utils/testing/PrivacyPolicyRuleTestUtils.d.ts +1 -1
  189. package/build/utils/testing/PrivacyPolicyRuleTestUtils.js.map +1 -1
  190. package/build/utils/testing/StubCacheAdapter.d.ts +3 -3
  191. package/build/utils/testing/StubCacheAdapter.js +3 -3
  192. package/build/utils/testing/StubCacheAdapter.js.map +1 -1
  193. package/build/utils/testing/StubDatabaseAdapter.d.ts +2 -2
  194. package/build/utils/testing/StubDatabaseAdapter.js +4 -2
  195. package/build/utils/testing/StubDatabaseAdapter.js.map +1 -1
  196. package/build/utils/testing/StubDatabaseAdapterProvider.d.ts +1 -1
  197. package/build/utils/testing/StubDatabaseAdapterProvider.js +1 -3
  198. package/build/utils/testing/StubDatabaseAdapterProvider.js.map +1 -1
  199. package/build/utils/testing/__tests__/PrivacyPolicyRuleTestUtils-test.d.ts +1 -0
  200. package/build/utils/testing/__tests__/PrivacyPolicyRuleTestUtils-test.js +42 -0
  201. package/build/utils/testing/__tests__/PrivacyPolicyRuleTestUtils-test.js.map +1 -0
  202. package/build/utils/testing/__tests__/StubDatabaseAdapter-test.js +53 -0
  203. package/build/utils/testing/__tests__/StubDatabaseAdapter-test.js.map +1 -1
  204. package/build/utils/testing/describeFieldTestCase.js.map +1 -1
  205. package/package.json +5 -4
  206. package/src/AuthorizationResultBasedEntityLoader.ts +297 -0
  207. package/src/ComposedEntityCacheAdapter.ts +6 -6
  208. package/src/ComposedSecondaryEntityCache.ts +8 -8
  209. package/src/EnforcingEntityLoader.ts +20 -19
  210. package/src/Entity.ts +11 -126
  211. package/src/EntityAssociationLoader.ts +40 -41
  212. package/src/EntityCompanion.ts +8 -4
  213. package/src/EntityCompanionProvider.ts +24 -16
  214. package/src/EntityConfiguration.ts +18 -7
  215. package/src/EntityDatabaseAdapter.ts +41 -41
  216. package/src/EntityFieldDefinition.ts +28 -18
  217. package/src/EntityFields.ts +15 -0
  218. package/src/EntityLoader.ts +63 -357
  219. package/src/EntityLoaderFactory.ts +10 -4
  220. package/src/EntityLoaderUtils.ts +149 -0
  221. package/src/EntityMutationInfo.ts +2 -2
  222. package/src/EntityMutationTriggerConfiguration.ts +5 -5
  223. package/src/EntityMutationValidator.ts +2 -2
  224. package/src/EntityMutator.ts +146 -144
  225. package/src/EntityMutatorFactory.ts +8 -8
  226. package/src/EntityPrivacyPolicy.ts +78 -28
  227. package/src/EntityQueryContext.ts +14 -13
  228. package/src/EntityQueryContextProvider.ts +5 -5
  229. package/src/EntitySecondaryCacheLoader.ts +13 -11
  230. package/src/GenericEntityCacheAdapter.ts +10 -10
  231. package/src/GenericSecondaryEntityCache.ts +6 -6
  232. package/src/IEntityCacheAdapter.ts +4 -4
  233. package/src/IEntityCacheAdapterProvider.ts +2 -2
  234. package/src/IEntityDatabaseAdapterProvider.ts +2 -2
  235. package/src/ReadonlyEntity.ts +5 -5
  236. package/src/ViewerContext.ts +5 -5
  237. package/src/ViewerScopedEntityCompanion.ts +4 -4
  238. package/src/ViewerScopedEntityCompanionProvider.ts +4 -5
  239. package/src/ViewerScopedEntityLoaderFactory.ts +10 -4
  240. package/src/ViewerScopedEntityMutatorFactory.ts +5 -5
  241. package/src/__tests__/ComposedCacheAdapter-test.ts +12 -10
  242. package/src/__tests__/ComposedSecondaryEntityCache-test.ts +8 -8
  243. package/src/__tests__/EnforcingEntityLoader-test.ts +236 -159
  244. package/src/__tests__/Entity-test.ts +0 -202
  245. package/src/__tests__/EntityAssociationLoader-test.ts +29 -25
  246. package/src/__tests__/EntityCommonUseCases-test.ts +29 -13
  247. package/src/__tests__/EntityCompanion-test.ts +57 -5
  248. package/src/__tests__/EntityConfiguration-test.ts +118 -0
  249. package/src/__tests__/EntityDatabaseAdapter-test.ts +11 -11
  250. package/src/__tests__/EntityEdges-test.ts +108 -36
  251. package/src/__tests__/EntityFields-test.ts +14 -2
  252. package/src/__tests__/EntityLoader-constructor-test.ts +20 -7
  253. package/src/__tests__/EntityLoader-test.ts +214 -86
  254. package/src/__tests__/EntityMutator-MutationCacheConsistency-test.ts +2 -2
  255. package/src/__tests__/EntityMutator-test.ts +281 -96
  256. package/src/__tests__/EntityPrivacyPolicy-test.ts +166 -53
  257. package/src/__tests__/EntityQueryContext-test.ts +30 -12
  258. package/src/__tests__/EntitySecondaryCacheLoader-test.ts +7 -7
  259. package/src/__tests__/EntitySelfReferentialEdges-test.ts +46 -26
  260. package/src/__tests__/GenericEntityCacheAdapter-test.ts +2 -2
  261. package/src/__tests__/ViewerContext-test.ts +1 -1
  262. package/src/__tests__/ViewerScopedEntityCompanion-test.ts +2 -2
  263. package/src/__tests__/ViewerScopedEntityCompanionProvider-test.ts +2 -2
  264. package/src/__tests__/ViewerScopedEntityLoaderFactory-test.ts +2 -1
  265. package/src/__tests__/cases/TwoEntitySameTableDisjointRows-test.ts +19 -19
  266. package/src/__tests__/entityUtils-test.ts +2 -2
  267. package/src/entityUtils.ts +4 -4
  268. package/src/errors/EntityError.ts +4 -1
  269. package/src/errors/EntityInvalidFieldValueError.ts +2 -2
  270. package/src/errors/EntityNotAuthorizedError.ts +3 -3
  271. package/src/errors/EntityNotFoundError.ts +2 -2
  272. package/src/index.ts +26 -20
  273. package/src/internal/EntityDataManager.ts +24 -24
  274. package/src/internal/EntityFieldTransformationUtils.ts +39 -32
  275. package/src/internal/EntityTableDataCoordinator.ts +3 -3
  276. package/src/internal/ReadThroughEntityCache.ts +9 -9
  277. package/src/internal/__tests__/EntityDataManager-test.ts +51 -51
  278. package/src/internal/__tests__/EntityFieldTransformationUtils-test.ts +14 -10
  279. package/src/internal/__tests__/ReadThroughEntityCache-test.ts +74 -18
  280. package/src/metrics/EntityMetricsUtils.ts +4 -4
  281. package/src/metrics/IEntityMetricsAdapter.ts +1 -1
  282. package/src/rules/AlwaysAllowPrivacyPolicyRule.ts +9 -3
  283. package/src/rules/AlwaysDenyPrivacyPolicyRule.ts +9 -3
  284. package/src/rules/AlwaysSkipPrivacyPolicyRule.ts +9 -3
  285. package/src/rules/PrivacyPolicyRule.ts +9 -3
  286. package/src/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.ts +2 -1
  287. package/src/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.ts +2 -1
  288. package/src/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.ts +2 -1
  289. package/src/testfixtures/TestEntity.ts +1 -1
  290. package/src/testfixtures/TestEntityWithMutationTriggers.ts +156 -0
  291. package/src/utils/EntityPrivacyUtils.ts +325 -0
  292. package/src/utils/__tests__/EntityPrivacyUtils-test.ts +570 -0
  293. package/src/utils/__tests__/mergeEntityMutationTriggerConfigurations-test.ts +29 -0
  294. package/src/utils/collections/__tests__/maps-test.ts +2 -2
  295. package/src/utils/collections/maps.ts +11 -11
  296. package/src/utils/mergeEntityMutationTriggerConfigurations.ts +44 -0
  297. package/src/utils/testing/PrivacyPolicyRuleTestUtils.ts +25 -22
  298. package/src/utils/testing/StubCacheAdapter.ts +17 -15
  299. package/src/utils/testing/StubDatabaseAdapter.ts +35 -30
  300. package/src/utils/testing/StubDatabaseAdapterProvider.ts +2 -2
  301. package/src/utils/testing/StubQueryContextProvider.ts +2 -2
  302. package/src/utils/testing/__tests__/PrivacyPolicyRuleTestUtils-test.ts +42 -0
  303. package/src/utils/testing/__tests__/StubDatabaseAdapter-test.ts +111 -29
  304. package/src/utils/testing/createUnitTestEntityCompanionProvider.ts +2 -2
  305. package/src/utils/testing/describeFieldTestCase.ts +1 -1
  306. package/build/__tests__/EntityDataConfiguration-test.js +0 -68
  307. package/build/__tests__/EntityDataConfiguration-test.js.map +0 -1
  308. package/src/__tests__/EntityDataConfiguration-test.ts +0 -77
  309. /package/build/__tests__/{EntityDataConfiguration-test.d.ts → EntityConfiguration-test.d.ts} +0 -0
@@ -116,7 +116,7 @@ export default interface IEntityMetricsAdapter {
116
116
  * Called when a dataloader, cache, or database load is initiated via the standard
117
117
  * load methods (not equality conjunction or raw). Most commonly used for logging
118
118
  * a waterfall to determine dataloader and cache hit rates and ratios.
119
- * @param fieldValueCount - count of field values being loaded for a field
119
+ * @param incrementLoadCountEvent - count of field values being loaded for a field
120
120
  */
121
121
  incrementDataManagerLoadCount(incrementLoadCountEvent: IncrementLoadCountEvent): void;
122
122
  }
@@ -7,5 +7,5 @@ import ViewerContext from '../ViewerContext';
7
7
  * Privacy policy rule that always allows.
8
8
  */
9
9
  export default class AlwaysAllowPrivacyPolicyRule<TFields extends object, TID extends NonNullable<TFields[TSelectedFields]>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TID, TViewerContext, TSelectedFields>, TSelectedFields extends keyof TFields = keyof TFields> extends PrivacyPolicyRule<TFields, TID, TViewerContext, TEntity, TSelectedFields> {
10
- evaluateAsync(_viewerContext: TViewerContext, _queryContext: EntityQueryContext, _evaluationContext: EntityPrivacyPolicyEvaluationContext, _entity: TEntity): Promise<RuleEvaluationResult>;
10
+ evaluateAsync(_viewerContext: TViewerContext, _queryContext: EntityQueryContext, _evaluationContext: EntityPrivacyPolicyEvaluationContext<TFields, TID, TViewerContext, TEntity, TSelectedFields>, _entity: TEntity): Promise<RuleEvaluationResult>;
11
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AlwaysAllowPrivacyPolicyRule.js","sourceRoot":"","sources":["../../src/rules/AlwaysAllowPrivacyPolicyRule.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yEAA8E;AAM9E;;GAEG;AACH,MAAqB,4BAMnB,SAAQ,2BAAyE;IACjF,KAAK,CAAC,aAAa,CACjB,cAA8B,EAC9B,aAAiC,EACjC,kBAAwD,EACxD,OAAgB;QAEhB,OAAO,wCAAoB,CAAC,KAAK,CAAC;IACpC,CAAC;CACF;AAfD,+CAeC"}
1
+ {"version":3,"file":"AlwaysAllowPrivacyPolicyRule.js","sourceRoot":"","sources":["../../src/rules/AlwaysAllowPrivacyPolicyRule.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yEAA8E;AAM9E;;GAEG;AACH,MAAqB,4BAMnB,SAAQ,2BAAyE;IACjF,KAAK,CAAC,aAAa,CACjB,cAA8B,EAC9B,aAAiC,EACjC,kBAMC,EACD,OAAgB;QAEhB,OAAO,wCAAoB,CAAC,KAAK,CAAC;IACpC,CAAC;CACF;AArBD,+CAqBC"}
@@ -7,5 +7,5 @@ import ViewerContext from '../ViewerContext';
7
7
  * Privacy policy rule that always denies.
8
8
  */
9
9
  export default class AlwaysDenyPrivacyPolicyRule<TFields extends object, TID extends NonNullable<TFields[TSelectedFields]>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TID, TViewerContext, TSelectedFields>, TSelectedFields extends keyof TFields = keyof TFields> extends PrivacyPolicyRule<TFields, TID, TViewerContext, TEntity, TSelectedFields> {
10
- evaluateAsync(_viewerContext: TViewerContext, _queryContext: EntityQueryContext, _evaluationContext: EntityPrivacyPolicyEvaluationContext, _entity: TEntity): Promise<RuleEvaluationResult>;
10
+ evaluateAsync(_viewerContext: TViewerContext, _queryContext: EntityQueryContext, _evaluationContext: EntityPrivacyPolicyEvaluationContext<TFields, TID, TViewerContext, TEntity, TSelectedFields>, _entity: TEntity): Promise<RuleEvaluationResult>;
11
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AlwaysDenyPrivacyPolicyRule.js","sourceRoot":"","sources":["../../src/rules/AlwaysDenyPrivacyPolicyRule.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yEAA8E;AAM9E;;GAEG;AACH,MAAqB,2BAMnB,SAAQ,2BAAyE;IACjF,KAAK,CAAC,aAAa,CACjB,cAA8B,EAC9B,aAAiC,EACjC,kBAAwD,EACxD,OAAgB;QAEhB,OAAO,wCAAoB,CAAC,IAAI,CAAC;IACnC,CAAC;CACF;AAfD,8CAeC"}
1
+ {"version":3,"file":"AlwaysDenyPrivacyPolicyRule.js","sourceRoot":"","sources":["../../src/rules/AlwaysDenyPrivacyPolicyRule.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yEAA8E;AAM9E;;GAEG;AACH,MAAqB,2BAMnB,SAAQ,2BAAyE;IACjF,KAAK,CAAC,aAAa,CACjB,cAA8B,EAC9B,aAAiC,EACjC,kBAMC,EACD,OAAgB;QAEhB,OAAO,wCAAoB,CAAC,IAAI,CAAC;IACnC,CAAC;CACF;AArBD,8CAqBC"}
@@ -7,5 +7,5 @@ import ViewerContext from '../ViewerContext';
7
7
  * A no-op policy rule that always skips.
8
8
  */
9
9
  export default class AlwaysSkipPrivacyPolicyRule<TFields extends object, TID extends NonNullable<TFields[TSelectedFields]>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TID, TViewerContext, TSelectedFields>, TSelectedFields extends keyof TFields = keyof TFields> extends PrivacyPolicyRule<TFields, TID, TViewerContext, TEntity, TSelectedFields> {
10
- evaluateAsync(_viewerContext: TViewerContext, _queryContext: EntityQueryContext, _evaluationContext: EntityPrivacyPolicyEvaluationContext, _entity: TEntity): Promise<RuleEvaluationResult>;
10
+ evaluateAsync(_viewerContext: TViewerContext, _queryContext: EntityQueryContext, _evaluationContext: EntityPrivacyPolicyEvaluationContext<TFields, TID, TViewerContext, TEntity, TSelectedFields>, _entity: TEntity): Promise<RuleEvaluationResult>;
11
11
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AlwaysSkipPrivacyPolicyRule.js","sourceRoot":"","sources":["../../src/rules/AlwaysSkipPrivacyPolicyRule.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yEAA8E;AAM9E;;GAEG;AACH,MAAqB,2BAMnB,SAAQ,2BAAyE;IACjF,KAAK,CAAC,aAAa,CACjB,cAA8B,EAC9B,aAAiC,EACjC,kBAAwD,EACxD,OAAgB;QAEhB,OAAO,wCAAoB,CAAC,IAAI,CAAC;IACnC,CAAC;CACF;AAfD,8CAeC"}
1
+ {"version":3,"file":"AlwaysSkipPrivacyPolicyRule.js","sourceRoot":"","sources":["../../src/rules/AlwaysSkipPrivacyPolicyRule.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yEAA8E;AAM9E;;GAEG;AACH,MAAqB,2BAMnB,SAAQ,2BAAyE;IACjF,KAAK,CAAC,aAAa,CACjB,cAA8B,EAC9B,aAAiC,EACjC,kBAMC,EACD,OAAgB;QAEhB,OAAO,wCAAoB,CAAC,IAAI,CAAC;IACnC,CAAC;CACF;AArBD,8CAqBC"}
@@ -33,5 +33,5 @@ export declare enum RuleEvaluationResult {
33
33
  * would be named something like `DenyIfViewerHasBeenBlockedPrivacyPolicyRule`.
34
34
  */
35
35
  export default abstract class PrivacyPolicyRule<TFields extends object, TID extends NonNullable<TFields[TSelectedFields]>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TID, TViewerContext, TSelectedFields>, TSelectedFields extends keyof TFields = keyof TFields> {
36
- abstract evaluateAsync(viewerContext: TViewerContext, queryContext: EntityQueryContext, evaluationContext: EntityPrivacyPolicyEvaluationContext, entity: TEntity): Promise<RuleEvaluationResult>;
36
+ abstract evaluateAsync(viewerContext: TViewerContext, queryContext: EntityQueryContext, evaluationContext: EntityPrivacyPolicyEvaluationContext<TFields, TID, TViewerContext, TEntity, TSelectedFields>, entity: TEntity): Promise<RuleEvaluationResult>;
37
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PrivacyPolicyRule.js","sourceRoot":"","sources":["../../src/rules/PrivacyPolicyRule.ts"],"names":[],"mappings":";;;AAKA,IAAY,oBAeX;AAfD,WAAY,oBAAoB;IAC9B;;OAEG;IACH,gEAAS,CAAA;IAET;;OAEG;IACH,+DAAQ,CAAA;IAER;;OAEG;IACH,iEAAS,CAAA;AACX,CAAC,EAfW,oBAAoB,oCAApB,oBAAoB,QAe/B;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAA8B,iBAAiB;CAa9C;AAbD,oCAaC"}
1
+ {"version":3,"file":"PrivacyPolicyRule.js","sourceRoot":"","sources":["../../src/rules/PrivacyPolicyRule.ts"],"names":[],"mappings":";;;AAKA,IAAY,oBAeX;AAfD,WAAY,oBAAoB;IAC9B;;OAEG;IACH,gEAAS,CAAA;IAET;;OAEG;IACH,+DAAQ,CAAA;IAER;;OAEG;IACH,iEAAS,CAAA;AACX,CAAC,EAfW,oBAAoB,oCAApB,oBAAoB,QAe/B;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAA8B,iBAAiB;CAmB9C;AAnBD,oCAmBC"}
@@ -1 +1 @@
1
- {"version":3,"file":"AlwaysAllowPrivacyPolicyRule-test.js","sourceRoot":"","sources":["../../../src/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.ts"],"names":[],"mappings":";;;;;AAAA,2CAAsD;AAGtD,iEAA8D;AAC9D,wEAAgD;AAChD,+FAA2F;AAC3F,mGAA2E;AAE3E,IAAA,sDAAyB,EAAC,IAAI,sCAA4B,EAAE,EAAE;IAC5D,UAAU,EAAE;QACV;YACE,aAAa,EAAE,IAAA,qBAAQ,EAAC,IAAA,iBAAI,EAAC,uBAAa,CAAC,CAAC;YAC5C,YAAY,EAAE,IAAA,qBAAQ,EAAC,IAAA,iBAAI,EAAC,uCAAkB,CAAC,CAAC;YAChD,iBAAiB,EAAE,IAAA,qBAAQ,EAAC,IAAA,iBAAI,GAAwC,CAAC;YACzE,MAAM,EAAE,IAAA,qBAAQ,GAAE;SACnB;KACF;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"AlwaysAllowPrivacyPolicyRule-test.js","sourceRoot":"","sources":["../../../src/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.ts"],"names":[],"mappings":";;;;;AAAA,2CAAsD;AAGtD,iEAA8D;AAC9D,wEAAgD;AAChD,+FAA2F;AAC3F,mGAA2E;AAE3E,IAAA,sDAAyB,EAAC,IAAI,sCAA4B,EAAE,EAAE;IAC5D,UAAU,EAAE;QACV;YACE,aAAa,EAAE,IAAA,qBAAQ,EAAC,IAAA,iBAAI,EAAC,uBAAa,CAAC,CAAC;YAC5C,YAAY,EAAE,IAAA,qBAAQ,EAAC,IAAA,iBAAI,EAAC,uCAAkB,CAAC,CAAC;YAChD,iBAAiB,EACf,IAAA,qBAAQ,EAAC,IAAA,iBAAI,GAAiE,CAAC;YACjF,MAAM,EAAE,IAAA,qBAAQ,GAAE;SACnB;KACF;CACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"AlwaysDenyPrivacyPolicyRule-test.js","sourceRoot":"","sources":["../../../src/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.ts"],"names":[],"mappings":";;;;;AAAA,2CAAsD;AAGtD,iEAA8D;AAC9D,wEAAgD;AAChD,+FAA2F;AAC3F,iGAAyE;AAEzE,IAAA,sDAAyB,EAAC,IAAI,qCAA2B,EAAE,EAAE;IAC3D,SAAS,EAAE;QACT;YACE,aAAa,EAAE,IAAA,qBAAQ,EAAC,IAAA,iBAAI,EAAC,uBAAa,CAAC,CAAC;YAC5C,YAAY,EAAE,IAAA,qBAAQ,EAAC,IAAA,iBAAI,EAAC,uCAAkB,CAAC,CAAC;YAChD,iBAAiB,EAAE,IAAA,qBAAQ,EAAC,IAAA,iBAAI,GAAwC,CAAC;YACzE,MAAM,EAAE,IAAA,qBAAQ,GAAE;SACnB;KACF;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"AlwaysDenyPrivacyPolicyRule-test.js","sourceRoot":"","sources":["../../../src/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.ts"],"names":[],"mappings":";;;;;AAAA,2CAAsD;AAGtD,iEAA8D;AAC9D,wEAAgD;AAChD,+FAA2F;AAC3F,iGAAyE;AAEzE,IAAA,sDAAyB,EAAC,IAAI,qCAA2B,EAAE,EAAE;IAC3D,SAAS,EAAE;QACT;YACE,aAAa,EAAE,IAAA,qBAAQ,EAAC,IAAA,iBAAI,EAAC,uBAAa,CAAC,CAAC;YAC5C,YAAY,EAAE,IAAA,qBAAQ,EAAC,IAAA,iBAAI,EAAC,uCAAkB,CAAC,CAAC;YAChD,iBAAiB,EACf,IAAA,qBAAQ,EAAC,IAAA,iBAAI,GAAiE,CAAC;YACjF,MAAM,EAAE,IAAA,qBAAQ,GAAE;SACnB;KACF;CACF,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"AlwaysSkipPrivacyPolicyRule-test.js","sourceRoot":"","sources":["../../../src/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.ts"],"names":[],"mappings":";;;;;AAAA,2CAAsD;AAGtD,iEAA8D;AAC9D,wEAAgD;AAChD,+FAA2F;AAC3F,iGAAyE;AAEzE,IAAA,sDAAyB,EAAC,IAAI,qCAA2B,EAAE,EAAE;IAC3D,SAAS,EAAE;QACT;YACE,aAAa,EAAE,IAAA,qBAAQ,EAAC,IAAA,iBAAI,EAAC,uBAAa,CAAC,CAAC;YAC5C,YAAY,EAAE,IAAA,qBAAQ,EAAC,IAAA,iBAAI,EAAC,uCAAkB,CAAC,CAAC;YAChD,iBAAiB,EAAE,IAAA,qBAAQ,EAAC,IAAA,iBAAI,GAAwC,CAAC;YACzE,MAAM,EAAE,IAAA,qBAAQ,GAAE;SACnB;KACF;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"AlwaysSkipPrivacyPolicyRule-test.js","sourceRoot":"","sources":["../../../src/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.ts"],"names":[],"mappings":";;;;;AAAA,2CAAsD;AAGtD,iEAA8D;AAC9D,wEAAgD;AAChD,+FAA2F;AAC3F,iGAAyE;AAEzE,IAAA,sDAAyB,EAAC,IAAI,qCAA2B,EAAE,EAAE;IAC3D,SAAS,EAAE;QACT;YACE,aAAa,EAAE,IAAA,qBAAQ,EAAC,IAAA,iBAAI,EAAC,uBAAa,CAAC,CAAC;YAC5C,YAAY,EAAE,IAAA,qBAAQ,EAAC,IAAA,iBAAI,EAAC,uCAAkB,CAAC,CAAC;YAChD,iBAAiB,EACf,IAAA,qBAAQ,EAAC,IAAA,iBAAI,GAAiE,CAAC;YACjF,MAAM,EAAE,IAAA,qBAAQ,GAAE;SACnB;KACF;CACF,CAAC,CAAC"}
@@ -21,21 +21,18 @@ exports.dateIDTestEntityConfiguration = new EntityConfiguration_1.default({
21
21
  cacheAdapterFlavor: 'redis',
22
22
  });
23
23
  class DateIDTestEntityPrivacyPolicy extends EntityPrivacyPolicy_1.default {
24
- constructor() {
25
- super(...arguments);
26
- this.readRules = [
27
- new AlwaysAllowPrivacyPolicyRule_1.default(),
28
- ];
29
- this.createRules = [
30
- new AlwaysAllowPrivacyPolicyRule_1.default(),
31
- ];
32
- this.updateRules = [
33
- new AlwaysAllowPrivacyPolicyRule_1.default(),
34
- ];
35
- this.deleteRules = [
36
- new AlwaysAllowPrivacyPolicyRule_1.default(),
37
- ];
38
- }
24
+ readRules = [
25
+ new AlwaysAllowPrivacyPolicyRule_1.default(),
26
+ ];
27
+ createRules = [
28
+ new AlwaysAllowPrivacyPolicyRule_1.default(),
29
+ ];
30
+ updateRules = [
31
+ new AlwaysAllowPrivacyPolicyRule_1.default(),
32
+ ];
33
+ deleteRules = [
34
+ new AlwaysAllowPrivacyPolicyRule_1.default(),
35
+ ];
39
36
  }
40
37
  exports.DateIDTestEntityPrivacyPolicy = DateIDTestEntityPrivacyPolicy;
41
38
  class DateIDTestEntity extends Entity_1.default {
@@ -1 +1 @@
1
- {"version":3,"file":"DateIDTestEntity.js","sourceRoot":"","sources":["../../src/testfixtures/DateIDTestEntity.ts"],"names":[],"mappings":";;;;;;AAAA,uDAA+B;AAE/B,iFAAyD;AACzD,kDAA4C;AAC5C,iFAAyD;AAEzD,yGAAiF;AAMpE,QAAA,6BAA6B,GAAG,IAAI,6BAAmB,CAAmB;IACrF,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,2CAA2C;IACtD,MAAM,EAAE;QACN,EAAE,EAAE,IAAI,wBAAS,CAAC;YAChB,UAAU,EAAE,WAAW;SACxB,CAAC;KACH;IACD,qBAAqB,EAAE,UAAU;IACjC,kBAAkB,EAAE,OAAO;CAC5B,CAAC,CAAC;AAEH,MAAa,6BAA8B,SAAQ,6BAKlD;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,sEAkBC;AAED,MAAqB,gBAAiB,SAAQ,gBAA6C;IACzF,MAAM,CAAC,yBAAyB;QAO9B,OAAO;YACL,WAAW,EAAE,gBAAgB;YAC7B,mBAAmB,EAAE,qCAA6B;YAClD,kBAAkB,EAAE,6BAA6B;SAClD,CAAC;IACJ,CAAC;CACF;AAdD,mCAcC"}
1
+ {"version":3,"file":"DateIDTestEntity.js","sourceRoot":"","sources":["../../src/testfixtures/DateIDTestEntity.ts"],"names":[],"mappings":";;;;;;AAAA,uDAA+B;AAE/B,iFAAyD;AACzD,kDAA4C;AAC5C,iFAAyD;AAEzD,yGAAiF;AAMpE,QAAA,6BAA6B,GAAG,IAAI,6BAAmB,CAAmB;IACrF,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,2CAA2C;IACtD,MAAM,EAAE;QACN,EAAE,EAAE,IAAI,wBAAS,CAAC;YAChB,UAAU,EAAE,WAAW;SACxB,CAAC;KACH;IACD,qBAAqB,EAAE,UAAU;IACjC,kBAAkB,EAAE,OAAO;CAC5B,CAAC,CAAC;AAEH,MAAa,6BAA8B,SAAQ,6BAKlD;IAC6B,SAAS,GAAG;QACtC,IAAI,sCAA4B,EAA2D;KAC5F,CAAC;IAC0B,WAAW,GAAG;QACxC,IAAI,sCAA4B,EAA2D;KAC5F,CAAC;IAC0B,WAAW,GAAG;QACxC,IAAI,sCAA4B,EAA2D;KAC5F,CAAC;IAC0B,WAAW,GAAG;QACxC,IAAI,sCAA4B,EAA2D;KAC5F,CAAC;CACH;AAlBD,sEAkBC;AAED,MAAqB,gBAAiB,SAAQ,gBAA6C;IACzF,MAAM,CAAC,yBAAyB;QAO9B,OAAO;YACL,WAAW,EAAE,gBAAgB;YAC7B,mBAAmB,EAAE,qCAA6B;YAClD,kBAAkB,EAAE,6BAA6B;SAClD,CAAC;IACJ,CAAC;CACF;AAdD,mCAcC"}
@@ -21,21 +21,18 @@ exports.simpleTestEntityConfiguration = new EntityConfiguration_1.default({
21
21
  cacheAdapterFlavor: 'redis',
22
22
  });
23
23
  class SimpleTestEntityPrivacyPolicy extends EntityPrivacyPolicy_1.default {
24
- constructor() {
25
- super(...arguments);
26
- this.readRules = [
27
- new AlwaysAllowPrivacyPolicyRule_1.default(),
28
- ];
29
- this.createRules = [
30
- new AlwaysAllowPrivacyPolicyRule_1.default(),
31
- ];
32
- this.updateRules = [
33
- new AlwaysAllowPrivacyPolicyRule_1.default(),
34
- ];
35
- this.deleteRules = [
36
- new AlwaysAllowPrivacyPolicyRule_1.default(),
37
- ];
38
- }
24
+ readRules = [
25
+ new AlwaysAllowPrivacyPolicyRule_1.default(),
26
+ ];
27
+ createRules = [
28
+ new AlwaysAllowPrivacyPolicyRule_1.default(),
29
+ ];
30
+ updateRules = [
31
+ new AlwaysAllowPrivacyPolicyRule_1.default(),
32
+ ];
33
+ deleteRules = [
34
+ new AlwaysAllowPrivacyPolicyRule_1.default(),
35
+ ];
39
36
  }
40
37
  exports.SimpleTestEntityPrivacyPolicy = SimpleTestEntityPrivacyPolicy;
41
38
  class SimpleTestEntity extends Entity_1.default {
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleTestEntity.js","sourceRoot":"","sources":["../../src/testfixtures/SimpleTestEntity.ts"],"names":[],"mappings":";;;;;;AAAA,uDAA+B;AAE/B,iFAAyD;AACzD,kDAA4C;AAC5C,iFAAyD;AAEzD,yGAAiF;AAQpE,QAAA,6BAA6B,GAAG,IAAI,6BAAmB,CAAmB;IACrF,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,2CAA2C;IACtD,MAAM,EAAE;QACN,EAAE,EAAE,IAAI,wBAAS,CAAC;YAChB,UAAU,EAAE,WAAW;SACxB,CAAC;KACH;IACD,qBAAqB,EAAE,UAAU;IACjC,kBAAkB,EAAE,OAAO;CAC5B,CAAC,CAAC;AAEH,MAAa,6BAA8B,SAAQ,6BAMlD;IAND;;QAO8B,cAAS,GAAG;YACtC,IAAI,sCAA4B,EAM7B;SACJ,CAAC;QAC0B,gBAAW,GAAG;YACxC,IAAI,sCAA4B,EAM7B;SACJ,CAAC;QAC0B,gBAAW,GAAG;YACxC,IAAI,sCAA4B,EAM7B;SACJ,CAAC;QAC0B,gBAAW,GAAG;YACxC,IAAI,sCAA4B,EAM7B;SACJ,CAAC;IACJ,CAAC;CAAA;AA3CD,sEA2CC;AAED,MAAqB,gBAAiB,SAAQ,gBAK7C;IACC,MAAM,CAAC,yBAAyB;QAQ9B,OAAO;YACL,WAAW,EAAE,gBAAgB;YAC7B,mBAAmB,EAAE,qCAA6B;YAClD,kBAAkB,EAAE,6BAA6B;SAClD,CAAC;IACJ,CAAC;CACF;AApBD,mCAoBC"}
1
+ {"version":3,"file":"SimpleTestEntity.js","sourceRoot":"","sources":["../../src/testfixtures/SimpleTestEntity.ts"],"names":[],"mappings":";;;;;;AAAA,uDAA+B;AAE/B,iFAAyD;AACzD,kDAA4C;AAC5C,iFAAyD;AAEzD,yGAAiF;AAQpE,QAAA,6BAA6B,GAAG,IAAI,6BAAmB,CAAmB;IACrF,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,2CAA2C;IACtD,MAAM,EAAE;QACN,EAAE,EAAE,IAAI,wBAAS,CAAC;YAChB,UAAU,EAAE,WAAW;SACxB,CAAC;KACH;IACD,qBAAqB,EAAE,UAAU;IACjC,kBAAkB,EAAE,OAAO;CAC5B,CAAC,CAAC;AAEH,MAAa,6BAA8B,SAAQ,6BAMlD;IAC6B,SAAS,GAAG;QACtC,IAAI,sCAA4B,EAM7B;KACJ,CAAC;IAC0B,WAAW,GAAG;QACxC,IAAI,sCAA4B,EAM7B;KACJ,CAAC;IAC0B,WAAW,GAAG;QACxC,IAAI,sCAA4B,EAM7B;KACJ,CAAC;IAC0B,WAAW,GAAG;QACxC,IAAI,sCAA4B,EAM7B;KACJ,CAAC;CACH;AA3CD,sEA2CC;AAED,MAAqB,gBAAiB,SAAQ,gBAK7C;IACC,MAAM,CAAC,yBAAyB;QAQ9B,OAAO;YACL,WAAW,EAAE,gBAAgB;YAC7B,mBAAmB,EAAE,qCAA6B;YAClD,kBAAkB,EAAE,6BAA6B;SAClD,CAAC;IACJ,CAAC;CACF;AApBD,mCAoBC"}
@@ -38,21 +38,18 @@ exports.testEntityConfiguration = new EntityConfiguration_1.default({
38
38
  cacheAdapterFlavor: 'redis',
39
39
  });
40
40
  class TestEntityPrivacyPolicy extends EntityPrivacyPolicy_1.default {
41
- constructor() {
42
- super(...arguments);
43
- this.readRules = [
44
- new AlwaysAllowPrivacyPolicyRule_1.default(),
45
- ];
46
- this.createRules = [
47
- new AlwaysAllowPrivacyPolicyRule_1.default(),
48
- ];
49
- this.updateRules = [
50
- new AlwaysAllowPrivacyPolicyRule_1.default(),
51
- ];
52
- this.deleteRules = [
53
- new AlwaysAllowPrivacyPolicyRule_1.default(),
54
- ];
55
- }
41
+ readRules = [
42
+ new AlwaysAllowPrivacyPolicyRule_1.default(),
43
+ ];
44
+ createRules = [
45
+ new AlwaysAllowPrivacyPolicyRule_1.default(),
46
+ ];
47
+ updateRules = [
48
+ new AlwaysAllowPrivacyPolicyRule_1.default(),
49
+ ];
50
+ deleteRules = [
51
+ new AlwaysAllowPrivacyPolicyRule_1.default(),
52
+ ];
56
53
  }
57
54
  exports.TestEntityPrivacyPolicy = TestEntityPrivacyPolicy;
58
55
  class TestEntity extends Entity_1.default {
@@ -1 +1 @@
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"}
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;IAC6B,SAAS,GAAG;QACtC,IAAI,sCAA4B,EAAiD;KAClF,CAAC;IAC0B,WAAW,GAAG;QACxC,IAAI,sCAA4B,EAAiD;KAClF,CAAC;IAC0B,WAAW,GAAG;QACxC,IAAI,sCAA4B,EAAiD;KAClF,CAAC;IAC0B,WAAW,GAAG;QACxC,IAAI,sCAA4B,EAAiD;KAClF,CAAC;CACH;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"}
@@ -24,21 +24,18 @@ exports.testEntity2Configuration = new EntityConfiguration_1.default({
24
24
  cacheAdapterFlavor: 'redis',
25
25
  });
26
26
  class TestEntity2PrivacyPolicy extends EntityPrivacyPolicy_1.default {
27
- constructor() {
28
- super(...arguments);
29
- this.readRules = [
30
- new AlwaysAllowPrivacyPolicyRule_1.default(),
31
- ];
32
- this.createRules = [
33
- new AlwaysAllowPrivacyPolicyRule_1.default(),
34
- ];
35
- this.updateRules = [
36
- new AlwaysAllowPrivacyPolicyRule_1.default(),
37
- ];
38
- this.deleteRules = [
39
- new AlwaysAllowPrivacyPolicyRule_1.default(),
40
- ];
41
- }
27
+ readRules = [
28
+ new AlwaysAllowPrivacyPolicyRule_1.default(),
29
+ ];
30
+ createRules = [
31
+ new AlwaysAllowPrivacyPolicyRule_1.default(),
32
+ ];
33
+ updateRules = [
34
+ new AlwaysAllowPrivacyPolicyRule_1.default(),
35
+ ];
36
+ deleteRules = [
37
+ new AlwaysAllowPrivacyPolicyRule_1.default(),
38
+ ];
42
39
  }
43
40
  exports.TestEntity2PrivacyPolicy = TestEntity2PrivacyPolicy;
44
41
  class TestEntity2 extends Entity_1.default {
@@ -1 +1 @@
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"}
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;IAC6B,SAAS,GAAG;QACtC,IAAI,sCAA4B,EAAmD;KACpF,CAAC;IAC0B,WAAW,GAAG;QACxC,IAAI,sCAA4B,EAAmD;KACpF,CAAC;IAC0B,WAAW,GAAG;QACxC,IAAI,sCAA4B,EAAmD;KACpF,CAAC;IAC0B,WAAW,GAAG;QACxC,IAAI,sCAA4B,EAAmD;KACpF,CAAC;CACH;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"}
@@ -21,21 +21,18 @@ exports.numberKeyEntityConfiguration = new EntityConfiguration_1.default({
21
21
  cacheAdapterFlavor: 'redis',
22
22
  });
23
23
  class NumberKeyPrivacyPolicy extends EntityPrivacyPolicy_1.default {
24
- constructor() {
25
- super(...arguments);
26
- this.readRules = [
27
- new AlwaysAllowPrivacyPolicyRule_1.default(),
28
- ];
29
- this.createRules = [
30
- new AlwaysAllowPrivacyPolicyRule_1.default(),
31
- ];
32
- this.updateRules = [
33
- new AlwaysAllowPrivacyPolicyRule_1.default(),
34
- ];
35
- this.deleteRules = [
36
- new AlwaysAllowPrivacyPolicyRule_1.default(),
37
- ];
38
- }
24
+ readRules = [
25
+ new AlwaysAllowPrivacyPolicyRule_1.default(),
26
+ ];
27
+ createRules = [
28
+ new AlwaysAllowPrivacyPolicyRule_1.default(),
29
+ ];
30
+ updateRules = [
31
+ new AlwaysAllowPrivacyPolicyRule_1.default(),
32
+ ];
33
+ deleteRules = [
34
+ new AlwaysAllowPrivacyPolicyRule_1.default(),
35
+ ];
39
36
  }
40
37
  exports.NumberKeyPrivacyPolicy = NumberKeyPrivacyPolicy;
41
38
  class NumberKeyEntity extends Entity_1.default {
@@ -1 +1 @@
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"}
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;IAC6B,SAAS,GAAG;QACtC,IAAI,sCAA4B,EAA2D;KAC5F,CAAC;IAC0B,WAAW,GAAG;QACxC,IAAI,sCAA4B,EAA2D;KAC5F,CAAC;IAC0B,WAAW,GAAG;QACxC,IAAI,sCAA4B,EAA2D;KAC5F,CAAC;IAC0B,WAAW,GAAG;QACxC,IAAI,sCAA4B,EAA2D;KAC5F,CAAC;CACH;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"}
@@ -0,0 +1,36 @@
1
+ import Entity from '../Entity';
2
+ import { EntityCompanionDefinition } from '../EntityCompanionProvider';
3
+ import EntityConfiguration from '../EntityConfiguration';
4
+ import { EntityTriggerMutationInfo } from '../EntityMutationInfo';
5
+ import { EntityMutationTrigger, EntityNonTransactionalMutationTrigger } from '../EntityMutationTriggerConfiguration';
6
+ import EntityPrivacyPolicy from '../EntityPrivacyPolicy';
7
+ import { EntityQueryContext } from '../EntityQueryContext';
8
+ import ViewerContext from '../ViewerContext';
9
+ import AlwaysAllowPrivacyPolicyRule from '../rules/AlwaysAllowPrivacyPolicyRule';
10
+ export type TestMTFields = {
11
+ id: string;
12
+ stringField: string;
13
+ };
14
+ export declare const testEntityMTConfiguration: EntityConfiguration<TestMTFields>;
15
+ export declare class TestEntityMTPrivacyPolicy extends EntityPrivacyPolicy<TestMTFields, string, ViewerContext, TestEntityWithMutationTriggers> {
16
+ protected readonly readRules: AlwaysAllowPrivacyPolicyRule<TestMTFields, string, ViewerContext, TestEntityWithMutationTriggers, keyof TestMTFields>[];
17
+ protected readonly createRules: AlwaysAllowPrivacyPolicyRule<TestMTFields, string, ViewerContext, TestEntityWithMutationTriggers, keyof TestMTFields>[];
18
+ protected readonly updateRules: AlwaysAllowPrivacyPolicyRule<TestMTFields, string, ViewerContext, TestEntityWithMutationTriggers, keyof TestMTFields>[];
19
+ protected readonly deleteRules: AlwaysAllowPrivacyPolicyRule<TestMTFields, string, ViewerContext, TestEntityWithMutationTriggers, keyof TestMTFields>[];
20
+ }
21
+ export declare class TestMutationTrigger extends EntityMutationTrigger<TestMTFields, string, ViewerContext, TestEntityWithMutationTriggers, keyof TestMTFields> {
22
+ private readonly key;
23
+ constructor(key: string);
24
+ executeAsync(_viewerContext: ViewerContext, _queryContext: EntityQueryContext, _entity: TestEntityWithMutationTriggers, _mutationInfo: EntityTriggerMutationInfo<TestMTFields, string, ViewerContext, TestEntityWithMutationTriggers, keyof TestMTFields>): Promise<void>;
25
+ }
26
+ export declare class NonTransactionalTestMutationTrigger extends EntityNonTransactionalMutationTrigger<TestMTFields, string, ViewerContext, TestEntityWithMutationTriggers, keyof TestMTFields> {
27
+ private readonly key;
28
+ constructor(key: string);
29
+ executeAsync(_viewerContext: ViewerContext, _entity: TestEntityWithMutationTriggers, _mutationInfo: EntityTriggerMutationInfo<TestMTFields, string, ViewerContext, TestEntityWithMutationTriggers, keyof TestMTFields>): Promise<void>;
30
+ }
31
+ /**
32
+ * A test Entity that has one afterCreate and one afterAll trigger
33
+ */
34
+ export default class TestEntityWithMutationTriggers extends Entity<TestMTFields, string, ViewerContext> {
35
+ static defineCompanionDefinition(): EntityCompanionDefinition<TestMTFields, string, ViewerContext, TestEntityWithMutationTriggers, TestEntityMTPrivacyPolicy>;
36
+ }
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.NonTransactionalTestMutationTrigger = exports.TestMutationTrigger = exports.TestEntityMTPrivacyPolicy = exports.testEntityMTConfiguration = void 0;
7
+ const Entity_1 = __importDefault(require("../Entity"));
8
+ const EntityConfiguration_1 = __importDefault(require("../EntityConfiguration"));
9
+ const EntityFields_1 = require("../EntityFields");
10
+ const EntityMutationTriggerConfiguration_1 = require("../EntityMutationTriggerConfiguration");
11
+ const EntityPrivacyPolicy_1 = __importDefault(require("../EntityPrivacyPolicy"));
12
+ const AlwaysAllowPrivacyPolicyRule_1 = __importDefault(require("../rules/AlwaysAllowPrivacyPolicyRule"));
13
+ exports.testEntityMTConfiguration = new EntityConfiguration_1.default({
14
+ idField: 'id',
15
+ tableName: 'test_entity_should_not_write_to_db_3',
16
+ schema: {
17
+ id: new EntityFields_1.UUIDField({
18
+ columnName: 'id',
19
+ }),
20
+ stringField: new EntityFields_1.StringField({
21
+ columnName: 'string_field',
22
+ }),
23
+ },
24
+ databaseAdapterFlavor: 'postgres',
25
+ cacheAdapterFlavor: 'redis',
26
+ });
27
+ class TestEntityMTPrivacyPolicy extends EntityPrivacyPolicy_1.default {
28
+ readRules = [
29
+ new AlwaysAllowPrivacyPolicyRule_1.default(),
30
+ ];
31
+ createRules = [
32
+ new AlwaysAllowPrivacyPolicyRule_1.default(),
33
+ ];
34
+ updateRules = [
35
+ new AlwaysAllowPrivacyPolicyRule_1.default(),
36
+ ];
37
+ deleteRules = [
38
+ new AlwaysAllowPrivacyPolicyRule_1.default(),
39
+ ];
40
+ }
41
+ exports.TestEntityMTPrivacyPolicy = TestEntityMTPrivacyPolicy;
42
+ class TestMutationTrigger extends EntityMutationTriggerConfiguration_1.EntityMutationTrigger {
43
+ key;
44
+ constructor(
45
+ // @ts-expect-error key is never used but is helpful for debugging
46
+ key) {
47
+ super();
48
+ this.key = key;
49
+ }
50
+ async executeAsync(_viewerContext, _queryContext, _entity, _mutationInfo) { }
51
+ }
52
+ exports.TestMutationTrigger = TestMutationTrigger;
53
+ class NonTransactionalTestMutationTrigger extends EntityMutationTriggerConfiguration_1.EntityNonTransactionalMutationTrigger {
54
+ key;
55
+ constructor(
56
+ // @ts-expect-error key is never used but is helpful for debugging
57
+ key) {
58
+ super();
59
+ this.key = key;
60
+ }
61
+ async executeAsync(_viewerContext, _entity, _mutationInfo) { }
62
+ }
63
+ exports.NonTransactionalTestMutationTrigger = NonTransactionalTestMutationTrigger;
64
+ /**
65
+ * A test Entity that has one afterCreate and one afterAll trigger
66
+ */
67
+ class TestEntityWithMutationTriggers extends Entity_1.default {
68
+ static defineCompanionDefinition() {
69
+ return {
70
+ entityClass: TestEntityWithMutationTriggers,
71
+ entityConfiguration: exports.testEntityMTConfiguration,
72
+ privacyPolicyClass: TestEntityMTPrivacyPolicy,
73
+ mutationTriggers: {
74
+ afterCreate: [new TestMutationTrigger('localAfterCreate')],
75
+ afterAll: [new TestMutationTrigger('localAfterAll')],
76
+ afterCommit: [new NonTransactionalTestMutationTrigger('localAfterCommit')],
77
+ },
78
+ };
79
+ }
80
+ }
81
+ exports.default = TestEntityWithMutationTriggers;
82
+ //# sourceMappingURL=TestEntityWithMutationTriggers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TestEntityWithMutationTriggers.js","sourceRoot":"","sources":["../../src/testfixtures/TestEntityWithMutationTriggers.ts"],"names":[],"mappings":";;;;;;AAAA,uDAA+B;AAE/B,iFAAyD;AACzD,kDAAyD;AAEzD,8FAG+C;AAC/C,iFAAyD;AAGzD,yGAAiF;AAOpE,QAAA,yBAAyB,GAAG,IAAI,6BAAmB,CAAe;IAC7E,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,sCAAsC;IACjD,MAAM,EAAE;QACN,EAAE,EAAE,IAAI,wBAAS,CAAC;YAChB,UAAU,EAAE,IAAI;SACjB,CAAC;QACF,WAAW,EAAE,IAAI,0BAAW,CAAC;YAC3B,UAAU,EAAE,cAAc;SAC3B,CAAC;KACH;IACD,qBAAqB,EAAE,UAAU;IACjC,kBAAkB,EAAE,OAAO;CAC5B,CAAC,CAAC;AAEH,MAAa,yBAA0B,SAAQ,6BAK9C;IAC6B,SAAS,GAAG;QACtC,IAAI,sCAA4B,EAK7B;KACJ,CAAC;IAC0B,WAAW,GAAG;QACxC,IAAI,sCAA4B,EAK7B;KACJ,CAAC;IAC0B,WAAW,GAAG;QACxC,IAAI,sCAA4B,EAK7B;KACJ,CAAC;IAC0B,WAAW,GAAG;QACxC,IAAI,sCAA4B,EAK7B;KACJ,CAAC;CACH;AAtCD,8DAsCC;AAED,MAAa,mBAAoB,SAAQ,0DAMxC;IAGoB;IAFnB;IACE,kEAAkE;IACjD,GAAW;QAE5B,KAAK,EAAE,CAAC;QAFS,QAAG,GAAH,GAAG,CAAQ;IAG9B,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,cAA6B,EAC7B,aAAiC,EACjC,OAAuC,EACvC,aAMC,IACe,CAAC;CACpB;AA1BD,kDA0BC;AAED,MAAa,mCAAoC,SAAQ,0EAMxD;IAGoB;IAFnB;IACE,kEAAkE;IACjD,GAAW;QAE5B,KAAK,EAAE,CAAC;QAFS,QAAG,GAAH,GAAG,CAAQ;IAG9B,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,cAA6B,EAC7B,OAAuC,EACvC,aAMC,IACe,CAAC;CACpB;AAzBD,kFAyBC;AAED;;GAEG;AACH,MAAqB,8BAA+B,SAAQ,gBAI3D;IACC,MAAM,CAAC,yBAAyB;QAO9B,OAAO;YACL,WAAW,EAAE,8BAA8B;YAC3C,mBAAmB,EAAE,iCAAyB;YAC9C,kBAAkB,EAAE,yBAAyB;YAC7C,gBAAgB,EAAE;gBAChB,WAAW,EAAE,CAAC,IAAI,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;gBAC1D,QAAQ,EAAE,CAAC,IAAI,mBAAmB,CAAC,eAAe,CAAC,CAAC;gBACpD,WAAW,EAAE,CAAC,IAAI,mCAAmC,CAAC,kBAAkB,CAAC,CAAC;aAC3E;SACF,CAAC;IACJ,CAAC;CACF;AAvBD,iDAuBC"}
@@ -0,0 +1,34 @@
1
+ import Entity, { IEntityClass } from '../Entity';
2
+ import EntityPrivacyPolicy from '../EntityPrivacyPolicy';
3
+ import { EntityQueryContext } from '../EntityQueryContext';
4
+ import ViewerContext from '../ViewerContext';
5
+ /**
6
+ * Check whether an entity loaded by a viewer can be updated by that same viewer.
7
+ *
8
+ * @remarks
9
+ *
10
+ * This may be useful in situations relying upon the thrown privacy policy thrown authorization error
11
+ * is insufficient for the task at hand. When dealing with purely a sequence of mutations it is easy
12
+ * to roll back all mutations given a single authorization error by wrapping them in a single transaction.
13
+ * When certain portions of a mutation cannot be rolled back transactionally (third pary calls,
14
+ * legacy code, etc), using this method can help decide whether the sequence of mutations will fail before
15
+ * attempting them. Note that if any privacy policy rules use a piece of data being updated in the mutations
16
+ * the result of this method and the update mutation itself may differ.
17
+ *
18
+ * @param entityClass - class of entity
19
+ * @param sourceEntity - entity loaded by viewer
20
+ * @param queryContext - query context in which to perform the check
21
+ */
22
+ export declare function canViewerUpdateAsync<TMFields extends object, TMID extends NonNullable<TMFields[TMSelectedFields]>, TMViewerContext extends ViewerContext, TMEntity extends Entity<TMFields, TMID, TMViewerContext, TMSelectedFields>, TMPrivacyPolicy extends EntityPrivacyPolicy<TMFields, TMID, TMViewerContext, TMEntity, TMSelectedFields>, TMSelectedFields extends keyof TMFields = keyof TMFields>(entityClass: IEntityClass<TMFields, TMID, TMViewerContext, TMEntity, TMPrivacyPolicy, TMSelectedFields>, sourceEntity: TMEntity, queryContext?: EntityQueryContext): Promise<boolean>;
23
+ /**
24
+ * Check whether a single entity loaded by a viewer can be deleted by that same viewer.
25
+ * This recursively checks edge cascade permissions (EntityEdgeDeletionBehavior) as well.
26
+ *
27
+ * @remarks
28
+ * See remarks for canViewerUpdate.
29
+ *
30
+ * @param entityClass - class of entity
31
+ * @param sourceEntity - entity loaded by viewer
32
+ * @param queryContext - query context in which to perform the check
33
+ */
34
+ export declare function canViewerDeleteAsync<TFields extends object, TID extends NonNullable<TFields[TSelectedFields]>, TMViewerContext extends ViewerContext, TEntity extends Entity<TFields, TID, TMViewerContext, TSelectedFields>, TPrivacyPolicy extends EntityPrivacyPolicy<TFields, TID, TMViewerContext, TEntity, TSelectedFields>, TSelectedFields extends keyof TFields = keyof TFields>(entityClass: IEntityClass<TFields, TID, TMViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>, sourceEntity: TEntity, queryContext?: EntityQueryContext): Promise<boolean>;