@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.
Files changed (425) hide show
  1. package/build/{AuthorizationResultBasedEntityAssociationLoader.d.ts → src/AuthorizationResultBasedEntityAssociationLoader.d.ts} +4 -4
  2. package/build/{AuthorizationResultBasedEntityAssociationLoader.js → src/AuthorizationResultBasedEntityAssociationLoader.js} +2 -1
  3. package/build/src/AuthorizationResultBasedEntityAssociationLoader.js.map +1 -0
  4. package/build/{AuthorizationResultBasedEntityLoader.d.ts → src/AuthorizationResultBasedEntityLoader.d.ts} +8 -8
  5. package/build/{AuthorizationResultBasedEntityLoader.js → src/AuthorizationResultBasedEntityLoader.js} +6 -5
  6. package/build/src/AuthorizationResultBasedEntityLoader.js.map +1 -0
  7. package/build/{AuthorizationResultBasedEntityMutator.d.ts → src/AuthorizationResultBasedEntityMutator.d.ts} +15 -13
  8. package/build/{AuthorizationResultBasedEntityMutator.js → src/AuthorizationResultBasedEntityMutator.js} +77 -39
  9. package/build/src/AuthorizationResultBasedEntityMutator.js.map +1 -0
  10. package/build/{ComposedEntityCacheAdapter.d.ts → src/ComposedEntityCacheAdapter.d.ts} +2 -2
  11. package/build/{ComposedEntityCacheAdapter.js → src/ComposedEntityCacheAdapter.js} +2 -1
  12. package/build/src/ComposedEntityCacheAdapter.js.map +1 -0
  13. package/build/{ComposedSecondaryEntityCache.d.ts → src/ComposedSecondaryEntityCache.d.ts} +1 -1
  14. package/build/{ComposedSecondaryEntityCache.js → src/ComposedSecondaryEntityCache.js} +2 -1
  15. package/build/src/ComposedSecondaryEntityCache.js.map +1 -0
  16. package/build/{EnforcingEntityAssociationLoader.d.ts → src/EnforcingEntityAssociationLoader.d.ts} +5 -5
  17. package/build/{EnforcingEntityAssociationLoader.js → src/EnforcingEntityAssociationLoader.js} +2 -1
  18. package/build/src/EnforcingEntityAssociationLoader.js.map +1 -0
  19. package/build/{EnforcingEntityCreator.d.ts → src/EnforcingEntityCreator.d.ts} +4 -4
  20. package/build/{EnforcingEntityCreator.js → src/EnforcingEntityCreator.js} +2 -1
  21. package/build/src/EnforcingEntityCreator.js.map +1 -0
  22. package/build/{EnforcingEntityDeleter.d.ts → src/EnforcingEntityDeleter.d.ts} +4 -4
  23. package/build/{EnforcingEntityDeleter.js → src/EnforcingEntityDeleter.js} +2 -1
  24. package/build/src/EnforcingEntityDeleter.js.map +1 -0
  25. package/build/{EnforcingEntityLoader.d.ts → src/EnforcingEntityLoader.d.ts} +5 -5
  26. package/build/{EnforcingEntityLoader.js → src/EnforcingEntityLoader.js} +2 -1
  27. package/build/src/EnforcingEntityLoader.js.map +1 -0
  28. package/build/{EnforcingEntityUpdater.d.ts → src/EnforcingEntityUpdater.d.ts} +4 -4
  29. package/build/{EnforcingEntityUpdater.js → src/EnforcingEntityUpdater.js} +2 -1
  30. package/build/src/EnforcingEntityUpdater.js.map +1 -0
  31. package/build/{Entity.d.ts → src/Entity.d.ts} +7 -7
  32. package/build/{Entity.js → src/Entity.js} +13 -15
  33. package/build/src/Entity.js.map +1 -0
  34. package/build/{EntityAssociationLoader.d.ts → src/EntityAssociationLoader.d.ts} +5 -5
  35. package/build/{EntityAssociationLoader.js → src/EntityAssociationLoader.js} +6 -8
  36. package/build/src/EntityAssociationLoader.js.map +1 -0
  37. package/build/{EntityCompanion.d.ts → src/EntityCompanion.d.ts} +10 -10
  38. package/build/{EntityCompanion.js → src/EntityCompanion.js} +6 -8
  39. package/build/src/EntityCompanion.js.map +1 -0
  40. package/build/{EntityCompanionProvider.d.ts → src/EntityCompanionProvider.d.ts} +12 -12
  41. package/build/{EntityCompanionProvider.js → src/EntityCompanionProvider.js} +6 -5
  42. package/build/src/EntityCompanionProvider.js.map +1 -0
  43. package/build/{EntityConfiguration.d.ts → src/EntityConfiguration.d.ts} +2 -2
  44. package/build/{EntityConfiguration.js → src/EntityConfiguration.js} +2 -2
  45. package/build/src/EntityConfiguration.js.map +1 -0
  46. package/build/{EntityCreator.d.ts → src/EntityCreator.d.ts} +5 -5
  47. package/build/{EntityCreator.js → src/EntityCreator.js} +4 -6
  48. package/build/{EntityCreator.js.map → src/EntityCreator.js.map} +1 -1
  49. package/build/{EntityDatabaseAdapter.d.ts → src/EntityDatabaseAdapter.d.ts} +2 -2
  50. package/build/{EntityDatabaseAdapter.js → src/EntityDatabaseAdapter.js} +2 -2
  51. package/build/src/EntityDatabaseAdapter.js.map +1 -0
  52. package/build/{EntityDeleter.d.ts → src/EntityDeleter.d.ts} +5 -5
  53. package/build/{EntityDeleter.js → src/EntityDeleter.js} +5 -7
  54. package/build/{EntityDeleter.js.map → src/EntityDeleter.js.map} +1 -1
  55. package/build/{EntityFieldDefinition.d.ts → src/EntityFieldDefinition.d.ts} +3 -3
  56. package/build/src/EntityFieldDefinition.js.map +1 -0
  57. package/build/{EntityFields.d.ts → src/EntityFields.d.ts} +7 -0
  58. package/build/{EntityFields.js → src/EntityFields.js} +11 -1
  59. package/build/src/EntityFields.js.map +1 -0
  60. package/build/{EntityLoader.d.ts → src/EntityLoader.d.ts} +7 -7
  61. package/build/{EntityLoader.js → src/EntityLoader.js} +4 -6
  62. package/build/{EntityLoader.js.map → src/EntityLoader.js.map} +1 -1
  63. package/build/{EntityLoaderFactory.d.ts → src/EntityLoaderFactory.d.ts} +8 -8
  64. package/build/src/EntityLoaderFactory.js +29 -0
  65. package/build/src/EntityLoaderFactory.js.map +1 -0
  66. package/build/{EntityLoaderUtils.d.ts → src/EntityLoaderUtils.d.ts} +7 -7
  67. package/build/{EntityLoaderUtils.js → src/EntityLoaderUtils.js} +2 -1
  68. package/build/src/EntityLoaderUtils.js.map +1 -0
  69. package/build/{EntityMutationInfo.d.ts → src/EntityMutationInfo.d.ts} +2 -2
  70. package/build/src/EntityMutationInfo.js.map +1 -0
  71. package/build/{EntityMutationTriggerConfiguration.d.ts → src/EntityMutationTriggerConfiguration.d.ts} +3 -3
  72. package/build/src/EntityMutationTriggerConfiguration.js.map +1 -0
  73. package/build/{EntityMutationValidator.d.ts → src/EntityMutationValidator.d.ts} +3 -3
  74. package/build/{EntityMutationValidator.js → src/EntityMutationValidator.js} +2 -1
  75. package/build/src/EntityMutationValidator.js.map +1 -0
  76. package/build/{EntityMutatorFactory.d.ts → src/EntityMutatorFactory.d.ts} +15 -14
  77. package/build/{EntityMutatorFactory.js → src/EntityMutatorFactory.js} +6 -5
  78. package/build/src/EntityMutatorFactory.js.map +1 -0
  79. package/build/{EntityPrivacyPolicy.d.ts → src/EntityPrivacyPolicy.d.ts} +6 -6
  80. package/build/{EntityPrivacyPolicy.js → src/EntityPrivacyPolicy.js} +8 -11
  81. package/build/{EntityPrivacyPolicy.js.map → src/EntityPrivacyPolicy.js.map} +1 -1
  82. package/build/{EntityQueryContext.d.ts → src/EntityQueryContext.d.ts} +1 -1
  83. package/build/src/EntityQueryContext.js.map +1 -0
  84. package/build/{EntityQueryContextProvider.d.ts → src/EntityQueryContextProvider.d.ts} +2 -2
  85. package/build/{EntityQueryContextProvider.js → src/EntityQueryContextProvider.js} +2 -1
  86. package/build/src/EntityQueryContextProvider.js.map +1 -0
  87. package/build/{EntitySecondaryCacheLoader.d.ts → src/EntitySecondaryCacheLoader.d.ts} +5 -5
  88. package/build/{EntitySecondaryCacheLoader.js → src/EntitySecondaryCacheLoader.js} +2 -1
  89. package/build/src/EntitySecondaryCacheLoader.js.map +1 -0
  90. package/build/{EntityUpdater.d.ts → src/EntityUpdater.d.ts} +5 -5
  91. package/build/{EntityUpdater.js → src/EntityUpdater.js} +5 -7
  92. package/build/{EntityUpdater.js.map → src/EntityUpdater.js.map} +1 -1
  93. package/build/{GenericEntityCacheAdapter.d.ts → src/GenericEntityCacheAdapter.d.ts} +3 -3
  94. package/build/{GenericEntityCacheAdapter.js → src/GenericEntityCacheAdapter.js} +2 -1
  95. package/build/src/GenericEntityCacheAdapter.js.map +1 -0
  96. package/build/{GenericSecondaryEntityCache.d.ts → src/GenericSecondaryEntityCache.d.ts} +2 -2
  97. package/build/{GenericSecondaryEntityCache.js → src/GenericSecondaryEntityCache.js} +2 -1
  98. package/build/src/GenericSecondaryEntityCache.js.map +1 -0
  99. package/build/{IEntityCacheAdapter.d.ts → src/IEntityCacheAdapter.d.ts} +1 -1
  100. package/build/src/IEntityCacheAdapter.js.map +1 -0
  101. package/build/{IEntityCacheAdapterProvider.d.ts → src/IEntityCacheAdapterProvider.d.ts} +3 -3
  102. package/build/src/IEntityCacheAdapterProvider.js.map +1 -0
  103. package/build/{IEntityDatabaseAdapterProvider.d.ts → src/IEntityDatabaseAdapterProvider.d.ts} +3 -3
  104. package/build/src/IEntityDatabaseAdapterProvider.js.map +1 -0
  105. package/build/{IEntityGenericCacher.d.ts → src/IEntityGenericCacher.d.ts} +1 -1
  106. package/build/src/IEntityGenericCacher.js.map +1 -0
  107. package/build/{ReadonlyEntity.d.ts → src/ReadonlyEntity.d.ts} +8 -8
  108. package/build/{ReadonlyEntity.js → src/ReadonlyEntity.js} +9 -8
  109. package/build/src/ReadonlyEntity.js.map +1 -0
  110. package/build/{ViewerContext.d.ts → src/ViewerContext.d.ts} +5 -5
  111. package/build/{ViewerContext.js → src/ViewerContext.js} +4 -6
  112. package/build/{ViewerContext.js.map → src/ViewerContext.js.map} +1 -1
  113. package/build/{ViewerScopedEntityCompanion.d.ts → src/ViewerScopedEntityCompanion.d.ts} +9 -9
  114. package/build/{ViewerScopedEntityCompanion.js → src/ViewerScopedEntityCompanion.js} +6 -8
  115. package/build/{ViewerScopedEntityCompanion.js.map → src/ViewerScopedEntityCompanion.js.map} +1 -1
  116. package/build/{ViewerScopedEntityCompanionProvider.d.ts → src/ViewerScopedEntityCompanionProvider.d.ts} +6 -6
  117. package/build/{ViewerScopedEntityCompanionProvider.js → src/ViewerScopedEntityCompanionProvider.js} +4 -6
  118. package/build/src/ViewerScopedEntityCompanionProvider.js.map +1 -0
  119. package/build/{ViewerScopedEntityLoaderFactory.d.ts → src/ViewerScopedEntityLoaderFactory.d.ts} +6 -6
  120. package/build/{ViewerScopedEntityLoaderFactory.js → src/ViewerScopedEntityLoaderFactory.js} +2 -1
  121. package/build/src/ViewerScopedEntityLoaderFactory.js.map +1 -0
  122. package/build/{ViewerScopedEntityMutatorFactory.d.ts → src/ViewerScopedEntityMutatorFactory.d.ts} +9 -8
  123. package/build/{ViewerScopedEntityMutatorFactory.js → src/ViewerScopedEntityMutatorFactory.js} +6 -5
  124. package/build/src/ViewerScopedEntityMutatorFactory.js.map +1 -0
  125. package/build/src/entityUtils.js.map +1 -0
  126. package/build/{errors → src/errors}/EntityCacheAdapterError.d.ts +2 -2
  127. package/build/src/errors/EntityCacheAdapterError.js +13 -0
  128. package/build/src/errors/EntityCacheAdapterError.js.map +1 -0
  129. package/build/{errors → src/errors}/EntityDatabaseAdapterError.d.ts +2 -2
  130. package/build/{errors → src/errors}/EntityDatabaseAdapterError.js +4 -37
  131. package/build/src/errors/EntityDatabaseAdapterError.js.map +1 -0
  132. package/build/{errors → src/errors}/EntityError.d.ts +1 -1
  133. package/build/{errors → src/errors}/EntityError.js +2 -2
  134. package/build/src/errors/EntityError.js.map +1 -0
  135. package/build/{errors → src/errors}/EntityInvalidFieldValueError.d.ts +5 -5
  136. package/build/src/errors/EntityInvalidFieldValueError.js +13 -0
  137. package/build/src/errors/EntityInvalidFieldValueError.js.map +1 -0
  138. package/build/{errors → src/errors}/EntityNotAuthorizedError.d.ts +4 -4
  139. package/build/src/errors/EntityNotAuthorizedError.js +16 -0
  140. package/build/src/errors/EntityNotAuthorizedError.js.map +1 -0
  141. package/build/{errors → src/errors}/EntityNotFoundError.d.ts +5 -5
  142. package/build/src/errors/EntityNotFoundError.js +18 -0
  143. package/build/src/errors/EntityNotFoundError.js.map +1 -0
  144. package/build/src/index.d.ts +76 -0
  145. package/build/src/index.js +94 -0
  146. package/build/src/index.js.map +1 -0
  147. package/build/{internal → src/internal}/CompositeFieldHolder.d.ts +1 -1
  148. package/build/src/internal/CompositeFieldHolder.js.map +1 -0
  149. package/build/src/internal/CompositeFieldValueMap.js.map +1 -0
  150. package/build/{internal → src/internal}/EntityDataManager.d.ts +5 -5
  151. package/build/{internal → src/internal}/EntityDataManager.js +2 -1
  152. package/build/src/internal/EntityDataManager.js.map +1 -0
  153. package/build/{internal → src/internal}/EntityFieldTransformationUtils.d.ts +1 -1
  154. package/build/src/internal/EntityFieldTransformationUtils.js.map +1 -0
  155. package/build/{internal → src/internal}/EntityLoadInterfaces.d.ts +1 -1
  156. package/build/src/internal/EntityLoadInterfaces.js.map +1 -0
  157. package/build/{internal → src/internal}/EntityTableDataCoordinator.d.ts +9 -9
  158. package/build/{internal → src/internal}/EntityTableDataCoordinator.js +5 -7
  159. package/build/{internal → src/internal}/EntityTableDataCoordinator.js.map +1 -1
  160. package/build/{internal → src/internal}/ReadThroughEntityCache.d.ts +3 -3
  161. package/build/{internal → src/internal}/ReadThroughEntityCache.js +2 -2
  162. package/build/src/internal/ReadThroughEntityCache.js.map +1 -0
  163. package/build/{internal → src/internal}/SingleFieldHolder.d.ts +1 -1
  164. package/build/src/internal/SingleFieldHolder.js.map +1 -0
  165. package/build/{metrics → src/metrics}/EntityMetricsUtils.d.ts +1 -1
  166. package/build/src/metrics/EntityMetricsUtils.js.map +1 -0
  167. package/build/{metrics → src/metrics}/IEntityMetricsAdapter.d.ts +1 -1
  168. package/build/src/metrics/IEntityMetricsAdapter.js.map +1 -0
  169. package/build/{metrics → src/metrics}/NoOpEntityMetricsAdapter.d.ts +2 -2
  170. package/build/{metrics → src/metrics}/NoOpEntityMetricsAdapter.js +2 -1
  171. package/build/src/metrics/NoOpEntityMetricsAdapter.js.map +1 -0
  172. package/build/{rules → src/rules}/AlwaysAllowPrivacyPolicyRule.d.ts +4 -4
  173. package/build/src/rules/AlwaysAllowPrivacyPolicyRule.js +14 -0
  174. package/build/src/rules/AlwaysAllowPrivacyPolicyRule.js.map +1 -0
  175. package/build/{rules → src/rules}/AlwaysDenyPrivacyPolicyRule.d.ts +4 -4
  176. package/build/src/rules/AlwaysDenyPrivacyPolicyRule.js +14 -0
  177. package/build/src/rules/AlwaysDenyPrivacyPolicyRule.js.map +1 -0
  178. package/build/{rules → src/rules}/AlwaysSkipPrivacyPolicyRule.d.ts +4 -4
  179. package/build/src/rules/AlwaysSkipPrivacyPolicyRule.js +14 -0
  180. package/build/src/rules/AlwaysSkipPrivacyPolicyRule.js.map +1 -0
  181. package/build/{rules → src/rules}/PrivacyPolicyRule.d.ts +3 -3
  182. package/build/{rules → src/rules}/PrivacyPolicyRule.js +2 -2
  183. package/build/src/rules/PrivacyPolicyRule.js.map +1 -0
  184. package/build/{utils → src/utils}/EntityCreationUtils.d.ts +3 -3
  185. package/build/{utils → src/utils}/EntityCreationUtils.js +2 -5
  186. package/build/{utils → src/utils}/EntityCreationUtils.js.map +1 -1
  187. package/build/{utils → src/utils}/EntityPrivacyUtils.d.ts +4 -4
  188. package/build/{utils → src/utils}/EntityPrivacyUtils.js +4 -7
  189. package/build/{utils → src/utils}/EntityPrivacyUtils.js.map +1 -1
  190. package/build/src/utils/collections/SerializableKeyMap.js.map +1 -0
  191. package/build/src/utils/collections/maps.js.map +1 -0
  192. package/build/src/utils/collections/sets.js.map +1 -0
  193. package/build/{utils → src/utils}/mergeEntityMutationTriggerConfigurations.d.ts +3 -3
  194. package/build/src/utils/mergeEntityMutationTriggerConfigurations.js.map +1 -0
  195. package/package.json +14 -24
  196. package/src/AuthorizationResultBasedEntityAssociationLoader.ts +4 -4
  197. package/src/AuthorizationResultBasedEntityLoader.ts +13 -12
  198. package/src/AuthorizationResultBasedEntityMutator.ts +78 -63
  199. package/src/ComposedEntityCacheAdapter.ts +3 -3
  200. package/src/ComposedSecondaryEntityCache.ts +1 -1
  201. package/src/EnforcingEntityAssociationLoader.ts +6 -5
  202. package/src/EnforcingEntityCreator.ts +4 -4
  203. package/src/EnforcingEntityDeleter.ts +4 -4
  204. package/src/EnforcingEntityLoader.ts +5 -5
  205. package/src/EnforcingEntityUpdater.ts +4 -4
  206. package/src/Entity.ts +10 -10
  207. package/src/EntityAssociationLoader.ts +5 -5
  208. package/src/EntityCompanion.ts +10 -10
  209. package/src/EntityCompanionProvider.ts +13 -13
  210. package/src/EntityConfiguration.ts +3 -3
  211. package/src/EntityCreator.ts +5 -5
  212. package/src/EntityDatabaseAdapter.ts +3 -3
  213. package/src/EntityDeleter.ts +6 -6
  214. package/src/EntityFieldDefinition.ts +3 -3
  215. package/src/EntityFields.ts +13 -0
  216. package/src/EntityLoader.ts +7 -7
  217. package/src/EntityLoaderFactory.ts +9 -9
  218. package/src/EntityLoaderUtils.ts +7 -7
  219. package/src/EntityMutationInfo.ts +2 -2
  220. package/src/EntityMutationTriggerConfiguration.ts +3 -3
  221. package/src/EntityMutationValidator.ts +3 -3
  222. package/src/EntityMutatorFactory.ts +17 -12
  223. package/src/EntityPrivacyPolicy.ts +7 -6
  224. package/src/EntityQueryContext.ts +1 -1
  225. package/src/EntityQueryContextProvider.ts +3 -3
  226. package/src/EntitySecondaryCacheLoader.ts +5 -5
  227. package/src/EntityUpdater.ts +6 -6
  228. package/src/GenericEntityCacheAdapter.ts +3 -3
  229. package/src/GenericSecondaryEntityCache.ts +2 -2
  230. package/src/IEntityCacheAdapter.ts +1 -1
  231. package/src/IEntityCacheAdapterProvider.ts +3 -3
  232. package/src/IEntityDatabaseAdapterProvider.ts +3 -3
  233. package/src/IEntityGenericCacher.ts +1 -1
  234. package/src/ReadonlyEntity.ts +10 -10
  235. package/src/ViewerContext.ts +6 -6
  236. package/src/ViewerScopedEntityCompanion.ts +9 -9
  237. package/src/ViewerScopedEntityCompanionProvider.ts +6 -6
  238. package/src/ViewerScopedEntityLoaderFactory.ts +6 -6
  239. package/src/ViewerScopedEntityMutatorFactory.ts +11 -8
  240. package/src/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.ts +5 -4
  241. package/src/__tests__/AuthorizationResultBasedEntityLoader-constructor-test.ts +14 -18
  242. package/src/__tests__/AuthorizationResultBasedEntityLoader-test.ts +18 -16
  243. package/src/__tests__/ComposedCacheAdapter-test.ts +5 -3
  244. package/src/__tests__/ComposedSecondaryEntityCache-test.ts +2 -1
  245. package/src/__tests__/EnforcingEntityAssociationLoader-test.ts +4 -3
  246. package/src/__tests__/EnforcingEntityLoader-test.ts +4 -3
  247. package/src/__tests__/Entity-test.ts +8 -6
  248. package/src/__tests__/EntityAssociationLoader-test.ts +7 -5
  249. package/src/__tests__/EntityCommonUseCases-test.ts +10 -9
  250. package/src/__tests__/EntityCompanion-test.ts +13 -11
  251. package/src/__tests__/EntityCompanionProvider-test.ts +7 -5
  252. package/src/__tests__/EntityConfiguration-test.ts +3 -1
  253. package/src/__tests__/EntityDatabaseAdapter-test.ts +9 -7
  254. package/src/__tests__/EntityEdges-test.ts +10 -8
  255. package/src/__tests__/EntityFields-test.ts +15 -7
  256. package/src/__tests__/EntityLoader-test.ts +8 -6
  257. package/src/__tests__/EntityMutator-MutationCacheConsistency-test.ts +8 -6
  258. package/src/__tests__/EntityMutator-SingleCompositeFieldCacheConsistency-test.ts +5 -3
  259. package/src/__tests__/EntityMutator-test.ts +250 -45
  260. package/src/__tests__/EntityPrivacyPolicy-test.ts +19 -16
  261. package/src/__tests__/EntityQueryContext-test.ts +7 -6
  262. package/src/__tests__/EntitySecondaryCacheLoader-test.ts +5 -3
  263. package/src/__tests__/EntitySelfReferentialEdges-test.ts +7 -5
  264. package/src/__tests__/GenericEntityCacheAdapter-test.ts +4 -3
  265. package/src/__tests__/ReadonlyEntity-test.ts +10 -9
  266. package/src/__tests__/ViewerContext-test.ts +3 -1
  267. package/src/__tests__/ViewerScopedEntityCompanion-test.ts +10 -8
  268. package/src/__tests__/ViewerScopedEntityCompanionProvider-test.ts +7 -6
  269. package/src/__tests__/ViewerScopedEntityLoaderFactory-test.ts +5 -4
  270. package/src/__tests__/ViewerScopedEntityMutatorFactory-test.ts +8 -6
  271. package/src/__tests__/cases/TwoEntitySameTableDisjointRows-test.ts +15 -13
  272. package/src/__tests__/cases/TwoEntitySameTableOverlappingRows-test.ts +7 -5
  273. package/src/__tests__/entityUtils-test.ts +3 -2
  274. package/src/errors/EntityCacheAdapterError.ts +2 -2
  275. package/src/errors/EntityDatabaseAdapterError.ts +2 -2
  276. package/src/errors/EntityError.ts +1 -1
  277. package/src/errors/EntityInvalidFieldValueError.ts +5 -5
  278. package/src/errors/EntityNotAuthorizedError.ts +4 -4
  279. package/src/errors/EntityNotFoundError.ts +5 -5
  280. package/src/errors/__tests__/EntityDatabaseAdapterError-test.ts +6 -3
  281. package/src/index.ts +39 -54
  282. package/src/internal/CompositeFieldHolder.ts +2 -1
  283. package/src/internal/EntityDataManager.ts +7 -5
  284. package/src/internal/EntityFieldTransformationUtils.ts +1 -1
  285. package/src/internal/EntityLoadInterfaces.ts +1 -1
  286. package/src/internal/EntityTableDataCoordinator.ts +10 -10
  287. package/src/internal/ReadThroughEntityCache.ts +3 -3
  288. package/src/internal/SingleFieldHolder.ts +1 -1
  289. package/src/internal/__tests__/CompositeFieldHolder-test.ts +2 -0
  290. package/src/internal/__tests__/CompositeFieldValueMap-test.ts +2 -0
  291. package/src/internal/__tests__/EntityDataManager-test.ts +34 -31
  292. package/src/internal/__tests__/EntityFieldTransformationUtils-test.ts +5 -3
  293. package/src/internal/__tests__/ReadThroughEntityCache-test.ts +5 -4
  294. package/src/metrics/EntityMetricsUtils.ts +3 -2
  295. package/src/metrics/IEntityMetricsAdapter.ts +1 -1
  296. package/src/metrics/NoOpEntityMetricsAdapter.ts +3 -2
  297. package/src/rules/AlwaysAllowPrivacyPolicyRule.ts +4 -4
  298. package/src/rules/AlwaysDenyPrivacyPolicyRule.ts +4 -4
  299. package/src/rules/AlwaysSkipPrivacyPolicyRule.ts +4 -4
  300. package/src/rules/PrivacyPolicyRule.ts +3 -3
  301. package/src/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.ts +3 -3
  302. package/src/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.ts +3 -3
  303. package/src/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.ts +3 -3
  304. package/src/utils/EntityCreationUtils.ts +4 -4
  305. package/src/utils/EntityPrivacyUtils.ts +5 -5
  306. package/src/utils/__testfixtures__/PrivacyPolicyRuleTestUtils.ts +5 -3
  307. package/src/utils/__testfixtures__/SimpleTestEntity.ts +6 -6
  308. package/src/utils/__testfixtures__/StubCacheAdapter.ts +4 -4
  309. package/src/utils/__testfixtures__/StubDatabaseAdapter.ts +8 -7
  310. package/src/utils/__testfixtures__/StubDatabaseAdapterProvider.ts +5 -5
  311. package/src/utils/__testfixtures__/StubQueryContextProvider.ts +2 -2
  312. package/src/utils/__testfixtures__/TestEntity.ts +7 -7
  313. package/src/utils/__testfixtures__/TestEntity2.ts +6 -6
  314. package/src/utils/__testfixtures__/TestEntityWithMutationTriggers.ts +6 -10
  315. package/src/utils/__testfixtures__/TestViewerContext.ts +2 -2
  316. package/src/utils/__testfixtures__/createUnitTestEntityCompanionProvider.ts +5 -5
  317. package/src/utils/__testfixtures__/describeFieldTestCase.ts +3 -1
  318. package/src/utils/__tests__/EntityCreationUtils-test.ts +5 -3
  319. package/src/utils/__tests__/EntityPrivacyUtils-test.ts +15 -13
  320. package/src/utils/__tests__/canViewerDeleteAsync-edgeDeletionPermissionInferenceBehavior-test.ts +10 -8
  321. package/src/utils/__tests__/mergeEntityMutationTriggerConfigurations-test.ts +2 -0
  322. package/src/utils/collections/__tests__/SerializableKeyMap-test.ts +2 -0
  323. package/src/utils/collections/__tests__/maps-test.ts +3 -1
  324. package/src/utils/collections/__tests__/sets-test.ts +2 -0
  325. package/src/utils/mergeEntityMutationTriggerConfigurations.ts +3 -3
  326. package/LICENSE +0 -21
  327. package/build/AuthorizationResultBasedEntityAssociationLoader.js.map +0 -1
  328. package/build/AuthorizationResultBasedEntityLoader.js.map +0 -1
  329. package/build/AuthorizationResultBasedEntityMutator.js.map +0 -1
  330. package/build/ComposedEntityCacheAdapter.js.map +0 -1
  331. package/build/ComposedSecondaryEntityCache.js.map +0 -1
  332. package/build/EnforcingEntityAssociationLoader.js.map +0 -1
  333. package/build/EnforcingEntityCreator.js.map +0 -1
  334. package/build/EnforcingEntityDeleter.js.map +0 -1
  335. package/build/EnforcingEntityLoader.js.map +0 -1
  336. package/build/EnforcingEntityUpdater.js.map +0 -1
  337. package/build/Entity.js.map +0 -1
  338. package/build/EntityAssociationLoader.js.map +0 -1
  339. package/build/EntityCompanion.js.map +0 -1
  340. package/build/EntityCompanionProvider.js.map +0 -1
  341. package/build/EntityConfiguration.js.map +0 -1
  342. package/build/EntityDatabaseAdapter.js.map +0 -1
  343. package/build/EntityFieldDefinition.js.map +0 -1
  344. package/build/EntityFields.js.map +0 -1
  345. package/build/EntityLoaderFactory.js +0 -31
  346. package/build/EntityLoaderFactory.js.map +0 -1
  347. package/build/EntityLoaderUtils.js.map +0 -1
  348. package/build/EntityMutationInfo.js.map +0 -1
  349. package/build/EntityMutationTriggerConfiguration.js.map +0 -1
  350. package/build/EntityMutationValidator.js.map +0 -1
  351. package/build/EntityMutatorFactory.js.map +0 -1
  352. package/build/EntityQueryContext.js.map +0 -1
  353. package/build/EntityQueryContextProvider.js.map +0 -1
  354. package/build/EntitySecondaryCacheLoader.js.map +0 -1
  355. package/build/GenericEntityCacheAdapter.js.map +0 -1
  356. package/build/GenericSecondaryEntityCache.js.map +0 -1
  357. package/build/IEntityCacheAdapter.js.map +0 -1
  358. package/build/IEntityCacheAdapterProvider.js.map +0 -1
  359. package/build/IEntityDatabaseAdapterProvider.js.map +0 -1
  360. package/build/IEntityGenericCacher.js.map +0 -1
  361. package/build/ReadonlyEntity.js.map +0 -1
  362. package/build/ViewerScopedEntityCompanionProvider.js.map +0 -1
  363. package/build/ViewerScopedEntityLoaderFactory.js.map +0 -1
  364. package/build/ViewerScopedEntityMutatorFactory.js.map +0 -1
  365. package/build/entityUtils.js.map +0 -1
  366. package/build/errors/EntityCacheAdapterError.js +0 -46
  367. package/build/errors/EntityCacheAdapterError.js.map +0 -1
  368. package/build/errors/EntityDatabaseAdapterError.js.map +0 -1
  369. package/build/errors/EntityError.js.map +0 -1
  370. package/build/errors/EntityInvalidFieldValueError.js +0 -45
  371. package/build/errors/EntityInvalidFieldValueError.js.map +0 -1
  372. package/build/errors/EntityNotAuthorizedError.js +0 -48
  373. package/build/errors/EntityNotAuthorizedError.js.map +0 -1
  374. package/build/errors/EntityNotFoundError.js +0 -50
  375. package/build/errors/EntityNotFoundError.js.map +0 -1
  376. package/build/index.d.ts +0 -91
  377. package/build/index.js +0 -155
  378. package/build/index.js.map +0 -1
  379. package/build/internal/CompositeFieldHolder.js.map +0 -1
  380. package/build/internal/CompositeFieldValueMap.js.map +0 -1
  381. package/build/internal/EntityDataManager.js.map +0 -1
  382. package/build/internal/EntityFieldTransformationUtils.js.map +0 -1
  383. package/build/internal/EntityLoadInterfaces.js.map +0 -1
  384. package/build/internal/ReadThroughEntityCache.js.map +0 -1
  385. package/build/internal/SingleFieldHolder.js.map +0 -1
  386. package/build/metrics/EntityMetricsUtils.js.map +0 -1
  387. package/build/metrics/IEntityMetricsAdapter.js.map +0 -1
  388. package/build/metrics/NoOpEntityMetricsAdapter.js.map +0 -1
  389. package/build/rules/AlwaysAllowPrivacyPolicyRule.js +0 -46
  390. package/build/rules/AlwaysAllowPrivacyPolicyRule.js.map +0 -1
  391. package/build/rules/AlwaysDenyPrivacyPolicyRule.js +0 -46
  392. package/build/rules/AlwaysDenyPrivacyPolicyRule.js.map +0 -1
  393. package/build/rules/AlwaysSkipPrivacyPolicyRule.js +0 -46
  394. package/build/rules/AlwaysSkipPrivacyPolicyRule.js.map +0 -1
  395. package/build/rules/PrivacyPolicyRule.js.map +0 -1
  396. package/build/tsconfig.build.tsbuildinfo +0 -1
  397. package/build/utils/collections/SerializableKeyMap.js.map +0 -1
  398. package/build/utils/collections/maps.js.map +0 -1
  399. package/build/utils/collections/sets.js.map +0 -1
  400. package/build/utils/mergeEntityMutationTriggerConfigurations.js.map +0 -1
  401. /package/build/{EntityFieldDefinition.js → src/EntityFieldDefinition.js} +0 -0
  402. /package/build/{EntityMutationInfo.js → src/EntityMutationInfo.js} +0 -0
  403. /package/build/{EntityMutationTriggerConfiguration.js → src/EntityMutationTriggerConfiguration.js} +0 -0
  404. /package/build/{EntityQueryContext.js → src/EntityQueryContext.js} +0 -0
  405. /package/build/{IEntityCacheAdapter.js → src/IEntityCacheAdapter.js} +0 -0
  406. /package/build/{IEntityCacheAdapterProvider.js → src/IEntityCacheAdapterProvider.js} +0 -0
  407. /package/build/{IEntityDatabaseAdapterProvider.js → src/IEntityDatabaseAdapterProvider.js} +0 -0
  408. /package/build/{IEntityGenericCacher.js → src/IEntityGenericCacher.js} +0 -0
  409. /package/build/{entityUtils.d.ts → src/entityUtils.d.ts} +0 -0
  410. /package/build/{entityUtils.js → src/entityUtils.js} +0 -0
  411. /package/build/{internal → src/internal}/CompositeFieldHolder.js +0 -0
  412. /package/build/{internal → src/internal}/CompositeFieldValueMap.d.ts +0 -0
  413. /package/build/{internal → src/internal}/CompositeFieldValueMap.js +0 -0
  414. /package/build/{internal → src/internal}/EntityFieldTransformationUtils.js +0 -0
  415. /package/build/{internal → src/internal}/EntityLoadInterfaces.js +0 -0
  416. /package/build/{internal → src/internal}/SingleFieldHolder.js +0 -0
  417. /package/build/{metrics → src/metrics}/EntityMetricsUtils.js +0 -0
  418. /package/build/{metrics → src/metrics}/IEntityMetricsAdapter.js +0 -0
  419. /package/build/{utils → src/utils}/collections/SerializableKeyMap.d.ts +0 -0
  420. /package/build/{utils → src/utils}/collections/SerializableKeyMap.js +0 -0
  421. /package/build/{utils → src/utils}/collections/maps.d.ts +0 -0
  422. /package/build/{utils → src/utils}/collections/maps.js +0 -0
  423. /package/build/{utils → src/utils}/collections/sets.d.ts +0 -0
  424. /package/build/{utils → src/utils}/collections/sets.js +0 -0
  425. /package/build/{utils → src/utils}/mergeEntityMutationTriggerConfigurations.js +0 -0
