@expo/entity 0.41.0 → 0.43.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.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 +10 -10
- 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 +8 -8
- 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 +56 -49
- 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 +39 -39
- 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 +24 -24
- 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 +4 -4
- 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 +2 -2
- package/src/__tests__/EntityAssociationLoader-test.ts +2 -2
- package/src/__tests__/EntityCommonUseCases-test.ts +11 -11
- 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 +97 -72
- package/src/__tests__/EntityFields-test.ts +2 -2
- package/src/__tests__/EntityLoader-test.ts +2 -2
- package/src/__tests__/EntityMutator-MutationCacheConsistency-test.ts +11 -11
- 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 +3 -3
- package/src/__tests__/EntitySelfReferentialEdges-test.ts +64 -39
- package/src/__tests__/GenericEntityCacheAdapter-test.ts +83 -28
- package/src/__tests__/ReadonlyEntity-test.ts +3 -3
- 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 +12 -12
- package/src/__tests__/cases/TwoEntitySameTableOverlappingRows-test.ts +12 -12
- 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 +62 -66
- package/src/utils/__tests__/canViewerDeleteAsync-edgeDeletionPermissionInferenceBehavior-test.ts +29 -25
- 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 -242
- 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 -94
- 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 -146
- 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 -723
- 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 -73
- 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 -201
- 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 -211
- 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 -123
- 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 -121
- 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 -486
- 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 -178
- 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
|
@@ -17,18 +17,22 @@ import {
|
|
|
17
17
|
import { computeIfAbsent, mapMap } from '../collections/maps';
|
|
18
18
|
|
|
19
19
|
export default class StubDatabaseAdapter<
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
TFields extends Record<string, any>,
|
|
21
|
+
TIDField extends keyof TFields,
|
|
22
|
+
> extends EntityDatabaseAdapter<TFields, TIDField> {
|
|
22
23
|
constructor(
|
|
23
|
-
private readonly entityConfiguration2: EntityConfiguration<
|
|
24
|
+
private readonly entityConfiguration2: EntityConfiguration<TFields, TIDField>,
|
|
24
25
|
private readonly dataStore: Map<string, Readonly<{ [key: string]: any }>[]>,
|
|
25
26
|
) {
|
|
26
27
|
super(entityConfiguration2);
|
|
27
28
|
}
|
|
28
29
|
|
|
29
|
-
public static convertFieldObjectsToDataStore<
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
public static convertFieldObjectsToDataStore<
|
|
31
|
+
TFields extends Record<string, any>,
|
|
32
|
+
TIDField extends keyof TFields,
|
|
33
|
+
>(
|
|
34
|
+
entityConfiguration: EntityConfiguration<TFields, TIDField>,
|
|
35
|
+
dataStore: Map<string, Readonly<TFields>[]>,
|
|
32
36
|
): Map<string, Readonly<{ [key: string]: any }>[]> {
|
|
33
37
|
return mapMap(dataStore, (objectsForTable) =>
|
|
34
38
|
objectsForTable.map((objectForTable) =>
|
|
@@ -48,20 +52,23 @@ export default class StubDatabaseAdapter<
|
|
|
48
52
|
protected async fetchManyWhereInternalAsync(
|
|
49
53
|
_queryInterface: any,
|
|
50
54
|
tableName: string,
|
|
51
|
-
|
|
52
|
-
|
|
55
|
+
tableColumns: readonly string[],
|
|
56
|
+
tableTuples: (readonly any[])[],
|
|
53
57
|
): Promise<object[]> {
|
|
54
58
|
const objectCollection = this.getObjectCollectionForTable(tableName);
|
|
55
|
-
|
|
56
|
-
(acc,
|
|
59
|
+
const results = tableTuples.reduce(
|
|
60
|
+
(acc, tableTuple) => {
|
|
57
61
|
return acc.concat(
|
|
58
62
|
objectCollection.filter((obj) => {
|
|
59
|
-
return
|
|
63
|
+
return tableColumns.every((tableColumn, index) => {
|
|
64
|
+
return obj[tableColumn] === tableTuple[index];
|
|
65
|
+
});
|
|
60
66
|
}),
|
|
61
67
|
);
|
|
62
68
|
},
|
|
63
|
-
[] as { [key: string]: any },
|
|
69
|
+
[] as { [key: string]: any }[],
|
|
64
70
|
);
|
|
71
|
+
return [...results];
|
|
65
72
|
}
|
|
66
73
|
|
|
67
74
|
private static compareByOrderBys(
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import StubDatabaseAdapter from './StubDatabaseAdapter';
|
|
2
1
|
import EntityConfiguration from '../../EntityConfiguration';
|
|
3
2
|
import EntityDatabaseAdapter from '../../EntityDatabaseAdapter';
|
|
4
3
|
import IEntityDatabaseAdapterProvider from '../../IEntityDatabaseAdapterProvider';
|
|
4
|
+
import StubDatabaseAdapter from '../__testfixtures__/StubDatabaseAdapter';
|
|
5
5
|
|
|
6
6
|
export default class StubDatabaseAdapterProvider implements IEntityDatabaseAdapterProvider {
|
|
7
7
|
private readonly objectCollection = new Map();
|
|
8
8
|
|
|
9
|
-
getDatabaseAdapter<TFields extends Record<string, any
|
|
10
|
-
entityConfiguration: EntityConfiguration<TFields>,
|
|
11
|
-
): EntityDatabaseAdapter<TFields> {
|
|
9
|
+
getDatabaseAdapter<TFields extends Record<string, any>, TIDField extends keyof TFields>(
|
|
10
|
+
entityConfiguration: EntityConfiguration<TFields, TIDField>,
|
|
11
|
+
): EntityDatabaseAdapter<TFields, TIDField> {
|
|
12
12
|
return new StubDatabaseAdapter(entityConfiguration, this.objectCollection);
|
|
13
13
|
}
|
|
14
14
|
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import isEqualWith from 'lodash/isEqualWith';
|
|
2
|
+
import { Matcher } from 'ts-mockito/lib/matcher/type/Matcher';
|
|
3
|
+
|
|
4
|
+
import {
|
|
5
|
+
CompositeFieldHolder,
|
|
6
|
+
CompositeFieldValueHolder,
|
|
7
|
+
} from '../../internal/CompositeFieldHolder';
|
|
8
|
+
import { SingleFieldHolder, SingleFieldValueHolder } from '../../internal/SingleFieldHolder';
|
|
9
|
+
import { SerializableKeyMap } from '../collections/SerializableKeyMap';
|
|
10
|
+
|
|
11
|
+
export function isEqualWithEntityAware(expected: any, actual: any): boolean {
|
|
12
|
+
return isEqualWith(expected, actual, (expected: any, actual: any): boolean | undefined => {
|
|
13
|
+
if (expected instanceof Matcher) {
|
|
14
|
+
return expected.match(actual);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
if (expected instanceof SingleFieldHolder && actual instanceof SingleFieldHolder) {
|
|
18
|
+
return expected.fieldName === actual.fieldName;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
if (expected instanceof SingleFieldValueHolder && actual instanceof SingleFieldValueHolder) {
|
|
22
|
+
return expected.fieldValue === actual.fieldValue;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
if (expected instanceof CompositeFieldHolder && actual instanceof CompositeFieldHolder) {
|
|
26
|
+
return expected.serialize() === actual.serialize();
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
if (
|
|
30
|
+
expected instanceof CompositeFieldValueHolder &&
|
|
31
|
+
actual instanceof CompositeFieldValueHolder
|
|
32
|
+
) {
|
|
33
|
+
return expected.serialize() === actual.serialize();
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
if (expected instanceof SerializableKeyMap && actual instanceof SerializableKeyMap) {
|
|
37
|
+
for (const [key, value] of expected.entries()) {
|
|
38
|
+
if (!actual.has(key) || !isEqualWith(value, actual.get(key))) {
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return undefined;
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
export class DeepEqualEntityAwareMatcher<T> extends Matcher {
|
|
50
|
+
constructor(private readonly expectedValue: T) {
|
|
51
|
+
super();
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
public override match(value: any): boolean {
|
|
55
|
+
return isEqualWithEntityAware(this.expectedValue, value);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
public override toString(): string {
|
|
59
|
+
if (this.expectedValue instanceof Array) {
|
|
60
|
+
return `deepEqualEntityAware([${this.expectedValue}])`;
|
|
61
|
+
} else {
|
|
62
|
+
return `deepEqualEntityAware(${this.expectedValue})`;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export function deepEqualEntityAware<T>(expectedValue: T): T {
|
|
68
|
+
return new DeepEqualEntityAwareMatcher(expectedValue) as any;
|
|
69
|
+
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { result, Result } from '@expo/results';
|
|
2
2
|
|
|
3
|
-
import Entity from '
|
|
4
|
-
import { EntityCompanionDefinition } from '
|
|
5
|
-
import EntityConfiguration from '
|
|
6
|
-
import {
|
|
7
|
-
import EntityPrivacyPolicy from '
|
|
8
|
-
import ViewerContext from '
|
|
9
|
-
import AlwaysAllowPrivacyPolicyRule from '
|
|
3
|
+
import Entity from '../../Entity';
|
|
4
|
+
import { EntityCompanionDefinition } from '../../EntityCompanionProvider';
|
|
5
|
+
import EntityConfiguration from '../../EntityConfiguration';
|
|
6
|
+
import { StringField, DateField, IntField, UUIDField } from '../../EntityFields';
|
|
7
|
+
import EntityPrivacyPolicy from '../../EntityPrivacyPolicy';
|
|
8
|
+
import ViewerContext from '../../ViewerContext';
|
|
9
|
+
import AlwaysAllowPrivacyPolicyRule from '../../rules/AlwaysAllowPrivacyPolicyRule';
|
|
10
10
|
|
|
11
11
|
export type TestFields = {
|
|
12
12
|
customIdField: string;
|
|
@@ -17,12 +17,13 @@ export type TestFields = {
|
|
|
17
17
|
nullableField: string | null;
|
|
18
18
|
};
|
|
19
19
|
|
|
20
|
-
export const testEntityConfiguration = new EntityConfiguration<TestFields>({
|
|
20
|
+
export const testEntityConfiguration = new EntityConfiguration<TestFields, 'customIdField'>({
|
|
21
21
|
idField: 'customIdField',
|
|
22
22
|
tableName: 'test_entity_should_not_write_to_db',
|
|
23
23
|
schema: {
|
|
24
24
|
customIdField: new UUIDField({
|
|
25
25
|
columnName: 'custom_id',
|
|
26
|
+
cache: true,
|
|
26
27
|
}),
|
|
27
28
|
testIndexedField: new StringField({
|
|
28
29
|
columnName: 'test_index',
|
|
@@ -43,32 +44,37 @@ export const testEntityConfiguration = new EntityConfiguration<TestFields>({
|
|
|
43
44
|
},
|
|
44
45
|
databaseAdapterFlavor: 'postgres',
|
|
45
46
|
cacheAdapterFlavor: 'redis',
|
|
47
|
+
compositeFieldDefinitions: [
|
|
48
|
+
{ compositeField: ['stringField', 'intField'], cache: false },
|
|
49
|
+
{ compositeField: ['stringField', 'testIndexedField'], cache: true },
|
|
50
|
+
{ compositeField: ['nullableField', 'testIndexedField'], cache: true },
|
|
51
|
+
],
|
|
46
52
|
});
|
|
47
53
|
|
|
48
54
|
export class TestEntityPrivacyPolicy extends EntityPrivacyPolicy<
|
|
49
55
|
TestFields,
|
|
50
|
-
|
|
56
|
+
'customIdField',
|
|
51
57
|
ViewerContext,
|
|
52
58
|
TestEntity
|
|
53
59
|
> {
|
|
54
60
|
protected override readonly readRules = [
|
|
55
|
-
new AlwaysAllowPrivacyPolicyRule<TestFields,
|
|
61
|
+
new AlwaysAllowPrivacyPolicyRule<TestFields, 'customIdField', ViewerContext, TestEntity>(),
|
|
56
62
|
];
|
|
57
63
|
protected override readonly createRules = [
|
|
58
|
-
new AlwaysAllowPrivacyPolicyRule<TestFields,
|
|
64
|
+
new AlwaysAllowPrivacyPolicyRule<TestFields, 'customIdField', ViewerContext, TestEntity>(),
|
|
59
65
|
];
|
|
60
66
|
protected override readonly updateRules = [
|
|
61
|
-
new AlwaysAllowPrivacyPolicyRule<TestFields,
|
|
67
|
+
new AlwaysAllowPrivacyPolicyRule<TestFields, 'customIdField', ViewerContext, TestEntity>(),
|
|
62
68
|
];
|
|
63
69
|
protected override readonly deleteRules = [
|
|
64
|
-
new AlwaysAllowPrivacyPolicyRule<TestFields,
|
|
70
|
+
new AlwaysAllowPrivacyPolicyRule<TestFields, 'customIdField', ViewerContext, TestEntity>(),
|
|
65
71
|
];
|
|
66
72
|
}
|
|
67
73
|
|
|
68
|
-
export default class TestEntity extends Entity<TestFields,
|
|
74
|
+
export default class TestEntity extends Entity<TestFields, 'customIdField', ViewerContext> {
|
|
69
75
|
static defineCompanionDefinition(): EntityCompanionDefinition<
|
|
70
76
|
TestFields,
|
|
71
|
-
|
|
77
|
+
'customIdField',
|
|
72
78
|
ViewerContext,
|
|
73
79
|
TestEntity,
|
|
74
80
|
TestEntityPrivacyPolicy
|
|
@@ -1,22 +1,23 @@
|
|
|
1
|
-
import Entity from '
|
|
2
|
-
import { EntityCompanionDefinition } from '
|
|
3
|
-
import EntityConfiguration from '
|
|
4
|
-
import { UUIDField } from '
|
|
5
|
-
import EntityPrivacyPolicy from '
|
|
6
|
-
import ViewerContext from '
|
|
7
|
-
import AlwaysAllowPrivacyPolicyRule from '
|
|
1
|
+
import Entity from '../../Entity';
|
|
2
|
+
import { EntityCompanionDefinition } from '../../EntityCompanionProvider';
|
|
3
|
+
import EntityConfiguration from '../../EntityConfiguration';
|
|
4
|
+
import { UUIDField } from '../../EntityFields';
|
|
5
|
+
import EntityPrivacyPolicy from '../../EntityPrivacyPolicy';
|
|
6
|
+
import ViewerContext from '../../ViewerContext';
|
|
7
|
+
import AlwaysAllowPrivacyPolicyRule from '../../rules/AlwaysAllowPrivacyPolicyRule';
|
|
8
8
|
|
|
9
9
|
export type Test2Fields = {
|
|
10
10
|
id: string;
|
|
11
11
|
foreignKey: string;
|
|
12
12
|
};
|
|
13
13
|
|
|
14
|
-
export const testEntity2Configuration = new EntityConfiguration<Test2Fields>({
|
|
14
|
+
export const testEntity2Configuration = new EntityConfiguration<Test2Fields, 'id'>({
|
|
15
15
|
idField: 'id',
|
|
16
16
|
tableName: 'test_entity_should_not_write_to_db_2',
|
|
17
17
|
schema: {
|
|
18
18
|
id: new UUIDField({
|
|
19
19
|
columnName: 'id',
|
|
20
|
+
cache: false,
|
|
20
21
|
}),
|
|
21
22
|
foreignKey: new UUIDField({
|
|
22
23
|
columnName: 'foreign_key',
|
|
@@ -28,28 +29,28 @@ export const testEntity2Configuration = new EntityConfiguration<Test2Fields>({
|
|
|
28
29
|
|
|
29
30
|
export class TestEntity2PrivacyPolicy extends EntityPrivacyPolicy<
|
|
30
31
|
Test2Fields,
|
|
31
|
-
|
|
32
|
+
'id',
|
|
32
33
|
ViewerContext,
|
|
33
34
|
TestEntity2
|
|
34
35
|
> {
|
|
35
36
|
protected override readonly readRules = [
|
|
36
|
-
new AlwaysAllowPrivacyPolicyRule<Test2Fields,
|
|
37
|
+
new AlwaysAllowPrivacyPolicyRule<Test2Fields, 'id', ViewerContext, TestEntity2>(),
|
|
37
38
|
];
|
|
38
39
|
protected override readonly createRules = [
|
|
39
|
-
new AlwaysAllowPrivacyPolicyRule<Test2Fields,
|
|
40
|
+
new AlwaysAllowPrivacyPolicyRule<Test2Fields, 'id', ViewerContext, TestEntity2>(),
|
|
40
41
|
];
|
|
41
42
|
protected override readonly updateRules = [
|
|
42
|
-
new AlwaysAllowPrivacyPolicyRule<Test2Fields,
|
|
43
|
+
new AlwaysAllowPrivacyPolicyRule<Test2Fields, 'id', ViewerContext, TestEntity2>(),
|
|
43
44
|
];
|
|
44
45
|
protected override readonly deleteRules = [
|
|
45
|
-
new AlwaysAllowPrivacyPolicyRule<Test2Fields,
|
|
46
|
+
new AlwaysAllowPrivacyPolicyRule<Test2Fields, 'id', ViewerContext, TestEntity2>(),
|
|
46
47
|
];
|
|
47
48
|
}
|
|
48
49
|
|
|
49
|
-
export default class TestEntity2 extends Entity<Test2Fields,
|
|
50
|
+
export default class TestEntity2 extends Entity<Test2Fields, 'id', ViewerContext> {
|
|
50
51
|
static defineCompanionDefinition(): EntityCompanionDefinition<
|
|
51
52
|
Test2Fields,
|
|
52
|
-
|
|
53
|
+
'id',
|
|
53
54
|
ViewerContext,
|
|
54
55
|
TestEntity2,
|
|
55
56
|
TestEntity2PrivacyPolicy
|
|
@@ -1,28 +1,29 @@
|
|
|
1
|
-
import Entity from '
|
|
2
|
-
import { EntityCompanionDefinition } from '
|
|
3
|
-
import EntityConfiguration from '
|
|
4
|
-
import { StringField, UUIDField } from '
|
|
5
|
-
import { EntityTriggerMutationInfo } from '
|
|
1
|
+
import Entity from '../../Entity';
|
|
2
|
+
import { EntityCompanionDefinition } from '../../EntityCompanionProvider';
|
|
3
|
+
import EntityConfiguration from '../../EntityConfiguration';
|
|
4
|
+
import { StringField, UUIDField } from '../../EntityFields';
|
|
5
|
+
import { EntityTriggerMutationInfo } from '../../EntityMutationInfo';
|
|
6
6
|
import {
|
|
7
7
|
EntityMutationTrigger,
|
|
8
8
|
EntityNonTransactionalMutationTrigger,
|
|
9
|
-
} from '
|
|
10
|
-
import EntityPrivacyPolicy from '
|
|
11
|
-
import { EntityQueryContext } from '
|
|
12
|
-
import ViewerContext from '
|
|
13
|
-
import AlwaysAllowPrivacyPolicyRule from '
|
|
9
|
+
} from '../../EntityMutationTriggerConfiguration';
|
|
10
|
+
import EntityPrivacyPolicy from '../../EntityPrivacyPolicy';
|
|
11
|
+
import { EntityQueryContext } from '../../EntityQueryContext';
|
|
12
|
+
import ViewerContext from '../../ViewerContext';
|
|
13
|
+
import AlwaysAllowPrivacyPolicyRule from '../../rules/AlwaysAllowPrivacyPolicyRule';
|
|
14
14
|
|
|
15
15
|
export type TestMTFields = {
|
|
16
16
|
id: string;
|
|
17
17
|
stringField: string;
|
|
18
18
|
};
|
|
19
19
|
|
|
20
|
-
export const testEntityMTConfiguration = new EntityConfiguration<TestMTFields>({
|
|
20
|
+
export const testEntityMTConfiguration = new EntityConfiguration<TestMTFields, 'id'>({
|
|
21
21
|
idField: 'id',
|
|
22
22
|
tableName: 'test_entity_should_not_write_to_db_3',
|
|
23
23
|
schema: {
|
|
24
24
|
id: new UUIDField({
|
|
25
25
|
columnName: 'id',
|
|
26
|
+
cache: false,
|
|
26
27
|
}),
|
|
27
28
|
stringField: new StringField({
|
|
28
29
|
columnName: 'string_field',
|
|
@@ -34,14 +35,14 @@ export const testEntityMTConfiguration = new EntityConfiguration<TestMTFields>({
|
|
|
34
35
|
|
|
35
36
|
export class TestEntityMTPrivacyPolicy extends EntityPrivacyPolicy<
|
|
36
37
|
TestMTFields,
|
|
37
|
-
|
|
38
|
+
'id',
|
|
38
39
|
ViewerContext,
|
|
39
40
|
TestEntityWithMutationTriggers
|
|
40
41
|
> {
|
|
41
42
|
protected override readonly readRules = [
|
|
42
43
|
new AlwaysAllowPrivacyPolicyRule<
|
|
43
44
|
TestMTFields,
|
|
44
|
-
|
|
45
|
+
'id',
|
|
45
46
|
ViewerContext,
|
|
46
47
|
TestEntityWithMutationTriggers
|
|
47
48
|
>(),
|
|
@@ -49,7 +50,7 @@ export class TestEntityMTPrivacyPolicy extends EntityPrivacyPolicy<
|
|
|
49
50
|
protected override readonly createRules = [
|
|
50
51
|
new AlwaysAllowPrivacyPolicyRule<
|
|
51
52
|
TestMTFields,
|
|
52
|
-
|
|
53
|
+
'id',
|
|
53
54
|
ViewerContext,
|
|
54
55
|
TestEntityWithMutationTriggers
|
|
55
56
|
>(),
|
|
@@ -57,7 +58,7 @@ export class TestEntityMTPrivacyPolicy extends EntityPrivacyPolicy<
|
|
|
57
58
|
protected override readonly updateRules = [
|
|
58
59
|
new AlwaysAllowPrivacyPolicyRule<
|
|
59
60
|
TestMTFields,
|
|
60
|
-
|
|
61
|
+
'id',
|
|
61
62
|
ViewerContext,
|
|
62
63
|
TestEntityWithMutationTriggers
|
|
63
64
|
>(),
|
|
@@ -65,7 +66,7 @@ export class TestEntityMTPrivacyPolicy extends EntityPrivacyPolicy<
|
|
|
65
66
|
protected override readonly deleteRules = [
|
|
66
67
|
new AlwaysAllowPrivacyPolicyRule<
|
|
67
68
|
TestMTFields,
|
|
68
|
-
|
|
69
|
+
'id',
|
|
69
70
|
ViewerContext,
|
|
70
71
|
TestEntityWithMutationTriggers
|
|
71
72
|
>(),
|
|
@@ -74,7 +75,7 @@ export class TestEntityMTPrivacyPolicy extends EntityPrivacyPolicy<
|
|
|
74
75
|
|
|
75
76
|
export class TestMutationTrigger extends EntityMutationTrigger<
|
|
76
77
|
TestMTFields,
|
|
77
|
-
|
|
78
|
+
'id',
|
|
78
79
|
ViewerContext,
|
|
79
80
|
TestEntityWithMutationTriggers,
|
|
80
81
|
keyof TestMTFields
|
|
@@ -92,7 +93,7 @@ export class TestMutationTrigger extends EntityMutationTrigger<
|
|
|
92
93
|
_entity: TestEntityWithMutationTriggers,
|
|
93
94
|
_mutationInfo: EntityTriggerMutationInfo<
|
|
94
95
|
TestMTFields,
|
|
95
|
-
|
|
96
|
+
'id',
|
|
96
97
|
ViewerContext,
|
|
97
98
|
TestEntityWithMutationTriggers,
|
|
98
99
|
keyof TestMTFields
|
|
@@ -102,7 +103,7 @@ export class TestMutationTrigger extends EntityMutationTrigger<
|
|
|
102
103
|
|
|
103
104
|
export class NonTransactionalTestMutationTrigger extends EntityNonTransactionalMutationTrigger<
|
|
104
105
|
TestMTFields,
|
|
105
|
-
|
|
106
|
+
'id',
|
|
106
107
|
ViewerContext,
|
|
107
108
|
TestEntityWithMutationTriggers,
|
|
108
109
|
keyof TestMTFields
|
|
@@ -119,7 +120,7 @@ export class NonTransactionalTestMutationTrigger extends EntityNonTransactionalM
|
|
|
119
120
|
_entity: TestEntityWithMutationTriggers,
|
|
120
121
|
_mutationInfo: EntityTriggerMutationInfo<
|
|
121
122
|
TestMTFields,
|
|
122
|
-
|
|
123
|
+
'id',
|
|
123
124
|
ViewerContext,
|
|
124
125
|
TestEntityWithMutationTriggers,
|
|
125
126
|
keyof TestMTFields
|
|
@@ -132,12 +133,12 @@ export class NonTransactionalTestMutationTrigger extends EntityNonTransactionalM
|
|
|
132
133
|
*/
|
|
133
134
|
export default class TestEntityWithMutationTriggers extends Entity<
|
|
134
135
|
TestMTFields,
|
|
135
|
-
|
|
136
|
+
'id',
|
|
136
137
|
ViewerContext
|
|
137
138
|
> {
|
|
138
139
|
static defineCompanionDefinition(): EntityCompanionDefinition<
|
|
139
140
|
TestMTFields,
|
|
140
|
-
|
|
141
|
+
'id',
|
|
141
142
|
ViewerContext,
|
|
142
143
|
TestEntityWithMutationTriggers,
|
|
143
144
|
TestEntityMTPrivacyPolicy
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { EntityFieldDefinition } from '../../EntityFieldDefinition';
|
|
2
2
|
|
|
3
3
|
export default function describeFieldTestCase<T>(
|
|
4
|
-
fieldDefinition: EntityFieldDefinition<T>,
|
|
4
|
+
fieldDefinition: EntityFieldDefinition<T, any>,
|
|
5
5
|
validValues: T[],
|
|
6
6
|
invalidValues: any[],
|
|
7
7
|
): void {
|