@expo/entity 0.60.0 → 0.61.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/src/AuthorizationResultBasedEntityAssociationLoader.d.ts +6 -6
- package/build/src/AuthorizationResultBasedEntityAssociationLoader.js +5 -10
- package/build/src/AuthorizationResultBasedEntityLoader.d.ts +9 -9
- package/build/src/AuthorizationResultBasedEntityLoader.js +27 -35
- package/build/src/AuthorizationResultBasedEntityMutator.d.ts +13 -13
- package/build/src/AuthorizationResultBasedEntityMutator.js +54 -65
- package/build/src/ComposedEntityCacheAdapter.d.ts +3 -3
- package/build/src/ComposedEntityCacheAdapter.js +15 -23
- package/build/src/ComposedSecondaryEntityCache.d.ts +1 -1
- package/build/src/ComposedSecondaryEntityCache.js +4 -12
- package/build/src/EnforcingEntityAssociationLoader.d.ts +5 -5
- package/build/src/EnforcingEntityAssociationLoader.js +6 -11
- package/build/src/EnforcingEntityCreator.d.ts +4 -4
- package/build/src/EnforcingEntityCreator.js +3 -8
- package/build/src/EnforcingEntityDeleter.d.ts +4 -4
- package/build/src/EnforcingEntityDeleter.js +3 -8
- package/build/src/EnforcingEntityLoader.d.ts +5 -5
- package/build/src/EnforcingEntityLoader.js +9 -14
- package/build/src/EnforcingEntityUpdater.d.ts +4 -4
- package/build/src/EnforcingEntityUpdater.js +3 -8
- package/build/src/Entity.d.ts +9 -9
- package/build/src/Entity.js +11 -16
- package/build/src/EntityAssociationLoader.d.ts +5 -5
- package/build/src/EntityAssociationLoader.js +5 -10
- package/build/src/EntityCompanion.d.ts +9 -9
- package/build/src/EntityCompanion.js +6 -11
- package/build/src/EntityCompanionProvider.d.ts +13 -12
- package/build/src/EntityCompanionProvider.js +13 -21
- package/build/src/EntityConfiguration.d.ts +4 -4
- package/build/src/EntityConfiguration.js +14 -23
- package/build/src/EntityConstructionUtils.d.ts +8 -8
- package/build/src/EntityConstructionUtils.js +15 -23
- package/build/src/EntityCreator.d.ts +7 -7
- package/build/src/EntityCreator.js +3 -8
- package/build/src/EntityDatabaseAdapter.d.ts +4 -4
- package/build/src/EntityDatabaseAdapter.js +19 -27
- package/build/src/EntityDeleter.d.ts +7 -7
- package/build/src/EntityDeleter.js +3 -8
- package/build/src/EntityFieldDefinition.d.ts +4 -4
- package/build/src/EntityFieldDefinition.js +5 -10
- package/build/src/EntityFields.d.ts +2 -1
- package/build/src/EntityFields.js +12 -27
- package/build/src/EntityInvalidationUtils.d.ts +8 -8
- package/build/src/EntityInvalidationUtils.js +4 -9
- package/build/src/EntityLoader.d.ts +7 -7
- package/build/src/EntityLoader.js +3 -8
- package/build/src/EntityLoaderFactory.d.ts +10 -10
- package/build/src/EntityLoaderFactory.js +7 -12
- package/build/src/EntityMutationInfo.d.ts +2 -2
- package/build/src/EntityMutationInfo.js +2 -6
- package/build/src/EntityMutationTriggerConfiguration.d.ts +4 -4
- package/build/src/EntityMutationTriggerConfiguration.js +2 -8
- package/build/src/EntityMutationValidatorConfiguration.d.ts +4 -4
- package/build/src/EntityMutationValidatorConfiguration.js +1 -6
- package/build/src/EntityMutatorFactory.d.ts +13 -13
- package/build/src/EntityMutatorFactory.js +5 -10
- package/build/src/EntityPrivacyPolicy.d.ts +7 -7
- package/build/src/EntityPrivacyPolicy.js +22 -27
- package/build/src/EntityQueryContext.d.ts +1 -1
- package/build/src/EntityQueryContext.js +11 -22
- package/build/src/EntityQueryContextProvider.d.ts +2 -1
- package/build/src/EntityQueryContextProvider.js +7 -12
- package/build/src/EntitySecondaryCacheLoader.d.ts +7 -7
- package/build/src/EntitySecondaryCacheLoader.js +4 -9
- package/build/src/EntityUpdater.d.ts +7 -7
- package/build/src/EntityUpdater.js +3 -8
- package/build/src/GenericEntityCacheAdapter.d.ts +4 -4
- package/build/src/GenericEntityCacheAdapter.js +5 -13
- package/build/src/GenericSecondaryEntityCache.d.ts +2 -2
- package/build/src/GenericSecondaryEntityCache.js +10 -18
- package/build/src/IEntityCacheAdapter.d.ts +2 -2
- package/build/src/IEntityCacheAdapter.js +1 -3
- package/build/src/IEntityCacheAdapterProvider.d.ts +2 -2
- package/build/src/IEntityCacheAdapterProvider.js +1 -3
- package/build/src/IEntityDatabaseAdapterProvider.d.ts +2 -2
- package/build/src/IEntityDatabaseAdapterProvider.js +1 -3
- package/build/src/IEntityGenericCacher.d.ts +2 -2
- package/build/src/IEntityGenericCacher.js +1 -3
- package/build/src/ReadonlyEntity.d.ts +9 -9
- package/build/src/ReadonlyEntity.js +9 -17
- package/build/src/ViewerContext.d.ts +6 -6
- package/build/src/ViewerContext.js +3 -8
- package/build/src/ViewerScopedEntityCompanion.d.ts +8 -8
- package/build/src/ViewerScopedEntityCompanion.js +5 -10
- package/build/src/ViewerScopedEntityCompanionProvider.d.ts +6 -6
- package/build/src/ViewerScopedEntityCompanionProvider.js +3 -8
- package/build/src/ViewerScopedEntityLoaderFactory.d.ts +8 -8
- package/build/src/ViewerScopedEntityLoaderFactory.js +1 -6
- package/build/src/ViewerScopedEntityMutatorFactory.d.ts +7 -7
- package/build/src/ViewerScopedEntityMutatorFactory.js +1 -6
- package/build/src/entityUtils.d.ts +1 -1
- package/build/src/entityUtils.js +9 -21
- package/build/src/errors/EntityCacheAdapterError.d.ts +1 -1
- package/build/src/errors/EntityCacheAdapterError.js +5 -11
- package/build/src/errors/EntityDatabaseAdapterError.d.ts +1 -1
- package/build/src/errors/EntityDatabaseAdapterError.js +41 -59
- package/build/src/errors/EntityError.js +5 -10
- package/build/src/errors/EntityInvalidFieldValueError.d.ts +5 -5
- package/build/src/errors/EntityInvalidFieldValueError.js +4 -9
- package/build/src/errors/EntityNotAuthorizedError.d.ts +4 -4
- package/build/src/errors/EntityNotAuthorizedError.js +6 -11
- package/build/src/errors/EntityNotFoundError.d.ts +5 -5
- package/build/src/errors/EntityNotFoundError.js +4 -9
- package/build/src/index.d.ts +77 -77
- package/build/src/index.js +77 -94
- package/build/src/internal/CompositeFieldHolder.d.ts +3 -2
- package/build/src/internal/CompositeFieldHolder.js +11 -21
- package/build/src/internal/CompositeFieldValueMap.d.ts +2 -2
- package/build/src/internal/CompositeFieldValueMap.js +7 -12
- package/build/src/internal/EntityDataManager.d.ts +6 -6
- package/build/src/internal/EntityDataManager.js +25 -33
- package/build/src/internal/EntityFieldTransformationUtils.d.ts +1 -1
- package/build/src/internal/EntityFieldTransformationUtils.js +11 -23
- package/build/src/internal/EntityLoadInterfaces.d.ts +3 -2
- package/build/src/internal/EntityLoadInterfaces.js +4 -9
- package/build/src/internal/EntityTableDataCoordinator.d.ts +8 -8
- package/build/src/internal/EntityTableDataCoordinator.js +4 -9
- package/build/src/internal/ReadThroughEntityCache.d.ts +3 -3
- package/build/src/internal/ReadThroughEntityCache.js +7 -15
- package/build/src/internal/SingleFieldHolder.d.ts +3 -2
- package/build/src/internal/SingleFieldHolder.js +9 -19
- package/build/src/metrics/EntityMetricsUtils.d.ts +3 -3
- package/build/src/metrics/EntityMetricsUtils.js +6 -14
- package/build/src/metrics/IEntityMetricsAdapter.d.ts +2 -2
- package/build/src/metrics/IEntityMetricsAdapter.js +8 -12
- package/build/src/metrics/NoOpEntityMetricsAdapter.d.ts +1 -1
- package/build/src/metrics/NoOpEntityMetricsAdapter.js +1 -6
- package/build/src/rules/AllowIfAllSubRulesAllowPrivacyPolicyRule.d.ts +5 -5
- package/build/src/rules/AllowIfAllSubRulesAllowPrivacyPolicyRule.js +5 -10
- package/build/src/rules/AllowIfAnySubRuleAllowsPrivacyPolicyRule.d.ts +5 -5
- package/build/src/rules/AllowIfAnySubRuleAllowsPrivacyPolicyRule.js +5 -10
- package/build/src/rules/AllowIfInParentCascadeDeletionPrivacyPolicyRule.d.ts +6 -6
- package/build/src/rules/AllowIfInParentCascadeDeletionPrivacyPolicyRule.js +6 -11
- package/build/src/rules/AlwaysAllowPrivacyPolicyRule.d.ts +5 -5
- package/build/src/rules/AlwaysAllowPrivacyPolicyRule.js +3 -8
- package/build/src/rules/AlwaysDenyPrivacyPolicyRule.d.ts +5 -5
- package/build/src/rules/AlwaysDenyPrivacyPolicyRule.js +3 -8
- package/build/src/rules/AlwaysSkipPrivacyPolicyRule.d.ts +5 -5
- package/build/src/rules/AlwaysSkipPrivacyPolicyRule.js +3 -8
- package/build/src/rules/EvaluateIfEntityFieldPredicatePrivacyPolicyRule.d.ts +5 -5
- package/build/src/rules/EvaluateIfEntityFieldPredicatePrivacyPolicyRule.js +3 -8
- package/build/src/rules/PrivacyPolicyRule.d.ts +4 -4
- package/build/src/rules/PrivacyPolicyRule.js +3 -8
- package/build/src/utils/EntityCreationUtils.d.ts +5 -5
- package/build/src/utils/EntityCreationUtils.js +6 -11
- package/build/src/utils/EntityPrivacyUtils.d.ts +5 -5
- package/build/src/utils/EntityPrivacyUtils.js +20 -27
- package/build/src/utils/collections/SerializableKeyMap.js +1 -6
- package/build/src/utils/collections/maps.js +11 -27
- package/build/src/utils/collections/sets.js +1 -5
- package/build/src/utils/mergeEntityMutationTriggerConfigurations.d.ts +3 -3
- package/build/src/utils/mergeEntityMutationTriggerConfigurations.js +1 -5
- package/package.json +7 -6
- package/src/AuthorizationResultBasedEntityAssociationLoader.ts +7 -6
- package/src/AuthorizationResultBasedEntityLoader.ts +19 -17
- package/src/AuthorizationResultBasedEntityMutator.ts +24 -22
- package/src/ComposedEntityCacheAdapter.ts +5 -4
- package/src/ComposedSecondaryEntityCache.ts +2 -2
- package/src/EnforcingEntityAssociationLoader.ts +7 -7
- package/src/EnforcingEntityCreator.ts +4 -4
- package/src/EnforcingEntityDeleter.ts +4 -4
- package/src/EnforcingEntityLoader.ts +8 -8
- package/src/EnforcingEntityUpdater.ts +4 -4
- package/src/Entity.ts +13 -13
- package/src/EntityAssociationLoader.ts +6 -6
- package/src/EntityCompanion.ts +13 -10
- package/src/EntityCompanionProvider.ts +15 -14
- package/src/EntityConfiguration.ts +6 -8
- package/src/EntityConstructionUtils.ts +16 -12
- package/src/EntityCreator.ts +7 -7
- package/src/EntityDatabaseAdapter.ts +6 -6
- package/src/EntityDeleter.ts +7 -7
- package/src/EntityFieldDefinition.ts +4 -4
- package/src/EntityFields.ts +3 -3
- package/src/EntityInvalidationUtils.ts +10 -10
- package/src/EntityLoader.ts +7 -7
- package/src/EntityLoaderFactory.ts +13 -10
- package/src/EntityMutationInfo.ts +2 -2
- package/src/EntityMutationTriggerConfiguration.ts +4 -4
- package/src/EntityMutationValidatorConfiguration.ts +4 -4
- package/src/EntityMutatorFactory.ts +13 -13
- package/src/EntityPrivacyPolicy.ts +9 -10
- package/src/EntityQueryContext.ts +1 -1
- package/src/EntityQueryContextProvider.ts +2 -2
- package/src/EntitySecondaryCacheLoader.ts +8 -8
- package/src/EntityUpdater.ts +7 -7
- package/src/GenericEntityCacheAdapter.ts +5 -5
- package/src/GenericSecondaryEntityCache.ts +4 -4
- package/src/IEntityCacheAdapter.ts +2 -2
- package/src/IEntityCacheAdapterProvider.ts +2 -2
- package/src/IEntityDatabaseAdapterProvider.ts +2 -2
- package/src/IEntityGenericCacher.ts +2 -2
- package/src/ReadonlyEntity.ts +11 -11
- package/src/ViewerContext.ts +8 -8
- package/src/ViewerScopedEntityCompanion.ts +8 -8
- package/src/ViewerScopedEntityCompanionProvider.ts +6 -6
- package/src/ViewerScopedEntityLoaderFactory.ts +11 -8
- package/src/ViewerScopedEntityMutatorFactory.ts +8 -8
- package/src/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.ts +6 -6
- package/src/__tests__/AuthorizationResultBasedEntityLoader-constructor-test.ts +16 -15
- package/src/__tests__/AuthorizationResultBasedEntityLoader-test.ts +21 -18
- package/src/__tests__/ComposedCacheAdapter-test.ts +8 -7
- package/src/__tests__/ComposedSecondaryEntityCache-test.ts +3 -3
- package/src/__tests__/EnforcingEntityAssociationLoader-test.ts +2 -2
- package/src/__tests__/EnforcingEntityLoader-test.ts +4 -4
- package/src/__tests__/Entity-test.ts +8 -8
- package/src/__tests__/EntityAssociationLoader-test.ts +6 -6
- package/src/__tests__/EntityCommonUseCases-test.ts +17 -13
- package/src/__tests__/EntityCompanion-test.ts +11 -11
- package/src/__tests__/EntityCompanionProvider-test.ts +8 -7
- package/src/__tests__/EntityConfiguration-test.ts +3 -3
- package/src/__tests__/EntityDatabaseAdapter-test.ts +11 -7
- package/src/__tests__/EntityEdges-test.ts +17 -19
- package/src/__tests__/EntityFields-test.ts +3 -3
- package/src/__tests__/EntityLoader-test.ts +7 -7
- package/src/__tests__/EntityMutator-MutationCacheConsistency-test.ts +12 -11
- package/src/__tests__/EntityMutator-SingleCompositeFieldCacheConsistency-test.ts +4 -4
- package/src/__tests__/EntityMutator-test.ts +32 -36
- package/src/__tests__/EntityPrivacyPolicy-test.ts +19 -19
- package/src/__tests__/EntityQueryContext-test.ts +9 -9
- package/src/__tests__/EntitySecondaryCacheLoader-test.ts +8 -7
- package/src/__tests__/EntitySelfReferentialEdges-test.ts +12 -12
- package/src/__tests__/GenericEntityCacheAdapter-test.ts +6 -6
- package/src/__tests__/GenericSecondaryEntityCache-test.ts +16 -18
- package/src/__tests__/ReadonlyEntity-test.ts +10 -10
- package/src/__tests__/ViewerContext-test.ts +3 -3
- package/src/__tests__/ViewerScopedEntityCompanion-test.ts +7 -7
- package/src/__tests__/ViewerScopedEntityCompanionProvider-test.ts +5 -5
- package/src/__tests__/ViewerScopedEntityLoaderFactory-test.ts +5 -5
- package/src/__tests__/ViewerScopedEntityMutatorFactory-test.ts +6 -6
- package/src/__tests__/cases/TwoEntitySameTableDisjointRows-test.ts +9 -9
- package/src/__tests__/cases/TwoEntitySameTableOverlappingRows-test.ts +8 -8
- package/src/__tests__/entityUtils-test.ts +4 -4
- package/src/entityUtils.ts +1 -1
- package/src/errors/EntityCacheAdapterError.ts +1 -1
- package/src/errors/EntityDatabaseAdapterError.ts +1 -1
- package/src/errors/EntityInvalidFieldValueError.ts +5 -5
- package/src/errors/EntityNotAuthorizedError.ts +4 -4
- package/src/errors/EntityNotFoundError.ts +5 -5
- package/src/errors/__tests__/EntityDatabaseAdapterError-test.ts +2 -2
- package/src/errors/__tests__/EntityError-test.ts +7 -7
- package/src/index.ts +77 -77
- package/src/internal/CompositeFieldHolder.ts +6 -10
- package/src/internal/CompositeFieldValueMap.ts +3 -5
- package/src/internal/EntityDataManager.ts +11 -14
- package/src/internal/EntityFieldTransformationUtils.ts +2 -2
- package/src/internal/EntityLoadInterfaces.ts +3 -2
- package/src/internal/EntityTableDataCoordinator.ts +9 -9
- package/src/internal/ReadThroughEntityCache.ts +4 -4
- package/src/internal/SingleFieldHolder.ts +4 -8
- package/src/internal/__tests__/CompositeFieldHolder-test.ts +1 -1
- package/src/internal/__tests__/CompositeFieldValueMap-test.ts +3 -3
- package/src/internal/__tests__/EntityDataManager-test.ts +15 -18
- package/src/internal/__tests__/EntityFieldTransformationUtils-test.ts +3 -3
- package/src/internal/__tests__/ReadThroughEntityCache-test.ts +6 -6
- package/src/metrics/EntityMetricsUtils.ts +5 -5
- package/src/metrics/IEntityMetricsAdapter.ts +3 -3
- package/src/metrics/NoOpEntityMetricsAdapter.ts +2 -2
- package/src/metrics/__tests__/EntityMetricsUtils-test.ts +4 -7
- package/src/rules/AllowIfAllSubRulesAllowPrivacyPolicyRule.ts +5 -5
- package/src/rules/AllowIfAnySubRuleAllowsPrivacyPolicyRule.ts +5 -5
- package/src/rules/AllowIfInParentCascadeDeletionPrivacyPolicyRule.ts +9 -6
- package/src/rules/AlwaysAllowPrivacyPolicyRule.ts +5 -5
- package/src/rules/AlwaysDenyPrivacyPolicyRule.ts +5 -5
- package/src/rules/AlwaysSkipPrivacyPolicyRule.ts +5 -5
- package/src/rules/EvaluateIfEntityFieldPredicatePrivacyPolicyRule.ts +5 -5
- package/src/rules/PrivacyPolicyRule.ts +4 -4
- package/src/rules/__tests__/AllowIfAllSubRulesAllowPrivacyPolicyRule-test.ts +8 -8
- package/src/rules/__tests__/AllowIfAnySubRuleAllowsPrivacyPolicyRule-test.ts +8 -8
- package/src/rules/__tests__/AllowIfInParentCascadeDeletionPrivacyPolicyRule-test.ts +7 -7
- package/src/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.ts +5 -5
- package/src/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.ts +5 -5
- package/src/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.ts +5 -5
- package/src/rules/__tests__/EvaluateIfEntityFieldPredicatePrivacyPolicyRule-test.ts +9 -8
- package/src/utils/EntityCreationUtils.ts +7 -7
- package/src/utils/EntityPrivacyUtils.ts +13 -9
- package/src/utils/__testfixtures__/PrivacyPolicyRuleTestUtils.ts +6 -5
- package/src/utils/__testfixtures__/SimpleTestEntity.ts +7 -7
- package/src/utils/__testfixtures__/StubCacheAdapter.ts +6 -5
- package/src/utils/__testfixtures__/StubDatabaseAdapter.ts +6 -6
- package/src/utils/__testfixtures__/StubDatabaseAdapterProvider.ts +4 -4
- package/src/utils/__testfixtures__/StubQueryContextProvider.ts +2 -2
- package/src/utils/__testfixtures__/TSMockitoExtensions.ts +5 -5
- package/src/utils/__testfixtures__/TestEntity.ts +9 -8
- package/src/utils/__testfixtures__/TestEntity2.ts +7 -7
- package/src/utils/__testfixtures__/TestEntityWithMutationTriggers.ts +10 -10
- package/src/utils/__testfixtures__/TestViewerContext.ts +1 -1
- package/src/utils/__testfixtures__/createUnitTestEntityCompanionProvider.ts +6 -6
- package/src/utils/__testfixtures__/describeFieldTestCase.ts +1 -1
- package/src/utils/__tests__/EntityCreationUtils-test.ts +7 -7
- package/src/utils/__tests__/EntityPrivacyUtils-test.ts +20 -21
- package/src/utils/__tests__/canViewerDeleteAsync-edgeDeletionPermissionInferenceBehavior-test.ts +12 -12
- package/src/utils/__tests__/mergeEntityMutationTriggerConfigurations-test.ts +2 -2
- package/src/utils/collections/__tests__/SerializableKeyMap-test.ts +2 -1
- package/src/utils/collections/__tests__/maps-test.ts +5 -5
- package/src/utils/collections/__tests__/sets-test.ts +1 -1
- package/src/utils/mergeEntityMutationTriggerConfigurations.ts +3 -3
- package/build/src/AuthorizationResultBasedEntityAssociationLoader.js.map +0 -1
- package/build/src/AuthorizationResultBasedEntityLoader.js.map +0 -1
- package/build/src/AuthorizationResultBasedEntityMutator.js.map +0 -1
- package/build/src/ComposedEntityCacheAdapter.js.map +0 -1
- package/build/src/ComposedSecondaryEntityCache.js.map +0 -1
- package/build/src/EnforcingEntityAssociationLoader.js.map +0 -1
- package/build/src/EnforcingEntityCreator.js.map +0 -1
- package/build/src/EnforcingEntityDeleter.js.map +0 -1
- package/build/src/EnforcingEntityLoader.js.map +0 -1
- package/build/src/EnforcingEntityUpdater.js.map +0 -1
- package/build/src/Entity.js.map +0 -1
- package/build/src/EntityAssociationLoader.js.map +0 -1
- package/build/src/EntityCompanion.js.map +0 -1
- package/build/src/EntityCompanionProvider.js.map +0 -1
- package/build/src/EntityConfiguration.js.map +0 -1
- package/build/src/EntityConstructionUtils.js.map +0 -1
- package/build/src/EntityCreator.js.map +0 -1
- package/build/src/EntityDatabaseAdapter.js.map +0 -1
- package/build/src/EntityDeleter.js.map +0 -1
- package/build/src/EntityFieldDefinition.js.map +0 -1
- package/build/src/EntityFields.js.map +0 -1
- package/build/src/EntityInvalidationUtils.js.map +0 -1
- package/build/src/EntityLoader.js.map +0 -1
- package/build/src/EntityLoaderFactory.js.map +0 -1
- package/build/src/EntityMutationInfo.js.map +0 -1
- package/build/src/EntityMutationTriggerConfiguration.js.map +0 -1
- package/build/src/EntityMutationValidatorConfiguration.js.map +0 -1
- package/build/src/EntityMutatorFactory.js.map +0 -1
- package/build/src/EntityPrivacyPolicy.js.map +0 -1
- package/build/src/EntityQueryContext.js.map +0 -1
- package/build/src/EntityQueryContextProvider.js.map +0 -1
- package/build/src/EntitySecondaryCacheLoader.js.map +0 -1
- package/build/src/EntityUpdater.js.map +0 -1
- package/build/src/GenericEntityCacheAdapter.js.map +0 -1
- package/build/src/GenericSecondaryEntityCache.js.map +0 -1
- package/build/src/IEntityCacheAdapter.js.map +0 -1
- package/build/src/IEntityCacheAdapterProvider.js.map +0 -1
- package/build/src/IEntityDatabaseAdapterProvider.js.map +0 -1
- package/build/src/IEntityGenericCacher.js.map +0 -1
- package/build/src/ReadonlyEntity.js.map +0 -1
- package/build/src/ViewerContext.js.map +0 -1
- package/build/src/ViewerScopedEntityCompanion.js.map +0 -1
- package/build/src/ViewerScopedEntityCompanionProvider.js.map +0 -1
- package/build/src/ViewerScopedEntityLoaderFactory.js.map +0 -1
- package/build/src/ViewerScopedEntityMutatorFactory.js.map +0 -1
- package/build/src/entityUtils.js.map +0 -1
- package/build/src/errors/EntityCacheAdapterError.js.map +0 -1
- package/build/src/errors/EntityDatabaseAdapterError.js.map +0 -1
- package/build/src/errors/EntityError.js.map +0 -1
- package/build/src/errors/EntityInvalidFieldValueError.js.map +0 -1
- package/build/src/errors/EntityNotAuthorizedError.js.map +0 -1
- package/build/src/errors/EntityNotFoundError.js.map +0 -1
- package/build/src/index.js.map +0 -1
- package/build/src/internal/CompositeFieldHolder.js.map +0 -1
- package/build/src/internal/CompositeFieldValueMap.js.map +0 -1
- package/build/src/internal/EntityDataManager.js.map +0 -1
- package/build/src/internal/EntityFieldTransformationUtils.js.map +0 -1
- package/build/src/internal/EntityLoadInterfaces.js.map +0 -1
- package/build/src/internal/EntityTableDataCoordinator.js.map +0 -1
- package/build/src/internal/ReadThroughEntityCache.js.map +0 -1
- package/build/src/internal/SingleFieldHolder.js.map +0 -1
- package/build/src/metrics/EntityMetricsUtils.js.map +0 -1
- package/build/src/metrics/IEntityMetricsAdapter.js.map +0 -1
- package/build/src/metrics/NoOpEntityMetricsAdapter.js.map +0 -1
- package/build/src/rules/AllowIfAllSubRulesAllowPrivacyPolicyRule.js.map +0 -1
- package/build/src/rules/AllowIfAnySubRuleAllowsPrivacyPolicyRule.js.map +0 -1
- package/build/src/rules/AllowIfInParentCascadeDeletionPrivacyPolicyRule.js.map +0 -1
- package/build/src/rules/AlwaysAllowPrivacyPolicyRule.js.map +0 -1
- package/build/src/rules/AlwaysDenyPrivacyPolicyRule.js.map +0 -1
- package/build/src/rules/AlwaysSkipPrivacyPolicyRule.js.map +0 -1
- package/build/src/rules/EvaluateIfEntityFieldPredicatePrivacyPolicyRule.js.map +0 -1
- package/build/src/rules/PrivacyPolicyRule.js.map +0 -1
- package/build/src/utils/EntityCreationUtils.js.map +0 -1
- package/build/src/utils/EntityPrivacyUtils.js.map +0 -1
- package/build/src/utils/collections/SerializableKeyMap.js.map +0 -1
- package/build/src/utils/collections/maps.js.map +0 -1
- package/build/src/utils/collections/sets.js.map +0 -1
- package/build/src/utils/mergeEntityMutationTriggerConfigurations.js.map +0 -1
|
@@ -1,101 +1,89 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BufferField = exports.StrictEnumField = exports.EnumField = exports.JSONObjectField = exports.StringArrayField = exports.FloatField = exports.IntField = exports.BooleanField = exports.DateField = exports.UUIDField = exports.StringField = void 0;
|
|
4
|
-
const EntityFieldDefinition_1 = require("./EntityFieldDefinition");
|
|
1
|
+
import { EntityFieldDefinition } from "./EntityFieldDefinition.js";
|
|
5
2
|
// Use our own regex since the `uuid` package doesn't support validating UUIDv6/7/8 yet
|
|
6
3
|
const UUID_REGEX = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/;
|
|
7
4
|
/**
|
|
8
5
|
* EntityFieldDefinition for a column with a JS string type.
|
|
9
6
|
*/
|
|
10
|
-
class StringField extends
|
|
7
|
+
export class StringField extends EntityFieldDefinition {
|
|
11
8
|
validateInputValueInternal(value) {
|
|
12
9
|
return typeof value === 'string';
|
|
13
10
|
}
|
|
14
11
|
}
|
|
15
|
-
exports.StringField = StringField;
|
|
16
12
|
/**
|
|
17
13
|
* EntityFieldDefinition for a column with a JS string type.
|
|
18
14
|
* Enforces that the string is a valid UUID and that it is lowercase. Entity requires UUIDs to be lowercase since most
|
|
19
15
|
* databases (e.g. Postgres) treat UUIDs as case-insensitive, which can lead to unexpected entity load results if mixed-case
|
|
20
16
|
* UUIDs are used.
|
|
21
17
|
*/
|
|
22
|
-
class UUIDField extends StringField {
|
|
18
|
+
export class UUIDField extends StringField {
|
|
23
19
|
validateInputValueInternal(value) {
|
|
24
20
|
return super.validateInputValueInternal(value) && UUID_REGEX.test(value);
|
|
25
21
|
}
|
|
26
22
|
}
|
|
27
|
-
exports.UUIDField = UUIDField;
|
|
28
23
|
/**
|
|
29
24
|
* EntityFieldDefinition for a column with a JS Date type.
|
|
30
25
|
*/
|
|
31
|
-
class DateField extends
|
|
26
|
+
export class DateField extends EntityFieldDefinition {
|
|
32
27
|
validateInputValueInternal(value) {
|
|
33
28
|
return value instanceof Date;
|
|
34
29
|
}
|
|
35
30
|
}
|
|
36
|
-
exports.DateField = DateField;
|
|
37
31
|
/**
|
|
38
32
|
* EntityFieldDefinition for a column with a JS boolean type.
|
|
39
33
|
*/
|
|
40
|
-
class BooleanField extends
|
|
34
|
+
export class BooleanField extends EntityFieldDefinition {
|
|
41
35
|
validateInputValueInternal(value) {
|
|
42
36
|
return typeof value === 'boolean';
|
|
43
37
|
}
|
|
44
38
|
}
|
|
45
|
-
exports.BooleanField = BooleanField;
|
|
46
39
|
/**
|
|
47
40
|
* EntityFieldDefinition for a column with a JS number type.
|
|
48
41
|
* Enforces that the number is an integer.
|
|
49
42
|
*/
|
|
50
|
-
class IntField extends
|
|
43
|
+
export class IntField extends EntityFieldDefinition {
|
|
51
44
|
validateInputValueInternal(value) {
|
|
52
45
|
return typeof value === 'number' && Number.isInteger(value);
|
|
53
46
|
}
|
|
54
47
|
}
|
|
55
|
-
exports.IntField = IntField;
|
|
56
48
|
/**
|
|
57
49
|
* EntityFieldDefinition for a column with a JS number type.
|
|
58
50
|
* Enforces that the number is a float (which includes integers in JS).
|
|
59
51
|
*/
|
|
60
|
-
class FloatField extends
|
|
52
|
+
export class FloatField extends EntityFieldDefinition {
|
|
61
53
|
validateInputValueInternal(value) {
|
|
62
54
|
return typeof value === 'number';
|
|
63
55
|
}
|
|
64
56
|
}
|
|
65
|
-
exports.FloatField = FloatField;
|
|
66
57
|
/**
|
|
67
58
|
* EntityFieldDefinition for a column with a JS string array type.
|
|
68
59
|
* Enforces that every member of the string array is a string.
|
|
69
60
|
*/
|
|
70
|
-
class StringArrayField extends
|
|
61
|
+
export class StringArrayField extends EntityFieldDefinition {
|
|
71
62
|
validateInputValueInternal(value) {
|
|
72
63
|
return Array.isArray(value) && value.every((subValue) => typeof subValue === 'string');
|
|
73
64
|
}
|
|
74
65
|
}
|
|
75
|
-
exports.StringArrayField = StringArrayField;
|
|
76
66
|
/**
|
|
77
67
|
* EntityFieldDefinition for a column with a JS JSON object type.
|
|
78
68
|
*/
|
|
79
|
-
class JSONObjectField extends
|
|
69
|
+
export class JSONObjectField extends EntityFieldDefinition {
|
|
80
70
|
validateInputValueInternal(value) {
|
|
81
71
|
return typeof value === 'object' && !Array.isArray(value);
|
|
82
72
|
}
|
|
83
73
|
}
|
|
84
|
-
exports.JSONObjectField = JSONObjectField;
|
|
85
74
|
/**
|
|
86
75
|
* EntityFieldDefinition for a enum column with a JS string or number type.
|
|
87
76
|
*/
|
|
88
|
-
class EnumField extends
|
|
77
|
+
export class EnumField extends EntityFieldDefinition {
|
|
89
78
|
validateInputValueInternal(value) {
|
|
90
79
|
return typeof value === 'number' || typeof value === 'string';
|
|
91
80
|
}
|
|
92
81
|
}
|
|
93
|
-
exports.EnumField = EnumField;
|
|
94
82
|
/**
|
|
95
83
|
* EntityFieldDefinition for a enum column with a strict typescript enum type.
|
|
96
84
|
* The strict version checks that the value of the field adheres to a particular typescript enum
|
|
97
85
|
*/
|
|
98
|
-
class StrictEnumField extends EnumField {
|
|
86
|
+
export class StrictEnumField extends EnumField {
|
|
99
87
|
enum;
|
|
100
88
|
constructor(options) {
|
|
101
89
|
super(options);
|
|
@@ -105,14 +93,11 @@ class StrictEnumField extends EnumField {
|
|
|
105
93
|
return super.validateInputValueInternal(value) && Object.values(this.enum).includes(value);
|
|
106
94
|
}
|
|
107
95
|
}
|
|
108
|
-
exports.StrictEnumField = StrictEnumField;
|
|
109
96
|
/**
|
|
110
97
|
* EntityFieldDefinition for a column with a JS Buffer type.
|
|
111
98
|
*/
|
|
112
|
-
class BufferField extends
|
|
99
|
+
export class BufferField extends EntityFieldDefinition {
|
|
113
100
|
validateInputValueInternal(value) {
|
|
114
101
|
return Buffer.isBuffer(value);
|
|
115
102
|
}
|
|
116
103
|
}
|
|
117
|
-
exports.BufferField = BufferField;
|
|
118
|
-
//# sourceMappingURL=EntityFields.js.map
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { IEntityClass } from './Entity';
|
|
2
|
-
import { EntityConfiguration } from './EntityConfiguration';
|
|
3
|
-
import { EntityPrivacyPolicy } from './EntityPrivacyPolicy';
|
|
4
|
-
import { EntityTransactionalQueryContext } from './EntityQueryContext';
|
|
5
|
-
import { ReadonlyEntity } from './ReadonlyEntity';
|
|
6
|
-
import { ViewerContext } from './ViewerContext';
|
|
7
|
-
import { EntityDataManager } from './internal/EntityDataManager';
|
|
8
|
-
import { IEntityMetricsAdapter } from './metrics/IEntityMetricsAdapter';
|
|
1
|
+
import type { IEntityClass } from './Entity.ts';
|
|
2
|
+
import type { EntityConfiguration } from './EntityConfiguration.ts';
|
|
3
|
+
import type { EntityPrivacyPolicy } from './EntityPrivacyPolicy.ts';
|
|
4
|
+
import type { EntityTransactionalQueryContext } from './EntityQueryContext.ts';
|
|
5
|
+
import type { ReadonlyEntity } from './ReadonlyEntity.ts';
|
|
6
|
+
import type { ViewerContext } from './ViewerContext.ts';
|
|
7
|
+
import type { EntityDataManager } from './internal/EntityDataManager.ts';
|
|
8
|
+
import type { IEntityMetricsAdapter } from './metrics/IEntityMetricsAdapter.ts';
|
|
9
9
|
/**
|
|
10
10
|
* Entity invalidation utilities.
|
|
11
11
|
* Methods are exposed publicly since in rare cases they may need to be called manually.
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EntityInvalidationUtils = void 0;
|
|
4
|
-
const SingleFieldHolder_1 = require("./internal/SingleFieldHolder");
|
|
1
|
+
import { SingleFieldHolder, SingleFieldValueHolder } from "./internal/SingleFieldHolder.js";
|
|
5
2
|
/**
|
|
6
3
|
* Entity invalidation utilities.
|
|
7
4
|
* Methods are exposed publicly since in rare cases they may need to be called manually.
|
|
8
5
|
*/
|
|
9
|
-
class EntityInvalidationUtils {
|
|
6
|
+
export class EntityInvalidationUtils {
|
|
10
7
|
entityConfiguration;
|
|
11
8
|
dataManager;
|
|
12
9
|
metricsAdapter;
|
|
@@ -22,8 +19,8 @@ class EntityInvalidationUtils {
|
|
|
22
19
|
const value = objectFields[fieldName];
|
|
23
20
|
if (value !== undefined && value !== null) {
|
|
24
21
|
singleFieldKeyValues.push([
|
|
25
|
-
new
|
|
26
|
-
new
|
|
22
|
+
new SingleFieldHolder(fieldName),
|
|
23
|
+
new SingleFieldValueHolder(value),
|
|
27
24
|
]);
|
|
28
25
|
}
|
|
29
26
|
}
|
|
@@ -67,5 +64,3 @@ class EntityInvalidationUtils {
|
|
|
67
64
|
this.invalidateFieldsForTransaction(queryContext, entity.getAllDatabaseFields());
|
|
68
65
|
}
|
|
69
66
|
}
|
|
70
|
-
exports.EntityInvalidationUtils = EntityInvalidationUtils;
|
|
71
|
-
//# sourceMappingURL=EntityInvalidationUtils.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { AuthorizationResultBasedEntityLoader } from './AuthorizationResultBasedEntityLoader';
|
|
2
|
-
import { EnforcingEntityLoader } from './EnforcingEntityLoader';
|
|
3
|
-
import { IEntityClass } from './Entity';
|
|
4
|
-
import { EntityPrivacyPolicy } from './EntityPrivacyPolicy';
|
|
5
|
-
import { EntityQueryContext } from './EntityQueryContext';
|
|
6
|
-
import { ReadonlyEntity } from './ReadonlyEntity';
|
|
7
|
-
import { ViewerContext } from './ViewerContext';
|
|
1
|
+
import type { AuthorizationResultBasedEntityLoader } from './AuthorizationResultBasedEntityLoader.ts';
|
|
2
|
+
import { EnforcingEntityLoader } from './EnforcingEntityLoader.ts';
|
|
3
|
+
import type { IEntityClass } from './Entity.ts';
|
|
4
|
+
import type { EntityPrivacyPolicy } from './EntityPrivacyPolicy.ts';
|
|
5
|
+
import type { EntityQueryContext } from './EntityQueryContext.ts';
|
|
6
|
+
import type { ReadonlyEntity } from './ReadonlyEntity.ts';
|
|
7
|
+
import type { ViewerContext } from './ViewerContext.ts';
|
|
8
8
|
/**
|
|
9
9
|
* The primary interface for loading entities. All normal loads are batched,
|
|
10
10
|
* cached, and authorized against the entity's EntityPrivacyPolicy.
|
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EntityLoader = void 0;
|
|
4
|
-
const EnforcingEntityLoader_1 = require("./EnforcingEntityLoader");
|
|
1
|
+
import { EnforcingEntityLoader } from "./EnforcingEntityLoader.js";
|
|
5
2
|
/**
|
|
6
3
|
* The primary interface for loading entities. All normal loads are batched,
|
|
7
4
|
* cached, and authorized against the entity's EntityPrivacyPolicy.
|
|
8
5
|
*/
|
|
9
|
-
class EntityLoader {
|
|
6
|
+
export class EntityLoader {
|
|
10
7
|
viewerContext;
|
|
11
8
|
queryContext;
|
|
12
9
|
entityClass;
|
|
@@ -21,7 +18,7 @@ class EntityLoader {
|
|
|
21
18
|
* and will throw otherwise.
|
|
22
19
|
*/
|
|
23
20
|
enforcing() {
|
|
24
|
-
return new
|
|
21
|
+
return new EnforcingEntityLoader(this.withAuthorizationResults());
|
|
25
22
|
}
|
|
26
23
|
/**
|
|
27
24
|
* Authorization-result-based entity loader. All loads through this
|
|
@@ -35,5 +32,3 @@ class EntityLoader {
|
|
|
35
32
|
.forLoad(this.queryContext, { previousValue: null, cascadingDeleteCause: null });
|
|
36
33
|
}
|
|
37
34
|
}
|
|
38
|
-
exports.EntityLoader = EntityLoader;
|
|
39
|
-
//# sourceMappingURL=EntityLoader.js.map
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { AuthorizationResultBasedEntityLoader } from './AuthorizationResultBasedEntityLoader';
|
|
2
|
-
import { EntityCompanion } from './EntityCompanion';
|
|
3
|
-
import { EntityConstructionUtils } from './EntityConstructionUtils';
|
|
4
|
-
import { EntityInvalidationUtils } from './EntityInvalidationUtils';
|
|
5
|
-
import { EntityPrivacyPolicy, EntityPrivacyPolicyEvaluationContext } from './EntityPrivacyPolicy';
|
|
6
|
-
import { EntityQueryContext } from './EntityQueryContext';
|
|
7
|
-
import { ReadonlyEntity } from './ReadonlyEntity';
|
|
8
|
-
import { ViewerContext } from './ViewerContext';
|
|
9
|
-
import { EntityDataManager } from './internal/EntityDataManager';
|
|
10
|
-
import { IEntityMetricsAdapter } from './metrics/IEntityMetricsAdapter';
|
|
1
|
+
import { AuthorizationResultBasedEntityLoader } from './AuthorizationResultBasedEntityLoader.ts';
|
|
2
|
+
import type { EntityCompanion } from './EntityCompanion.ts';
|
|
3
|
+
import { EntityConstructionUtils } from './EntityConstructionUtils.ts';
|
|
4
|
+
import { EntityInvalidationUtils } from './EntityInvalidationUtils.ts';
|
|
5
|
+
import type { EntityPrivacyPolicy, EntityPrivacyPolicyEvaluationContext } from './EntityPrivacyPolicy.ts';
|
|
6
|
+
import type { EntityQueryContext } from './EntityQueryContext.ts';
|
|
7
|
+
import type { ReadonlyEntity } from './ReadonlyEntity.ts';
|
|
8
|
+
import type { ViewerContext } from './ViewerContext.ts';
|
|
9
|
+
import type { EntityDataManager } from './internal/EntityDataManager.ts';
|
|
10
|
+
import type { IEntityMetricsAdapter } from './metrics/IEntityMetricsAdapter.ts';
|
|
11
11
|
/**
|
|
12
12
|
* The primary entry point for loading entities.
|
|
13
13
|
*/
|
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const AuthorizationResultBasedEntityLoader_1 = require("./AuthorizationResultBasedEntityLoader");
|
|
5
|
-
const EntityConstructionUtils_1 = require("./EntityConstructionUtils");
|
|
6
|
-
const EntityInvalidationUtils_1 = require("./EntityInvalidationUtils");
|
|
1
|
+
import { AuthorizationResultBasedEntityLoader } from "./AuthorizationResultBasedEntityLoader.js";
|
|
2
|
+
import { EntityConstructionUtils } from "./EntityConstructionUtils.js";
|
|
3
|
+
import { EntityInvalidationUtils } from "./EntityInvalidationUtils.js";
|
|
7
4
|
/**
|
|
8
5
|
* The primary entry point for loading entities.
|
|
9
6
|
*/
|
|
10
|
-
class EntityLoaderFactory {
|
|
7
|
+
export class EntityLoaderFactory {
|
|
11
8
|
entityCompanion;
|
|
12
9
|
dataManager;
|
|
13
10
|
metricsAdapter;
|
|
@@ -17,10 +14,10 @@ class EntityLoaderFactory {
|
|
|
17
14
|
this.metricsAdapter = metricsAdapter;
|
|
18
15
|
}
|
|
19
16
|
invalidationUtils() {
|
|
20
|
-
return new
|
|
17
|
+
return new EntityInvalidationUtils(this.entityCompanion.entityCompanionDefinition.entityConfiguration, this.entityCompanion.entityCompanionDefinition.entityClass, this.dataManager, this.metricsAdapter);
|
|
21
18
|
}
|
|
22
19
|
constructionUtils(viewerContext, queryContext, privacyPolicyEvaluationContext) {
|
|
23
|
-
return new
|
|
20
|
+
return new EntityConstructionUtils(viewerContext, queryContext, privacyPolicyEvaluationContext, this.entityCompanion.entityCompanionDefinition.entityConfiguration, this.entityCompanion.entityCompanionDefinition.entityClass, this.entityCompanion.entityCompanionDefinition.entitySelectedFields, this.entityCompanion.privacyPolicy, this.metricsAdapter);
|
|
24
21
|
}
|
|
25
22
|
/**
|
|
26
23
|
* Vend loader for loading an entity in a given query context.
|
|
@@ -29,8 +26,6 @@ class EntityLoaderFactory {
|
|
|
29
26
|
*/
|
|
30
27
|
forLoad(viewerContext, queryContext, privacyPolicyEvaluationContext) {
|
|
31
28
|
const constructionUtils = this.constructionUtils(viewerContext, queryContext, privacyPolicyEvaluationContext);
|
|
32
|
-
return new
|
|
29
|
+
return new AuthorizationResultBasedEntityLoader(queryContext, this.entityCompanion.entityCompanionDefinition.entityConfiguration, this.entityCompanion.entityCompanionDefinition.entityClass, this.dataManager, constructionUtils);
|
|
33
30
|
}
|
|
34
31
|
}
|
|
35
|
-
exports.EntityLoaderFactory = EntityLoaderFactory;
|
|
36
|
-
//# sourceMappingURL=EntityLoaderFactory.js.map
|
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EntityMutationType = void 0;
|
|
4
|
-
var EntityMutationType;
|
|
1
|
+
export var EntityMutationType;
|
|
5
2
|
(function (EntityMutationType) {
|
|
6
3
|
EntityMutationType[EntityMutationType["CREATE"] = 0] = "CREATE";
|
|
7
4
|
EntityMutationType[EntityMutationType["UPDATE"] = 1] = "UPDATE";
|
|
8
5
|
EntityMutationType[EntityMutationType["DELETE"] = 2] = "DELETE";
|
|
9
|
-
})(EntityMutationType || (
|
|
10
|
-
//# sourceMappingURL=EntityMutationInfo.js.map
|
|
6
|
+
})(EntityMutationType || (EntityMutationType = {}));
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { EntityTriggerMutationInfo } from './EntityMutationInfo';
|
|
2
|
-
import { EntityTransactionalQueryContext } from './EntityQueryContext';
|
|
3
|
-
import { ReadonlyEntity } from './ReadonlyEntity';
|
|
4
|
-
import { ViewerContext } from './ViewerContext';
|
|
1
|
+
import type { EntityTriggerMutationInfo } from './EntityMutationInfo.ts';
|
|
2
|
+
import type { EntityTransactionalQueryContext } from './EntityQueryContext.ts';
|
|
3
|
+
import type { ReadonlyEntity } from './ReadonlyEntity.ts';
|
|
4
|
+
import type { ViewerContext } from './ViewerContext.ts';
|
|
5
5
|
/**
|
|
6
6
|
* Interface to define trigger behavior for entities.
|
|
7
7
|
*/
|
|
@@ -1,18 +1,12 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EntityNonTransactionalMutationTrigger = exports.EntityMutationTrigger = void 0;
|
|
4
1
|
/**
|
|
5
2
|
* A transactional trigger is a way to specify entity mutation operation side-effects that run within the
|
|
6
3
|
* same transaction as the mutation itself.
|
|
7
4
|
*/
|
|
8
|
-
class EntityMutationTrigger {
|
|
5
|
+
export class EntityMutationTrigger {
|
|
9
6
|
}
|
|
10
|
-
exports.EntityMutationTrigger = EntityMutationTrigger;
|
|
11
7
|
/**
|
|
12
8
|
* A non-transactional trigger is like a EntityMutationTrigger but used for afterCommit triggers
|
|
13
9
|
* since they run after the transaction is committed.
|
|
14
10
|
*/
|
|
15
|
-
class EntityNonTransactionalMutationTrigger {
|
|
11
|
+
export class EntityNonTransactionalMutationTrigger {
|
|
16
12
|
}
|
|
17
|
-
exports.EntityNonTransactionalMutationTrigger = EntityNonTransactionalMutationTrigger;
|
|
18
|
-
//# sourceMappingURL=EntityMutationTriggerConfiguration.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { EntityValidatorMutationInfo } from './EntityMutationInfo';
|
|
2
|
-
import { EntityTransactionalQueryContext } from './EntityQueryContext';
|
|
3
|
-
import { ReadonlyEntity } from './ReadonlyEntity';
|
|
4
|
-
import { ViewerContext } from './ViewerContext';
|
|
1
|
+
import type { EntityValidatorMutationInfo } from './EntityMutationInfo.ts';
|
|
2
|
+
import type { EntityTransactionalQueryContext } from './EntityQueryContext.ts';
|
|
3
|
+
import type { ReadonlyEntity } from './ReadonlyEntity.ts';
|
|
4
|
+
import type { ViewerContext } from './ViewerContext.ts';
|
|
5
5
|
/**
|
|
6
6
|
* Interface to define validator behavior for entities.
|
|
7
7
|
*/
|
|
@@ -1,11 +1,6 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EntityMutationValidator = void 0;
|
|
4
1
|
/**
|
|
5
2
|
* A validator is a way to specify side-effect-free entity mutation validation that runs within the
|
|
6
3
|
* same transaction as the mutation itself.
|
|
7
4
|
*/
|
|
8
|
-
class EntityMutationValidator {
|
|
5
|
+
export class EntityMutationValidator {
|
|
9
6
|
}
|
|
10
|
-
exports.EntityMutationValidator = EntityMutationValidator;
|
|
11
|
-
//# sourceMappingURL=EntityMutationValidatorConfiguration.js.map
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import { AuthorizationResultBasedCreateMutator, AuthorizationResultBasedDeleteMutator, AuthorizationResultBasedUpdateMutator } from './AuthorizationResultBasedEntityMutator';
|
|
2
|
-
import { Entity, IEntityClass } from './Entity';
|
|
3
|
-
import { EntityCompanionProvider } from './EntityCompanionProvider';
|
|
4
|
-
import { EntityConfiguration } from './EntityConfiguration';
|
|
5
|
-
import { EntityDatabaseAdapter } from './EntityDatabaseAdapter';
|
|
6
|
-
import { EntityLoaderFactory } from './EntityLoaderFactory';
|
|
7
|
-
import { EntityCascadingDeletionInfo } from './EntityMutationInfo';
|
|
8
|
-
import { EntityMutationTriggerConfiguration } from './EntityMutationTriggerConfiguration';
|
|
9
|
-
import { EntityMutationValidatorConfiguration } from './EntityMutationValidatorConfiguration';
|
|
10
|
-
import { EntityPrivacyPolicy } from './EntityPrivacyPolicy';
|
|
11
|
-
import { EntityQueryContext } from './EntityQueryContext';
|
|
12
|
-
import { ViewerContext } from './ViewerContext';
|
|
13
|
-
import { IEntityMetricsAdapter } from './metrics/IEntityMetricsAdapter';
|
|
1
|
+
import { AuthorizationResultBasedCreateMutator, AuthorizationResultBasedDeleteMutator, AuthorizationResultBasedUpdateMutator } from './AuthorizationResultBasedEntityMutator.ts';
|
|
2
|
+
import type { Entity, IEntityClass } from './Entity.ts';
|
|
3
|
+
import type { EntityCompanionProvider } from './EntityCompanionProvider.ts';
|
|
4
|
+
import type { EntityConfiguration } from './EntityConfiguration.ts';
|
|
5
|
+
import type { EntityDatabaseAdapter } from './EntityDatabaseAdapter.ts';
|
|
6
|
+
import type { EntityLoaderFactory } from './EntityLoaderFactory.ts';
|
|
7
|
+
import type { EntityCascadingDeletionInfo } from './EntityMutationInfo.ts';
|
|
8
|
+
import type { EntityMutationTriggerConfiguration } from './EntityMutationTriggerConfiguration.ts';
|
|
9
|
+
import type { EntityMutationValidatorConfiguration } from './EntityMutationValidatorConfiguration.ts';
|
|
10
|
+
import type { EntityPrivacyPolicy } from './EntityPrivacyPolicy.ts';
|
|
11
|
+
import type { EntityQueryContext } from './EntityQueryContext.ts';
|
|
12
|
+
import type { ViewerContext } from './ViewerContext.ts';
|
|
13
|
+
import type { IEntityMetricsAdapter } from './metrics/IEntityMetricsAdapter.ts';
|
|
14
14
|
/**
|
|
15
15
|
* The primary interface for creating, mutating, and deleting entities.
|
|
16
16
|
*/
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EntityMutatorFactory = void 0;
|
|
4
|
-
const AuthorizationResultBasedEntityMutator_1 = require("./AuthorizationResultBasedEntityMutator");
|
|
1
|
+
import { AuthorizationResultBasedCreateMutator, AuthorizationResultBasedDeleteMutator, AuthorizationResultBasedUpdateMutator, } from "./AuthorizationResultBasedEntityMutator.js";
|
|
5
2
|
/**
|
|
6
3
|
* The primary interface for creating, mutating, and deleting entities.
|
|
7
4
|
*/
|
|
8
|
-
class EntityMutatorFactory {
|
|
5
|
+
export class EntityMutatorFactory {
|
|
9
6
|
entityCompanionProvider;
|
|
10
7
|
entityConfiguration;
|
|
11
8
|
entityClass;
|
|
@@ -33,7 +30,7 @@ class EntityMutatorFactory {
|
|
|
33
30
|
* @returns mutator for creating an entity
|
|
34
31
|
*/
|
|
35
32
|
forCreate(viewerContext, queryContext) {
|
|
36
|
-
return new
|
|
33
|
+
return new AuthorizationResultBasedCreateMutator(this.entityCompanionProvider, viewerContext, queryContext, this.entityConfiguration, this.entityClass, this.privacyPolicy, this.mutationValidators, this.mutationTriggers, this.entityLoaderFactory, this.databaseAdapter, this.metricsAdapter);
|
|
37
34
|
}
|
|
38
35
|
/**
|
|
39
36
|
* Vend mutator for updating an existing entity in given query context.
|
|
@@ -42,7 +39,7 @@ class EntityMutatorFactory {
|
|
|
42
39
|
* @returns mutator for updating existingEntity
|
|
43
40
|
*/
|
|
44
41
|
forUpdate(existingEntity, queryContext, cascadingDeleteCause) {
|
|
45
|
-
return new
|
|
42
|
+
return new AuthorizationResultBasedUpdateMutator(this.entityCompanionProvider, existingEntity.getViewerContext(), queryContext, this.entityConfiguration, this.entityClass, this.privacyPolicy, this.mutationValidators, this.mutationTriggers, this.entityLoaderFactory, this.databaseAdapter, this.metricsAdapter, existingEntity, cascadingDeleteCause);
|
|
46
43
|
}
|
|
47
44
|
/**
|
|
48
45
|
* Delete an existing entity in given query context.
|
|
@@ -50,8 +47,6 @@ class EntityMutatorFactory {
|
|
|
50
47
|
* @param queryContext - query context in which to perform the delete
|
|
51
48
|
*/
|
|
52
49
|
forDelete(existingEntity, queryContext, cascadingDeleteCause) {
|
|
53
|
-
return new
|
|
50
|
+
return new AuthorizationResultBasedDeleteMutator(this.entityCompanionProvider, existingEntity.getViewerContext(), queryContext, this.entityConfiguration, this.entityClass, this.privacyPolicy, this.mutationValidators, this.mutationTriggers, this.entityLoaderFactory, this.databaseAdapter, this.metricsAdapter, existingEntity, cascadingDeleteCause);
|
|
54
51
|
}
|
|
55
52
|
}
|
|
56
|
-
exports.EntityMutatorFactory = EntityMutatorFactory;
|
|
57
|
-
//# sourceMappingURL=EntityMutatorFactory.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { EntityCascadingDeletionInfo } from './EntityMutationInfo';
|
|
2
|
-
import { EntityQueryContext } from './EntityQueryContext';
|
|
3
|
-
import { ReadonlyEntity } from './ReadonlyEntity';
|
|
4
|
-
import { ViewerContext } from './ViewerContext';
|
|
5
|
-
import { EntityNotAuthorizedError } from './errors/EntityNotAuthorizedError';
|
|
6
|
-
import { IEntityMetricsAdapter } from './metrics/IEntityMetricsAdapter';
|
|
7
|
-
import { PrivacyPolicyRule } from './rules/PrivacyPolicyRule';
|
|
1
|
+
import type { EntityCascadingDeletionInfo } from './EntityMutationInfo.ts';
|
|
2
|
+
import type { EntityQueryContext } from './EntityQueryContext.ts';
|
|
3
|
+
import type { ReadonlyEntity } from './ReadonlyEntity.ts';
|
|
4
|
+
import type { ViewerContext } from './ViewerContext.ts';
|
|
5
|
+
import { EntityNotAuthorizedError } from './errors/EntityNotAuthorizedError.ts';
|
|
6
|
+
import type { IEntityMetricsAdapter } from './metrics/IEntityMetricsAdapter.ts';
|
|
7
|
+
import type { PrivacyPolicyRule } from './rules/PrivacyPolicyRule.ts';
|
|
8
8
|
/**
|
|
9
9
|
* Information about the reason this privacy policy is being evaluated.
|
|
10
10
|
*/
|
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const EntityNotAuthorizedError_1 = require("./errors/EntityNotAuthorizedError");
|
|
5
|
-
const IEntityMetricsAdapter_1 = require("./metrics/IEntityMetricsAdapter");
|
|
6
|
-
const PrivacyPolicyRule_1 = require("./rules/PrivacyPolicyRule");
|
|
1
|
+
import { EntityNotAuthorizedError } from "./errors/EntityNotAuthorizedError.js";
|
|
2
|
+
import { EntityMetricsAuthorizationResult } from "./metrics/IEntityMetricsAdapter.js";
|
|
3
|
+
import { RuleEvaluationResult } from "./rules/PrivacyPolicyRule.js";
|
|
7
4
|
/**
|
|
8
5
|
* Evaluation mode for a EntityPrivacyPolicy. Useful when transitioning to
|
|
9
6
|
* using Entity for privacy.
|
|
10
7
|
*/
|
|
11
|
-
var EntityPrivacyPolicyEvaluationMode;
|
|
8
|
+
export var EntityPrivacyPolicyEvaluationMode;
|
|
12
9
|
(function (EntityPrivacyPolicyEvaluationMode) {
|
|
13
10
|
/**
|
|
14
11
|
* Enforce this privacy policy. Throw upon denial.
|
|
@@ -22,14 +19,14 @@ var EntityPrivacyPolicyEvaluationMode;
|
|
|
22
19
|
* Enforce this privacy policy. Throw and log upon denial.
|
|
23
20
|
*/
|
|
24
21
|
EntityPrivacyPolicyEvaluationMode[EntityPrivacyPolicyEvaluationMode["ENFORCE_AND_LOG"] = 2] = "ENFORCE_AND_LOG";
|
|
25
|
-
})(EntityPrivacyPolicyEvaluationMode || (
|
|
26
|
-
var EntityAuthorizationAction;
|
|
22
|
+
})(EntityPrivacyPolicyEvaluationMode || (EntityPrivacyPolicyEvaluationMode = {}));
|
|
23
|
+
export var EntityAuthorizationAction;
|
|
27
24
|
(function (EntityAuthorizationAction) {
|
|
28
25
|
EntityAuthorizationAction[EntityAuthorizationAction["CREATE"] = 0] = "CREATE";
|
|
29
26
|
EntityAuthorizationAction[EntityAuthorizationAction["READ"] = 1] = "READ";
|
|
30
27
|
EntityAuthorizationAction[EntityAuthorizationAction["UPDATE"] = 2] = "UPDATE";
|
|
31
28
|
EntityAuthorizationAction[EntityAuthorizationAction["DELETE"] = 3] = "DELETE";
|
|
32
|
-
})(EntityAuthorizationAction || (
|
|
29
|
+
})(EntityAuthorizationAction || (EntityAuthorizationAction = {}));
|
|
33
30
|
/**
|
|
34
31
|
* Privacy policy for an entity.
|
|
35
32
|
*
|
|
@@ -51,7 +48,7 @@ var EntityAuthorizationAction;
|
|
|
51
48
|
* return not authorized if all rules skip
|
|
52
49
|
* ```
|
|
53
50
|
*/
|
|
54
|
-
class EntityPrivacyPolicy {
|
|
51
|
+
export class EntityPrivacyPolicy {
|
|
55
52
|
/**
|
|
56
53
|
* List of rules to evaluate for create authorization.
|
|
57
54
|
*/
|
|
@@ -143,19 +140,19 @@ class EntityPrivacyPolicy {
|
|
|
143
140
|
metricsAdapter.logAuthorizationEvent({
|
|
144
141
|
entityClassName: entity.constructor.name,
|
|
145
142
|
action,
|
|
146
|
-
evaluationResult:
|
|
143
|
+
evaluationResult: EntityMetricsAuthorizationResult.ALLOW,
|
|
147
144
|
privacyPolicyEvaluationMode: privacyPolicyEvaluator.mode,
|
|
148
145
|
});
|
|
149
146
|
return result;
|
|
150
147
|
}
|
|
151
148
|
catch (e) {
|
|
152
|
-
if (!(e instanceof
|
|
149
|
+
if (!(e instanceof EntityNotAuthorizedError)) {
|
|
153
150
|
throw e;
|
|
154
151
|
}
|
|
155
152
|
metricsAdapter.logAuthorizationEvent({
|
|
156
153
|
entityClassName: entity.constructor.name,
|
|
157
154
|
action,
|
|
158
|
-
evaluationResult:
|
|
155
|
+
evaluationResult: EntityMetricsAuthorizationResult.DENY,
|
|
159
156
|
privacyPolicyEvaluationMode: privacyPolicyEvaluator.mode,
|
|
160
157
|
});
|
|
161
158
|
throw e;
|
|
@@ -166,20 +163,20 @@ class EntityPrivacyPolicy {
|
|
|
166
163
|
metricsAdapter.logAuthorizationEvent({
|
|
167
164
|
entityClassName: entity.constructor.name,
|
|
168
165
|
action,
|
|
169
|
-
evaluationResult:
|
|
166
|
+
evaluationResult: EntityMetricsAuthorizationResult.ALLOW,
|
|
170
167
|
privacyPolicyEvaluationMode: privacyPolicyEvaluator.mode,
|
|
171
168
|
});
|
|
172
169
|
return result;
|
|
173
170
|
}
|
|
174
171
|
catch (e) {
|
|
175
|
-
if (!(e instanceof
|
|
172
|
+
if (!(e instanceof EntityNotAuthorizedError)) {
|
|
176
173
|
throw e;
|
|
177
174
|
}
|
|
178
175
|
privacyPolicyEvaluator.denyHandler(e);
|
|
179
176
|
metricsAdapter.logAuthorizationEvent({
|
|
180
177
|
entityClassName: entity.constructor.name,
|
|
181
178
|
action,
|
|
182
|
-
evaluationResult:
|
|
179
|
+
evaluationResult: EntityMetricsAuthorizationResult.DENY,
|
|
183
180
|
privacyPolicyEvaluationMode: privacyPolicyEvaluator.mode,
|
|
184
181
|
});
|
|
185
182
|
throw e;
|
|
@@ -190,20 +187,20 @@ class EntityPrivacyPolicy {
|
|
|
190
187
|
metricsAdapter.logAuthorizationEvent({
|
|
191
188
|
entityClassName: entity.constructor.name,
|
|
192
189
|
action,
|
|
193
|
-
evaluationResult:
|
|
190
|
+
evaluationResult: EntityMetricsAuthorizationResult.ALLOW,
|
|
194
191
|
privacyPolicyEvaluationMode: privacyPolicyEvaluator.mode,
|
|
195
192
|
});
|
|
196
193
|
return result;
|
|
197
194
|
}
|
|
198
195
|
catch (e) {
|
|
199
|
-
if (!(e instanceof
|
|
196
|
+
if (!(e instanceof EntityNotAuthorizedError)) {
|
|
200
197
|
throw e;
|
|
201
198
|
}
|
|
202
199
|
privacyPolicyEvaluator.denyHandler(e);
|
|
203
200
|
metricsAdapter.logAuthorizationEvent({
|
|
204
201
|
entityClassName: entity.constructor.name,
|
|
205
202
|
action,
|
|
206
|
-
evaluationResult:
|
|
203
|
+
evaluationResult: EntityMetricsAuthorizationResult.DENY,
|
|
207
204
|
privacyPolicyEvaluationMode: privacyPolicyEvaluator.mode,
|
|
208
205
|
});
|
|
209
206
|
return entity;
|
|
@@ -215,18 +212,16 @@ class EntityPrivacyPolicy {
|
|
|
215
212
|
const rule = ruleset[i];
|
|
216
213
|
const ruleEvaluationResult = await rule.evaluateAsync(viewerContext, queryContext, { ...evaluationContext, action }, entity);
|
|
217
214
|
switch (ruleEvaluationResult) {
|
|
218
|
-
case
|
|
219
|
-
throw new
|
|
220
|
-
case
|
|
215
|
+
case RuleEvaluationResult.DENY:
|
|
216
|
+
throw new EntityNotAuthorizedError(entity, viewerContext, action, i);
|
|
217
|
+
case RuleEvaluationResult.SKIP:
|
|
221
218
|
continue;
|
|
222
|
-
case
|
|
219
|
+
case RuleEvaluationResult.ALLOW:
|
|
223
220
|
return entity;
|
|
224
221
|
default:
|
|
225
222
|
throw new Error(`Invalid RuleEvaluationResult returned from rule: ${entity} (viewer = ${viewerContext}, action = ${EntityAuthorizationAction[action]}, ruleIndex = ${i})`);
|
|
226
223
|
}
|
|
227
224
|
}
|
|
228
|
-
throw new
|
|
225
|
+
throw new EntityNotAuthorizedError(entity, viewerContext, action, -1);
|
|
229
226
|
}
|
|
230
227
|
}
|
|
231
|
-
exports.EntityPrivacyPolicy = EntityPrivacyPolicy;
|
|
232
|
-
//# sourceMappingURL=EntityPrivacyPolicy.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EntityQueryContextProvider } from './EntityQueryContextProvider';
|
|
1
|
+
import type { EntityQueryContextProvider } from './EntityQueryContextProvider.ts';
|
|
2
2
|
export type PostCommitCallback = (...args: any) => Promise<any>;
|
|
3
3
|
export type PreCommitCallback = (queryContext: EntityTransactionalQueryContext, ...args: any) => Promise<any>;
|
|
4
4
|
export declare enum TransactionIsolationLevel {
|