@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
@@ -25,22 +25,23 @@ type BlahFields = {
25
25
  id: string;
26
26
  };
27
27
 
28
- class BlahEntity extends Entity<BlahFields, string, ViewerContext> {
28
+ class BlahEntity extends Entity<BlahFields, 'id', ViewerContext> {
29
29
  static defineCompanionDefinition(): EntityCompanionDefinition<
30
30
  BlahFields,
31
- string,
31
+ 'id',
32
32
  ViewerContext,
33
33
  BlahEntity,
34
34
  any
35
35
  > {
36
36
  return {
37
37
  entityClass: BlahEntity,
38
- entityConfiguration: new EntityConfiguration<BlahFields>({
38
+ entityConfiguration: new EntityConfiguration<BlahFields, 'id'>({
39
39
  idField: 'id',
40
40
  tableName: 'blah_table',
41
41
  schema: {
42
42
  id: new UUIDField({
43
43
  columnName: 'id',
44
+ cache: false,
44
45
  }),
45
46
  },
46
47
  databaseAdapterFlavor: 'postgres',
@@ -51,30 +52,30 @@ class BlahEntity extends Entity<BlahFields, string, ViewerContext> {
51
52
  }
52
53
  }
53
54
 
54
- class AlwaysDenyPolicy extends EntityPrivacyPolicy<BlahFields, string, ViewerContext, BlahEntity> {
55
+ class AlwaysDenyPolicy extends EntityPrivacyPolicy<BlahFields, 'id', ViewerContext, BlahEntity> {
55
56
  protected override readonly createRules = [
56
- new AlwaysDenyPrivacyPolicyRule<BlahFields, string, ViewerContext, BlahEntity>(),
57
+ new AlwaysDenyPrivacyPolicyRule<BlahFields, 'id', ViewerContext, BlahEntity>(),
57
58
  ];
58
59
  protected override readonly readRules = [
59
- new AlwaysDenyPrivacyPolicyRule<BlahFields, string, ViewerContext, BlahEntity>(),
60
+ new AlwaysDenyPrivacyPolicyRule<BlahFields, 'id', ViewerContext, BlahEntity>(),
60
61
  ];
61
62
  protected override readonly updateRules = [
62
- new AlwaysDenyPrivacyPolicyRule<BlahFields, string, ViewerContext, BlahEntity>(),
63
+ new AlwaysDenyPrivacyPolicyRule<BlahFields, 'id', ViewerContext, BlahEntity>(),
63
64
  ];
64
65
  protected override readonly deleteRules = [
65
- new AlwaysDenyPrivacyPolicyRule<BlahFields, string, ViewerContext, BlahEntity>(),
66
+ new AlwaysDenyPrivacyPolicyRule<BlahFields, 'id', ViewerContext, BlahEntity>(),
66
67
  ];
67
68
  }
68
69
 
69
70
  class DryRunAlwaysDenyPolicy extends AlwaysDenyPolicy {
70
71
  // public method for test spying
71
72
  public denyHandler(
72
- _error: EntityNotAuthorizedError<BlahFields, string, ViewerContext, BlahEntity>,
73
+ _error: EntityNotAuthorizedError<BlahFields, 'id', ViewerContext, BlahEntity>,
73
74
  ): void {}
74
75
 
75
76
  protected override getPrivacyPolicyEvaluator(): EntityPrivacyPolicyEvaluator<
76
77
  BlahFields,
77
- string,
78
+ 'id',
78
79
  ViewerContext,
79
80
  BlahEntity
80
81
  > {
@@ -88,12 +89,12 @@ class DryRunAlwaysDenyPolicy extends AlwaysDenyPolicy {
88
89
  class LoggingEnforceAlwaysDenyPolicy extends AlwaysDenyPolicy {
89
90
  // public method for test spying
90
91
  public denyHandler(
91
- _error: EntityNotAuthorizedError<BlahFields, string, ViewerContext, BlahEntity>,
92
+ _error: EntityNotAuthorizedError<BlahFields, 'id', ViewerContext, BlahEntity>,
92
93
  ): void {}
93
94
 
94
95
  protected override getPrivacyPolicyEvaluator(): EntityPrivacyPolicyEvaluator<
95
96
  BlahFields,
96
- string,
97
+ 'id',
97
98
  ViewerContext,
98
99
  BlahEntity
99
100
  > {
@@ -104,30 +105,30 @@ class LoggingEnforceAlwaysDenyPolicy extends AlwaysDenyPolicy {
104
105
  }
105
106
  }
106
107
 
107
- class AlwaysAllowPolicy extends EntityPrivacyPolicy<BlahFields, string, ViewerContext, BlahEntity> {
108
+ class AlwaysAllowPolicy extends EntityPrivacyPolicy<BlahFields, 'id', ViewerContext, BlahEntity> {
108
109
  protected override readonly createRules = [
109
- new AlwaysAllowPrivacyPolicyRule<BlahFields, string, ViewerContext, BlahEntity>(),
110
+ new AlwaysAllowPrivacyPolicyRule<BlahFields, 'id', ViewerContext, BlahEntity>(),
110
111
  ];
111
112
  protected override readonly readRules = [
112
- new AlwaysAllowPrivacyPolicyRule<BlahFields, string, ViewerContext, BlahEntity>(),
113
+ new AlwaysAllowPrivacyPolicyRule<BlahFields, 'id', ViewerContext, BlahEntity>(),
113
114
  ];
114
115
  protected override readonly updateRules = [
115
- new AlwaysAllowPrivacyPolicyRule<BlahFields, string, ViewerContext, BlahEntity>(),
116
+ new AlwaysAllowPrivacyPolicyRule<BlahFields, 'id', ViewerContext, BlahEntity>(),
116
117
  ];
117
118
  protected override readonly deleteRules = [
118
- new AlwaysAllowPrivacyPolicyRule<BlahFields, string, ViewerContext, BlahEntity>(),
119
+ new AlwaysAllowPrivacyPolicyRule<BlahFields, 'id', ViewerContext, BlahEntity>(),
119
120
  ];
120
121
  }
121
122
 
122
123
  class DryRunAlwaysAllowPolicy extends AlwaysAllowPolicy {
123
124
  // public method for test spying
124
125
  public denyHandler(
125
- _error: EntityNotAuthorizedError<BlahFields, string, ViewerContext, BlahEntity>,
126
+ _error: EntityNotAuthorizedError<BlahFields, 'id', ViewerContext, BlahEntity>,
126
127
  ): void {}
127
128
 
128
129
  protected override getPrivacyPolicyEvaluator(): EntityPrivacyPolicyEvaluator<
129
130
  BlahFields,
130
- string,
131
+ 'id',
131
132
  ViewerContext,
132
133
  BlahEntity
133
134
  > {
@@ -141,12 +142,12 @@ class DryRunAlwaysAllowPolicy extends AlwaysAllowPolicy {
141
142
  class LoggingEnforceAlwaysAllowPolicy extends AlwaysAllowPolicy {
142
143
  // public method for test spying
143
144
  public denyHandler(
144
- _error: EntityNotAuthorizedError<BlahFields, string, ViewerContext, BlahEntity>,
145
+ _error: EntityNotAuthorizedError<BlahFields, 'id', ViewerContext, BlahEntity>,
145
146
  ): void {}
146
147
 
147
148
  protected override getPrivacyPolicyEvaluator(): EntityPrivacyPolicyEvaluator<
148
149
  BlahFields,
149
- string,
150
+ 'id',
150
151
  ViewerContext,
151
152
  BlahEntity
152
153
  > {
@@ -157,24 +158,24 @@ class LoggingEnforceAlwaysAllowPolicy extends AlwaysAllowPolicy {
157
158
  }
158
159
  }
159
160
 
160
- class SkipAllPolicy extends EntityPrivacyPolicy<BlahFields, string, ViewerContext, BlahEntity> {
161
+ class SkipAllPolicy extends EntityPrivacyPolicy<BlahFields, 'id', ViewerContext, BlahEntity> {
161
162
  protected override readonly createRules = [
162
- new AlwaysSkipPrivacyPolicyRule<BlahFields, string, ViewerContext, BlahEntity>(),
163
+ new AlwaysSkipPrivacyPolicyRule<BlahFields, 'id', ViewerContext, BlahEntity>(),
163
164
  ];
164
165
  protected override readonly readRules = [
165
- new AlwaysSkipPrivacyPolicyRule<BlahFields, string, ViewerContext, BlahEntity>(),
166
+ new AlwaysSkipPrivacyPolicyRule<BlahFields, 'id', ViewerContext, BlahEntity>(),
166
167
  ];
167
168
  protected override readonly updateRules = [
168
- new AlwaysSkipPrivacyPolicyRule<BlahFields, string, ViewerContext, BlahEntity>(),
169
+ new AlwaysSkipPrivacyPolicyRule<BlahFields, 'id', ViewerContext, BlahEntity>(),
169
170
  ];
170
171
  protected override readonly deleteRules = [
171
- new AlwaysSkipPrivacyPolicyRule<BlahFields, string, ViewerContext, BlahEntity>(),
172
+ new AlwaysSkipPrivacyPolicyRule<BlahFields, 'id', ViewerContext, BlahEntity>(),
172
173
  ];
173
174
  }
174
175
 
175
176
  class InvalidCreateRuleResultPolicy extends EntityPrivacyPolicy<
176
177
  BlahFields,
177
- string,
178
+ 'id',
178
179
  ViewerContext,
179
180
  BlahEntity
180
181
  > {
@@ -186,19 +187,19 @@ class InvalidCreateRuleResultPolicy extends EntityPrivacyPolicy<
186
187
  },
187
188
  ];
188
189
  protected override readonly readRules = [
189
- new AlwaysSkipPrivacyPolicyRule<BlahFields, string, ViewerContext, BlahEntity>(),
190
+ new AlwaysSkipPrivacyPolicyRule<BlahFields, 'id', ViewerContext, BlahEntity>(),
190
191
  ];
191
192
  protected override readonly updateRules = [
192
- new AlwaysSkipPrivacyPolicyRule<BlahFields, string, ViewerContext, BlahEntity>(),
193
+ new AlwaysSkipPrivacyPolicyRule<BlahFields, 'id', ViewerContext, BlahEntity>(),
193
194
  ];
194
195
  protected override readonly deleteRules = [
195
- new AlwaysSkipPrivacyPolicyRule<BlahFields, string, ViewerContext, BlahEntity>(),
196
+ new AlwaysSkipPrivacyPolicyRule<BlahFields, 'id', ViewerContext, BlahEntity>(),
196
197
  ];
197
198
  }
198
199
 
199
200
  class AlwaysThrowPrivacyPolicyRule extends PrivacyPolicyRule<
200
201
  BlahFields,
201
- string,
202
+ 'id',
202
203
  ViewerContext,
203
204
  BlahEntity
204
205
  > {
@@ -207,7 +208,7 @@ class AlwaysThrowPrivacyPolicyRule extends PrivacyPolicyRule<
207
208
  _queryContext: EntityQueryContext,
208
209
  _evaluationContext: EntityPrivacyPolicyEvaluationContext<
209
210
  BlahFields,
210
- string,
211
+ 'id',
211
212
  ViewerContext,
212
213
  BlahEntity
213
214
  >,
@@ -217,7 +218,7 @@ class AlwaysThrowPrivacyPolicyRule extends PrivacyPolicyRule<
217
218
  }
218
219
  }
219
220
 
220
- class ThrowAllPolicy extends EntityPrivacyPolicy<BlahFields, string, ViewerContext, BlahEntity> {
221
+ class ThrowAllPolicy extends EntityPrivacyPolicy<BlahFields, 'id', ViewerContext, BlahEntity> {
221
222
  protected override readonly createRules = [new AlwaysThrowPrivacyPolicyRule()];
222
223
  protected override readonly readRules = [new AlwaysThrowPrivacyPolicyRule()];
223
224
  protected override readonly updateRules = [new AlwaysThrowPrivacyPolicyRule()];
@@ -227,12 +228,12 @@ class ThrowAllPolicy extends EntityPrivacyPolicy<BlahFields, string, ViewerConte
227
228
  class DryRunThrowAllPolicy extends ThrowAllPolicy {
228
229
  // public method for test spying
229
230
  public denyHandler(
230
- _error: EntityNotAuthorizedError<BlahFields, string, ViewerContext, BlahEntity>,
231
+ _error: EntityNotAuthorizedError<BlahFields, 'id', ViewerContext, BlahEntity>,
231
232
  ): void {}
232
233
 
233
234
  protected override getPrivacyPolicyEvaluator(): EntityPrivacyPolicyEvaluator<
234
235
  BlahFields,
235
- string,
236
+ 'id',
236
237
  ViewerContext,
237
238
  BlahEntity
238
239
  > {
@@ -246,12 +247,12 @@ class DryRunThrowAllPolicy extends ThrowAllPolicy {
246
247
  class LoggingEnforceThrowAllPolicy extends ThrowAllPolicy {
247
248
  // public method for test spying
248
249
  public denyHandler(
249
- _error: EntityNotAuthorizedError<BlahFields, string, ViewerContext, BlahEntity>,
250
+ _error: EntityNotAuthorizedError<BlahFields, 'id', ViewerContext, BlahEntity>,
250
251
  ): void {}
251
252
 
252
253
  protected override getPrivacyPolicyEvaluator(): EntityPrivacyPolicyEvaluator<
253
254
  BlahFields,
254
- string,
255
+ 'id',
255
256
  ViewerContext,
256
257
  BlahEntity
257
258
  > {
@@ -262,7 +263,7 @@ class LoggingEnforceThrowAllPolicy extends ThrowAllPolicy {
262
263
  }
263
264
  }
264
265
 
265
- class EmptyPolicy extends EntityPrivacyPolicy<BlahFields, string, ViewerContext, BlahEntity> {
266
+ class EmptyPolicy extends EntityPrivacyPolicy<BlahFields, 'id', ViewerContext, BlahEntity> {
266
267
  protected override readonly createRules = [];
267
268
  protected override readonly readRules = [];
268
269
  protected override readonly updateRules = [];
@@ -276,9 +277,7 @@ describe(EntityPrivacyPolicy, () => {
276
277
  const queryContext = instance(mock(EntityQueryContext));
277
278
  const privacyPolicyEvaluationContext =
278
279
  instance(
279
- mock<
280
- EntityPrivacyPolicyEvaluationContext<BlahFields, string, ViewerContext, BlahEntity>
281
- >(),
280
+ mock<EntityPrivacyPolicyEvaluationContext<BlahFields, 'id', ViewerContext, BlahEntity>>(),
282
281
  );
283
282
  const metricsAdapterMock = mock<IEntityMetricsAdapter>();
284
283
  const metricsAdapter = instance(metricsAdapterMock);
@@ -315,9 +314,7 @@ describe(EntityPrivacyPolicy, () => {
315
314
  const queryContext = instance(mock(EntityQueryContext));
316
315
  const privacyPolicyEvaluationContext =
317
316
  instance(
318
- mock<
319
- EntityPrivacyPolicyEvaluationContext<BlahFields, string, ViewerContext, BlahEntity>
320
- >(),
317
+ mock<EntityPrivacyPolicyEvaluationContext<BlahFields, 'id', ViewerContext, BlahEntity>>(),
321
318
  );
322
319
  const metricsAdapterMock = mock<IEntityMetricsAdapter>();
323
320
  const metricsAdapter = instance(metricsAdapterMock);
@@ -353,9 +350,7 @@ describe(EntityPrivacyPolicy, () => {
353
350
  const queryContext = instance(mock(EntityQueryContext));
354
351
  const privacyPolicyEvaluationContext =
355
352
  instance(
356
- mock<
357
- EntityPrivacyPolicyEvaluationContext<BlahFields, string, ViewerContext, BlahEntity>
358
- >(),
353
+ mock<EntityPrivacyPolicyEvaluationContext<BlahFields, 'id', ViewerContext, BlahEntity>>(),
359
354
  );
360
355
  const metricsAdapterMock = mock<IEntityMetricsAdapter>();
361
356
  const metricsAdapter = instance(metricsAdapterMock);
@@ -392,9 +387,7 @@ describe(EntityPrivacyPolicy, () => {
392
387
  const queryContext = instance(mock(EntityQueryContext));
393
388
  const privacyPolicyEvaluationContext =
394
389
  instance(
395
- mock<
396
- EntityPrivacyPolicyEvaluationContext<BlahFields, string, ViewerContext, BlahEntity>
397
- >(),
390
+ mock<EntityPrivacyPolicyEvaluationContext<BlahFields, 'id', ViewerContext, BlahEntity>>(),
398
391
  );
399
392
  const metricsAdapterMock = mock<IEntityMetricsAdapter>();
400
393
  const metricsAdapter = instance(metricsAdapterMock);
@@ -421,9 +414,7 @@ describe(EntityPrivacyPolicy, () => {
421
414
  const queryContext = instance(mock(EntityQueryContext));
422
415
  const privacyPolicyEvaluationContext =
423
416
  instance(
424
- mock<
425
- EntityPrivacyPolicyEvaluationContext<BlahFields, string, ViewerContext, BlahEntity>
426
- >(),
417
+ mock<EntityPrivacyPolicyEvaluationContext<BlahFields, 'id', ViewerContext, BlahEntity>>(),
427
418
  );
428
419
  const metricsAdapterMock = mock<IEntityMetricsAdapter>();
429
420
  const metricsAdapter = instance(metricsAdapterMock);
@@ -460,9 +451,7 @@ describe(EntityPrivacyPolicy, () => {
460
451
  const queryContext = instance(mock(EntityQueryContext));
461
452
  const privacyPolicyEvaluationContext =
462
453
  instance(
463
- mock<
464
- EntityPrivacyPolicyEvaluationContext<BlahFields, string, ViewerContext, BlahEntity>
465
- >(),
454
+ mock<EntityPrivacyPolicyEvaluationContext<BlahFields, 'id', ViewerContext, BlahEntity>>(),
466
455
  );
467
456
  const metricsAdapterMock = mock<IEntityMetricsAdapter>();
468
457
  const metricsAdapter = instance(metricsAdapterMock);
@@ -492,9 +481,7 @@ describe(EntityPrivacyPolicy, () => {
492
481
  const queryContext = instance(mock(EntityQueryContext));
493
482
  const privacyPolicyEvaluationContext =
494
483
  instance(
495
- mock<
496
- EntityPrivacyPolicyEvaluationContext<BlahFields, string, ViewerContext, BlahEntity>
497
- >(),
484
+ mock<EntityPrivacyPolicyEvaluationContext<BlahFields, 'id', ViewerContext, BlahEntity>>(),
498
485
  );
499
486
  const metricsAdapterMock = mock<IEntityMetricsAdapter>();
500
487
  const metricsAdapter = instance(metricsAdapterMock);
@@ -536,9 +523,7 @@ describe(EntityPrivacyPolicy, () => {
536
523
  const queryContext = instance(mock(EntityQueryContext));
537
524
  const privacyPolicyEvaluationContext =
538
525
  instance(
539
- mock<
540
- EntityPrivacyPolicyEvaluationContext<BlahFields, string, ViewerContext, BlahEntity>
541
- >(),
526
+ mock<EntityPrivacyPolicyEvaluationContext<BlahFields, 'id', ViewerContext, BlahEntity>>(),
542
527
  );
543
528
  const metricsAdapterMock = mock<IEntityMetricsAdapter>();
544
529
  const metricsAdapter = instance(metricsAdapterMock);
@@ -580,9 +565,7 @@ describe(EntityPrivacyPolicy, () => {
580
565
  const queryContext = instance(mock(EntityQueryContext));
581
566
  const privacyPolicyEvaluationContext =
582
567
  instance(
583
- mock<
584
- EntityPrivacyPolicyEvaluationContext<BlahFields, string, ViewerContext, BlahEntity>
585
- >(),
568
+ mock<EntityPrivacyPolicyEvaluationContext<BlahFields, 'id', ViewerContext, BlahEntity>>(),
586
569
  );
587
570
  const metricsAdapterMock = mock<IEntityMetricsAdapter>();
588
571
  const metricsAdapter = instance(metricsAdapterMock);
@@ -618,9 +601,7 @@ describe(EntityPrivacyPolicy, () => {
618
601
  const queryContext = instance(mock(EntityQueryContext));
619
602
  const privacyPolicyEvaluationContext =
620
603
  instance(
621
- mock<
622
- EntityPrivacyPolicyEvaluationContext<BlahFields, string, ViewerContext, BlahEntity>
623
- >(),
604
+ mock<EntityPrivacyPolicyEvaluationContext<BlahFields, 'id', ViewerContext, BlahEntity>>(),
624
605
  );
625
606
  const metricsAdapterMock = mock<IEntityMetricsAdapter>();
626
607
  const metricsAdapter = instance(metricsAdapterMock);
@@ -663,9 +644,7 @@ describe(EntityPrivacyPolicy, () => {
663
644
  const queryContext = instance(mock(EntityQueryContext));
664
645
  const privacyPolicyEvaluationContext =
665
646
  instance(
666
- mock<
667
- EntityPrivacyPolicyEvaluationContext<BlahFields, string, ViewerContext, BlahEntity>
668
- >(),
647
+ mock<EntityPrivacyPolicyEvaluationContext<BlahFields, 'id', ViewerContext, BlahEntity>>(),
669
648
  );
670
649
  const metricsAdapterMock = mock<IEntityMetricsAdapter>();
671
650
  const metricsAdapter = instance(metricsAdapterMock);
@@ -707,9 +686,7 @@ describe(EntityPrivacyPolicy, () => {
707
686
  const queryContext = instance(mock(EntityQueryContext));
708
687
  const privacyPolicyEvaluationContext =
709
688
  instance(
710
- mock<
711
- EntityPrivacyPolicyEvaluationContext<BlahFields, string, ViewerContext, BlahEntity>
712
- >(),
689
+ mock<EntityPrivacyPolicyEvaluationContext<BlahFields, 'id', ViewerContext, BlahEntity>>(),
713
690
  );
714
691
  const metricsAdapterMock = mock<IEntityMetricsAdapter>();
715
692
  const metricsAdapter = instance(metricsAdapterMock);
@@ -2,7 +2,7 @@ import invariant from 'invariant';
2
2
 
3
3
  import { EntityQueryContext, TransactionIsolationLevel } from '../EntityQueryContext';
4
4
  import ViewerContext from '../ViewerContext';
5
- import { createUnitTestEntityCompanionProvider } from '../utils/testing/createUnitTestEntityCompanionProvider';
5
+ import { createUnitTestEntityCompanionProvider } from '../utils/__testfixtures__/createUnitTestEntityCompanionProvider';
6
6
 
7
7
  describe(EntityQueryContext, () => {
8
8
  describe('callbacks', () => {
@@ -6,15 +6,15 @@ import ViewerContext from '../ViewerContext';
6
6
  import SimpleTestEntity, {
7
7
  SimpleTestEntityPrivacyPolicy,
8
8
  SimpleTestFields,
9
- } from '../testfixtures/SimpleTestEntity';
10
- import { createUnitTestEntityCompanionProvider } from '../utils/testing/createUnitTestEntityCompanionProvider';
9
+ } from '../utils/__testfixtures__/SimpleTestEntity';
10
+ import { createUnitTestEntityCompanionProvider } from '../utils/__testfixtures__/createUnitTestEntityCompanionProvider';
11
11
 
12
12
  type TestLoadParams = { id: string };
13
13
 
14
14
  class TestSecondaryRedisCacheLoader extends EntitySecondaryCacheLoader<
15
15
  TestLoadParams,
16
16
  SimpleTestFields,
17
- string,
17
+ 'id',
18
18
  ViewerContext,
19
19
  SimpleTestEntity,
20
20
  SimpleTestEntityPrivacyPolicy
@@ -5,10 +5,11 @@ import { EntityEdgeDeletionBehavior } from '../EntityFieldDefinition';
5
5
  import { UUIDField } from '../EntityFields';
6
6
  import EntityPrivacyPolicy from '../EntityPrivacyPolicy';
7
7
  import { CacheStatus } from '../internal/ReadThroughEntityCache';
8
+ import { SingleFieldHolder, SingleFieldValueHolder } from '../internal/SingleFieldHolder';
8
9
  import AlwaysAllowPrivacyPolicyRule from '../rules/AlwaysAllowPrivacyPolicyRule';
9
- import TestViewerContext from '../testfixtures/TestViewerContext';
10
- import { InMemoryFullCacheStubCacheAdapter } from '../utils/testing/StubCacheAdapter';
11
- import { createUnitTestEntityCompanionProvider } from '../utils/testing/createUnitTestEntityCompanionProvider';
10
+ import { InMemoryFullCacheStubCacheAdapter } from '../utils/__testfixtures__/StubCacheAdapter';
11
+ import TestViewerContext from '../utils/__testfixtures__/TestViewerContext';
12
+ import { createUnitTestEntityCompanionProvider } from '../utils/__testfixtures__/createUnitTestEntityCompanionProvider';
12
13
 
13
14
  interface CategoryFields {
14
15
  id: string;
@@ -17,31 +18,31 @@ interface CategoryFields {
17
18
 
18
19
  class CategoryPrivacyPolicy extends EntityPrivacyPolicy<
19
20
  CategoryFields,
20
- string,
21
+ 'id',
21
22
  TestViewerContext,
22
23
  any,
23
24
  any
24
25
  > {
25
26
  protected override readonly readRules = [
26
- new AlwaysAllowPrivacyPolicyRule<CategoryFields, string, TestViewerContext, any, any>(),
27
+ new AlwaysAllowPrivacyPolicyRule<CategoryFields, 'id', TestViewerContext, any, any>(),
27
28
  ];
28
29
  protected override readonly createRules = [
29
- new AlwaysAllowPrivacyPolicyRule<CategoryFields, string, TestViewerContext, any, any>(),
30
+ new AlwaysAllowPrivacyPolicyRule<CategoryFields, 'id', TestViewerContext, any, any>(),
30
31
  ];
31
32
  protected override readonly updateRules = [
32
- new AlwaysAllowPrivacyPolicyRule<CategoryFields, string, TestViewerContext, any, any>(),
33
+ new AlwaysAllowPrivacyPolicyRule<CategoryFields, 'id', TestViewerContext, any, any>(),
33
34
  ];
34
35
  protected override readonly deleteRules = [
35
- new AlwaysAllowPrivacyPolicyRule<CategoryFields, string, TestViewerContext, any, any>(),
36
+ new AlwaysAllowPrivacyPolicyRule<CategoryFields, 'id', TestViewerContext, any, any>(),
36
37
  ];
37
38
  }
38
39
 
39
40
  // eslint-disable-next-line @typescript-eslint/explicit-function-return-type
40
41
  const makeEntityClass = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) => {
41
- class CategoryEntity extends Entity<CategoryFields, string, TestViewerContext> {
42
+ class CategoryEntity extends Entity<CategoryFields, 'id', TestViewerContext> {
42
43
  static defineCompanionDefinition(): EntityCompanionDefinition<
43
44
  CategoryFields,
44
- string,
45
+ 'id',
45
46
  TestViewerContext,
46
47
  CategoryEntity,
47
48
  CategoryPrivacyPolicy
@@ -54,7 +55,7 @@ const makeEntityClass = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) => {
54
55
  }
55
56
  }
56
57
 
57
- const categoryEntityConfiguration = new EntityConfiguration<CategoryFields>({
58
+ const categoryEntityConfiguration = new EntityConfiguration<CategoryFields, 'id'>({
58
59
  idField: 'id',
59
60
  tableName: 'categories',
60
61
  inboundEdges: [CategoryEntity],
@@ -245,30 +246,40 @@ describe('EntityEdgeDeletionBehavior.CASCADE_DELETE_INVALIDATE_CACHE', () => {
245
246
  CategoryEntity,
246
247
  )['entityCompanion']['tableDataCoordinator'][
247
248
  'cacheAdapter'
248
- ] as InMemoryFullCacheStubCacheAdapter<CategoryFields>;
249
- const subCategoryCachedBefore = await categoryCacheAdapter.loadManyAsync('parent_category_id', [
250
- parentCategory.getID(),
251
- ]);
252
- expect(subCategoryCachedBefore.get(parentCategory.getID())?.status).toEqual(CacheStatus.HIT);
249
+ ] as InMemoryFullCacheStubCacheAdapter<CategoryFields, 'id'>;
250
+ const subCategoryCachedBefore = await categoryCacheAdapter.loadManyAsync(
251
+ new SingleFieldHolder('parent_category_id'),
252
+ [new SingleFieldValueHolder(parentCategory.getID())],
253
+ );
254
+ expect(
255
+ subCategoryCachedBefore.get(new SingleFieldValueHolder(parentCategory.getID()))?.status,
256
+ ).toEqual(CacheStatus.HIT);
253
257
 
254
258
  const subSubCategoryCachedBefore = await categoryCacheAdapter.loadManyAsync(
255
- 'parent_category_id',
256
- [subCategory.getID()],
259
+ new SingleFieldHolder('parent_category_id'),
260
+ [new SingleFieldValueHolder(subCategory.getID())],
257
261
  );
258
- expect(subSubCategoryCachedBefore.get(subCategory.getID())?.status).toEqual(CacheStatus.HIT);
262
+ expect(
263
+ subSubCategoryCachedBefore.get(new SingleFieldValueHolder(subCategory.getID()))?.status,
264
+ ).toEqual(CacheStatus.HIT);
259
265
 
260
266
  await CategoryEntity.deleter(parentCategory).deleteAsync();
261
267
 
262
- const subCategoryCachedAfter = await categoryCacheAdapter.loadManyAsync('parent_category_id', [
263
- parentCategory.getID(),
264
- ]);
265
- expect(subCategoryCachedAfter.get(parentCategory.getID())?.status).toEqual(CacheStatus.MISS);
268
+ const subCategoryCachedAfter = await categoryCacheAdapter.loadManyAsync(
269
+ new SingleFieldHolder('parent_category_id'),
270
+ [new SingleFieldValueHolder(parentCategory.getID())],
271
+ );
272
+ expect(
273
+ subCategoryCachedAfter.get(new SingleFieldValueHolder(parentCategory.getID()))?.status,
274
+ ).toEqual(CacheStatus.MISS);
266
275
 
267
276
  const subSubCategoryCachedAfter = await categoryCacheAdapter.loadManyAsync(
268
- 'parent_category_id',
269
- [subCategory.getID()],
277
+ new SingleFieldHolder('parent_category_id'),
278
+ [new SingleFieldValueHolder(subCategory.getID())],
270
279
  );
271
- expect(subSubCategoryCachedAfter.get(subCategory.getID())?.status).toEqual(CacheStatus.MISS);
280
+ expect(
281
+ subSubCategoryCachedAfter.get(new SingleFieldValueHolder(subCategory.getID()))?.status,
282
+ ).toEqual(CacheStatus.MISS);
272
283
 
273
284
  await expect(
274
285
  CategoryEntity.loader(viewerContext).loadByIDNullableAsync(parentCategory.getID()),
@@ -314,21 +325,35 @@ describe('EntityEdgeDeletionBehavior.CASCADE_DELETE_INVALIDATE_CACHE', () => {
314
325
  CategoryEntity,
315
326
  )['entityCompanion']['tableDataCoordinator'][
316
327
  'cacheAdapter'
317
- ] as InMemoryFullCacheStubCacheAdapter<CategoryFields>;
318
- const categoriesCachedBefore = await categoryCacheAdapter.loadManyAsync('parent_category_id', [
319
- categoryA.getID(),
320
- categoryB.getID(),
321
- ]);
322
- expect(categoriesCachedBefore.get(categoryA.getID())?.status).toEqual(CacheStatus.HIT);
323
- expect(categoriesCachedBefore.get(categoryB.getID())?.status).toEqual(CacheStatus.HIT);
328
+ ] as InMemoryFullCacheStubCacheAdapter<CategoryFields, 'id'>;
329
+ const categoriesCachedBefore = await categoryCacheAdapter.loadManyAsync(
330
+ new SingleFieldHolder('parent_category_id'),
331
+ [
332
+ new SingleFieldValueHolder(categoryA.getID()),
333
+ new SingleFieldValueHolder(categoryB.getID()),
334
+ ],
335
+ );
336
+ expect(
337
+ categoriesCachedBefore.get(new SingleFieldValueHolder(categoryA.getID()))?.status,
338
+ ).toEqual(CacheStatus.HIT);
339
+ expect(
340
+ categoriesCachedBefore.get(new SingleFieldValueHolder(categoryB.getID()))?.status,
341
+ ).toEqual(CacheStatus.HIT);
324
342
 
325
343
  await CategoryEntity.deleter(categoryA).deleteAsync();
326
344
 
327
- const categoriesCachedAfter = await categoryCacheAdapter.loadManyAsync('parent_category_id', [
328
- categoryA.getID(),
329
- categoryB.getID(),
330
- ]);
331
- expect(categoriesCachedAfter.get(categoryA.getID())?.status).toEqual(CacheStatus.MISS);
332
- expect(categoriesCachedAfter.get(categoryB.getID())?.status).toEqual(CacheStatus.MISS);
345
+ const categoriesCachedAfter = await categoryCacheAdapter.loadManyAsync(
346
+ new SingleFieldHolder('parent_category_id'),
347
+ [
348
+ new SingleFieldValueHolder(categoryA.getID()),
349
+ new SingleFieldValueHolder(categoryB.getID()),
350
+ ],
351
+ );
352
+ expect(
353
+ categoriesCachedAfter.get(new SingleFieldValueHolder(categoryA.getID()))?.status,
354
+ ).toEqual(CacheStatus.MISS);
355
+ expect(
356
+ categoriesCachedAfter.get(new SingleFieldValueHolder(categoryB.getID()))?.status,
357
+ ).toEqual(CacheStatus.MISS);
333
358
  });
334
359
  });