@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
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SerializableKeyMap = void 0;
4
+ /**
5
+ * A map with keys that are serializable. Serialized keys are considered equal if their serialized values are equal.
6
+ * Otherwise, the map behaves like a regular Map.
7
+ */
8
+ class SerializableKeyMap {
9
+ underlyingMap;
10
+ constructor(iterable) {
11
+ this.underlyingMap = new Map(Array.from(iterable ?? []).map(([key, value]) => [key.serialize(), value]));
12
+ }
13
+ forEach(callbackfn, thisArg) {
14
+ this.underlyingMap.forEach((value, key) => {
15
+ callbackfn.call(thisArg, value, this.deserializeKey(key), this);
16
+ });
17
+ }
18
+ get(key) {
19
+ return this.underlyingMap.get(key.serialize());
20
+ }
21
+ has(key) {
22
+ return this.underlyingMap.has(key.serialize());
23
+ }
24
+ clear() {
25
+ this.underlyingMap.clear();
26
+ }
27
+ delete(key) {
28
+ return this.underlyingMap.delete(key.serialize());
29
+ }
30
+ set(key, value) {
31
+ this.underlyingMap.set(key.serialize(), value);
32
+ return this;
33
+ }
34
+ get size() {
35
+ return this.underlyingMap.size;
36
+ }
37
+ *entries() {
38
+ for (const [key, value] of this.underlyingMap.entries()) {
39
+ yield [this.deserializeKey(key), value];
40
+ }
41
+ }
42
+ *keys() {
43
+ for (const key of this.underlyingMap.keys()) {
44
+ yield this.deserializeKey(key);
45
+ }
46
+ }
47
+ *values() {
48
+ for (const value of this.underlyingMap.values()) {
49
+ yield value;
50
+ }
51
+ }
52
+ [Symbol.iterator]() {
53
+ return this.entries();
54
+ }
55
+ get [Symbol.toStringTag]() {
56
+ return 'SerializableKeyMap';
57
+ }
58
+ }
59
+ exports.SerializableKeyMap = SerializableKeyMap;
60
+ //# sourceMappingURL=SerializableKeyMap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SerializableKeyMap.js","sourceRoot":"","sources":["../../../src/utils/collections/SerializableKeyMap.ts"],"names":[],"mappings":";;;AAOA;;;GAGG;AACH,MAAsB,kBAAkB;IAGnB,aAAa,CAAsB;IAEtD,YAAY,QAA2C;QACrD,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,CAC1B,KAAK,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,KAAK,CAAC,CAAC,CAC3E,CAAC;IACJ,CAAC;IAID,OAAO,CACL,UAAkF,EAClF,OAAa;QAEb,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YACxC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;IACL,CAAC;IAED,GAAG,CAAC,GAAM;QACR,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,GAAG,CAAC,GAAM;QACR,OAAO,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;IACjD,CAAC;IAED,KAAK;QACH,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,GAAM;QACX,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,GAAG,CAAC,GAAM,EAAE,KAAQ;QAClB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,KAAK,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;IACjC,CAAC;IAED,CAAC,OAAO;QACN,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC;YACxD,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,CAAC,IAAI;QACH,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC;YAC5C,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,CAAC,MAAM;QACL,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC;YAChD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,CAAC,MAAM,CAAC,QAAQ,CAAC;QACf,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;QACtB,OAAO,oBAAoB,CAAC;IAC9B,CAAC;CACF;AAxED,gDAwEC"}
@@ -84,8 +84,7 @@ const zipToMap = (keys, values) => {
84
84
  (0, invariant_1.default)(keys.length === values.length, `zipToMap input length mismatch: keys[${keys.length}], values[${values.length}]`);
85
85
  const resultingMap = new Map();
86
86
  for (let i = 0; i < keys.length; i++) {
87
- const key = keys[i];
88
- resultingMap.set(key, values[i]);
87
+ resultingMap.set(keys[i], values[i]);
89
88
  }
90
89
  return resultingMap;
91
90
  };
