@expo/entity 0.59.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,11 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.reduceMapAsync = exports.reduceMap = exports.invertMap = exports.zipToMap = exports.mapKeys = exports.mapMapAsync = exports.mapMap = exports.computeIfAbsent = void 0;
|
|
7
|
-
exports.filterMap = filterMap;
|
|
8
|
-
const invariant_1 = __importDefault(require("invariant"));
|
|
1
|
+
import invariant from 'invariant';
|
|
9
2
|
/**
|
|
10
3
|
* If the specified key is not already associated with a value in this map, computes
|
|
11
4
|
* its value using the given mapping function and enters it into this map.
|
|
@@ -14,35 +7,33 @@ const invariant_1 = __importDefault(require("invariant"));
|
|
|
14
7
|
* @param key - key for which to get the value or with which the computed value is to be associated
|
|
15
8
|
* @param mappingFunction - function to compute a value for key
|
|
16
9
|
*/
|
|
17
|
-
const computeIfAbsent = (map, key, mappingFunction) => {
|
|
10
|
+
export const computeIfAbsent = (map, key, mappingFunction) => {
|
|
18
11
|
if (!map.has(key)) {
|
|
19
12
|
const value = mappingFunction(key);
|
|
20
13
|
map.set(key, value);
|
|
21
14
|
}
|
|
22
15
|
return map.get(key);
|
|
23
16
|
};
|
|
24
|
-
exports.computeIfAbsent = computeIfAbsent;
|
|
25
17
|
/**
|
|
26
18
|
* Create a new Map by associating the value of mapper executed for each key in the source map.
|
|
27
19
|
*
|
|
28
20
|
* @param map - source map
|
|
29
21
|
* @param mapper - function to compute a value in the resulting map for the source key and value
|
|
30
22
|
*/
|
|
31
|
-
const mapMap = (map, mapper) => {
|
|
23
|
+
export const mapMap = (map, mapper) => {
|
|
32
24
|
const resultingMap = new Map();
|
|
33
25
|
for (const [k, v] of map) {
|
|
34
26
|
resultingMap.set(k, mapper(v, k));
|
|
35
27
|
}
|
|
36
28
|
return resultingMap;
|
|
37
29
|
};
|
|
38
|
-
exports.mapMap = mapMap;
|
|
39
30
|
/**
|
|
40
31
|
* Create a new Map by associating the value of mapper executed for each key in the source map.
|
|
41
32
|
*
|
|
42
33
|
* @param map - source map
|
|
43
34
|
* @param mapper - asynchronous function to compute a value in the resulting map for the source key and value
|
|
44
35
|
*/
|
|
45
|
-
const mapMapAsync = async function (map, mapper) {
|
|
36
|
+
export const mapMapAsync = async function (map, mapper) {
|
|
46
37
|
const resultingMap = new Map();
|
|
47
38
|
await Promise.all(Array.from(map.keys()).map(async (k) => {
|
|
48
39
|
const initialValue = map.get(k);
|
|
@@ -51,7 +42,6 @@ const mapMapAsync = async function (map, mapper) {
|
|
|
51
42
|
}));
|
|
52
43
|
return resultingMap;
|
|
53
44
|
};
|
|
54
|
-
exports.mapMapAsync = mapMapAsync;
|
|
55
45
|
/**
|
|
56
46
|
* Create a new Map by associating the value of each key with mapper executed for each key in the source map.
|
|
57
47
|
* The opposite of mapMap. In the event two source keys map to the same result key, the second source key's
|
|
@@ -61,14 +51,13 @@ exports.mapMapAsync = mapMapAsync;
|
|
|
61
51
|
* @param map - source map
|
|
62
52
|
* @param mapper - function to compute a key in the resulting map for the source key and value
|
|
63
53
|
*/
|
|
64
|
-
const mapKeys = (map, mapper) => {
|
|
54
|
+
export const mapKeys = (map, mapper) => {
|
|
65
55
|
const resultingMap = new Map();
|
|
66
56
|
for (const [k, v] of map) {
|
|
67
57
|
resultingMap.set(mapper(k, v), v);
|
|
68
58
|
}
|
|
69
59
|
return resultingMap;
|
|
70
60
|
};
|
|
71
|
-
exports.mapKeys = mapKeys;
|
|
72
61
|
/**
|
|
73
62
|
* Create a new Map from each member of keys to the corresponding member of values.
|
|
74
63
|
*
|
|
@@ -80,28 +69,26 @@ exports.mapKeys = mapKeys;
|
|
|
80
69
|
* @param keys - keys
|
|
81
70
|
* @param values - corresponding ordered values for keys
|
|
82
71
|
*/
|
|
83
|
-
const zipToMap = (keys, values) => {
|
|
84
|
-
(
|
|
72
|
+
export const zipToMap = (keys, values) => {
|
|
73
|
+
invariant(keys.length === values.length, `zipToMap input length mismatch: keys[${keys.length}], values[${values.length}]`);
|
|
85
74
|
const resultingMap = new Map();
|
|
86
75
|
for (let i = 0; i < keys.length; i++) {
|
|
87
76
|
resultingMap.set(keys[i], values[i]);
|
|
88
77
|
}
|
|
89
78
|
return resultingMap;
|
|
90
79
|
};
|
|
91
|
-
exports.zipToMap = zipToMap;
|
|
92
80
|
/**
|
|
93
81
|
* Create a new Map by inverting keys and values of specified map.
|
|
94
82
|
*
|
|
95
83
|
* @param map - map to invert
|
|
96
84
|
*/
|
|
97
|
-
const invertMap = (map) => {
|
|
85
|
+
export const invertMap = (map) => {
|
|
98
86
|
const resultingMap = new Map();
|
|
99
87
|
for (const [k, v] of map) {
|
|
100
88
|
resultingMap.set(v, k);
|
|
101
89
|
}
|
|
102
90
|
return resultingMap;
|
|
103
91
|
};
|
|
104
|
-
exports.invertMap = invertMap;
|
|
105
92
|
/**
|
|
106
93
|
* Execute a reducer function on each element of the source map, resulting in a single output value.
|
|
107
94
|
*
|
|
@@ -110,14 +97,13 @@ exports.invertMap = invertMap;
|
|
|
110
97
|
* iteration key and returns a new accumulated value
|
|
111
98
|
* @param initialValue - initial accumulated value
|
|
112
99
|
*/
|
|
113
|
-
const reduceMap = (map, reducer, initialValue) => {
|
|
100
|
+
export const reduceMap = (map, reducer, initialValue) => {
|
|
114
101
|
let newAccumulator = initialValue;
|
|
115
102
|
for (const [k, v] of map) {
|
|
116
103
|
newAccumulator = reducer(newAccumulator, v, k);
|
|
117
104
|
}
|
|
118
105
|
return newAccumulator;
|
|
119
106
|
};
|
|
120
|
-
exports.reduceMap = reduceMap;
|
|
121
107
|
/**
|
|
122
108
|
* Execute an asynchronous reducer function on each element of the source map, resulting in a single output value.
|
|
123
109
|
* Note that this does not parallelize asynchronous reduce steps so it should be used with caution.
|
|
@@ -127,20 +113,19 @@ exports.reduceMap = reduceMap;
|
|
|
127
113
|
* current iteration key and returns a new accumulated value
|
|
128
114
|
* @param initialValue - initial accumulated value
|
|
129
115
|
*/
|
|
130
|
-
const reduceMapAsync = async (map, reducer, initialValue) => {
|
|
116
|
+
export const reduceMapAsync = async (map, reducer, initialValue) => {
|
|
131
117
|
let newAccumulator = initialValue;
|
|
132
118
|
for (const [k, v] of map) {
|
|
133
119
|
newAccumulator = await reducer(newAccumulator, v, k);
|
|
134
120
|
}
|
|
135
121
|
return newAccumulator;
|
|
136
122
|
};
|
|
137
|
-
exports.reduceMapAsync = reduceMapAsync;
|
|
138
123
|
/**
|
|
139
124
|
* Create a new Map containing all elements from the source map that pass the provided test predicate.
|
|
140
125
|
* @param map - source map
|
|
141
126
|
* @param predicate - function to test each element of source map
|
|
142
127
|
*/
|
|
143
|
-
function filterMap(map, predicate) {
|
|
128
|
+
export function filterMap(map, predicate) {
|
|
144
129
|
const resultingMap = new Map();
|
|
145
130
|
map.forEach((v, k) => {
|
|
146
131
|
if (predicate(v, k)) {
|
|
@@ -149,4 +134,3 @@ function filterMap(map, predicate) {
|
|
|
149
134
|
});
|
|
150
135
|
return resultingMap;
|
|
151
136
|
}
|
|
152
|
-
//# sourceMappingURL=maps.js.map
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.areSetsEqual = areSetsEqual;
|
|
4
|
-
function areSetsEqual(a, b) {
|
|
1
|
+
export function areSetsEqual(a, b) {
|
|
5
2
|
return a.size === b.size && [...a].every((value) => b.has(value));
|
|
6
3
|
}
|
|
7
|
-
//# sourceMappingURL=sets.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { EntityMutationTriggerConfiguration } from '../EntityMutationTriggerConfiguration';
|
|
2
|
-
import { ReadonlyEntity } from '../ReadonlyEntity';
|
|
3
|
-
import { ViewerContext } from '../ViewerContext';
|
|
1
|
+
import type { EntityMutationTriggerConfiguration } from '../EntityMutationTriggerConfiguration.ts';
|
|
2
|
+
import type { ReadonlyEntity } from '../ReadonlyEntity.ts';
|
|
3
|
+
import type { ViewerContext } from '../ViewerContext.ts';
|
|
4
4
|
export declare function mergeEntityMutationTriggerConfigurations<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>(...mutationTriggerConfigurations: EntityMutationTriggerConfiguration<TFields, TIDField, TViewerContext, TEntity, TSelectedFields>[]): EntityMutationTriggerConfiguration<TFields, TIDField, TViewerContext, TEntity, TSelectedFields>;
|
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.mergeEntityMutationTriggerConfigurations = mergeEntityMutationTriggerConfigurations;
|
|
4
1
|
function nonNullish(value) {
|
|
5
2
|
return value !== null && value !== undefined;
|
|
6
3
|
}
|
|
7
|
-
function mergeEntityMutationTriggerConfigurations(...mutationTriggerConfigurations) {
|
|
4
|
+
export function mergeEntityMutationTriggerConfigurations(...mutationTriggerConfigurations) {
|
|
8
5
|
const merged = {
|
|
9
6
|
beforeCreate: mutationTriggerConfigurations.flatMap((c) => c.beforeCreate).filter(nonNullish),
|
|
10
7
|
afterCreate: mutationTriggerConfigurations.flatMap((c) => c.afterCreate).filter(nonNullish),
|
|
@@ -24,4 +21,3 @@ function mergeEntityMutationTriggerConfigurations(...mutationTriggerConfiguratio
|
|
|
24
21
|
}
|
|
25
22
|
return merged;
|
|
26
23
|
}
|
|
27
|
-
//# sourceMappingURL=mergeEntityMutationTriggerConfigurations.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@expo/entity",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.61.0",
|
|
4
4
|
"description": "A privacy-first data model",
|
|
5
5
|
"files": [
|
|
6
6
|
"build",
|
|
@@ -19,13 +19,14 @@
|
|
|
19
19
|
"test": "yarn test:all --rootDir $(pwd)"
|
|
20
20
|
},
|
|
21
21
|
"engines": {
|
|
22
|
-
"node": ">=
|
|
22
|
+
"node": ">=18"
|
|
23
23
|
},
|
|
24
24
|
"keywords": [
|
|
25
25
|
"entity"
|
|
26
26
|
],
|
|
27
27
|
"author": "Expo",
|
|
28
28
|
"license": "MIT",
|
|
29
|
+
"type": "module",
|
|
29
30
|
"dependencies": {
|
|
30
31
|
"@expo/results": "^1.0.0",
|
|
31
32
|
"dataloader": "^2.2.3",
|
|
@@ -34,12 +35,12 @@
|
|
|
34
35
|
"devDependencies": {
|
|
35
36
|
"@jest/globals": "30.2.0",
|
|
36
37
|
"@types/invariant": "2.2.37",
|
|
37
|
-
"@types/lodash": "4.17.
|
|
38
|
-
"@types/node": "24.
|
|
39
|
-
"lodash": "4.17.23",
|
|
38
|
+
"@types/lodash-es": "4.17.12",
|
|
39
|
+
"@types/node": "24.12.0",
|
|
40
|
+
"lodash-es": "4.17.23",
|
|
40
41
|
"ts-mockito": "2.6.1",
|
|
41
42
|
"typescript": "5.9.3",
|
|
42
43
|
"uuid": "13.0.0"
|
|
43
44
|
},
|
|
44
|
-
"gitHead": "
|
|
45
|
+
"gitHead": "a6f1dd723262cb1c3e8022d3a8799c17602cd15b"
|
|
45
46
|
}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { Result
|
|
1
|
+
import type { Result } from '@expo/results';
|
|
2
|
+
import { result } from '@expo/results';
|
|
2
3
|
|
|
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';
|
|
4
|
+
import type { IEntityClass } from './Entity.ts';
|
|
5
|
+
import type { EntityPrivacyPolicy } from './EntityPrivacyPolicy.ts';
|
|
6
|
+
import type { EntityQueryContext } from './EntityQueryContext.ts';
|
|
7
|
+
import type { ReadonlyEntity } from './ReadonlyEntity.ts';
|
|
8
|
+
import type { ViewerContext } from './ViewerContext.ts';
|
|
8
9
|
|
|
9
10
|
/**
|
|
10
11
|
* An association loader is a set of convenience methods for loading entities
|
|
@@ -1,25 +1,27 @@
|
|
|
1
|
-
import
|
|
1
|
+
import nullthrows from '@expo/nullthrows';
|
|
2
|
+
import type { Result } from '@expo/results';
|
|
3
|
+
import { result } from '@expo/results';
|
|
2
4
|
import invariant from 'invariant';
|
|
3
|
-
import nullthrows from 'nullthrows';
|
|
4
5
|
|
|
5
|
-
import { IEntityClass } from './Entity';
|
|
6
|
-
import {
|
|
6
|
+
import type { IEntityClass } from './Entity.ts';
|
|
7
|
+
import type {
|
|
7
8
|
EntityCompositeField,
|
|
8
9
|
EntityCompositeFieldValue,
|
|
9
10
|
EntityConfiguration,
|
|
10
|
-
} from './EntityConfiguration';
|
|
11
|
-
import { EntityConstructionUtils } from './EntityConstructionUtils';
|
|
12
|
-
import { EntityPrivacyPolicy } from './EntityPrivacyPolicy';
|
|
13
|
-
import { EntityQueryContext } from './EntityQueryContext';
|
|
14
|
-
import { ReadonlyEntity } from './ReadonlyEntity';
|
|
15
|
-
import { ViewerContext } from './ViewerContext';
|
|
16
|
-
import { EntityNotFoundError } from './errors/EntityNotFoundError';
|
|
17
|
-
import { CompositeFieldHolder
|
|
18
|
-
import {
|
|
19
|
-
import {
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
11
|
+
} from './EntityConfiguration.ts';
|
|
12
|
+
import type { EntityConstructionUtils } from './EntityConstructionUtils.ts';
|
|
13
|
+
import type { EntityPrivacyPolicy } from './EntityPrivacyPolicy.ts';
|
|
14
|
+
import type { EntityQueryContext } from './EntityQueryContext.ts';
|
|
15
|
+
import type { ReadonlyEntity } from './ReadonlyEntity.ts';
|
|
16
|
+
import type { ViewerContext } from './ViewerContext.ts';
|
|
17
|
+
import { EntityNotFoundError } from './errors/EntityNotFoundError.ts';
|
|
18
|
+
import type { CompositeFieldHolder } from './internal/CompositeFieldHolder.ts';
|
|
19
|
+
import { CompositeFieldValueHolder } from './internal/CompositeFieldHolder.ts';
|
|
20
|
+
import { CompositeFieldValueMap } from './internal/CompositeFieldValueMap.ts';
|
|
21
|
+
import type { EntityDataManager } from './internal/EntityDataManager.ts';
|
|
22
|
+
import { SingleFieldHolder, SingleFieldValueHolder } from './internal/SingleFieldHolder.ts';
|
|
23
|
+
import { mapKeys, mapMap } from './utils/collections/maps.ts';
|
|
24
|
+
import { areSetsEqual } from './utils/collections/sets.ts';
|
|
23
25
|
|
|
24
26
|
/**
|
|
25
27
|
* Authorization-result-based entity loader. All normal loads are batched,
|
|
@@ -1,35 +1,37 @@
|
|
|
1
|
-
import { Result
|
|
1
|
+
import type { Result } from '@expo/results';
|
|
2
|
+
import { asyncResult, enforceAsyncResult, result } from '@expo/results';
|
|
2
3
|
import invariant from 'invariant';
|
|
3
4
|
|
|
4
|
-
import { Entity, IEntityClass } from './Entity';
|
|
5
|
-
import { EntityCompanionProvider } from './EntityCompanionProvider';
|
|
6
|
-
import { EntityConfiguration } from './EntityConfiguration';
|
|
7
|
-
import { EntityDatabaseAdapter } from './EntityDatabaseAdapter';
|
|
8
|
-
import { EntityEdgeDeletionBehavior } from './EntityFieldDefinition';
|
|
9
|
-
import { EntityLoaderFactory } from './EntityLoaderFactory';
|
|
10
|
-
import {
|
|
5
|
+
import type { Entity, IEntityClass } from './Entity.ts';
|
|
6
|
+
import type { EntityCompanionProvider } from './EntityCompanionProvider.ts';
|
|
7
|
+
import type { EntityConfiguration } from './EntityConfiguration.ts';
|
|
8
|
+
import type { EntityDatabaseAdapter } from './EntityDatabaseAdapter.ts';
|
|
9
|
+
import { EntityEdgeDeletionBehavior } from './EntityFieldDefinition.ts';
|
|
10
|
+
import type { EntityLoaderFactory } from './EntityLoaderFactory.ts';
|
|
11
|
+
import type {
|
|
11
12
|
EntityCascadingDeletionInfo,
|
|
12
|
-
EntityMutationType,
|
|
13
13
|
EntityTriggerMutationInfo,
|
|
14
14
|
EntityValidatorMutationInfo,
|
|
15
|
-
} from './EntityMutationInfo';
|
|
16
|
-
import {
|
|
15
|
+
} from './EntityMutationInfo.ts';
|
|
16
|
+
import { EntityMutationType } from './EntityMutationInfo.ts';
|
|
17
|
+
import type {
|
|
17
18
|
EntityMutationTrigger,
|
|
18
19
|
EntityMutationTriggerConfiguration,
|
|
19
20
|
EntityNonTransactionalMutationTrigger,
|
|
20
|
-
} from './EntityMutationTriggerConfiguration';
|
|
21
|
-
import {
|
|
21
|
+
} from './EntityMutationTriggerConfiguration.ts';
|
|
22
|
+
import type {
|
|
22
23
|
EntityMutationValidator,
|
|
23
24
|
EntityMutationValidatorConfiguration,
|
|
24
|
-
} from './EntityMutationValidatorConfiguration';
|
|
25
|
-
import { EntityPrivacyPolicy } from './EntityPrivacyPolicy';
|
|
26
|
-
import { EntityQueryContext, EntityTransactionalQueryContext } from './EntityQueryContext';
|
|
27
|
-
import { ViewerContext } from './ViewerContext';
|
|
28
|
-
import { enforceResultsAsync } from './entityUtils';
|
|
29
|
-
import { EntityInvalidFieldValueError } from './errors/EntityInvalidFieldValueError';
|
|
30
|
-
import { timeAndLogMutationEventAsync } from './metrics/EntityMetricsUtils';
|
|
31
|
-
import {
|
|
32
|
-
import {
|
|
25
|
+
} from './EntityMutationValidatorConfiguration.ts';
|
|
26
|
+
import type { EntityPrivacyPolicy } from './EntityPrivacyPolicy.ts';
|
|
27
|
+
import type { EntityQueryContext, EntityTransactionalQueryContext } from './EntityQueryContext.ts';
|
|
28
|
+
import type { ViewerContext } from './ViewerContext.ts';
|
|
29
|
+
import { enforceResultsAsync } from './entityUtils.ts';
|
|
30
|
+
import { EntityInvalidFieldValueError } from './errors/EntityInvalidFieldValueError.ts';
|
|
31
|
+
import { timeAndLogMutationEventAsync } from './metrics/EntityMetricsUtils.ts';
|
|
32
|
+
import type { IEntityMetricsAdapter } from './metrics/IEntityMetricsAdapter.ts';
|
|
33
|
+
import { EntityMetricsMutationType } from './metrics/IEntityMetricsAdapter.ts';
|
|
34
|
+
import { mapMapAsync } from './utils/collections/maps.ts';
|
|
33
35
|
|
|
34
36
|
/**
|
|
35
37
|
* Base class for entity mutators. Mutators are builder-like class instances that are
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import nullthrows from 'nullthrows';
|
|
1
|
+
import nullthrows from '@expo/nullthrows';
|
|
2
2
|
|
|
3
|
-
import { IEntityCacheAdapter } from './IEntityCacheAdapter';
|
|
4
|
-
import { IEntityLoadKey, IEntityLoadValue } from './internal/EntityLoadInterfaces';
|
|
5
|
-
import { CacheLoadResult
|
|
3
|
+
import type { IEntityCacheAdapter } from './IEntityCacheAdapter.ts';
|
|
4
|
+
import type { IEntityLoadKey, IEntityLoadValue } from './internal/EntityLoadInterfaces.ts';
|
|
5
|
+
import type { CacheLoadResult } from './internal/ReadThroughEntityCache.ts';
|
|
6
|
+
import { CacheStatus } from './internal/ReadThroughEntityCache.ts';
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
* A IEntityCacheAdapter that composes other IEntityCacheAdapter instances.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import nullthrows from 'nullthrows';
|
|
1
|
+
import nullthrows from '@expo/nullthrows';
|
|
2
2
|
|
|
3
|
-
import { ISecondaryEntityCache } from './EntitySecondaryCacheLoader';
|
|
3
|
+
import type { ISecondaryEntityCache } from './EntitySecondaryCacheLoader.ts';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* A ISecondaryEntityCache that composes other ISecondaryEntityCache instances.
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { enforceAsyncResult } from '@expo/results';
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import type {
|
|
4
4
|
AuthorizationResultBasedEntityAssociationLoader,
|
|
5
5
|
EntityLoadThroughDirective,
|
|
6
|
-
} from './AuthorizationResultBasedEntityAssociationLoader';
|
|
7
|
-
import { IEntityClass } from './Entity';
|
|
8
|
-
import { EntityPrivacyPolicy } from './EntityPrivacyPolicy';
|
|
9
|
-
import { ReadonlyEntity } from './ReadonlyEntity';
|
|
10
|
-
import { ViewerContext } from './ViewerContext';
|
|
11
|
-
import { enforceResultsAsync } from './entityUtils';
|
|
6
|
+
} from './AuthorizationResultBasedEntityAssociationLoader.ts';
|
|
7
|
+
import type { IEntityClass } from './Entity.ts';
|
|
8
|
+
import type { EntityPrivacyPolicy } from './EntityPrivacyPolicy.ts';
|
|
9
|
+
import type { ReadonlyEntity } from './ReadonlyEntity.ts';
|
|
10
|
+
import type { ViewerContext } from './ViewerContext.ts';
|
|
11
|
+
import { enforceResultsAsync } from './entityUtils.ts';
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* An association loader is a set of convenience methods for loading entities
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { enforceAsyncResult } from '@expo/results';
|
|
2
2
|
|
|
3
|
-
import { AuthorizationResultBasedCreateMutator } from './AuthorizationResultBasedEntityMutator';
|
|
4
|
-
import { EntityPrivacyPolicy } from './EntityPrivacyPolicy';
|
|
5
|
-
import { ReadonlyEntity } from './ReadonlyEntity';
|
|
6
|
-
import { ViewerContext } from './ViewerContext';
|
|
3
|
+
import type { AuthorizationResultBasedCreateMutator } from './AuthorizationResultBasedEntityMutator.ts';
|
|
4
|
+
import type { EntityPrivacyPolicy } from './EntityPrivacyPolicy.ts';
|
|
5
|
+
import type { ReadonlyEntity } from './ReadonlyEntity.ts';
|
|
6
|
+
import type { ViewerContext } from './ViewerContext.ts';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Enforcing entity creator. All creates
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { enforceAsyncResult } from '@expo/results';
|
|
2
2
|
|
|
3
|
-
import { AuthorizationResultBasedDeleteMutator } from './AuthorizationResultBasedEntityMutator';
|
|
4
|
-
import { EntityPrivacyPolicy } from './EntityPrivacyPolicy';
|
|
5
|
-
import { ReadonlyEntity } from './ReadonlyEntity';
|
|
6
|
-
import { ViewerContext } from './ViewerContext';
|
|
3
|
+
import type { AuthorizationResultBasedDeleteMutator } from './AuthorizationResultBasedEntityMutator.ts';
|
|
4
|
+
import type { EntityPrivacyPolicy } from './EntityPrivacyPolicy.ts';
|
|
5
|
+
import type { ReadonlyEntity } from './ReadonlyEntity.ts';
|
|
6
|
+
import type { ViewerContext } from './ViewerContext.ts';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Enforcing entity deleter. All deletes
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { AuthorizationResultBasedEntityLoader } from './AuthorizationResultBasedEntityLoader';
|
|
2
|
-
import { EntityCompositeField, EntityCompositeFieldValue } from './EntityConfiguration';
|
|
3
|
-
import { EntityPrivacyPolicy } from './EntityPrivacyPolicy';
|
|
4
|
-
import { ReadonlyEntity } from './ReadonlyEntity';
|
|
5
|
-
import { ViewerContext } from './ViewerContext';
|
|
6
|
-
import { CompositeFieldValueHolder } from './internal/CompositeFieldHolder';
|
|
7
|
-
import { CompositeFieldValueMap } from './internal/CompositeFieldValueMap';
|
|
8
|
-
import { mapMap } from './utils/collections/maps';
|
|
1
|
+
import type { AuthorizationResultBasedEntityLoader } from './AuthorizationResultBasedEntityLoader.ts';
|
|
2
|
+
import type { EntityCompositeField, EntityCompositeFieldValue } from './EntityConfiguration.ts';
|
|
3
|
+
import type { EntityPrivacyPolicy } from './EntityPrivacyPolicy.ts';
|
|
4
|
+
import type { ReadonlyEntity } from './ReadonlyEntity.ts';
|
|
5
|
+
import type { ViewerContext } from './ViewerContext.ts';
|
|
6
|
+
import { CompositeFieldValueHolder } from './internal/CompositeFieldHolder.ts';
|
|
7
|
+
import { CompositeFieldValueMap } from './internal/CompositeFieldValueMap.ts';
|
|
8
|
+
import { mapMap } from './utils/collections/maps.ts';
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* Enforcing entity loader. All normal loads are batched,
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { enforceAsyncResult } from '@expo/results';
|
|
2
2
|
|
|
3
|
-
import { AuthorizationResultBasedUpdateMutator } from './AuthorizationResultBasedEntityMutator';
|
|
4
|
-
import { EntityPrivacyPolicy } from './EntityPrivacyPolicy';
|
|
5
|
-
import { ReadonlyEntity } from './ReadonlyEntity';
|
|
6
|
-
import { ViewerContext } from './ViewerContext';
|
|
3
|
+
import type { AuthorizationResultBasedUpdateMutator } from './AuthorizationResultBasedEntityMutator.ts';
|
|
4
|
+
import type { EntityPrivacyPolicy } from './EntityPrivacyPolicy.ts';
|
|
5
|
+
import type { ReadonlyEntity } from './ReadonlyEntity.ts';
|
|
6
|
+
import type { ViewerContext } from './ViewerContext.ts';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Enforcing entity updater. All updates
|
package/src/Entity.ts
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type {
|
|
2
2
|
AuthorizationResultBasedCreateMutator,
|
|
3
3
|
AuthorizationResultBasedDeleteMutator,
|
|
4
4
|
AuthorizationResultBasedUpdateMutator,
|
|
5
|
-
} from './AuthorizationResultBasedEntityMutator';
|
|
6
|
-
import { EnforcingEntityCreator } from './EnforcingEntityCreator';
|
|
7
|
-
import { EnforcingEntityDeleter } from './EnforcingEntityDeleter';
|
|
8
|
-
import { EnforcingEntityUpdater } from './EnforcingEntityUpdater';
|
|
9
|
-
import { EntityCompanionDefinition } from './EntityCompanionProvider';
|
|
10
|
-
import { EntityCreator } from './EntityCreator';
|
|
11
|
-
import { EntityDeleter } from './EntityDeleter';
|
|
12
|
-
import { EntityPrivacyPolicy } from './EntityPrivacyPolicy';
|
|
13
|
-
import { EntityQueryContext } from './EntityQueryContext';
|
|
14
|
-
import { EntityUpdater } from './EntityUpdater';
|
|
15
|
-
import { ReadonlyEntity } from './ReadonlyEntity';
|
|
16
|
-
import { ViewerContext } from './ViewerContext';
|
|
5
|
+
} from './AuthorizationResultBasedEntityMutator.ts';
|
|
6
|
+
import type { EnforcingEntityCreator } from './EnforcingEntityCreator.ts';
|
|
7
|
+
import type { EnforcingEntityDeleter } from './EnforcingEntityDeleter.ts';
|
|
8
|
+
import type { EnforcingEntityUpdater } from './EnforcingEntityUpdater.ts';
|
|
9
|
+
import type { EntityCompanionDefinition } from './EntityCompanionProvider.ts';
|
|
10
|
+
import { EntityCreator } from './EntityCreator.ts';
|
|
11
|
+
import { EntityDeleter } from './EntityDeleter.ts';
|
|
12
|
+
import type { EntityPrivacyPolicy } from './EntityPrivacyPolicy.ts';
|
|
13
|
+
import type { EntityQueryContext } from './EntityQueryContext.ts';
|
|
14
|
+
import { EntityUpdater } from './EntityUpdater.ts';
|
|
15
|
+
import { ReadonlyEntity } from './ReadonlyEntity.ts';
|
|
16
|
+
import type { ViewerContext } from './ViewerContext.ts';
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
19
|
* Entity is a privacy-first data model.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { AuthorizationResultBasedEntityAssociationLoader } from './AuthorizationResultBasedEntityAssociationLoader';
|
|
2
|
-
import { EnforcingEntityAssociationLoader } from './EnforcingEntityAssociationLoader';
|
|
3
|
-
import { IEntityClass } from './Entity';
|
|
4
|
-
import { EntityQueryContext } from './EntityQueryContext';
|
|
5
|
-
import { ReadonlyEntity } from './ReadonlyEntity';
|
|
6
|
-
import { ViewerContext } from './ViewerContext';
|
|
1
|
+
import { AuthorizationResultBasedEntityAssociationLoader } from './AuthorizationResultBasedEntityAssociationLoader.ts';
|
|
2
|
+
import { EnforcingEntityAssociationLoader } from './EnforcingEntityAssociationLoader.ts';
|
|
3
|
+
import type { IEntityClass } from './Entity.ts';
|
|
4
|
+
import type { EntityQueryContext } from './EntityQueryContext.ts';
|
|
5
|
+
import type { ReadonlyEntity } from './ReadonlyEntity.ts';
|
|
6
|
+
import type { ViewerContext } from './ViewerContext.ts';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* An association loader is a set of convenience methods for loading entities
|
package/src/EntityCompanion.ts
CHANGED
|
@@ -1,13 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
1
|
+
import type {
|
|
2
|
+
EntityCompanionDefinition,
|
|
3
|
+
EntityCompanionProvider,
|
|
4
|
+
} from './EntityCompanionProvider.ts';
|
|
5
|
+
import { EntityLoaderFactory } from './EntityLoaderFactory.ts';
|
|
6
|
+
import { EntityMutatorFactory } from './EntityMutatorFactory.ts';
|
|
7
|
+
import type { EntityPrivacyPolicy } from './EntityPrivacyPolicy.ts';
|
|
8
|
+
import type { EntityQueryContextProvider } from './EntityQueryContextProvider.ts';
|
|
9
|
+
import type { ReadonlyEntity } from './ReadonlyEntity.ts';
|
|
10
|
+
import type { ViewerContext } from './ViewerContext.ts';
|
|
11
|
+
import type { EntityTableDataCoordinator } from './internal/EntityTableDataCoordinator.ts';
|
|
12
|
+
import type { IEntityMetricsAdapter } from './metrics/IEntityMetricsAdapter.ts';
|
|
13
|
+
import { mergeEntityMutationTriggerConfigurations } from './utils/mergeEntityMutationTriggerConfigurations.ts';
|
|
11
14
|
|
|
12
15
|
export interface IPrivacyPolicyClass<TPrivacyPolicy> {
|
|
13
16
|
new (): TPrivacyPolicy;
|
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
import invariant from 'invariant';
|
|
2
2
|
|
|
3
|
-
import { IEntityClass } from './Entity';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
3
|
+
import type { IEntityClass } from './Entity.ts';
|
|
4
|
+
import type { IPrivacyPolicyClass } from './EntityCompanion.ts';
|
|
5
|
+
import { EntityCompanion } from './EntityCompanion.ts';
|
|
6
|
+
import type { EntityConfiguration } from './EntityConfiguration.ts';
|
|
7
|
+
import type { EntityMutationTriggerConfiguration } from './EntityMutationTriggerConfiguration.ts';
|
|
8
|
+
import type { EntityMutationValidatorConfiguration } from './EntityMutationValidatorConfiguration.ts';
|
|
9
|
+
import type { EntityPrivacyPolicy } from './EntityPrivacyPolicy.ts';
|
|
10
|
+
import type { EntityQueryContextProvider } from './EntityQueryContextProvider.ts';
|
|
11
|
+
import type { IEntityCacheAdapterProvider } from './IEntityCacheAdapterProvider.ts';
|
|
12
|
+
import type { IEntityDatabaseAdapterProvider } from './IEntityDatabaseAdapterProvider.ts';
|
|
13
|
+
import type { ReadonlyEntity } from './ReadonlyEntity.ts';
|
|
14
|
+
import type { ViewerContext } from './ViewerContext.ts';
|
|
15
|
+
import { EntityTableDataCoordinator } from './internal/EntityTableDataCoordinator.ts';
|
|
16
|
+
import type { IEntityMetricsAdapter } from './metrics/IEntityMetricsAdapter.ts';
|
|
17
|
+
import { computeIfAbsent } from './utils/collections/maps.ts';
|
|
17
18
|
|
|
18
19
|
/**
|
|
19
20
|
* Backing database and transaction type for an entity. The definitions and implementations
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import invariant from 'invariant';
|
|
2
2
|
|
|
3
|
-
import { IEntityClass } from './Entity';
|
|
4
|
-
import { CacheAdapterFlavor, DatabaseAdapterFlavor } from './EntityCompanionProvider';
|
|
5
|
-
import { EntityFieldDefinition } from './EntityFieldDefinition';
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
} from './internal/CompositeFieldHolder';
|
|
10
|
-
import { invertMap, mapMap, reduceMap } from './utils/collections/maps';
|
|
3
|
+
import type { IEntityClass } from './Entity.ts';
|
|
4
|
+
import type { CacheAdapterFlavor, DatabaseAdapterFlavor } from './EntityCompanionProvider.ts';
|
|
5
|
+
import type { EntityFieldDefinition } from './EntityFieldDefinition.ts';
|
|
6
|
+
import type { SerializedCompositeFieldHolder } from './internal/CompositeFieldHolder.ts';
|
|
7
|
+
import { CompositeFieldHolder } from './internal/CompositeFieldHolder.ts';
|
|
8
|
+
import { invertMap, mapMap, reduceMap } from './utils/collections/maps.ts';
|
|
11
9
|
|
|
12
10
|
/**
|
|
13
11
|
* A composite field is an unordered set of fields by which entities can be loaded in a batched
|