@expo/entity 0.40.0 → 0.42.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 (433) hide show
  1. package/build/AuthorizationResultBasedEntityAssociationLoader.d.ts +16 -16
  2. package/build/AuthorizationResultBasedEntityAssociationLoader.js +2 -4
  3. package/build/AuthorizationResultBasedEntityAssociationLoader.js.map +1 -1
  4. package/build/AuthorizationResultBasedEntityLoader.d.ts +39 -67
  5. package/build/AuthorizationResultBasedEntityLoader.js +85 -62
  6. package/build/AuthorizationResultBasedEntityLoader.js.map +1 -1
  7. package/build/AuthorizationResultBasedEntityMutator.d.ts +16 -16
  8. package/build/AuthorizationResultBasedEntityMutator.js.map +1 -1
  9. package/build/ComposedEntityCacheAdapter.d.ts +7 -6
  10. package/build/ComposedEntityCacheAdapter.js +28 -28
  11. package/build/ComposedEntityCacheAdapter.js.map +1 -1
  12. package/build/ComposedSecondaryEntityCache.d.ts +1 -1
  13. package/build/ComposedSecondaryEntityCache.js.map +1 -1
  14. package/build/EnforcingEntityAssociationLoader.d.ts +15 -15
  15. package/build/EnforcingEntityAssociationLoader.js.map +1 -1
  16. package/build/EnforcingEntityCreator.d.ts +2 -2
  17. package/build/EnforcingEntityDeleter.d.ts +2 -2
  18. package/build/EnforcingEntityLoader.d.ts +104 -18
  19. package/build/EnforcingEntityLoader.js +113 -12
  20. package/build/EnforcingEntityLoader.js.map +1 -1
  21. package/build/EnforcingEntityUpdater.d.ts +2 -2
  22. package/build/Entity.d.ts +32 -10
  23. package/build/Entity.js +41 -3
  24. package/build/Entity.js.map +1 -1
  25. package/build/EntityAssociationLoader.d.ts +3 -3
  26. package/build/EntityCompanion.d.ts +5 -5
  27. package/build/EntityCompanion.js.map +1 -1
  28. package/build/EntityCompanionProvider.d.ts +6 -6
  29. package/build/EntityCompanionProvider.js.map +1 -1
  30. package/build/EntityConfiguration.d.ts +46 -5
  31. package/build/EntityConfiguration.js +39 -1
  32. package/build/EntityConfiguration.js.map +1 -1
  33. package/build/EntityCreator.d.ts +4 -4
  34. package/build/EntityDatabaseAdapter.d.ts +15 -14
  35. package/build/EntityDatabaseAdapter.js +20 -12
  36. package/build/EntityDatabaseAdapter.js.map +1 -1
  37. package/build/EntityDeleter.d.ts +4 -4
  38. package/build/EntityFieldDefinition.d.ts +20 -10
  39. package/build/EntityFieldDefinition.js +3 -1
  40. package/build/EntityFieldDefinition.js.map +1 -1
  41. package/build/EntityFields.d.ts +14 -12
  42. package/build/EntityFields.js.map +1 -1
  43. package/build/EntityLoader.d.ts +5 -5
  44. package/build/EntityLoaderFactory.d.ts +3 -3
  45. package/build/EntityLoaderFactory.js.map +1 -1
  46. package/build/EntityLoaderUtils.d.ts +2 -2
  47. package/build/EntityLoaderUtils.js +27 -1
  48. package/build/EntityLoaderUtils.js.map +1 -1
  49. package/build/EntityMutationInfo.d.ts +2 -2
  50. package/build/EntityMutationTriggerConfiguration.d.ts +14 -14
  51. package/build/EntityMutationTriggerConfiguration.js.map +1 -1
  52. package/build/EntityMutationValidator.d.ts +2 -2
  53. package/build/EntityMutatorFactory.d.ts +5 -5
  54. package/build/EntityMutatorFactory.js.map +1 -1
  55. package/build/EntityPrivacyPolicy.d.ts +14 -14
  56. package/build/EntityPrivacyPolicy.js.map +1 -1
  57. package/build/EntitySecondaryCacheLoader.d.ts +4 -4
  58. package/build/EntityUpdater.d.ts +4 -4
  59. package/build/GenericEntityCacheAdapter.d.ts +7 -6
  60. package/build/GenericEntityCacheAdapter.js +13 -14
  61. package/build/GenericEntityCacheAdapter.js.map +1 -1
  62. package/build/GenericSecondaryEntityCache.d.ts +3 -3
  63. package/build/GenericSecondaryEntityCache.js.map +1 -1
  64. package/build/IEntityCacheAdapter.d.ts +17 -16
  65. package/build/IEntityCacheAdapterProvider.d.ts +1 -1
  66. package/build/IEntityDatabaseAdapterProvider.d.ts +1 -1
  67. package/build/IEntityGenericCacher.d.ts +15 -5
  68. package/build/ReadonlyEntity.d.ts +27 -8
  69. package/build/ReadonlyEntity.js +31 -3
  70. package/build/ReadonlyEntity.js.map +1 -1
  71. package/build/ViewerContext.d.ts +1 -1
  72. package/build/ViewerScopedEntityCompanion.d.ts +5 -5
  73. package/build/ViewerScopedEntityCompanionProvider.d.ts +1 -1
  74. package/build/ViewerScopedEntityLoaderFactory.d.ts +3 -3
  75. package/build/ViewerScopedEntityMutatorFactory.d.ts +5 -5
  76. package/build/entityUtils.d.ts +1 -1
  77. package/build/entityUtils.js.map +1 -1
  78. package/build/errors/EntityInvalidFieldValueError.d.ts +2 -2
  79. package/build/errors/EntityNotAuthorizedError.d.ts +1 -1
  80. package/build/errors/EntityNotFoundError.d.ts +2 -2
  81. package/build/index.d.ts +7 -7
  82. package/build/index.js +8 -13
  83. package/build/index.js.map +1 -1
  84. package/build/internal/CompositeFieldHolder.d.ts +48 -0
  85. package/build/internal/CompositeFieldHolder.js +116 -0
  86. package/build/internal/CompositeFieldHolder.js.map +1 -0
  87. package/build/internal/CompositeFieldValueMap.d.ts +15 -0
  88. package/build/internal/CompositeFieldValueMap.js +51 -0
  89. package/build/internal/CompositeFieldValueMap.js.map +1 -0
  90. package/build/internal/EntityDataManager.d.ts +16 -16
  91. package/build/internal/EntityDataManager.js +42 -45
  92. package/build/internal/EntityDataManager.js.map +1 -1
  93. package/build/internal/EntityFieldTransformationUtils.d.ts +5 -5
  94. package/build/internal/EntityFieldTransformationUtils.js.map +1 -1
  95. package/build/internal/EntityLoadInterfaces.d.ts +104 -0
  96. package/build/internal/EntityLoadInterfaces.js +25 -0
  97. package/build/internal/EntityLoadInterfaces.js.map +1 -0
  98. package/build/internal/EntityTableDataCoordinator.d.ts +6 -6
  99. package/build/internal/EntityTableDataCoordinator.js.map +1 -1
  100. package/build/internal/ReadThroughEntityCache.d.ts +17 -16
  101. package/build/internal/ReadThroughEntityCache.js +36 -36
  102. package/build/internal/ReadThroughEntityCache.js.map +1 -1
  103. package/build/internal/SingleFieldHolder.d.ts +34 -0
  104. package/build/internal/SingleFieldHolder.js +90 -0
  105. package/build/internal/SingleFieldHolder.js.map +1 -0
  106. package/build/metrics/EntityMetricsUtils.d.ts +2 -1
  107. package/build/metrics/EntityMetricsUtils.js.map +1 -1
  108. package/build/metrics/IEntityMetricsAdapter.d.ts +5 -0
  109. package/build/metrics/IEntityMetricsAdapter.js.map +1 -1
  110. package/build/rules/AlwaysAllowPrivacyPolicyRule.d.ts +2 -2
  111. package/build/rules/AlwaysAllowPrivacyPolicyRule.js.map +1 -1
  112. package/build/rules/AlwaysDenyPrivacyPolicyRule.d.ts +2 -2
  113. package/build/rules/AlwaysDenyPrivacyPolicyRule.js.map +1 -1
  114. package/build/rules/AlwaysSkipPrivacyPolicyRule.d.ts +2 -2
  115. package/build/rules/AlwaysSkipPrivacyPolicyRule.js.map +1 -1
  116. package/build/rules/PrivacyPolicyRule.d.ts +2 -2
  117. package/build/tsconfig.build.tsbuildinfo +1 -0
  118. package/build/utils/EntityPrivacyUtils.d.ts +4 -4
  119. package/build/utils/EntityPrivacyUtils.js.map +1 -1
  120. package/build/utils/collections/SerializableKeyMap.d.ts +27 -0
  121. package/build/utils/collections/SerializableKeyMap.js +60 -0
  122. package/build/utils/collections/SerializableKeyMap.js.map +1 -0
  123. package/build/utils/collections/maps.js +1 -2
  124. package/build/utils/collections/maps.js.map +1 -1
  125. package/build/utils/collections/sets.d.ts +1 -0
  126. package/build/utils/collections/sets.js +7 -0
  127. package/build/utils/collections/sets.js.map +1 -0
  128. package/build/utils/mergeEntityMutationTriggerConfigurations.d.ts +1 -1
  129. package/package.json +8 -5
  130. package/src/AuthorizationResultBasedEntityAssociationLoader.ts +58 -53
  131. package/src/AuthorizationResultBasedEntityLoader.ts +194 -81
  132. package/src/AuthorizationResultBasedEntityMutator.ts +71 -45
  133. package/src/ComposedEntityCacheAdapter.ts +55 -46
  134. package/src/ComposedSecondaryEntityCache.ts +5 -2
  135. package/src/EnforcingEntityAssociationLoader.ts +52 -44
  136. package/src/EnforcingEntityCreator.ts +5 -5
  137. package/src/EnforcingEntityDeleter.ts +5 -5
  138. package/src/EnforcingEntityLoader.ts +158 -21
  139. package/src/EnforcingEntityUpdater.ts +5 -5
  140. package/src/Entity.ts +185 -29
  141. package/src/EntityAssociationLoader.ts +6 -6
  142. package/src/EntityCompanion.ts +11 -11
  143. package/src/EntityCompanionProvider.ts +21 -18
  144. package/src/EntityConfiguration.ts +123 -9
  145. package/src/EntityCreator.ts +7 -7
  146. package/src/EntityDatabaseAdapter.ts +51 -28
  147. package/src/EntityDeleter.ts +7 -7
  148. package/src/EntityFieldDefinition.ts +32 -12
  149. package/src/EntityFields.ts +49 -12
  150. package/src/EntityLoader.ts +8 -8
  151. package/src/EntityLoaderFactory.ts +8 -8
  152. package/src/EntityLoaderUtils.ts +39 -10
  153. package/src/EntityMutationInfo.ts +6 -6
  154. package/src/EntityMutationTriggerConfiguration.ts +68 -20
  155. package/src/EntityMutationValidator.ts +4 -4
  156. package/src/EntityMutatorFactory.ts +13 -13
  157. package/src/EntityPrivacyPolicy.ts +50 -26
  158. package/src/EntitySecondaryCacheLoader.ts +6 -6
  159. package/src/EntityUpdater.ts +7 -7
  160. package/src/GenericEntityCacheAdapter.ts +39 -28
  161. package/src/GenericSecondaryEntityCache.ts +6 -3
  162. package/src/IEntityCacheAdapter.ts +45 -25
  163. package/src/IEntityCacheAdapterProvider.ts +3 -3
  164. package/src/IEntityDatabaseAdapterProvider.ts +3 -3
  165. package/src/IEntityGenericCacher.ts +33 -5
  166. package/src/ReadonlyEntity.ts +129 -16
  167. package/src/ViewerContext.ts +5 -5
  168. package/src/ViewerScopedEntityCompanion.ts +7 -7
  169. package/src/ViewerScopedEntityCompanionProvider.ts +6 -6
  170. package/src/ViewerScopedEntityLoaderFactory.ts +7 -7
  171. package/src/ViewerScopedEntityMutatorFactory.ts +8 -8
  172. package/src/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.ts +41 -72
  173. package/src/__tests__/AuthorizationResultBasedEntityLoader-constructor-test.ts +14 -13
  174. package/src/__tests__/AuthorizationResultBasedEntityLoader-test.ts +367 -69
  175. package/src/__tests__/ComposedCacheAdapter-test.ts +235 -117
  176. package/src/__tests__/EnforcingEntityLoader-test.ts +135 -1
  177. package/src/__tests__/Entity-test.ts +64 -11
  178. package/src/__tests__/EntityAssociationLoader-test.ts +6 -8
  179. package/src/__tests__/EntityCommonUseCases-test.ts +25 -28
  180. package/src/__tests__/EntityCompanion-test.ts +4 -4
  181. package/src/__tests__/EntityCompanionProvider-test.ts +9 -8
  182. package/src/__tests__/EntityConfiguration-test.ts +85 -6
  183. package/src/__tests__/EntityDatabaseAdapter-test.ts +113 -17
  184. package/src/__tests__/EntityEdges-test.ts +135 -138
  185. package/src/__tests__/EntityFields-test.ts +2 -2
  186. package/src/__tests__/EntityLoader-test.ts +5 -7
  187. package/src/__tests__/EntityMutator-MutationCacheConsistency-test.ts +17 -19
  188. package/src/__tests__/EntityMutator-SingleCompositeFieldCacheConsistency-test.ts +73 -0
  189. package/src/__tests__/EntityMutator-test.ts +74 -46
  190. package/src/__tests__/EntityPrivacyPolicy-test.ts +51 -74
  191. package/src/__tests__/EntityQueryContext-test.ts +1 -1
  192. package/src/__tests__/EntitySecondaryCacheLoader-test.ts +9 -9
  193. package/src/__tests__/EntitySelfReferentialEdges-test.ts +119 -122
  194. package/src/__tests__/GenericEntityCacheAdapter-test.ts +83 -28
  195. package/src/__tests__/ReadonlyEntity-test.ts +49 -9
  196. package/src/__tests__/ViewerContext-test.ts +1 -1
  197. package/src/__tests__/ViewerScopedEntityCompanion-test.ts +5 -2
  198. package/src/__tests__/ViewerScopedEntityCompanionProvider-test.ts +1 -1
  199. package/src/__tests__/ViewerScopedEntityMutatorFactory-test.ts +12 -3
  200. package/src/__tests__/cases/TwoEntitySameTableDisjointRows-test.ts +25 -27
  201. package/src/__tests__/cases/TwoEntitySameTableOverlappingRows-test.ts +28 -34
  202. package/src/entityUtils.ts +4 -1
  203. package/src/errors/EntityInvalidFieldValueError.ts +5 -5
  204. package/src/errors/EntityNotAuthorizedError.ts +3 -3
  205. package/src/errors/EntityNotFoundError.ts +5 -5
  206. package/src/index.ts +7 -7
  207. package/src/internal/CompositeFieldHolder.ts +218 -0
  208. package/src/internal/CompositeFieldValueMap.ts +78 -0
  209. package/src/internal/EntityDataManager.ts +107 -96
  210. package/src/internal/EntityFieldTransformationUtils.ts +33 -14
  211. package/src/internal/EntityLoadInterfaces.ts +143 -0
  212. package/src/internal/EntityTableDataCoordinator.ts +8 -5
  213. package/src/internal/ReadThroughEntityCache.ts +63 -50
  214. package/src/internal/SingleFieldHolder.ts +131 -0
  215. package/src/internal/__tests__/CompositeFieldHolder-test.ts +25 -0
  216. package/src/internal/__tests__/CompositeFieldValueMap-test.ts +43 -0
  217. package/src/internal/__tests__/EntityDataManager-test.ts +308 -91
  218. package/src/internal/__tests__/EntityFieldTransformationUtils-test.ts +3 -2
  219. package/src/internal/__tests__/ReadThroughEntityCache-test.ts +315 -107
  220. package/src/metrics/EntityMetricsUtils.ts +7 -2
  221. package/src/metrics/IEntityMetricsAdapter.ts +6 -0
  222. package/src/rules/AlwaysAllowPrivacyPolicyRule.ts +5 -5
  223. package/src/rules/AlwaysDenyPrivacyPolicyRule.ts +5 -5
  224. package/src/rules/AlwaysSkipPrivacyPolicyRule.ts +5 -5
  225. package/src/rules/PrivacyPolicyRule.ts +4 -4
  226. package/src/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.ts +1 -1
  227. package/src/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.ts +1 -1
  228. package/src/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.ts +1 -1
  229. package/src/utils/EntityPrivacyUtils.ts +72 -30
  230. package/src/utils/{testing → __testfixtures__}/PrivacyPolicyRuleTestUtils.ts +26 -26
  231. package/src/{testfixtures → utils/__testfixtures__}/SimpleTestEntity.ts +16 -15
  232. package/src/utils/__testfixtures__/StubCacheAdapter.ts +164 -0
  233. package/src/utils/{testing → __testfixtures__}/StubDatabaseAdapter.ts +19 -12
  234. package/src/utils/{testing → __testfixtures__}/StubDatabaseAdapterProvider.ts +4 -4
  235. package/src/utils/__testfixtures__/TSMockitoExtensions.ts +69 -0
  236. package/src/{testfixtures → utils/__testfixtures__}/TestEntity.ts +21 -15
  237. package/src/{testfixtures → utils/__testfixtures__}/TestEntity2.ts +16 -15
  238. package/src/{testfixtures → utils/__testfixtures__}/TestEntityWithMutationTriggers.ts +23 -22
  239. package/src/{testfixtures → utils/__testfixtures__}/TestViewerContext.ts +1 -1
  240. package/src/utils/{testing → __testfixtures__}/describeFieldTestCase.ts +1 -1
  241. package/src/utils/__tests__/EntityPrivacyUtils-test.ts +81 -113
  242. package/src/utils/__tests__/canViewerDeleteAsync-edgeDeletionPermissionInferenceBehavior-test.ts +31 -30
  243. package/src/utils/__tests__/mergeEntityMutationTriggerConfigurations-test.ts +1 -1
  244. package/src/utils/collections/SerializableKeyMap.ts +84 -0
  245. package/src/utils/collections/__tests__/SerializableKeyMap-test.ts +119 -0
  246. package/src/utils/collections/__tests__/sets-test.ts +17 -0
  247. package/src/utils/collections/maps.ts +7 -8
  248. package/src/utils/collections/sets.ts +3 -0
  249. package/src/utils/mergeEntityMutationTriggerConfigurations.ts +5 -5
  250. package/build/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.d.ts +0 -1
  251. package/build/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.js +0 -273
  252. package/build/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.js.map +0 -1
  253. package/build/__tests__/AuthorizationResultBasedEntityLoader-constructor-test.d.ts +0 -26
  254. package/build/__tests__/AuthorizationResultBasedEntityLoader-constructor-test.js +0 -110
  255. package/build/__tests__/AuthorizationResultBasedEntityLoader-constructor-test.js.map +0 -1
  256. package/build/__tests__/AuthorizationResultBasedEntityLoader-test.d.ts +0 -1
  257. package/build/__tests__/AuthorizationResultBasedEntityLoader-test.js +0 -401
  258. package/build/__tests__/AuthorizationResultBasedEntityLoader-test.js.map +0 -1
  259. package/build/__tests__/ComposedCacheAdapter-test.d.ts +0 -1
  260. package/build/__tests__/ComposedCacheAdapter-test.js +0 -229
  261. package/build/__tests__/ComposedCacheAdapter-test.js.map +0 -1
  262. package/build/__tests__/ComposedSecondaryEntityCache-test.d.ts +0 -1
  263. package/build/__tests__/ComposedSecondaryEntityCache-test.js +0 -66
  264. package/build/__tests__/ComposedSecondaryEntityCache-test.js.map +0 -1
  265. package/build/__tests__/EnforcingEntityAssociationLoader-test.d.ts +0 -1
  266. package/build/__tests__/EnforcingEntityAssociationLoader-test.js +0 -115
  267. package/build/__tests__/EnforcingEntityAssociationLoader-test.js.map +0 -1
  268. package/build/__tests__/EnforcingEntityLoader-test.d.ts +0 -1
  269. package/build/__tests__/EnforcingEntityLoader-test.js +0 -253
  270. package/build/__tests__/EnforcingEntityLoader-test.js.map +0 -1
  271. package/build/__tests__/Entity-test.d.ts +0 -1
  272. package/build/__tests__/Entity-test.js +0 -54
  273. package/build/__tests__/Entity-test.js.map +0 -1
  274. package/build/__tests__/EntityAssociationLoader-test.d.ts +0 -1
  275. package/build/__tests__/EntityAssociationLoader-test.js +0 -30
  276. package/build/__tests__/EntityAssociationLoader-test.js.map +0 -1
  277. package/build/__tests__/EntityCommonUseCases-test.d.ts +0 -1
  278. package/build/__tests__/EntityCommonUseCases-test.js +0 -154
  279. package/build/__tests__/EntityCommonUseCases-test.js.map +0 -1
  280. package/build/__tests__/EntityCompanion-test.d.ts +0 -1
  281. package/build/__tests__/EntityCompanion-test.js +0 -77
  282. package/build/__tests__/EntityCompanion-test.js.map +0 -1
  283. package/build/__tests__/EntityCompanionProvider-test.d.ts +0 -1
  284. package/build/__tests__/EntityCompanionProvider-test.js +0 -54
  285. package/build/__tests__/EntityCompanionProvider-test.js.map +0 -1
  286. package/build/__tests__/EntityConfiguration-test.d.ts +0 -1
  287. package/build/__tests__/EntityConfiguration-test.js +0 -103
  288. package/build/__tests__/EntityConfiguration-test.js.map +0 -1
  289. package/build/__tests__/EntityDatabaseAdapter-test.d.ts +0 -1
  290. package/build/__tests__/EntityDatabaseAdapter-test.js +0 -146
  291. package/build/__tests__/EntityDatabaseAdapter-test.js.map +0 -1
  292. package/build/__tests__/EntityEdges-test.d.ts +0 -1
  293. package/build/__tests__/EntityEdges-test.js +0 -755
  294. package/build/__tests__/EntityEdges-test.js.map +0 -1
  295. package/build/__tests__/EntityFields-test.d.ts +0 -1
  296. package/build/__tests__/EntityFields-test.js +0 -63
  297. package/build/__tests__/EntityFields-test.js.map +0 -1
  298. package/build/__tests__/EntityLoader-test.d.ts +0 -1
  299. package/build/__tests__/EntityLoader-test.js +0 -36
  300. package/build/__tests__/EntityLoader-test.js.map +0 -1
  301. package/build/__tests__/EntityMutator-MutationCacheConsistency-test.d.ts +0 -1
  302. package/build/__tests__/EntityMutator-MutationCacheConsistency-test.js +0 -77
  303. package/build/__tests__/EntityMutator-MutationCacheConsistency-test.js.map +0 -1
  304. package/build/__tests__/EntityMutator-test.d.ts +0 -1
  305. package/build/__tests__/EntityMutator-test.js +0 -741
  306. package/build/__tests__/EntityMutator-test.js.map +0 -1
  307. package/build/__tests__/EntityPrivacyPolicy-test.d.ts +0 -1
  308. package/build/__tests__/EntityPrivacyPolicy-test.js +0 -463
  309. package/build/__tests__/EntityPrivacyPolicy-test.js.map +0 -1
  310. package/build/__tests__/EntityQueryContext-test.d.ts +0 -1
  311. package/build/__tests__/EntityQueryContext-test.js +0 -116
  312. package/build/__tests__/EntityQueryContext-test.js.map +0 -1
  313. package/build/__tests__/EntitySecondaryCacheLoader-test.d.ts +0 -1
  314. package/build/__tests__/EntitySecondaryCacheLoader-test.js +0 -60
  315. package/build/__tests__/EntitySecondaryCacheLoader-test.js.map +0 -1
  316. package/build/__tests__/EntitySelfReferentialEdges-test.d.ts +0 -1
  317. package/build/__tests__/EntitySelfReferentialEdges-test.js +0 -247
  318. package/build/__tests__/EntitySelfReferentialEdges-test.js.map +0 -1
  319. package/build/__tests__/GenericEntityCacheAdapter-test.d.ts +0 -1
  320. package/build/__tests__/GenericEntityCacheAdapter-test.js +0 -80
  321. package/build/__tests__/GenericEntityCacheAdapter-test.js.map +0 -1
  322. package/build/__tests__/ReadonlyEntity-test.d.ts +0 -1
  323. package/build/__tests__/ReadonlyEntity-test.js +0 -178
  324. package/build/__tests__/ReadonlyEntity-test.js.map +0 -1
  325. package/build/__tests__/ViewerContext-test.d.ts +0 -1
  326. package/build/__tests__/ViewerContext-test.js +0 -30
  327. package/build/__tests__/ViewerContext-test.js.map +0 -1
  328. package/build/__tests__/ViewerScopedEntityCompanion-test.d.ts +0 -1
  329. package/build/__tests__/ViewerScopedEntityCompanion-test.js +0 -20
  330. package/build/__tests__/ViewerScopedEntityCompanion-test.js.map +0 -1
  331. package/build/__tests__/ViewerScopedEntityCompanionProvider-test.d.ts +0 -1
  332. package/build/__tests__/ViewerScopedEntityCompanionProvider-test.js +0 -20
  333. package/build/__tests__/ViewerScopedEntityCompanionProvider-test.js.map +0 -1
  334. package/build/__tests__/ViewerScopedEntityLoaderFactory-test.d.ts +0 -1
  335. package/build/__tests__/ViewerScopedEntityLoaderFactory-test.js +0 -23
  336. package/build/__tests__/ViewerScopedEntityLoaderFactory-test.js.map +0 -1
  337. package/build/__tests__/ViewerScopedEntityMutatorFactory-test.d.ts +0 -1
  338. package/build/__tests__/ViewerScopedEntityMutatorFactory-test.js +0 -22
  339. package/build/__tests__/ViewerScopedEntityMutatorFactory-test.js.map +0 -1
  340. package/build/__tests__/cases/TwoEntitySameTableDisjointRows-test.d.ts +0 -1
  341. package/build/__tests__/cases/TwoEntitySameTableDisjointRows-test.js +0 -129
  342. package/build/__tests__/cases/TwoEntitySameTableDisjointRows-test.js.map +0 -1
  343. package/build/__tests__/cases/TwoEntitySameTableOverlappingRows-test.d.ts +0 -1
  344. package/build/__tests__/cases/TwoEntitySameTableOverlappingRows-test.js +0 -136
  345. package/build/__tests__/cases/TwoEntitySameTableOverlappingRows-test.js.map +0 -1
  346. package/build/__tests__/entityUtils-test.d.ts +0 -1
  347. package/build/__tests__/entityUtils-test.js +0 -87
  348. package/build/__tests__/entityUtils-test.js.map +0 -1
  349. package/build/internal/__tests__/EntityDataManager-test.d.ts +0 -1
  350. package/build/internal/__tests__/EntityDataManager-test.js +0 -373
  351. package/build/internal/__tests__/EntityDataManager-test.js.map +0 -1
  352. package/build/internal/__tests__/EntityFieldTransformationUtils-test.d.ts +0 -1
  353. package/build/internal/__tests__/EntityFieldTransformationUtils-test.js +0 -136
  354. package/build/internal/__tests__/EntityFieldTransformationUtils-test.js.map +0 -1
  355. package/build/internal/__tests__/ReadThroughEntityCache-test.d.ts +0 -1
  356. package/build/internal/__tests__/ReadThroughEntityCache-test.js +0 -206
  357. package/build/internal/__tests__/ReadThroughEntityCache-test.js.map +0 -1
  358. package/build/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.d.ts +0 -1
  359. package/build/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.js +0 -21
  360. package/build/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.js.map +0 -1
  361. package/build/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.d.ts +0 -1
  362. package/build/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.js +0 -21
  363. package/build/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.js.map +0 -1
  364. package/build/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.d.ts +0 -1
  365. package/build/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.js +0 -21
  366. package/build/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.js.map +0 -1
  367. package/build/testfixtures/DateIDTestEntity.d.ts +0 -19
  368. package/build/testfixtures/DateIDTestEntity.js +0 -48
  369. package/build/testfixtures/DateIDTestEntity.js.map +0 -1
  370. package/build/testfixtures/SimpleTestEntity.d.ts +0 -20
  371. package/build/testfixtures/SimpleTestEntity.js +0 -48
  372. package/build/testfixtures/SimpleTestEntity.js.map +0 -1
  373. package/build/testfixtures/TestEntity.d.ts +0 -30
  374. package/build/testfixtures/TestEntity.js +0 -93
  375. package/build/testfixtures/TestEntity.js.map +0 -1
  376. package/build/testfixtures/TestEntity2.d.ts +0 -20
  377. package/build/testfixtures/TestEntity2.js +0 -51
  378. package/build/testfixtures/TestEntity2.js.map +0 -1
  379. package/build/testfixtures/TestEntityNumberKey.d.ts +0 -19
  380. package/build/testfixtures/TestEntityNumberKey.js +0 -48
  381. package/build/testfixtures/TestEntityNumberKey.js.map +0 -1
  382. package/build/testfixtures/TestEntityWithMutationTriggers.d.ts +0 -36
  383. package/build/testfixtures/TestEntityWithMutationTriggers.js +0 -82
  384. package/build/testfixtures/TestEntityWithMutationTriggers.js.map +0 -1
  385. package/build/testfixtures/TestViewerContext.d.ts +0 -3
  386. package/build/testfixtures/TestViewerContext.js +0 -10
  387. package/build/testfixtures/TestViewerContext.js.map +0 -1
  388. package/build/utils/__tests__/EntityPrivacyUtils-test.d.ts +0 -1
  389. package/build/utils/__tests__/EntityPrivacyUtils-test.js +0 -520
  390. package/build/utils/__tests__/EntityPrivacyUtils-test.js.map +0 -1
  391. package/build/utils/__tests__/canViewerDeleteAsync-edgeDeletionPermissionInferenceBehavior-test.d.ts +0 -1
  392. package/build/utils/__tests__/canViewerDeleteAsync-edgeDeletionPermissionInferenceBehavior-test.js +0 -181
  393. package/build/utils/__tests__/canViewerDeleteAsync-edgeDeletionPermissionInferenceBehavior-test.js.map +0 -1
  394. package/build/utils/__tests__/mergeEntityMutationTriggerConfigurations-test.d.ts +0 -1
  395. package/build/utils/__tests__/mergeEntityMutationTriggerConfigurations-test.js +0 -26
  396. package/build/utils/__tests__/mergeEntityMutationTriggerConfigurations-test.js.map +0 -1
  397. package/build/utils/collections/__tests__/maps-test.d.ts +0 -1
  398. package/build/utils/collections/__tests__/maps-test.js +0 -120
  399. package/build/utils/collections/__tests__/maps-test.js.map +0 -1
  400. package/build/utils/testing/PrivacyPolicyRuleTestUtils.d.ts +0 -28
  401. package/build/utils/testing/PrivacyPolicyRuleTestUtils.js +0 -52
  402. package/build/utils/testing/PrivacyPolicyRuleTestUtils.js.map +0 -1
  403. package/build/utils/testing/StubCacheAdapter.d.ts +0 -27
  404. package/build/utils/testing/StubCacheAdapter.js +0 -86
  405. package/build/utils/testing/StubCacheAdapter.js.map +0 -1
  406. package/build/utils/testing/StubDatabaseAdapter.d.ts +0 -25
  407. package/build/utils/testing/StubDatabaseAdapter.js +0 -191
  408. package/build/utils/testing/StubDatabaseAdapter.js.map +0 -1
  409. package/build/utils/testing/StubDatabaseAdapterProvider.d.ts +0 -7
  410. package/build/utils/testing/StubDatabaseAdapterProvider.js +0 -14
  411. package/build/utils/testing/StubDatabaseAdapterProvider.js.map +0 -1
  412. package/build/utils/testing/StubQueryContextProvider.d.ts +0 -7
  413. package/build/utils/testing/StubQueryContextProvider.js +0 -19
  414. package/build/utils/testing/StubQueryContextProvider.js.map +0 -1
  415. package/build/utils/testing/__tests__/PrivacyPolicyRuleTestUtils-test.d.ts +0 -1
  416. package/build/utils/testing/__tests__/PrivacyPolicyRuleTestUtils-test.js +0 -42
  417. package/build/utils/testing/__tests__/PrivacyPolicyRuleTestUtils-test.js.map +0 -1
  418. package/build/utils/testing/__tests__/StubDatabaseAdapter-test.d.ts +0 -1
  419. package/build/utils/testing/__tests__/StubDatabaseAdapter-test.js +0 -402
  420. package/build/utils/testing/__tests__/StubDatabaseAdapter-test.js.map +0 -1
  421. package/build/utils/testing/createUnitTestEntityCompanionProvider.d.ts +0 -7
  422. package/build/utils/testing/createUnitTestEntityCompanionProvider.js +0 -36
  423. package/build/utils/testing/createUnitTestEntityCompanionProvider.js.map +0 -1
  424. package/build/utils/testing/describeFieldTestCase.d.ts +0 -2
  425. package/build/utils/testing/describeFieldTestCase.js +0 -18
  426. package/build/utils/testing/describeFieldTestCase.js.map +0 -1
  427. package/src/testfixtures/DateIDTestEntity.ts +0 -59
  428. package/src/testfixtures/TestEntityNumberKey.ts +0 -59
  429. package/src/utils/testing/StubCacheAdapter.ts +0 -122
  430. package/src/utils/testing/__tests__/PrivacyPolicyRuleTestUtils-test.ts +0 -42
  431. package/src/utils/testing/__tests__/StubDatabaseAdapter-test.ts +0 -548
  432. /package/src/utils/{testing → __testfixtures__}/StubQueryContextProvider.ts +0 -0
  433. /package/src/utils/{testing → __testfixtures__}/createUnitTestEntityCompanionProvider.ts +0 -0