@@ -1,37 +1,40 @@
1
+ import { describe, expect, it, jest } from '@jest/globals';
1
2
  import {
2
- mock,
3
- instance,
4
- when,
5
- anything,
6
- verify,
7
- spy,
3
+ anyNumber,
8
4
  anyString,
9
- resetCalls,
5
+ anything,
10
6
  deepEqual,
11
- anyNumber,
7
+ instance,
8
+ mock,
9
+ resetCalls,
10
+ spy,
11
+ verify,
12
+ when,
12
13
  } from 'ts-mockito';
13
14
 
14
- import EntityDatabaseAdapter from '../../EntityDatabaseAdapter';
15
+ import { EntityDatabaseAdapter } from '../../EntityDatabaseAdapter';
15
16
  import { TransactionalDataLoaderMode } from '../../EntityQueryContext';
16
- import IEntityMetricsAdapter, {
17
+ import {
17
18
  EntityMetricsLoadType,
19
+ IEntityMetricsAdapter,
18
20
  IncrementLoadCountEventType,
19
21
  } from '../../metrics/IEntityMetricsAdapter';
20
- import NoOpEntityMetricsAdapter from '../../metrics/NoOpEntityMetricsAdapter';
22
+ import { NoOpEntityMetricsAdapter } from '../../metrics/NoOpEntityMetricsAdapter';
21
23
  import {
22
- NoCacheStubCacheAdapterProvider,
23
24
  InMemoryFullCacheStubCacheAdapterProvider,
25
+ NoCacheStubCacheAdapterProvider,
24
26
  } from '../../utils/__testfixtures__/StubCacheAdapter';
25
- import StubDatabaseAdapter from '../../utils/__testfixtures__/StubDatabaseAdapter';
26
- import StubQueryContextProvider from '../../utils/__testfixtures__/StubQueryContextProvider';
27
- import TestEntity, {
27
+ import { StubDatabaseAdapter } from '../../utils/__testfixtures__/StubDatabaseAdapter';
28
+ import { StubQueryContextProvider } from '../../utils/__testfixtures__/StubQueryContextProvider';
29
+ import {
30
+ TestEntity,
28
31
  testEntityConfiguration,
29
32
  TestFields,
30
33
  } from '../../utils/__testfixtures__/TestEntity';
31
34
  import { CompositeFieldHolder, CompositeFieldValueHolder } from '../CompositeFieldHolder';
32
- import EntityDataManager from '../EntityDataManager';
35
+ import { EntityDataManager } from '../EntityDataManager';
33
36
  import { EntityLoadMethodType } from '../EntityLoadInterfaces';
34
- import ReadThroughEntityCache from '../ReadThroughEntityCache';
37
+ import { ReadThroughEntityCache } from '../ReadThroughEntityCache';
35
38
  import { SingleFieldHolder, SingleFieldValueHolder } from '../SingleFieldHolder';
36
39
 
37
40
  const getObjects = (): Map<string, TestFields[]> =>
@@ -303,7 +306,7 @@ describe(EntityDataManager, () => {
303
306
  expect(dbSpy).toHaveBeenCalledTimes(1);
304
307
  expect(cacheSpy).toHaveBeenCalledTimes(1);
305
308
 
306
- expect(entityData).toMatchObject(entityData2);
309
+ expect(entityData).toEqual(entityData2);
307
310
  expect(entityData.get(new SingleFieldValueHolder('hello'))).toHaveLength(2);
308
311
  expect(entityData.get(new SingleFieldValueHolder('world'))).toHaveLength(1);
309
312
 
@@ -378,9 +381,9 @@ describe(EntityDataManager, () => {
378
381
  expect(dbSpy).toHaveBeenCalledTimes(3);
379
382
  expect(cacheSpy).toHaveBeenCalledTimes(0);
380
383
 
381
- expect(entityData).toMatchObject(entityData2);
382
- expect(entityData2).toMatchObject(entityData3);
383
- expect(entityData3).toMatchObject(entityData4);
384
+ expect(entityData).toEqual(entityData2);
385
+ expect(entityData2).toEqual(entityData3);
386
+ expect(entityData3).toEqual(entityData4);
384
387
  expect(entityData.get(new SingleFieldValueHolder('hello'))).toHaveLength(2);
385
388
  expect(entityData.get(new SingleFieldValueHolder('world'))).toHaveLength(1);
386
389
 
@@ -453,9 +456,9 @@ describe(EntityDataManager, () => {
453
456
  expect(dbSpy).toHaveBeenCalledTimes(3);
454
457
  expect(cacheSpy).toHaveBeenCalledTimes(0);
455
458
 
456
- expect(entityData).toMatchObject(entityData2);
457
- expect(entityData2).toMatchObject(entityData3);
458
- expect(entityData3).toMatchObject(entityData4);
459
+ expect(entityData).toEqual(entityData2);
460
+ expect(entityData2).toEqual(entityData3);
461
+ expect(entityData3).toEqual(entityData4);
459
462
  expect(entityData.get(new SingleFieldValueHolder('hello'))).toHaveLength(2);
460
463
  expect(entityData.get(new SingleFieldValueHolder('world'))).toHaveLength(1);
461
464
 
@@ -532,9 +535,9 @@ describe(EntityDataManager, () => {
532
535
  expect(dbSpy).toHaveBeenCalledTimes(4);
533
536
  expect(cacheSpy).toHaveBeenCalledTimes(0);
534
537
 
535
- expect(entityData).toMatchObject(entityData2);
536
- expect(entityData2).toMatchObject(entityData3);
537
- expect(entityData3).toMatchObject(entityData4);
538
+ expect(entityData).toEqual(entityData2);
539
+ expect(entityData2).toEqual(entityData3);
540
+ expect(entityData3).toEqual(entityData4);
538
541
  expect(entityData.get(new SingleFieldValueHolder('hello'))).toHaveLength(2);
539
542
  expect(entityData.get(new SingleFieldValueHolder('world'))).toHaveLength(1);
540
543
 
@@ -1273,7 +1276,7 @@ describe(EntityDataManager, () => {
1273
1276
  new SingleFieldHolder('nullableField'),
1274
1277
  [new SingleFieldValueHolder(null as any)],
1275
1278
  ),
1276
- ).rejects.toThrowError('Invalid load: TestEntity (nullableField = null)');
1279
+ ).rejects.toThrow('Invalid load: TestEntity (nullableField = null)');
1277
1280
 
1278
1281
  await expect(
1279
1282
  entityDataManager.loadManyEqualingAsync(
@@ -1281,7 +1284,7 @@ describe(EntityDataManager, () => {
1281
1284
  new SingleFieldHolder('nullableField'),
1282
1285
  [new SingleFieldValueHolder(undefined as any)],
1283
1286
  ),
1284
- ).rejects.toThrowError('Invalid load: TestEntity (nullableField = undefined)');
1287
+ ).rejects.toThrow('Invalid load: TestEntity (nullableField = undefined)');
1285
1288
  });
1286
1289
 
1287
1290
  it('throws when a composite value load-by value is null or undefined', async () => {
@@ -1320,7 +1323,7 @@ describe(EntityDataManager, () => {
1320
1323
  }),
1321
1324
  ],
1322
1325
  ),
1323
- ).rejects.toThrowError(
1326
+ ).rejects.toThrow(
1324
1327
  'Invalid load: TestEntity (nullableField,testIndexedField = CompositeFieldValue(nullableField=null,testIndexedField=unique1))',
1325
1328
  );
1326
1329
 
@@ -1338,7 +1341,7 @@ describe(EntityDataManager, () => {
1338
1341
  }),
1339
1342
  ],
1340
1343
  ),
1341
- ).rejects.toThrowError(
1344
+ ).rejects.toThrow(
1342
1345
  'Invalid load: TestEntity (nullableField,testIndexedField = CompositeFieldValue(nullableField=undefined,testIndexedField=unique1))',
1343
1346
  );
1344
1347
  });
@@ -1,11 +1,13 @@
1
- import EntityConfiguration from '../../EntityConfiguration';
1
+ import { describe, expect, it } from '@jest/globals';
2
+
3
+ import { EntityConfiguration } from '../../EntityConfiguration';
2
4
  import { StringField, UUIDField } from '../../EntityFields';
3
5
  import {
4
6
  getDatabaseFieldForEntityField,
5
- transformDatabaseObjectToFields,
6
- transformFieldsToDatabaseObject,
7
7
  transformCacheObjectToFields,
8
+ transformDatabaseObjectToFields,
8
9
  transformFieldsToCacheObject,
10
+ transformFieldsToDatabaseObject,
9
11
  } from '../EntityFieldTransformationUtils';
10
12
 
11
13
  type BlahT = {
@@ -1,13 +1,14 @@
1
- import { verify, mock, instance, when, anything } from 'ts-mockito';
1
+ import { describe, expect, it, jest } from '@jest/globals';
2
+ import { anything, instance, mock, verify, when } from 'ts-mockito';
2
3
 
3
- import EntityConfiguration from '../../EntityConfiguration';
4
+ import { EntityConfiguration } from '../../EntityConfiguration';
4
5
  import { UUIDField } from '../../EntityFields';
5
- import IEntityCacheAdapter from '../../IEntityCacheAdapter';
6
+ import { IEntityCacheAdapter } from '../../IEntityCacheAdapter';
6
7
  import {
7
8
  deepEqualEntityAware,
8
9
  isEqualWithEntityAware,
9
10
  } from '../../utils/__testfixtures__/TSMockitoExtensions';
10
- import ReadThroughEntityCache, { CacheStatus } from '../ReadThroughEntityCache';
11
+ import { CacheStatus, ReadThroughEntityCache } from '../ReadThroughEntityCache';
11
12
  import {
12
13
  SingleFieldHolder,
13
14
  SingleFieldValueHolder,
@@ -1,8 +1,9 @@
1
- import IEntityMetricsAdapter, {
1
+ import { EntityQueryContext } from '../EntityQueryContext';
2
+ import {
2
3
  EntityMetricsLoadType,
3
4
  EntityMetricsMutationType,
5
+ IEntityMetricsAdapter,
4
6
  } from './IEntityMetricsAdapter';
5
- import { EntityQueryContext } from '../EntityQueryContext';
6
7
  import { IEntityLoadValue } from '../internal/EntityLoadInterfaces';
7
8
  import { reduceMap } from '../utils/collections/maps';
8
9
 
@@ -150,7 +150,7 @@ export interface EntityMetricsAuthorizationEvent {
150
150
  * An interface for gathering metrics about the Entity framework. Information about
151
151
  * entity load and mutation operations is piped to an instance of this adapter.
152
152
  */
153
- export default interface IEntityMetricsAdapter {
153
+ export interface IEntityMetricsAdapter {
154
154
  /**
155
155
  * Called when a EntityPrivacyPolicy authorization succeeds or fails.
156
156
  * @param authorizationEvent - info about the authorization event
@@ -1,11 +1,12 @@
1
- import IEntityMetricsAdapter, {
1
+ import {
2
2
  EntityMetricsAuthorizationEvent,
3
3
  EntityMetricsLoadEvent,
4
4
  EntityMetricsMutationEvent,
5
+ IEntityMetricsAdapter,
5
6
  IncrementLoadCountEvent,
6
7
  } from './IEntityMetricsAdapter';
7
8
 
8
- export default class NoOpEntityMetricsAdapter implements IEntityMetricsAdapter {
9
+ export class NoOpEntityMetricsAdapter implements IEntityMetricsAdapter {
9
10
  logAuthorizationEvent(_authorizationEvent: EntityMetricsAuthorizationEvent): void {}
10
11
  logDataManagerLoadEvent(_loadEvent: EntityMetricsLoadEvent): void {}
11
12
  logMutatorMutationEvent(_mutationEvent: EntityMetricsMutationEvent): void {}
@@ -1,13 +1,13 @@
1
- import PrivacyPolicyRule, { RuleEvaluationResult } from './PrivacyPolicyRule';
2
1
  import { EntityPrivacyPolicyEvaluationContext } from '../EntityPrivacyPolicy';
3
2
  import { EntityQueryContext } from '../EntityQueryContext';
4
- import ReadonlyEntity from '../ReadonlyEntity';
5
- import ViewerContext from '../ViewerContext';
3
+ import { ReadonlyEntity } from '../ReadonlyEntity';
4
+ import { ViewerContext } from '../ViewerContext';
5
+ import { PrivacyPolicyRule, RuleEvaluationResult } from './PrivacyPolicyRule';
6
6
 
7
7
  /**
8
8
  * Privacy policy rule that always allows.
9
9
  */
10
- export default class AlwaysAllowPrivacyPolicyRule<
10
+ export class AlwaysAllowPrivacyPolicyRule<
11
11
  TFields extends Record<string, any>,
12
12
  TIDField extends keyof NonNullable<Pick<TFields, TSelectedFields>>,
13
13
  TViewerContext extends ViewerContext,
@@ -1,13 +1,13 @@
1
- import PrivacyPolicyRule, { RuleEvaluationResult } from './PrivacyPolicyRule';
2
1
  import { EntityPrivacyPolicyEvaluationContext } from '../EntityPrivacyPolicy';
3
2
  import { EntityQueryContext } from '../EntityQueryContext';
4
- import ReadonlyEntity from '../ReadonlyEntity';
5
- import ViewerContext from '../ViewerContext';
3
+ import { ReadonlyEntity } from '../ReadonlyEntity';
4
+ import { ViewerContext } from '../ViewerContext';
5
+ import { PrivacyPolicyRule, RuleEvaluationResult } from './PrivacyPolicyRule';
6
6
 
7
7
  /**
8
8
  * Privacy policy rule that always denies.
9
9
  */
10
- export default class AlwaysDenyPrivacyPolicyRule<
10
+ export class AlwaysDenyPrivacyPolicyRule<
11
11
  TFields extends Record<string, any>,
12
12
  TIDField extends keyof NonNullable<Pick<TFields, TSelectedFields>>,
13
13
  TViewerContext extends ViewerContext,
@@ -1,13 +1,13 @@
1
- import PrivacyPolicyRule, { RuleEvaluationResult } from './PrivacyPolicyRule';
2
1
  import { EntityPrivacyPolicyEvaluationContext } from '../EntityPrivacyPolicy';
3
2
  import { EntityQueryContext } from '../EntityQueryContext';
4
- import ReadonlyEntity from '../ReadonlyEntity';
5
- import ViewerContext from '../ViewerContext';
3
+ import { ReadonlyEntity } from '../ReadonlyEntity';
4
+ import { ViewerContext } from '../ViewerContext';
5
+ import { PrivacyPolicyRule, RuleEvaluationResult } from './PrivacyPolicyRule';
6
6
 
7
7
  /**
8
8
  * A no-op policy rule that always skips.
9
9
  */
10
- export default class AlwaysSkipPrivacyPolicyRule<
10
+ export class AlwaysSkipPrivacyPolicyRule<
11
11
  TFields extends Record<string, any>,
12
12
  TIDField extends keyof NonNullable<Pick<TFields, TSelectedFields>>,
13
13
  TViewerContext extends ViewerContext,
@@ -1,7 +1,7 @@
1
1
  import { EntityPrivacyPolicyEvaluationContext } from '../EntityPrivacyPolicy';
2
2
  import { EntityQueryContext } 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
  export enum RuleEvaluationResult {
7
7
  /**
@@ -36,7 +36,7 @@ export enum RuleEvaluationResult {
36
36
  * - Blocking. For example, a user blocks another user from seeing their posts, and the rule
37
37
  * would be named something like `DenyIfViewerHasBeenBlockedPrivacyPolicyRule`.
38
38
  */
39
- export default abstract class PrivacyPolicyRule<
39
+ export abstract class PrivacyPolicyRule<
40
40
  TFields extends Record<string, any>,
41
41
  TIDField extends keyof NonNullable<Pick<TFields, TSelectedFields>>,
42
42
  TViewerContext extends ViewerContext,
@@ -1,10 +1,10 @@
1
- import { mock, instance, anything } from 'ts-mockito';
1
+ import { anything, instance, mock } from 'ts-mockito';
2
2
 
3
3
  import { EntityPrivacyPolicyEvaluationContext } from '../../EntityPrivacyPolicy';
4
4
  import { EntityQueryContext } from '../../EntityQueryContext';
5
- import ViewerContext from '../../ViewerContext';
5
+ import { ViewerContext } from '../../ViewerContext';
6
6
  import { describePrivacyPolicyRule } from '../../utils/__testfixtures__/PrivacyPolicyRuleTestUtils';
7
- import AlwaysAllowPrivacyPolicyRule from '../AlwaysAllowPrivacyPolicyRule';
7
+ import { AlwaysAllowPrivacyPolicyRule } from '../AlwaysAllowPrivacyPolicyRule';
8
8
 
9
9
  describePrivacyPolicyRule(new AlwaysAllowPrivacyPolicyRule(), {
10
10
  allowCases: [
@@ -1,10 +1,10 @@
1
- import { mock, instance, anything } from 'ts-mockito';
1
+ import { anything, instance, mock } from 'ts-mockito';
2
2
 
3
3
  import { EntityPrivacyPolicyEvaluationContext } from '../../EntityPrivacyPolicy';
4
4
  import { EntityQueryContext } from '../../EntityQueryContext';
5
- import ViewerContext from '../../ViewerContext';
5
+ import { ViewerContext } from '../../ViewerContext';
6
6
  import { describePrivacyPolicyRule } from '../../utils/__testfixtures__/PrivacyPolicyRuleTestUtils';
7
- import AlwaysDenyPrivacyPolicyRule from '../AlwaysDenyPrivacyPolicyRule';
7
+ import { AlwaysDenyPrivacyPolicyRule } from '../AlwaysDenyPrivacyPolicyRule';
8
8
 
9
9
  describePrivacyPolicyRule(new AlwaysDenyPrivacyPolicyRule(), {
10
10
  denyCases: [
@@ -1,10 +1,10 @@
1
- import { mock, instance, anything } from 'ts-mockito';
1
+ import { anything, instance, mock } from 'ts-mockito';
2
2
 
3
3
  import { EntityPrivacyPolicyEvaluationContext } from '../../EntityPrivacyPolicy';
4
4
  import { EntityQueryContext } from '../../EntityQueryContext';
5
- import ViewerContext from '../../ViewerContext';
5
+ import { ViewerContext } from '../../ViewerContext';
6
6
  import { describePrivacyPolicyRule } from '../../utils/__testfixtures__/PrivacyPolicyRuleTestUtils';
7
- import AlwaysSkipPrivacyPolicyRule from '../AlwaysSkipPrivacyPolicyRule';
7
+ import { AlwaysSkipPrivacyPolicyRule } from '../AlwaysSkipPrivacyPolicyRule';
8
8
 
9
9
  describePrivacyPolicyRule(new AlwaysSkipPrivacyPolicyRule(), {
10
10
  skipCases: [
@@ -1,10 +1,10 @@
1
1
  import { IEntityClass } from '../Entity';
2
- import EntityPrivacyPolicy from '../EntityPrivacyPolicy';
2
+ import { EntityPrivacyPolicy } from '../EntityPrivacyPolicy';
3
3
  import { EntityTransactionalQueryContext } from '../EntityQueryContext';
4
- import ReadonlyEntity from '../ReadonlyEntity';
5
- import ViewerContext from '../ViewerContext';
4
+ import { ReadonlyEntity } from '../ReadonlyEntity';
5
+ import { ViewerContext } from '../ViewerContext';
6
6
  import { EntityDatabaseAdapterUniqueConstraintError } from '../errors/EntityDatabaseAdapterError';
7
- import EntityNotFoundError from '../errors/EntityNotFoundError';
7
+ import { EntityNotFoundError } from '../errors/EntityNotFoundError';
8
8
 
9
9
  /**
10
10
  * Create an entity if it doesn't exist, or get the existing entity if it does.
@@ -1,16 +1,16 @@
1
1
  import { Result, asyncResult } from '@expo/results';
2
2
 
3
- import Entity, { IEntityClass } from '../Entity';
3
+ import { Entity, IEntityClass } from '../Entity';
4
4
  import {
5
- EntityEdgeDeletionBehavior,
6
5
  EntityEdgeDeletionAuthorizationInferenceBehavior,
6
+ EntityEdgeDeletionBehavior,
7
7
  } from '../EntityFieldDefinition';
8
8
  import { EntityCascadingDeletionInfo } from '../EntityMutationInfo';
9
- import EntityPrivacyPolicy from '../EntityPrivacyPolicy';
9
+ import { EntityPrivacyPolicy } from '../EntityPrivacyPolicy';
10
10
  import { EntityQueryContext } from '../EntityQueryContext';
11
- import ViewerContext from '../ViewerContext';
11
+ import { ViewerContext } from '../ViewerContext';
12
12
  import { failedResults, partitionArray } from '../entityUtils';
13
- import EntityNotAuthorizedError from '../errors/EntityNotAuthorizedError';
13
+ import { EntityNotAuthorizedError } from '../errors/EntityNotAuthorizedError';
14
14
 
15
15
  export type EntityPrivacyEvaluationResultSuccess = {
16
16
  allowed: true;
@@ -1,8 +1,10 @@
1
+ import { describe, expect, test } from '@jest/globals';
2
+
1
3
  import { EntityPrivacyPolicyEvaluationContext } from '../../EntityPrivacyPolicy';
2
4
  import { EntityQueryContext } from '../../EntityQueryContext';
3
- import ReadonlyEntity from '../../ReadonlyEntity';
4
- import ViewerContext from '../../ViewerContext';
5
- import PrivacyPolicyRule, { RuleEvaluationResult } from '../../rules/PrivacyPolicyRule';
5
+ import { ReadonlyEntity } from '../../ReadonlyEntity';
6
+ import { ViewerContext } from '../../ViewerContext';
7
+ import { PrivacyPolicyRule, RuleEvaluationResult } from '../../rules/PrivacyPolicyRule';
6
8
 
7
9
  export interface Case<
8
10
  TFields extends Record<string, any>,
@@ -1,10 +1,10 @@
1
- import Entity from '../../Entity';
1
+ import { Entity } from '../../Entity';
2
2
  import { EntityCompanionDefinition } from '../../EntityCompanionProvider';
3
- import EntityConfiguration from '../../EntityConfiguration';
3
+ import { EntityConfiguration } from '../../EntityConfiguration';
4
4
  import { UUIDField } from '../../EntityFields';
5
- import EntityPrivacyPolicy from '../../EntityPrivacyPolicy';
6
- import ViewerContext from '../../ViewerContext';
7
- import AlwaysAllowPrivacyPolicyRule from '../../rules/AlwaysAllowPrivacyPolicyRule';
5
+ import { EntityPrivacyPolicy } from '../../EntityPrivacyPolicy';
6
+ import { ViewerContext } from '../../ViewerContext';
7
+ import { AlwaysAllowPrivacyPolicyRule } from '../../rules/AlwaysAllowPrivacyPolicyRule';
8
8
 
9
9
  export type SimpleTestFields = {
10
10
  id: string;
@@ -70,7 +70,7 @@ export class SimpleTestEntityPrivacyPolicy extends EntityPrivacyPolicy<
70
70
  ];
71
71
  }
72
72
 
73
- export default class SimpleTestEntity extends Entity<
73
+ export class SimpleTestEntity extends Entity<
74
74
  SimpleTestFields,
75
75
  'id',
76
76
  ViewerContext,
@@ -1,10 +1,10 @@
1
1
  import invariant from 'invariant';
2
2
 
3
- import EntityConfiguration from '../../EntityConfiguration';
4
- import IEntityCacheAdapter from '../../IEntityCacheAdapter';
5
- import IEntityCacheAdapterProvider from '../../IEntityCacheAdapterProvider';
3
+ import { EntityConfiguration } from '../../EntityConfiguration';
4
+ import { IEntityCacheAdapter } from '../../IEntityCacheAdapter';
5
+ import { IEntityCacheAdapterProvider } from '../../IEntityCacheAdapterProvider';
6
6
  import { IEntityLoadKey, IEntityLoadValue } from '../../internal/EntityLoadInterfaces';
7
- import { CacheStatus, CacheLoadResult } from '../../internal/ReadThroughEntityCache';
7
+ import { CacheLoadResult, CacheStatus } from '../../internal/ReadThroughEntityCache';
8
8
 
9
9
  export class NoCacheStubCacheAdapterProvider implements IEntityCacheAdapterProvider {
10
10
  getCacheAdapter<TFields extends Record<string, any>, TIDField extends keyof TFields>(
@@ -1,22 +1,23 @@
1
1
  import invariant from 'invariant';
2
2
  import { uuidv7 } from 'uuidv7';
3
3
 
4
- import EntityConfiguration from '../../EntityConfiguration';
5
- import EntityDatabaseAdapter, {
6
- TableFieldSingleValueEqualityCondition,
4
+ import { EntityConfiguration } from '../../EntityConfiguration';
5
+ import {
6
+ EntityDatabaseAdapter,
7
+ OrderByOrdering,
7
8
  TableFieldMultiValueEqualityCondition,
9
+ TableFieldSingleValueEqualityCondition,
8
10
  TableQuerySelectionModifiers,
9
- OrderByOrdering,
10
11
  } from '../../EntityDatabaseAdapter';
11
- import { StringField, IntField } from '../../EntityFields';
12
+ import { IntField, StringField } from '../../EntityFields';
12
13
  import {
13
- getDatabaseFieldForEntityField,
14
14
  FieldTransformerMap,
15
+ getDatabaseFieldForEntityField,
15
16
  transformFieldsToDatabaseObject,
16
17
  } from '../../internal/EntityFieldTransformationUtils';
17
18
  import { computeIfAbsent, mapMap } from '../collections/maps';
18
19
 
19
- export default class StubDatabaseAdapter<
20
+ export class StubDatabaseAdapter<
20
21
  TFields extends Record<string, any>,
21
22
  TIDField extends keyof TFields,
22
23
  > extends EntityDatabaseAdapter<TFields, TIDField> {
@@ -1,9 +1,9 @@
1
- import EntityConfiguration from '../../EntityConfiguration';
2
- import EntityDatabaseAdapter from '../../EntityDatabaseAdapter';
3
- import IEntityDatabaseAdapterProvider from '../../IEntityDatabaseAdapterProvider';
4
- import StubDatabaseAdapter from '../__testfixtures__/StubDatabaseAdapter';
1
+ import { EntityConfiguration } from '../../EntityConfiguration';
2
+ import { EntityDatabaseAdapter } from '../../EntityDatabaseAdapter';
3
+ import { IEntityDatabaseAdapterProvider } from '../../IEntityDatabaseAdapterProvider';
4
+ import { StubDatabaseAdapter } from '../__testfixtures__/StubDatabaseAdapter';
5
5
 
6
- export default class StubDatabaseAdapterProvider implements IEntityDatabaseAdapterProvider {
6
+ export class StubDatabaseAdapterProvider implements IEntityDatabaseAdapterProvider {
7
7
  private readonly objectCollection = new Map();
8
8
 
9
9
  getDatabaseAdapter<TFields extends Record<string, any>, TIDField extends keyof TFields>(
@@ -1,7 +1,7 @@
1
1
  import { TransactionConfig } from '../../EntityQueryContext';
2
- import EntityQueryContextProvider from '../../EntityQueryContextProvider';
2
+ import { EntityQueryContextProvider } from '../../EntityQueryContextProvider';
3
3
 
4
- export default class StubQueryContextProvider extends EntityQueryContextProvider {
4
+ export class StubQueryContextProvider extends EntityQueryContextProvider {
5
5
  protected getQueryInterface(): any {
6
6
  return {};
7
7
  }
@@ -1,12 +1,12 @@
1
1
  import { result, Result } from '@expo/results';
2
2
 
3
- import Entity from '../../Entity';
3
+ import { Entity } from '../../Entity';
4
4
  import { EntityCompanionDefinition } from '../../EntityCompanionProvider';
5
- import EntityConfiguration from '../../EntityConfiguration';
6
- import { StringField, DateField, IntField, UUIDField } from '../../EntityFields';
7
- import EntityPrivacyPolicy from '../../EntityPrivacyPolicy';
8
- import ViewerContext from '../../ViewerContext';
9
- import AlwaysAllowPrivacyPolicyRule from '../../rules/AlwaysAllowPrivacyPolicyRule';
5
+ import { EntityConfiguration } from '../../EntityConfiguration';
6
+ import { DateField, IntField, StringField, UUIDField } from '../../EntityFields';
7
+ import { EntityPrivacyPolicy } from '../../EntityPrivacyPolicy';
8
+ import { ViewerContext } from '../../ViewerContext';
9
+ import { AlwaysAllowPrivacyPolicyRule } from '../../rules/AlwaysAllowPrivacyPolicyRule';
10
10
 
11
11
  export type TestFields = {
12
12
  customIdField: string;
@@ -71,7 +71,7 @@ export class TestEntityPrivacyPolicy extends EntityPrivacyPolicy<
71
71
  ];
72
72
  }
73
73
 
74
- export default class TestEntity extends Entity<TestFields, 'customIdField', ViewerContext> {
74
+ export class TestEntity extends Entity<TestFields, 'customIdField', ViewerContext> {
75
75
  static defineCompanionDefinition(): EntityCompanionDefinition<
76
76
  TestFields,
77
77
  'customIdField',
@@ -1,10 +1,10 @@
1
- import Entity from '../../Entity';
1
+ import { Entity } from '../../Entity';
2
2
  import { EntityCompanionDefinition } from '../../EntityCompanionProvider';
3
- import EntityConfiguration from '../../EntityConfiguration';
3
+ import { EntityConfiguration } from '../../EntityConfiguration';
4
4
  import { UUIDField } from '../../EntityFields';
5
- import EntityPrivacyPolicy from '../../EntityPrivacyPolicy';
6
- import ViewerContext from '../../ViewerContext';
7
- import AlwaysAllowPrivacyPolicyRule from '../../rules/AlwaysAllowPrivacyPolicyRule';
5
+ import { EntityPrivacyPolicy } from '../../EntityPrivacyPolicy';
6
+ import { ViewerContext } from '../../ViewerContext';
7
+ import { AlwaysAllowPrivacyPolicyRule } from '../../rules/AlwaysAllowPrivacyPolicyRule';
8
8
 
9
9
  export type Test2Fields = {
10
10
  id: string;
@@ -47,7 +47,7 @@ export class TestEntity2PrivacyPolicy extends EntityPrivacyPolicy<
47
47
  ];
48
48
  }
49
49
 
50
- export default class TestEntity2 extends Entity<Test2Fields, 'id', ViewerContext> {
50
+ export class TestEntity2 extends Entity<Test2Fields, 'id', ViewerContext> {
51
51
  static defineCompanionDefinition(): EntityCompanionDefinition<
52
52
  Test2Fields,
53
53
  'id',
@@ -1,16 +1,16 @@
1
- import Entity from '../../Entity';
1
+ import { Entity } from '../../Entity';
2
2
  import { EntityCompanionDefinition } from '../../EntityCompanionProvider';
3
- import EntityConfiguration from '../../EntityConfiguration';
3
+ import { EntityConfiguration } from '../../EntityConfiguration';
4
4
  import { StringField, UUIDField } from '../../EntityFields';
5
5
  import { EntityTriggerMutationInfo } from '../../EntityMutationInfo';
6
6
  import {
7
7
  EntityMutationTrigger,
8
8
  EntityNonTransactionalMutationTrigger,
9
9
  } from '../../EntityMutationTriggerConfiguration';
10
- import EntityPrivacyPolicy from '../../EntityPrivacyPolicy';
10
+ import { EntityPrivacyPolicy } from '../../EntityPrivacyPolicy';
11
11
  import { EntityQueryContext } from '../../EntityQueryContext';
12
- import ViewerContext from '../../ViewerContext';
13
- import AlwaysAllowPrivacyPolicyRule from '../../rules/AlwaysAllowPrivacyPolicyRule';
12
+ import { ViewerContext } from '../../ViewerContext';
13
+ import { AlwaysAllowPrivacyPolicyRule } from '../../rules/AlwaysAllowPrivacyPolicyRule';
14
14
 
15
15
  export type TestMTFields = {
16
16
  id: string;
@@ -131,11 +131,7 @@ export class NonTransactionalTestMutationTrigger extends EntityNonTransactionalM
131
131
  /**
132
132
  * A test Entity that has one afterCreate and one afterAll trigger
133
133
  */
134
- export default class TestEntityWithMutationTriggers extends Entity<
135
- TestMTFields,
136
- 'id',
137
- ViewerContext
138
- > {
134
+ export class TestEntityWithMutationTriggers extends Entity<TestMTFields, 'id', ViewerContext> {
139
135
  static defineCompanionDefinition(): EntityCompanionDefinition<
140
136
  TestMTFields,
141
137
  'id',
@@ -1,3 +1,3 @@
1
- import ViewerContext from '../../ViewerContext';
1
+ import { ViewerContext } from '../../ViewerContext';
2
2
 
3
- export default class TestViewerContext extends ViewerContext {}
3
+ export class TestViewerContext extends ViewerContext {}
@@ -1,9 +1,9 @@
1
1
  import { InMemoryFullCacheStubCacheAdapterProvider } from './StubCacheAdapter';
2
- import StubDatabaseAdapterProvider from './StubDatabaseAdapterProvider';
3
- import StubQueryContextProvider from './StubQueryContextProvider';
4
- import EntityCompanionProvider from '../../EntityCompanionProvider';
5
- import IEntityMetricsAdapter from '../../metrics/IEntityMetricsAdapter';
6
- import NoOpEntityMetricsAdapter from '../../metrics/NoOpEntityMetricsAdapter';
2
+ import { StubDatabaseAdapterProvider } from './StubDatabaseAdapterProvider';
3
+ import { StubQueryContextProvider } from './StubQueryContextProvider';
4
+ import { EntityCompanionProvider } from '../../EntityCompanionProvider';
5
+ import { IEntityMetricsAdapter } from '../../metrics/IEntityMetricsAdapter';
6
+ import { NoOpEntityMetricsAdapter } from '../../metrics/NoOpEntityMetricsAdapter';
7
7
 
8
8
  const queryContextProvider = new StubQueryContextProvider();
9
9
 
@@ -1,6 +1,8 @@
1
+ import { describe, expect, test } from '@jest/globals';
2
+
1
3
  import { EntityFieldDefinition } from '../../EntityFieldDefinition';
2
4
 
3
- export default function describeFieldTestCase<T>(
5
+ export function describeFieldTestCase<T>(
4
6
  fieldDefinition: EntityFieldDefinition<T, any>,
5
7
  validValues: T[],
6
8
  invalidValues: any[],