@expo/entity 0.45.0 → 0.47.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 → src/AuthorizationResultBasedEntityAssociationLoader.d.ts} +4 -4
- package/build/{AuthorizationResultBasedEntityAssociationLoader.js → src/AuthorizationResultBasedEntityAssociationLoader.js} +2 -1
- package/build/src/AuthorizationResultBasedEntityAssociationLoader.js.map +1 -0
- package/build/{AuthorizationResultBasedEntityLoader.d.ts → src/AuthorizationResultBasedEntityLoader.d.ts} +8 -8
- package/build/{AuthorizationResultBasedEntityLoader.js → src/AuthorizationResultBasedEntityLoader.js} +6 -5
- package/build/src/AuthorizationResultBasedEntityLoader.js.map +1 -0
- package/build/{AuthorizationResultBasedEntityMutator.d.ts → src/AuthorizationResultBasedEntityMutator.d.ts} +15 -13
- package/build/{AuthorizationResultBasedEntityMutator.js → src/AuthorizationResultBasedEntityMutator.js} +77 -39
- package/build/src/AuthorizationResultBasedEntityMutator.js.map +1 -0
- package/build/{ComposedEntityCacheAdapter.d.ts → src/ComposedEntityCacheAdapter.d.ts} +2 -2
- package/build/{ComposedEntityCacheAdapter.js → src/ComposedEntityCacheAdapter.js} +2 -1
- package/build/src/ComposedEntityCacheAdapter.js.map +1 -0
- package/build/{ComposedSecondaryEntityCache.d.ts → src/ComposedSecondaryEntityCache.d.ts} +1 -1
- package/build/{ComposedSecondaryEntityCache.js → src/ComposedSecondaryEntityCache.js} +2 -1
- package/build/src/ComposedSecondaryEntityCache.js.map +1 -0
- package/build/{EnforcingEntityAssociationLoader.d.ts → src/EnforcingEntityAssociationLoader.d.ts} +5 -5
- package/build/{EnforcingEntityAssociationLoader.js → src/EnforcingEntityAssociationLoader.js} +2 -1
- package/build/src/EnforcingEntityAssociationLoader.js.map +1 -0
- package/build/{EnforcingEntityCreator.d.ts → src/EnforcingEntityCreator.d.ts} +4 -4
- package/build/{EnforcingEntityCreator.js → src/EnforcingEntityCreator.js} +2 -1
- package/build/src/EnforcingEntityCreator.js.map +1 -0
- package/build/{EnforcingEntityDeleter.d.ts → src/EnforcingEntityDeleter.d.ts} +4 -4
- package/build/{EnforcingEntityDeleter.js → src/EnforcingEntityDeleter.js} +2 -1
- package/build/src/EnforcingEntityDeleter.js.map +1 -0
- package/build/{EnforcingEntityLoader.d.ts → src/EnforcingEntityLoader.d.ts} +5 -5
- package/build/{EnforcingEntityLoader.js → src/EnforcingEntityLoader.js} +2 -1
- package/build/src/EnforcingEntityLoader.js.map +1 -0
- package/build/{EnforcingEntityUpdater.d.ts → src/EnforcingEntityUpdater.d.ts} +4 -4
- package/build/{EnforcingEntityUpdater.js → src/EnforcingEntityUpdater.js} +2 -1
- package/build/src/EnforcingEntityUpdater.js.map +1 -0
- package/build/{Entity.d.ts → src/Entity.d.ts} +7 -7
- package/build/{Entity.js → src/Entity.js} +13 -15
- package/build/src/Entity.js.map +1 -0
- package/build/{EntityAssociationLoader.d.ts → src/EntityAssociationLoader.d.ts} +5 -5
- package/build/{EntityAssociationLoader.js → src/EntityAssociationLoader.js} +6 -8
- package/build/src/EntityAssociationLoader.js.map +1 -0
- package/build/{EntityCompanion.d.ts → src/EntityCompanion.d.ts} +10 -10
- package/build/{EntityCompanion.js → src/EntityCompanion.js} +6 -8
- package/build/src/EntityCompanion.js.map +1 -0
- package/build/{EntityCompanionProvider.d.ts → src/EntityCompanionProvider.d.ts} +12 -12
- package/build/{EntityCompanionProvider.js → src/EntityCompanionProvider.js} +6 -5
- package/build/src/EntityCompanionProvider.js.map +1 -0
- package/build/{EntityConfiguration.d.ts → src/EntityConfiguration.d.ts} +2 -2
- package/build/{EntityConfiguration.js → src/EntityConfiguration.js} +2 -2
- package/build/src/EntityConfiguration.js.map +1 -0
- package/build/{EntityCreator.d.ts → src/EntityCreator.d.ts} +5 -5
- package/build/{EntityCreator.js → src/EntityCreator.js} +4 -6
- package/build/{EntityCreator.js.map → src/EntityCreator.js.map} +1 -1
- package/build/{EntityDatabaseAdapter.d.ts → src/EntityDatabaseAdapter.d.ts} +2 -2
- package/build/{EntityDatabaseAdapter.js → src/EntityDatabaseAdapter.js} +2 -2
- package/build/src/EntityDatabaseAdapter.js.map +1 -0
- package/build/{EntityDeleter.d.ts → src/EntityDeleter.d.ts} +5 -5
- package/build/{EntityDeleter.js → src/EntityDeleter.js} +5 -7
- package/build/{EntityDeleter.js.map → src/EntityDeleter.js.map} +1 -1
- package/build/{EntityFieldDefinition.d.ts → src/EntityFieldDefinition.d.ts} +3 -3
- package/build/src/EntityFieldDefinition.js.map +1 -0
- package/build/{EntityFields.d.ts → src/EntityFields.d.ts} +7 -0
- package/build/{EntityFields.js → src/EntityFields.js} +11 -1
- package/build/src/EntityFields.js.map +1 -0
- package/build/{EntityLoader.d.ts → src/EntityLoader.d.ts} +7 -7
- package/build/{EntityLoader.js → src/EntityLoader.js} +4 -6
- package/build/{EntityLoader.js.map → src/EntityLoader.js.map} +1 -1
- package/build/{EntityLoaderFactory.d.ts → src/EntityLoaderFactory.d.ts} +8 -8
- package/build/src/EntityLoaderFactory.js +29 -0
- package/build/src/EntityLoaderFactory.js.map +1 -0
- package/build/{EntityLoaderUtils.d.ts → src/EntityLoaderUtils.d.ts} +7 -7
- package/build/{EntityLoaderUtils.js → src/EntityLoaderUtils.js} +2 -1
- package/build/src/EntityLoaderUtils.js.map +1 -0
- package/build/{EntityMutationInfo.d.ts → src/EntityMutationInfo.d.ts} +2 -2
- package/build/src/EntityMutationInfo.js.map +1 -0
- package/build/{EntityMutationTriggerConfiguration.d.ts → src/EntityMutationTriggerConfiguration.d.ts} +3 -3
- package/build/src/EntityMutationTriggerConfiguration.js.map +1 -0
- package/build/{EntityMutationValidator.d.ts → src/EntityMutationValidator.d.ts} +3 -3
- package/build/{EntityMutationValidator.js → src/EntityMutationValidator.js} +2 -1
- package/build/src/EntityMutationValidator.js.map +1 -0
- package/build/{EntityMutatorFactory.d.ts → src/EntityMutatorFactory.d.ts} +15 -14
- package/build/{EntityMutatorFactory.js → src/EntityMutatorFactory.js} +6 -5
- package/build/src/EntityMutatorFactory.js.map +1 -0
- package/build/{EntityPrivacyPolicy.d.ts → src/EntityPrivacyPolicy.d.ts} +6 -6
- package/build/{EntityPrivacyPolicy.js → src/EntityPrivacyPolicy.js} +8 -11
- package/build/{EntityPrivacyPolicy.js.map → src/EntityPrivacyPolicy.js.map} +1 -1
- package/build/{EntityQueryContext.d.ts → src/EntityQueryContext.d.ts} +1 -1
- package/build/src/EntityQueryContext.js.map +1 -0
- package/build/{EntityQueryContextProvider.d.ts → src/EntityQueryContextProvider.d.ts} +2 -2
- package/build/{EntityQueryContextProvider.js → src/EntityQueryContextProvider.js} +2 -1
- package/build/src/EntityQueryContextProvider.js.map +1 -0
- package/build/{EntitySecondaryCacheLoader.d.ts → src/EntitySecondaryCacheLoader.d.ts} +5 -5
- package/build/{EntitySecondaryCacheLoader.js → src/EntitySecondaryCacheLoader.js} +2 -1
- package/build/src/EntitySecondaryCacheLoader.js.map +1 -0
- package/build/{EntityUpdater.d.ts → src/EntityUpdater.d.ts} +5 -5
- package/build/{EntityUpdater.js → src/EntityUpdater.js} +5 -7
- package/build/{EntityUpdater.js.map → src/EntityUpdater.js.map} +1 -1
- package/build/{GenericEntityCacheAdapter.d.ts → src/GenericEntityCacheAdapter.d.ts} +3 -3
- package/build/{GenericEntityCacheAdapter.js → src/GenericEntityCacheAdapter.js} +2 -1
- package/build/src/GenericEntityCacheAdapter.js.map +1 -0
- package/build/{GenericSecondaryEntityCache.d.ts → src/GenericSecondaryEntityCache.d.ts} +2 -2
- package/build/{GenericSecondaryEntityCache.js → src/GenericSecondaryEntityCache.js} +2 -1
- package/build/src/GenericSecondaryEntityCache.js.map +1 -0
- package/build/{IEntityCacheAdapter.d.ts → src/IEntityCacheAdapter.d.ts} +1 -1
- package/build/src/IEntityCacheAdapter.js.map +1 -0
- package/build/{IEntityCacheAdapterProvider.d.ts → src/IEntityCacheAdapterProvider.d.ts} +3 -3
- package/build/src/IEntityCacheAdapterProvider.js.map +1 -0
- package/build/{IEntityDatabaseAdapterProvider.d.ts → src/IEntityDatabaseAdapterProvider.d.ts} +3 -3
- package/build/src/IEntityDatabaseAdapterProvider.js.map +1 -0
- package/build/{IEntityGenericCacher.d.ts → src/IEntityGenericCacher.d.ts} +1 -1
- package/build/src/IEntityGenericCacher.js.map +1 -0
- package/build/{ReadonlyEntity.d.ts → src/ReadonlyEntity.d.ts} +8 -8
- package/build/{ReadonlyEntity.js → src/ReadonlyEntity.js} +9 -8
- package/build/src/ReadonlyEntity.js.map +1 -0
- package/build/{ViewerContext.d.ts → src/ViewerContext.d.ts} +5 -5
- package/build/{ViewerContext.js → src/ViewerContext.js} +4 -6
- package/build/{ViewerContext.js.map → src/ViewerContext.js.map} +1 -1
- package/build/{ViewerScopedEntityCompanion.d.ts → src/ViewerScopedEntityCompanion.d.ts} +9 -9
- package/build/{ViewerScopedEntityCompanion.js → src/ViewerScopedEntityCompanion.js} +6 -8
- package/build/{ViewerScopedEntityCompanion.js.map → src/ViewerScopedEntityCompanion.js.map} +1 -1
- package/build/{ViewerScopedEntityCompanionProvider.d.ts → src/ViewerScopedEntityCompanionProvider.d.ts} +6 -6
- package/build/{ViewerScopedEntityCompanionProvider.js → src/ViewerScopedEntityCompanionProvider.js} +4 -6
- package/build/src/ViewerScopedEntityCompanionProvider.js.map +1 -0
- package/build/{ViewerScopedEntityLoaderFactory.d.ts → src/ViewerScopedEntityLoaderFactory.d.ts} +6 -6
- package/build/{ViewerScopedEntityLoaderFactory.js → src/ViewerScopedEntityLoaderFactory.js} +2 -1
- package/build/src/ViewerScopedEntityLoaderFactory.js.map +1 -0
- package/build/{ViewerScopedEntityMutatorFactory.d.ts → src/ViewerScopedEntityMutatorFactory.d.ts} +9 -8
- package/build/{ViewerScopedEntityMutatorFactory.js → src/ViewerScopedEntityMutatorFactory.js} +6 -5
- package/build/src/ViewerScopedEntityMutatorFactory.js.map +1 -0
- package/build/src/entityUtils.js.map +1 -0
- package/build/{errors → src/errors}/EntityCacheAdapterError.d.ts +2 -2
- package/build/src/errors/EntityCacheAdapterError.js +13 -0
- package/build/src/errors/EntityCacheAdapterError.js.map +1 -0
- package/build/{errors → src/errors}/EntityDatabaseAdapterError.d.ts +2 -2
- package/build/{errors → src/errors}/EntityDatabaseAdapterError.js +4 -37
- package/build/src/errors/EntityDatabaseAdapterError.js.map +1 -0
- package/build/{errors → src/errors}/EntityError.d.ts +1 -1
- package/build/{errors → src/errors}/EntityError.js +2 -2
- package/build/src/errors/EntityError.js.map +1 -0
- package/build/{errors → src/errors}/EntityInvalidFieldValueError.d.ts +5 -5
- package/build/src/errors/EntityInvalidFieldValueError.js +13 -0
- package/build/src/errors/EntityInvalidFieldValueError.js.map +1 -0
- package/build/{errors → src/errors}/EntityNotAuthorizedError.d.ts +4 -4
- package/build/src/errors/EntityNotAuthorizedError.js +16 -0
- package/build/src/errors/EntityNotAuthorizedError.js.map +1 -0
- package/build/{errors → src/errors}/EntityNotFoundError.d.ts +5 -5
- package/build/src/errors/EntityNotFoundError.js +18 -0
- package/build/src/errors/EntityNotFoundError.js.map +1 -0
- package/build/src/index.d.ts +76 -0
- package/build/src/index.js +94 -0
- package/build/src/index.js.map +1 -0
- package/build/{internal → src/internal}/CompositeFieldHolder.d.ts +1 -1
- package/build/src/internal/CompositeFieldHolder.js.map +1 -0
- package/build/src/internal/CompositeFieldValueMap.js.map +1 -0
- package/build/{internal → src/internal}/EntityDataManager.d.ts +5 -5
- package/build/{internal → src/internal}/EntityDataManager.js +2 -1
- package/build/src/internal/EntityDataManager.js.map +1 -0
- package/build/{internal → src/internal}/EntityFieldTransformationUtils.d.ts +1 -1
- package/build/src/internal/EntityFieldTransformationUtils.js.map +1 -0
- package/build/{internal → src/internal}/EntityLoadInterfaces.d.ts +1 -1
- package/build/src/internal/EntityLoadInterfaces.js.map +1 -0
- package/build/{internal → src/internal}/EntityTableDataCoordinator.d.ts +9 -9
- package/build/{internal → src/internal}/EntityTableDataCoordinator.js +5 -7
- package/build/{internal → src/internal}/EntityTableDataCoordinator.js.map +1 -1
- package/build/{internal → src/internal}/ReadThroughEntityCache.d.ts +3 -3
- package/build/{internal → src/internal}/ReadThroughEntityCache.js +2 -2
- package/build/src/internal/ReadThroughEntityCache.js.map +1 -0
- package/build/{internal → src/internal}/SingleFieldHolder.d.ts +1 -1
- package/build/src/internal/SingleFieldHolder.js.map +1 -0
- package/build/{metrics → src/metrics}/EntityMetricsUtils.d.ts +1 -1
- package/build/src/metrics/EntityMetricsUtils.js.map +1 -0
- package/build/{metrics → src/metrics}/IEntityMetricsAdapter.d.ts +1 -1
- package/build/src/metrics/IEntityMetricsAdapter.js.map +1 -0
- package/build/{metrics → src/metrics}/NoOpEntityMetricsAdapter.d.ts +2 -2
- package/build/{metrics → src/metrics}/NoOpEntityMetricsAdapter.js +2 -1
- package/build/src/metrics/NoOpEntityMetricsAdapter.js.map +1 -0
- package/build/{rules → src/rules}/AlwaysAllowPrivacyPolicyRule.d.ts +4 -4
- package/build/src/rules/AlwaysAllowPrivacyPolicyRule.js +14 -0
- package/build/src/rules/AlwaysAllowPrivacyPolicyRule.js.map +1 -0
- package/build/{rules → src/rules}/AlwaysDenyPrivacyPolicyRule.d.ts +4 -4
- package/build/src/rules/AlwaysDenyPrivacyPolicyRule.js +14 -0
- package/build/src/rules/AlwaysDenyPrivacyPolicyRule.js.map +1 -0
- package/build/{rules → src/rules}/AlwaysSkipPrivacyPolicyRule.d.ts +4 -4
- package/build/src/rules/AlwaysSkipPrivacyPolicyRule.js +14 -0
- package/build/src/rules/AlwaysSkipPrivacyPolicyRule.js.map +1 -0
- package/build/{rules → src/rules}/PrivacyPolicyRule.d.ts +3 -3
- package/build/{rules → src/rules}/PrivacyPolicyRule.js +2 -2
- package/build/src/rules/PrivacyPolicyRule.js.map +1 -0
- package/build/{utils → src/utils}/EntityCreationUtils.d.ts +3 -3
- package/build/{utils → src/utils}/EntityCreationUtils.js +2 -5
- package/build/{utils → src/utils}/EntityCreationUtils.js.map +1 -1
- package/build/{utils → src/utils}/EntityPrivacyUtils.d.ts +4 -4
- package/build/{utils → src/utils}/EntityPrivacyUtils.js +4 -7
- package/build/{utils → src/utils}/EntityPrivacyUtils.js.map +1 -1
- package/build/src/utils/collections/SerializableKeyMap.js.map +1 -0
- package/build/src/utils/collections/maps.js.map +1 -0
- package/build/src/utils/collections/sets.js.map +1 -0
- package/build/{utils → src/utils}/mergeEntityMutationTriggerConfigurations.d.ts +3 -3
- package/build/src/utils/mergeEntityMutationTriggerConfigurations.js.map +1 -0
- package/package.json +14 -24
- package/src/AuthorizationResultBasedEntityAssociationLoader.ts +4 -4
- package/src/AuthorizationResultBasedEntityLoader.ts +13 -12
- package/src/AuthorizationResultBasedEntityMutator.ts +78 -63
- package/src/ComposedEntityCacheAdapter.ts +3 -3
- package/src/ComposedSecondaryEntityCache.ts +1 -1
- package/src/EnforcingEntityAssociationLoader.ts +6 -5
- package/src/EnforcingEntityCreator.ts +4 -4
- package/src/EnforcingEntityDeleter.ts +4 -4
- package/src/EnforcingEntityLoader.ts +5 -5
- package/src/EnforcingEntityUpdater.ts +4 -4
- package/src/Entity.ts +10 -10
- package/src/EntityAssociationLoader.ts +5 -5
- package/src/EntityCompanion.ts +10 -10
- package/src/EntityCompanionProvider.ts +13 -13
- package/src/EntityConfiguration.ts +3 -3
- package/src/EntityCreator.ts +5 -5
- package/src/EntityDatabaseAdapter.ts +3 -3
- package/src/EntityDeleter.ts +6 -6
- package/src/EntityFieldDefinition.ts +3 -3
- package/src/EntityFields.ts +13 -0
- package/src/EntityLoader.ts +7 -7
- package/src/EntityLoaderFactory.ts +9 -9
- package/src/EntityLoaderUtils.ts +7 -7
- package/src/EntityMutationInfo.ts +2 -2
- package/src/EntityMutationTriggerConfiguration.ts +3 -3
- package/src/EntityMutationValidator.ts +3 -3
- package/src/EntityMutatorFactory.ts +17 -12
- package/src/EntityPrivacyPolicy.ts +7 -6
- package/src/EntityQueryContext.ts +1 -1
- package/src/EntityQueryContextProvider.ts +3 -3
- package/src/EntitySecondaryCacheLoader.ts +5 -5
- package/src/EntityUpdater.ts +6 -6
- package/src/GenericEntityCacheAdapter.ts +3 -3
- package/src/GenericSecondaryEntityCache.ts +2 -2
- package/src/IEntityCacheAdapter.ts +1 -1
- package/src/IEntityCacheAdapterProvider.ts +3 -3
- package/src/IEntityDatabaseAdapterProvider.ts +3 -3
- package/src/IEntityGenericCacher.ts +1 -1
- package/src/ReadonlyEntity.ts +10 -10
- package/src/ViewerContext.ts +6 -6
- package/src/ViewerScopedEntityCompanion.ts +9 -9
- package/src/ViewerScopedEntityCompanionProvider.ts +6 -6
- package/src/ViewerScopedEntityLoaderFactory.ts +6 -6
- package/src/ViewerScopedEntityMutatorFactory.ts +11 -8
- package/src/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.ts +5 -4
- package/src/__tests__/AuthorizationResultBasedEntityLoader-constructor-test.ts +14 -18
- package/src/__tests__/AuthorizationResultBasedEntityLoader-test.ts +18 -16
- package/src/__tests__/ComposedCacheAdapter-test.ts +5 -3
- package/src/__tests__/ComposedSecondaryEntityCache-test.ts +2 -1
- package/src/__tests__/EnforcingEntityAssociationLoader-test.ts +4 -3
- package/src/__tests__/EnforcingEntityLoader-test.ts +4 -3
- package/src/__tests__/Entity-test.ts +8 -6
- package/src/__tests__/EntityAssociationLoader-test.ts +7 -5
- package/src/__tests__/EntityCommonUseCases-test.ts +10 -9
- package/src/__tests__/EntityCompanion-test.ts +13 -11
- package/src/__tests__/EntityCompanionProvider-test.ts +7 -5
- package/src/__tests__/EntityConfiguration-test.ts +3 -1
- package/src/__tests__/EntityDatabaseAdapter-test.ts +9 -7
- package/src/__tests__/EntityEdges-test.ts +10 -8
- package/src/__tests__/EntityFields-test.ts +15 -7
- package/src/__tests__/EntityLoader-test.ts +8 -6
- package/src/__tests__/EntityMutator-MutationCacheConsistency-test.ts +8 -6
- package/src/__tests__/EntityMutator-SingleCompositeFieldCacheConsistency-test.ts +5 -3
- package/src/__tests__/EntityMutator-test.ts +250 -45
- package/src/__tests__/EntityPrivacyPolicy-test.ts +19 -16
- package/src/__tests__/EntityQueryContext-test.ts +7 -6
- package/src/__tests__/EntitySecondaryCacheLoader-test.ts +5 -3
- package/src/__tests__/EntitySelfReferentialEdges-test.ts +7 -5
- package/src/__tests__/GenericEntityCacheAdapter-test.ts +4 -3
- package/src/__tests__/ReadonlyEntity-test.ts +10 -9
- package/src/__tests__/ViewerContext-test.ts +3 -1
- package/src/__tests__/ViewerScopedEntityCompanion-test.ts +10 -8
- package/src/__tests__/ViewerScopedEntityCompanionProvider-test.ts +7 -6
- package/src/__tests__/ViewerScopedEntityLoaderFactory-test.ts +5 -4
- package/src/__tests__/ViewerScopedEntityMutatorFactory-test.ts +8 -6
- package/src/__tests__/cases/TwoEntitySameTableDisjointRows-test.ts +15 -13
- package/src/__tests__/cases/TwoEntitySameTableOverlappingRows-test.ts +7 -5
- package/src/__tests__/entityUtils-test.ts +3 -2
- package/src/errors/EntityCacheAdapterError.ts +2 -2
- package/src/errors/EntityDatabaseAdapterError.ts +2 -2
- package/src/errors/EntityError.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 +6 -3
- package/src/index.ts +39 -54
- package/src/internal/CompositeFieldHolder.ts +2 -1
- package/src/internal/EntityDataManager.ts +7 -5
- package/src/internal/EntityFieldTransformationUtils.ts +1 -1
- package/src/internal/EntityLoadInterfaces.ts +1 -1
- package/src/internal/EntityTableDataCoordinator.ts +10 -10
- package/src/internal/ReadThroughEntityCache.ts +3 -3
- package/src/internal/SingleFieldHolder.ts +1 -1
- package/src/internal/__tests__/CompositeFieldHolder-test.ts +2 -0
- package/src/internal/__tests__/CompositeFieldValueMap-test.ts +2 -0
- package/src/internal/__tests__/EntityDataManager-test.ts +34 -31
- package/src/internal/__tests__/EntityFieldTransformationUtils-test.ts +5 -3
- package/src/internal/__tests__/ReadThroughEntityCache-test.ts +5 -4
- package/src/metrics/EntityMetricsUtils.ts +3 -2
- package/src/metrics/IEntityMetricsAdapter.ts +1 -1
- package/src/metrics/NoOpEntityMetricsAdapter.ts +3 -2
- package/src/rules/AlwaysAllowPrivacyPolicyRule.ts +4 -4
- package/src/rules/AlwaysDenyPrivacyPolicyRule.ts +4 -4
- package/src/rules/AlwaysSkipPrivacyPolicyRule.ts +4 -4
- package/src/rules/PrivacyPolicyRule.ts +3 -3
- package/src/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.ts +3 -3
- package/src/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.ts +3 -3
- package/src/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.ts +3 -3
- package/src/utils/EntityCreationUtils.ts +4 -4
- package/src/utils/EntityPrivacyUtils.ts +5 -5
- package/src/utils/__testfixtures__/PrivacyPolicyRuleTestUtils.ts +5 -3
- package/src/utils/__testfixtures__/SimpleTestEntity.ts +6 -6
- package/src/utils/__testfixtures__/StubCacheAdapter.ts +4 -4
- package/src/utils/__testfixtures__/StubDatabaseAdapter.ts +8 -7
- package/src/utils/__testfixtures__/StubDatabaseAdapterProvider.ts +5 -5
- package/src/utils/__testfixtures__/StubQueryContextProvider.ts +2 -2
- package/src/utils/__testfixtures__/TestEntity.ts +7 -7
- package/src/utils/__testfixtures__/TestEntity2.ts +6 -6
- package/src/utils/__testfixtures__/TestEntityWithMutationTriggers.ts +6 -10
- package/src/utils/__testfixtures__/TestViewerContext.ts +2 -2
- package/src/utils/__testfixtures__/createUnitTestEntityCompanionProvider.ts +5 -5
- package/src/utils/__testfixtures__/describeFieldTestCase.ts +3 -1
- package/src/utils/__tests__/EntityCreationUtils-test.ts +5 -3
- package/src/utils/__tests__/EntityPrivacyUtils-test.ts +15 -13
- package/src/utils/__tests__/canViewerDeleteAsync-edgeDeletionPermissionInferenceBehavior-test.ts +10 -8
- package/src/utils/__tests__/mergeEntityMutationTriggerConfigurations-test.ts +2 -0
- package/src/utils/collections/__tests__/SerializableKeyMap-test.ts +2 -0
- package/src/utils/collections/__tests__/maps-test.ts +3 -1
- package/src/utils/collections/__tests__/sets-test.ts +2 -0
- package/src/utils/mergeEntityMutationTriggerConfigurations.ts +3 -3
- package/LICENSE +0 -21
- package/build/AuthorizationResultBasedEntityAssociationLoader.js.map +0 -1
- package/build/AuthorizationResultBasedEntityLoader.js.map +0 -1
- package/build/AuthorizationResultBasedEntityMutator.js.map +0 -1
- package/build/ComposedEntityCacheAdapter.js.map +0 -1
- package/build/ComposedSecondaryEntityCache.js.map +0 -1
- package/build/EnforcingEntityAssociationLoader.js.map +0 -1
- package/build/EnforcingEntityCreator.js.map +0 -1
- package/build/EnforcingEntityDeleter.js.map +0 -1
- package/build/EnforcingEntityLoader.js.map +0 -1
- package/build/EnforcingEntityUpdater.js.map +0 -1
- package/build/Entity.js.map +0 -1
- package/build/EntityAssociationLoader.js.map +0 -1
- package/build/EntityCompanion.js.map +0 -1
- package/build/EntityCompanionProvider.js.map +0 -1
- package/build/EntityConfiguration.js.map +0 -1
- package/build/EntityDatabaseAdapter.js.map +0 -1
- package/build/EntityFieldDefinition.js.map +0 -1
- package/build/EntityFields.js.map +0 -1
- package/build/EntityLoaderFactory.js +0 -31
- package/build/EntityLoaderFactory.js.map +0 -1
- package/build/EntityLoaderUtils.js.map +0 -1
- package/build/EntityMutationInfo.js.map +0 -1
- package/build/EntityMutationTriggerConfiguration.js.map +0 -1
- package/build/EntityMutationValidator.js.map +0 -1
- package/build/EntityMutatorFactory.js.map +0 -1
- package/build/EntityQueryContext.js.map +0 -1
- package/build/EntityQueryContextProvider.js.map +0 -1
- package/build/EntitySecondaryCacheLoader.js.map +0 -1
- package/build/GenericEntityCacheAdapter.js.map +0 -1
- package/build/GenericSecondaryEntityCache.js.map +0 -1
- package/build/IEntityCacheAdapter.js.map +0 -1
- package/build/IEntityCacheAdapterProvider.js.map +0 -1
- package/build/IEntityDatabaseAdapterProvider.js.map +0 -1
- package/build/IEntityGenericCacher.js.map +0 -1
- package/build/ReadonlyEntity.js.map +0 -1
- package/build/ViewerScopedEntityCompanionProvider.js.map +0 -1
- package/build/ViewerScopedEntityLoaderFactory.js.map +0 -1
- package/build/ViewerScopedEntityMutatorFactory.js.map +0 -1
- package/build/entityUtils.js.map +0 -1
- package/build/errors/EntityCacheAdapterError.js +0 -46
- package/build/errors/EntityCacheAdapterError.js.map +0 -1
- package/build/errors/EntityDatabaseAdapterError.js.map +0 -1
- package/build/errors/EntityError.js.map +0 -1
- package/build/errors/EntityInvalidFieldValueError.js +0 -45
- package/build/errors/EntityInvalidFieldValueError.js.map +0 -1
- package/build/errors/EntityNotAuthorizedError.js +0 -48
- package/build/errors/EntityNotAuthorizedError.js.map +0 -1
- package/build/errors/EntityNotFoundError.js +0 -50
- package/build/errors/EntityNotFoundError.js.map +0 -1
- package/build/index.d.ts +0 -91
- package/build/index.js +0 -155
- package/build/index.js.map +0 -1
- package/build/internal/CompositeFieldHolder.js.map +0 -1
- package/build/internal/CompositeFieldValueMap.js.map +0 -1
- package/build/internal/EntityDataManager.js.map +0 -1
- package/build/internal/EntityFieldTransformationUtils.js.map +0 -1
- package/build/internal/EntityLoadInterfaces.js.map +0 -1
- package/build/internal/ReadThroughEntityCache.js.map +0 -1
- package/build/internal/SingleFieldHolder.js.map +0 -1
- package/build/metrics/EntityMetricsUtils.js.map +0 -1
- package/build/metrics/IEntityMetricsAdapter.js.map +0 -1
- package/build/metrics/NoOpEntityMetricsAdapter.js.map +0 -1
- package/build/rules/AlwaysAllowPrivacyPolicyRule.js +0 -46
- package/build/rules/AlwaysAllowPrivacyPolicyRule.js.map +0 -1
- package/build/rules/AlwaysDenyPrivacyPolicyRule.js +0 -46
- package/build/rules/AlwaysDenyPrivacyPolicyRule.js.map +0 -1
- package/build/rules/AlwaysSkipPrivacyPolicyRule.js +0 -46
- package/build/rules/AlwaysSkipPrivacyPolicyRule.js.map +0 -1
- package/build/rules/PrivacyPolicyRule.js.map +0 -1
- package/build/tsconfig.build.tsbuildinfo +0 -1
- package/build/utils/collections/SerializableKeyMap.js.map +0 -1
- package/build/utils/collections/maps.js.map +0 -1
- package/build/utils/collections/sets.js.map +0 -1
- package/build/utils/mergeEntityMutationTriggerConfigurations.js.map +0 -1
- /package/build/{EntityFieldDefinition.js → src/EntityFieldDefinition.js} +0 -0
- /package/build/{EntityMutationInfo.js → src/EntityMutationInfo.js} +0 -0
- /package/build/{EntityMutationTriggerConfiguration.js → src/EntityMutationTriggerConfiguration.js} +0 -0
- /package/build/{EntityQueryContext.js → src/EntityQueryContext.js} +0 -0
- /package/build/{IEntityCacheAdapter.js → src/IEntityCacheAdapter.js} +0 -0
- /package/build/{IEntityCacheAdapterProvider.js → src/IEntityCacheAdapterProvider.js} +0 -0
- /package/build/{IEntityDatabaseAdapterProvider.js → src/IEntityDatabaseAdapterProvider.js} +0 -0
- /package/build/{IEntityGenericCacher.js → src/IEntityGenericCacher.js} +0 -0
- /package/build/{entityUtils.d.ts → src/entityUtils.d.ts} +0 -0
- /package/build/{entityUtils.js → src/entityUtils.js} +0 -0
- /package/build/{internal → src/internal}/CompositeFieldHolder.js +0 -0
- /package/build/{internal → src/internal}/CompositeFieldValueMap.d.ts +0 -0
- /package/build/{internal → src/internal}/CompositeFieldValueMap.js +0 -0
- /package/build/{internal → src/internal}/EntityFieldTransformationUtils.js +0 -0
- /package/build/{internal → src/internal}/EntityLoadInterfaces.js +0 -0
- /package/build/{internal → src/internal}/SingleFieldHolder.js +0 -0
- /package/build/{metrics → src/metrics}/EntityMetricsUtils.js +0 -0
- /package/build/{metrics → src/metrics}/IEntityMetricsAdapter.js +0 -0
- /package/build/{utils → src/utils}/collections/SerializableKeyMap.d.ts +0 -0
- /package/build/{utils → src/utils}/collections/SerializableKeyMap.js +0 -0
- /package/build/{utils → src/utils}/collections/maps.d.ts +0 -0
- /package/build/{utils → src/utils}/collections/maps.js +0 -0
- /package/build/{utils → src/utils}/collections/sets.d.ts +0 -0
- /package/build/{utils → src/utils}/collections/sets.js +0 -0
- /package/build/{utils → src/utils}/mergeEntityMutationTriggerConfigurations.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EntityDatabaseAdapter.js","sourceRoot":"","sources":["../../src/EntityDatabaseAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { AuthorizationResultBasedDeleteMutator } from './AuthorizationResultBasedEntityMutator';
|
|
2
|
-
import EnforcingEntityDeleter from './EnforcingEntityDeleter';
|
|
2
|
+
import { EnforcingEntityDeleter } from './EnforcingEntityDeleter';
|
|
3
3
|
import { IEntityClass } from './Entity';
|
|
4
|
-
import EntityPrivacyPolicy from './EntityPrivacyPolicy';
|
|
4
|
+
import { EntityPrivacyPolicy } from './EntityPrivacyPolicy';
|
|
5
5
|
import { EntityQueryContext } from './EntityQueryContext';
|
|
6
|
-
import ReadonlyEntity from './ReadonlyEntity';
|
|
7
|
-
import ViewerContext from './ViewerContext';
|
|
6
|
+
import { ReadonlyEntity } from './ReadonlyEntity';
|
|
7
|
+
import { ViewerContext } from './ViewerContext';
|
|
8
8
|
/**
|
|
9
9
|
* The primary interface for deleting entities.
|
|
10
10
|
*/
|
|
11
|
-
export
|
|
11
|
+
export declare class EntityDeleter<TFields extends Record<string, any>, TIDField extends keyof NonNullable<Pick<TFields, TSelectedFields>>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TIDField, TViewerContext, TSelectedFields>, TPrivacyPolicy extends EntityPrivacyPolicy<TFields, TIDField, TViewerContext, TEntity, TSelectedFields>, TSelectedFields extends keyof TFields> {
|
|
12
12
|
private readonly existingEntity;
|
|
13
13
|
private readonly queryContext;
|
|
14
14
|
private readonly entityClass;
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
|
|
3
|
+
exports.EntityDeleter = void 0;
|
|
4
|
+
const EnforcingEntityDeleter_1 = require("./EnforcingEntityDeleter");
|
|
7
5
|
/**
|
|
8
6
|
* The primary interface for deleting entities.
|
|
9
7
|
*/
|
|
@@ -21,7 +19,7 @@ class EntityDeleter {
|
|
|
21
19
|
* guaranteed to be successful and will throw otherwise.
|
|
22
20
|
*/
|
|
23
21
|
enforcing() {
|
|
24
|
-
return new EnforcingEntityDeleter_1.
|
|
22
|
+
return new EnforcingEntityDeleter_1.EnforcingEntityDeleter(this.withAuthorizationResults());
|
|
25
23
|
}
|
|
26
24
|
/**
|
|
27
25
|
* Authorization-result-based entity deleter. All deletes through this
|
|
@@ -33,8 +31,8 @@ class EntityDeleter {
|
|
|
33
31
|
.getViewerContext()
|
|
34
32
|
.getViewerScopedEntityCompanionForClass(this.entityClass)
|
|
35
33
|
.getMutatorFactory()
|
|
36
|
-
.forDelete(this.existingEntity, this.queryContext);
|
|
34
|
+
.forDelete(this.existingEntity, this.queryContext, /* cascadingDeleteCause */ null);
|
|
37
35
|
}
|
|
38
36
|
}
|
|
39
|
-
exports.
|
|
37
|
+
exports.EntityDeleter = EntityDeleter;
|
|
40
38
|
//# sourceMappingURL=EntityDeleter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityDeleter.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"EntityDeleter.js","sourceRoot":"","sources":["../../src/EntityDeleter.ts"],"names":[],"mappings":";;;AACA,qEAAkE;AAOlE;;GAEG;AACH,MAAa,aAAa;IAeL;IACA;IACA;IAHnB,YACmB,cAAuB,EACvB,YAAgC,EAChC,WAOhB;QATgB,mBAAc,GAAd,cAAc,CAAS;QACvB,iBAAY,GAAZ,YAAY,CAAoB;QAChC,gBAAW,GAAX,WAAW,CAO3B;IACA,CAAC;IAEJ;;;OAGG;IACH,SAAS;QAQP,OAAO,IAAI,+CAAsB,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC;IACrE,CAAC;IAED;;;;OAIG;IACH,wBAAwB;QAQtB,OAAO,IAAI,CAAC,cAAc;aACvB,gBAAgB,EAAE;aAClB,sCAAsC,CAAC,IAAI,CAAC,WAAW,CAAC;aACxD,iBAAiB,EAAE;aACnB,SAAS,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,YAAY,EAAE,0BAA0B,CAAC,IAAI,CAAC,CAAC;IACxF,CAAC;CACF;AA7DD,sCA6DC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { IEntityClass } from './Entity';
|
|
2
|
-
import EntityPrivacyPolicy from './EntityPrivacyPolicy';
|
|
3
|
-
import ReadonlyEntity from './ReadonlyEntity';
|
|
4
|
-
import ViewerContext from './ViewerContext';
|
|
2
|
+
import { EntityPrivacyPolicy } from './EntityPrivacyPolicy';
|
|
3
|
+
import { ReadonlyEntity } from './ReadonlyEntity';
|
|
4
|
+
import { ViewerContext } from './ViewerContext';
|
|
5
5
|
export declare enum EntityEdgeDeletionBehavior {
|
|
6
6
|
/**
|
|
7
7
|
* Invalidate the cache for all entities that reference the entity
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EntityFieldDefinition.js","sourceRoot":"","sources":["../../src/EntityFieldDefinition.ts"],"names":[],"mappings":";;;AAKA,IAAY,0BA+BX;AA/BD,WAAY,0BAA0B;IACpC;;;;;;OAMG;IACH,2IAAoC,CAAA;IAEpC;;;;;OAKG;IACH,+HAA8B,CAAA;IAE9B;;;;OAIG;IACH,+FAAc,CAAA;IAEd;;;;OAIG;IACH,mFAAQ,CAAA;AACV,CAAC,EA/BW,0BAA0B,0CAA1B,0BAA0B,QA+BrC;AAED,IAAY,gDA2BX;AA3BD,WAAY,gDAAgD;IAC1D;;;;;;;OAOG;IACH,uHAAI,CAAA;IAEJ;;;;;;;;;;;;;;OAcG;IACH,6IAAe,CAAA;AACjB,CAAC,EA3BW,gDAAgD,gEAAhD,gDAAgD,QA2B3D;AAuGD;;;GAGG;AACH,MAAsB,qBAAqB;IAChC,UAAU,CAAS;IACnB,KAAK,CAAU;IACf,WAAW,CAAwE;IAE5F,kGAAkG;IAClG,yCAAyC;IACtB,iBAAiB,CAAwB;IAE5D;;OAEG;IACH,YACE,OAEgC;QAEhC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;QACpC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACI,kBAAkB,CAAC,KAA2B;QACnD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;CAEF;AAnCD,sDAmCC"}
|
|
@@ -59,6 +59,7 @@ export declare class EnumField<TRequireExplicitCache extends boolean> extends En
|
|
|
59
59
|
}
|
|
60
60
|
/**
|
|
61
61
|
* EntityFieldDefinition for a enum column with a strict typescript enum type.
|
|
62
|
+
* The strict version checks that the value of the field adheres to a particular typescript enum
|
|
62
63
|
*/
|
|
63
64
|
export declare class StrictEnumField<T extends object, TRequireExplicitCache extends boolean> extends EnumField<TRequireExplicitCache> {
|
|
64
65
|
private readonly enum;
|
|
@@ -69,3 +70,9 @@ export declare class StrictEnumField<T extends object, TRequireExplicitCache ext
|
|
|
69
70
|
});
|
|
70
71
|
protected validateInputValueInternal(value: string | number): boolean;
|
|
71
72
|
}
|
|
73
|
+
/**
|
|
74
|
+
* EntityFieldDefinition for a column with a JS Buffer type.
|
|
75
|
+
*/
|
|
76
|
+
export declare class BufferField<TRequireExplicitCache extends boolean> extends EntityFieldDefinition<Buffer, TRequireExplicitCache> {
|
|
77
|
+
protected validateInputValueInternal(value: Buffer): boolean;
|
|
78
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.StrictEnumField = exports.EnumField = exports.JSONObjectField = exports.StringArrayField = exports.FloatField = exports.IntField = exports.BooleanField = exports.DateField = exports.UUIDField = exports.StringField = void 0;
|
|
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
4
|
const EntityFieldDefinition_1 = require("./EntityFieldDefinition");
|
|
5
5
|
// Use our own regex since the `uuid` package doesn't support validating UUIDv6/7/8 yet
|
|
6
6
|
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)$/i;
|
|
@@ -91,6 +91,7 @@ class EnumField extends EntityFieldDefinition_1.EntityFieldDefinition {
|
|
|
91
91
|
exports.EnumField = EnumField;
|
|
92
92
|
/**
|
|
93
93
|
* EntityFieldDefinition for a enum column with a strict typescript enum type.
|
|
94
|
+
* The strict version checks that the value of the field adheres to a particular typescript enum
|
|
94
95
|
*/
|
|
95
96
|
class StrictEnumField extends EnumField {
|
|
96
97
|
enum;
|
|
@@ -103,4 +104,13 @@ class StrictEnumField extends EnumField {
|
|
|
103
104
|
}
|
|
104
105
|
}
|
|
105
106
|
exports.StrictEnumField = StrictEnumField;
|
|
107
|
+
/**
|
|
108
|
+
* EntityFieldDefinition for a column with a JS Buffer type.
|
|
109
|
+
*/
|
|
110
|
+
class BufferField extends EntityFieldDefinition_1.EntityFieldDefinition {
|
|
111
|
+
validateInputValueInternal(value) {
|
|
112
|
+
return Buffer.isBuffer(value);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
exports.BufferField = BufferField;
|
|
106
116
|
//# sourceMappingURL=EntityFields.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EntityFields.js","sourceRoot":"","sources":["../../src/EntityFields.ts"],"names":[],"mappings":";;;AAAA,mEAIiC;AAEjC,uFAAuF;AACvF,MAAM,UAAU,GACd,0JAA0J,CAAC;AAE7J;;GAEG;AACH,MAAa,WAAmD,SAAQ,6CAGvE;IACW,0BAA0B,CAAC,KAAa;QAChD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;IACnC,CAAC;CACF;AAPD,kCAOC;AAED;;;GAGG;AACH,MAAa,SAEX,SAAQ,WAAkC;IACvB,0BAA0B,CAAC,KAAa;QACzD,OAAO,KAAK,CAAC,0BAA0B,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3E,CAAC;CACF;AAND,8BAMC;AAED;;GAEG;AACH,MAAa,SAAiD,SAAQ,6CAGrE;IACW,0BAA0B,CAAC,KAAW;QAC9C,OAAO,KAAK,YAAY,IAAI,CAAC;IAC/B,CAAC;CACF;AAPD,8BAOC;AAED;;GAEG;AACH,MAAa,YAAoD,SAAQ,6CAGxE;IACW,0BAA0B,CAAC,KAAc;QACjD,OAAO,OAAO,KAAK,KAAK,SAAS,CAAC;IACpC,CAAC;CACF;AAPD,oCAOC;AAED;;;GAGG;AACH,MAAa,QAAgD,SAAQ,6CAGpE;IACW,0BAA0B,CAAC,KAAa;QAChD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9D,CAAC;CACF;AAPD,4BAOC;AAED;;;GAGG;AACH,MAAa,UAAkD,SAAQ,6CAGtE;IACW,0BAA0B,CAAC,KAAa;QAChD,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC;IACnC,CAAC;CACF;AAPD,gCAOC;AAED;;;GAGG;AACH,MAAa,gBAAwD,SAAQ,6CAG5E;IACW,0BAA0B,CAAC,KAAe;QAClD,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC;IACzF,CAAC;CACF;AAPD,4CAOC;AAED;;GAEG;AACH,MAAa,eAAuD,SAAQ,6CAG3E;IACW,0BAA0B,CAAC,KAAa;QAChD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC;CACF;AAPD,0CAOC;AAED;;GAEG;AACH,MAAa,SAAiD,SAAQ,6CAGrE;IACW,0BAA0B,CAAC,KAAsB;QACzD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,CAAC;IAChE,CAAC;CACF;AAPD,8BAOC;AAED;;;GAGG;AACH,MAAa,eAGX,SAAQ,SAAgC;IACvB,IAAI,CAAI;IACzB,YACE,OAE8C;QAE9C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;IAEkB,0BAA0B,CAAC,KAAsB;QAClE,OAAO,KAAK,CAAC,0BAA0B,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7F,CAAC;CACF;AAjBD,0CAiBC;AAED;;GAEG;AACH,MAAa,WAAmD,SAAQ,6CAGvE;IACW,0BAA0B,CAAC,KAAa;QAChD,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;CACF;AAPD,kCAOC"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import AuthorizationResultBasedEntityLoader from './AuthorizationResultBasedEntityLoader';
|
|
2
|
-
import EnforcingEntityLoader from './EnforcingEntityLoader';
|
|
1
|
+
import { AuthorizationResultBasedEntityLoader } from './AuthorizationResultBasedEntityLoader';
|
|
2
|
+
import { EnforcingEntityLoader } from './EnforcingEntityLoader';
|
|
3
3
|
import { IEntityClass } from './Entity';
|
|
4
|
-
import EntityLoaderUtils from './EntityLoaderUtils';
|
|
5
|
-
import EntityPrivacyPolicy from './EntityPrivacyPolicy';
|
|
4
|
+
import { EntityLoaderUtils } from './EntityLoaderUtils';
|
|
5
|
+
import { EntityPrivacyPolicy } from './EntityPrivacyPolicy';
|
|
6
6
|
import { EntityQueryContext } from './EntityQueryContext';
|
|
7
|
-
import ReadonlyEntity from './ReadonlyEntity';
|
|
8
|
-
import ViewerContext from './ViewerContext';
|
|
7
|
+
import { ReadonlyEntity } from './ReadonlyEntity';
|
|
8
|
+
import { ViewerContext } from './ViewerContext';
|
|
9
9
|
/**
|
|
10
10
|
* The primary interface for loading entities. All normal loads are batched,
|
|
11
11
|
* cached, and authorized against the entity's EntityPrivacyPolicy.
|
|
12
12
|
*/
|
|
13
|
-
export
|
|
13
|
+
export declare class EntityLoader<TFields extends Record<string, any>, TIDField extends keyof NonNullable<Pick<TFields, TSelectedFields>>, TViewerContext extends ViewerContext, TViewerContext2 extends TViewerContext, TEntity extends ReadonlyEntity<TFields, TIDField, TViewerContext, TSelectedFields>, TPrivacyPolicy extends EntityPrivacyPolicy<TFields, TIDField, TViewerContext, TEntity, TSelectedFields>, TSelectedFields extends keyof TFields> {
|
|
14
14
|
private readonly viewerContext;
|
|
15
15
|
private readonly queryContext;
|
|
16
16
|
private readonly entityClass;
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
|
|
3
|
+
exports.EntityLoader = void 0;
|
|
4
|
+
const EnforcingEntityLoader_1 = require("./EnforcingEntityLoader");
|
|
7
5
|
/**
|
|
8
6
|
* The primary interface for loading entities. All normal loads are batched,
|
|
9
7
|
* cached, and authorized against the entity's EntityPrivacyPolicy.
|
|
@@ -23,7 +21,7 @@ class EntityLoader {
|
|
|
23
21
|
* and will throw otherwise.
|
|
24
22
|
*/
|
|
25
23
|
enforcing() {
|
|
26
|
-
return new EnforcingEntityLoader_1.
|
|
24
|
+
return new EnforcingEntityLoader_1.EnforcingEntityLoader(this.withAuthorizationResults());
|
|
27
25
|
}
|
|
28
26
|
/**
|
|
29
27
|
* Authorization-result-based entity loader. All loads through this
|
|
@@ -44,5 +42,5 @@ class EntityLoader {
|
|
|
44
42
|
return this.withAuthorizationResults().utils;
|
|
45
43
|
}
|
|
46
44
|
}
|
|
47
|
-
exports.
|
|
45
|
+
exports.EntityLoader = EntityLoader;
|
|
48
46
|
//# sourceMappingURL=EntityLoader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityLoader.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"EntityLoader.js","sourceRoot":"","sources":["../../src/EntityLoader.ts"],"names":[],"mappings":";;;AACA,mEAAgE;AAQhE;;;GAGG;AACH,MAAa,YAAY;IAgBJ;IACA;IACA;IAHnB,YACmB,aAA8B,EAC9B,YAAgC,EAChC,WAOhB;QATgB,kBAAa,GAAb,aAAa,CAAiB;QAC9B,iBAAY,GAAZ,YAAY,CAAoB;QAChC,gBAAW,GAAX,WAAW,CAO3B;IACA,CAAC;IAEJ;;;;OAIG;IACH,SAAS;QAQP,OAAO,IAAI,6CAAqB,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC;IACpE,CAAC;IAED;;;;OAIG;IACH,wBAAwB;QAQtB,OAAO,IAAI,CAAC,aAAa;aACtB,sCAAsC,CAAC,IAAI,CAAC,WAAW,CAAC;aACxD,gBAAgB,EAAE;aAClB,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC,CAAC;IACrF,CAAC;IAED;;;OAGG;IACI,KAAK;QAQV,OAAO,IAAI,CAAC,wBAAwB,EAAE,CAAC,KAAK,CAAC;IAC/C,CAAC;CACF;AA7ED,oCA6EC"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import AuthorizationResultBasedEntityLoader from './AuthorizationResultBasedEntityLoader';
|
|
2
|
-
import EntityCompanion from './EntityCompanion';
|
|
3
|
-
import EntityPrivacyPolicy,
|
|
1
|
+
import { AuthorizationResultBasedEntityLoader } from './AuthorizationResultBasedEntityLoader';
|
|
2
|
+
import { EntityCompanion } from './EntityCompanion';
|
|
3
|
+
import { EntityPrivacyPolicy, EntityPrivacyPolicyEvaluationContext } from './EntityPrivacyPolicy';
|
|
4
4
|
import { EntityQueryContext } from './EntityQueryContext';
|
|
5
|
-
import ReadonlyEntity from './ReadonlyEntity';
|
|
6
|
-
import ViewerContext from './ViewerContext';
|
|
7
|
-
import EntityDataManager from './internal/EntityDataManager';
|
|
8
|
-
import IEntityMetricsAdapter from './metrics/IEntityMetricsAdapter';
|
|
5
|
+
import { ReadonlyEntity } from './ReadonlyEntity';
|
|
6
|
+
import { ViewerContext } from './ViewerContext';
|
|
7
|
+
import { EntityDataManager } from './internal/EntityDataManager';
|
|
8
|
+
import { IEntityMetricsAdapter } from './metrics/IEntityMetricsAdapter';
|
|
9
9
|
/**
|
|
10
10
|
* The primary entry point for loading entities.
|
|
11
11
|
*/
|
|
12
|
-
export
|
|
12
|
+
export declare class EntityLoaderFactory<TFields extends Record<string, any>, TIDField extends keyof NonNullable<Pick<TFields, TSelectedFields>>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TIDField, TViewerContext, TSelectedFields>, TPrivacyPolicy extends EntityPrivacyPolicy<TFields, TIDField, TViewerContext, TEntity, TSelectedFields>, TSelectedFields extends keyof TFields> {
|
|
13
13
|
private readonly entityCompanion;
|
|
14
14
|
private readonly dataManager;
|
|
15
15
|
protected readonly metricsAdapter: IEntityMetricsAdapter;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EntityLoaderFactory = void 0;
|
|
4
|
+
const AuthorizationResultBasedEntityLoader_1 = require("./AuthorizationResultBasedEntityLoader");
|
|
5
|
+
const EntityLoaderUtils_1 = require("./EntityLoaderUtils");
|
|
6
|
+
/**
|
|
7
|
+
* The primary entry point for loading entities.
|
|
8
|
+
*/
|
|
9
|
+
class EntityLoaderFactory {
|
|
10
|
+
entityCompanion;
|
|
11
|
+
dataManager;
|
|
12
|
+
metricsAdapter;
|
|
13
|
+
constructor(entityCompanion, dataManager, metricsAdapter) {
|
|
14
|
+
this.entityCompanion = entityCompanion;
|
|
15
|
+
this.dataManager = dataManager;
|
|
16
|
+
this.metricsAdapter = metricsAdapter;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Vend loader for loading an entity in a given query context.
|
|
20
|
+
* @param viewerContext - viewer context of loading user
|
|
21
|
+
* @param queryContext - query context in which to perform the load
|
|
22
|
+
*/
|
|
23
|
+
forLoad(viewerContext, queryContext, privacyPolicyEvaluationContext) {
|
|
24
|
+
const utils = new EntityLoaderUtils_1.EntityLoaderUtils(viewerContext, queryContext, privacyPolicyEvaluationContext, this.entityCompanion.entityCompanionDefinition.entityConfiguration, this.entityCompanion.entityCompanionDefinition.entityClass, this.entityCompanion.entityCompanionDefinition.entitySelectedFields, this.entityCompanion.privacyPolicy, this.dataManager, this.metricsAdapter);
|
|
25
|
+
return new AuthorizationResultBasedEntityLoader_1.AuthorizationResultBasedEntityLoader(queryContext, this.entityCompanion.entityCompanionDefinition.entityConfiguration, this.entityCompanion.entityCompanionDefinition.entityClass, this.dataManager, this.metricsAdapter, utils);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.EntityLoaderFactory = EntityLoaderFactory;
|
|
29
|
+
//# sourceMappingURL=EntityLoaderFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EntityLoaderFactory.js","sourceRoot":"","sources":["../../src/EntityLoaderFactory.ts"],"names":[],"mappings":";;;AAAA,iGAA8F;AAE9F,2DAAwD;AAQxD;;GAEG;AACH,MAAa,mBAAmB;IAeX;IAQA;IACE;IAVrB,YACmB,eAOhB,EACgB,WAAiD,EAC/C,cAAqC;QATvC,oBAAe,GAAf,eAAe,CAO/B;QACgB,gBAAW,GAAX,WAAW,CAAsC;QAC/C,mBAAc,GAAd,cAAc,CAAuB;IACvD,CAAC;IAEJ;;;;OAIG;IACH,OAAO,CACL,aAA6B,EAC7B,YAAgC,EAChC,8BAMC;QASD,MAAM,KAAK,GAAG,IAAI,qCAAiB,CACjC,aAAa,EACb,YAAY,EACZ,8BAA8B,EAC9B,IAAI,CAAC,eAAe,CAAC,yBAAyB,CAAC,mBAAmB,EAClE,IAAI,CAAC,eAAe,CAAC,yBAAyB,CAAC,WAAW,EAC1D,IAAI,CAAC,eAAe,CAAC,yBAAyB,CAAC,oBAAoB,EACnE,IAAI,CAAC,eAAe,CAAC,aAAa,EAClC,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,cAAc,CACpB,CAAC;QAEF,OAAO,IAAI,2EAAoC,CAC7C,YAAY,EACZ,IAAI,CAAC,eAAe,CAAC,yBAAyB,CAAC,mBAAmB,EAClE,IAAI,CAAC,eAAe,CAAC,yBAAyB,CAAC,WAAW,EAC1D,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,cAAc,EACnB,KAAK,CACN,CAAC;IACJ,CAAC;CACF;AAvED,kDAuEC"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { Result } from '@expo/results';
|
|
2
2
|
import { IEntityClass } from './Entity';
|
|
3
|
-
import EntityConfiguration from './EntityConfiguration';
|
|
4
|
-
import EntityPrivacyPolicy,
|
|
3
|
+
import { EntityConfiguration } from './EntityConfiguration';
|
|
4
|
+
import { EntityPrivacyPolicy, EntityPrivacyPolicyEvaluationContext } from './EntityPrivacyPolicy';
|
|
5
5
|
import { EntityQueryContext, EntityTransactionalQueryContext } from './EntityQueryContext';
|
|
6
|
-
import ReadonlyEntity from './ReadonlyEntity';
|
|
7
|
-
import ViewerContext from './ViewerContext';
|
|
8
|
-
import EntityDataManager from './internal/EntityDataManager';
|
|
9
|
-
import IEntityMetricsAdapter from './metrics/IEntityMetricsAdapter';
|
|
6
|
+
import { ReadonlyEntity } from './ReadonlyEntity';
|
|
7
|
+
import { ViewerContext } from './ViewerContext';
|
|
8
|
+
import { EntityDataManager } from './internal/EntityDataManager';
|
|
9
|
+
import { IEntityMetricsAdapter } from './metrics/IEntityMetricsAdapter';
|
|
10
10
|
/**
|
|
11
11
|
* Entity loader utilities for things like invalidation, entity construction, and authorization.
|
|
12
12
|
* Methods are exposed publicly since in rare cases they may need to be called manually.
|
|
13
13
|
*/
|
|
14
|
-
export
|
|
14
|
+
export declare class EntityLoaderUtils<TFields extends Record<string, any>, TIDField extends keyof NonNullable<Pick<TFields, TSelectedFields>>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TIDField, TViewerContext, TSelectedFields>, TPrivacyPolicy extends EntityPrivacyPolicy<TFields, TIDField, TViewerContext, TEntity, TSelectedFields>, TSelectedFields extends keyof TFields> {
|
|
15
15
|
private readonly viewerContext;
|
|
16
16
|
private readonly queryContext;
|
|
17
17
|
private readonly privacyPolicyEvaluationContext;
|
|
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.EntityLoaderUtils = void 0;
|
|
6
7
|
const results_1 = require("@expo/results");
|
|
7
8
|
const nullthrows_1 = __importDefault(require("nullthrows"));
|
|
8
9
|
const entityUtils_1 = require("./entityUtils");
|
|
@@ -146,5 +147,5 @@ class EntityLoaderUtils {
|
|
|
146
147
|
});
|
|
147
148
|
}
|
|
148
149
|
}
|
|
149
|
-
exports.
|
|
150
|
+
exports.EntityLoaderUtils = EntityLoaderUtils;
|
|
150
151
|
//# sourceMappingURL=EntityLoaderUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EntityLoaderUtils.js","sourceRoot":"","sources":["../../src/EntityLoaderUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EntityMutationInfo.js","sourceRoot":"","sources":["../../src/EntityMutationInfo.ts"],"names":[],"mappings":";;;AAGA,IAAY,kBAIX;AAJD,WAAY,kBAAkB;IAC5B,+DAAM,CAAA;IACN,+DAAM,CAAA;IACN,+DAAM,CAAA;AACR,CAAC,EAJW,kBAAkB,kCAAlB,kBAAkB,QAI7B"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { EntityTriggerMutationInfo } from './EntityMutationInfo';
|
|
2
2
|
import { EntityTransactionalQueryContext } from './EntityQueryContext';
|
|
3
|
-
import ReadonlyEntity from './ReadonlyEntity';
|
|
4
|
-
import ViewerContext from './ViewerContext';
|
|
3
|
+
import { ReadonlyEntity } from './ReadonlyEntity';
|
|
4
|
+
import { ViewerContext } from './ViewerContext';
|
|
5
5
|
/**
|
|
6
6
|
* Interface to define trigger behavior for entities.
|
|
7
7
|
*/
|
|
8
|
-
export
|
|
8
|
+
export interface EntityMutationTriggerConfiguration<TFields extends Record<string, any>, TIDField extends keyof NonNullable<Pick<TFields, TSelectedFields>>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TIDField, TViewerContext, TSelectedFields>, TSelectedFields extends keyof TFields = keyof TFields> {
|
|
9
9
|
/**
|
|
10
10
|
* Trigger set that runs within the transaction but before the entity is created in the database.
|
|
11
11
|
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EntityMutationTriggerConfiguration.js","sourceRoot":"","sources":["../../src/EntityMutationTriggerConfiguration.ts"],"names":[],"mappings":";;;AAqGA;;;GAGG;AACH,MAAsB,qBAAqB;CAmB1C;AAnBD,sDAmBC;AAED;;;GAGG;AACH,MAAsB,qCAAqC;CAkB1D;AAlBD,sFAkBC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { EntityValidatorMutationInfo } from './EntityMutationInfo';
|
|
2
2
|
import { EntityTransactionalQueryContext } from './EntityQueryContext';
|
|
3
|
-
import ReadonlyEntity from './ReadonlyEntity';
|
|
4
|
-
import ViewerContext from './ViewerContext';
|
|
3
|
+
import { ReadonlyEntity } from './ReadonlyEntity';
|
|
4
|
+
import { ViewerContext } from './ViewerContext';
|
|
5
5
|
/**
|
|
6
6
|
* A validator is a way to specify entity mutation validation that runs within the
|
|
7
7
|
* same transaction as the mutation itself before creating or updating an entity.
|
|
8
8
|
*/
|
|
9
|
-
export
|
|
9
|
+
export declare abstract class EntityMutationValidator<TFields extends Record<string, any>, TIDField extends keyof NonNullable<Pick<TFields, TSelectedFields>>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TIDField, TViewerContext, TSelectedFields>, TSelectedFields extends keyof TFields = keyof TFields> {
|
|
10
10
|
abstract executeAsync(viewerContext: TViewerContext, queryContext: EntityTransactionalQueryContext, entity: TEntity, mutationInfo: EntityValidatorMutationInfo<TFields, TIDField, TViewerContext, TEntity, TSelectedFields>): Promise<void>;
|
|
11
11
|
}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EntityMutationValidator = void 0;
|
|
3
4
|
/**
|
|
4
5
|
* A validator is a way to specify entity mutation validation that runs within the
|
|
5
6
|
* same transaction as the mutation itself before creating or updating an entity.
|
|
6
7
|
*/
|
|
7
8
|
class EntityMutationValidator {
|
|
8
9
|
}
|
|
9
|
-
exports.
|
|
10
|
+
exports.EntityMutationValidator = EntityMutationValidator;
|
|
10
11
|
//# sourceMappingURL=EntityMutationValidator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EntityMutationValidator.js","sourceRoot":"","sources":["../../src/EntityMutationValidator.ts"],"names":[],"mappings":";;;AAKA;;;GAGG;AACH,MAAsB,uBAAuB;CAmB5C;AAnBD,0DAmBC"}
|
|
@@ -1,19 +1,20 @@
|
|
|
1
|
-
import { AuthorizationResultBasedCreateMutator,
|
|
2
|
-
import Entity,
|
|
3
|
-
import EntityCompanionProvider from './EntityCompanionProvider';
|
|
4
|
-
import EntityConfiguration from './EntityConfiguration';
|
|
5
|
-
import EntityDatabaseAdapter from './EntityDatabaseAdapter';
|
|
6
|
-
import EntityLoaderFactory from './EntityLoaderFactory';
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
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 { EntityMutationValidator } from './EntityMutationValidator';
|
|
10
|
+
import { EntityPrivacyPolicy } from './EntityPrivacyPolicy';
|
|
10
11
|
import { EntityQueryContext } from './EntityQueryContext';
|
|
11
|
-
import ViewerContext from './ViewerContext';
|
|
12
|
-
import IEntityMetricsAdapter from './metrics/IEntityMetricsAdapter';
|
|
12
|
+
import { ViewerContext } from './ViewerContext';
|
|
13
|
+
import { IEntityMetricsAdapter } from './metrics/IEntityMetricsAdapter';
|
|
13
14
|
/**
|
|
14
15
|
* The primary interface for creating, mutating, and deleting entities.
|
|
15
16
|
*/
|
|
16
|
-
export
|
|
17
|
+
export declare class EntityMutatorFactory<TFields extends Record<string, any>, TIDField extends keyof NonNullable<Pick<TFields, TSelectedFields>>, TViewerContext extends ViewerContext, TEntity extends Entity<TFields, TIDField, TViewerContext, TSelectedFields>, TPrivacyPolicy extends EntityPrivacyPolicy<TFields, TIDField, TViewerContext, TEntity, TSelectedFields>, TSelectedFields extends keyof TFields = keyof TFields> {
|
|
17
18
|
private readonly entityCompanionProvider;
|
|
18
19
|
private readonly entityConfiguration;
|
|
19
20
|
private readonly entityClass;
|
|
@@ -37,11 +38,11 @@ export default class EntityMutatorFactory<TFields extends Record<string, any>, T
|
|
|
37
38
|
* @param queryContext - query context in which to perform the update
|
|
38
39
|
* @returns mutator for updating existingEntity
|
|
39
40
|
*/
|
|
40
|
-
forUpdate(existingEntity: TEntity, queryContext: EntityQueryContext): AuthorizationResultBasedUpdateMutator<TFields, TIDField, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>;
|
|
41
|
+
forUpdate(existingEntity: TEntity, queryContext: EntityQueryContext, cascadingDeleteCause: EntityCascadingDeletionInfo | null): AuthorizationResultBasedUpdateMutator<TFields, TIDField, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>;
|
|
41
42
|
/**
|
|
42
43
|
* Delete an existing entity in given query context.
|
|
43
44
|
* @param existingEntity - entity to delete
|
|
44
45
|
* @param queryContext - query context in which to perform the delete
|
|
45
46
|
*/
|
|
46
|
-
forDelete(existingEntity: TEntity, queryContext: EntityQueryContext): AuthorizationResultBasedDeleteMutator<TFields, TIDField, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>;
|
|
47
|
+
forDelete(existingEntity: TEntity, queryContext: EntityQueryContext, cascadingDeleteCause: EntityCascadingDeletionInfo | null): AuthorizationResultBasedDeleteMutator<TFields, TIDField, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>;
|
|
47
48
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EntityMutatorFactory = void 0;
|
|
3
4
|
const AuthorizationResultBasedEntityMutator_1 = require("./AuthorizationResultBasedEntityMutator");
|
|
4
5
|
/**
|
|
5
6
|
* The primary interface for creating, mutating, and deleting entities.
|
|
@@ -40,17 +41,17 @@ class EntityMutatorFactory {
|
|
|
40
41
|
* @param queryContext - query context in which to perform the update
|
|
41
42
|
* @returns mutator for updating existingEntity
|
|
42
43
|
*/
|
|
43
|
-
forUpdate(existingEntity, queryContext) {
|
|
44
|
-
return new AuthorizationResultBasedEntityMutator_1.AuthorizationResultBasedUpdateMutator(this.entityCompanionProvider, existingEntity.getViewerContext(), queryContext, this.entityConfiguration, this.entityClass, this.privacyPolicy, this.mutationValidators, this.mutationTriggers, this.entityLoaderFactory, this.databaseAdapter, this.metricsAdapter, existingEntity);
|
|
44
|
+
forUpdate(existingEntity, queryContext, cascadingDeleteCause) {
|
|
45
|
+
return new AuthorizationResultBasedEntityMutator_1.AuthorizationResultBasedUpdateMutator(this.entityCompanionProvider, existingEntity.getViewerContext(), queryContext, this.entityConfiguration, this.entityClass, this.privacyPolicy, this.mutationValidators, this.mutationTriggers, this.entityLoaderFactory, this.databaseAdapter, this.metricsAdapter, existingEntity, cascadingDeleteCause);
|
|
45
46
|
}
|
|
46
47
|
/**
|
|
47
48
|
* Delete an existing entity in given query context.
|
|
48
49
|
* @param existingEntity - entity to delete
|
|
49
50
|
* @param queryContext - query context in which to perform the delete
|
|
50
51
|
*/
|
|
51
|
-
forDelete(existingEntity, queryContext) {
|
|
52
|
-
return new AuthorizationResultBasedEntityMutator_1.AuthorizationResultBasedDeleteMutator(this.entityCompanionProvider, existingEntity.getViewerContext(), queryContext, this.entityConfiguration, this.entityClass, this.privacyPolicy, this.mutationValidators, this.mutationTriggers, this.entityLoaderFactory, this.databaseAdapter, this.metricsAdapter, existingEntity);
|
|
52
|
+
forDelete(existingEntity, queryContext, cascadingDeleteCause) {
|
|
53
|
+
return new AuthorizationResultBasedEntityMutator_1.AuthorizationResultBasedDeleteMutator(this.entityCompanionProvider, existingEntity.getViewerContext(), queryContext, this.entityConfiguration, this.entityClass, this.privacyPolicy, this.mutationValidators, this.mutationTriggers, this.entityLoaderFactory, this.databaseAdapter, this.metricsAdapter, existingEntity, cascadingDeleteCause);
|
|
53
54
|
}
|
|
54
55
|
}
|
|
55
|
-
exports.
|
|
56
|
+
exports.EntityMutatorFactory = EntityMutatorFactory;
|
|
56
57
|
//# sourceMappingURL=EntityMutatorFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EntityMutatorFactory.js","sourceRoot":"","sources":["../../src/EntityMutatorFactory.ts"],"names":[],"mappings":";;;AAAA,mGAIiD;AAcjD;;GAEG;AACH,MAAa,oBAAoB;IAeZ;IACA;IACA;IAQA;IACA;IAOA;IAOA;IAQA;IACA;IAnCnB,YACmB,uBAAgD,EAChD,mBAA2D,EAC3D,WAOhB,EACgB,aAA6B,EAC7B,kBAMd,EACc,gBAMhB,EACgB,mBAOhB,EACgB,eAAyD,EACzD,cAAqC;QAlCrC,4BAAuB,GAAvB,uBAAuB,CAAyB;QAChD,wBAAmB,GAAnB,mBAAmB,CAAwC;QAC3D,gBAAW,GAAX,WAAW,CAO3B;QACgB,kBAAa,GAAb,aAAa,CAAgB;QAC7B,uBAAkB,GAAlB,kBAAkB,CAMhC;QACc,qBAAgB,GAAhB,gBAAgB,CAMhC;QACgB,wBAAmB,GAAnB,mBAAmB,CAOnC;QACgB,oBAAe,GAAf,eAAe,CAA0C;QACzD,mBAAc,GAAd,cAAc,CAAuB;IACrD,CAAC;IAEJ;;;;;OAKG;IACH,SAAS,CACP,aAA6B,EAC7B,YAAgC;QAShC,OAAO,IAAI,6EAAqC,CAC9C,IAAI,CAAC,uBAAuB,EAC5B,aAAa,EACb,YAAY,EACZ,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,kBAAkB,EACvB,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,cAAc,CACpB,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,SAAS,CACP,cAAuB,EACvB,YAAgC,EAChC,oBAAwD;QASxD,OAAO,IAAI,6EAAqC,CAC9C,IAAI,CAAC,uBAAuB,EAC5B,cAAc,CAAC,gBAAgB,EAAE,EACjC,YAAY,EACZ,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,kBAAkB,EACvB,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,cAAc,EACnB,cAAc,EACd,oBAAoB,CACrB,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,SAAS,CACP,cAAuB,EACvB,YAAgC,EAChC,oBAAwD;QASxD,OAAO,IAAI,6EAAqC,CAC9C,IAAI,CAAC,uBAAuB,EAC5B,cAAc,CAAC,gBAAgB,EAAE,EACjC,YAAY,EACZ,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,kBAAkB,EACvB,IAAI,CAAC,gBAAgB,EACrB,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,cAAc,EACnB,cAAc,EACd,oBAAoB,CACrB,CAAC;IACJ,CAAC;CACF;AAxJD,oDAwJC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { EntityCascadingDeletionInfo } from './EntityMutationInfo';
|
|
2
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';
|
|
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';
|
|
8
8
|
/**
|
|
9
9
|
* Information about the reason this privacy policy is being evaluated.
|
|
10
10
|
*/
|
|
@@ -75,7 +75,7 @@ export declare enum EntityAuthorizationAction {
|
|
|
75
75
|
* return not authorized if all rules skip
|
|
76
76
|
* ```
|
|
77
77
|
*/
|
|
78
|
-
export
|
|
78
|
+
export declare abstract class EntityPrivacyPolicy<TFields extends Record<string, any>, TIDField extends keyof NonNullable<Pick<TFields, TSelectedFields>>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TIDField, TViewerContext, TSelectedFields>, TSelectedFields extends keyof TFields = keyof TFields> {
|
|
79
79
|
protected readonly createRules: readonly PrivacyPolicyRule<TFields, TIDField, TViewerContext, TEntity, TSelectedFields>[];
|
|
80
80
|
protected readonly readRules: readonly PrivacyPolicyRule<TFields, TIDField, TViewerContext, TEntity, TSelectedFields>[];
|
|
81
81
|
protected readonly updateRules: readonly PrivacyPolicyRule<TFields, TIDField, TViewerContext, TEntity, TSelectedFields>[];
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.EntityAuthorizationAction = exports.EntityPrivacyPolicyEvaluationMode = void 0;
|
|
7
|
-
const EntityNotAuthorizedError_1 =
|
|
3
|
+
exports.EntityPrivacyPolicy = exports.EntityAuthorizationAction = exports.EntityPrivacyPolicyEvaluationMode = void 0;
|
|
4
|
+
const EntityNotAuthorizedError_1 = require("./errors/EntityNotAuthorizedError");
|
|
8
5
|
const IEntityMetricsAdapter_1 = require("./metrics/IEntityMetricsAdapter");
|
|
9
6
|
const PrivacyPolicyRule_1 = require("./rules/PrivacyPolicyRule");
|
|
10
7
|
/**
|
|
@@ -131,7 +128,7 @@ class EntityPrivacyPolicy {
|
|
|
131
128
|
return result;
|
|
132
129
|
}
|
|
133
130
|
catch (e) {
|
|
134
|
-
if (!(e instanceof EntityNotAuthorizedError_1.
|
|
131
|
+
if (!(e instanceof EntityNotAuthorizedError_1.EntityNotAuthorizedError)) {
|
|
135
132
|
throw e;
|
|
136
133
|
}
|
|
137
134
|
metricsAdapter.logAuthorizationEvent({
|
|
@@ -154,7 +151,7 @@ class EntityPrivacyPolicy {
|
|
|
154
151
|
return result;
|
|
155
152
|
}
|
|
156
153
|
catch (e) {
|
|
157
|
-
if (!(e instanceof EntityNotAuthorizedError_1.
|
|
154
|
+
if (!(e instanceof EntityNotAuthorizedError_1.EntityNotAuthorizedError)) {
|
|
158
155
|
throw e;
|
|
159
156
|
}
|
|
160
157
|
privacyPolicyEvaluator.denyHandler(e);
|
|
@@ -178,7 +175,7 @@ class EntityPrivacyPolicy {
|
|
|
178
175
|
return result;
|
|
179
176
|
}
|
|
180
177
|
catch (e) {
|
|
181
|
-
if (!(e instanceof EntityNotAuthorizedError_1.
|
|
178
|
+
if (!(e instanceof EntityNotAuthorizedError_1.EntityNotAuthorizedError)) {
|
|
182
179
|
throw e;
|
|
183
180
|
}
|
|
184
181
|
privacyPolicyEvaluator.denyHandler(e);
|
|
@@ -198,7 +195,7 @@ class EntityPrivacyPolicy {
|
|
|
198
195
|
const ruleEvaluationResult = await rule.evaluateAsync(viewerContext, queryContext, evaluationContext, entity);
|
|
199
196
|
switch (ruleEvaluationResult) {
|
|
200
197
|
case PrivacyPolicyRule_1.RuleEvaluationResult.DENY:
|
|
201
|
-
throw new EntityNotAuthorizedError_1.
|
|
198
|
+
throw new EntityNotAuthorizedError_1.EntityNotAuthorizedError(entity, viewerContext, action, i);
|
|
202
199
|
case PrivacyPolicyRule_1.RuleEvaluationResult.SKIP:
|
|
203
200
|
continue;
|
|
204
201
|
case PrivacyPolicyRule_1.RuleEvaluationResult.ALLOW:
|
|
@@ -207,8 +204,8 @@ class EntityPrivacyPolicy {
|
|
|
207
204
|
throw new Error(`Invalid RuleEvaluationResult returned from rule: ${entity} (viewer = ${viewerContext}, action = ${EntityAuthorizationAction[action]}, ruleIndex = ${i})`);
|
|
208
205
|
}
|
|
209
206
|
}
|
|
210
|
-
throw new EntityNotAuthorizedError_1.
|
|
207
|
+
throw new EntityNotAuthorizedError_1.EntityNotAuthorizedError(entity, viewerContext, action, -1);
|
|
211
208
|
}
|
|
212
209
|
}
|
|
213
|
-
exports.
|
|
210
|
+
exports.EntityPrivacyPolicy = EntityPrivacyPolicy;
|
|
214
211
|
//# sourceMappingURL=EntityPrivacyPolicy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityPrivacyPolicy.js","sourceRoot":"","sources":["
|
|
1
|
+
{"version":3,"file":"EntityPrivacyPolicy.js","sourceRoot":"","sources":["../../src/EntityPrivacyPolicy.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import EntityQueryContextProvider from './EntityQueryContextProvider';
|
|
1
|
+
import { EntityQueryContextProvider } from './EntityQueryContextProvider';
|
|
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 {
|