@expo/entity 0.41.0 → 0.43.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (430) hide show
  1. package/build/AuthorizationResultBasedEntityAssociationLoader.d.ts +16 -16
  2. package/build/AuthorizationResultBasedEntityAssociationLoader.js.map +1 -1
  3. package/build/AuthorizationResultBasedEntityLoader.d.ts +39 -67
  4. package/build/AuthorizationResultBasedEntityLoader.js +85 -62
  5. package/build/AuthorizationResultBasedEntityLoader.js.map +1 -1
  6. package/build/AuthorizationResultBasedEntityMutator.d.ts +16 -16
  7. package/build/AuthorizationResultBasedEntityMutator.js.map +1 -1
  8. package/build/ComposedEntityCacheAdapter.d.ts +7 -6
  9. package/build/ComposedEntityCacheAdapter.js +28 -28
  10. package/build/ComposedEntityCacheAdapter.js.map +1 -1
  11. package/build/ComposedSecondaryEntityCache.d.ts +1 -1
  12. package/build/ComposedSecondaryEntityCache.js.map +1 -1
  13. package/build/EnforcingEntityAssociationLoader.d.ts +15 -15
  14. package/build/EnforcingEntityAssociationLoader.js.map +1 -1
  15. package/build/EnforcingEntityCreator.d.ts +2 -2
  16. package/build/EnforcingEntityDeleter.d.ts +2 -2
  17. package/build/EnforcingEntityLoader.d.ts +104 -18
  18. package/build/EnforcingEntityLoader.js +113 -12
  19. package/build/EnforcingEntityLoader.js.map +1 -1
  20. package/build/EnforcingEntityUpdater.d.ts +2 -2
  21. package/build/Entity.d.ts +10 -10
  22. package/build/Entity.js.map +1 -1
  23. package/build/EntityAssociationLoader.d.ts +3 -3
  24. package/build/EntityCompanion.d.ts +5 -5
  25. package/build/EntityCompanion.js.map +1 -1
  26. package/build/EntityCompanionProvider.d.ts +6 -6
  27. package/build/EntityCompanionProvider.js.map +1 -1
  28. package/build/EntityConfiguration.d.ts +46 -5
  29. package/build/EntityConfiguration.js +39 -1
  30. package/build/EntityConfiguration.js.map +1 -1
  31. package/build/EntityCreator.d.ts +4 -4
  32. package/build/EntityDatabaseAdapter.d.ts +15 -14
  33. package/build/EntityDatabaseAdapter.js +20 -12
  34. package/build/EntityDatabaseAdapter.js.map +1 -1
  35. package/build/EntityDeleter.d.ts +4 -4
  36. package/build/EntityFieldDefinition.d.ts +20 -10
  37. package/build/EntityFieldDefinition.js +3 -1
  38. package/build/EntityFieldDefinition.js.map +1 -1
  39. package/build/EntityFields.d.ts +14 -12
  40. package/build/EntityFields.js.map +1 -1
  41. package/build/EntityLoader.d.ts +5 -5
  42. package/build/EntityLoaderFactory.d.ts +3 -3
  43. package/build/EntityLoaderFactory.js.map +1 -1
  44. package/build/EntityLoaderUtils.d.ts +2 -2
  45. package/build/EntityLoaderUtils.js +27 -1
  46. package/build/EntityLoaderUtils.js.map +1 -1
  47. package/build/EntityMutationInfo.d.ts +2 -2
  48. package/build/EntityMutationTriggerConfiguration.d.ts +14 -14
  49. package/build/EntityMutationTriggerConfiguration.js.map +1 -1
  50. package/build/EntityMutationValidator.d.ts +2 -2
  51. package/build/EntityMutatorFactory.d.ts +5 -5
  52. package/build/EntityMutatorFactory.js.map +1 -1
  53. package/build/EntityPrivacyPolicy.d.ts +14 -14
  54. package/build/EntityPrivacyPolicy.js.map +1 -1
  55. package/build/EntitySecondaryCacheLoader.d.ts +4 -4
  56. package/build/EntityUpdater.d.ts +4 -4
  57. package/build/GenericEntityCacheAdapter.d.ts +7 -6
  58. package/build/GenericEntityCacheAdapter.js +13 -14
  59. package/build/GenericEntityCacheAdapter.js.map +1 -1
  60. package/build/GenericSecondaryEntityCache.d.ts +3 -3
  61. package/build/GenericSecondaryEntityCache.js.map +1 -1
  62. package/build/IEntityCacheAdapter.d.ts +17 -16
  63. package/build/IEntityCacheAdapterProvider.d.ts +1 -1
  64. package/build/IEntityDatabaseAdapterProvider.d.ts +1 -1
  65. package/build/IEntityGenericCacher.d.ts +15 -5
  66. package/build/ReadonlyEntity.d.ts +8 -8
  67. package/build/ReadonlyEntity.js.map +1 -1
  68. package/build/ViewerContext.d.ts +1 -1
  69. package/build/ViewerScopedEntityCompanion.d.ts +5 -5
  70. package/build/ViewerScopedEntityCompanionProvider.d.ts +1 -1
  71. package/build/ViewerScopedEntityLoaderFactory.d.ts +3 -3
  72. package/build/ViewerScopedEntityMutatorFactory.d.ts +5 -5
  73. package/build/entityUtils.d.ts +1 -1
  74. package/build/entityUtils.js.map +1 -1
  75. package/build/errors/EntityInvalidFieldValueError.d.ts +2 -2
  76. package/build/errors/EntityNotAuthorizedError.d.ts +1 -1
  77. package/build/errors/EntityNotFoundError.d.ts +2 -2
  78. package/build/index.d.ts +7 -7
  79. package/build/index.js +8 -13
  80. package/build/index.js.map +1 -1
  81. package/build/internal/CompositeFieldHolder.d.ts +48 -0
  82. package/build/internal/CompositeFieldHolder.js +116 -0
  83. package/build/internal/CompositeFieldHolder.js.map +1 -0
  84. package/build/internal/CompositeFieldValueMap.d.ts +15 -0
  85. package/build/internal/CompositeFieldValueMap.js +51 -0
  86. package/build/internal/CompositeFieldValueMap.js.map +1 -0
  87. package/build/internal/EntityDataManager.d.ts +16 -16
  88. package/build/internal/EntityDataManager.js +42 -45
  89. package/build/internal/EntityDataManager.js.map +1 -1
  90. package/build/internal/EntityFieldTransformationUtils.d.ts +5 -5
  91. package/build/internal/EntityFieldTransformationUtils.js.map +1 -1
  92. package/build/internal/EntityLoadInterfaces.d.ts +104 -0
  93. package/build/internal/EntityLoadInterfaces.js +25 -0
  94. package/build/internal/EntityLoadInterfaces.js.map +1 -0
  95. package/build/internal/EntityTableDataCoordinator.d.ts +6 -6
  96. package/build/internal/EntityTableDataCoordinator.js.map +1 -1
  97. package/build/internal/ReadThroughEntityCache.d.ts +17 -16
  98. package/build/internal/ReadThroughEntityCache.js +36 -36
  99. package/build/internal/ReadThroughEntityCache.js.map +1 -1
  100. package/build/internal/SingleFieldHolder.d.ts +34 -0
  101. package/build/internal/SingleFieldHolder.js +90 -0
  102. package/build/internal/SingleFieldHolder.js.map +1 -0
  103. package/build/metrics/EntityMetricsUtils.d.ts +2 -1
  104. package/build/metrics/EntityMetricsUtils.js.map +1 -1
  105. package/build/metrics/IEntityMetricsAdapter.d.ts +5 -0
  106. package/build/metrics/IEntityMetricsAdapter.js.map +1 -1
  107. package/build/rules/AlwaysAllowPrivacyPolicyRule.d.ts +2 -2
  108. package/build/rules/AlwaysAllowPrivacyPolicyRule.js.map +1 -1
  109. package/build/rules/AlwaysDenyPrivacyPolicyRule.d.ts +2 -2
  110. package/build/rules/AlwaysDenyPrivacyPolicyRule.js.map +1 -1
  111. package/build/rules/AlwaysSkipPrivacyPolicyRule.d.ts +2 -2
  112. package/build/rules/AlwaysSkipPrivacyPolicyRule.js.map +1 -1
  113. package/build/rules/PrivacyPolicyRule.d.ts +2 -2
  114. package/build/tsconfig.build.tsbuildinfo +1 -0
  115. package/build/utils/EntityPrivacyUtils.d.ts +4 -4
  116. package/build/utils/EntityPrivacyUtils.js.map +1 -1
  117. package/build/utils/collections/SerializableKeyMap.d.ts +27 -0
  118. package/build/utils/collections/SerializableKeyMap.js +60 -0
  119. package/build/utils/collections/SerializableKeyMap.js.map +1 -0
  120. package/build/utils/collections/maps.js +1 -2
  121. package/build/utils/collections/maps.js.map +1 -1
  122. package/build/utils/collections/sets.d.ts +1 -0
  123. package/build/utils/collections/sets.js +7 -0
  124. package/build/utils/collections/sets.js.map +1 -0
  125. package/build/utils/mergeEntityMutationTriggerConfigurations.d.ts +1 -1
  126. package/package.json +8 -5
  127. package/src/AuthorizationResultBasedEntityAssociationLoader.ts +56 -49
  128. package/src/AuthorizationResultBasedEntityLoader.ts +194 -81
  129. package/src/AuthorizationResultBasedEntityMutator.ts +71 -45
  130. package/src/ComposedEntityCacheAdapter.ts +55 -46
  131. package/src/ComposedSecondaryEntityCache.ts +5 -2
  132. package/src/EnforcingEntityAssociationLoader.ts +52 -44
  133. package/src/EnforcingEntityCreator.ts +5 -5
  134. package/src/EnforcingEntityDeleter.ts +5 -5
  135. package/src/EnforcingEntityLoader.ts +158 -21
  136. package/src/EnforcingEntityUpdater.ts +5 -5
  137. package/src/Entity.ts +39 -39
  138. package/src/EntityAssociationLoader.ts +6 -6
  139. package/src/EntityCompanion.ts +11 -11
  140. package/src/EntityCompanionProvider.ts +21 -18
  141. package/src/EntityConfiguration.ts +123 -9
  142. package/src/EntityCreator.ts +7 -7
  143. package/src/EntityDatabaseAdapter.ts +51 -28
  144. package/src/EntityDeleter.ts +7 -7
  145. package/src/EntityFieldDefinition.ts +32 -12
  146. package/src/EntityFields.ts +49 -12
  147. package/src/EntityLoader.ts +8 -8
  148. package/src/EntityLoaderFactory.ts +8 -8
  149. package/src/EntityLoaderUtils.ts +39 -10
  150. package/src/EntityMutationInfo.ts +6 -6
  151. package/src/EntityMutationTriggerConfiguration.ts +68 -20
  152. package/src/EntityMutationValidator.ts +4 -4
  153. package/src/EntityMutatorFactory.ts +13 -13
  154. package/src/EntityPrivacyPolicy.ts +50 -26
  155. package/src/EntitySecondaryCacheLoader.ts +6 -6
  156. package/src/EntityUpdater.ts +7 -7
  157. package/src/GenericEntityCacheAdapter.ts +39 -28
  158. package/src/GenericSecondaryEntityCache.ts +6 -3
  159. package/src/IEntityCacheAdapter.ts +45 -25
  160. package/src/IEntityCacheAdapterProvider.ts +3 -3
  161. package/src/IEntityDatabaseAdapterProvider.ts +3 -3
  162. package/src/IEntityGenericCacher.ts +33 -5
  163. package/src/ReadonlyEntity.ts +24 -24
  164. package/src/ViewerContext.ts +5 -5
  165. package/src/ViewerScopedEntityCompanion.ts +7 -7
  166. package/src/ViewerScopedEntityCompanionProvider.ts +6 -6
  167. package/src/ViewerScopedEntityLoaderFactory.ts +7 -7
  168. package/src/ViewerScopedEntityMutatorFactory.ts +8 -8
  169. package/src/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.ts +4 -4
  170. package/src/__tests__/AuthorizationResultBasedEntityLoader-constructor-test.ts +14 -13
  171. package/src/__tests__/AuthorizationResultBasedEntityLoader-test.ts +367 -69
  172. package/src/__tests__/ComposedCacheAdapter-test.ts +235 -117
  173. package/src/__tests__/EnforcingEntityLoader-test.ts +135 -1
  174. package/src/__tests__/Entity-test.ts +2 -2
  175. package/src/__tests__/EntityAssociationLoader-test.ts +2 -2
  176. package/src/__tests__/EntityCommonUseCases-test.ts +11 -11
  177. package/src/__tests__/EntityCompanion-test.ts +4 -4
  178. package/src/__tests__/EntityCompanionProvider-test.ts +9 -8
  179. package/src/__tests__/EntityConfiguration-test.ts +85 -6
  180. package/src/__tests__/EntityDatabaseAdapter-test.ts +113 -17
  181. package/src/__tests__/EntityEdges-test.ts +97 -72
  182. package/src/__tests__/EntityFields-test.ts +2 -2
  183. package/src/__tests__/EntityLoader-test.ts +2 -2
  184. package/src/__tests__/EntityMutator-MutationCacheConsistency-test.ts +11 -11
  185. package/src/__tests__/EntityMutator-SingleCompositeFieldCacheConsistency-test.ts +73 -0
  186. package/src/__tests__/EntityMutator-test.ts +74 -46
  187. package/src/__tests__/EntityPrivacyPolicy-test.ts +51 -74
  188. package/src/__tests__/EntityQueryContext-test.ts +1 -1
  189. package/src/__tests__/EntitySecondaryCacheLoader-test.ts +3 -3
  190. package/src/__tests__/EntitySelfReferentialEdges-test.ts +64 -39
  191. package/src/__tests__/GenericEntityCacheAdapter-test.ts +83 -28
  192. package/src/__tests__/ReadonlyEntity-test.ts +3 -3
  193. package/src/__tests__/ViewerContext-test.ts +1 -1
  194. package/src/__tests__/ViewerScopedEntityCompanion-test.ts +5 -2
  195. package/src/__tests__/ViewerScopedEntityCompanionProvider-test.ts +1 -1
  196. package/src/__tests__/ViewerScopedEntityMutatorFactory-test.ts +12 -3
  197. package/src/__tests__/cases/TwoEntitySameTableDisjointRows-test.ts +12 -12
  198. package/src/__tests__/cases/TwoEntitySameTableOverlappingRows-test.ts +12 -12
  199. package/src/entityUtils.ts +4 -1
  200. package/src/errors/EntityInvalidFieldValueError.ts +5 -5
  201. package/src/errors/EntityNotAuthorizedError.ts +3 -3
  202. package/src/errors/EntityNotFoundError.ts +5 -5
  203. package/src/index.ts +7 -7
  204. package/src/internal/CompositeFieldHolder.ts +218 -0
  205. package/src/internal/CompositeFieldValueMap.ts +78 -0
  206. package/src/internal/EntityDataManager.ts +107 -96
  207. package/src/internal/EntityFieldTransformationUtils.ts +33 -14
  208. package/src/internal/EntityLoadInterfaces.ts +143 -0
  209. package/src/internal/EntityTableDataCoordinator.ts +8 -5
  210. package/src/internal/ReadThroughEntityCache.ts +63 -50
  211. package/src/internal/SingleFieldHolder.ts +131 -0
  212. package/src/internal/__tests__/CompositeFieldHolder-test.ts +25 -0
  213. package/src/internal/__tests__/CompositeFieldValueMap-test.ts +43 -0
  214. package/src/internal/__tests__/EntityDataManager-test.ts +308 -91
  215. package/src/internal/__tests__/EntityFieldTransformationUtils-test.ts +3 -2
  216. package/src/internal/__tests__/ReadThroughEntityCache-test.ts +315 -107
  217. package/src/metrics/EntityMetricsUtils.ts +7 -2
  218. package/src/metrics/IEntityMetricsAdapter.ts +6 -0
  219. package/src/rules/AlwaysAllowPrivacyPolicyRule.ts +5 -5
  220. package/src/rules/AlwaysDenyPrivacyPolicyRule.ts +5 -5
  221. package/src/rules/AlwaysSkipPrivacyPolicyRule.ts +5 -5
  222. package/src/rules/PrivacyPolicyRule.ts +4 -4
  223. package/src/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.ts +1 -1
  224. package/src/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.ts +1 -1
  225. package/src/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.ts +1 -1
  226. package/src/utils/EntityPrivacyUtils.ts +72 -30
  227. package/src/utils/{testing → __testfixtures__}/PrivacyPolicyRuleTestUtils.ts +26 -26
  228. package/src/{testfixtures → utils/__testfixtures__}/SimpleTestEntity.ts +16 -15
  229. package/src/utils/__testfixtures__/StubCacheAdapter.ts +164 -0
  230. package/src/utils/{testing → __testfixtures__}/StubDatabaseAdapter.ts +19 -12
  231. package/src/utils/{testing → __testfixtures__}/StubDatabaseAdapterProvider.ts +4 -4
  232. package/src/utils/__testfixtures__/TSMockitoExtensions.ts +69 -0
  233. package/src/{testfixtures → utils/__testfixtures__}/TestEntity.ts +21 -15
  234. package/src/{testfixtures → utils/__testfixtures__}/TestEntity2.ts +16 -15
  235. package/src/{testfixtures → utils/__testfixtures__}/TestEntityWithMutationTriggers.ts +23 -22
  236. package/src/{testfixtures → utils/__testfixtures__}/TestViewerContext.ts +1 -1
  237. package/src/utils/{testing → __testfixtures__}/describeFieldTestCase.ts +1 -1
  238. package/src/utils/__tests__/EntityPrivacyUtils-test.ts +62 -66
  239. package/src/utils/__tests__/canViewerDeleteAsync-edgeDeletionPermissionInferenceBehavior-test.ts +29 -25
  240. package/src/utils/__tests__/mergeEntityMutationTriggerConfigurations-test.ts +1 -1
  241. package/src/utils/collections/SerializableKeyMap.ts +84 -0
  242. package/src/utils/collections/__tests__/SerializableKeyMap-test.ts +119 -0
  243. package/src/utils/collections/__tests__/sets-test.ts +17 -0
  244. package/src/utils/collections/maps.ts +7 -8
  245. package/src/utils/collections/sets.ts +3 -0
  246. package/src/utils/mergeEntityMutationTriggerConfigurations.ts +5 -5
  247. package/build/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.d.ts +0 -1
  248. package/build/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.js +0 -242
  249. package/build/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.js.map +0 -1
  250. package/build/__tests__/AuthorizationResultBasedEntityLoader-constructor-test.d.ts +0 -26
  251. package/build/__tests__/AuthorizationResultBasedEntityLoader-constructor-test.js +0 -110
  252. package/build/__tests__/AuthorizationResultBasedEntityLoader-constructor-test.js.map +0 -1
  253. package/build/__tests__/AuthorizationResultBasedEntityLoader-test.d.ts +0 -1
  254. package/build/__tests__/AuthorizationResultBasedEntityLoader-test.js +0 -401
  255. package/build/__tests__/AuthorizationResultBasedEntityLoader-test.js.map +0 -1
  256. package/build/__tests__/ComposedCacheAdapter-test.d.ts +0 -1
  257. package/build/__tests__/ComposedCacheAdapter-test.js +0 -229
  258. package/build/__tests__/ComposedCacheAdapter-test.js.map +0 -1
  259. package/build/__tests__/ComposedSecondaryEntityCache-test.d.ts +0 -1
  260. package/build/__tests__/ComposedSecondaryEntityCache-test.js +0 -66
  261. package/build/__tests__/ComposedSecondaryEntityCache-test.js.map +0 -1
  262. package/build/__tests__/EnforcingEntityAssociationLoader-test.d.ts +0 -1
  263. package/build/__tests__/EnforcingEntityAssociationLoader-test.js +0 -115
  264. package/build/__tests__/EnforcingEntityAssociationLoader-test.js.map +0 -1
  265. package/build/__tests__/EnforcingEntityLoader-test.d.ts +0 -1
  266. package/build/__tests__/EnforcingEntityLoader-test.js +0 -253
  267. package/build/__tests__/EnforcingEntityLoader-test.js.map +0 -1
  268. package/build/__tests__/Entity-test.d.ts +0 -1
  269. package/build/__tests__/Entity-test.js +0 -94
  270. package/build/__tests__/Entity-test.js.map +0 -1
  271. package/build/__tests__/EntityAssociationLoader-test.d.ts +0 -1
  272. package/build/__tests__/EntityAssociationLoader-test.js +0 -30
  273. package/build/__tests__/EntityAssociationLoader-test.js.map +0 -1
  274. package/build/__tests__/EntityCommonUseCases-test.d.ts +0 -1
  275. package/build/__tests__/EntityCommonUseCases-test.js +0 -146
  276. package/build/__tests__/EntityCommonUseCases-test.js.map +0 -1
  277. package/build/__tests__/EntityCompanion-test.d.ts +0 -1
  278. package/build/__tests__/EntityCompanion-test.js +0 -77
  279. package/build/__tests__/EntityCompanion-test.js.map +0 -1
  280. package/build/__tests__/EntityCompanionProvider-test.d.ts +0 -1
  281. package/build/__tests__/EntityCompanionProvider-test.js +0 -54
  282. package/build/__tests__/EntityCompanionProvider-test.js.map +0 -1
  283. package/build/__tests__/EntityConfiguration-test.d.ts +0 -1
  284. package/build/__tests__/EntityConfiguration-test.js +0 -103
  285. package/build/__tests__/EntityConfiguration-test.js.map +0 -1
  286. package/build/__tests__/EntityDatabaseAdapter-test.d.ts +0 -1
  287. package/build/__tests__/EntityDatabaseAdapter-test.js +0 -146
  288. package/build/__tests__/EntityDatabaseAdapter-test.js.map +0 -1
  289. package/build/__tests__/EntityEdges-test.d.ts +0 -1
  290. package/build/__tests__/EntityEdges-test.js +0 -723
  291. package/build/__tests__/EntityEdges-test.js.map +0 -1
  292. package/build/__tests__/EntityFields-test.d.ts +0 -1
  293. package/build/__tests__/EntityFields-test.js +0 -63
  294. package/build/__tests__/EntityFields-test.js.map +0 -1
  295. package/build/__tests__/EntityLoader-test.d.ts +0 -1
  296. package/build/__tests__/EntityLoader-test.js +0 -36
  297. package/build/__tests__/EntityLoader-test.js.map +0 -1
  298. package/build/__tests__/EntityMutator-MutationCacheConsistency-test.d.ts +0 -1
  299. package/build/__tests__/EntityMutator-MutationCacheConsistency-test.js +0 -73
  300. package/build/__tests__/EntityMutator-MutationCacheConsistency-test.js.map +0 -1
  301. package/build/__tests__/EntityMutator-test.d.ts +0 -1
  302. package/build/__tests__/EntityMutator-test.js +0 -741
  303. package/build/__tests__/EntityMutator-test.js.map +0 -1
  304. package/build/__tests__/EntityPrivacyPolicy-test.d.ts +0 -1
  305. package/build/__tests__/EntityPrivacyPolicy-test.js +0 -463
  306. package/build/__tests__/EntityPrivacyPolicy-test.js.map +0 -1
  307. package/build/__tests__/EntityQueryContext-test.d.ts +0 -1
  308. package/build/__tests__/EntityQueryContext-test.js +0 -116
  309. package/build/__tests__/EntityQueryContext-test.js.map +0 -1
  310. package/build/__tests__/EntitySecondaryCacheLoader-test.d.ts +0 -1
  311. package/build/__tests__/EntitySecondaryCacheLoader-test.js +0 -60
  312. package/build/__tests__/EntitySecondaryCacheLoader-test.js.map +0 -1
  313. package/build/__tests__/EntitySelfReferentialEdges-test.d.ts +0 -1
  314. package/build/__tests__/EntitySelfReferentialEdges-test.js +0 -201
  315. package/build/__tests__/EntitySelfReferentialEdges-test.js.map +0 -1
  316. package/build/__tests__/GenericEntityCacheAdapter-test.d.ts +0 -1
  317. package/build/__tests__/GenericEntityCacheAdapter-test.js +0 -80
  318. package/build/__tests__/GenericEntityCacheAdapter-test.js.map +0 -1
  319. package/build/__tests__/ReadonlyEntity-test.d.ts +0 -1
  320. package/build/__tests__/ReadonlyEntity-test.js +0 -211
  321. package/build/__tests__/ReadonlyEntity-test.js.map +0 -1
  322. package/build/__tests__/ViewerContext-test.d.ts +0 -1
  323. package/build/__tests__/ViewerContext-test.js +0 -30
  324. package/build/__tests__/ViewerContext-test.js.map +0 -1
  325. package/build/__tests__/ViewerScopedEntityCompanion-test.d.ts +0 -1
  326. package/build/__tests__/ViewerScopedEntityCompanion-test.js +0 -20
  327. package/build/__tests__/ViewerScopedEntityCompanion-test.js.map +0 -1
  328. package/build/__tests__/ViewerScopedEntityCompanionProvider-test.d.ts +0 -1
  329. package/build/__tests__/ViewerScopedEntityCompanionProvider-test.js +0 -20
  330. package/build/__tests__/ViewerScopedEntityCompanionProvider-test.js.map +0 -1
  331. package/build/__tests__/ViewerScopedEntityLoaderFactory-test.d.ts +0 -1
  332. package/build/__tests__/ViewerScopedEntityLoaderFactory-test.js +0 -23
  333. package/build/__tests__/ViewerScopedEntityLoaderFactory-test.js.map +0 -1
  334. package/build/__tests__/ViewerScopedEntityMutatorFactory-test.d.ts +0 -1
  335. package/build/__tests__/ViewerScopedEntityMutatorFactory-test.js +0 -22
  336. package/build/__tests__/ViewerScopedEntityMutatorFactory-test.js.map +0 -1
  337. package/build/__tests__/cases/TwoEntitySameTableDisjointRows-test.d.ts +0 -1
  338. package/build/__tests__/cases/TwoEntitySameTableDisjointRows-test.js +0 -123
  339. package/build/__tests__/cases/TwoEntitySameTableDisjointRows-test.js.map +0 -1
  340. package/build/__tests__/cases/TwoEntitySameTableOverlappingRows-test.d.ts +0 -1
  341. package/build/__tests__/cases/TwoEntitySameTableOverlappingRows-test.js +0 -121
  342. package/build/__tests__/cases/TwoEntitySameTableOverlappingRows-test.js.map +0 -1
  343. package/build/__tests__/entityUtils-test.d.ts +0 -1
  344. package/build/__tests__/entityUtils-test.js +0 -87
  345. package/build/__tests__/entityUtils-test.js.map +0 -1
  346. package/build/internal/__tests__/EntityDataManager-test.d.ts +0 -1
  347. package/build/internal/__tests__/EntityDataManager-test.js +0 -373
  348. package/build/internal/__tests__/EntityDataManager-test.js.map +0 -1
  349. package/build/internal/__tests__/EntityFieldTransformationUtils-test.d.ts +0 -1
  350. package/build/internal/__tests__/EntityFieldTransformationUtils-test.js +0 -136
  351. package/build/internal/__tests__/EntityFieldTransformationUtils-test.js.map +0 -1
  352. package/build/internal/__tests__/ReadThroughEntityCache-test.d.ts +0 -1
  353. package/build/internal/__tests__/ReadThroughEntityCache-test.js +0 -206
  354. package/build/internal/__tests__/ReadThroughEntityCache-test.js.map +0 -1
  355. package/build/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.d.ts +0 -1
  356. package/build/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.js +0 -21
  357. package/build/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.js.map +0 -1
  358. package/build/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.d.ts +0 -1
  359. package/build/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.js +0 -21
  360. package/build/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.js.map +0 -1
  361. package/build/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.d.ts +0 -1
  362. package/build/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.js +0 -21
  363. package/build/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.js.map +0 -1
  364. package/build/testfixtures/DateIDTestEntity.d.ts +0 -19
  365. package/build/testfixtures/DateIDTestEntity.js +0 -48
  366. package/build/testfixtures/DateIDTestEntity.js.map +0 -1
  367. package/build/testfixtures/SimpleTestEntity.d.ts +0 -20
  368. package/build/testfixtures/SimpleTestEntity.js +0 -48
  369. package/build/testfixtures/SimpleTestEntity.js.map +0 -1
  370. package/build/testfixtures/TestEntity.d.ts +0 -30
  371. package/build/testfixtures/TestEntity.js +0 -93
  372. package/build/testfixtures/TestEntity.js.map +0 -1
  373. package/build/testfixtures/TestEntity2.d.ts +0 -20
  374. package/build/testfixtures/TestEntity2.js +0 -51
  375. package/build/testfixtures/TestEntity2.js.map +0 -1
  376. package/build/testfixtures/TestEntityNumberKey.d.ts +0 -19
  377. package/build/testfixtures/TestEntityNumberKey.js +0 -48
  378. package/build/testfixtures/TestEntityNumberKey.js.map +0 -1
  379. package/build/testfixtures/TestEntityWithMutationTriggers.d.ts +0 -36
  380. package/build/testfixtures/TestEntityWithMutationTriggers.js +0 -82
  381. package/build/testfixtures/TestEntityWithMutationTriggers.js.map +0 -1
  382. package/build/testfixtures/TestViewerContext.d.ts +0 -3
  383. package/build/testfixtures/TestViewerContext.js +0 -10
  384. package/build/testfixtures/TestViewerContext.js.map +0 -1
  385. package/build/utils/__tests__/EntityPrivacyUtils-test.d.ts +0 -1
  386. package/build/utils/__tests__/EntityPrivacyUtils-test.js +0 -486
  387. package/build/utils/__tests__/EntityPrivacyUtils-test.js.map +0 -1
  388. package/build/utils/__tests__/canViewerDeleteAsync-edgeDeletionPermissionInferenceBehavior-test.d.ts +0 -1
  389. package/build/utils/__tests__/canViewerDeleteAsync-edgeDeletionPermissionInferenceBehavior-test.js +0 -178
  390. package/build/utils/__tests__/canViewerDeleteAsync-edgeDeletionPermissionInferenceBehavior-test.js.map +0 -1
  391. package/build/utils/__tests__/mergeEntityMutationTriggerConfigurations-test.d.ts +0 -1
  392. package/build/utils/__tests__/mergeEntityMutationTriggerConfigurations-test.js +0 -26
  393. package/build/utils/__tests__/mergeEntityMutationTriggerConfigurations-test.js.map +0 -1
  394. package/build/utils/collections/__tests__/maps-test.d.ts +0 -1
  395. package/build/utils/collections/__tests__/maps-test.js +0 -120
  396. package/build/utils/collections/__tests__/maps-test.js.map +0 -1
  397. package/build/utils/testing/PrivacyPolicyRuleTestUtils.d.ts +0 -28
  398. package/build/utils/testing/PrivacyPolicyRuleTestUtils.js +0 -52
  399. package/build/utils/testing/PrivacyPolicyRuleTestUtils.js.map +0 -1
  400. package/build/utils/testing/StubCacheAdapter.d.ts +0 -27
  401. package/build/utils/testing/StubCacheAdapter.js +0 -86
  402. package/build/utils/testing/StubCacheAdapter.js.map +0 -1
  403. package/build/utils/testing/StubDatabaseAdapter.d.ts +0 -25
  404. package/build/utils/testing/StubDatabaseAdapter.js +0 -191
  405. package/build/utils/testing/StubDatabaseAdapter.js.map +0 -1
  406. package/build/utils/testing/StubDatabaseAdapterProvider.d.ts +0 -7
  407. package/build/utils/testing/StubDatabaseAdapterProvider.js +0 -14
  408. package/build/utils/testing/StubDatabaseAdapterProvider.js.map +0 -1
  409. package/build/utils/testing/StubQueryContextProvider.d.ts +0 -7
  410. package/build/utils/testing/StubQueryContextProvider.js +0 -19
  411. package/build/utils/testing/StubQueryContextProvider.js.map +0 -1
  412. package/build/utils/testing/__tests__/PrivacyPolicyRuleTestUtils-test.d.ts +0 -1
  413. package/build/utils/testing/__tests__/PrivacyPolicyRuleTestUtils-test.js +0 -42
  414. package/build/utils/testing/__tests__/PrivacyPolicyRuleTestUtils-test.js.map +0 -1
  415. package/build/utils/testing/__tests__/StubDatabaseAdapter-test.d.ts +0 -1
  416. package/build/utils/testing/__tests__/StubDatabaseAdapter-test.js +0 -402
  417. package/build/utils/testing/__tests__/StubDatabaseAdapter-test.js.map +0 -1
  418. package/build/utils/testing/createUnitTestEntityCompanionProvider.d.ts +0 -7
  419. package/build/utils/testing/createUnitTestEntityCompanionProvider.js +0 -36
  420. package/build/utils/testing/createUnitTestEntityCompanionProvider.js.map +0 -1
  421. package/build/utils/testing/describeFieldTestCase.d.ts +0 -2
  422. package/build/utils/testing/describeFieldTestCase.js +0 -18
  423. package/build/utils/testing/describeFieldTestCase.js.map +0 -1
  424. package/src/testfixtures/DateIDTestEntity.ts +0 -59
  425. package/src/testfixtures/TestEntityNumberKey.ts +0 -59
  426. package/src/utils/testing/StubCacheAdapter.ts +0 -122
  427. package/src/utils/testing/__tests__/PrivacyPolicyRuleTestUtils-test.ts +0 -42
  428. package/src/utils/testing/__tests__/StubDatabaseAdapter-test.ts +0 -548
  429. /package/src/utils/{testing → __testfixtures__}/StubQueryContextProvider.ts +0 -0
  430. /package/src/utils/{testing → __testfixtures__}/createUnitTestEntityCompanionProvider.ts +0 -0
