@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
@@ -1,178 +0,0 @@
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
- const ts_mockito_1 = require("ts-mockito");
7
- const EntityAssociationLoader_1 = __importDefault(require("../EntityAssociationLoader"));
8
- const EntityLoader_1 = __importDefault(require("../EntityLoader"));
9
- const ReadonlyEntity_1 = __importDefault(require("../ReadonlyEntity"));
10
- const ViewerContext_1 = __importDefault(require("../ViewerContext"));
11
- const SimpleTestEntity_1 = __importDefault(require("../testfixtures/SimpleTestEntity"));
12
- const TestEntity_1 = __importDefault(require("../testfixtures/TestEntity"));
13
- const createUnitTestEntityCompanionProvider_1 = require("../utils/testing/createUnitTestEntityCompanionProvider");
14
- describe(ReadonlyEntity_1.default, () => {
15
- describe('getID', () => {
16
- it('returns correct value', () => {
17
- const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
18
- const data = {
19
- id: 'what',
20
- };
21
- const testEntity = new SimpleTestEntity_1.default({
22
- viewerContext,
23
- id: 'what',
24
- databaseFields: data,
25
- selectedFields: data,
26
- });
27
- expect(testEntity.getID()).toEqual('what');
28
- });
29
- });
30
- describe('toString', () => {
31
- it('returns correct value', () => {
32
- const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
33
- const data = {
34
- id: 'what',
35
- };
36
- const testEntity = new SimpleTestEntity_1.default({
37
- viewerContext,
38
- id: 'what',
39
- databaseFields: data,
40
- selectedFields: data,
41
- });
42
- expect(testEntity.toString()).toEqual('SimpleTestEntity[what]');
43
- });
44
- });
45
- describe('getUniqueIdentifier', () => {
46
- it('returns a different value for two different entities of the same type', () => {
47
- const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
48
- const testEntity = new SimpleTestEntity_1.default({
49
- viewerContext,
50
- id: '1',
51
- databaseFields: {
52
- id: '1',
53
- },
54
- selectedFields: {
55
- id: '1',
56
- },
57
- });
58
- const testEntity2 = new SimpleTestEntity_1.default({
59
- viewerContext,
60
- id: '2',
61
- databaseFields: {
62
- id: '2',
63
- },
64
- selectedFields: {
65
- id: '2',
66
- },
67
- });
68
- expect(testEntity.getUniqueIdentifier()).not.toEqual(testEntity2.getUniqueIdentifier());
69
- });
70
- it('returns the same value even if different viewer context', () => {
71
- const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
72
- const viewerContext2 = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
73
- const data = { id: '1' };
74
- const testEntity = new SimpleTestEntity_1.default({
75
- viewerContext,
76
- id: '1',
77
- databaseFields: data,
78
- selectedFields: data,
79
- });
80
- const testEntity2 = new SimpleTestEntity_1.default({
81
- viewerContext: viewerContext2,
82
- id: '1',
83
- databaseFields: data,
84
- selectedFields: data,
85
- });
86
- expect(testEntity.getUniqueIdentifier()).toEqual(testEntity2.getUniqueIdentifier());
87
- });
88
- it('returns a different value for different entities even if same ID', () => {
89
- const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
90
- const data = { id: '1' };
91
- const testEntity = new SimpleTestEntity_1.default({
92
- viewerContext,
93
- id: 'what',
94
- databaseFields: data,
95
- selectedFields: data,
96
- });
97
- const data2 = {
98
- customIdField: '1',
99
- testIndexedField: '2',
100
- stringField: '3',
101
- intField: 4,
102
- dateField: new Date(),
103
- nullableField: null,
104
- };
105
- const testEntity2 = new TestEntity_1.default({
106
- viewerContext,
107
- id: '1',
108
- databaseFields: data2,
109
- selectedFields: data2,
110
- });
111
- expect(testEntity.getUniqueIdentifier()).not.toEqual(testEntity2.getUniqueIdentifier());
112
- });
113
- });
114
- it('cannot be created without an ID', () => {
115
- const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
116
- const dataWithoutID = {};
117
- expect(() => {
118
- // eslint-disable-next-line no-new
119
- new SimpleTestEntity_1.default({
120
- viewerContext,
121
- id: undefined,
122
- databaseFields: dataWithoutID,
123
- selectedFields: dataWithoutID,
124
- });
125
- }).toThrow();
126
- });
127
- it('returns correct viewerContext from instantiation', () => {
128
- const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
129
- const data = {
130
- id: 'what',
131
- };
132
- const testEntity = new SimpleTestEntity_1.default({
133
- viewerContext,
134
- id: 'what',
135
- databaseFields: data,
136
- selectedFields: data,
137
- });
138
- expect(testEntity.getViewerContext()).toBe(viewerContext);
139
- });
140
- it('returns correct data for field getters', () => {
141
- const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
142
- const data = {
143
- id: 'what',
144
- };
145
- const testEntity = new SimpleTestEntity_1.default({
146
- viewerContext,
147
- id: 'what',
148
- databaseFields: data,
149
- selectedFields: data,
150
- });
151
- expect(testEntity.getField('id')).toEqual('what');
152
- expect(testEntity.getAllFields()).toEqual(data);
153
- });
154
- describe('associationLoader', () => {
155
- it('returns a new association loader', () => {
156
- const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
157
- const viewerContext = new ViewerContext_1.default(companionProvider);
158
- const data = {
159
- id: 'what',
160
- };
161
- const testEntity = new SimpleTestEntity_1.default({
162
- viewerContext,
163
- id: 'what',
164
- databaseFields: data,
165
- selectedFields: data,
166
- });
167
- expect(testEntity.associationLoader()).toBeInstanceOf(EntityAssociationLoader_1.default);
168
- });
169
- });
170
- describe('loader', () => {
171
- it('creates a new EntityLoader', async () => {
172
- const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
173
- const viewerContext = new ViewerContext_1.default(companionProvider);
174
- expect(SimpleTestEntity_1.default.loader(viewerContext)).toBeInstanceOf(EntityLoader_1.default);
175
- });
176
- });
177
- });
178
- //# sourceMappingURL=ReadonlyEntity-test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ReadonlyEntity-test.js","sourceRoot":"","sources":["../../src/__tests__/ReadonlyEntity-test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,30 +0,0 @@
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
- const EntityQueryContext_1 = require("../EntityQueryContext");
7
- const ViewerContext_1 = __importDefault(require("../ViewerContext"));
8
- const createUnitTestEntityCompanionProvider_1 = require("../utils/testing/createUnitTestEntityCompanionProvider");
9
- describe(ViewerContext_1.default, () => {
10
- describe('getQueryContextForDatabaseAdaptorFlavor', () => {
11
- it('creates a new regular query context', () => {
12
- const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
13
- const viewerContext = new ViewerContext_1.default(companionProvider);
14
- const queryContext = viewerContext.getQueryContextForDatabaseAdaptorFlavor('postgres');
15
- expect(queryContext).toBeInstanceOf(EntityQueryContext_1.EntityQueryContext);
16
- expect(queryContext.isInTransaction()).toBe(false);
17
- });
18
- });
19
- describe('runInTransactionForDatabaseAdaptorFlavorAsync', () => {
20
- it('creates a new transactional query context', async () => {
21
- const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
22
- const viewerContext = new ViewerContext_1.default(companionProvider);
23
- const didCreateTransaction = await viewerContext.runInTransactionForDatabaseAdaptorFlavorAsync('postgres', async (queryContext) => {
24
- return queryContext.isInTransaction();
25
- });
26
- expect(didCreateTransaction).toBe(true);
27
- });
28
- });
29
- });
30
- //# sourceMappingURL=ViewerContext-test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ViewerContext-test.js","sourceRoot":"","sources":["../../src/__tests__/ViewerContext-test.ts"],"names":[],"mappings":";;;;;AAAA,8DAA2D;AAC3D,qEAA6C;AAC7C,kHAA+G;AAE/G,QAAQ,CAAC,uBAAa,EAAE,GAAG,EAAE;IAC3B,QAAQ,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACvD,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC7C,MAAM,iBAAiB,GAAG,IAAA,6EAAqC,GAAE,CAAC;YAClE,MAAM,aAAa,GAAG,IAAI,uBAAa,CAAC,iBAAiB,CAAC,CAAC;YAC3D,MAAM,YAAY,GAAG,aAAa,CAAC,uCAAuC,CAAC,UAAU,CAAC,CAAC;YACvF,MAAM,CAAC,YAAY,CAAC,CAAC,cAAc,CAAC,uCAAkB,CAAC,CAAC;YACxD,MAAM,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,+CAA+C,EAAE,GAAG,EAAE;QAC7D,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YACzD,MAAM,iBAAiB,GAAG,IAAA,6EAAqC,GAAE,CAAC;YAClE,MAAM,aAAa,GAAG,IAAI,uBAAa,CAAC,iBAAiB,CAAC,CAAC;YAC3D,MAAM,oBAAoB,GACxB,MAAM,aAAa,CAAC,6CAA6C,CAC/D,UAAU,EACV,KAAK,EAAE,YAAY,EAAE,EAAE;gBACrB,OAAO,YAAY,CAAC,eAAe,EAAE,CAAC;YACxC,CAAC,CACF,CAAC;YACJ,MAAM,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,20 +0,0 @@
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
- const ts_mockito_1 = require("ts-mockito");
7
- const ViewerContext_1 = __importDefault(require("../ViewerContext"));
8
- const ViewerScopedEntityCompanion_1 = __importDefault(require("../ViewerScopedEntityCompanion"));
9
- const ViewerScopedEntityLoaderFactory_1 = __importDefault(require("../ViewerScopedEntityLoaderFactory"));
10
- const ViewerScopedEntityMutatorFactory_1 = __importDefault(require("../ViewerScopedEntityMutatorFactory"));
11
- describe(ViewerScopedEntityCompanion_1.default, () => {
12
- it('returns viewer scoped loader and mutator factory', () => {
13
- const vc = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
14
- const entityCompanion = (0, ts_mockito_1.mock)();
15
- const viewerScopedEntityCompanion = new ViewerScopedEntityCompanion_1.default(entityCompanion, vc);
16
- expect(viewerScopedEntityCompanion.getLoaderFactory()).toBeInstanceOf(ViewerScopedEntityLoaderFactory_1.default);
17
- expect(viewerScopedEntityCompanion.getMutatorFactory()).toBeInstanceOf(ViewerScopedEntityMutatorFactory_1.default);
18
- });
19
- });
20
- //# sourceMappingURL=ViewerScopedEntityCompanion-test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ViewerScopedEntityCompanion-test.js","sourceRoot":"","sources":["../../src/__tests__/ViewerScopedEntityCompanion-test.ts"],"names":[],"mappings":";;;;;AAAA,2CAA4C;AAG5C,qEAA6C;AAC7C,iGAAyE;AACzE,yGAAiF;AACjF,2GAAmF;AAGnF,QAAQ,CAAC,qCAA2B,EAAE,GAAG,EAAE;IACzC,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,EAAE,GAAG,IAAA,qBAAQ,EAAC,IAAA,iBAAI,EAAC,uBAAa,CAAC,CAAC,CAAC;QACzC,MAAM,eAAe,GACnB,IAAA,iBAAI,GASD,CAAC;QACN,MAAM,2BAA2B,GAAG,IAAI,qCAA2B,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;QACzF,MAAM,CAAC,2BAA2B,CAAC,gBAAgB,EAAE,CAAC,CAAC,cAAc,CACnE,yCAA+B,CAChC,CAAC;QACF,MAAM,CAAC,2BAA2B,CAAC,iBAAiB,EAAE,CAAC,CAAC,cAAc,CACpE,0CAAgC,CACjC,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,20 +0,0 @@
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
- const ts_mockito_1 = require("ts-mockito");
7
- const EntityCompanionProvider_1 = __importDefault(require("../EntityCompanionProvider"));
8
- const ViewerContext_1 = __importDefault(require("../ViewerContext"));
9
- const ViewerScopedEntityCompanion_1 = __importDefault(require("../ViewerScopedEntityCompanion"));
10
- const ViewerScopedEntityCompanionProvider_1 = __importDefault(require("../ViewerScopedEntityCompanionProvider"));
11
- const TestEntity_1 = __importDefault(require("../testfixtures/TestEntity"));
12
- describe(ViewerScopedEntityCompanionProvider_1.default, () => {
13
- it('returns viewer scoped entity companion', () => {
14
- const vc = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
15
- const entityCompanionProvider = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(EntityCompanionProvider_1.default));
16
- const viewerScopedEntityCompanionProvider = new ViewerScopedEntityCompanionProvider_1.default(entityCompanionProvider, vc);
17
- expect(viewerScopedEntityCompanionProvider.getViewerScopedCompanionForEntity(TestEntity_1.default)).toBeInstanceOf(ViewerScopedEntityCompanion_1.default);
18
- });
19
- });
20
- //# sourceMappingURL=ViewerScopedEntityCompanionProvider-test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ViewerScopedEntityCompanionProvider-test.js","sourceRoot":"","sources":["../../src/__tests__/ViewerScopedEntityCompanionProvider-test.ts"],"names":[],"mappings":";;;;;AAAA,2CAA4C;AAE5C,yFAAiE;AACjE,qEAA6C;AAC7C,iGAAyE;AACzE,iHAAyF;AACzF,4EAAoD;AAEpD,QAAQ,CAAC,6CAAmC,EAAE,GAAG,EAAE;IACjD,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,EAAE,GAAG,IAAA,qBAAQ,EAAC,IAAA,iBAAI,EAAC,uBAAa,CAAC,CAAC,CAAC;QACzC,MAAM,uBAAuB,GAAG,IAAA,qBAAQ,EAAC,IAAA,iBAAI,EAAC,iCAAuB,CAAC,CAAC,CAAC;QACxE,MAAM,mCAAmC,GAAG,IAAI,6CAAmC,CACjF,uBAAuB,EACvB,EAAE,CACH,CAAC;QACF,MAAM,CACJ,mCAAmC,CAAC,iCAAiC,CAAC,oBAAU,CAAC,CAClF,CAAC,cAAc,CAAC,qCAA2B,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,23 +0,0 @@
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
- const ts_mockito_1 = require("ts-mockito");
7
- const EntityLoaderFactory_1 = __importDefault(require("../EntityLoaderFactory"));
8
- const EntityQueryContext_1 = require("../EntityQueryContext");
9
- const ViewerContext_1 = __importDefault(require("../ViewerContext"));
10
- const ViewerScopedEntityLoaderFactory_1 = __importDefault(require("../ViewerScopedEntityLoaderFactory"));
11
- describe(ViewerScopedEntityLoaderFactory_1.default, () => {
12
- it('correctly scopes viewer to entity loads', async () => {
13
- const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
14
- const privacyPolicyEvaluationContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)());
15
- const queryContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(EntityQueryContext_1.EntityQueryContext));
16
- const baseLoader = (0, ts_mockito_1.mock)(EntityLoaderFactory_1.default);
17
- const baseLoaderInstance = (0, ts_mockito_1.instance)(baseLoader);
18
- const viewerScopedEntityLoader = new ViewerScopedEntityLoaderFactory_1.default(baseLoaderInstance, viewerContext);
19
- viewerScopedEntityLoader.forLoad(queryContext, privacyPolicyEvaluationContext);
20
- (0, ts_mockito_1.verify)(baseLoader.forLoad(viewerContext, queryContext, privacyPolicyEvaluationContext)).once();
21
- });
22
- });
23
- //# sourceMappingURL=ViewerScopedEntityLoaderFactory-test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ViewerScopedEntityLoaderFactory-test.js","sourceRoot":"","sources":["../../src/__tests__/ViewerScopedEntityLoaderFactory-test.ts"],"names":[],"mappings":";;;;;AAAA,2CAAoD;AAEpD,iFAAyD;AAEzD,8DAA2D;AAC3D,qEAA6C;AAC7C,yGAAiF;AAEjF,QAAQ,CAAC,yCAA+B,EAAE,GAAG,EAAE;IAC7C,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,aAAa,GAAG,IAAA,qBAAQ,EAAC,IAAA,iBAAI,EAAC,uBAAa,CAAC,CAAC,CAAC;QACpD,MAAM,8BAA8B,GAClC,IAAA,qBAAQ,EAAC,IAAA,iBAAI,GAAiE,CAAC,CAAC;QAClF,MAAM,YAAY,GAAG,IAAA,qBAAQ,EAAC,IAAA,iBAAI,EAAC,uCAAkB,CAAC,CAAC,CAAC;QACxD,MAAM,UAAU,GAAG,IAAA,iBAAI,EAAoD,6BAAmB,CAAC,CAAC;QAChG,MAAM,kBAAkB,GAAG,IAAA,qBAAQ,EAAC,UAAU,CAAC,CAAC;QAEhD,MAAM,wBAAwB,GAAG,IAAI,yCAA+B,CAOlE,kBAAkB,EAAE,aAAa,CAAC,CAAC;QAErC,wBAAwB,CAAC,OAAO,CAAC,YAAY,EAAE,8BAA8B,CAAC,CAAC;QAE/E,IAAA,mBAAM,EAAC,UAAU,CAAC,OAAO,CAAC,aAAa,EAAE,YAAY,EAAE,8BAA8B,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACjG,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,22 +0,0 @@
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
- const ts_mockito_1 = require("ts-mockito");
7
- const EntityMutatorFactory_1 = __importDefault(require("../EntityMutatorFactory"));
8
- const EntityQueryContext_1 = require("../EntityQueryContext");
9
- const ViewerContext_1 = __importDefault(require("../ViewerContext"));
10
- const ViewerScopedEntityMutatorFactory_1 = __importDefault(require("../ViewerScopedEntityMutatorFactory"));
11
- describe(ViewerScopedEntityMutatorFactory_1.default, () => {
12
- it('correctly scopes viewer to entity mutations', async () => {
13
- const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
14
- const queryContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(EntityQueryContext_1.EntityQueryContext));
15
- const baseMutatorFactory = (0, ts_mockito_1.mock)(EntityMutatorFactory_1.default);
16
- const baseMutatorFactoryInstance = (0, ts_mockito_1.instance)(baseMutatorFactory);
17
- const viewerScopedEntityLoader = new ViewerScopedEntityMutatorFactory_1.default(baseMutatorFactoryInstance, viewerContext);
18
- viewerScopedEntityLoader.forCreate(queryContext);
19
- (0, ts_mockito_1.verify)(baseMutatorFactory.forCreate(viewerContext, queryContext)).once();
20
- });
21
- });
22
- //# sourceMappingURL=ViewerScopedEntityMutatorFactory-test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ViewerScopedEntityMutatorFactory-test.js","sourceRoot":"","sources":["../../src/__tests__/ViewerScopedEntityMutatorFactory-test.ts"],"names":[],"mappings":";;;;;AAAA,2CAAoD;AAEpD,mFAA2D;AAC3D,8DAA2D;AAC3D,qEAA6C;AAC7C,2GAAmF;AAGnF,QAAQ,CAAC,0CAAgC,EAAE,GAAG,EAAE;IAC9C,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,aAAa,GAAG,IAAA,qBAAQ,EAAC,IAAA,iBAAI,EAAC,uBAAa,CAAC,CAAC,CAAC;QACpD,MAAM,YAAY,GAAG,IAAA,qBAAQ,EAAC,IAAA,iBAAI,EAAC,uCAAkB,CAAC,CAAC,CAAC;QACxD,MAAM,kBAAkB,GACtB,IAAA,iBAAI,EAEF,8BAAoB,CAAC,CAAC;QAC1B,MAAM,0BAA0B,GAAG,IAAA,qBAAQ,EAAC,kBAAkB,CAAC,CAAC;QAEhE,MAAM,wBAAwB,GAAG,IAAI,0CAAgC,CAOnE,0BAA0B,EAAE,aAAa,CAAC,CAAC;QAE7C,wBAAwB,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QAEjD,IAAA,mBAAM,EAAC,kBAAkB,CAAC,SAAS,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,129 +0,0 @@
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
- const Entity_1 = __importDefault(require("../../Entity"));
7
- const EntityConfiguration_1 = __importDefault(require("../../EntityConfiguration"));
8
- const EntityFields_1 = require("../../EntityFields");
9
- const EntityPrivacyPolicy_1 = __importDefault(require("../../EntityPrivacyPolicy"));
10
- const ViewerContext_1 = __importDefault(require("../../ViewerContext"));
11
- const entityUtils_1 = require("../../entityUtils");
12
- const AlwaysAllowPrivacyPolicyRule_1 = __importDefault(require("../../rules/AlwaysAllowPrivacyPolicyRule"));
13
- const createUnitTestEntityCompanionProvider_1 = require("../../utils/testing/createUnitTestEntityCompanionProvider");
14
- describe('Two entities backed by the same table', () => {
15
- test('load by different types', async () => {
16
- const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
17
- const viewerContext = new ViewerContext_1.default(companionProvider);
18
- const one = await OneTestEntity.creator(viewerContext)
19
- .enforcing()
20
- .setField('entity_type', EntityType.ONE)
21
- .setField('common_other_field', 'wat')
22
- .createAsync();
23
- const two = await TwoTestEntity.creator(viewerContext)
24
- .enforcing()
25
- .setField('entity_type', EntityType.TWO)
26
- .setField('other_field', 'blah')
27
- .setField('common_other_field', 'wat')
28
- .createAsync();
29
- expect(one).toBeInstanceOf(OneTestEntity);
30
- expect(two).toBeInstanceOf(TwoTestEntity);
31
- await expect(TwoTestEntity.loader(viewerContext).enforcing().loadByIDAsync(one.getID())).rejects.toThrowError('TwoTestEntity must be instantiated with two data');
32
- await expect(OneTestEntity.loader(viewerContext).enforcing().loadByIDAsync(two.getID())).rejects.toThrowError('OneTestEntity must be instantiated with one data');
33
- const manyResults = await OneTestEntity.loader(viewerContext)
34
- .withAuthorizationResults()
35
- .loadManyByFieldEqualingAsync('common_other_field', 'wat');
36
- const successfulManyResults = (0, entityUtils_1.successfulResults)(manyResults);
37
- const failedManyResults = (0, entityUtils_1.failedResults)(manyResults);
38
- expect(successfulManyResults).toHaveLength(1);
39
- expect(failedManyResults).toHaveLength(1);
40
- expect(successfulManyResults[0].enforceValue().getID()).toEqual(one.getID());
41
- expect(failedManyResults[0].enforceError().message).toEqual('OneTestEntity must be instantiated with one data');
42
- const fieldEqualityConjunctionResults = await OneTestEntity.loader(viewerContext)
43
- .withAuthorizationResults()
44
- .loadManyByFieldEqualityConjunctionAsync([
45
- {
46
- fieldName: 'common_other_field',
47
- fieldValue: 'wat',
48
- },
49
- ]);
50
- const successfulfieldEqualityConjunctionResultsResults = (0, entityUtils_1.successfulResults)(fieldEqualityConjunctionResults);
51
- const failedfieldEqualityConjunctionResultsResults = (0, entityUtils_1.failedResults)(fieldEqualityConjunctionResults);
52
- expect(successfulfieldEqualityConjunctionResultsResults).toHaveLength(1);
53
- expect(failedfieldEqualityConjunctionResultsResults).toHaveLength(1);
54
- });
55
- });
56
- var EntityType;
57
- (function (EntityType) {
58
- EntityType[EntityType["ONE"] = 0] = "ONE";
59
- EntityType[EntityType["TWO"] = 1] = "TWO";
60
- })(EntityType || (EntityType = {}));
61
- const testEntityConfiguration = new EntityConfiguration_1.default({
62
- idField: 'id',
63
- tableName: 'entities',
64
- schema: {
65
- id: new EntityFields_1.UUIDField({
66
- columnName: 'custom_id',
67
- cache: true,
68
- }),
69
- other_field: new EntityFields_1.StringField({
70
- columnName: 'other_field',
71
- }),
72
- common_other_field: new EntityFields_1.StringField({
73
- columnName: 'common_other_field',
74
- }),
75
- entity_type: new EntityFields_1.StrictEnumField({
76
- columnName: 'entity_type',
77
- enum: EntityType,
78
- }),
79
- },
80
- databaseAdapterFlavor: 'postgres',
81
- cacheAdapterFlavor: 'redis',
82
- });
83
- class TestEntityPrivacyPolicy extends EntityPrivacyPolicy_1.default {
84
- readRules = [
85
- new AlwaysAllowPrivacyPolicyRule_1.default(),
86
- ];
87
- createRules = [
88
- new AlwaysAllowPrivacyPolicyRule_1.default(),
89
- ];
90
- updateRules = [
91
- new AlwaysAllowPrivacyPolicyRule_1.default(),
92
- ];
93
- deleteRules = [
94
- new AlwaysAllowPrivacyPolicyRule_1.default(),
95
- ];
96
- }
97
- class OneTestEntity extends Entity_1.default {
98
- constructor(constructorParams) {
99
- if (constructorParams.selectedFields.entity_type !== EntityType.ONE) {
100
- throw new Error('OneTestEntity must be instantiated with one data');
101
- }
102
- super(constructorParams);
103
- }
104
- static defineCompanionDefinition() {
105
- return {
106
- entityClass: OneTestEntity,
107
- entityConfiguration: testEntityConfiguration,
108
- privacyPolicyClass: TestEntityPrivacyPolicy,
109
- entitySelectedFields: ['id', 'entity_type', 'common_other_field'],
110
- };
111
- }
112
- }
113
- class TwoTestEntity extends Entity_1.default {
114
- constructor(constructorParams) {
115
- if (constructorParams.selectedFields.entity_type !== EntityType.TWO) {
116
- throw new Error('TwoTestEntity must be instantiated with two data');
117
- }
118
- super(constructorParams);
119
- }
120
- static defineCompanionDefinition() {
121
- return {
122
- entityClass: TwoTestEntity,
123
- entityConfiguration: testEntityConfiguration,
124
- privacyPolicyClass: TestEntityPrivacyPolicy,
125
- entitySelectedFields: ['id', 'other_field', 'common_other_field', 'entity_type'],
126
- };
127
- }
128
- }
129
- //# sourceMappingURL=TwoEntitySameTableDisjointRows-test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TwoEntitySameTableDisjointRows-test.js","sourceRoot":"","sources":["../../../src/__tests__/cases/TwoEntitySameTableDisjointRows-test.ts"],"names":[],"mappings":"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"}
@@ -1,136 +0,0 @@
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
- const Entity_1 = __importDefault(require("../../Entity"));
7
- const EntityConfiguration_1 = __importDefault(require("../../EntityConfiguration"));
8
- const EntityFields_1 = require("../../EntityFields");
9
- const EntityPrivacyPolicy_1 = __importDefault(require("../../EntityPrivacyPolicy"));
10
- const ViewerContext_1 = __importDefault(require("../../ViewerContext"));
11
- const AlwaysAllowPrivacyPolicyRule_1 = __importDefault(require("../../rules/AlwaysAllowPrivacyPolicyRule"));
12
- const createUnitTestEntityCompanionProvider_1 = require("../../utils/testing/createUnitTestEntityCompanionProvider");
13
- describe('Two entities backed by the same table', () => {
14
- test('mutate through different types and keep consistent cache and dataloader', async () => {
15
- const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
16
- const viewerContext = new ViewerContext_1.default(companionProvider);
17
- const entity1 = await OneTestEntity.creator(viewerContext)
18
- .enforcing()
19
- .setField('fake_field', 'hello')
20
- .createAsync();
21
- expect(entity1).toBeInstanceOf(OneTestEntity);
22
- const entity2 = await TwoTestEntity.loader(viewerContext)
23
- .enforcing()
24
- .loadByIDAsync(entity1.getID());
25
- expect(entity2).toBeInstanceOf(TwoTestEntity);
26
- const updated2 = await TwoTestEntity.updater(entity2)
27
- .enforcing()
28
- .setField('fake_field', 'world')
29
- .setField('other_field', 'wat')
30
- .updateAsync();
31
- expect(updated2.getAllFields()).toMatchObject({
32
- id: updated2.getID(),
33
- other_field: 'wat',
34
- fake_field: 'world',
35
- });
36
- const loaded1 = await OneTestEntity.loader(viewerContext)
37
- .enforcing()
38
- .loadByIDAsync(entity1.getID());
39
- expect(loaded1.getAllFields()).toMatchObject({
40
- id: updated2.getID(),
41
- fake_field: 'world',
42
- });
43
- });
44
- test('cached field that differs between the two to test invalidation', async () => {
45
- const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
46
- const viewerContext = new ViewerContext_1.default(companionProvider);
47
- const entity = await TwoTestEntity.creator(viewerContext)
48
- .enforcing()
49
- .setField('fake_field', 'hello')
50
- .setField('other_field', 'huh')
51
- .createAsync();
52
- const loadedEntity = await TwoTestEntity.loader(viewerContext)
53
- .enforcing()
54
- .loadByFieldEqualingAsync('other_field', 'huh');
55
- expect(loadedEntity?.getAllFields()).toMatchObject({
56
- id: entity.getID(),
57
- fake_field: 'hello',
58
- other_field: 'huh',
59
- });
60
- const loaded1 = await OneTestEntity.loader(viewerContext)
61
- .enforcing()
62
- .loadByIDAsync(entity.getID());
63
- await OneTestEntity.updater(loaded1).enforcing().setField('fake_field', 'world').updateAsync();
64
- const loaded2 = await TwoTestEntity.loader(viewerContext)
65
- .enforcing()
66
- .loadByFieldEqualingAsync('other_field', 'huh');
67
- expect(loaded2?.getAllFields()).toMatchObject({
68
- id: entity.getID(),
69
- fake_field: 'world',
70
- other_field: 'huh',
71
- });
72
- const loaded22 = await TwoTestEntity.loader(viewerContext)
73
- .enforcing()
74
- .loadByFieldEqualingAsync('fake_field', 'world');
75
- expect(loaded22?.getAllFields()).toMatchObject({
76
- id: entity.getID(),
77
- fake_field: 'world',
78
- other_field: 'huh',
79
- });
80
- });
81
- });
82
- const testEntityConfiguration = new EntityConfiguration_1.default({
83
- idField: 'id',
84
- tableName: 'entities',
85
- schema: {
86
- id: new EntityFields_1.UUIDField({
87
- columnName: 'custom_id',
88
- cache: true,
89
- }),
90
- other_field: new EntityFields_1.StringField({
91
- columnName: 'other_field',
92
- cache: true,
93
- }),
94
- fake_field: new EntityFields_1.StringField({
95
- columnName: 'fake_field',
96
- cache: true,
97
- }),
98
- },
99
- databaseAdapterFlavor: 'postgres',
100
- cacheAdapterFlavor: 'redis',
101
- });
102
- class TestEntityPrivacyPolicy extends EntityPrivacyPolicy_1.default {
103
- readRules = [
104
- new AlwaysAllowPrivacyPolicyRule_1.default(),
105
- ];
106
- createRules = [
107
- new AlwaysAllowPrivacyPolicyRule_1.default(),
108
- ];
109
- updateRules = [
110
- new AlwaysAllowPrivacyPolicyRule_1.default(),
111
- ];
112
- deleteRules = [
113
- new AlwaysAllowPrivacyPolicyRule_1.default(),
114
- ];
115
- }
116
- class OneTestEntity extends Entity_1.default {
117
- static defineCompanionDefinition() {
118
- return {
119
- entityClass: OneTestEntity,
120
- entityConfiguration: testEntityConfiguration,
121
- privacyPolicyClass: TestEntityPrivacyPolicy,
122
- entitySelectedFields: ['id', 'fake_field'],
123
- };
124
- }
125
- }
126
- class TwoTestEntity extends Entity_1.default {
127
- static defineCompanionDefinition() {
128
- return {
129
- entityClass: TwoTestEntity,
130
- entityConfiguration: testEntityConfiguration,
131
- privacyPolicyClass: TestEntityPrivacyPolicy,
132
- entitySelectedFields: ['id', 'other_field', 'fake_field'],
133
- };
134
- }
135
- }
136
- //# sourceMappingURL=TwoEntitySameTableOverlappingRows-test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TwoEntitySameTableOverlappingRows-test.js","sourceRoot":"","sources":["../../../src/__tests__/cases/TwoEntitySameTableOverlappingRows-test.ts"],"names":[],"mappings":"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"}