@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
package/build/index.js CHANGED
@@ -22,8 +22,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
22
22
  return (mod && mod.__esModule) ? mod : { "default": mod };
23
23
  };
24
24
  Object.defineProperty(exports, "__esModule", { value: true });
25
- exports.StubDatabaseAdapter = exports.describeFieldTestCase = exports.PrivacyPolicyRule = exports.AlwaysSkipPrivacyPolicyRule = exports.AlwaysDenyPrivacyPolicyRule = exports.AlwaysAllowPrivacyPolicyRule = exports.NoOpEntityMetricsAdapter = exports.ReadThroughEntityCache = exports.EntityTableDataCoordinator = exports.EntityDataManager = exports.EntityNotFoundError = exports.EntityNotAuthorizedError = exports.EntityInvalidFieldValueError = exports.EntityError = exports.EntityDatabaseAdapterError = exports.EntityCacheAdapterError = exports.ViewerScopedEntityMutatorFactory = exports.ViewerScopedEntityLoaderFactory = exports.ViewerScopedEntityCompanionProvider = exports.ViewerScopedEntityCompanion = exports.ViewerContext = exports.ReadonlyEntity = exports.GenericSecondaryEntityCache = exports.GenericEntityCacheAdapter = exports.EntityUpdater = exports.EntitySecondaryCacheLoader = exports.EntityQueryContextProvider = exports.EntityPrivacyPolicy = exports.EntityMutatorFactory = exports.EntityMutationValidator = exports.EntityLoaderUtils = exports.EntityLoaderFactory = exports.EntityLoader = exports.EntityDeleter = exports.EntityDatabaseAdapter = exports.EntityCreator = exports.EntityConfiguration = exports.EntityCompanionProvider = exports.EntityCompanion = exports.EntityAssociationLoader = exports.Entity = exports.EnforcingEntityUpdater = exports.EnforcingEntityLoader = exports.EnforcingEntityDeleter = exports.EnforcingEntityCreator = exports.EnforcingEntityAssociationLoader = exports.ComposedSecondaryEntityCache = exports.ComposedEntityCacheAdapter = exports.AuthorizationResultBasedEntityLoader = exports.AuthorizationResultBasedEntityAssociationLoader = void 0;
26
- exports.StubQueryContextProvider = exports.StubDatabaseAdapterProvider = void 0;
25
+ exports.PrivacyPolicyRule = exports.AlwaysSkipPrivacyPolicyRule = exports.AlwaysDenyPrivacyPolicyRule = exports.AlwaysAllowPrivacyPolicyRule = exports.NoOpEntityMetricsAdapter = exports.ReadThroughEntityCache = exports.EntityTableDataCoordinator = exports.EntityDataManager = exports.EntityNotFoundError = exports.EntityNotAuthorizedError = exports.EntityInvalidFieldValueError = exports.EntityError = exports.EntityDatabaseAdapterError = exports.EntityCacheAdapterError = exports.ViewerScopedEntityMutatorFactory = exports.ViewerScopedEntityLoaderFactory = exports.ViewerScopedEntityCompanionProvider = exports.ViewerScopedEntityCompanion = exports.ViewerContext = exports.ReadonlyEntity = exports.GenericSecondaryEntityCache = exports.GenericEntityCacheAdapter = exports.EntityUpdater = exports.EntitySecondaryCacheLoader = exports.EntityQueryContextProvider = exports.EntityPrivacyPolicy = exports.EntityMutatorFactory = exports.EntityMutationValidator = exports.EntityLoaderUtils = exports.EntityLoaderFactory = exports.EntityLoader = exports.EntityDeleter = exports.EntityDatabaseAdapter = exports.EntityCreator = exports.EntityConfiguration = exports.EntityCompanionProvider = exports.EntityCompanion = exports.EntityAssociationLoader = exports.Entity = exports.EnforcingEntityUpdater = exports.EnforcingEntityLoader = exports.EnforcingEntityDeleter = exports.EnforcingEntityCreator = exports.EnforcingEntityAssociationLoader = exports.ComposedSecondaryEntityCache = exports.ComposedEntityCacheAdapter = exports.AuthorizationResultBasedEntityLoader = exports.AuthorizationResultBasedEntityAssociationLoader = void 0;
27
26
  var AuthorizationResultBasedEntityAssociationLoader_1 = require("./AuthorizationResultBasedEntityAssociationLoader");
28
27
  Object.defineProperty(exports, "AuthorizationResultBasedEntityAssociationLoader", { enumerable: true, get: function () { return __importDefault(AuthorizationResultBasedEntityAssociationLoader_1).default; } });
29
28
  __exportStar(require("./AuthorizationResultBasedEntityAssociationLoader"), exports);