@@ -1 +1 @@
1
- {"version":3,"file":"maps.js","sourceRoot":"","sources":["../../../src/utils/collections/maps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"maps.js","sourceRoot":"","sources":["../../../src/utils/collections/maps.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function areSetsEqual<T>(a: ReadonlySet<T>, b: ReadonlySet<T>): boolean;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.areSetsEqual = areSetsEqual;
4
+ function areSetsEqual(a, b) {
5
+ return a.size === b.size && [...a].every((value) => b.has(value));
6
+ }
7
+ //# sourceMappingURL=sets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sets.js","sourceRoot":"","sources":["../../../src/utils/collections/sets.ts"],"names":[],"mappings":";;AAAA,oCAEC;AAFD,SAAgB,YAAY,CAAI,CAAiB,EAAE,CAAiB;IAClE,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;AACpE,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import EntityMutationTriggerConfiguration from '../EntityMutationTriggerConfiguration';
2
2
  import ReadonlyEntity from '../ReadonlyEntity';
3
3
  import ViewerContext from '../ViewerContext';
4
- export declare function mergeEntityMutationTriggerConfigurations<TFields extends object, TID extends NonNullable<TFields[TSelectedFields]>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TID, TViewerContext, TSelectedFields>, TSelectedFields extends keyof TFields>(...mutationTriggerConfigurations: EntityMutationTriggerConfiguration<TFields, TID, TViewerContext, TEntity, TSelectedFields>[]): EntityMutationTriggerConfiguration<TFields, TID, TViewerContext, TEntity, TSelectedFields>;
4
+ export declare function mergeEntityMutationTriggerConfigurations<TFields extends Record<string, any>, TIDField extends keyof NonNullable<Pick<TFields, TSelectedFields>>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TIDField, TViewerContext, TSelectedFields>, TSelectedFields extends keyof TFields>(...mutationTriggerConfigurations: EntityMutationTriggerConfiguration<TFields, TIDField, TViewerContext, TEntity, TSelectedFields>[]): EntityMutationTriggerConfiguration<TFields, TIDField, TViewerContext, TEntity, TSelectedFields>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expo/entity",
3
- "version": "0.41.0",
3
+ "version": "0.43.0",
4
4
  "description": "A privacy-first data model",
5
5
  "files": [
6
6
  "build",
@@ -10,6 +10,7 @@
10
10
  "types": "build/index.d.ts",
11
11
  "scripts": {
12
12
  "tsc": "tsc",
13
+ "build": "tsc -b tsconfig.build.json",
13
14
  "clean": "rm -rf build coverage coverage-integration",
14
15
  "lint": "eslint src",
15
16
  "lint-fix": "eslint src --fix",
@@ -36,7 +37,8 @@
36
37
  },
37
38
  "devDependencies": {
38
39
  "@types/invariant": "^2.2.37",
39
- "@types/jest": "^29.5.12",
40
+ "@types/jest": "^29.5.14",
41
+ "@types/lodash": "^4.17.16",
40
42
  "@types/node": "^20.14.1",
41
43
  "@types/uuid": "^8.3.0",
42
44
  "ctix": "^2.7.0",
@@ -44,11 +46,12 @@
44
46
  "eslint-config-universe": "^14.0.0",
45
47
  "eslint-plugin-tsdoc": "^0.3.0",
46
48
  "jest": "^29.7.0",
49
+ "lodash": "^4.17.21",
47
50
  "prettier": "^3.3.3",
48
51
  "prettier-plugin-organize-imports": "^4.1.0",
49
- "ts-jest": "^29.2.5",
52
+ "ts-jest": "^29.3.1",
50
53
  "ts-mockito": "^2.6.1",
51
- "typescript": "^5.7.3"
54
+ "typescript": "^5.8.3"
52
55
  },
53
- "gitHead": "ee4be736a9a0ba580e9af0194e07c9cd36b1c599"
56
+ "gitHead": "618383027dc76b9250f22d163321ec25e2af0115"
54
57
  }
@@ -12,10 +12,10 @@ import ViewerContext from './ViewerContext';
12
12
  * by foreign keys.
13
13
  */
14
14
  export default class AuthorizationResultBasedEntityAssociationLoader<
15
- TFields extends object,
16
- TID extends NonNullable<TFields[TSelectedFields]>,
15
+ TFields extends Record<string, any>,
16
+ TIDField extends keyof NonNullable<Pick<TFields, TSelectedFields>>,
17
17
  TViewerContext extends ViewerContext,
18
- TEntity extends ReadonlyEntity<TFields, TID, TViewerContext, TSelectedFields>,
18
+ TEntity extends ReadonlyEntity<TFields, TIDField, TViewerContext, TSelectedFields>,
19
19
  TSelectedFields extends keyof TFields,
20
20
  > {
21
21
  constructor(
@@ -32,16 +32,18 @@ export default class AuthorizationResultBasedEntityAssociationLoader<
32
32
  async loadAssociatedEntityAsync<
33
33
  TIdentifyingField extends keyof Pick<TFields, TSelectedFields>,
34
34
  TAssociatedFields extends object,
35
- TAssociatedID extends NonNullable<TAssociatedFields[TAssociatedSelectedFields]>,
35
+ TAssociatedIDField extends keyof NonNullable<
36
+ Pick<TAssociatedFields, TAssociatedSelectedFields>
37
+ >,
36
38
  TAssociatedEntity extends ReadonlyEntity<
37
39
  TAssociatedFields,
38
- TAssociatedID,
40
+ TAssociatedIDField,
39
41
  TViewerContext,
40
42
  TAssociatedSelectedFields
41
43
  >,
42
44
  TAssociatedPrivacyPolicy extends EntityPrivacyPolicy<
43
45
  TAssociatedFields,
44
- TAssociatedID,
46
+ TAssociatedIDField,
45
47
  TViewerContext,
46
48
  TAssociatedEntity,
47
49
  TAssociatedSelectedFields
@@ -51,7 +53,7 @@ export default class AuthorizationResultBasedEntityAssociationLoader<
51
53
  fieldIdentifyingAssociatedEntity: TIdentifyingField,
52
54
  associatedEntityClass: IEntityClass<
53
55
  TAssociatedFields,
54
- TAssociatedID,
56
+ TAssociatedIDField,
55
57
  TViewerContext,
56
58
  TAssociatedEntity,
57
59
  TAssociatedPrivacyPolicy,
@@ -72,8 +74,7 @@ export default class AuthorizationResultBasedEntityAssociationLoader<
72
74
  .getViewerScopedEntityCompanionForClass(associatedEntityClass)
73
75
  .getLoaderFactory()
74
76
  .forLoad(this.queryContext, { previousValue: null, cascadingDeleteCause: null });
75
-
76
- return (await loader.loadByIDAsync(associatedEntityID as unknown as TAssociatedID)) as Result<
77
+ return (await loader.loadByIDAsync(associatedEntityID)) as Result<
77
78
  null extends TFields[TIdentifyingField] ? TAssociatedEntity | null : TAssociatedEntity
78
79
  >;
79
80
  }
@@ -88,16 +89,18 @@ export default class AuthorizationResultBasedEntityAssociationLoader<
88
89
  */
89
90
  async loadManyAssociatedEntitiesAsync<
90
91
  TAssociatedFields extends object,
91
- TAssociatedID extends NonNullable<TAssociatedFields[TAssociatedSelectedFields]>,
92
+ TAssociatedIDField extends keyof NonNullable<
93
+ Pick<TAssociatedFields, TAssociatedSelectedFields>
94
+ >,
92
95
  TAssociatedEntity extends ReadonlyEntity<
93
96
  TAssociatedFields,
94
- TAssociatedID,
97
+ TAssociatedIDField,
95
98
  TViewerContext,
96
99
  TAssociatedSelectedFields
97
100
  >,
98
101
  TAssociatedPrivacyPolicy extends EntityPrivacyPolicy<
99
102
  TAssociatedFields,
100
- TAssociatedID,
103
+ TAssociatedIDField,
101
104
  TViewerContext,
102
105
  TAssociatedEntity,
103
106
  TAssociatedSelectedFields
@@ -106,7 +109,7 @@ export default class AuthorizationResultBasedEntityAssociationLoader<
106
109
  >(
107
110
  associatedEntityClass: IEntityClass<
108
111
  TAssociatedFields,
109
- TAssociatedID,
112
+ TAssociatedIDField,
110
113
  TViewerContext,
111
114
  TAssociatedEntity,
112
115
  TAssociatedPrivacyPolicy,
@@ -135,16 +138,18 @@ export default class AuthorizationResultBasedEntityAssociationLoader<
135
138
  */
136
139
  async loadAssociatedEntityByFieldEqualingAsync<
137
140
  TAssociatedFields extends object,
138
- TAssociatedID extends NonNullable<TAssociatedFields[TAssociatedSelectedFields]>,
141
+ TAssociatedIDField extends keyof NonNullable<
142
+ Pick<TAssociatedFields, TAssociatedSelectedFields>
143
+ >,
139
144
  TAssociatedEntity extends ReadonlyEntity<
140
145
  TAssociatedFields,
141
- TAssociatedID,
146
+ TAssociatedIDField,
142
147
  TViewerContext,
143
148
  TAssociatedSelectedFields
144
149
  >,
145
150
  TAssociatedPrivacyPolicy extends EntityPrivacyPolicy<
146
151
  TAssociatedFields,
147
- TAssociatedID,
152
+ TAssociatedIDField,
148
153
  TViewerContext,
149
154
  TAssociatedEntity,
150
155
  TAssociatedSelectedFields
@@ -154,7 +159,7 @@ export default class AuthorizationResultBasedEntityAssociationLoader<
154
159
  fieldIdentifyingAssociatedEntity: keyof Pick<TFields, TSelectedFields>,
155
160
  associatedEntityClass: IEntityClass<
156
161
  TAssociatedFields,
157
- TAssociatedID,
162
+ TAssociatedIDField,
158
163
  TViewerContext,
159
164
  TAssociatedEntity,
160
165
  TAssociatedPrivacyPolicy,
@@ -186,16 +191,18 @@ export default class AuthorizationResultBasedEntityAssociationLoader<
186
191
  */
187
192
  async loadManyAssociatedEntitiesByFieldEqualingAsync<
188
193
  TAssociatedFields extends object,
189
- TAssociatedID extends NonNullable<TAssociatedFields[TAssociatedSelectedFields]>,
194
+ TAssociatedIDField extends keyof NonNullable<
195
+ Pick<TAssociatedFields, TAssociatedSelectedFields>
196
+ >,
190
197
  TAssociatedEntity extends ReadonlyEntity<
191
198
  TAssociatedFields,
192
- TAssociatedID,
199
+ TAssociatedIDField,
193
200
  TViewerContext,
194
201
  TAssociatedSelectedFields
195
202
  >,
196
203
  TAssociatedPrivacyPolicy extends EntityPrivacyPolicy<
197
204
  TAssociatedFields,
198
- TAssociatedID,
205
+ TAssociatedIDField,
199
206
  TViewerContext,
200
207
  TAssociatedEntity,
201
208
  TAssociatedSelectedFields
@@ -205,7 +212,7 @@ export default class AuthorizationResultBasedEntityAssociationLoader<
205
212
  fieldIdentifyingAssociatedEntity: keyof Pick<TFields, TSelectedFields>,
206
213
  associatedEntityClass: IEntityClass<
207
214
  TAssociatedFields,
208
- TAssociatedID,
215
+ TAssociatedIDField,
209
216
  TViewerContext,
210
217
  TAssociatedEntity,
211
218
  TAssociatedPrivacyPolicy,
@@ -236,11 +243,11 @@ export default class AuthorizationResultBasedEntityAssociationLoader<
236
243
  */
237
244
  async loadAssociatedEntityThroughAsync<
238
245
  TFields2 extends object,
239
- TID2 extends NonNullable<TFields2[TSelectedFields2]>,
240
- TEntity2 extends ReadonlyEntity<TFields2, TID2, TViewerContext, TSelectedFields2>,
246
+ TIDField2 extends keyof NonNullable<Pick<TFields2, TSelectedFields2>>,
247
+ TEntity2 extends ReadonlyEntity<TFields2, TIDField2, TViewerContext, TSelectedFields2>,
241
248
  TPrivacyPolicy2 extends EntityPrivacyPolicy<
242
249
  TFields2,
243
- TID2,
250
+ TIDField2,
244
251
  TViewerContext,
245
252
  TEntity2,
246
253
  TSelectedFields2
@@ -252,7 +259,7 @@ export default class AuthorizationResultBasedEntityAssociationLoader<
252
259
  TViewerContext,
253
260
  TFields,
254
261
  TFields2,
255
- TID2,
262
+ TIDField2,
256
263
  TEntity2,
257
264
  TPrivacyPolicy2,
258
265
  TSelectedFields,
@@ -268,21 +275,21 @@ export default class AuthorizationResultBasedEntityAssociationLoader<
268
275
  */
269
276
  async loadAssociatedEntityThroughAsync<
270
277
  TFields2 extends object,
271
- TID2 extends NonNullable<TFields2[TSelectedFields2]>,
272
- TEntity2 extends ReadonlyEntity<TFields2, TID2, TViewerContext, TSelectedFields2>,
278
+ TIDField2 extends keyof NonNullable<Pick<TFields2, TSelectedFields2>>,
279
+ TEntity2 extends ReadonlyEntity<TFields2, TIDField2, TViewerContext, TSelectedFields2>,
273
280
  TPrivacyPolicy2 extends EntityPrivacyPolicy<
274
281
  TFields2,
275
- TID2,
282
+ TIDField2,
276
283
  TViewerContext,
277
284
  TEntity2,
278
285
  TSelectedFields2
279
286
  >,
280
287
  TFields3 extends object,
281
- TID3 extends NonNullable<TFields3[TSelectedFields3]>,
282
- TEntity3 extends ReadonlyEntity<TFields3, TID3, TViewerContext, TSelectedFields3>,
288
+ TIDField3 extends keyof NonNullable<Pick<TFields3, TSelectedFields3>>,
289
+ TEntity3 extends ReadonlyEntity<TFields3, TIDField3, TViewerContext, TSelectedFields3>,
283
290
  TPrivacyPolicy3 extends EntityPrivacyPolicy<
284
291
  TFields3,
285
- TID3,
292
+ TIDField3,
286
293
  TViewerContext,
287
294
  TEntity3,
288
295
  TSelectedFields3
@@ -295,7 +302,7 @@ export default class AuthorizationResultBasedEntityAssociationLoader<
295
302
  TViewerContext,
296
303
  TFields,
297
304
  TFields2,
298
- TID2,
305
+ TIDField2,
299
306
  TEntity2,
300
307
  TPrivacyPolicy2,
301
308
  TSelectedFields,
@@ -305,7 +312,7 @@ export default class AuthorizationResultBasedEntityAssociationLoader<
305
312
  TViewerContext,
306
313
  TFields2,
307
314
  TFields3,
308
- TID3,
315
+ TIDField3,
309
316
  TEntity3,
310
317
  TPrivacyPolicy3,
311
318
  TSelectedFields2,
@@ -321,31 +328,31 @@ export default class AuthorizationResultBasedEntityAssociationLoader<
321
328
  */
322
329
  async loadAssociatedEntityThroughAsync<
323
330
  TFields2 extends object,
324
- TID2 extends NonNullable<TFields2[TSelectedFields2]>,
325
- TEntity2 extends ReadonlyEntity<TFields2, TID2, TViewerContext, TSelectedFields2>,
331
+ TIDField2 extends keyof NonNullable<Pick<TFields2, TSelectedFields2>>,
332
+ TEntity2 extends ReadonlyEntity<TFields2, TIDField2, TViewerContext, TSelectedFields2>,
326
333
  TPrivacyPolicy2 extends EntityPrivacyPolicy<
327
334
  TFields2,
328
- TID2,
335
+ TIDField2,
329
336
  TViewerContext,
330
337
  TEntity2,
331
338
  TSelectedFields2
332
339
  >,
333
340
  TFields3 extends object,
334
- TID3 extends NonNullable<TFields3[TSelectedFields3]>,
335
- TEntity3 extends ReadonlyEntity<TFields3, TID3, TViewerContext, TSelectedFields3>,
341
+ TIDField3 extends keyof NonNullable<Pick<TFields3, TSelectedFields3>>,
342
+ TEntity3 extends ReadonlyEntity<TFields3, TIDField3, TViewerContext, TSelectedFields3>,
336
343
  TPrivacyPolicy3 extends EntityPrivacyPolicy<
337
344
  TFields3,
338
- TID3,
345
+ TIDField3,
339
346
  TViewerContext,
340
347
  TEntity3,
341
348
  TSelectedFields3
342
349
  >,
343
350
  TFields4 extends object,
344
- TID4 extends NonNullable<TFields4[TSelectedFields4]>,
345
- TEntity4 extends ReadonlyEntity<TFields4, TID4, TViewerContext, TSelectedFields4>,
351
+ TIDField4 extends keyof NonNullable<Pick<TFields4, TSelectedFields4>>,
352
+ TEntity4 extends ReadonlyEntity<TFields4, TIDField4, TViewerContext, TSelectedFields4>,
346
353
  TPrivacyPolicy4 extends EntityPrivacyPolicy<
347
354
  TFields4,
348
- TID4,
355
+ TIDField4,
349
356
  TViewerContext,
350
357
  TEntity4,
351
358
  TSelectedFields4
@@ -359,7 +366,7 @@ export default class AuthorizationResultBasedEntityAssociationLoader<
359
366
  TViewerContext,
360
367
  TFields,
361
368
  TFields2,
362
- TID2,
369
+ TIDField2,
363
370
  TEntity2,
364
371
  TPrivacyPolicy2,
365
372
  TSelectedFields,
@@ -369,7 +376,7 @@ export default class AuthorizationResultBasedEntityAssociationLoader<
369
376
  TViewerContext,
370
377
  TFields2,
371
378
  TFields3,
372
- TID3,
379
+ TIDField3,
373
380
  TEntity3,
374
381
  TPrivacyPolicy3,
375
382
  TSelectedFields2,
@@ -379,7 +386,7 @@ export default class AuthorizationResultBasedEntityAssociationLoader<
379
386
  TViewerContext,
380
387
  TFields3,
381
388
  TFields4,
382
- TID4,
389
+ TIDField4,
383
390
  TEntity4,
384
391
  TPrivacyPolicy4,
385
392
  TSelectedFields3,
@@ -448,16 +455,16 @@ export interface EntityLoadThroughDirective<
448
455
  TViewerContext extends ViewerContext,
449
456
  TFields,
450
457
  TAssociatedFields extends object,
451
- TAssociatedID extends NonNullable<TAssociatedFields[TAssociatedSelectedFields]>,
458
+ TAssociatedIDField extends keyof NonNullable<Pick<TAssociatedFields, TAssociatedSelectedFields>>,
452
459
  TAssociatedEntity extends ReadonlyEntity<
453
460
  TAssociatedFields,
454
- TAssociatedID,
461
+ TAssociatedIDField,
455
462
  TViewerContext,
456
463
  TAssociatedSelectedFields
457
464
  >,
458
465
  TAssociatedPrivacyPolicy extends EntityPrivacyPolicy<
459
466
  TAssociatedFields,
460
- TAssociatedID,
467
+ TAssociatedIDField,
461
468
  TViewerContext,
462
469
  TAssociatedEntity,
463
470
  TAssociatedSelectedFields
@@ -470,7 +477,7 @@ export interface EntityLoadThroughDirective<
470
477
  */
471
478
  associatedEntityClass: IEntityClass<
472
479
  TAssociatedFields,
473
- TAssociatedID,
480
+ TAssociatedIDField,
474
481
  TViewerContext,
475
482
  TAssociatedEntity,
476
483
  TAssociatedPrivacyPolicy,