@@ -13,10 +13,11 @@ import EntityPrivacyPolicy, {
13
13
  } from '../EntityPrivacyPolicy';
14
14
  import { EntityTransactionalQueryContext, EntityQueryContext } from '../EntityQueryContext';
15
15
  import { CacheStatus } from '../internal/ReadThroughEntityCache';
16
+ import { SingleFieldHolder, SingleFieldValueHolder } from '../internal/SingleFieldHolder';
16
17
  import PrivacyPolicyRule, { RuleEvaluationResult } from '../rules/PrivacyPolicyRule';
17
- import TestViewerContext from '../testfixtures/TestViewerContext';
18
- import { InMemoryFullCacheStubCacheAdapter } from '../utils/testing/StubCacheAdapter';
19
- import { createUnitTestEntityCompanionProvider } from '../utils/testing/createUnitTestEntityCompanionProvider';
18
+ import { InMemoryFullCacheStubCacheAdapter } from '../utils/__testfixtures__/StubCacheAdapter';
19
+ import TestViewerContext from '../utils/__testfixtures__/TestViewerContext';
20
+ import { createUnitTestEntityCompanionProvider } from '../utils/__testfixtures__/createUnitTestEntityCompanionProvider';
20
21
 
21
22
  interface OtherFields {
22
23
  id: string;
@@ -73,7 +74,7 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
73
74
 
74
75
  class AlwaysAllowPrivacyPolicyRuleThatRecords extends PrivacyPolicyRule<
75
76
  any,
76
- string,
77
+ 'id',
77
78
  TestViewerContext,
78
79
  any,
79
80
  any
@@ -87,7 +88,7 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
87
88
  _queryContext: EntityQueryContext,
88
89
  evaluationContext: EntityPrivacyPolicyEvaluationContext<
89
90
  any,
90
- string,
91
+ 'id',
91
92
  TestViewerContext,
92
93
  any,
93
94
  any
@@ -105,7 +106,7 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
105
106
 
106
107
  class TestEntityPrivacyPolicy extends EntityPrivacyPolicy<
107
108
  any,
108
- string,
109
+ 'id',
109
110
  TestViewerContext,
110
111
  any,
111
112
  any
@@ -126,7 +127,7 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
126
127
 
127
128
  class ParentCheckInfoDeletionTrigger extends EntityMutationTrigger<
128
129
  ParentFields,
129
- string,
130
+ 'id',
130
131
  TestViewerContext,
131
132
  ParentEntity
132
133
  > {
@@ -134,12 +135,7 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
134
135
  _viewerContext: TestViewerContext,
135
136
  _queryContext: EntityTransactionalQueryContext,
136
137
  _entity: ParentEntity,
137
- mutationInfo: EntityTriggerMutationInfo<
138
- ParentFields,
139
- string,
140
- TestViewerContext,
141
- ParentEntity
142
- >,
138
+ mutationInfo: EntityTriggerMutationInfo<ParentFields, 'id', TestViewerContext, ParentEntity>,
143
139
  ): Promise<void> {
144
140
  invariant(mutationInfo.type === EntityMutationType.DELETE, 'invalid EntityMutationType');
145
141
  if (mutationInfo.cascadingDeleteCause !== null) {
@@ -152,7 +148,7 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
152
148
 
153
149
  class ParentCheckInfoUpdateTrigger extends EntityMutationTrigger<
154
150
  ParentFields,
155
- string,
151
+ 'id',
156
152
  TestViewerContext,
157
153
  ParentEntity
158
154
  > {
@@ -160,12 +156,7 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
160
156
  _viewerContext: TestViewerContext,
161
157
  _queryContext: EntityTransactionalQueryContext,
162
158
  _entity: ParentEntity,
163
- mutationInfo: EntityTriggerMutationInfo<
164
- ParentFields,
165
- string,
166
- TestViewerContext,
167
- ParentEntity
168
- >,
159
+ mutationInfo: EntityTriggerMutationInfo<ParentFields, 'id', TestViewerContext, ParentEntity>,
169
160
  ): Promise<void> {
170
161
  invariant(mutationInfo.type === EntityMutationType.UPDATE, 'invalid EntityMutationType');
171
162
  if (mutationInfo.cascadingDeleteCause !== null) {
@@ -178,7 +169,7 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
178
169
 
179
170
  class ChildCheckInfoDeletionTrigger extends EntityMutationTrigger<
180
171
  ChildFields,
181
- string,
172
+ 'id',
182
173
  TestViewerContext,
183
174
  ChildEntity
184
175
  > {
@@ -186,7 +177,7 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
186
177
  _viewerContext: TestViewerContext,
187
178
  _queryContext: EntityTransactionalQueryContext,
188
179
  _entity: ChildEntity,
189
- mutationInfo: EntityTriggerMutationInfo<ChildFields, string, TestViewerContext, ChildEntity>,
180
+ mutationInfo: EntityTriggerMutationInfo<ChildFields, 'id', TestViewerContext, ChildEntity>,
190
181
  ): Promise<void> {
191
182
  invariant(mutationInfo.type === EntityMutationType.DELETE, 'invalid EntityMutationType');
192
183
  if (mutationInfo.cascadingDeleteCause === null) {
@@ -210,7 +201,7 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
210
201
 
211
202
  class ChildCheckInfoUpdateTrigger extends EntityMutationTrigger<
212
203
  ChildFields,
213
- string,
204
+ 'id',
214
205
  TestViewerContext,
215
206
  ChildEntity
216
207
  > {
@@ -218,7 +209,7 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
218
209
  _viewerContext: TestViewerContext,
219
210
  _queryContext: EntityTransactionalQueryContext,
220
211
  _entity: ChildEntity,
221
- mutationInfo: EntityTriggerMutationInfo<ChildFields, string, TestViewerContext, ChildEntity>,
212
+ mutationInfo: EntityTriggerMutationInfo<ChildFields, 'id', TestViewerContext, ChildEntity>,
222
213
  ): Promise<void> {
223
214
  invariant(mutationInfo.type === EntityMutationType.UPDATE, 'invalid EntityMutationType');
224
215
  if (mutationInfo.cascadingDeleteCause === null) {
@@ -242,7 +233,7 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
242
233
 
243
234
  class GrandChildCheckInfoDeletionTrigger extends EntityMutationTrigger<
244
235
  GrandChildFields,
245
- string,
236
+ 'id',
246
237
  TestViewerContext,
247
238
  GrandChildEntity
248
239
  > {
@@ -252,7 +243,7 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
252
243
  _entity: GrandChildEntity,
253
244
  mutationInfo: EntityTriggerMutationInfo<
254
245
  GrandChildFields,
255
- string,
246
+ 'id',
256
247
  TestViewerContext,
257
248
  GrandChildEntity
258
249
  >,
@@ -293,7 +284,7 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
293
284
 
294
285
  class GrandChildCheckInfoUpdateTrigger extends EntityMutationTrigger<
295
286
  GrandChildFields,
296
- string,
287
+ 'id',
297
288
  TestViewerContext,
298
289
  GrandChildEntity
299
290
  > {
@@ -303,7 +294,7 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
303
294
  _entity: GrandChildEntity,
304
295
  mutationInfo: EntityTriggerMutationInfo<
305
296
  GrandChildFields,
306
- string,
297
+ 'id',
307
298
  TestViewerContext,
308
299
  GrandChildEntity
309
300
  >,
@@ -342,10 +333,10 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
342
333
  }
343
334
  }
344
335
 
345
- class OtherEntity extends Entity<OtherFields, string, TestViewerContext> {
336
+ class OtherEntity extends Entity<OtherFields, 'id', TestViewerContext> {
346
337
  static defineCompanionDefinition(): EntityCompanionDefinition<
347
338
  OtherFields,
348
- string,
339
+ 'id',
349
340
  TestViewerContext,
350
341
  OtherEntity,
351
342
  TestEntityPrivacyPolicy
@@ -358,10 +349,10 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
358
349
  }
359
350
  }
360
351
 
361
- class ParentEntity extends Entity<ParentFields, string, TestViewerContext> {
352
+ class ParentEntity extends Entity<ParentFields, 'id', TestViewerContext> {
362
353
  static defineCompanionDefinition(): EntityCompanionDefinition<
363
354
  ParentFields,
364
- string,
355
+ 'id',
365
356
  TestViewerContext,
366
357
  ParentEntity,
367
358
  TestEntityPrivacyPolicy
@@ -381,10 +372,10 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
381
372
  }
382
373
  }
383
374
 
384
- class ChildEntity extends Entity<ChildFields, string, TestViewerContext> {
375
+ class ChildEntity extends Entity<ChildFields, 'id', TestViewerContext> {
385
376
  static defineCompanionDefinition(): EntityCompanionDefinition<
386
377
  ChildFields,
387
- string,
378
+ 'id',
388
379
  TestViewerContext,
389
380
  ChildEntity,
390
381
  TestEntityPrivacyPolicy
@@ -404,10 +395,10 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
404
395
  }
405
396
  }
406
397
 
407
- class GrandChildEntity extends Entity<GrandChildFields, string, TestViewerContext> {
398
+ class GrandChildEntity extends Entity<GrandChildFields, 'id', TestViewerContext> {
408
399
  static defineCompanionDefinition(): EntityCompanionDefinition<
409
400
  GrandChildFields,
410
- string,
401
+ 'id',
411
402
  TestViewerContext,
412
403
  GrandChildEntity,
413
404
  TestEntityPrivacyPolicy
@@ -427,7 +418,7 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
427
418
  }
428
419
  }
429
420
 
430
- const otherEntityConfiguration = new EntityConfiguration<OtherFields>({
421
+ const otherEntityConfiguration = new EntityConfiguration<OtherFields, 'id'>({
431
422
  idField: 'id',
432
423
  tableName: 'others',
433
424
  schema: {
@@ -440,7 +431,7 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
440
431
  cacheAdapterFlavor: 'redis',
441
432
  });
442
433
 
443
- const parentEntityConfiguration = new EntityConfiguration<ParentFields>({
434
+ const parentEntityConfiguration = new EntityConfiguration<ParentFields, 'id'>({
444
435
  idField: 'id',
445
436
  tableName: 'parents',
446
437
  inboundEdges: [ChildEntity],
@@ -454,7 +445,7 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
454
445
  cacheAdapterFlavor: 'redis',
455
446
  });
456
447
 
457
- const childEntityConfiguration = new EntityConfiguration<ChildFields>({
448
+ const childEntityConfiguration = new EntityConfiguration<ChildFields, 'id'>({
458
449
  idField: 'id',
459
450
  tableName: 'children',
460
451
  inboundEdges: [GrandChildEntity],
@@ -484,7 +475,7 @@ const makeEntityClasses = (edgeDeletionBehavior: EntityEdgeDeletionBehavior) =>
484
475
  cacheAdapterFlavor: 'redis',
485
476
  });
486
477
 
487
- const grandChildEntityConfiguration = new EntityConfiguration<GrandChildFields>({
478
+ const grandChildEntityConfiguration = new EntityConfiguration<GrandChildFields, 'id'>({
488
479
  idField: 'id',
489
480
  tableName: 'grandchildren',
490
481
  schema: {
@@ -527,42 +518,36 @@ describe('EntityMutator.processEntityDeletionForInboundEdgesAsync', () => {
527
518
  const companionProvider = createUnitTestEntityCompanionProvider();
528
519
  const viewerContext = new TestViewerContext(companionProvider);
529
520
 
530
- const parent = await ParentEntity.creator(viewerContext).enforcing().createAsync();
521
+ const parent = await ParentEntity.creator(viewerContext).createAsync();
531
522
  const child = await ChildEntity.creator(viewerContext)
532
- .enforcing()
533
523
  .setField('parent_id', parent.getID())
534
524
  .createAsync();
535
525
  const grandchild = await GrandChildEntity.creator(viewerContext)
536
- .enforcing()
537
526
  .setField('parent_id', child.getID())
538
527
  .createAsync();
539
528
 
540
529
  await expect(
541
- ParentEntity.loader(viewerContext).enforcing().loadByIDNullableAsync(parent.getID()),
530
+ ParentEntity.loader(viewerContext).loadByIDNullableAsync(parent.getID()),
542
531
  ).resolves.not.toBeNull();
543
532
  await expect(
544
- ChildEntity.loader(viewerContext).enforcing().loadByIDNullableAsync(child.getID()),
533
+ ChildEntity.loader(viewerContext).loadByIDNullableAsync(child.getID()),
545
534
  ).resolves.not.toBeNull();
546
535
  await expect(
547
- GrandChildEntity.loader(viewerContext)
548
- .enforcing()
549
- .loadByIDNullableAsync(grandchild.getID()),
536
+ GrandChildEntity.loader(viewerContext).loadByIDNullableAsync(grandchild.getID()),
550
537
  ).resolves.not.toBeNull();
551
538
 
552
539
  privacyPolicyEvaluationRecords.shouldRecord = true;
553
- await ParentEntity.deleter(parent).enforcing().deleteAsync();
540
+ await ParentEntity.deleter(parent).deleteAsync();
554
541
  privacyPolicyEvaluationRecords.shouldRecord = false;
555
542
 
556
543
  await expect(
557
- ParentEntity.loader(viewerContext).enforcing().loadByIDNullableAsync(parent.getID()),
544
+ ParentEntity.loader(viewerContext).loadByIDNullableAsync(parent.getID()),
558
545
  ).resolves.toBeNull();
559
546
  await expect(
560
- ChildEntity.loader(viewerContext).enforcing().loadByIDNullableAsync(child.getID()),
547
+ ChildEntity.loader(viewerContext).loadByIDNullableAsync(child.getID()),
561
548
  ).resolves.toBeNull();
562
549
  await expect(
563
- GrandChildEntity.loader(viewerContext)
564
- .enforcing()
565
- .loadByIDNullableAsync(grandchild.getID()),
550
+ GrandChildEntity.loader(viewerContext).loadByIDNullableAsync(grandchild.getID()),
566
551
  ).resolves.toBeNull();
567
552
 
568
553
  // two calls for each trigger, one beforeDelete, one afterDelete
@@ -651,44 +636,38 @@ describe('EntityMutator.processEntityDeletionForInboundEdgesAsync', () => {
651
636
  const companionProvider = createUnitTestEntityCompanionProvider();
652
637
  const viewerContext = new TestViewerContext(companionProvider);
653
638
 
654
- const parent = await ParentEntity.creator(viewerContext).enforcing().createAsync();
639
+ const parent = await ParentEntity.creator(viewerContext).createAsync();
655
640
  const child = await ChildEntity.creator(viewerContext)
656
- .enforcing()
657
641
  .setField('parent_id', parent.getID())
658
642
  .createAsync();
659
643
  const grandchild = await GrandChildEntity.creator(viewerContext)
660
- .enforcing()
661
644
  .setField('parent_id', child.getID())
662
645
  .createAsync();
663
646
 
664
647
  await expect(
665
- ParentEntity.loader(viewerContext).enforcing().loadByIDNullableAsync(parent.getID()),
648
+ ParentEntity.loader(viewerContext).loadByIDNullableAsync(parent.getID()),
666
649
  ).resolves.not.toBeNull();
667
650
  await expect(
668
- ChildEntity.loader(viewerContext).enforcing().loadByIDNullableAsync(child.getID()),
651
+ ChildEntity.loader(viewerContext).loadByIDNullableAsync(child.getID()),
669
652
  ).resolves.not.toBeNull();
670
653
  await expect(
671
- GrandChildEntity.loader(viewerContext)
672
- .enforcing()
673
- .loadByIDNullableAsync(grandchild.getID()),
654
+ GrandChildEntity.loader(viewerContext).loadByIDNullableAsync(grandchild.getID()),
674
655
  ).resolves.not.toBeNull();
675
656
 
676
657
  privacyPolicyEvaluationRecords.shouldRecord = true;
677
- await ParentEntity.deleter(parent).enforcing().deleteAsync();
658
+ await ParentEntity.deleter(parent).deleteAsync();
678
659
  privacyPolicyEvaluationRecords.shouldRecord = false;
679
660
 
680
661
  await expect(
681
- ParentEntity.loader(viewerContext).enforcing().loadByIDNullableAsync(parent.getID()),
662
+ ParentEntity.loader(viewerContext).loadByIDNullableAsync(parent.getID()),
682
663
  ).resolves.toBeNull();
683
664
 
684
- const loadedChild = await ChildEntity.loader(viewerContext)
685
- .enforcing()
686
- .loadByIDAsync(child.getID());
665
+ const loadedChild = await ChildEntity.loader(viewerContext).loadByIDAsync(child.getID());
687
666
  expect(loadedChild.getField('parent_id')).toBeNull();
688
667
 
689
- const loadedGrandchild = await GrandChildEntity.loader(viewerContext)
690
- .enforcing()
691
- .loadByIDAsync(grandchild.getID());
668
+ const loadedGrandchild = await GrandChildEntity.loader(viewerContext).loadByIDAsync(
669
+ grandchild.getID(),
670
+ );
692
671
  expect(loadedGrandchild.getField('parent_id')).toEqual(loadedChild.getID());
693
672
 
694
673
  // two calls for only parent trigger, one beforeDelete, one afterDelete
@@ -766,72 +745,81 @@ describe('EntityMutator.processEntityDeletionForInboundEdgesAsync', () => {
766
745
  const companionProvider = createUnitTestEntityCompanionProvider();
767
746
  const viewerContext = new TestViewerContext(companionProvider);
768
747
 
769
- const parent = await ParentEntity.creator(viewerContext).enforcing().createAsync();
748
+ const parent = await ParentEntity.creator(viewerContext).createAsync();
770
749
  const child = await ChildEntity.creator(viewerContext)
771
- .enforcing()
772
750
  .setField('parent_id', parent.getID())
773
751
  .createAsync();
774
752
  const grandchild = await GrandChildEntity.creator(viewerContext)
775
- .enforcing()
776
753
  .setField('parent_id', child.getID())
777
754
  .createAsync();
778
755
 
779
756
  await expect(
780
- ParentEntity.loader(viewerContext).enforcing().loadByIDNullableAsync(parent.getID()),
757
+ ParentEntity.loader(viewerContext).loadByIDNullableAsync(parent.getID()),
781
758
  ).resolves.not.toBeNull();
782
759
  await expect(
783
- ChildEntity.loader(viewerContext)
784
- .enforcing()
785
- .loadByFieldEqualingAsync('parent_id', parent.getID()),
760
+ ChildEntity.loader(viewerContext).loadByFieldEqualingAsync('parent_id', parent.getID()),
786
761
  ).resolves.not.toBeNull();
787
762
  await expect(
788
- GrandChildEntity.loader(viewerContext)
789
- .enforcing()
790
- .loadByFieldEqualingAsync('parent_id', child.getID()),
763
+ GrandChildEntity.loader(viewerContext).loadByFieldEqualingAsync('parent_id', child.getID()),
791
764
  ).resolves.not.toBeNull();
792
765
 
793
766
  const childCacheAdapter = viewerContext.getViewerScopedEntityCompanionForClass(ChildEntity)[
794
767
  'entityCompanion'
795
- ]['tableDataCoordinator']['cacheAdapter'] as InMemoryFullCacheStubCacheAdapter<ChildFields>;
796
- const childCachedBefore = await childCacheAdapter.loadManyAsync('parent_id', [
797
- parent.getID(),
798
- ]);
799
- expect(childCachedBefore.get(parent.getID())?.status).toEqual(CacheStatus.HIT);
768
+ ]['tableDataCoordinator']['cacheAdapter'] as InMemoryFullCacheStubCacheAdapter<
769
+ ChildFields,
770
+ 'id'
771
+ >;
772
+ const childCachedBefore = await childCacheAdapter.loadManyAsync(
773
+ new SingleFieldHolder('parent_id'),
774
+ [new SingleFieldValueHolder(parent.getID())],
775
+ );
776
+ expect(childCachedBefore.get(new SingleFieldValueHolder(parent.getID()))?.status).toEqual(
777
+ CacheStatus.HIT,
778
+ );
800
779
 
801
780
  const grandChildCacheAdapter = viewerContext.getViewerScopedEntityCompanionForClass(
802
781
  GrandChildEntity,
803
782
  )['entityCompanion']['tableDataCoordinator'][
804
783
  'cacheAdapter'
805
- ] as InMemoryFullCacheStubCacheAdapter<ChildFields>;
806
- const grandChildCachedBefore = await grandChildCacheAdapter.loadManyAsync('parent_id', [
807
- child.getID(),
808
- ]);
809
- expect(grandChildCachedBefore.get(child.getID())?.status).toEqual(CacheStatus.HIT);
784
+ ] as InMemoryFullCacheStubCacheAdapter<ChildFields, 'id'>;
785
+ const grandChildCachedBefore = await grandChildCacheAdapter.loadManyAsync(
786
+ new SingleFieldHolder('parent_id'),
787
+ [new SingleFieldValueHolder(child.getID())],
788
+ );
789
+ expect(grandChildCachedBefore.get(new SingleFieldValueHolder(child.getID()))?.status).toEqual(
790
+ CacheStatus.HIT,
791
+ );
810
792
 
811
793
  privacyPolicyEvaluationRecords.shouldRecord = true;
812
- await ParentEntity.deleter(parent).enforcing().deleteAsync();
794
+ await ParentEntity.deleter(parent).deleteAsync();
813
795
  privacyPolicyEvaluationRecords.shouldRecord = false;
814
796
 
815
- const childCachedAfter = await childCacheAdapter.loadManyAsync('parent_id', [parent.getID()]);
816
- expect(childCachedAfter.get(parent.getID())?.status).toEqual(CacheStatus.MISS);
817
-
818
- const grandChildCachedAfter = await grandChildCacheAdapter.loadManyAsync('parent_id', [
819
- child.getID(),
820
- ]);
821
- expect(grandChildCachedAfter.get(child.getID())?.status).toEqual(CacheStatus.HIT);
797
+ const childCachedAfter = await childCacheAdapter.loadManyAsync(
798
+ new SingleFieldHolder('parent_id'),
799
+ [new SingleFieldValueHolder(parent.getID())],
800
+ );
801
+ expect(childCachedAfter.get(new SingleFieldValueHolder(parent.getID()))?.status).toEqual(
802
+ CacheStatus.MISS,
803
+ );
804
+
805
+ const grandChildCachedAfter = await grandChildCacheAdapter.loadManyAsync(
806
+ new SingleFieldHolder('parent_id'),
807
+ [new SingleFieldValueHolder(child.getID())],
808
+ );
809
+ expect(grandChildCachedAfter.get(new SingleFieldValueHolder(child.getID()))?.status).toEqual(
810
+ CacheStatus.HIT,
811
+ );
822
812
 
823
813
  await expect(
824
- ParentEntity.loader(viewerContext).enforcing().loadByIDNullableAsync(parent.getID()),
814
+ ParentEntity.loader(viewerContext).loadByIDNullableAsync(parent.getID()),
825
815
  ).resolves.toBeNull();
826
816
 
827
- const loadedChild = await ChildEntity.loader(viewerContext)
828
- .enforcing()
829
- .loadByIDAsync(child.getID());
817
+ const loadedChild = await ChildEntity.loader(viewerContext).loadByIDAsync(child.getID());
830
818
  expect(loadedChild).not.toBeNull();
831
819
 
832
- const loadedGrandchild = await GrandChildEntity.loader(viewerContext)
833
- .enforcing()
834
- .loadByIDAsync(grandchild.getID());
820
+ const loadedGrandchild = await GrandChildEntity.loader(viewerContext).loadByIDAsync(
821
+ grandchild.getID(),
822
+ );
835
823
  expect(loadedGrandchild.getField('parent_id')).toEqual(loadedChild.getID());
836
824
 
837
825
  // two calls for only parent trigger, one beforeDelete, one afterDelete
@@ -907,70 +895,79 @@ describe('EntityMutator.processEntityDeletionForInboundEdgesAsync', () => {
907
895
  const companionProvider = createUnitTestEntityCompanionProvider();
908
896
  const viewerContext = new TestViewerContext(companionProvider);
909
897
 
910
- const parent = await ParentEntity.creator(viewerContext).enforcing().createAsync();
898
+ const parent = await ParentEntity.creator(viewerContext).createAsync();
911
899
  const child = await ChildEntity.creator(viewerContext)
912
- .enforcing()
913
900
  .setField('parent_id', parent.getID())
914
901
  .createAsync();
915
902
  const grandchild = await GrandChildEntity.creator(viewerContext)
916
- .enforcing()
917
903
  .setField('parent_id', child.getID())
918
904
  .createAsync();
919
905
 
920
906
  await expect(
921
- ParentEntity.loader(viewerContext).enforcing().loadByIDNullableAsync(parent.getID()),
907
+ ParentEntity.loader(viewerContext).loadByIDNullableAsync(parent.getID()),
922
908
  ).resolves.not.toBeNull();
923
909
  await expect(
924
- ChildEntity.loader(viewerContext)
925
- .enforcing()
926
- .loadByFieldEqualingAsync('parent_id', parent.getID()),
910
+ ChildEntity.loader(viewerContext).loadByFieldEqualingAsync('parent_id', parent.getID()),
927
911
  ).resolves.not.toBeNull();
928
912
  await expect(
929
- GrandChildEntity.loader(viewerContext)
930
- .enforcing()
931
- .loadByFieldEqualingAsync('parent_id', child.getID()),
913
+ GrandChildEntity.loader(viewerContext).loadByFieldEqualingAsync('parent_id', child.getID()),
932
914
  ).resolves.not.toBeNull();
933
915
 
934
916
  const childCacheAdapter = viewerContext.getViewerScopedEntityCompanionForClass(ChildEntity)[
935
917
  'entityCompanion'
936
- ]['tableDataCoordinator']['cacheAdapter'] as InMemoryFullCacheStubCacheAdapter<ChildFields>;
937
- const childCachedBefore = await childCacheAdapter.loadManyAsync('parent_id', [
938
- parent.getID(),
939
- ]);
940
- expect(childCachedBefore.get(parent.getID())?.status).toEqual(CacheStatus.HIT);
918
+ ]['tableDataCoordinator']['cacheAdapter'] as InMemoryFullCacheStubCacheAdapter<
919
+ ChildFields,
920
+ 'id'
921
+ >;
922
+ const childCachedBefore = await childCacheAdapter.loadManyAsync(
923
+ new SingleFieldHolder('parent_id'),
924
+ [new SingleFieldValueHolder(parent.getID())],
925
+ );
926
+ expect(childCachedBefore.get(new SingleFieldValueHolder(parent.getID()))?.status).toEqual(
927
+ CacheStatus.HIT,
928
+ );
941
929
 
942
930
  const grandChildCacheAdapter = viewerContext.getViewerScopedEntityCompanionForClass(
943
931
  GrandChildEntity,
944
932
  )['entityCompanion']['tableDataCoordinator'][
945
933
  'cacheAdapter'
946
- ] as InMemoryFullCacheStubCacheAdapter<ChildFields>;
947
- const grandChildCachedBefore = await grandChildCacheAdapter.loadManyAsync('parent_id', [
948
- child.getID(),
949
- ]);
950
- expect(grandChildCachedBefore.get(child.getID())?.status).toEqual(CacheStatus.HIT);
934
+ ] as InMemoryFullCacheStubCacheAdapter<ChildFields, 'id'>;
935
+ const grandChildCachedBefore = await grandChildCacheAdapter.loadManyAsync(
936
+ new SingleFieldHolder('parent_id'),
937
+ [new SingleFieldValueHolder(child.getID())],
938
+ );
939
+ expect(grandChildCachedBefore.get(new SingleFieldValueHolder(child.getID()))?.status).toEqual(
940
+ CacheStatus.HIT,
941
+ );
951
942
 
952
943
  privacyPolicyEvaluationRecords.shouldRecord = true;
953
- await ParentEntity.deleter(parent).enforcing().deleteAsync();
944
+ await ParentEntity.deleter(parent).deleteAsync();
954
945
  privacyPolicyEvaluationRecords.shouldRecord = false;
955
946
 
956
- const childCachedAfter = await childCacheAdapter.loadManyAsync('parent_id', [parent.getID()]);
957
- expect(childCachedAfter.get(parent.getID())?.status).toEqual(CacheStatus.MISS);
958
-
959
- const grandChildCachedAfter = await grandChildCacheAdapter.loadManyAsync('parent_id', [
960
- child.getID(),
961
- ]);
962
- expect(grandChildCachedAfter.get(child.getID())?.status).toEqual(CacheStatus.MISS);
947
+ const childCachedAfter = await childCacheAdapter.loadManyAsync(
948
+ new SingleFieldHolder('parent_id'),
949
+ [new SingleFieldValueHolder(parent.getID())],
950
+ );
951
+ expect(childCachedAfter.get(new SingleFieldValueHolder(parent.getID()))?.status).toEqual(
952
+ CacheStatus.MISS,
953
+ );
954
+
955
+ const grandChildCachedAfter = await grandChildCacheAdapter.loadManyAsync(
956
+ new SingleFieldHolder('parent_id'),
957
+ [new SingleFieldValueHolder(child.getID())],
958
+ );
959
+ expect(grandChildCachedAfter.get(new SingleFieldValueHolder(child.getID()))?.status).toEqual(
960
+ CacheStatus.MISS,
961
+ );
963
962
 
964
963
  await expect(
965
- ParentEntity.loader(viewerContext).enforcing().loadByIDNullableAsync(parent.getID()),
964
+ ParentEntity.loader(viewerContext).loadByIDNullableAsync(parent.getID()),
966
965
  ).resolves.toBeNull();
967
966
  await expect(
968
- ChildEntity.loader(viewerContext).enforcing().loadByIDNullableAsync(child.getID()),
967
+ ChildEntity.loader(viewerContext).loadByIDNullableAsync(child.getID()),
969
968
  ).resolves.not.toBeNull();
970
969
  await expect(
971
- GrandChildEntity.loader(viewerContext)
972
- .enforcing()
973
- .loadByIDNullableAsync(grandchild.getID()),
970
+ GrandChildEntity.loader(viewerContext).loadByIDNullableAsync(grandchild.getID()),
974
971
  ).resolves.not.toBeNull();
975
972
 
976
973
  // two calls for each trigger, one beforeDelete, one afterDelete
@@ -13,9 +13,9 @@ import {
13
13
  EnumField,
14
14
  StrictEnumField,
15
15
  } from '../EntityFields';
16
- import describeFieldTestCase from '../utils/testing/describeFieldTestCase';
16
+ import describeFieldTestCase from '../utils/__testfixtures__/describeFieldTestCase';
17
17
 
18
- class TestFieldDefinition extends EntityFieldDefinition<string> {
18
+ class TestFieldDefinition extends EntityFieldDefinition<string, false> {
19
19
  protected validateInputValueInternal(value: string): boolean {
20
20
  return value === 'helloworld';
21
21
  }
@@ -3,17 +3,15 @@ import EnforcingEntityLoader from '../EnforcingEntityLoader';
3
3
  import EntityLoader from '../EntityLoader';
4
4
  import EntityLoaderUtils from '../EntityLoaderUtils';
5
5
  import ViewerContext from '../ViewerContext';
6
- import SimpleTestEntity from '../testfixtures/SimpleTestEntity';
7
- import { createUnitTestEntityCompanionProvider } from '../utils/testing/createUnitTestEntityCompanionProvider';
6
+ import SimpleTestEntity from '../utils/__testfixtures__/SimpleTestEntity';
7
+ import { createUnitTestEntityCompanionProvider } from '../utils/__testfixtures__/createUnitTestEntityCompanionProvider';
8
8
 
9
9
  describe(EntityLoader, () => {
10
10
  describe('enforcing', () => {
11
11
  it('creates a new EnforcingEntityLoader', async () => {
12
12
  const companionProvider = createUnitTestEntityCompanionProvider();
13
13
  const viewerContext = new ViewerContext(companionProvider);
14
- expect(SimpleTestEntity.loader(viewerContext).enforcing()).toBeInstanceOf(
15
- EnforcingEntityLoader,
16
- );
14
+ expect(SimpleTestEntity.loader(viewerContext)).toBeInstanceOf(EnforcingEntityLoader);
17
15
  });
18
16
  });
19
17
 
@@ -21,7 +19,7 @@ describe(EntityLoader, () => {
21
19
  it('creates a new AuthorizationResultBasedEntityLoader', async () => {
22
20
  const companionProvider = createUnitTestEntityCompanionProvider();
23
21
  const viewerContext = new ViewerContext(companionProvider);
24
- expect(SimpleTestEntity.loader(viewerContext).withAuthorizationResults()).toBeInstanceOf(
22
+ expect(SimpleTestEntity.loaderWithAuthorizationResults(viewerContext)).toBeInstanceOf(
25
23
  AuthorizationResultBasedEntityLoader,
26
24
  );
27
25
  });
@@ -31,7 +29,7 @@ describe(EntityLoader, () => {
31
29
  it('returns a instance of EntityLoaderUtils', async () => {
32
30
  const companionProvider = createUnitTestEntityCompanionProvider();
33
31
  const viewerContext = new ViewerContext(companionProvider);
34
- expect(SimpleTestEntity.loader(viewerContext).utils()).toBeInstanceOf(EntityLoaderUtils);
32
+ expect(SimpleTestEntity.loaderUtils(viewerContext)).toBeInstanceOf(EntityLoaderUtils);
35
33
  });
36
34
  });
37
35
  });