@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
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import IEntityCacheAdapter from './IEntityCacheAdapter';
|
|
2
2
|
import IEntityGenericCacher from './IEntityGenericCacher';
|
|
3
|
+
import { IEntityLoadKey, IEntityLoadValue } from './internal/EntityLoadInterfaces';
|
|
3
4
|
import { CacheLoadResult } from './internal/ReadThroughEntityCache';
|
|
4
5
|
/**
|
|
5
6
|
* A standard IEntityCacheAdapter that coordinates caching through an IEntityGenericCacher.
|
|
6
7
|
*/
|
|
7
|
-
export default class GenericEntityCacheAdapter<TFields> implements IEntityCacheAdapter<TFields> {
|
|
8
|
+
export default class GenericEntityCacheAdapter<TFields extends Record<string, any>, TIDField extends keyof TFields> implements IEntityCacheAdapter<TFields, TIDField> {
|
|
8
9
|
private readonly genericCacher;
|
|
9
|
-
constructor(genericCacher: IEntityGenericCacher<TFields>);
|
|
10
|
-
loadManyAsync<
|
|
11
|
-
cacheManyAsync<
|
|
12
|
-
cacheDBMissesAsync<
|
|
13
|
-
invalidateManyAsync<
|
|
10
|
+
constructor(genericCacher: IEntityGenericCacher<TFields, TIDField>);
|
|
11
|
+
loadManyAsync<TLoadKey extends IEntityLoadKey<TFields, TIDField, TSerializedLoadValue, TLoadValue>, TSerializedLoadValue, TLoadValue extends IEntityLoadValue<TSerializedLoadValue>>(key: TLoadKey, values: readonly TLoadValue[]): Promise<ReadonlyMap<TLoadValue, CacheLoadResult<TFields>>>;
|
|
12
|
+
cacheManyAsync<TLoadKey extends IEntityLoadKey<TFields, TIDField, TSerializedLoadValue, TLoadValue>, TSerializedLoadValue, TLoadValue extends IEntityLoadValue<TSerializedLoadValue>>(key: TLoadKey, objectMap: ReadonlyMap<TLoadValue, Readonly<TFields>>): Promise<void>;
|
|
13
|
+
cacheDBMissesAsync<TLoadKey extends IEntityLoadKey<TFields, TIDField, TSerializedLoadValue, TLoadValue>, TSerializedLoadValue, TLoadValue extends IEntityLoadValue<TSerializedLoadValue>>(key: TLoadKey, values: readonly TLoadValue[]): Promise<void>;
|
|
14
|
+
invalidateManyAsync<TLoadKey extends IEntityLoadKey<TFields, TIDField, TSerializedLoadValue, TLoadValue>, TSerializedLoadValue, TLoadValue extends IEntityLoadValue<TSerializedLoadValue>>(key: TLoadKey, values: readonly TLoadValue[]): Promise<void>;
|
|
14
15
|
}
|
|
@@ -13,26 +13,25 @@ class GenericEntityCacheAdapter {
|
|
|
13
13
|
constructor(genericCacher) {
|
|
14
14
|
this.genericCacher = genericCacher;
|
|
15
15
|
}
|
|
16
|
-
async loadManyAsync(
|
|
17
|
-
const redisCacheKeyToFieldValueMapping = new Map(
|
|
18
|
-
this.genericCacher.makeCacheKey(fieldName, fieldValue),
|
|
19
|
-
fieldValue,
|
|
20
|
-
]));
|
|
16
|
+
async loadManyAsync(key, values) {
|
|
17
|
+
const redisCacheKeyToFieldValueMapping = new Map(values.map((value) => [this.genericCacher.makeCacheKeyForStorage(key, value), value]));
|
|
21
18
|
const cacheResults = await this.genericCacher.loadManyAsync(Array.from(redisCacheKeyToFieldValueMapping.keys()));
|
|
22
|
-
|
|
19
|
+
const result = key.vendNewLoadValueMap();
|
|
20
|
+
for (const [redisCacheKey, cacheResult] of cacheResults) {
|
|
23
21
|
const fieldValue = redisCacheKeyToFieldValueMapping.get(redisCacheKey);
|
|
24
22
|
(0, invariant_1.default)(fieldValue !== undefined, 'Unspecified cache key %s returned from generic cacher', redisCacheKey);
|
|
25
|
-
|
|
26
|
-
}
|
|
23
|
+
result.set(fieldValue, cacheResult);
|
|
24
|
+
}
|
|
25
|
+
return result;
|
|
27
26
|
}
|
|
28
|
-
async cacheManyAsync(
|
|
29
|
-
await this.genericCacher.cacheManyAsync((0, maps_1.mapKeys)(objectMap, (
|
|
27
|
+
async cacheManyAsync(key, objectMap) {
|
|
28
|
+
await this.genericCacher.cacheManyAsync((0, maps_1.mapKeys)(objectMap, (value) => this.genericCacher.makeCacheKeyForStorage(key, value)));
|
|
30
29
|
}
|
|
31
|
-
async cacheDBMissesAsync(
|
|
32
|
-
await this.genericCacher.cacheDBMissesAsync(
|
|
30
|
+
async cacheDBMissesAsync(key, values) {
|
|
31
|
+
await this.genericCacher.cacheDBMissesAsync(values.map((value) => this.genericCacher.makeCacheKeyForStorage(key, value)));
|
|
33
32
|
}
|
|
34
|
-
async invalidateManyAsync(
|
|
35
|
-
await this.genericCacher.invalidateManyAsync(
|
|
33
|
+
async invalidateManyAsync(key, values) {
|
|
34
|
+
await this.genericCacher.invalidateManyAsync(values.flatMap((value) => this.genericCacher.makeCacheKeysForInvalidation(key, value)));
|
|
36
35
|
}
|
|
37
36
|
}
|
|
38
37
|
exports.default = GenericEntityCacheAdapter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenericEntityCacheAdapter.js","sourceRoot":"","sources":["../src/GenericEntityCacheAdapter.ts"],"names":[],"mappings":";;;;;AAAA,0DAAkC;
|
|
1
|
+
{"version":3,"file":"GenericEntityCacheAdapter.js","sourceRoot":"","sources":["../src/GenericEntityCacheAdapter.ts"],"names":[],"mappings":";;;;;AAAA,0DAAkC;AAMlC,mDAAmD;AAEnD;;GAEG;AACH,MAAqB,yBAAyB;IAKf;IAA7B,YAA6B,aAAsD;QAAtD,kBAAa,GAAb,aAAa,CAAyC;IAAG,CAAC;IAEhF,KAAK,CAAC,aAAa,CAKxB,GAAa,EACb,MAA6B;QAE7B,MAAM,gCAAgC,GAAG,IAAI,GAAG,CAC9C,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CACtF,CAAC;QACF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CACzD,KAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC,IAAI,EAAE,CAAC,CACpD,CAAC;QAEF,MAAM,MAAM,GAAG,GAAG,CAAC,mBAAmB,EAA4B,CAAC;QACnE,KAAK,MAAM,CAAC,aAAa,EAAE,WAAW,CAAC,IAAI,YAAY,EAAE,CAAC;YACxD,MAAM,UAAU,GAAG,gCAAgC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACvE,IAAA,mBAAS,EACP,UAAU,KAAK,SAAS,EACxB,uDAAuD,EACvD,aAAa,CACd,CAAC;YACF,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QACtC,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,cAAc,CAIzB,GAAa,EAAE,SAAqD;QACpE,MAAM,IAAI,CAAC,aAAa,CAAC,cAAc,CACrC,IAAA,cAAO,EAAC,SAAS,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CACrF,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAI7B,GAAa,EAAE,MAA6B;QAC5C,MAAM,IAAI,CAAC,aAAa,CAAC,kBAAkB,CACzC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAC7E,CAAC;IACJ,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAI9B,GAAa,EAAE,MAA6B;QAC5C,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAC1C,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,4BAA4B,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CACvF,CAAC;IACJ,CAAC;CACF;AAhED,4CAgEC"}
|
|
@@ -5,10 +5,10 @@ import IEntityGenericCacher from './IEntityGenericCacher';
|
|
|
5
5
|
* single entity load. One common way this may be used is to add a second layer of caching in a hot path that makes
|
|
6
6
|
* a call to EntityLoader.loadManyByFieldEqualityConjunctionAsync is guaranteed to return at most one entity.
|
|
7
7
|
*/
|
|
8
|
-
export default abstract class GenericSecondaryEntityCache<TFields, TLoadParams> implements ISecondaryEntityCache<TFields, TLoadParams> {
|
|
9
|
-
protected readonly cacher: IEntityGenericCacher<TFields>;
|
|
8
|
+
export default abstract class GenericSecondaryEntityCache<TFields extends Record<string, any>, TIDField extends keyof TFields, TLoadParams> implements ISecondaryEntityCache<TFields, TLoadParams> {
|
|
9
|
+
protected readonly cacher: IEntityGenericCacher<TFields, TIDField>;
|
|
10
10
|
protected readonly constructCacheKey: (params: Readonly<TLoadParams>) => string;
|
|
11
|
-
constructor(cacher: IEntityGenericCacher<TFields>, constructCacheKey: (params: Readonly<TLoadParams>) => string);
|
|
11
|
+
constructor(cacher: IEntityGenericCacher<TFields, TIDField>, constructCacheKey: (params: Readonly<TLoadParams>) => string);
|
|
12
12
|
loadManyThroughAsync(loadParamsArray: readonly Readonly<TLoadParams>[], fetcher: (fetcherLoadParamsArray: readonly Readonly<TLoadParams>[]) => Promise<ReadonlyMap<Readonly<TLoadParams>, Readonly<TFields> | null>>): Promise<ReadonlyMap<Readonly<TLoadParams>, Readonly<TFields> | null>>;
|
|
13
13
|
/**
|
|
14
14
|
* Invalidate the cache for objects cached by constructCacheKey(loadParams).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenericSecondaryEntityCache.js","sourceRoot":"","sources":["../src/GenericSecondaryEntityCache.ts"],"names":[],"mappings":";;;;;AAAA,0DAAkC;AAIlC,8EAAgE;AAChE,mDAA+D;AAE/D;;;;GAIG;AACH,MAA8B,2BAA2B;
|
|
1
|
+
{"version":3,"file":"GenericSecondaryEntityCache.js","sourceRoot":"","sources":["../src/GenericSecondaryEntityCache.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,33 +1,34 @@
|
|
|
1
|
+
import { IEntityLoadKey, IEntityLoadValue } from './internal/EntityLoadInterfaces';
|
|
1
2
|
import { CacheLoadResult } from './internal/ReadThroughEntityCache';
|
|
2
3
|
/**
|
|
3
4
|
* A cache adapter is an interface by which objects can be
|
|
4
5
|
* cached, fetched from cache, and removed from cache (invalidated).
|
|
5
6
|
*/
|
|
6
|
-
export default interface IEntityCacheAdapter<TFields> {
|
|
7
|
+
export default interface IEntityCacheAdapter<TFields extends Record<string, any>, TIDField extends keyof TFields> {
|
|
7
8
|
/**
|
|
8
9
|
* Load many objects from cache.
|
|
9
|
-
* @param
|
|
10
|
-
* @param
|
|
11
|
-
* @returns map from all
|
|
10
|
+
* @param key - load key to load
|
|
11
|
+
* @param values - load values to load for the key
|
|
12
|
+
* @returns map from all load values to a CacheLoadResult for that value
|
|
12
13
|
*/
|
|
13
|
-
loadManyAsync<
|
|
14
|
+
loadManyAsync<TLoadKey extends IEntityLoadKey<TFields, TIDField, TSerializedLoadValue, TLoadValue>, TSerializedLoadValue, TLoadValue extends IEntityLoadValue<TSerializedLoadValue>>(key: TLoadKey, values: readonly TLoadValue[]): Promise<ReadonlyMap<TLoadValue, CacheLoadResult<TFields>>>;
|
|
14
15
|
/**
|
|
15
16
|
* Cache many objects fetched from the DB.
|
|
16
|
-
* @param
|
|
17
|
-
* @param objectMap - map from
|
|
17
|
+
* @param key - load key to cache
|
|
18
|
+
* @param objectMap - map from load value to object to cache for the key
|
|
18
19
|
*/
|
|
19
|
-
cacheManyAsync<
|
|
20
|
+
cacheManyAsync<TLoadKey extends IEntityLoadKey<TFields, TIDField, TSerializedLoadValue, TLoadValue>, TSerializedLoadValue, TLoadValue extends IEntityLoadValue<TSerializedLoadValue>>(key: TLoadKey, objectMap: ReadonlyMap<TLoadValue, Readonly<TFields>>): Promise<void>;
|
|
20
21
|
/**
|
|
21
22
|
* Negatively cache objects that could not be found in the cache or DB.
|
|
22
|
-
* @param
|
|
23
|
-
* @param
|
|
24
|
-
*
|
|
23
|
+
* @param key - load key to cache misses for
|
|
24
|
+
* @param values - load values for objects reported as CacheStatus.NEGATIVE
|
|
25
|
+
* in the cache and not found in the DB.
|
|
25
26
|
*/
|
|
26
|
-
cacheDBMissesAsync<
|
|
27
|
+
cacheDBMissesAsync<TLoadKey extends IEntityLoadKey<TFields, TIDField, TSerializedLoadValue, TLoadValue>, TSerializedLoadValue, TLoadValue extends IEntityLoadValue<TSerializedLoadValue>>(key: TLoadKey, values: readonly TLoadValue[]): Promise<void>;
|
|
27
28
|
/**
|
|
28
|
-
* Invalidate the cache for objects cached by (
|
|
29
|
-
* @param
|
|
30
|
-
* @param
|
|
29
|
+
* Invalidate the cache for objects cached by (key, value).
|
|
30
|
+
* @param key - load key to invalidate
|
|
31
|
+
* @param values - load values to be invalidated for the key
|
|
31
32
|
*/
|
|
32
|
-
invalidateManyAsync<
|
|
33
|
+
invalidateManyAsync<TLoadKey extends IEntityLoadKey<TFields, TIDField, TSerializedLoadValue, TLoadValue>, TSerializedLoadValue, TLoadValue extends IEntityLoadValue<TSerializedLoadValue>>(key: TLoadKey, values: readonly TLoadValue[]): Promise<void>;
|
|
33
34
|
}
|
|
@@ -8,5 +8,5 @@ export default interface IEntityCacheAdapterProvider {
|
|
|
8
8
|
/**
|
|
9
9
|
* Vend a cache adapter for an entity configuration.
|
|
10
10
|
*/
|
|
11
|
-
getCacheAdapter<TFields extends Record<string, any
|
|
11
|
+
getCacheAdapter<TFields extends Record<string, any>, TIDField extends keyof TFields>(entityConfiguration: EntityConfiguration<TFields, TIDField>): IEntityCacheAdapter<TFields, TIDField>;
|
|
12
12
|
}
|
|
@@ -8,5 +8,5 @@ export default interface IEntityDatabaseAdapterProvider {
|
|
|
8
8
|
/**
|
|
9
9
|
* Vend a database adapter.
|
|
10
10
|
*/
|
|
11
|
-
getDatabaseAdapter<TFields extends Record<string, any
|
|
11
|
+
getDatabaseAdapter<TFields extends Record<string, any>, TIDField extends keyof TFields>(entityConfiguration: EntityConfiguration<TFields, TIDField>): EntityDatabaseAdapter<TFields, TIDField>;
|
|
12
12
|
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { IEntityLoadKey, IEntityLoadValue } from './internal/EntityLoadInterfaces';
|
|
1
2
|
import { CacheLoadResult } from './internal/ReadThroughEntityCache';
|
|
2
3
|
/**
|
|
3
4
|
* A generic cacher stores and loads key-value pairs. It also supports negative caching - it stores the absence
|
|
4
5
|
* of keys that don't exist in the backing datastore. It is also responsible for cache key creation.
|
|
5
6
|
*/
|
|
6
|
-
export default interface IEntityGenericCacher<TFields> {
|
|
7
|
+
export default interface IEntityGenericCacher<TFields extends Record<string, any>, TIDField extends keyof TFields> {
|
|
7
8
|
/**
|
|
8
9
|
* Load many keys from the cache. Return info in a format that is useful for read-through caching and
|
|
9
10
|
* negative caching.
|
|
@@ -31,10 +32,19 @@ export default interface IEntityGenericCacher<TFields> {
|
|
|
31
32
|
*/
|
|
32
33
|
invalidateManyAsync(keys: readonly string[]): Promise<void>;
|
|
33
34
|
/**
|
|
34
|
-
* Create a cache key for a
|
|
35
|
+
* Create a cache key for a load key and load value of an object being cached (or negatively cached).
|
|
35
36
|
*
|
|
36
|
-
* @param
|
|
37
|
-
* @param
|
|
37
|
+
* @param key - load key of the cache key
|
|
38
|
+
* @param value - load value of the cache key
|
|
38
39
|
*/
|
|
39
|
-
|
|
40
|
+
makeCacheKeyForStorage<TLoadKey extends IEntityLoadKey<TFields, TIDField, TSerializedLoadValue, TLoadValue>, TSerializedLoadValue, TLoadValue extends IEntityLoadValue<TSerializedLoadValue>>(key: TLoadKey, value: TLoadValue): string;
|
|
41
|
+
/**
|
|
42
|
+
* Create a cache key for a load key and load values of an object being invalidated. This is separate
|
|
43
|
+
* from makeCacheKeyForStorage because invalidation can optionally be configured to invalidate a larger set of keys than
|
|
44
|
+
* the one for just the current cache version, which can be useful for things like push safety.
|
|
45
|
+
*
|
|
46
|
+
* @param key - load key of the cache key
|
|
47
|
+
* @param values - load values of the cache key
|
|
48
|
+
*/
|
|
49
|
+
makeCacheKeysForInvalidation<TLoadKey extends IEntityLoadKey<TFields, TIDField, TSerializedLoadValue, TLoadValue>, TSerializedLoadValue, TLoadValue extends IEntityLoadValue<TSerializedLoadValue>>(key: TLoadKey, value: TLoadValue): readonly string[];
|
|
40
50
|
}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
import AuthorizationResultBasedEntityAssociationLoader from './AuthorizationResultBasedEntityAssociationLoader';
|
|
2
|
+
import AuthorizationResultBasedEntityLoader from './AuthorizationResultBasedEntityLoader';
|
|
3
|
+
import EnforcingEntityAssociationLoader from './EnforcingEntityAssociationLoader';
|
|
4
|
+
import EnforcingEntityLoader from './EnforcingEntityLoader';
|
|
1
5
|
import { IEntityClass } from './Entity';
|
|
2
|
-
import
|
|
3
|
-
import EntityLoader from './EntityLoader';
|
|
6
|
+
import EntityLoaderUtils from './EntityLoaderUtils';
|
|
4
7
|
import EntityPrivacyPolicy from './EntityPrivacyPolicy';
|
|
5
8
|
import { EntityQueryContext } from './EntityQueryContext';
|
|
6
9
|
import ViewerContext from './ViewerContext';
|
|
@@ -12,7 +15,7 @@ import ViewerContext from './ViewerContext';
|
|
|
12
15
|
* - Entities representing SQL views.
|
|
13
16
|
* - Entities representing immutable tables.
|
|
14
17
|
*/
|
|
15
|
-
export default abstract class ReadonlyEntity<TFields extends
|
|
18
|
+
export default abstract class ReadonlyEntity<TFields extends Record<string, any>, TIDField extends keyof NonNullable<Pick<TFields, TSelectedFields>>, TViewerContext extends ViewerContext, TSelectedFields extends keyof TFields = keyof TFields> {
|
|
16
19
|
private readonly viewerContext;
|
|
17
20
|
private readonly id;
|
|
18
21
|
private readonly databaseFields;
|
|
@@ -33,7 +36,7 @@ export default abstract class ReadonlyEntity<TFields extends object, TID extends
|
|
|
33
36
|
*/
|
|
34
37
|
constructor({ viewerContext, id, databaseFields, selectedFields, }: {
|
|
35
38
|
viewerContext: TViewerContext;
|
|
36
|
-
id:
|
|
39
|
+
id: TFields[TIDField];
|
|
37
40
|
databaseFields: Readonly<TFields>;
|
|
38
41
|
selectedFields: Readonly<Pick<TFields, TSelectedFields>>;
|
|
39
42
|
});
|
|
@@ -46,11 +49,15 @@ export default abstract class ReadonlyEntity<TFields extends object, TID extends
|
|
|
46
49
|
/**
|
|
47
50
|
* @returns the ID of this entity
|
|
48
51
|
*/
|
|
49
|
-
getID():
|
|
52
|
+
getID(): TFields[TIDField];
|
|
50
53
|
/**
|
|
51
|
-
* @returns
|
|
54
|
+
* @returns EnforcingEntityAssociationLoader for this entity
|
|
52
55
|
*/
|
|
53
|
-
associationLoader(queryContext?: EntityQueryContext):
|
|
56
|
+
associationLoader(queryContext?: EntityQueryContext): EnforcingEntityAssociationLoader<TFields, TIDField, TViewerContext, this, TSelectedFields>;
|
|
57
|
+
/**
|
|
58
|
+
* @returns AuthorizationResultBasedEntityAssociationLoader for this entity
|
|
59
|
+
*/
|
|
60
|
+
associationLoaderWithAuthorizationResults(queryContext?: EntityQueryContext): AuthorizationResultBasedEntityAssociationLoader<TFields, TIDField, TViewerContext, this, TSelectedFields>;
|
|
54
61
|
/**
|
|
55
62
|
* Get a underlying field from this entity's data
|
|
56
63
|
* @param fieldName - the field to get
|
|
@@ -70,5 +77,17 @@ export default abstract class ReadonlyEntity<TFields extends object, TID extends
|
|
|
70
77
|
* @param viewerContext - viewer context of loading user
|
|
71
78
|
* @param queryContext - query context in which to perform the load
|
|
72
79
|
*/
|
|
73
|
-
static loader<TMFields extends object,
|
|
80
|
+
static loader<TMFields extends object, TMIDField extends keyof NonNullable<Pick<TMFields, TMSelectedFields>>, TMViewerContext extends ViewerContext, TMViewerContext2 extends TMViewerContext, TMEntity extends ReadonlyEntity<TMFields, TMIDField, TMViewerContext, TMSelectedFields>, TMPrivacyPolicy extends EntityPrivacyPolicy<TMFields, TMIDField, TMViewerContext, TMEntity, TMSelectedFields>, TMSelectedFields extends keyof TMFields = keyof TMFields>(this: IEntityClass<TMFields, TMIDField, TMViewerContext, TMEntity, TMPrivacyPolicy, TMSelectedFields>, viewerContext: TMViewerContext2, queryContext?: EntityQueryContext): EnforcingEntityLoader<TMFields, TMIDField, TMViewerContext, TMEntity, TMPrivacyPolicy, TMSelectedFields>;
|
|
81
|
+
/**
|
|
82
|
+
* Vend loader for loading an entity in a given query context.
|
|
83
|
+
* @param viewerContext - viewer context of loading user
|
|
84
|
+
* @param queryContext - query context in which to perform the load
|
|
85
|
+
*/
|
|
86
|
+
static loaderWithAuthorizationResults<TMFields extends object, TMIDField extends keyof NonNullable<Pick<TMFields, TMSelectedFields>>, TMViewerContext extends ViewerContext, TMViewerContext2 extends TMViewerContext, TMEntity extends ReadonlyEntity<TMFields, TMIDField, TMViewerContext, TMSelectedFields>, TMPrivacyPolicy extends EntityPrivacyPolicy<TMFields, TMIDField, TMViewerContext, TMEntity, TMSelectedFields>, TMSelectedFields extends keyof TMFields = keyof TMFields>(this: IEntityClass<TMFields, TMIDField, TMViewerContext, TMEntity, TMPrivacyPolicy, TMSelectedFields>, viewerContext: TMViewerContext2, queryContext?: EntityQueryContext): AuthorizationResultBasedEntityLoader<TMFields, TMIDField, TMViewerContext, TMEntity, TMPrivacyPolicy, TMSelectedFields>;
|
|
87
|
+
/**
|
|
88
|
+
* Vend loader for loading an entity in a given query context.
|
|
89
|
+
* @param viewerContext - viewer context of loading user
|
|
90
|
+
* @param queryContext - query context in which to perform the load
|
|
91
|
+
*/
|
|
92
|
+
static loaderUtils<TMFields extends object, TMIDField extends keyof NonNullable<Pick<TMFields, TMSelectedFields>>, TMViewerContext extends ViewerContext, TMViewerContext2 extends TMViewerContext, TMEntity extends ReadonlyEntity<TMFields, TMIDField, TMViewerContext, TMSelectedFields>, TMPrivacyPolicy extends EntityPrivacyPolicy<TMFields, TMIDField, TMViewerContext, TMEntity, TMSelectedFields>, TMSelectedFields extends keyof TMFields = keyof TMFields>(this: IEntityClass<TMFields, TMIDField, TMViewerContext, TMEntity, TMPrivacyPolicy, TMSelectedFields>, viewerContext: TMViewerContext2, queryContext?: EntityQueryContext): EntityLoaderUtils<TMFields, TMIDField, TMViewerContext, TMEntity, TMPrivacyPolicy, TMSelectedFields>;
|
|
74
93
|
}
|
package/build/ReadonlyEntity.js
CHANGED
|
@@ -59,10 +59,16 @@ class ReadonlyEntity {
|
|
|
59
59
|
return this.id;
|
|
60
60
|
}
|
|
61
61
|
/**
|
|
62
|
-
* @returns
|
|
62
|
+
* @returns EnforcingEntityAssociationLoader for this entity
|
|
63
63
|
*/
|
|
64
64
|
associationLoader(queryContext) {
|
|
65
|
-
return new EntityAssociationLoader_1.default(this, queryContext);
|
|
65
|
+
return new EntityAssociationLoader_1.default(this, queryContext).enforcing();
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* @returns AuthorizationResultBasedEntityAssociationLoader for this entity
|
|
69
|
+
*/
|
|
70
|
+
associationLoaderWithAuthorizationResults(queryContext) {
|
|
71
|
+
return new EntityAssociationLoader_1.default(this, queryContext).withAuthorizationResults();
|
|
66
72
|
}
|
|
67
73
|
/**
|
|
68
74
|
* Get a underlying field from this entity's data
|
|
@@ -93,7 +99,29 @@ class ReadonlyEntity {
|
|
|
93
99
|
.getViewerScopedEntityCompanionForClass(this)
|
|
94
100
|
.getQueryContextProvider()
|
|
95
101
|
.getQueryContext()) {
|
|
96
|
-
return new EntityLoader_1.default(viewerContext, queryContext, this);
|
|
102
|
+
return new EntityLoader_1.default(viewerContext, queryContext, this).enforcing();
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Vend loader for loading an entity in a given query context.
|
|
106
|
+
* @param viewerContext - viewer context of loading user
|
|
107
|
+
* @param queryContext - query context in which to perform the load
|
|
108
|
+
*/
|
|
109
|
+
static loaderWithAuthorizationResults(viewerContext, queryContext = viewerContext
|
|
110
|
+
.getViewerScopedEntityCompanionForClass(this)
|
|
111
|
+
.getQueryContextProvider()
|
|
112
|
+
.getQueryContext()) {
|
|
113
|
+
return new EntityLoader_1.default(viewerContext, queryContext, this).withAuthorizationResults();
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Vend loader for loading an entity in a given query context.
|
|
117
|
+
* @param viewerContext - viewer context of loading user
|
|
118
|
+
* @param queryContext - query context in which to perform the load
|
|
119
|
+
*/
|
|
120
|
+
static loaderUtils(viewerContext, queryContext = viewerContext
|
|
121
|
+
.getViewerScopedEntityCompanionForClass(this)
|
|
122
|
+
.getQueryContextProvider()
|
|
123
|
+
.getQueryContext()) {
|
|
124
|
+
return new EntityLoader_1.default(viewerContext, queryContext, this).utils();
|
|
97
125
|
}
|
|
98
126
|
}
|
|
99
127
|
exports.default = ReadonlyEntity;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReadonlyEntity.js","sourceRoot":"","sources":["../src/ReadonlyEntity.ts"],"names":[],"mappings":";;;;;AAAA,0DAAkC;
|
|
1
|
+
{"version":3,"file":"ReadonlyEntity.js","sourceRoot":"","sources":["../src/ReadonlyEntity.ts"],"names":[],"mappings":";;;;;AAAA,0DAAkC;AAOlC,wFAAgE;AAChE,kEAA0C;AAM1C;;;;;;;GAOG;AACH,MAA8B,cAAc;IAMzB,aAAa,CAAiB;IAC9B,EAAE,CAAoB;IACtB,cAAc,CAAoB;IAClC,cAAc,CAA2C;IAE1E;;;;;;;;;;;;;OAaG;IACH,YAAY,EACV,aAAa,EACb,EAAE,EACF,cAAc,EACd,cAAc,GAMf;QACC,IAAA,mBAAS,EAAC,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,SAAS,EAAE,qBAAqB,CAAC,CAAC;QAElE,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAED,QAAQ;QACN,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC;IACrD,CAAC;IAED,mBAAmB;QACjB,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,gBAAgB;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,iBAAiB,CACf,YAAiC;QAEjC,OAAO,IAAI,iCAAuB,CAChC,IAAI,EACJ,YAAY,CACb,CAAC,SAAS,EAAE,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,yCAAyC,CACvC,YAAiC;QAQjC,OAAO,IAAI,iCAAuB,CAChC,IAAI,EACJ,YAAY,CACb,CAAC,wBAAwB,EAAE,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACH,QAAQ,CACN,SAAY;QAEZ,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,YAAY;QACV,OAAO,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,oBAAoB;QAClB,OAAO,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;IACpC,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,MAAM,CAuBX,aAA+B,EAC/B,eAAmC,aAAa;SAC7C,sCAAsC,CAAC,IAAI,CAAC;SAC5C,uBAAuB,EAAE;SACzB,eAAe,EAAE;QASpB,OAAO,IAAI,sBAAY,CAAC,aAAa,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;IACzE,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,8BAA8B,CAuBnC,aAA+B,EAC/B,eAAmC,aAAa;SAC7C,sCAAsC,CAAC,IAAI,CAAC;SAC5C,uBAAuB,EAAE;SACzB,eAAe,EAAE;QASpB,OAAO,IAAI,sBAAY,CAAC,aAAa,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC,wBAAwB,EAAE,CAAC;IACxF,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,WAAW,CAuBhB,aAA+B,EAC/B,eAAmC,aAAa;SAC7C,sCAAsC,CAAC,IAAI,CAAC;SAC5C,uBAAuB,EAAE;SACzB,eAAe,EAAE;QASpB,OAAO,IAAI,sBAAY,CAAC,aAAa,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC;IACrE,CAAC;CACF;AA5PD,iCA4PC"}
|
package/build/ViewerContext.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ export default class ViewerContext {
|
|
|
15
15
|
private readonly viewerScopedEntityCompanionProvider;
|
|
16
16
|
constructor(entityCompanionProvider: EntityCompanionProvider);
|
|
17
17
|
get [Symbol.toStringTag](): string;
|
|
18
|
-
getViewerScopedEntityCompanionForClass<TMFields extends object,
|
|
18
|
+
getViewerScopedEntityCompanionForClass<TMFields extends object, TMIDField extends keyof NonNullable<Pick<TMFields, TMSelectedFields>>, TMViewerContext extends ViewerContext, TMEntity extends ReadonlyEntity<TMFields, TMIDField, TMViewerContext, TMSelectedFields>, TMPrivacyPolicy extends EntityPrivacyPolicy<TMFields, TMIDField, TMViewerContext, TMEntity, TMSelectedFields>, TMSelectedFields extends keyof TMFields>(entityClass: IEntityClass<TMFields, TMIDField, TMViewerContext, TMEntity, TMPrivacyPolicy, TMSelectedFields>): ViewerScopedEntityCompanion<TMFields, TMIDField, TMViewerContext, TMEntity, TMPrivacyPolicy, TMSelectedFields>;
|
|
19
19
|
/**
|
|
20
20
|
* Get the regular (non-transactional) query context for a database adaptor flavor.
|
|
21
21
|
* @param databaseAdaptorFlavor - database adaptor flavor
|
|
@@ -10,18 +10,18 @@ import IEntityMetricsAdapter from './metrics/IEntityMetricsAdapter';
|
|
|
10
10
|
* Provides a simpler API for loading and mutating entities by injecting the ViewerContext
|
|
11
11
|
* from the viewer-scoped entity companion provider.
|
|
12
12
|
*/
|
|
13
|
-
export default class ViewerScopedEntityCompanion<TFields extends
|
|
14
|
-
readonly entityCompanion: EntityCompanion<TFields,
|
|
13
|
+
export default class ViewerScopedEntityCompanion<TFields extends Record<string, any>, TIDField extends keyof NonNullable<Pick<TFields, TSelectedFields>>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TIDField, TViewerContext, TSelectedFields>, TPrivacyPolicy extends EntityPrivacyPolicy<TFields, TIDField, TViewerContext, TEntity, TSelectedFields>, TSelectedFields extends keyof TFields> {
|
|
14
|
+
readonly entityCompanion: EntityCompanion<TFields, TIDField, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>;
|
|
15
15
|
private readonly viewerContext;
|
|
16
|
-
constructor(entityCompanion: EntityCompanion<TFields,
|
|
16
|
+
constructor(entityCompanion: EntityCompanion<TFields, TIDField, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>, viewerContext: TViewerContext);
|
|
17
17
|
/**
|
|
18
18
|
* Vend a viewer-scoped entity loader.
|
|
19
19
|
*/
|
|
20
|
-
getLoaderFactory(): ViewerScopedEntityLoaderFactory<TFields,
|
|
20
|
+
getLoaderFactory(): ViewerScopedEntityLoaderFactory<TFields, TIDField, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>;
|
|
21
21
|
/**
|
|
22
22
|
* Vend a viewer-scoped entity mutator factory.
|
|
23
23
|
*/
|
|
24
|
-
getMutatorFactory(): ViewerScopedEntityMutatorFactory<TFields,
|
|
24
|
+
getMutatorFactory(): ViewerScopedEntityMutatorFactory<TFields, TIDField, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>;
|
|
25
25
|
/**
|
|
26
26
|
* Get the query context provider for this entity.
|
|
27
27
|
*/
|
|
@@ -17,5 +17,5 @@ export default class ViewerScopedEntityCompanionProvider {
|
|
|
17
17
|
*
|
|
18
18
|
* @param entityClass - entity class to load
|
|
19
19
|
*/
|
|
20
|
-
getViewerScopedCompanionForEntity<TFields extends
|
|
20
|
+
getViewerScopedCompanionForEntity<TFields extends Record<string, any>, TIDField extends keyof NonNullable<Pick<TFields, TSelectedFields>>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TIDField, TViewerContext, TSelectedFields>, TPrivacyPolicy extends EntityPrivacyPolicy<TFields, TIDField, TViewerContext, TEntity, TSelectedFields>, TSelectedFields extends keyof TFields>(entityClass: IEntityClass<TFields, TIDField, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>): ViewerScopedEntityCompanion<TFields, TIDField, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>;
|
|
21
21
|
}
|
|
@@ -7,9 +7,9 @@ import ViewerContext from './ViewerContext';
|
|
|
7
7
|
/**
|
|
8
8
|
* Provides a cleaner API for loading entities by passing through the ViewerContext.
|
|
9
9
|
*/
|
|
10
|
-
export default class ViewerScopedEntityLoaderFactory<TFields extends
|
|
10
|
+
export default class ViewerScopedEntityLoaderFactory<TFields extends Record<string, any>, TIDField extends keyof NonNullable<Pick<TFields, TSelectedFields>>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TIDField, TViewerContext, TSelectedFields>, TPrivacyPolicy extends EntityPrivacyPolicy<TFields, TIDField, TViewerContext, TEntity, TSelectedFields>, TSelectedFields extends keyof TFields> {
|
|
11
11
|
private readonly entityLoaderFactory;
|
|
12
12
|
private readonly viewerContext;
|
|
13
|
-
constructor(entityLoaderFactory: EntityLoaderFactory<TFields,
|
|
14
|
-
forLoad(queryContext: EntityQueryContext, privacyPolicyEvaluationContext: EntityPrivacyPolicyEvaluationContext<TFields,
|
|
13
|
+
constructor(entityLoaderFactory: EntityLoaderFactory<TFields, TIDField, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>, viewerContext: TViewerContext);
|
|
14
|
+
forLoad(queryContext: EntityQueryContext, privacyPolicyEvaluationContext: EntityPrivacyPolicyEvaluationContext<TFields, TIDField, TViewerContext, TEntity, TSelectedFields>): AuthorizationResultBasedEntityLoader<TFields, TIDField, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>;
|
|
15
15
|
}
|
|
@@ -7,11 +7,11 @@ import ViewerContext from './ViewerContext';
|
|
|
7
7
|
/**
|
|
8
8
|
* Provides a cleaner API for mutating entities by passing through the ViewerContext.
|
|
9
9
|
*/
|
|
10
|
-
export default class ViewerScopedEntityMutatorFactory<TFields extends
|
|
10
|
+
export default class ViewerScopedEntityMutatorFactory<TFields extends Record<string, any>, TIDField extends keyof NonNullable<Pick<TFields, TSelectedFields>>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TIDField, TViewerContext, TSelectedFields>, TPrivacyPolicy extends EntityPrivacyPolicy<TFields, TIDField, TViewerContext, TEntity, TSelectedFields>, TSelectedFields extends keyof TFields> {
|
|
11
11
|
private readonly entityMutatorFactory;
|
|
12
12
|
private readonly viewerContext;
|
|
13
|
-
constructor(entityMutatorFactory: EntityMutatorFactory<TFields,
|
|
14
|
-
forCreate(queryContext: EntityQueryContext): AuthorizationResultBasedCreateMutator<TFields,
|
|
15
|
-
forUpdate(existingEntity: TEntity, queryContext: EntityQueryContext): AuthorizationResultBasedUpdateMutator<TFields,
|
|
16
|
-
forDelete(existingEntity: TEntity, queryContext: EntityQueryContext): AuthorizationResultBasedDeleteMutator<TFields,
|
|
13
|
+
constructor(entityMutatorFactory: EntityMutatorFactory<TFields, TIDField, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>, viewerContext: TViewerContext);
|
|
14
|
+
forCreate(queryContext: EntityQueryContext): AuthorizationResultBasedCreateMutator<TFields, TIDField, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>;
|
|
15
|
+
forUpdate(existingEntity: TEntity, queryContext: EntityQueryContext): AuthorizationResultBasedUpdateMutator<TFields, TIDField, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>;
|
|
16
|
+
forDelete(existingEntity: TEntity, queryContext: EntityQueryContext): AuthorizationResultBasedDeleteMutator<TFields, TIDField, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>;
|
|
17
17
|
}
|
package/build/entityUtils.d.ts
CHANGED
|
@@ -36,4 +36,4 @@ export declare const partitionArray: <T, U>(values: (T | U)[], predicate: Partit
|
|
|
36
36
|
* @param valuesAndErrors - array of values and errors
|
|
37
37
|
*/
|
|
38
38
|
export declare const partitionErrors: <T>(valuesAndErrors: (T | Error)[]) => [T[], Error[]];
|
|
39
|
-
export declare const pick: <T extends object, U extends keyof T>(object: T, props: U[]) => Pick<T, U>;
|
|
39
|
+
export declare const pick: <T extends object, U extends keyof T>(object: T, props: readonly U[]) => Pick<T, U>;
|
package/build/entityUtils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entityUtils.js","sourceRoot":"","sources":["../src/entityUtils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"entityUtils.js","sourceRoot":"","sources":["../src/entityUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,8 @@ import { IEntityClass } from '../Entity';
|
|
|
3
3
|
import EntityPrivacyPolicy from '../EntityPrivacyPolicy';
|
|
4
4
|
import ReadonlyEntity from '../ReadonlyEntity';
|
|
5
5
|
import ViewerContext from '../ViewerContext';
|
|
6
|
-
export default class EntityInvalidFieldValueError<TFields extends
|
|
6
|
+
export default class EntityInvalidFieldValueError<TFields extends Record<string, any>, TIDField extends keyof NonNullable<Pick<TFields, TSelectedFields>>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TIDField, TViewerContext, TSelectedFields>, TPrivacyPolicy extends EntityPrivacyPolicy<TFields, TIDField, TViewerContext, TEntity, TSelectedFields>, N extends keyof TFields, TSelectedFields extends keyof TFields = keyof TFields> extends EntityError {
|
|
7
7
|
readonly state = EntityErrorState.PERMANENT;
|
|
8
8
|
readonly code = EntityErrorCode.ERR_ENTITY_INVALID_FIELD_VALUE;
|
|
9
|
-
constructor(entityClass: IEntityClass<TFields,
|
|
9
|
+
constructor(entityClass: IEntityClass<TFields, TIDField, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>, fieldName: N, fieldValue?: TFields[N]);
|
|
10
10
|
}
|
|
@@ -2,7 +2,7 @@ import EntityError, { EntityErrorCode, EntityErrorState } from './EntityError';
|
|
|
2
2
|
import { EntityAuthorizationAction } from '../EntityPrivacyPolicy';
|
|
3
3
|
import ReadonlyEntity from '../ReadonlyEntity';
|
|
4
4
|
import ViewerContext from '../ViewerContext';
|
|
5
|
-
export default class EntityNotAuthorizedError<TFields extends
|
|
5
|
+
export default class EntityNotAuthorizedError<TFields extends Record<string, any>, TIDField extends keyof NonNullable<Pick<TFields, TSelectedFields>>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TIDField, TViewerContext, TSelectedFields>, TSelectedFields extends keyof TFields = keyof TFields> extends EntityError {
|
|
6
6
|
readonly state = EntityErrorState.PERMANENT;
|
|
7
7
|
readonly code = EntityErrorCode.ERR_ENTITY_NOT_AUTHORIZED;
|
|
8
8
|
readonly entityClassName: string;
|
|
@@ -3,8 +3,8 @@ import { IEntityClass } from '../Entity';
|
|
|
3
3
|
import EntityPrivacyPolicy from '../EntityPrivacyPolicy';
|
|
4
4
|
import ReadonlyEntity from '../ReadonlyEntity';
|
|
5
5
|
import ViewerContext from '../ViewerContext';
|
|
6
|
-
export default class EntityNotFoundError<TFields extends
|
|
6
|
+
export default class EntityNotFoundError<TFields extends Record<string, any>, TIDField extends keyof NonNullable<Pick<TFields, TSelectedFields>>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TIDField, TViewerContext, TSelectedFields>, TPrivacyPolicy extends EntityPrivacyPolicy<TFields, TIDField, TViewerContext, TEntity, TSelectedFields>, N extends keyof TFields, TSelectedFields extends keyof TFields = keyof TFields> extends EntityError {
|
|
7
7
|
readonly state = EntityErrorState.PERMANENT;
|
|
8
8
|
readonly code = EntityErrorCode.ERR_ENTITY_NOT_FOUND;
|
|
9
|
-
constructor(entityClass: IEntityClass<TFields,
|
|
9
|
+
constructor(entityClass: IEntityClass<TFields, TIDField, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>, fieldName: N, fieldValue: TFields[N]);
|
|
10
10
|
}
|
package/build/index.d.ts
CHANGED
|
@@ -21,6 +21,7 @@ export * from './EntityCompanion';
|
|
|
21
21
|
export { default as EntityCompanionProvider } from './EntityCompanionProvider';
|
|
22
22
|
export * from './EntityCompanionProvider';
|
|
23
23
|
export { default as EntityConfiguration } from './EntityConfiguration';
|
|
24
|
+
export * from './EntityConfiguration';
|
|
24
25
|
export { default as EntityCreator } from './EntityCreator';
|
|
25
26
|
export { default as EntityDatabaseAdapter } from './EntityDatabaseAdapter';
|
|
26
27
|
export * from './EntityDatabaseAdapter';
|
|
@@ -64,11 +65,15 @@ export * from './errors/EntityError';
|
|
|
64
65
|
export { default as EntityInvalidFieldValueError } from './errors/EntityInvalidFieldValueError';
|
|
65
66
|
export { default as EntityNotAuthorizedError } from './errors/EntityNotAuthorizedError';
|
|
66
67
|
export { default as EntityNotFoundError } from './errors/EntityNotFoundError';
|
|
68
|
+
export * from './internal/CompositeFieldHolder';
|
|
69
|
+
export * from './internal/CompositeFieldValueMap';
|
|
67
70
|
export { default as EntityDataManager } from './internal/EntityDataManager';
|
|
68
71
|
export * from './internal/EntityFieldTransformationUtils';
|
|
72
|
+
export * from './internal/EntityLoadInterfaces';
|
|
69
73
|
export { default as EntityTableDataCoordinator } from './internal/EntityTableDataCoordinator';
|
|
70
74
|
export { default as ReadThroughEntityCache } from './internal/ReadThroughEntityCache';
|
|
71
75
|
export * from './internal/ReadThroughEntityCache';
|
|
76
|
+
export * from './internal/SingleFieldHolder';
|
|
72
77
|
export * from './metrics/EntityMetricsUtils';
|
|
73
78
|
export { type default as IEntityMetricsAdapter } from './metrics/IEntityMetricsAdapter';
|
|
74
79
|
export * from './metrics/IEntityMetricsAdapter';
|
|
@@ -81,10 +86,5 @@ export * from './rules/PrivacyPolicyRule';
|
|
|
81
86
|
export * from './utils/EntityPrivacyUtils';
|
|
82
87
|
export * from './utils/mergeEntityMutationTriggerConfigurations';
|
|
83
88
|
export * from './utils/collections/maps';
|
|
84
|
-
export * from './utils/
|
|
85
|
-
export
|
|
86
|
-
export * from './utils/testing/PrivacyPolicyRuleTestUtils';
|
|
87
|
-
export * from './utils/testing/StubCacheAdapter';
|
|
88
|
-
export { default as StubDatabaseAdapter } from './utils/testing/StubDatabaseAdapter';
|
|
89
|
-
export { default as StubDatabaseAdapterProvider } from './utils/testing/StubDatabaseAdapterProvider';
|
|
90
|
-
export { default as StubQueryContextProvider } from './utils/testing/StubQueryContextProvider';
|
|
89
|
+
export * from './utils/collections/SerializableKeyMap';
|
|
90
|
+
export * from './utils/collections/sets';
|