@@ -17,18 +17,22 @@ import {
17
17
  import { computeIfAbsent, mapMap } from '../collections/maps';
18
18
 
19
19
  export default class StubDatabaseAdapter<
20
- T extends Record<string, any>,
21
- > extends EntityDatabaseAdapter<T> {
20
+ TFields extends Record<string, any>,
21
+ TIDField extends keyof TFields,
22
+ > extends EntityDatabaseAdapter<TFields, TIDField> {
22
23
  constructor(
23
- private readonly entityConfiguration2: EntityConfiguration<T>,
24
+ private readonly entityConfiguration2: EntityConfiguration<TFields, TIDField>,
24
25
  private readonly dataStore: Map<string, Readonly<{ [key: string]: any }>[]>,
25
26
  ) {
26
27
  super(entityConfiguration2);
27
28
  }
28
29
 
29
- public static convertFieldObjectsToDataStore<T extends Record<string, any>>(
30
- entityConfiguration: EntityConfiguration<T>,
31
- dataStore: Map<string, Readonly<T>[]>,
30
+ public static convertFieldObjectsToDataStore<
31
+ TFields extends Record<string, any>,
32
+ TIDField extends keyof TFields,
33
+ >(
34
+ entityConfiguration: EntityConfiguration<TFields, TIDField>,
35
+ dataStore: Map<string, Readonly<TFields>[]>,
32
36
  ): Map<string, Readonly<{ [key: string]: any }>[]> {
33
37
  return mapMap(dataStore, (objectsForTable) =>
34
38
  objectsForTable.map((objectForTable) =>
@@ -48,20 +52,23 @@ export default class StubDatabaseAdapter<
48
52
  protected async fetchManyWhereInternalAsync(
49
53
  _queryInterface: any,
50
54
  tableName: string,
51
- tableField: string,
52
- tableValues: readonly any[],
55
+ tableColumns: readonly string[],
56
+ tableTuples: (readonly any[])[],
53
57
  ): Promise<object[]> {
54
58
  const objectCollection = this.getObjectCollectionForTable(tableName);
55
- return tableValues.reduce(
56
- (acc, fieldValue) => {
59
+ const results = tableTuples.reduce(
60
+ (acc, tableTuple) => {
57
61
  return acc.concat(
58
62
  objectCollection.filter((obj) => {
59
- return obj[tableField] === fieldValue;
63
+ return tableColumns.every((tableColumn, index) => {
64
+ return obj[tableColumn] === tableTuple[index];
65
+ });
60
66
  }),
61
67
  );
62
68
  },
63
- [] as { [key: string]: any },
69
+ [] as { [key: string]: any }[],
64
70
  );
71
+ return [...results];
65
72
  }
66
73
 
67
74
  private static compareByOrderBys(
@@ -1,14 +1,14 @@
1
- import StubDatabaseAdapter from './StubDatabaseAdapter';
2
1
  import EntityConfiguration from '../../EntityConfiguration';
3
2
  import EntityDatabaseAdapter from '../../EntityDatabaseAdapter';
4
3
  import IEntityDatabaseAdapterProvider from '../../IEntityDatabaseAdapterProvider';
4
+ import StubDatabaseAdapter from '../__testfixtures__/StubDatabaseAdapter';
5
5
 
6
6
  export default class StubDatabaseAdapterProvider implements IEntityDatabaseAdapterProvider {
7
7
  private readonly objectCollection = new Map();
8
8
 
9
- getDatabaseAdapter<TFields extends Record<string, any>>(
10
- entityConfiguration: EntityConfiguration<TFields>,
11
- ): EntityDatabaseAdapter<TFields> {
9
+ getDatabaseAdapter<TFields extends Record<string, any>, TIDField extends keyof TFields>(
10
+ entityConfiguration: EntityConfiguration<TFields, TIDField>,
11
+ ): EntityDatabaseAdapter<TFields, TIDField> {
12
12
  return new StubDatabaseAdapter(entityConfiguration, this.objectCollection);
13
13
  }
14
14
  }
@@ -0,0 +1,69 @@
1
+ import isEqualWith from 'lodash/isEqualWith';
2
+ import { Matcher } from 'ts-mockito/lib/matcher/type/Matcher';
3
+
4
+ import {
5
+ CompositeFieldHolder,
6
+ CompositeFieldValueHolder,
7
+ } from '../../internal/CompositeFieldHolder';
8
+ import { SingleFieldHolder, SingleFieldValueHolder } from '../../internal/SingleFieldHolder';
9
+ import { SerializableKeyMap } from '../collections/SerializableKeyMap';
10
+
11
+ export function isEqualWithEntityAware(expected: any, actual: any): boolean {
12
+ return isEqualWith(expected, actual, (expected: any, actual: any): boolean | undefined => {
13
+ if (expected instanceof Matcher) {
14
+ return expected.match(actual);
15
+ }
16
+
17
+ if (expected instanceof SingleFieldHolder && actual instanceof SingleFieldHolder) {
18
+ return expected.fieldName === actual.fieldName;
19
+ }
20
+
21
+ if (expected instanceof SingleFieldValueHolder && actual instanceof SingleFieldValueHolder) {
22
+ return expected.fieldValue === actual.fieldValue;
23
+ }
24
+
25
+ if (expected instanceof CompositeFieldHolder && actual instanceof CompositeFieldHolder) {
26
+ return expected.serialize() === actual.serialize();
27
+ }
28
+
29
+ if (
30
+ expected instanceof CompositeFieldValueHolder &&
31
+ actual instanceof CompositeFieldValueHolder
32
+ ) {
33
+ return expected.serialize() === actual.serialize();
34
+ }
35
+
36
+ if (expected instanceof SerializableKeyMap && actual instanceof SerializableKeyMap) {
37
+ for (const [key, value] of expected.entries()) {
38
+ if (!actual.has(key) || !isEqualWith(value, actual.get(key))) {
39
+ return false;
40
+ }
41
+ }
42
+ return true;
43
+ }
44
+
45
+ return undefined;
46
+ });
47
+ }
48
+
49
+ export class DeepEqualEntityAwareMatcher<T> extends Matcher {
50
+ constructor(private readonly expectedValue: T) {
51
+ super();
52
+ }
53
+
54
+ public override match(value: any): boolean {
55
+ return isEqualWithEntityAware(this.expectedValue, value);
56
+ }
57
+
58
+ public override toString(): string {
59
+ if (this.expectedValue instanceof Array) {
60
+ return `deepEqualEntityAware([${this.expectedValue}])`;
61
+ } else {
62
+ return `deepEqualEntityAware(${this.expectedValue})`;
63
+ }
64
+ }
65
+ }
66
+
67
+ export function deepEqualEntityAware<T>(expectedValue: T): T {
68
+ return new DeepEqualEntityAwareMatcher(expectedValue) as any;
69
+ }
@@ -1,12 +1,12 @@
1
1
  import { result, Result } from '@expo/results';
2
2
 
3
- import Entity from '../Entity';
4
- import { EntityCompanionDefinition } from '../EntityCompanionProvider';
5
- import EntityConfiguration from '../EntityConfiguration';
6
- import { UUIDField, StringField, DateField, IntField } from '../EntityFields';
7
- import EntityPrivacyPolicy from '../EntityPrivacyPolicy';
8
- import ViewerContext from '../ViewerContext';
9
- import AlwaysAllowPrivacyPolicyRule from '../rules/AlwaysAllowPrivacyPolicyRule';
3
+ import Entity from '../../Entity';
4
+ import { EntityCompanionDefinition } from '../../EntityCompanionProvider';
5
+ import EntityConfiguration from '../../EntityConfiguration';
6
+ import { StringField, DateField, IntField, UUIDField } from '../../EntityFields';
7
+ import EntityPrivacyPolicy from '../../EntityPrivacyPolicy';
8
+ import ViewerContext from '../../ViewerContext';
9
+ import AlwaysAllowPrivacyPolicyRule from '../../rules/AlwaysAllowPrivacyPolicyRule';
10
10
 
11
11
  export type TestFields = {
12
12
  customIdField: string;
@@ -17,12 +17,13 @@ export type TestFields = {
17
17
  nullableField: string | null;
18
18
  };
19
19
 
20
- export const testEntityConfiguration = new EntityConfiguration<TestFields>({
20
+ export const testEntityConfiguration = new EntityConfiguration<TestFields, 'customIdField'>({
21
21
  idField: 'customIdField',
22
22
  tableName: 'test_entity_should_not_write_to_db',
23
23
  schema: {
24
24
  customIdField: new UUIDField({
25
25
  columnName: 'custom_id',
26
+ cache: true,
26
27
  }),
27
28
  testIndexedField: new StringField({
28
29
  columnName: 'test_index',
@@ -43,32 +44,37 @@ export const testEntityConfiguration = new EntityConfiguration<TestFields>({
43
44
  },
44
45
  databaseAdapterFlavor: 'postgres',
45
46
  cacheAdapterFlavor: 'redis',
47
+ compositeFieldDefinitions: [
48
+ { compositeField: ['stringField', 'intField'], cache: false },
49
+ { compositeField: ['stringField', 'testIndexedField'], cache: true },
50
+ { compositeField: ['nullableField', 'testIndexedField'], cache: true },
51
+ ],
46
52
  });
47
53
 
48
54
  export class TestEntityPrivacyPolicy extends EntityPrivacyPolicy<
49
55
  TestFields,
50
- string,
56
+ 'customIdField',
51
57
  ViewerContext,
52
58
  TestEntity
53
59
  > {
54
60
  protected override readonly readRules = [
55
- new AlwaysAllowPrivacyPolicyRule<TestFields, string, ViewerContext, TestEntity>(),
61
+ new AlwaysAllowPrivacyPolicyRule<TestFields, 'customIdField', ViewerContext, TestEntity>(),
56
62
  ];
57
63
  protected override readonly createRules = [
58
- new AlwaysAllowPrivacyPolicyRule<TestFields, string, ViewerContext, TestEntity>(),
64
+ new AlwaysAllowPrivacyPolicyRule<TestFields, 'customIdField', ViewerContext, TestEntity>(),
59
65
  ];
60
66
  protected override readonly updateRules = [
61
- new AlwaysAllowPrivacyPolicyRule<TestFields, string, ViewerContext, TestEntity>(),
67
+ new AlwaysAllowPrivacyPolicyRule<TestFields, 'customIdField', ViewerContext, TestEntity>(),
62
68
  ];
63
69
  protected override readonly deleteRules = [
64
- new AlwaysAllowPrivacyPolicyRule<TestFields, string, ViewerContext, TestEntity>(),
70
+ new AlwaysAllowPrivacyPolicyRule<TestFields, 'customIdField', ViewerContext, TestEntity>(),
65
71
  ];
66
72
  }
67
73
 
68
- export default class TestEntity extends Entity<TestFields, string, ViewerContext> {
74
+ export default class TestEntity extends Entity<TestFields, 'customIdField', ViewerContext> {
69
75
  static defineCompanionDefinition(): EntityCompanionDefinition<
70
76
  TestFields,
71
- string,
77
+ 'customIdField',
72
78
  ViewerContext,
73
79
  TestEntity,
74
80
  TestEntityPrivacyPolicy
@@ -1,22 +1,23 @@
1
- import Entity from '../Entity';
2
- import { EntityCompanionDefinition } from '../EntityCompanionProvider';
3
- import EntityConfiguration from '../EntityConfiguration';
4
- import { UUIDField } from '../EntityFields';
5
- import EntityPrivacyPolicy from '../EntityPrivacyPolicy';
6
- import ViewerContext from '../ViewerContext';
7
- import AlwaysAllowPrivacyPolicyRule from '../rules/AlwaysAllowPrivacyPolicyRule';
1
+ import Entity from '../../Entity';
2
+ import { EntityCompanionDefinition } from '../../EntityCompanionProvider';
3
+ import EntityConfiguration from '../../EntityConfiguration';
4
+ import { UUIDField } from '../../EntityFields';
5
+ import EntityPrivacyPolicy from '../../EntityPrivacyPolicy';
6
+ import ViewerContext from '../../ViewerContext';
7
+ import AlwaysAllowPrivacyPolicyRule from '../../rules/AlwaysAllowPrivacyPolicyRule';
8
8
 
9
9
  export type Test2Fields = {
10
10
  id: string;
11
11
  foreignKey: string;
12
12
  };
13
13
 
14
- export const testEntity2Configuration = new EntityConfiguration<Test2Fields>({
14
+ export const testEntity2Configuration = new EntityConfiguration<Test2Fields, 'id'>({
15
15
  idField: 'id',
16
16
  tableName: 'test_entity_should_not_write_to_db_2',
17
17
  schema: {
18
18
  id: new UUIDField({
19
19
  columnName: 'id',
20
+ cache: false,
20
21
  }),
21
22
  foreignKey: new UUIDField({
22
23
  columnName: 'foreign_key',
@@ -28,28 +29,28 @@ export const testEntity2Configuration = new EntityConfiguration<Test2Fields>({
28
29
 
29
30
  export class TestEntity2PrivacyPolicy extends EntityPrivacyPolicy<
30
31
  Test2Fields,
31
- string,
32
+ 'id',
32
33
  ViewerContext,
33
34
  TestEntity2
34
35
  > {
35
36
  protected override readonly readRules = [
36
- new AlwaysAllowPrivacyPolicyRule<Test2Fields, string, ViewerContext, TestEntity2>(),
37
+ new AlwaysAllowPrivacyPolicyRule<Test2Fields, 'id', ViewerContext, TestEntity2>(),
37
38
  ];
38
39
  protected override readonly createRules = [
39
- new AlwaysAllowPrivacyPolicyRule<Test2Fields, string, ViewerContext, TestEntity2>(),
40
+ new AlwaysAllowPrivacyPolicyRule<Test2Fields, 'id', ViewerContext, TestEntity2>(),
40
41
  ];
41
42
  protected override readonly updateRules = [
42
- new AlwaysAllowPrivacyPolicyRule<Test2Fields, string, ViewerContext, TestEntity2>(),
43
+ new AlwaysAllowPrivacyPolicyRule<Test2Fields, 'id', ViewerContext, TestEntity2>(),
43
44
  ];
44
45
  protected override readonly deleteRules = [
45
- new AlwaysAllowPrivacyPolicyRule<Test2Fields, string, ViewerContext, TestEntity2>(),
46
+ new AlwaysAllowPrivacyPolicyRule<Test2Fields, 'id', ViewerContext, TestEntity2>(),
46
47
  ];
47
48
  }
48
49
 
49
- export default class TestEntity2 extends Entity<Test2Fields, string, ViewerContext> {
50
+ export default class TestEntity2 extends Entity<Test2Fields, 'id', ViewerContext> {
50
51
  static defineCompanionDefinition(): EntityCompanionDefinition<
51
52
  Test2Fields,
52
- string,
53
+ 'id',
53
54
  ViewerContext,
54
55
  TestEntity2,
55
56
  TestEntity2PrivacyPolicy
@@ -1,28 +1,29 @@
1
- import Entity from '../Entity';
2
- import { EntityCompanionDefinition } from '../EntityCompanionProvider';
3
- import EntityConfiguration from '../EntityConfiguration';
4
- import { StringField, UUIDField } from '../EntityFields';
5
- import { EntityTriggerMutationInfo } from '../EntityMutationInfo';
1
+ import Entity from '../../Entity';
2
+ import { EntityCompanionDefinition } from '../../EntityCompanionProvider';
3
+ import EntityConfiguration from '../../EntityConfiguration';
4
+ import { StringField, UUIDField } from '../../EntityFields';
5
+ import { EntityTriggerMutationInfo } from '../../EntityMutationInfo';
6
6
  import {
7
7
  EntityMutationTrigger,
8
8
  EntityNonTransactionalMutationTrigger,
9
- } from '../EntityMutationTriggerConfiguration';
10
- import EntityPrivacyPolicy from '../EntityPrivacyPolicy';
11
- import { EntityQueryContext } from '../EntityQueryContext';
12
- import ViewerContext from '../ViewerContext';
13
- import AlwaysAllowPrivacyPolicyRule from '../rules/AlwaysAllowPrivacyPolicyRule';
9
+ } from '../../EntityMutationTriggerConfiguration';
10
+ import EntityPrivacyPolicy from '../../EntityPrivacyPolicy';
11
+ import { EntityQueryContext } from '../../EntityQueryContext';
12
+ import ViewerContext from '../../ViewerContext';
13
+ import AlwaysAllowPrivacyPolicyRule from '../../rules/AlwaysAllowPrivacyPolicyRule';
14
14
 
15
15
  export type TestMTFields = {
16
16
  id: string;
17
17
  stringField: string;
18
18
  };
19
19
 
20
- export const testEntityMTConfiguration = new EntityConfiguration<TestMTFields>({
20
+ export const testEntityMTConfiguration = new EntityConfiguration<TestMTFields, 'id'>({
21
21
  idField: 'id',
22
22
  tableName: 'test_entity_should_not_write_to_db_3',
23
23
  schema: {
24
24
  id: new UUIDField({
25
25
  columnName: 'id',
26
+ cache: false,
26
27
  }),
27
28
  stringField: new StringField({
28
29
  columnName: 'string_field',
@@ -34,14 +35,14 @@ export const testEntityMTConfiguration = new EntityConfiguration<TestMTFields>({
34
35
 
35
36
  export class TestEntityMTPrivacyPolicy extends EntityPrivacyPolicy<
36
37
  TestMTFields,
37
- string,
38
+ 'id',
38
39
  ViewerContext,
39
40
  TestEntityWithMutationTriggers
40
41
  > {
41
42
  protected override readonly readRules = [
42
43
  new AlwaysAllowPrivacyPolicyRule<
43
44
  TestMTFields,
44
- string,
45
+ 'id',
45
46
  ViewerContext,
46
47
  TestEntityWithMutationTriggers
47
48
  >(),
@@ -49,7 +50,7 @@ export class TestEntityMTPrivacyPolicy extends EntityPrivacyPolicy<
49
50
  protected override readonly createRules = [
50
51
  new AlwaysAllowPrivacyPolicyRule<
51
52
  TestMTFields,
52
- string,
53
+ 'id',
53
54
  ViewerContext,
54
55
  TestEntityWithMutationTriggers
55
56
  >(),
@@ -57,7 +58,7 @@ export class TestEntityMTPrivacyPolicy extends EntityPrivacyPolicy<
57
58
  protected override readonly updateRules = [
58
59
  new AlwaysAllowPrivacyPolicyRule<
59
60
  TestMTFields,
60
- string,
61
+ 'id',
61
62
  ViewerContext,
62
63
  TestEntityWithMutationTriggers
63
64
  >(),
@@ -65,7 +66,7 @@ export class TestEntityMTPrivacyPolicy extends EntityPrivacyPolicy<
65
66
  protected override readonly deleteRules = [
66
67
  new AlwaysAllowPrivacyPolicyRule<
67
68
  TestMTFields,
68
- string,
69
+ 'id',
69
70
  ViewerContext,
70
71
  TestEntityWithMutationTriggers
71
72
  >(),
@@ -74,7 +75,7 @@ export class TestEntityMTPrivacyPolicy extends EntityPrivacyPolicy<
74
75
 
75
76
  export class TestMutationTrigger extends EntityMutationTrigger<
76
77
  TestMTFields,
77
- string,
78
+ 'id',
78
79
  ViewerContext,
79
80
  TestEntityWithMutationTriggers,
80
81
  keyof TestMTFields
@@ -92,7 +93,7 @@ export class TestMutationTrigger extends EntityMutationTrigger<
92
93
  _entity: TestEntityWithMutationTriggers,
93
94
  _mutationInfo: EntityTriggerMutationInfo<
94
95
  TestMTFields,
95
- string,
96
+ 'id',
96
97
  ViewerContext,
97
98
  TestEntityWithMutationTriggers,
98
99
  keyof TestMTFields
@@ -102,7 +103,7 @@ export class TestMutationTrigger extends EntityMutationTrigger<
102
103
 
103
104
  export class NonTransactionalTestMutationTrigger extends EntityNonTransactionalMutationTrigger<
104
105
  TestMTFields,
105
- string,
106
+ 'id',
106
107
  ViewerContext,
107
108
  TestEntityWithMutationTriggers,
108
109
  keyof TestMTFields
@@ -119,7 +120,7 @@ export class NonTransactionalTestMutationTrigger extends EntityNonTransactionalM
119
120
  _entity: TestEntityWithMutationTriggers,
120
121
  _mutationInfo: EntityTriggerMutationInfo<
121
122
  TestMTFields,
122
- string,
123
+ 'id',
123
124
  ViewerContext,
124
125
  TestEntityWithMutationTriggers,
125
126
  keyof TestMTFields
@@ -132,12 +133,12 @@ export class NonTransactionalTestMutationTrigger extends EntityNonTransactionalM
132
133
  */
133
134
  export default class TestEntityWithMutationTriggers extends Entity<
134
135
  TestMTFields,
135
- string,
136
+ 'id',
136
137
  ViewerContext
137
138
  > {
138
139
  static defineCompanionDefinition(): EntityCompanionDefinition<
139
140
  TestMTFields,
140
- string,
141
+ 'id',
141
142
  ViewerContext,
142
143
  TestEntityWithMutationTriggers,
143
144
  TestEntityMTPrivacyPolicy
@@ -1,3 +1,3 @@
1
- import ViewerContext from '../ViewerContext';
1
+ import ViewerContext from '../../ViewerContext';
2
2
 
3
3
  export default class TestViewerContext extends ViewerContext {}
@@ -1,7 +1,7 @@
1
1
  import { EntityFieldDefinition } from '../../EntityFieldDefinition';
2
2
 
3
3
  export default function describeFieldTestCase<T>(
4
- fieldDefinition: EntityFieldDefinition<T>,
4
+ fieldDefinition: EntityFieldDefinition<T, any>,
5
5
  validValues: T[],
6
6
  invalidValues: any[],
7
7
  ): void {