@expo/entity 0.40.0 → 0.42.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.
- package/build/AuthorizationResultBasedEntityAssociationLoader.d.ts +16 -16
- package/build/AuthorizationResultBasedEntityAssociationLoader.js +2 -4
- package/build/AuthorizationResultBasedEntityAssociationLoader.js.map +1 -1
- package/build/AuthorizationResultBasedEntityLoader.d.ts +39 -67
- package/build/AuthorizationResultBasedEntityLoader.js +85 -62
- package/build/AuthorizationResultBasedEntityLoader.js.map +1 -1
- package/build/AuthorizationResultBasedEntityMutator.d.ts +16 -16
- package/build/AuthorizationResultBasedEntityMutator.js.map +1 -1
- package/build/ComposedEntityCacheAdapter.d.ts +7 -6
- package/build/ComposedEntityCacheAdapter.js +28 -28
- package/build/ComposedEntityCacheAdapter.js.map +1 -1
- package/build/ComposedSecondaryEntityCache.d.ts +1 -1
- package/build/ComposedSecondaryEntityCache.js.map +1 -1
- package/build/EnforcingEntityAssociationLoader.d.ts +15 -15
- package/build/EnforcingEntityAssociationLoader.js.map +1 -1
- package/build/EnforcingEntityCreator.d.ts +2 -2
- package/build/EnforcingEntityDeleter.d.ts +2 -2
- package/build/EnforcingEntityLoader.d.ts +104 -18
- package/build/EnforcingEntityLoader.js +113 -12
- package/build/EnforcingEntityLoader.js.map +1 -1
- package/build/EnforcingEntityUpdater.d.ts +2 -2
- package/build/Entity.d.ts +32 -10
- package/build/Entity.js +41 -3
- package/build/Entity.js.map +1 -1
- package/build/EntityAssociationLoader.d.ts +3 -3
- package/build/EntityCompanion.d.ts +5 -5
- package/build/EntityCompanion.js.map +1 -1
- package/build/EntityCompanionProvider.d.ts +6 -6
- package/build/EntityCompanionProvider.js.map +1 -1
- package/build/EntityConfiguration.d.ts +46 -5
- package/build/EntityConfiguration.js +39 -1
- package/build/EntityConfiguration.js.map +1 -1
- package/build/EntityCreator.d.ts +4 -4
- package/build/EntityDatabaseAdapter.d.ts +15 -14
- package/build/EntityDatabaseAdapter.js +20 -12
- package/build/EntityDatabaseAdapter.js.map +1 -1
- package/build/EntityDeleter.d.ts +4 -4
- package/build/EntityFieldDefinition.d.ts +20 -10
- package/build/EntityFieldDefinition.js +3 -1
- package/build/EntityFieldDefinition.js.map +1 -1
- package/build/EntityFields.d.ts +14 -12
- package/build/EntityFields.js.map +1 -1
- package/build/EntityLoader.d.ts +5 -5
- package/build/EntityLoaderFactory.d.ts +3 -3
- package/build/EntityLoaderFactory.js.map +1 -1
- package/build/EntityLoaderUtils.d.ts +2 -2
- package/build/EntityLoaderUtils.js +27 -1
- package/build/EntityLoaderUtils.js.map +1 -1
- package/build/EntityMutationInfo.d.ts +2 -2
- package/build/EntityMutationTriggerConfiguration.d.ts +14 -14
- package/build/EntityMutationTriggerConfiguration.js.map +1 -1
- package/build/EntityMutationValidator.d.ts +2 -2
- package/build/EntityMutatorFactory.d.ts +5 -5
- package/build/EntityMutatorFactory.js.map +1 -1
- package/build/EntityPrivacyPolicy.d.ts +14 -14
- package/build/EntityPrivacyPolicy.js.map +1 -1
- package/build/EntitySecondaryCacheLoader.d.ts +4 -4
- package/build/EntityUpdater.d.ts +4 -4
- package/build/GenericEntityCacheAdapter.d.ts +7 -6
- package/build/GenericEntityCacheAdapter.js +13 -14
- package/build/GenericEntityCacheAdapter.js.map +1 -1
- package/build/GenericSecondaryEntityCache.d.ts +3 -3
- package/build/GenericSecondaryEntityCache.js.map +1 -1
- package/build/IEntityCacheAdapter.d.ts +17 -16
- package/build/IEntityCacheAdapterProvider.d.ts +1 -1
- package/build/IEntityDatabaseAdapterProvider.d.ts +1 -1
- package/build/IEntityGenericCacher.d.ts +15 -5
- package/build/ReadonlyEntity.d.ts +27 -8
- package/build/ReadonlyEntity.js +31 -3
- package/build/ReadonlyEntity.js.map +1 -1
- package/build/ViewerContext.d.ts +1 -1
- package/build/ViewerScopedEntityCompanion.d.ts +5 -5
- package/build/ViewerScopedEntityCompanionProvider.d.ts +1 -1
- package/build/ViewerScopedEntityLoaderFactory.d.ts +3 -3
- package/build/ViewerScopedEntityMutatorFactory.d.ts +5 -5
- package/build/entityUtils.d.ts +1 -1
- package/build/entityUtils.js.map +1 -1
- package/build/errors/EntityInvalidFieldValueError.d.ts +2 -2
- package/build/errors/EntityNotAuthorizedError.d.ts +1 -1
- package/build/errors/EntityNotFoundError.d.ts +2 -2
- package/build/index.d.ts +7 -7
- package/build/index.js +8 -13
- package/build/index.js.map +1 -1
- package/build/internal/CompositeFieldHolder.d.ts +48 -0
- package/build/internal/CompositeFieldHolder.js +116 -0
- package/build/internal/CompositeFieldHolder.js.map +1 -0
- package/build/internal/CompositeFieldValueMap.d.ts +15 -0
- package/build/internal/CompositeFieldValueMap.js +51 -0
- package/build/internal/CompositeFieldValueMap.js.map +1 -0
- package/build/internal/EntityDataManager.d.ts +16 -16
- package/build/internal/EntityDataManager.js +42 -45
- package/build/internal/EntityDataManager.js.map +1 -1
- package/build/internal/EntityFieldTransformationUtils.d.ts +5 -5
- package/build/internal/EntityFieldTransformationUtils.js.map +1 -1
- package/build/internal/EntityLoadInterfaces.d.ts +104 -0
- package/build/internal/EntityLoadInterfaces.js +25 -0
- package/build/internal/EntityLoadInterfaces.js.map +1 -0
- package/build/internal/EntityTableDataCoordinator.d.ts +6 -6
- package/build/internal/EntityTableDataCoordinator.js.map +1 -1
- package/build/internal/ReadThroughEntityCache.d.ts +17 -16
- package/build/internal/ReadThroughEntityCache.js +36 -36
- package/build/internal/ReadThroughEntityCache.js.map +1 -1
- package/build/internal/SingleFieldHolder.d.ts +34 -0
- package/build/internal/SingleFieldHolder.js +90 -0
- package/build/internal/SingleFieldHolder.js.map +1 -0
- package/build/metrics/EntityMetricsUtils.d.ts +2 -1
- package/build/metrics/EntityMetricsUtils.js.map +1 -1
- package/build/metrics/IEntityMetricsAdapter.d.ts +5 -0
- package/build/metrics/IEntityMetricsAdapter.js.map +1 -1
- package/build/rules/AlwaysAllowPrivacyPolicyRule.d.ts +2 -2
- package/build/rules/AlwaysAllowPrivacyPolicyRule.js.map +1 -1
- package/build/rules/AlwaysDenyPrivacyPolicyRule.d.ts +2 -2
- package/build/rules/AlwaysDenyPrivacyPolicyRule.js.map +1 -1
- package/build/rules/AlwaysSkipPrivacyPolicyRule.d.ts +2 -2
- package/build/rules/AlwaysSkipPrivacyPolicyRule.js.map +1 -1
- package/build/rules/PrivacyPolicyRule.d.ts +2 -2
- package/build/tsconfig.build.tsbuildinfo +1 -0
- package/build/utils/EntityPrivacyUtils.d.ts +4 -4
- package/build/utils/EntityPrivacyUtils.js.map +1 -1
- package/build/utils/collections/SerializableKeyMap.d.ts +27 -0
- package/build/utils/collections/SerializableKeyMap.js +60 -0
- package/build/utils/collections/SerializableKeyMap.js.map +1 -0
- package/build/utils/collections/maps.js +1 -2
- package/build/utils/collections/maps.js.map +1 -1
- package/build/utils/collections/sets.d.ts +1 -0
- package/build/utils/collections/sets.js +7 -0
- package/build/utils/collections/sets.js.map +1 -0
- package/build/utils/mergeEntityMutationTriggerConfigurations.d.ts +1 -1
- package/package.json +8 -5
- package/src/AuthorizationResultBasedEntityAssociationLoader.ts +58 -53
- package/src/AuthorizationResultBasedEntityLoader.ts +194 -81
- package/src/AuthorizationResultBasedEntityMutator.ts +71 -45
- package/src/ComposedEntityCacheAdapter.ts +55 -46
- package/src/ComposedSecondaryEntityCache.ts +5 -2
- package/src/EnforcingEntityAssociationLoader.ts +52 -44
- package/src/EnforcingEntityCreator.ts +5 -5
- package/src/EnforcingEntityDeleter.ts +5 -5
- package/src/EnforcingEntityLoader.ts +158 -21
- package/src/EnforcingEntityUpdater.ts +5 -5
- package/src/Entity.ts +185 -29
- package/src/EntityAssociationLoader.ts +6 -6
- package/src/EntityCompanion.ts +11 -11
- package/src/EntityCompanionProvider.ts +21 -18
- package/src/EntityConfiguration.ts +123 -9
- package/src/EntityCreator.ts +7 -7
- package/src/EntityDatabaseAdapter.ts +51 -28
- package/src/EntityDeleter.ts +7 -7
- package/src/EntityFieldDefinition.ts +32 -12
- package/src/EntityFields.ts +49 -12
- package/src/EntityLoader.ts +8 -8
- package/src/EntityLoaderFactory.ts +8 -8
- package/src/EntityLoaderUtils.ts +39 -10
- package/src/EntityMutationInfo.ts +6 -6
- package/src/EntityMutationTriggerConfiguration.ts +68 -20
- package/src/EntityMutationValidator.ts +4 -4
- package/src/EntityMutatorFactory.ts +13 -13
- package/src/EntityPrivacyPolicy.ts +50 -26
- package/src/EntitySecondaryCacheLoader.ts +6 -6
- package/src/EntityUpdater.ts +7 -7
- package/src/GenericEntityCacheAdapter.ts +39 -28
- package/src/GenericSecondaryEntityCache.ts +6 -3
- package/src/IEntityCacheAdapter.ts +45 -25
- package/src/IEntityCacheAdapterProvider.ts +3 -3
- package/src/IEntityDatabaseAdapterProvider.ts +3 -3
- package/src/IEntityGenericCacher.ts +33 -5
- package/src/ReadonlyEntity.ts +129 -16
- package/src/ViewerContext.ts +5 -5
- package/src/ViewerScopedEntityCompanion.ts +7 -7
- package/src/ViewerScopedEntityCompanionProvider.ts +6 -6
- package/src/ViewerScopedEntityLoaderFactory.ts +7 -7
- package/src/ViewerScopedEntityMutatorFactory.ts +8 -8
- package/src/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.ts +41 -72
- package/src/__tests__/AuthorizationResultBasedEntityLoader-constructor-test.ts +14 -13
- package/src/__tests__/AuthorizationResultBasedEntityLoader-test.ts +367 -69
- package/src/__tests__/ComposedCacheAdapter-test.ts +235 -117
- package/src/__tests__/EnforcingEntityLoader-test.ts +135 -1
- package/src/__tests__/Entity-test.ts +64 -11
- package/src/__tests__/EntityAssociationLoader-test.ts +6 -8
- package/src/__tests__/EntityCommonUseCases-test.ts +25 -28
- package/src/__tests__/EntityCompanion-test.ts +4 -4
- package/src/__tests__/EntityCompanionProvider-test.ts +9 -8
- package/src/__tests__/EntityConfiguration-test.ts +85 -6
- package/src/__tests__/EntityDatabaseAdapter-test.ts +113 -17
- package/src/__tests__/EntityEdges-test.ts +135 -138
- package/src/__tests__/EntityFields-test.ts +2 -2
- package/src/__tests__/EntityLoader-test.ts +5 -7
- package/src/__tests__/EntityMutator-MutationCacheConsistency-test.ts +17 -19
- package/src/__tests__/EntityMutator-SingleCompositeFieldCacheConsistency-test.ts +73 -0
- package/src/__tests__/EntityMutator-test.ts +74 -46
- package/src/__tests__/EntityPrivacyPolicy-test.ts +51 -74
- package/src/__tests__/EntityQueryContext-test.ts +1 -1
- package/src/__tests__/EntitySecondaryCacheLoader-test.ts +9 -9
- package/src/__tests__/EntitySelfReferentialEdges-test.ts +119 -122
- package/src/__tests__/GenericEntityCacheAdapter-test.ts +83 -28
- package/src/__tests__/ReadonlyEntity-test.ts +49 -9
- package/src/__tests__/ViewerContext-test.ts +1 -1
- package/src/__tests__/ViewerScopedEntityCompanion-test.ts +5 -2
- package/src/__tests__/ViewerScopedEntityCompanionProvider-test.ts +1 -1
- package/src/__tests__/ViewerScopedEntityMutatorFactory-test.ts +12 -3
- package/src/__tests__/cases/TwoEntitySameTableDisjointRows-test.ts +25 -27
- package/src/__tests__/cases/TwoEntitySameTableOverlappingRows-test.ts +28 -34
- package/src/entityUtils.ts +4 -1
- package/src/errors/EntityInvalidFieldValueError.ts +5 -5
- package/src/errors/EntityNotAuthorizedError.ts +3 -3
- package/src/errors/EntityNotFoundError.ts +5 -5
- package/src/index.ts +7 -7
- package/src/internal/CompositeFieldHolder.ts +218 -0
- package/src/internal/CompositeFieldValueMap.ts +78 -0
- package/src/internal/EntityDataManager.ts +107 -96
- package/src/internal/EntityFieldTransformationUtils.ts +33 -14
- package/src/internal/EntityLoadInterfaces.ts +143 -0
- package/src/internal/EntityTableDataCoordinator.ts +8 -5
- package/src/internal/ReadThroughEntityCache.ts +63 -50
- package/src/internal/SingleFieldHolder.ts +131 -0
- package/src/internal/__tests__/CompositeFieldHolder-test.ts +25 -0
- package/src/internal/__tests__/CompositeFieldValueMap-test.ts +43 -0
- package/src/internal/__tests__/EntityDataManager-test.ts +308 -91
- package/src/internal/__tests__/EntityFieldTransformationUtils-test.ts +3 -2
- package/src/internal/__tests__/ReadThroughEntityCache-test.ts +315 -107
- package/src/metrics/EntityMetricsUtils.ts +7 -2
- package/src/metrics/IEntityMetricsAdapter.ts +6 -0
- package/src/rules/AlwaysAllowPrivacyPolicyRule.ts +5 -5
- package/src/rules/AlwaysDenyPrivacyPolicyRule.ts +5 -5
- package/src/rules/AlwaysSkipPrivacyPolicyRule.ts +5 -5
- package/src/rules/PrivacyPolicyRule.ts +4 -4
- package/src/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.ts +1 -1
- package/src/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.ts +1 -1
- package/src/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.ts +1 -1
- package/src/utils/EntityPrivacyUtils.ts +72 -30
- package/src/utils/{testing → __testfixtures__}/PrivacyPolicyRuleTestUtils.ts +26 -26
- package/src/{testfixtures → utils/__testfixtures__}/SimpleTestEntity.ts +16 -15
- package/src/utils/__testfixtures__/StubCacheAdapter.ts +164 -0
- package/src/utils/{testing → __testfixtures__}/StubDatabaseAdapter.ts +19 -12
- package/src/utils/{testing → __testfixtures__}/StubDatabaseAdapterProvider.ts +4 -4
- package/src/utils/__testfixtures__/TSMockitoExtensions.ts +69 -0
- package/src/{testfixtures → utils/__testfixtures__}/TestEntity.ts +21 -15
- package/src/{testfixtures → utils/__testfixtures__}/TestEntity2.ts +16 -15
- package/src/{testfixtures → utils/__testfixtures__}/TestEntityWithMutationTriggers.ts +23 -22
- package/src/{testfixtures → utils/__testfixtures__}/TestViewerContext.ts +1 -1
- package/src/utils/{testing → __testfixtures__}/describeFieldTestCase.ts +1 -1
- package/src/utils/__tests__/EntityPrivacyUtils-test.ts +81 -113
- package/src/utils/__tests__/canViewerDeleteAsync-edgeDeletionPermissionInferenceBehavior-test.ts +31 -30
- package/src/utils/__tests__/mergeEntityMutationTriggerConfigurations-test.ts +1 -1
- package/src/utils/collections/SerializableKeyMap.ts +84 -0
- package/src/utils/collections/__tests__/SerializableKeyMap-test.ts +119 -0
- package/src/utils/collections/__tests__/sets-test.ts +17 -0
- package/src/utils/collections/maps.ts +7 -8
- package/src/utils/collections/sets.ts +3 -0
- package/src/utils/mergeEntityMutationTriggerConfigurations.ts +5 -5
- package/build/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.d.ts +0 -1
- package/build/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.js +0 -273
- package/build/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.js.map +0 -1
- package/build/__tests__/AuthorizationResultBasedEntityLoader-constructor-test.d.ts +0 -26
- package/build/__tests__/AuthorizationResultBasedEntityLoader-constructor-test.js +0 -110
- package/build/__tests__/AuthorizationResultBasedEntityLoader-constructor-test.js.map +0 -1
- package/build/__tests__/AuthorizationResultBasedEntityLoader-test.d.ts +0 -1
- package/build/__tests__/AuthorizationResultBasedEntityLoader-test.js +0 -401
- package/build/__tests__/AuthorizationResultBasedEntityLoader-test.js.map +0 -1
- package/build/__tests__/ComposedCacheAdapter-test.d.ts +0 -1
- package/build/__tests__/ComposedCacheAdapter-test.js +0 -229
- package/build/__tests__/ComposedCacheAdapter-test.js.map +0 -1
- package/build/__tests__/ComposedSecondaryEntityCache-test.d.ts +0 -1
- package/build/__tests__/ComposedSecondaryEntityCache-test.js +0 -66
- package/build/__tests__/ComposedSecondaryEntityCache-test.js.map +0 -1
- package/build/__tests__/EnforcingEntityAssociationLoader-test.d.ts +0 -1
- package/build/__tests__/EnforcingEntityAssociationLoader-test.js +0 -115
- package/build/__tests__/EnforcingEntityAssociationLoader-test.js.map +0 -1
- package/build/__tests__/EnforcingEntityLoader-test.d.ts +0 -1
- package/build/__tests__/EnforcingEntityLoader-test.js +0 -253
- package/build/__tests__/EnforcingEntityLoader-test.js.map +0 -1
- package/build/__tests__/Entity-test.d.ts +0 -1
- package/build/__tests__/Entity-test.js +0 -54
- package/build/__tests__/Entity-test.js.map +0 -1
- package/build/__tests__/EntityAssociationLoader-test.d.ts +0 -1
- package/build/__tests__/EntityAssociationLoader-test.js +0 -30
- package/build/__tests__/EntityAssociationLoader-test.js.map +0 -1
- package/build/__tests__/EntityCommonUseCases-test.d.ts +0 -1
- package/build/__tests__/EntityCommonUseCases-test.js +0 -154
- package/build/__tests__/EntityCommonUseCases-test.js.map +0 -1
- package/build/__tests__/EntityCompanion-test.d.ts +0 -1
- package/build/__tests__/EntityCompanion-test.js +0 -77
- package/build/__tests__/EntityCompanion-test.js.map +0 -1
- package/build/__tests__/EntityCompanionProvider-test.d.ts +0 -1
- package/build/__tests__/EntityCompanionProvider-test.js +0 -54
- package/build/__tests__/EntityCompanionProvider-test.js.map +0 -1
- package/build/__tests__/EntityConfiguration-test.d.ts +0 -1
- package/build/__tests__/EntityConfiguration-test.js +0 -103
- package/build/__tests__/EntityConfiguration-test.js.map +0 -1
- package/build/__tests__/EntityDatabaseAdapter-test.d.ts +0 -1
- package/build/__tests__/EntityDatabaseAdapter-test.js +0 -146
- package/build/__tests__/EntityDatabaseAdapter-test.js.map +0 -1
- package/build/__tests__/EntityEdges-test.d.ts +0 -1
- package/build/__tests__/EntityEdges-test.js +0 -755
- package/build/__tests__/EntityEdges-test.js.map +0 -1
- package/build/__tests__/EntityFields-test.d.ts +0 -1
- package/build/__tests__/EntityFields-test.js +0 -63
- package/build/__tests__/EntityFields-test.js.map +0 -1
- package/build/__tests__/EntityLoader-test.d.ts +0 -1
- package/build/__tests__/EntityLoader-test.js +0 -36
- package/build/__tests__/EntityLoader-test.js.map +0 -1
- package/build/__tests__/EntityMutator-MutationCacheConsistency-test.d.ts +0 -1
- package/build/__tests__/EntityMutator-MutationCacheConsistency-test.js +0 -77
- package/build/__tests__/EntityMutator-MutationCacheConsistency-test.js.map +0 -1
- package/build/__tests__/EntityMutator-test.d.ts +0 -1
- package/build/__tests__/EntityMutator-test.js +0 -741
- package/build/__tests__/EntityMutator-test.js.map +0 -1
- package/build/__tests__/EntityPrivacyPolicy-test.d.ts +0 -1
- package/build/__tests__/EntityPrivacyPolicy-test.js +0 -463
- package/build/__tests__/EntityPrivacyPolicy-test.js.map +0 -1
- package/build/__tests__/EntityQueryContext-test.d.ts +0 -1
- package/build/__tests__/EntityQueryContext-test.js +0 -116
- package/build/__tests__/EntityQueryContext-test.js.map +0 -1
- package/build/__tests__/EntitySecondaryCacheLoader-test.d.ts +0 -1
- package/build/__tests__/EntitySecondaryCacheLoader-test.js +0 -60
- package/build/__tests__/EntitySecondaryCacheLoader-test.js.map +0 -1
- package/build/__tests__/EntitySelfReferentialEdges-test.d.ts +0 -1
- package/build/__tests__/EntitySelfReferentialEdges-test.js +0 -247
- package/build/__tests__/EntitySelfReferentialEdges-test.js.map +0 -1
- package/build/__tests__/GenericEntityCacheAdapter-test.d.ts +0 -1
- package/build/__tests__/GenericEntityCacheAdapter-test.js +0 -80
- package/build/__tests__/GenericEntityCacheAdapter-test.js.map +0 -1
- package/build/__tests__/ReadonlyEntity-test.d.ts +0 -1
- package/build/__tests__/ReadonlyEntity-test.js +0 -178
- package/build/__tests__/ReadonlyEntity-test.js.map +0 -1
- package/build/__tests__/ViewerContext-test.d.ts +0 -1
- package/build/__tests__/ViewerContext-test.js +0 -30
- package/build/__tests__/ViewerContext-test.js.map +0 -1
- package/build/__tests__/ViewerScopedEntityCompanion-test.d.ts +0 -1
- package/build/__tests__/ViewerScopedEntityCompanion-test.js +0 -20
- package/build/__tests__/ViewerScopedEntityCompanion-test.js.map +0 -1
- package/build/__tests__/ViewerScopedEntityCompanionProvider-test.d.ts +0 -1
- package/build/__tests__/ViewerScopedEntityCompanionProvider-test.js +0 -20
- package/build/__tests__/ViewerScopedEntityCompanionProvider-test.js.map +0 -1
- package/build/__tests__/ViewerScopedEntityLoaderFactory-test.d.ts +0 -1
- package/build/__tests__/ViewerScopedEntityLoaderFactory-test.js +0 -23
- package/build/__tests__/ViewerScopedEntityLoaderFactory-test.js.map +0 -1
- package/build/__tests__/ViewerScopedEntityMutatorFactory-test.d.ts +0 -1
- package/build/__tests__/ViewerScopedEntityMutatorFactory-test.js +0 -22
- package/build/__tests__/ViewerScopedEntityMutatorFactory-test.js.map +0 -1
- package/build/__tests__/cases/TwoEntitySameTableDisjointRows-test.d.ts +0 -1
- package/build/__tests__/cases/TwoEntitySameTableDisjointRows-test.js +0 -129
- package/build/__tests__/cases/TwoEntitySameTableDisjointRows-test.js.map +0 -1
- package/build/__tests__/cases/TwoEntitySameTableOverlappingRows-test.d.ts +0 -1
- package/build/__tests__/cases/TwoEntitySameTableOverlappingRows-test.js +0 -136
- package/build/__tests__/cases/TwoEntitySameTableOverlappingRows-test.js.map +0 -1
- package/build/__tests__/entityUtils-test.d.ts +0 -1
- package/build/__tests__/entityUtils-test.js +0 -87
- package/build/__tests__/entityUtils-test.js.map +0 -1
- package/build/internal/__tests__/EntityDataManager-test.d.ts +0 -1
- package/build/internal/__tests__/EntityDataManager-test.js +0 -373
- package/build/internal/__tests__/EntityDataManager-test.js.map +0 -1
- package/build/internal/__tests__/EntityFieldTransformationUtils-test.d.ts +0 -1
- package/build/internal/__tests__/EntityFieldTransformationUtils-test.js +0 -136
- package/build/internal/__tests__/EntityFieldTransformationUtils-test.js.map +0 -1
- package/build/internal/__tests__/ReadThroughEntityCache-test.d.ts +0 -1
- package/build/internal/__tests__/ReadThroughEntityCache-test.js +0 -206
- package/build/internal/__tests__/ReadThroughEntityCache-test.js.map +0 -1
- package/build/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.d.ts +0 -1
- package/build/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.js +0 -21
- package/build/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.js.map +0 -1
- package/build/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.d.ts +0 -1
- package/build/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.js +0 -21
- package/build/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.js.map +0 -1
- package/build/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.d.ts +0 -1
- package/build/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.js +0 -21
- package/build/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.js.map +0 -1
- package/build/testfixtures/DateIDTestEntity.d.ts +0 -19
- package/build/testfixtures/DateIDTestEntity.js +0 -48
- package/build/testfixtures/DateIDTestEntity.js.map +0 -1
- package/build/testfixtures/SimpleTestEntity.d.ts +0 -20
- package/build/testfixtures/SimpleTestEntity.js +0 -48
- package/build/testfixtures/SimpleTestEntity.js.map +0 -1
- package/build/testfixtures/TestEntity.d.ts +0 -30
- package/build/testfixtures/TestEntity.js +0 -93
- package/build/testfixtures/TestEntity.js.map +0 -1
- package/build/testfixtures/TestEntity2.d.ts +0 -20
- package/build/testfixtures/TestEntity2.js +0 -51
- package/build/testfixtures/TestEntity2.js.map +0 -1
- package/build/testfixtures/TestEntityNumberKey.d.ts +0 -19
- package/build/testfixtures/TestEntityNumberKey.js +0 -48
- package/build/testfixtures/TestEntityNumberKey.js.map +0 -1
- package/build/testfixtures/TestEntityWithMutationTriggers.d.ts +0 -36
- package/build/testfixtures/TestEntityWithMutationTriggers.js +0 -82
- package/build/testfixtures/TestEntityWithMutationTriggers.js.map +0 -1
- package/build/testfixtures/TestViewerContext.d.ts +0 -3
- package/build/testfixtures/TestViewerContext.js +0 -10
- package/build/testfixtures/TestViewerContext.js.map +0 -1
- package/build/utils/__tests__/EntityPrivacyUtils-test.d.ts +0 -1
- package/build/utils/__tests__/EntityPrivacyUtils-test.js +0 -520
- package/build/utils/__tests__/EntityPrivacyUtils-test.js.map +0 -1
- package/build/utils/__tests__/canViewerDeleteAsync-edgeDeletionPermissionInferenceBehavior-test.d.ts +0 -1
- package/build/utils/__tests__/canViewerDeleteAsync-edgeDeletionPermissionInferenceBehavior-test.js +0 -181
- package/build/utils/__tests__/canViewerDeleteAsync-edgeDeletionPermissionInferenceBehavior-test.js.map +0 -1
- package/build/utils/__tests__/mergeEntityMutationTriggerConfigurations-test.d.ts +0 -1
- package/build/utils/__tests__/mergeEntityMutationTriggerConfigurations-test.js +0 -26
- package/build/utils/__tests__/mergeEntityMutationTriggerConfigurations-test.js.map +0 -1
- package/build/utils/collections/__tests__/maps-test.d.ts +0 -1
- package/build/utils/collections/__tests__/maps-test.js +0 -120
- package/build/utils/collections/__tests__/maps-test.js.map +0 -1
- package/build/utils/testing/PrivacyPolicyRuleTestUtils.d.ts +0 -28
- package/build/utils/testing/PrivacyPolicyRuleTestUtils.js +0 -52
- package/build/utils/testing/PrivacyPolicyRuleTestUtils.js.map +0 -1
- package/build/utils/testing/StubCacheAdapter.d.ts +0 -27
- package/build/utils/testing/StubCacheAdapter.js +0 -86
- package/build/utils/testing/StubCacheAdapter.js.map +0 -1
- package/build/utils/testing/StubDatabaseAdapter.d.ts +0 -25
- package/build/utils/testing/StubDatabaseAdapter.js +0 -191
- package/build/utils/testing/StubDatabaseAdapter.js.map +0 -1
- package/build/utils/testing/StubDatabaseAdapterProvider.d.ts +0 -7
- package/build/utils/testing/StubDatabaseAdapterProvider.js +0 -14
- package/build/utils/testing/StubDatabaseAdapterProvider.js.map +0 -1
- package/build/utils/testing/StubQueryContextProvider.d.ts +0 -7
- package/build/utils/testing/StubQueryContextProvider.js +0 -19
- package/build/utils/testing/StubQueryContextProvider.js.map +0 -1
- package/build/utils/testing/__tests__/PrivacyPolicyRuleTestUtils-test.d.ts +0 -1
- package/build/utils/testing/__tests__/PrivacyPolicyRuleTestUtils-test.js +0 -42
- package/build/utils/testing/__tests__/PrivacyPolicyRuleTestUtils-test.js.map +0 -1
- package/build/utils/testing/__tests__/StubDatabaseAdapter-test.d.ts +0 -1
- package/build/utils/testing/__tests__/StubDatabaseAdapter-test.js +0 -402
- package/build/utils/testing/__tests__/StubDatabaseAdapter-test.js.map +0 -1
- package/build/utils/testing/createUnitTestEntityCompanionProvider.d.ts +0 -7
- package/build/utils/testing/createUnitTestEntityCompanionProvider.js +0 -36
- package/build/utils/testing/createUnitTestEntityCompanionProvider.js.map +0 -1
- package/build/utils/testing/describeFieldTestCase.d.ts +0 -2
- package/build/utils/testing/describeFieldTestCase.js +0 -18
- package/build/utils/testing/describeFieldTestCase.js.map +0 -1
- package/src/testfixtures/DateIDTestEntity.ts +0 -59
- package/src/testfixtures/TestEntityNumberKey.ts +0 -59
- package/src/utils/testing/StubCacheAdapter.ts +0 -122
- package/src/utils/testing/__tests__/PrivacyPolicyRuleTestUtils-test.ts +0 -42
- package/src/utils/testing/__tests__/StubDatabaseAdapter-test.ts +0 -548
- /package/src/utils/{testing → __testfixtures__}/StubQueryContextProvider.ts +0 -0
- /package/src/utils/{testing → __testfixtures__}/createUnitTestEntityCompanionProvider.ts +0 -0
package/src/ReadonlyEntity.ts
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
import invariant from 'invariant';
|
|
2
2
|
|
|
3
|
+
import AuthorizationResultBasedEntityAssociationLoader from './AuthorizationResultBasedEntityAssociationLoader';
|
|
4
|
+
import AuthorizationResultBasedEntityLoader from './AuthorizationResultBasedEntityLoader';
|
|
5
|
+
import EnforcingEntityAssociationLoader from './EnforcingEntityAssociationLoader';
|
|
6
|
+
import EnforcingEntityLoader from './EnforcingEntityLoader';
|
|
3
7
|
import { IEntityClass } from './Entity';
|
|
4
8
|
import EntityAssociationLoader from './EntityAssociationLoader';
|
|
5
9
|
import EntityLoader from './EntityLoader';
|
|
10
|
+
import EntityLoaderUtils from './EntityLoaderUtils';
|
|
6
11
|
import EntityPrivacyPolicy from './EntityPrivacyPolicy';
|
|
7
12
|
import { EntityQueryContext } from './EntityQueryContext';
|
|
8
13
|
import ViewerContext from './ViewerContext';
|
|
@@ -16,13 +21,13 @@ import ViewerContext from './ViewerContext';
|
|
|
16
21
|
* - Entities representing immutable tables.
|
|
17
22
|
*/
|
|
18
23
|
export default abstract class ReadonlyEntity<
|
|
19
|
-
TFields extends
|
|
20
|
-
|
|
24
|
+
TFields extends Record<string, any>,
|
|
25
|
+
TIDField extends keyof NonNullable<Pick<TFields, TSelectedFields>>,
|
|
21
26
|
TViewerContext extends ViewerContext,
|
|
22
27
|
TSelectedFields extends keyof TFields = keyof TFields,
|
|
23
28
|
> {
|
|
24
29
|
private readonly viewerContext: TViewerContext;
|
|
25
|
-
private readonly id:
|
|
30
|
+
private readonly id: TFields[TIDField];
|
|
26
31
|
private readonly databaseFields: Readonly<TFields>;
|
|
27
32
|
private readonly selectedFields: Readonly<Pick<TFields, TSelectedFields>>;
|
|
28
33
|
|
|
@@ -47,7 +52,7 @@ export default abstract class ReadonlyEntity<
|
|
|
47
52
|
selectedFields,
|
|
48
53
|
}: {
|
|
49
54
|
viewerContext: TViewerContext;
|
|
50
|
-
id:
|
|
55
|
+
id: TFields[TIDField];
|
|
51
56
|
databaseFields: Readonly<TFields>;
|
|
52
57
|
selectedFields: Readonly<Pick<TFields, TSelectedFields>>;
|
|
53
58
|
}) {
|
|
@@ -77,17 +82,38 @@ export default abstract class ReadonlyEntity<
|
|
|
77
82
|
/**
|
|
78
83
|
* @returns the ID of this entity
|
|
79
84
|
*/
|
|
80
|
-
getID():
|
|
85
|
+
getID(): TFields[TIDField] {
|
|
81
86
|
return this.id;
|
|
82
87
|
}
|
|
83
88
|
|
|
84
89
|
/**
|
|
85
|
-
* @returns
|
|
90
|
+
* @returns EnforcingEntityAssociationLoader for this entity
|
|
86
91
|
*/
|
|
87
92
|
associationLoader(
|
|
88
93
|
queryContext?: EntityQueryContext,
|
|
89
|
-
):
|
|
90
|
-
return new EntityAssociationLoader
|
|
94
|
+
): EnforcingEntityAssociationLoader<TFields, TIDField, TViewerContext, this, TSelectedFields> {
|
|
95
|
+
return new EntityAssociationLoader<TFields, TIDField, TViewerContext, this, TSelectedFields>(
|
|
96
|
+
this,
|
|
97
|
+
queryContext,
|
|
98
|
+
).enforcing();
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* @returns AuthorizationResultBasedEntityAssociationLoader for this entity
|
|
103
|
+
*/
|
|
104
|
+
associationLoaderWithAuthorizationResults(
|
|
105
|
+
queryContext?: EntityQueryContext,
|
|
106
|
+
): AuthorizationResultBasedEntityAssociationLoader<
|
|
107
|
+
TFields,
|
|
108
|
+
TIDField,
|
|
109
|
+
TViewerContext,
|
|
110
|
+
this,
|
|
111
|
+
TSelectedFields
|
|
112
|
+
> {
|
|
113
|
+
return new EntityAssociationLoader<TFields, TIDField, TViewerContext, this, TSelectedFields>(
|
|
114
|
+
this,
|
|
115
|
+
queryContext,
|
|
116
|
+
).withAuthorizationResults();
|
|
91
117
|
}
|
|
92
118
|
|
|
93
119
|
/**
|
|
@@ -122,13 +148,101 @@ export default abstract class ReadonlyEntity<
|
|
|
122
148
|
*/
|
|
123
149
|
static loader<
|
|
124
150
|
TMFields extends object,
|
|
125
|
-
|
|
151
|
+
TMIDField extends keyof NonNullable<Pick<TMFields, TMSelectedFields>>,
|
|
152
|
+
TMViewerContext extends ViewerContext,
|
|
153
|
+
TMViewerContext2 extends TMViewerContext,
|
|
154
|
+
TMEntity extends ReadonlyEntity<TMFields, TMIDField, TMViewerContext, TMSelectedFields>,
|
|
155
|
+
TMPrivacyPolicy extends EntityPrivacyPolicy<
|
|
156
|
+
TMFields,
|
|
157
|
+
TMIDField,
|
|
158
|
+
TMViewerContext,
|
|
159
|
+
TMEntity,
|
|
160
|
+
TMSelectedFields
|
|
161
|
+
>,
|
|
162
|
+
TMSelectedFields extends keyof TMFields = keyof TMFields,
|
|
163
|
+
>(
|
|
164
|
+
this: IEntityClass<
|
|
165
|
+
TMFields,
|
|
166
|
+
TMIDField,
|
|
167
|
+
TMViewerContext,
|
|
168
|
+
TMEntity,
|
|
169
|
+
TMPrivacyPolicy,
|
|
170
|
+
TMSelectedFields
|
|
171
|
+
>,
|
|
172
|
+
viewerContext: TMViewerContext2,
|
|
173
|
+
queryContext: EntityQueryContext = viewerContext
|
|
174
|
+
.getViewerScopedEntityCompanionForClass(this)
|
|
175
|
+
.getQueryContextProvider()
|
|
176
|
+
.getQueryContext(),
|
|
177
|
+
): EnforcingEntityLoader<
|
|
178
|
+
TMFields,
|
|
179
|
+
TMIDField,
|
|
180
|
+
TMViewerContext,
|
|
181
|
+
TMEntity,
|
|
182
|
+
TMPrivacyPolicy,
|
|
183
|
+
TMSelectedFields
|
|
184
|
+
> {
|
|
185
|
+
return new EntityLoader(viewerContext, queryContext, this).enforcing();
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* Vend loader for loading an entity in a given query context.
|
|
190
|
+
* @param viewerContext - viewer context of loading user
|
|
191
|
+
* @param queryContext - query context in which to perform the load
|
|
192
|
+
*/
|
|
193
|
+
static loaderWithAuthorizationResults<
|
|
194
|
+
TMFields extends object,
|
|
195
|
+
TMIDField extends keyof NonNullable<Pick<TMFields, TMSelectedFields>>,
|
|
196
|
+
TMViewerContext extends ViewerContext,
|
|
197
|
+
TMViewerContext2 extends TMViewerContext,
|
|
198
|
+
TMEntity extends ReadonlyEntity<TMFields, TMIDField, TMViewerContext, TMSelectedFields>,
|
|
199
|
+
TMPrivacyPolicy extends EntityPrivacyPolicy<
|
|
200
|
+
TMFields,
|
|
201
|
+
TMIDField,
|
|
202
|
+
TMViewerContext,
|
|
203
|
+
TMEntity,
|
|
204
|
+
TMSelectedFields
|
|
205
|
+
>,
|
|
206
|
+
TMSelectedFields extends keyof TMFields = keyof TMFields,
|
|
207
|
+
>(
|
|
208
|
+
this: IEntityClass<
|
|
209
|
+
TMFields,
|
|
210
|
+
TMIDField,
|
|
211
|
+
TMViewerContext,
|
|
212
|
+
TMEntity,
|
|
213
|
+
TMPrivacyPolicy,
|
|
214
|
+
TMSelectedFields
|
|
215
|
+
>,
|
|
216
|
+
viewerContext: TMViewerContext2,
|
|
217
|
+
queryContext: EntityQueryContext = viewerContext
|
|
218
|
+
.getViewerScopedEntityCompanionForClass(this)
|
|
219
|
+
.getQueryContextProvider()
|
|
220
|
+
.getQueryContext(),
|
|
221
|
+
): AuthorizationResultBasedEntityLoader<
|
|
222
|
+
TMFields,
|
|
223
|
+
TMIDField,
|
|
224
|
+
TMViewerContext,
|
|
225
|
+
TMEntity,
|
|
226
|
+
TMPrivacyPolicy,
|
|
227
|
+
TMSelectedFields
|
|
228
|
+
> {
|
|
229
|
+
return new EntityLoader(viewerContext, queryContext, this).withAuthorizationResults();
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
/**
|
|
233
|
+
* Vend loader for loading an entity in a given query context.
|
|
234
|
+
* @param viewerContext - viewer context of loading user
|
|
235
|
+
* @param queryContext - query context in which to perform the load
|
|
236
|
+
*/
|
|
237
|
+
static loaderUtils<
|
|
238
|
+
TMFields extends object,
|
|
239
|
+
TMIDField extends keyof NonNullable<Pick<TMFields, TMSelectedFields>>,
|
|
126
240
|
TMViewerContext extends ViewerContext,
|
|
127
241
|
TMViewerContext2 extends TMViewerContext,
|
|
128
|
-
TMEntity extends ReadonlyEntity<TMFields,
|
|
242
|
+
TMEntity extends ReadonlyEntity<TMFields, TMIDField, TMViewerContext, TMSelectedFields>,
|
|
129
243
|
TMPrivacyPolicy extends EntityPrivacyPolicy<
|
|
130
244
|
TMFields,
|
|
131
|
-
|
|
245
|
+
TMIDField,
|
|
132
246
|
TMViewerContext,
|
|
133
247
|
TMEntity,
|
|
134
248
|
TMSelectedFields
|
|
@@ -137,7 +251,7 @@ export default abstract class ReadonlyEntity<
|
|
|
137
251
|
>(
|
|
138
252
|
this: IEntityClass<
|
|
139
253
|
TMFields,
|
|
140
|
-
|
|
254
|
+
TMIDField,
|
|
141
255
|
TMViewerContext,
|
|
142
256
|
TMEntity,
|
|
143
257
|
TMPrivacyPolicy,
|
|
@@ -148,15 +262,14 @@ export default abstract class ReadonlyEntity<
|
|
|
148
262
|
.getViewerScopedEntityCompanionForClass(this)
|
|
149
263
|
.getQueryContextProvider()
|
|
150
264
|
.getQueryContext(),
|
|
151
|
-
):
|
|
265
|
+
): EntityLoaderUtils<
|
|
152
266
|
TMFields,
|
|
153
|
-
|
|
267
|
+
TMIDField,
|
|
154
268
|
TMViewerContext,
|
|
155
|
-
TMViewerContext2,
|
|
156
269
|
TMEntity,
|
|
157
270
|
TMPrivacyPolicy,
|
|
158
271
|
TMSelectedFields
|
|
159
272
|
> {
|
|
160
|
-
return new EntityLoader(viewerContext, queryContext, this);
|
|
273
|
+
return new EntityLoader(viewerContext, queryContext, this).utils();
|
|
161
274
|
}
|
|
162
275
|
}
|
package/src/ViewerContext.ts
CHANGED
|
@@ -32,12 +32,12 @@ export default class ViewerContext {
|
|
|
32
32
|
|
|
33
33
|
getViewerScopedEntityCompanionForClass<
|
|
34
34
|
TMFields extends object,
|
|
35
|
-
|
|
35
|
+
TMIDField extends keyof NonNullable<Pick<TMFields, TMSelectedFields>>,
|
|
36
36
|
TMViewerContext extends ViewerContext,
|
|
37
|
-
TMEntity extends ReadonlyEntity<TMFields,
|
|
37
|
+
TMEntity extends ReadonlyEntity<TMFields, TMIDField, TMViewerContext, TMSelectedFields>,
|
|
38
38
|
TMPrivacyPolicy extends EntityPrivacyPolicy<
|
|
39
39
|
TMFields,
|
|
40
|
-
|
|
40
|
+
TMIDField,
|
|
41
41
|
TMViewerContext,
|
|
42
42
|
TMEntity,
|
|
43
43
|
TMSelectedFields
|
|
@@ -46,7 +46,7 @@ export default class ViewerContext {
|
|
|
46
46
|
>(
|
|
47
47
|
entityClass: IEntityClass<
|
|
48
48
|
TMFields,
|
|
49
|
-
|
|
49
|
+
TMIDField,
|
|
50
50
|
TMViewerContext,
|
|
51
51
|
TMEntity,
|
|
52
52
|
TMPrivacyPolicy,
|
|
@@ -54,7 +54,7 @@ export default class ViewerContext {
|
|
|
54
54
|
>,
|
|
55
55
|
): ViewerScopedEntityCompanion<
|
|
56
56
|
TMFields,
|
|
57
|
-
|
|
57
|
+
TMIDField,
|
|
58
58
|
TMViewerContext,
|
|
59
59
|
TMEntity,
|
|
60
60
|
TMPrivacyPolicy,
|
|
@@ -12,13 +12,13 @@ import IEntityMetricsAdapter from './metrics/IEntityMetricsAdapter';
|
|
|
12
12
|
* from the viewer-scoped entity companion provider.
|
|
13
13
|
*/
|
|
14
14
|
export default class ViewerScopedEntityCompanion<
|
|
15
|
-
TFields extends
|
|
16
|
-
|
|
15
|
+
TFields extends Record<string, any>,
|
|
16
|
+
TIDField extends keyof NonNullable<Pick<TFields, TSelectedFields>>,
|
|
17
17
|
TViewerContext extends ViewerContext,
|
|
18
|
-
TEntity extends ReadonlyEntity<TFields,
|
|
18
|
+
TEntity extends ReadonlyEntity<TFields, TIDField, TViewerContext, TSelectedFields>,
|
|
19
19
|
TPrivacyPolicy extends EntityPrivacyPolicy<
|
|
20
20
|
TFields,
|
|
21
|
-
|
|
21
|
+
TIDField,
|
|
22
22
|
TViewerContext,
|
|
23
23
|
TEntity,
|
|
24
24
|
TSelectedFields
|
|
@@ -28,7 +28,7 @@ export default class ViewerScopedEntityCompanion<
|
|
|
28
28
|
constructor(
|
|
29
29
|
public readonly entityCompanion: EntityCompanion<
|
|
30
30
|
TFields,
|
|
31
|
-
|
|
31
|
+
TIDField,
|
|
32
32
|
TViewerContext,
|
|
33
33
|
TEntity,
|
|
34
34
|
TPrivacyPolicy,
|
|
@@ -42,7 +42,7 @@ export default class ViewerScopedEntityCompanion<
|
|
|
42
42
|
*/
|
|
43
43
|
getLoaderFactory(): ViewerScopedEntityLoaderFactory<
|
|
44
44
|
TFields,
|
|
45
|
-
|
|
45
|
+
TIDField,
|
|
46
46
|
TViewerContext,
|
|
47
47
|
TEntity,
|
|
48
48
|
TPrivacyPolicy,
|
|
@@ -59,7 +59,7 @@ export default class ViewerScopedEntityCompanion<
|
|
|
59
59
|
*/
|
|
60
60
|
getMutatorFactory(): ViewerScopedEntityMutatorFactory<
|
|
61
61
|
TFields,
|
|
62
|
-
|
|
62
|
+
TIDField,
|
|
63
63
|
TViewerContext,
|
|
64
64
|
TEntity,
|
|
65
65
|
TPrivacyPolicy,
|
|
@@ -21,13 +21,13 @@ export default class ViewerScopedEntityCompanionProvider {
|
|
|
21
21
|
* @param entityClass - entity class to load
|
|
22
22
|
*/
|
|
23
23
|
getViewerScopedCompanionForEntity<
|
|
24
|
-
TFields extends
|
|
25
|
-
|
|
24
|
+
TFields extends Record<string, any>,
|
|
25
|
+
TIDField extends keyof NonNullable<Pick<TFields, TSelectedFields>>,
|
|
26
26
|
TViewerContext extends ViewerContext,
|
|
27
|
-
TEntity extends ReadonlyEntity<TFields,
|
|
27
|
+
TEntity extends ReadonlyEntity<TFields, TIDField, TViewerContext, TSelectedFields>,
|
|
28
28
|
TPrivacyPolicy extends EntityPrivacyPolicy<
|
|
29
29
|
TFields,
|
|
30
|
-
|
|
30
|
+
TIDField,
|
|
31
31
|
TViewerContext,
|
|
32
32
|
TEntity,
|
|
33
33
|
TSelectedFields
|
|
@@ -36,7 +36,7 @@ export default class ViewerScopedEntityCompanionProvider {
|
|
|
36
36
|
>(
|
|
37
37
|
entityClass: IEntityClass<
|
|
38
38
|
TFields,
|
|
39
|
-
|
|
39
|
+
TIDField,
|
|
40
40
|
TViewerContext,
|
|
41
41
|
TEntity,
|
|
42
42
|
TPrivacyPolicy,
|
|
@@ -44,7 +44,7 @@ export default class ViewerScopedEntityCompanionProvider {
|
|
|
44
44
|
>,
|
|
45
45
|
): ViewerScopedEntityCompanion<
|
|
46
46
|
TFields,
|
|
47
|
-
|
|
47
|
+
TIDField,
|
|
48
48
|
TViewerContext,
|
|
49
49
|
TEntity,
|
|
50
50
|
TPrivacyPolicy,
|
|
@@ -9,13 +9,13 @@ import ViewerContext from './ViewerContext';
|
|
|
9
9
|
* Provides a cleaner API for loading entities by passing through the ViewerContext.
|
|
10
10
|
*/
|
|
11
11
|
export default class ViewerScopedEntityLoaderFactory<
|
|
12
|
-
TFields extends
|
|
13
|
-
|
|
12
|
+
TFields extends Record<string, any>,
|
|
13
|
+
TIDField extends keyof NonNullable<Pick<TFields, TSelectedFields>>,
|
|
14
14
|
TViewerContext extends ViewerContext,
|
|
15
|
-
TEntity extends ReadonlyEntity<TFields,
|
|
15
|
+
TEntity extends ReadonlyEntity<TFields, TIDField, TViewerContext, TSelectedFields>,
|
|
16
16
|
TPrivacyPolicy extends EntityPrivacyPolicy<
|
|
17
17
|
TFields,
|
|
18
|
-
|
|
18
|
+
TIDField,
|
|
19
19
|
TViewerContext,
|
|
20
20
|
TEntity,
|
|
21
21
|
TSelectedFields
|
|
@@ -25,7 +25,7 @@ export default class ViewerScopedEntityLoaderFactory<
|
|
|
25
25
|
constructor(
|
|
26
26
|
private readonly entityLoaderFactory: EntityLoaderFactory<
|
|
27
27
|
TFields,
|
|
28
|
-
|
|
28
|
+
TIDField,
|
|
29
29
|
TViewerContext,
|
|
30
30
|
TEntity,
|
|
31
31
|
TPrivacyPolicy,
|
|
@@ -38,14 +38,14 @@ export default class ViewerScopedEntityLoaderFactory<
|
|
|
38
38
|
queryContext: EntityQueryContext,
|
|
39
39
|
privacyPolicyEvaluationContext: EntityPrivacyPolicyEvaluationContext<
|
|
40
40
|
TFields,
|
|
41
|
-
|
|
41
|
+
TIDField,
|
|
42
42
|
TViewerContext,
|
|
43
43
|
TEntity,
|
|
44
44
|
TSelectedFields
|
|
45
45
|
>,
|
|
46
46
|
): AuthorizationResultBasedEntityLoader<
|
|
47
47
|
TFields,
|
|
48
|
-
|
|
48
|
+
TIDField,
|
|
49
49
|
TViewerContext,
|
|
50
50
|
TEntity,
|
|
51
51
|
TPrivacyPolicy,
|
|
@@ -13,13 +13,13 @@ import ViewerContext from './ViewerContext';
|
|
|
13
13
|
* Provides a cleaner API for mutating entities by passing through the ViewerContext.
|
|
14
14
|
*/
|
|
15
15
|
export default class ViewerScopedEntityMutatorFactory<
|
|
16
|
-
TFields extends
|
|
17
|
-
|
|
16
|
+
TFields extends Record<string, any>,
|
|
17
|
+
TIDField extends keyof NonNullable<Pick<TFields, TSelectedFields>>,
|
|
18
18
|
TViewerContext extends ViewerContext,
|
|
19
|
-
TEntity extends ReadonlyEntity<TFields,
|
|
19
|
+
TEntity extends ReadonlyEntity<TFields, TIDField, TViewerContext, TSelectedFields>,
|
|
20
20
|
TPrivacyPolicy extends EntityPrivacyPolicy<
|
|
21
21
|
TFields,
|
|
22
|
-
|
|
22
|
+
TIDField,
|
|
23
23
|
TViewerContext,
|
|
24
24
|
TEntity,
|
|
25
25
|
TSelectedFields
|
|
@@ -29,7 +29,7 @@ export default class ViewerScopedEntityMutatorFactory<
|
|
|
29
29
|
constructor(
|
|
30
30
|
private readonly entityMutatorFactory: EntityMutatorFactory<
|
|
31
31
|
TFields,
|
|
32
|
-
|
|
32
|
+
TIDField,
|
|
33
33
|
TViewerContext,
|
|
34
34
|
TEntity,
|
|
35
35
|
TPrivacyPolicy,
|
|
@@ -42,7 +42,7 @@ export default class ViewerScopedEntityMutatorFactory<
|
|
|
42
42
|
queryContext: EntityQueryContext,
|
|
43
43
|
): AuthorizationResultBasedCreateMutator<
|
|
44
44
|
TFields,
|
|
45
|
-
|
|
45
|
+
TIDField,
|
|
46
46
|
TViewerContext,
|
|
47
47
|
TEntity,
|
|
48
48
|
TPrivacyPolicy,
|
|
@@ -56,7 +56,7 @@ export default class ViewerScopedEntityMutatorFactory<
|
|
|
56
56
|
queryContext: EntityQueryContext,
|
|
57
57
|
): AuthorizationResultBasedUpdateMutator<
|
|
58
58
|
TFields,
|
|
59
|
-
|
|
59
|
+
TIDField,
|
|
60
60
|
TViewerContext,
|
|
61
61
|
TEntity,
|
|
62
62
|
TPrivacyPolicy,
|
|
@@ -70,7 +70,7 @@ export default class ViewerScopedEntityMutatorFactory<
|
|
|
70
70
|
queryContext: EntityQueryContext,
|
|
71
71
|
): AuthorizationResultBasedDeleteMutator<
|
|
72
72
|
TFields,
|
|
73
|
-
|
|
73
|
+
TIDField,
|
|
74
74
|
TViewerContext,
|
|
75
75
|
TEntity,
|
|
76
76
|
TPrivacyPolicy,
|