@@ -57,6 +56,7 @@ Object.defineProperty(exports, "EntityCompanionProvider", { enumerable: true, ge
57
56
  __exportStar(require("./EntityCompanionProvider"), exports);
58
57
  var EntityConfiguration_1 = require("./EntityConfiguration");
59
58
  Object.defineProperty(exports, "EntityConfiguration", { enumerable: true, get: function () { return __importDefault(EntityConfiguration_1).default; } });
59
+ __exportStar(require("./EntityConfiguration"), exports);
60
60
  var EntityCreator_1 = require("./EntityCreator");
61
61
  Object.defineProperty(exports, "EntityCreator", { enumerable: true, get: function () { return __importDefault(EntityCreator_1).default; } });
62
62
  var EntityDatabaseAdapter_1 = require("./EntityDatabaseAdapter");
@@ -121,14 +121,18 @@ var EntityNotAuthorizedError_1 = require("./errors/EntityNotAuthorizedError");
121
121
  Object.defineProperty(exports, "EntityNotAuthorizedError", { enumerable: true, get: function () { return __importDefault(EntityNotAuthorizedError_1).default; } });
122
122
  var EntityNotFoundError_1 = require("./errors/EntityNotFoundError");
123
123
  Object.defineProperty(exports, "EntityNotFoundError", { enumerable: true, get: function () { return __importDefault(EntityNotFoundError_1).default; } });
124
+ __exportStar(require("./internal/CompositeFieldHolder"), exports);
125
+ __exportStar(require("./internal/CompositeFieldValueMap"), exports);
124
126
  var EntityDataManager_1 = require("./internal/EntityDataManager");
125
127
  Object.defineProperty(exports, "EntityDataManager", { enumerable: true, get: function () { return __importDefault(EntityDataManager_1).default; } });
126
128
  __exportStar(require("./internal/EntityFieldTransformationUtils"), exports);
129
+ __exportStar(require("./internal/EntityLoadInterfaces"), exports);
127
130
  var EntityTableDataCoordinator_1 = require("./internal/EntityTableDataCoordinator");
128
131
  Object.defineProperty(exports, "EntityTableDataCoordinator", { enumerable: true, get: function () { return __importDefault(EntityTableDataCoordinator_1).default; } });
129
132
  var ReadThroughEntityCache_1 = require("./internal/ReadThroughEntityCache");
130
133
  Object.defineProperty(exports, "ReadThroughEntityCache", { enumerable: true, get: function () { return __importDefault(ReadThroughEntityCache_1).default; } });
131
134
  __exportStar(require("./internal/ReadThroughEntityCache"), exports);
135
+ __exportStar(require("./internal/SingleFieldHolder"), exports);
132
136
  __exportStar(require("./metrics/EntityMetricsUtils"), exports);
133
137
  __exportStar(require("./metrics/IEntityMetricsAdapter"), exports);
134
138
  var NoOpEntityMetricsAdapter_1 = require("./metrics/NoOpEntityMetricsAdapter");
@@ -145,15 +149,6 @@ __exportStar(require("./rules/PrivacyPolicyRule"), exports);
145
149
  __exportStar(require("./utils/EntityPrivacyUtils"), exports);
146
150
  __exportStar(require("./utils/mergeEntityMutationTriggerConfigurations"), exports);
147
151
  __exportStar(require("./utils/collections/maps"), exports);
148
- __exportStar(require("./utils/testing/createUnitTestEntityCompanionProvider"), exports);
149
- var describeFieldTestCase_1 = require("./utils/testing/describeFieldTestCase");
150
- Object.defineProperty(exports, "describeFieldTestCase", { enumerable: true, get: function () { return __importDefault(describeFieldTestCase_1).default; } });
151
- __exportStar(require("./utils/testing/PrivacyPolicyRuleTestUtils"), exports);
152
- __exportStar(require("./utils/testing/StubCacheAdapter"), exports);
153
- var StubDatabaseAdapter_1 = require("./utils/testing/StubDatabaseAdapter");
154
- Object.defineProperty(exports, "StubDatabaseAdapter", { enumerable: true, get: function () { return __importDefault(StubDatabaseAdapter_1).default; } });
155
- var StubDatabaseAdapterProvider_1 = require("./utils/testing/StubDatabaseAdapterProvider");
156
- Object.defineProperty(exports, "StubDatabaseAdapterProvider", { enumerable: true, get: function () { return __importDefault(StubDatabaseAdapterProvider_1).default; } });
157
- var StubQueryContextProvider_1 = require("./utils/testing/StubQueryContextProvider");
158
- Object.defineProperty(exports, "StubQueryContextProvider", { enumerable: true, get: function () { return __importDefault(StubQueryContextProvider_1).default; } });
152
+ __exportStar(require("./utils/collections/SerializableKeyMap"), exports);
153
+ __exportStar(require("./utils/collections/sets"), exports);
159
154
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import EntityConfiguration, { EntityCompositeField, EntityCompositeFieldValue } from '../EntityConfiguration';
2
+ import { EntityLoadMethodType, IEntityLoadKey, IEntityLoadValue, LoadValueMap } from '../internal/EntityLoadInterfaces';
3
+ declare const CompositeFieldHolderSerializedBrand: unique symbol;
4
+ export type SerializedCompositeFieldHolder = string & {
5
+ readonly [CompositeFieldHolderSerializedBrand]: true;
6
+ };
7
+ /**
8
+ * A load key that represents a composite field (set of fieldName) on an entity.
9
+ * Must be defined in the entity configuration composite field definition.
10
+ */
11
+ export declare class CompositeFieldHolder<TFields extends Record<string, any>, TIDField extends keyof TFields> implements IEntityLoadKey<TFields, TIDField, SerializedCompositeFieldValueHolder, CompositeFieldValueHolder<TFields, EntityCompositeField<TFields>>> {
12
+ readonly compositeField: EntityCompositeField<TFields>;
13
+ constructor(compositeFieldInput: EntityCompositeField<TFields>);
14
+ toString(): string;
15
+ getFieldSet(): ReadonlySet<keyof TFields>;
16
+ extractCompositeFieldValueHolderFromObjectFields(objectFields: TFields): CompositeFieldValueHolder<TFields, EntityCompositeField<TFields>> | null;
17
+ serialize(): SerializedCompositeFieldHolder;
18
+ isCacheable(entityConfiguration: EntityConfiguration<TFields, TIDField>): boolean;
19
+ getDatabaseColumns(entityConfiguration: EntityConfiguration<TFields, TIDField>): readonly string[];
20
+ getDatabaseValues(value: CompositeFieldValueHolder<TFields, EntityCompositeField<TFields>>): readonly any[];
21
+ getLoadValueForObject(object: Readonly<TFields>): CompositeFieldValueHolder<TFields, EntityCompositeField<TFields>> | null;
22
+ createCacheKeyPartsForLoadValue(entityConfiguration: EntityConfiguration<TFields, TIDField>, value: CompositeFieldValueHolder<TFields, EntityCompositeField<TFields>>): readonly string[];
23
+ getLoadMethodType(): EntityLoadMethodType;
24
+ getDataManagerDataLoaderKey(): string;
25
+ serializeLoadValue(value: CompositeFieldValueHolder<TFields, EntityCompositeField<TFields>>): SerializedCompositeFieldValueHolder;
26
+ deserializeLoadValue(value: SerializedCompositeFieldValueHolder): CompositeFieldValueHolder<TFields, EntityCompositeField<TFields>>;
27
+ validateRuntimeLoadValuesForDataManagerDataLoader(values: readonly CompositeFieldValueHolder<TFields, EntityCompositeField<TFields>>[], entityClassName: string): void;
28
+ vendNewLoadValueMap<V>(): LoadValueMap<SerializedCompositeFieldValueHolder, CompositeFieldValueHolder<TFields, EntityCompositeField<TFields>>, V>;
29
+ }
30
+ declare const CompositeFieldValueHolderSerializedBrand: unique symbol;
31
+ export type SerializedCompositeFieldValueHolder = string & {
32
+ readonly [CompositeFieldValueHolderSerializedBrand]: true;
33
+ };
34
+ /**
35
+ * A load value for a CompositeFieldHolder.
36
+ */
37
+ export declare class CompositeFieldValueHolder<TFields extends Record<string, any>, TCompositeField extends EntityCompositeField<TFields>> implements IEntityLoadValue<SerializedCompositeFieldValueHolder> {
38
+ readonly compositeFieldValue: EntityCompositeFieldValue<TFields, TCompositeField>;
39
+ constructor(compositeFieldValue: EntityCompositeFieldValue<TFields, TCompositeField>);
40
+ toString(): string;
41
+ getFieldSet(): ReadonlySet<keyof TFields>;
42
+ static deserialize<TFields extends Record<string, any>, TCompositeField extends EntityCompositeField<TFields>>(serialized: SerializedCompositeFieldValueHolder): CompositeFieldValueHolder<TFields, TCompositeField>;
43
+ serialize(): SerializedCompositeFieldValueHolder;
44
+ }
45
+ export declare class CompositeFieldValueHolderMap<TFields extends Record<string, any>, N extends EntityCompositeField<TFields>, V> extends LoadValueMap<SerializedCompositeFieldValueHolder, CompositeFieldValueHolder<TFields, N>, V> {
46
+ protected deserializeKey(serializedKey: SerializedCompositeFieldValueHolder): CompositeFieldValueHolder<TFields, N>;
47
+ }
48
+ export {};
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.CompositeFieldValueHolderMap = exports.CompositeFieldValueHolder = exports.CompositeFieldHolder = void 0;
7
+ const invariant_1 = __importDefault(require("invariant"));
8
+ const entityUtils_1 = require("../entityUtils");
9
+ const EntityFieldTransformationUtils_1 = require("./EntityFieldTransformationUtils");
10
+ const EntityLoadInterfaces_1 = require("../internal/EntityLoadInterfaces");
11
+ /**
12
+ * A load key that represents a composite field (set of fieldName) on an entity.
13
+ * Must be defined in the entity configuration composite field definition.
14
+ */
15
+ class CompositeFieldHolder {
16
+ compositeField;
17
+ constructor(compositeFieldInput) {
18
+ this.compositeField = [...compositeFieldInput].sort();
19
+ }
20
+ toString() {
21
+ return `CompositeField(${this.compositeField.join(',')})`;
22
+ }
23
+ getFieldSet() {
24
+ return new Set(this.compositeField);
25
+ }
26
+ extractCompositeFieldValueHolderFromObjectFields(objectFields) {
27
+ const selection = (0, entityUtils_1.pick)(objectFields, this.compositeField);
28
+ if (Object.values(selection).some((value) => value === undefined || value === null)) {
29
+ return null;
30
+ }
31
+ return new CompositeFieldValueHolder(selection);
32
+ }
33
+ serialize() {
34
+ return JSON.stringify(this.compositeField);
35
+ }
36
+ isCacheable(entityConfiguration) {
37
+ return entityConfiguration.compositeFieldInfo.canCacheCompositeField(this.compositeField);
38
+ }
39
+ getDatabaseColumns(entityConfiguration) {
40
+ return this.compositeField.map((fieldName) => (0, EntityFieldTransformationUtils_1.getDatabaseFieldForEntityField)(entityConfiguration, fieldName));
41
+ }
42
+ getDatabaseValues(value) {
43
+ return this.compositeField.map((fieldName) => value.compositeFieldValue[fieldName]);
44
+ }
45
+ getLoadValueForObject(object) {
46
+ return this.extractCompositeFieldValueHolderFromObjectFields(object);
47
+ }
48
+ createCacheKeyPartsForLoadValue(entityConfiguration, value) {
49
+ const columnNames = this.compositeField.map((fieldName) => {
50
+ const columnName = entityConfiguration.entityToDBFieldsKeyMapping.get(fieldName);
51
+ (0, invariant_1.default)(columnName, `database field mapping missing for ${String(fieldName)}`);
52
+ return columnName;
53
+ });
54
+ const compositeFieldValues = this.compositeField.map((fieldName) => value.compositeFieldValue[fieldName]);
55
+ return [...columnNames, ...compositeFieldValues.map((value) => String(value))];
56
+ }
57
+ getLoadMethodType() {
58
+ return EntityLoadInterfaces_1.EntityLoadMethodType.COMPOSITE;
59
+ }
60
+ getDataManagerDataLoaderKey() {
61
+ return this.serialize();
62
+ }
63
+ serializeLoadValue(value) {
64
+ return value.serialize();
65
+ }
66
+ deserializeLoadValue(value) {
67
+ return CompositeFieldValueHolder.deserialize(value);
68
+ }
69
+ validateRuntimeLoadValuesForDataManagerDataLoader(values, entityClassName) {
70
+ const isInvalidRuntimeCompositeFieldValue = (value) => Object.values(value.compositeFieldValue).some((fieldValue) => fieldValue === undefined || fieldValue === null);
71
+ const invalidValueIndex = values.findIndex(isInvalidRuntimeCompositeFieldValue);
72
+ if (invalidValueIndex >= 0) {
73
+ throw new Error(`Invalid load: ${entityClassName} (${String(this.compositeField)} = ${values[invalidValueIndex]})`);
74
+ }
75
+ }
76
+ vendNewLoadValueMap() {
77
+ return new CompositeFieldValueHolderMap();
78
+ }
79
+ }
80
+ exports.CompositeFieldHolder = CompositeFieldHolder;
81
+ /**
82
+ * A load value for a CompositeFieldHolder.
83
+ */
84
+ class CompositeFieldValueHolder {
85
+ compositeFieldValue;
86
+ constructor(compositeFieldValue) {
87
+ this.compositeFieldValue = compositeFieldValue;
88
+ }
89
+ toString() {
90
+ return `CompositeFieldValue(${Object.entries(this.compositeFieldValue)
91
+ .map(([fieldName, fieldValue]) => `${fieldName}=${fieldValue}`)
92
+ .join(',')})`;
93
+ }
94
+ getFieldSet() {
95
+ return new Set(Object.keys(this.compositeFieldValue));
96
+ }
97
+ static deserialize(serialized) {
98
+ return new CompositeFieldValueHolder(JSON.parse(serialized));
99
+ }
100
+ serialize() {
101
+ // Specify the ordered keys to serialize in a sorted manner to ensure consistent serialization
102
+ // between two objects of the same keys/values but different order.
103
+ // The replacer argument is "An array of strings and numbers that acts as an approved list
104
+ // for selecting the object properties that will be stringified."
105
+ // but it is a secondary effect of specifying the order of keys in the stringified object.
106
+ return JSON.stringify(this.compositeFieldValue, Object.keys(this.compositeFieldValue).sort());
107
+ }
108
+ }
109
+ exports.CompositeFieldValueHolder = CompositeFieldValueHolder;
110
+ class CompositeFieldValueHolderMap extends EntityLoadInterfaces_1.LoadValueMap {
111
+ deserializeKey(serializedKey) {
112
+ return CompositeFieldValueHolder.deserialize(serializedKey);
113
+ }
114
+ }
115
+ exports.CompositeFieldValueHolderMap = CompositeFieldValueHolderMap;
116
+ //# sourceMappingURL=CompositeFieldHolder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CompositeFieldHolder.js","sourceRoot":"","sources":["../../src/internal/CompositeFieldHolder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { EntityCompositeField, EntityCompositeFieldValue } from '../EntityConfiguration';
2
+ import { CompositeFieldValueHolder } from './CompositeFieldHolder';
3
+ export declare class CompositeFieldValueMap<TFields extends Record<string, any>, N extends EntityCompositeField<TFields>, TOutput> implements ReadonlyMap<EntityCompositeFieldValue<TFields, N>, TOutput> {
4
+ private readonly map;
5
+ constructor(entries: [CompositeFieldValueHolder<TFields, N>, TOutput][]);
6
+ get(compositeFieldValue: EntityCompositeFieldValue<TFields, N>): TOutput | undefined;
7
+ has(compositeFieldValue: EntityCompositeFieldValue<TFields, N>): boolean;
8
+ forEach(callbackfn: (value: TOutput, key: EntityCompositeFieldValue<TFields, N>, map: CompositeFieldValueMap<TFields, N, TOutput>) => void, thisArg?: any): void;
9
+ get size(): number;
10
+ entries(): MapIterator<[EntityCompositeFieldValue<TFields, N>, TOutput]>;
11
+ keys(): MapIterator<EntityCompositeFieldValue<TFields, N>>;
12
+ values(): MapIterator<TOutput>;
13
+ [Symbol.iterator](): MapIterator<[EntityCompositeFieldValue<TFields, N>, TOutput]>;
14
+ get [Symbol.toStringTag](): string;
15
+ }
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CompositeFieldValueMap = void 0;
4
+ const CompositeFieldHolder_1 = require("./CompositeFieldHolder");
5
+ class CompositeFieldValueMap {
6
+ map;
7
+ constructor(entries) {
8
+ const map = new Map();
9
+ for (const [key, value] of entries) {
10
+ map.set(key.serialize(), value);
11
+ }
12
+ this.map = map;
13
+ }
14
+ get(compositeFieldValue) {
15
+ return this.map.get(new CompositeFieldHolder_1.CompositeFieldValueHolder(compositeFieldValue).serialize());
16
+ }
17
+ has(compositeFieldValue) {
18
+ return this.map.has(new CompositeFieldHolder_1.CompositeFieldValueHolder(compositeFieldValue).serialize());
19
+ }
20
+ forEach(callbackfn, thisArg) {
21
+ this.map.forEach((value, key) => {
22
+ callbackfn.call(thisArg, value, CompositeFieldHolder_1.CompositeFieldValueHolder.deserialize(key).compositeFieldValue, this);
23
+ });
24
+ }
25
+ get size() {
26
+ return this.map.size;
27
+ }
28
+ *entries() {
29
+ for (const [key, value] of this.map.entries()) {
30
+ yield [CompositeFieldHolder_1.CompositeFieldValueHolder.deserialize(key).compositeFieldValue, value];
31
+ }
32
+ }
33
+ *keys() {
34
+ for (const key of this.map.keys()) {
35
+ yield CompositeFieldHolder_1.CompositeFieldValueHolder.deserialize(key).compositeFieldValue;
36
+ }
37
+ }
38
+ *values() {
39
+ for (const value of this.map.values()) {
40
+ yield value;
41
+ }
42
+ }
43
+ [Symbol.iterator]() {
44
+ return this.entries();
45
+ }
46
+ get [Symbol.toStringTag]() {
47
+ return 'CompositeFieldValueMap';
48
+ }
49
+ }
50
+ exports.CompositeFieldValueMap = CompositeFieldValueMap;
51
+ //# sourceMappingURL=CompositeFieldValueMap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CompositeFieldValueMap.js","sourceRoot":"","sources":["../../src/internal/CompositeFieldValueMap.ts"],"names":[],"mappings":";;;AACA,iEAGgC;AAEhC,MAAa,sBAAsB;IAMhB,GAAG,CAAoD;IAExE,YAAY,OAA2D;QACrE,MAAM,GAAG,GAAG,IAAI,GAAG,EAAgD,CAAC;QACpE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;YACnC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,KAAK,CAAC,CAAC;QAClC,CAAC;QACD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,GAAG,CAAC,mBAA0D;QAC5D,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,gDAAyB,CAAC,mBAAmB,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,GAAG,CAAC,mBAA0D;QAC5D,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,gDAAyB,CAAC,mBAAmB,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;IACtF,CAAC;IAED,OAAO,CACL,UAIS,EACT,OAAa;QAEb,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAC9B,UAAU,CAAC,IAAI,CACb,OAAO,EACP,KAAK,EACL,gDAAyB,CAAC,WAAW,CAAa,GAAG,CAAC,CAAC,mBAAmB,EAC1E,IAAI,CACL,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,CAAC,OAAO;QACN,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC;YAC9C,MAAM,CAAC,gDAAyB,CAAC,WAAW,CAAa,GAAG,CAAC,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;QAC5F,CAAC;IACH,CAAC;IAED,CAAC,IAAI;QACH,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;YAClC,MAAM,gDAAyB,CAAC,WAAW,CAAa,GAAG,CAAC,CAAC,mBAAmB,CAAC;QACnF,CAAC;IACH,CAAC;IAED,CAAC,MAAM;QACL,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;YACtC,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,wBAAwB,CAAC;IAClC,CAAC;CACF;AAvED,wDAuEC"}
@@ -2,6 +2,7 @@ import ReadThroughEntityCache from './ReadThroughEntityCache';
2
2
  import EntityDatabaseAdapter, { FieldEqualityCondition, QuerySelectionModifiers, QuerySelectionModifiersWithOrderByRaw } from '../EntityDatabaseAdapter';
3
3
  import { EntityQueryContext } from '../EntityQueryContext';
4
4
  import EntityQueryContextProvider from '../EntityQueryContextProvider';
5
+ import { IEntityLoadKey, IEntityLoadValue, LoadPair } from './EntityLoadInterfaces';
5
6
  import IEntityMetricsAdapter from '../metrics/IEntityMetricsAdapter';
6
7
  /**
7
8
  * A data manager is responsible for orchestrating multiple sources of entity
@@ -9,26 +10,26 @@ import IEntityMetricsAdapter from '../metrics/IEntityMetricsAdapter';
9
10
  *
10
11
  * It is also responsible for invalidating all sources of data when mutated using EntityMutator.
11
12
  */
12
- export default class EntityDataManager<TFields extends Record<string, any>> {
13
+ export default class EntityDataManager<TFields extends Record<string, any>, TIDField extends keyof TFields> {
13
14
  private readonly databaseAdapter;
14
15
  private readonly entityCache;
15
16
  private readonly queryContextProvider;
16
17
  private readonly metricsAdapter;
17
18
  private readonly entityClassName;
18
- private readonly fieldDataLoaders;
19
- constructor(databaseAdapter: EntityDatabaseAdapter<TFields>, entityCache: ReadThroughEntityCache<TFields>, queryContextProvider: EntityQueryContextProvider, metricsAdapter: IEntityMetricsAdapter, entityClassName: string);
20
- private getFieldDataLoaderForFieldName;
21
- private loadManyForDataLoaderByFieldEqualingAsync;
19
+ private readonly dataloaders;
20
+ constructor(databaseAdapter: EntityDatabaseAdapter<TFields, TIDField>, entityCache: ReadThroughEntityCache<TFields, TIDField>, queryContextProvider: EntityQueryContextProvider, metricsAdapter: IEntityMetricsAdapter, entityClassName: string);
21
+ private getDataLoaderForLoadKey;
22
+ private loadManyForDataLoaderAsync;
22
23
  /**
23
- * Load many objects where fieldName is one of fieldValues.
24
+ * Load many objects through read-through dataloader (batcher) and cache (optional).
24
25
  *
25
26
  * @param queryContext - query context in which to perform the load
26
- * @param fieldName - object field being queried
27
- * @param fieldValues - fieldName field values being queried
28
- * @returns map from fieldValue to objects that match the query for that fieldValue
27
+ * @param key - load key being queried
28
+ * @param values - load values being queried for the key
29
+ * @returns map from load value to objects that match the query for that load value
29
30
  */
30
- loadManyByFieldEqualingAsync<N extends keyof TFields>(queryContext: EntityQueryContext, fieldName: N, fieldValues: readonly NonNullable<TFields[N]>[]): Promise<ReadonlyMap<NonNullable<TFields[N]>, readonly Readonly<TFields>[]>>;
31
- private loadManyByFieldEqualingInternalAsync;
31
+ loadManyEqualingAsync<TLoadKey extends IEntityLoadKey<TFields, TIDField, TSerializedLoadValue, TLoadValue>, TSerializedLoadValue, TLoadValue extends IEntityLoadValue<TSerializedLoadValue>>(queryContext: EntityQueryContext, key: TLoadKey, values: readonly TLoadValue[]): Promise<ReadonlyMap<TLoadValue, readonly Readonly<TFields>[]>>;
32
+ private loadManyEqualingInternalAsync;
32
33
  /**
33
34
  * Loads many objects matching the conjunction of where clauses constructed from
34
35
  * specified field equality operands.
@@ -49,11 +50,10 @@ export default class EntityDataManager<TFields extends Record<string, any>> {
49
50
  * @returns array of objects matching the query
50
51
  */
51
52
  loadManyByRawWhereClauseAsync(queryContext: EntityQueryContext, rawWhereClause: string, bindings: any[] | object, querySelectionModifiers: QuerySelectionModifiersWithOrderByRaw<TFields>): Promise<readonly Readonly<TFields>[]>;
52
- private invalidateManyByFieldEqualingAsync;
53
+ private invalidateOneAsync;
53
54
  /**
54
- * Invalidate all caches, in-memory or otherwise, for an object.
55
- *
56
- * @param objectFields - object to invalidate from all applicable caches
55
+ * Invalidate all caches, in-memory or otherwise, for sets of key-value pairs.
56
+ * @param pairs - key-value pairs to invalidate
57
57
  */
58
- invalidateObjectFieldsAsync(objectFields: Readonly<TFields>): Promise<void>;
58
+ invalidateKeyValuePairsAsync(pairs: readonly LoadPair<TFields, TIDField, any, any, any>[]): Promise<void>;
59
59
  }
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const dataloader_1 = __importDefault(require("dataloader"));
7
+ const invariant_1 = __importDefault(require("invariant"));
7
8
  const entityUtils_1 = require("../entityUtils");
8
9
  const EntityMetricsUtils_1 = require("../metrics/EntityMetricsUtils");
9
10
  const IEntityMetricsAdapter_1 = require("../metrics/IEntityMetricsAdapter");
@@ -20,7 +21,7 @@ class EntityDataManager {
20
21
  queryContextProvider;
21
22
  metricsAdapter;
22
23
  entityClassName;
23
- fieldDataLoaders = new Map();
24
+ dataloaders = new Map();
24
25
  constructor(databaseAdapter, entityCache, queryContextProvider, metricsAdapter, entityClassName) {
25
26
  this.databaseAdapter = databaseAdapter;
26
27
  this.entityCache = entityCache;
@@ -28,62 +29,68 @@ class EntityDataManager {
28
29
  this.metricsAdapter = metricsAdapter;
29
30
  this.entityClassName = entityClassName;
30
31
  }
31
- getFieldDataLoaderForFieldName(fieldName) {
32
- return (0, maps_1.computeIfAbsent)(this.fieldDataLoaders, fieldName, () => {
33
- return new dataloader_1.default(async (fieldValues) => {
34
- const objectMap = await this.loadManyForDataLoaderByFieldEqualingAsync(fieldName, fieldValues);
35
- return fieldValues.map((fv) => objectMap.get(fv) ?? []);
32
+ getDataLoaderForLoadKey(key) {
33
+ return (0, maps_1.computeIfAbsent)(this.dataloaders, key.getLoadMethodType() + key.getDataManagerDataLoaderKey(), () => {
34
+ return new dataloader_1.default(async (serializedLoadValues) => {
35
+ const values = serializedLoadValues.map((serializedLoadValue) => key.deserializeLoadValue(serializedLoadValue));
36
+ const objectMap = await this.loadManyForDataLoaderAsync(key, values);
37
+ return values.map((value) => objectMap.get(value) ?? []);
36
38
  });
37
39
  });
38
40
  }
39
- async loadManyForDataLoaderByFieldEqualingAsync(fieldName, fieldValues) {
41
+ async loadManyForDataLoaderAsync(key, values) {
40
42
  this.metricsAdapter.incrementDataManagerLoadCount({
41
43
  type: IEntityMetricsAdapter_1.IncrementLoadCountEventType.CACHE,
42
- fieldValueCount: fieldValues.length,
44
+ fieldValueCount: values.length,
43
45
  entityClassName: this.entityClassName,
46
+ loadType: key.getLoadMethodType(),
44
47
  });
45
- return await this.entityCache.readManyThroughAsync(fieldName, fieldValues, async (fetcherValues) => {
48
+ return await this.entityCache.readManyThroughAsync(key, values, async (fetcherValues) => {
46
49
  this.metricsAdapter.incrementDataManagerLoadCount({
47
50
  type: IEntityMetricsAdapter_1.IncrementLoadCountEventType.DATABASE,
48
- fieldValueCount: fieldValues.length,
51
+ fieldValueCount: fetcherValues.length,
49
52
  entityClassName: this.entityClassName,
53
+ loadType: key.getLoadMethodType(),
50
54
  });
51
- return await this.databaseAdapter.fetchManyWhereAsync(this.queryContextProvider.getQueryContext(), fieldName, fetcherValues);
55
+ return await this.databaseAdapter.fetchManyWhereAsync(this.queryContextProvider.getQueryContext(), key, fetcherValues);
52
56
  });
53
57
  }
54
58
  /**
55
- * Load many objects where fieldName is one of fieldValues.
59
+ * Load many objects through read-through dataloader (batcher) and cache (optional).
56
60
  *
57
61
  * @param queryContext - query context in which to perform the load
58
- * @param fieldName - object field being queried
59
- * @param fieldValues - fieldName field values being queried
60
- * @returns map from fieldValue to objects that match the query for that fieldValue
62
+ * @param key - load key being queried
63
+ * @param values - load values being queried for the key
64
+ * @returns map from load value to objects that match the query for that load value
61
65
  */
62
- async loadManyByFieldEqualingAsync(queryContext, fieldName, fieldValues) {
63
- return await (0, EntityMetricsUtils_1.timeAndLogLoadMapEventAsync)(this.metricsAdapter, IEntityMetricsAdapter_1.EntityMetricsLoadType.LOAD_MANY, this.entityClassName)(this.loadManyByFieldEqualingInternalAsync(queryContext, fieldName, fieldValues));
66
+ async loadManyEqualingAsync(queryContext, key, values) {
67
+ return await (0, EntityMetricsUtils_1.timeAndLogLoadMapEventAsync)(this.metricsAdapter, IEntityMetricsAdapter_1.EntityMetricsLoadType.LOAD_MANY, this.entityClassName)(this.loadManyEqualingInternalAsync(queryContext, key, values));
64
68
  }
65
- async loadManyByFieldEqualingInternalAsync(queryContext, fieldName, fieldValues) {
66
- const nullOrUndefinedValueIndex = fieldValues.findIndex((value) => value === null || value === undefined);
67
- if (nullOrUndefinedValueIndex >= 0) {
68
- throw new Error(`Invalid load: ${this.entityClassName} (${String(fieldName)} = ${fieldValues[nullOrUndefinedValueIndex]})`);
69
- }
69
+ async loadManyEqualingInternalAsync(queryContext, key, values) {
70
+ key.validateRuntimeLoadValuesForDataManagerDataLoader(values, this.entityClassName);
70
71
  // don't cache when in transaction, as rollbacks complicate things significantly
71
72
  if (queryContext.isInTransaction()) {
72
- return await this.databaseAdapter.fetchManyWhereAsync(queryContext, fieldName, fieldValues);
73
+ return await this.databaseAdapter.fetchManyWhereAsync(queryContext, key, values);
73
74
  }
74
75
  this.metricsAdapter.incrementDataManagerLoadCount({
75
76
  type: IEntityMetricsAdapter_1.IncrementLoadCountEventType.DATALOADER,
76
- fieldValueCount: fieldValues.length,
77
+ fieldValueCount: values.length,
77
78
  entityClassName: this.entityClassName,
79
+ loadType: key.getLoadMethodType(),
78
80
  });
79
- const dataLoader = this.getFieldDataLoaderForFieldName(fieldName);
80
- const results = await dataLoader.loadMany(fieldValues);
81
- const [values, errors] = (0, entityUtils_1.partitionErrors)(results);
81
+ const dataLoader = this.getDataLoaderForLoadKey(key);
82
+ const results = await dataLoader.loadMany(values.map((v) => key.serializeLoadValue(v)));
83
+ const [successfulValues, errors] = (0, entityUtils_1.partitionErrors)(results);
82
84
  if (errors.length > 0) {
83
85
  const error = errors[0];
84
86
  throw error;
85
87
  }
86
- return (0, maps_1.zipToMap)(fieldValues, values);
88
+ (0, invariant_1.default)(values.length === successfulValues.length, `length mismatch between values (${values.length}) and successful values (${successfulValues.length})`);
89
+ const mapToReturn = key.vendNewLoadValueMap();
90
+ for (let i = 0; i < successfulValues.length; i++) {
91
+ mapToReturn.set(values[i], successfulValues[i]);
92
+ }
93
+ return mapToReturn;
87
94
  }
88
95
  /**
89
96
  * Loads many objects matching the conjunction of where clauses constructed from
@@ -109,27 +116,17 @@ class EntityDataManager {
109
116
  async loadManyByRawWhereClauseAsync(queryContext, rawWhereClause, bindings, querySelectionModifiers) {
110
117
  return await (0, EntityMetricsUtils_1.timeAndLogLoadEventAsync)(this.metricsAdapter, IEntityMetricsAdapter_1.EntityMetricsLoadType.LOAD_MANY_RAW, this.entityClassName)(this.databaseAdapter.fetchManyByRawWhereClauseAsync(queryContext, rawWhereClause, bindings, querySelectionModifiers));
111
118
  }
112
- async invalidateManyByFieldEqualingAsync(fieldName, fieldValues) {
113
- await this.entityCache.invalidateManyAsync(fieldName, fieldValues);
114
- const dataLoader = this.getFieldDataLoaderForFieldName(fieldName);
115
- fieldValues.forEach((fieldValue) => dataLoader.clear(fieldValue));
119
+ async invalidateOneAsync(key, value) {
120
+ await this.entityCache.invalidateManyAsync(key, [value]);
121
+ this.getDataLoaderForLoadKey(key).clear(key.serializeLoadValue(value));
116
122
  }
117
123
  /**
118
- * Invalidate all caches, in-memory or otherwise, for an object.
119
- *
120
- * @param objectFields - object to invalidate from all applicable caches
124
+ * Invalidate all caches, in-memory or otherwise, for sets of key-value pairs.
125
+ * @param pairs - key-value pairs to invalidate
121
126
  */
122
- async invalidateObjectFieldsAsync(objectFields) {
127
+ async invalidateKeyValuePairsAsync(pairs) {
123
128
  // TODO(wschurman): check for races with load
124
- const keys = Object.keys(objectFields);
125
- await Promise.all(keys.map(async (fieldName) => {
126
- const value = objectFields[fieldName];
127
- if (value !== undefined) {
128
- await this.invalidateManyByFieldEqualingAsync(fieldName, [
129
- value,
130
- ]);
131
- }
132
- }));
129
+ await Promise.all(pairs.map(([key, value]) => this.invalidateOneAsync(key, value)));
133
130
  }
134
131
  }
135
132
  exports.default = EntityDataManager;
@@ -1 +1 @@
1
- {"version":3,"file":"EntityDataManager.js","sourceRoot":"","sources":["../../src/internal/EntityDataManager.ts"],"names":[],"mappings":";;;;;AAAA,4DAAoC;AAUpC,gDAAiD;AACjD,sEAGuC;AACvC,4EAG0C;AAC1C,oDAAsE;AAEtE;;;;;GAKG;AACH,MAAqB,iBAAiB;IAOjB;IACA;IACA;IACA;IACA;IAVF,gBAAgB,GAG7B,IAAI,GAAG,EAAE,CAAC;IAEd,YACmB,eAA+C,EAC/C,WAA4C,EAC5C,oBAAgD,EAChD,cAAqC,EACrC,eAAuB;QAJvB,oBAAe,GAAf,eAAe,CAAgC;QAC/C,gBAAW,GAAX,WAAW,CAAiC;QAC5C,yBAAoB,GAApB,oBAAoB,CAA4B;QAChD,mBAAc,GAAd,cAAc,CAAuB;QACrC,oBAAe,GAAf,eAAe,CAAQ;IACvC,CAAC;IAEI,8BAA8B,CACpC,SAAY;QAEZ,OAAO,IAAA,sBAAe,EAAC,IAAI,CAAC,gBAAgB,EAAE,SAAS,EAAE,GAAG,EAAE;YAC5D,OAAO,IAAI,oBAAU,CACnB,KAAK,EACH,WAA+C,EACL,EAAE;gBAC5C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,yCAAyC,CACpE,SAAS,EACT,WAAW,CACZ,CAAC;gBACF,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;YAC1D,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,yCAAyC,CACrD,SAAY,EACZ,WAA+C;QAE/C,IAAI,CAAC,cAAc,CAAC,6BAA6B,CAAC;YAChD,IAAI,EAAE,mDAA2B,CAAC,KAAK;YACvC,eAAe,EAAE,WAAW,CAAC,MAAM;YACnC,eAAe,EAAE,IAAI,CAAC,eAAe;SACtC,CAAC,CAAC;QACH,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAChD,SAAS,EACT,WAAW,EACX,KAAK,EAAE,aAAa,EAAE,EAAE;YACtB,IAAI,CAAC,cAAc,CAAC,6BAA6B,CAAC;gBAChD,IAAI,EAAE,mDAA2B,CAAC,QAAQ;gBAC1C,eAAe,EAAE,WAAW,CAAC,MAAM;gBACnC,eAAe,EAAE,IAAI,CAAC,eAAe;aACtC,CAAC,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,mBAAmB,CACnD,IAAI,CAAC,oBAAoB,CAAC,eAAe,EAAE,EAC3C,SAAS,EACT,aAAa,CACd,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,4BAA4B,CAChC,YAAgC,EAChC,SAAY,EACZ,WAA+C;QAE/C,OAAO,MAAM,IAAA,gDAA2B,EACtC,IAAI,CAAC,cAAc,EACnB,6CAAqB,CAAC,SAAS,EAC/B,IAAI,CAAC,eAAe,CACrB,CAAC,IAAI,CAAC,oCAAoC,CAAC,YAAY,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;IACrF,CAAC;IAEO,KAAK,CAAC,oCAAoC,CAChD,YAAgC,EAChC,SAAY,EACZ,WAA+C;QAE/C,MAAM,yBAAyB,GAAG,WAAW,CAAC,SAAS,CACrD,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CACjD,CAAC;QACF,IAAI,yBAAyB,IAAI,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CACb,iBAAiB,IAAI,CAAC,eAAe,KAAK,MAAM,CAAC,SAAS,CAAC,MACzD,WAAW,CAAC,yBAAyB,CACvC,GAAG,CACJ,CAAC;QACJ,CAAC;QAED,gFAAgF;QAChF,IAAI,YAAY,CAAC,eAAe,EAAE,EAAE,CAAC;YACnC,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,YAAY,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QAC9F,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,6BAA6B,CAAC;YAChD,IAAI,EAAE,mDAA2B,CAAC,UAAU;YAC5C,eAAe,EAAE,WAAW,CAAC,MAAM;YACnC,eAAe,EAAE,IAAI,CAAC,eAAe;SACtC,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,8BAA8B,CAAC,SAAS,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QACvD,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAA,6BAAe,EAAC,OAAO,CAAC,CAAC;QAClD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;YACzB,MAAM,KAAK,CAAC;QACd,CAAC;QAED,OAAO,IAAA,eAAQ,EAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,uCAAuC,CAC3C,YAAgC,EAChC,qBAA2D,EAC3D,uBAAyD;QAEzD,OAAO,MAAM,IAAA,6CAAwB,EACnC,IAAI,CAAC,cAAc,EACnB,6CAAqB,CAAC,8BAA8B,EACpD,IAAI,CAAC,eAAe,CACrB,CACC,IAAI,CAAC,eAAe,CAAC,wCAAwC,CAC3D,YAAY,EACZ,qBAAqB,EACrB,uBAAuB,CACxB,CACF,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,6BAA6B,CACjC,YAAgC,EAChC,cAAsB,EACtB,QAAwB,EACxB,uBAAuE;QAEvE,OAAO,MAAM,IAAA,6CAAwB,EACnC,IAAI,CAAC,cAAc,EACnB,6CAAqB,CAAC,aAAa,EACnC,IAAI,CAAC,eAAe,CACrB,CACC,IAAI,CAAC,eAAe,CAAC,8BAA8B,CACjD,YAAY,EACZ,cAAc,EACd,QAAQ,EACR,uBAAuB,CACxB,CACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,kCAAkC,CAC9C,SAAY,EACZ,WAA+C;QAE/C,MAAM,IAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,IAAI,CAAC,8BAA8B,CAAC,SAAS,CAAC,CAAC;QAClE,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;IACpE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,2BAA2B,CAAC,YAA+B;QAC/D,6CAA6C;QAC7C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAsB,CAAC;QAC5D,MAAM,OAAO,CAAC,GAAG,CACf,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,SAAwB,EAAE,EAAE;YAC1C,MAAM,KAAK,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;YACtC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,MAAM,IAAI,CAAC,kCAAkC,CAAC,SAAS,EAAE;oBACvD,KAA4C;iBAC7C,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;CACF;AAxMD,oCAwMC"}
1
+ {"version":3,"file":"EntityDataManager.js","sourceRoot":"","sources":["../../src/internal/EntityDataManager.ts"],"names":[],"mappings":"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"}
@@ -13,12 +13,12 @@ export interface FieldTransformer<T> {
13
13
  * Map from concrete EntityFieldDefinition implementation class name to field transformer.
14
14
  */
15
15
  export type FieldTransformerMap = Map<string, FieldTransformer<any>>;
16
- export declare const getDatabaseFieldForEntityField: <TFields extends Record<string, any>>(entityConfiguration: EntityConfiguration<TFields>, entityField: keyof TFields) => string;
17
- export declare const transformDatabaseObjectToFields: <TFields extends Record<string, any>>(entityConfiguration: EntityConfiguration<TFields>, fieldTransformerMap: FieldTransformerMap, databaseObject: {
16
+ export declare const getDatabaseFieldForEntityField: <TFields extends Record<string, any>, TIDField extends keyof TFields>(entityConfiguration: EntityConfiguration<TFields, TIDField>, entityField: keyof TFields) => string;
17
+ export declare const transformDatabaseObjectToFields: <TFields extends Record<string, any>, TIDField extends keyof TFields>(entityConfiguration: EntityConfiguration<TFields, TIDField>, fieldTransformerMap: FieldTransformerMap, databaseObject: {
18
18
  [key: string]: any;
19
19
  }) => Readonly<TFields>;
20
- export declare const transformFieldsToDatabaseObject: <TFields extends Record<string, any>>(entityConfiguration: EntityConfiguration<TFields>, fieldTransformerMap: FieldTransformerMap, fields: Readonly<Partial<TFields>>) => object;
21
- export declare const transformCacheObjectToFields: <TFields extends Record<string, any>>(entityConfiguration: EntityConfiguration<TFields>, fieldTransformerMap: FieldTransformerMap, cacheObject: {
20
+ export declare const transformFieldsToDatabaseObject: <TFields extends Record<string, any>, TIDField extends keyof TFields>(entityConfiguration: EntityConfiguration<TFields, TIDField>, fieldTransformerMap: FieldTransformerMap, fields: Readonly<Partial<TFields>>) => object;
21
+ export declare const transformCacheObjectToFields: <TFields extends Record<string, any>, TIDField extends keyof TFields>(entityConfiguration: EntityConfiguration<TFields, TIDField>, fieldTransformerMap: FieldTransformerMap, cacheObject: {
22
22
  [key: string]: any;
23
23
  }) => Readonly<TFields>;
24
- export declare const transformFieldsToCacheObject: <TFields extends Record<string, any>>(entityConfiguration: EntityConfiguration<TFields>, fieldTransformerMap: FieldTransformerMap, fields: Readonly<Partial<TFields>>) => object;
24
+ export declare const transformFieldsToCacheObject: <TFields extends Record<string, any>, TIDField extends keyof TFields>(entityConfiguration: EntityConfiguration<TFields, TIDField>, fieldTransformerMap: FieldTransformerMap, fields: Readonly<Partial<TFields>>) => object;
@@ -1 +1 @@
1
- {"version":3,"file":"EntityFieldTransformationUtils.js","sourceRoot":"","sources":["../../src/internal/EntityFieldTransformationUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EntityFieldTransformationUtils.js","sourceRoot":"","sources":["../../src/internal/EntityFieldTransformationUtils.ts"],"names":[],"mappings":"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"}