@expo/entity 0.39.0 → 0.41.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 (175) hide show
  1. package/build/AuthorizationResultBasedEntityAssociationLoader.d.ts +99 -0
  2. package/build/AuthorizationResultBasedEntityAssociationLoader.js +122 -0
  3. package/build/AuthorizationResultBasedEntityAssociationLoader.js.map +1 -0
  4. package/build/AuthorizationResultBasedEntityLoader.d.ts +1 -1
  5. package/build/AuthorizationResultBasedEntityLoader.js.map +1 -1
  6. package/build/{EntityMutator.d.ts → AuthorizationResultBasedEntityMutator.d.ts} +5 -17
  7. package/build/{EntityMutator.js → AuthorizationResultBasedEntityMutator.js} +22 -48
  8. package/build/AuthorizationResultBasedEntityMutator.js.map +1 -0
  9. package/build/EnforcingEntityAssociationLoader.d.ts +79 -0
  10. package/build/EnforcingEntityAssociationLoader.js +62 -0
  11. package/build/EnforcingEntityAssociationLoader.js.map +1 -0
  12. package/build/EnforcingEntityCreator.d.ts +24 -0
  13. package/build/EnforcingEntityCreator.js +32 -0
  14. package/build/EnforcingEntityCreator.js.map +1 -0
  15. package/build/EnforcingEntityDeleter.d.ts +17 -0
  16. package/build/EnforcingEntityDeleter.js +22 -0
  17. package/build/EnforcingEntityDeleter.js.map +1 -0
  18. package/build/EnforcingEntityUpdater.d.ts +24 -0
  19. package/build/EnforcingEntityUpdater.js +32 -0
  20. package/build/EnforcingEntityUpdater.js.map +1 -0
  21. package/build/Entity.d.ts +26 -8
  22. package/build/Entity.js +38 -25
  23. package/build/Entity.js.map +1 -1
  24. package/build/EntityAssociationLoader.d.ts +12 -91
  25. package/build/EntityAssociationLoader.js +20 -126
  26. package/build/EntityAssociationLoader.js.map +1 -1
  27. package/build/EntityCreator.d.ts +27 -0
  28. package/build/EntityCreator.js +39 -0
  29. package/build/EntityCreator.js.map +1 -0
  30. package/build/EntityDeleter.d.ts +27 -0
  31. package/build/EntityDeleter.js +40 -0
  32. package/build/EntityDeleter.js.map +1 -0
  33. package/build/EntityLoader.d.ts +4 -14
  34. package/build/EntityLoader.js +7 -20
  35. package/build/EntityLoader.js.map +1 -1
  36. package/build/EntityLoaderFactory.d.ts +2 -2
  37. package/build/EntityLoaderFactory.js +4 -2
  38. package/build/EntityLoaderFactory.js.map +1 -1
  39. package/build/EntityMutatorFactory.d.ts +4 -4
  40. package/build/EntityMutatorFactory.js +4 -4
  41. package/build/EntityMutatorFactory.js.map +1 -1
  42. package/build/EntitySecondaryCacheLoader.d.ts +3 -3
  43. package/build/EntitySecondaryCacheLoader.js +1 -3
  44. package/build/EntitySecondaryCacheLoader.js.map +1 -1
  45. package/build/EntityUpdater.d.ts +27 -0
  46. package/build/EntityUpdater.js +40 -0
  47. package/build/EntityUpdater.js.map +1 -0
  48. package/build/ReadonlyEntity.d.ts +24 -5
  49. package/build/ReadonlyEntity.js +33 -7
  50. package/build/ReadonlyEntity.js.map +1 -1
  51. package/build/ViewerScopedEntityLoaderFactory.d.ts +2 -2
  52. package/build/ViewerScopedEntityLoaderFactory.js.map +1 -1
  53. package/build/ViewerScopedEntityMutatorFactory.d.ts +4 -4
  54. package/build/ViewerScopedEntityMutatorFactory.js.map +1 -1
  55. package/build/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.d.ts +1 -0
  56. package/build/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.js +242 -0
  57. package/build/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.js.map +1 -0
  58. package/build/__tests__/{EntityLoader-constructor-test.js → AuthorizationResultBasedEntityLoader-constructor-test.js} +10 -10
  59. package/build/__tests__/AuthorizationResultBasedEntityLoader-constructor-test.js.map +1 -0
  60. package/build/__tests__/AuthorizationResultBasedEntityLoader-test.d.ts +1 -0
  61. package/build/__tests__/AuthorizationResultBasedEntityLoader-test.js +401 -0
  62. package/build/__tests__/AuthorizationResultBasedEntityLoader-test.js.map +1 -0
  63. package/build/__tests__/EnforcingEntityAssociationLoader-test.d.ts +1 -0
  64. package/build/__tests__/EnforcingEntityAssociationLoader-test.js +115 -0
  65. package/build/__tests__/EnforcingEntityAssociationLoader-test.js.map +1 -0
  66. package/build/__tests__/Entity-test.js +63 -5
  67. package/build/__tests__/Entity-test.js.map +1 -1
  68. package/build/__tests__/EntityAssociationLoader-test.js +14 -184
  69. package/build/__tests__/EntityAssociationLoader-test.js.map +1 -1
  70. package/build/__tests__/EntityCommonUseCases-test.js +34 -20
  71. package/build/__tests__/EntityCommonUseCases-test.js.map +1 -1
  72. package/build/__tests__/EntityCompanion-test.js +17 -7
  73. package/build/__tests__/EntityCompanion-test.js.map +1 -1
  74. package/build/__tests__/EntityEdges-test.js +57 -71
  75. package/build/__tests__/EntityEdges-test.js.map +1 -1
  76. package/build/__tests__/EntityLoader-test.js +22 -386
  77. package/build/__tests__/EntityLoader-test.js.map +1 -1
  78. package/build/__tests__/EntityMutator-MutationCacheConsistency-test.js +6 -9
  79. package/build/__tests__/EntityMutator-MutationCacheConsistency-test.js.map +1 -1
  80. package/build/__tests__/EntityMutator-test.js +67 -70
  81. package/build/__tests__/EntityMutator-test.js.map +1 -1
  82. package/build/__tests__/EntityPrivacyPolicy-test.js +17 -7
  83. package/build/__tests__/EntityPrivacyPolicy-test.js.map +1 -1
  84. package/build/__tests__/EntitySecondaryCacheLoader-test.js +7 -7
  85. package/build/__tests__/EntitySecondaryCacheLoader-test.js.map +1 -1
  86. package/build/__tests__/EntitySelfReferentialEdges-test.js +47 -81
  87. package/build/__tests__/EntitySelfReferentialEdges-test.js.map +1 -1
  88. package/build/__tests__/ReadonlyEntity-test.js +40 -7
  89. package/build/__tests__/ReadonlyEntity-test.js.map +1 -1
  90. package/build/__tests__/cases/TwoEntitySameTableDisjointRows-test.js +6 -10
  91. package/build/__tests__/cases/TwoEntitySameTableDisjointRows-test.js.map +1 -1
  92. package/build/__tests__/cases/TwoEntitySameTableOverlappingRows-test.js +10 -22
  93. package/build/__tests__/cases/TwoEntitySameTableOverlappingRows-test.js.map +1 -1
  94. package/build/errors/EntityCacheAdapterError.js +17 -7
  95. package/build/errors/EntityCacheAdapterError.js.map +1 -1
  96. package/build/errors/EntityDatabaseAdapterError.js +17 -7
  97. package/build/errors/EntityDatabaseAdapterError.js.map +1 -1
  98. package/build/errors/EntityInvalidFieldValueError.js +17 -7
  99. package/build/errors/EntityInvalidFieldValueError.js.map +1 -1
  100. package/build/errors/EntityNotAuthorizedError.js +17 -7
  101. package/build/errors/EntityNotAuthorizedError.js.map +1 -1
  102. package/build/errors/EntityNotFoundError.js +17 -7
  103. package/build/errors/EntityNotFoundError.js.map +1 -1
  104. package/build/index.d.ts +19 -11
  105. package/build/index.js +24 -7
  106. package/build/index.js.map +1 -1
  107. package/build/internal/__tests__/EntityDataManager-test.js +42 -32
  108. package/build/internal/__tests__/EntityDataManager-test.js.map +1 -1
  109. package/build/internal/__tests__/ReadThroughEntityCache-test.js +17 -7
  110. package/build/internal/__tests__/ReadThroughEntityCache-test.js.map +1 -1
  111. package/build/rules/AlwaysAllowPrivacyPolicyRule.js +17 -7
  112. package/build/rules/AlwaysAllowPrivacyPolicyRule.js.map +1 -1
  113. package/build/rules/AlwaysDenyPrivacyPolicyRule.js +17 -7
  114. package/build/rules/AlwaysDenyPrivacyPolicyRule.js.map +1 -1
  115. package/build/rules/AlwaysSkipPrivacyPolicyRule.js +17 -7
  116. package/build/rules/AlwaysSkipPrivacyPolicyRule.js.map +1 -1
  117. package/build/utils/EntityPrivacyUtils.js +4 -8
  118. package/build/utils/EntityPrivacyUtils.js.map +1 -1
  119. package/build/utils/__tests__/EntityPrivacyUtils-test.js +38 -28
  120. package/build/utils/__tests__/EntityPrivacyUtils-test.js.map +1 -1
  121. package/build/utils/__tests__/canViewerDeleteAsync-edgeDeletionPermissionInferenceBehavior-test.js +5 -5
  122. package/build/utils/__tests__/canViewerDeleteAsync-edgeDeletionPermissionInferenceBehavior-test.js.map +1 -1
  123. package/build/utils/testing/StubDatabaseAdapter.js +17 -7
  124. package/build/utils/testing/StubDatabaseAdapter.js.map +1 -1
  125. package/build/utils/testing/StubQueryContextProvider.d.ts +1 -3
  126. package/build/utils/testing/StubQueryContextProvider.js +1 -3
  127. package/build/utils/testing/StubQueryContextProvider.js.map +1 -1
  128. package/build/utils/testing/createUnitTestEntityCompanionProvider.js +2 -1
  129. package/build/utils/testing/createUnitTestEntityCompanionProvider.js.map +1 -1
  130. package/package.json +19 -3
  131. package/src/AuthorizationResultBasedEntityAssociationLoader.ts +490 -0
  132. package/src/AuthorizationResultBasedEntityLoader.ts +1 -1
  133. package/src/{EntityMutator.ts → AuthorizationResultBasedEntityMutator.ts} +62 -58
  134. package/src/EnforcingEntityAssociationLoader.ts +390 -0
  135. package/src/EnforcingEntityCreator.ts +55 -0
  136. package/src/EnforcingEntityDeleter.ts +44 -0
  137. package/src/EnforcingEntityUpdater.ts +55 -0
  138. package/src/Entity.ts +140 -29
  139. package/src/EntityAssociationLoader.ts +38 -495
  140. package/src/EntityCreator.ts +73 -0
  141. package/src/EntityDeleter.ts +73 -0
  142. package/src/EntityLoader.ts +10 -49
  143. package/src/EntityLoaderFactory.ts +20 -3
  144. package/src/EntityMutatorFactory.ts +32 -7
  145. package/src/EntitySecondaryCacheLoader.ts +5 -7
  146. package/src/EntityUpdater.ts +73 -0
  147. package/src/ReadonlyEntity.ts +121 -7
  148. package/src/ViewerScopedEntityLoaderFactory.ts +9 -2
  149. package/src/ViewerScopedEntityMutatorFactory.ts +29 -4
  150. package/src/__tests__/AuthorizationResultBasedEntityAssociationLoader-test.ts +323 -0
  151. package/src/__tests__/{EntityLoader-constructor-test.ts → AuthorizationResultBasedEntityLoader-constructor-test.ts} +16 -9
  152. package/src/__tests__/AuthorizationResultBasedEntityLoader-test.ts +730 -0
  153. package/src/__tests__/EnforcingEntityAssociationLoader-test.ts +253 -0
  154. package/src/__tests__/Entity-test.ts +77 -5
  155. package/src/__tests__/EntityAssociationLoader-test.ts +15 -260
  156. package/src/__tests__/EntityCommonUseCases-test.ts +24 -15
  157. package/src/__tests__/EntityEdges-test.ts +44 -64
  158. package/src/__tests__/EntityLoader-test.ts +29 -681
  159. package/src/__tests__/EntityMutator-MutationCacheConsistency-test.ts +8 -9
  160. package/src/__tests__/EntityMutator-test.ts +116 -103
  161. package/src/__tests__/EntitySecondaryCacheLoader-test.ts +7 -7
  162. package/src/__tests__/EntitySelfReferentialEdges-test.ts +65 -81
  163. package/src/__tests__/ReadonlyEntity-test.ts +47 -7
  164. package/src/__tests__/cases/TwoEntitySameTableDisjointRows-test.ts +15 -15
  165. package/src/__tests__/cases/TwoEntitySameTableOverlappingRows-test.ts +19 -22
  166. package/src/index.ts +19 -11
  167. package/src/internal/__tests__/EntityDataManager-test.ts +25 -25
  168. package/src/utils/EntityPrivacyUtils.ts +10 -13
  169. package/src/utils/__tests__/EntityPrivacyUtils-test.ts +21 -23
  170. package/src/utils/__tests__/canViewerDeleteAsync-edgeDeletionPermissionInferenceBehavior-test.ts +5 -5
  171. package/src/utils/testing/StubQueryContextProvider.ts +1 -3
  172. package/src/utils/testing/createUnitTestEntityCompanionProvider.ts +3 -1
  173. package/build/EntityMutator.js.map +0 -1
  174. package/build/__tests__/EntityLoader-constructor-test.js.map +0 -1
  175. /package/build/__tests__/{EntityLoader-constructor-test.d.ts → AuthorizationResultBasedEntityLoader-constructor-test.d.ts} +0 -0
@@ -74,11 +74,11 @@ describe(EntityDataManager, () => {
74
74
  const entityDataManager = new EntityDataManager(
75
75
  databaseAdapter,
76
76
  entityCache,
77
- StubQueryContextProvider,
77
+ new StubQueryContextProvider(),
78
78
  new NoOpEntityMetricsAdapter(),
79
79
  TestEntity.name,
80
80
  );
81
- const queryContext = StubQueryContextProvider.getQueryContext();
81
+ const queryContext = new StubQueryContextProvider().getQueryContext();
82
82
 
83
83
  const dbSpy = jest.spyOn(databaseAdapter, 'fetchManyWhereAsync');
84
84
  const cacheSpy = jest.spyOn(entityCache, 'readManyThroughAsync');
@@ -122,11 +122,11 @@ describe(EntityDataManager, () => {
122
122
  const entityDataManager = new EntityDataManager(
123
123
  databaseAdapter,
124
124
  entityCache,
125
- StubQueryContextProvider,
125
+ new StubQueryContextProvider(),
126
126
  new NoOpEntityMetricsAdapter(),
127
127
  TestEntity.name,
128
128
  );
129
- const queryContext = StubQueryContextProvider.getQueryContext();
129
+ const queryContext = new StubQueryContextProvider().getQueryContext();
130
130
 
131
131
  const dbSpy = jest.spyOn(databaseAdapter, 'fetchManyWhereAsync');
132
132
  const cacheSpy = jest.spyOn(entityCache, 'readManyThroughAsync');
@@ -170,16 +170,16 @@ describe(EntityDataManager, () => {
170
170
  const entityDataManager = new EntityDataManager(
171
171
  databaseAdapter,
172
172
  entityCache,
173
- StubQueryContextProvider,
173
+ new StubQueryContextProvider(),
174
174
  new NoOpEntityMetricsAdapter(),
175
175
  TestEntity.name,
176
176
  );
177
- const queryContext = StubQueryContextProvider.getQueryContext();
177
+ const queryContext = new StubQueryContextProvider().getQueryContext();
178
178
  // use second data manager to ensure that cache is hit instead of data loader
179
179
  const entityDataManager2 = new EntityDataManager(
180
180
  databaseAdapter,
181
181
  entityCache,
182
- StubQueryContextProvider,
182
+ new StubQueryContextProvider(),
183
183
  new NoOpEntityMetricsAdapter(),
184
184
  TestEntity.name,
185
185
  );
@@ -214,11 +214,11 @@ describe(EntityDataManager, () => {
214
214
  const entityDataManager = new EntityDataManager(
215
215
  databaseAdapter,
216
216
  entityCache,
217
- StubQueryContextProvider,
217
+ new StubQueryContextProvider(),
218
218
  new NoOpEntityMetricsAdapter(),
219
219
  TestEntity.name,
220
220
  );
221
- const queryContext = StubQueryContextProvider.getQueryContext();
221
+ const queryContext = new StubQueryContextProvider().getQueryContext();
222
222
 
223
223
  const dbSpy = jest.spyOn(databaseAdapter, 'fetchManyWhereAsync');
224
224
  const cacheSpy = jest.spyOn(entityCache, 'readManyThroughAsync');
@@ -250,11 +250,11 @@ describe(EntityDataManager, () => {
250
250
  const entityDataManager = new EntityDataManager(
251
251
  databaseAdapter,
252
252
  entityCache,
253
- StubQueryContextProvider,
253
+ new StubQueryContextProvider(),
254
254
  new NoOpEntityMetricsAdapter(),
255
255
  TestEntity.name,
256
256
  );
257
- const queryContext = StubQueryContextProvider.getQueryContext();
257
+ const queryContext = new StubQueryContextProvider().getQueryContext();
258
258
 
259
259
  const dbSpy = jest.spyOn(databaseAdapter, 'fetchManyWhereAsync');
260
260
  const cacheSpy = jest.spyOn(entityCache, 'readManyThroughAsync');
@@ -294,11 +294,11 @@ describe(EntityDataManager, () => {
294
294
  const entityDataManager = new EntityDataManager(
295
295
  databaseAdapter,
296
296
  entityCache,
297
- StubQueryContextProvider,
297
+ new StubQueryContextProvider(),
298
298
  new NoOpEntityMetricsAdapter(),
299
299
  TestEntity.name,
300
300
  );
301
- const queryContext = StubQueryContextProvider.getQueryContext();
301
+ const queryContext = new StubQueryContextProvider().getQueryContext();
302
302
 
303
303
  const objectInQuestion = objects.get(testEntityConfiguration.tableName)![1]!;
304
304
 
@@ -333,11 +333,11 @@ describe(EntityDataManager, () => {
333
333
  const entityDataManager = new EntityDataManager(
334
334
  databaseAdapter,
335
335
  entityCache,
336
- StubQueryContextProvider,
336
+ new StubQueryContextProvider(),
337
337
  new NoOpEntityMetricsAdapter(),
338
338
  TestEntity.name,
339
339
  );
340
- const queryContext = StubQueryContextProvider.getQueryContext();
340
+ const queryContext = new StubQueryContextProvider().getQueryContext();
341
341
 
342
342
  const objectInQuestion = objects.get(testEntityConfiguration.tableName)![1]!;
343
343
 
@@ -372,7 +372,7 @@ describe(EntityDataManager, () => {
372
372
  const entityDataManager = new EntityDataManager(
373
373
  databaseAdapter,
374
374
  entityCache,
375
- StubQueryContextProvider,
375
+ new StubQueryContextProvider(),
376
376
  new NoOpEntityMetricsAdapter(),
377
377
  TestEntity.name,
378
378
  );
@@ -380,7 +380,7 @@ describe(EntityDataManager, () => {
380
380
  const dbSpy = jest.spyOn(databaseAdapter, 'fetchManyWhereAsync');
381
381
  const cacheSpy = jest.spyOn(entityCache, 'readManyThroughAsync');
382
382
 
383
- const entityDatas = await StubQueryContextProvider.runInTransactionAsync(
383
+ const entityDatas = await new StubQueryContextProvider().runInTransactionAsync(
384
384
  async (queryContext) => {
385
385
  return await entityDataManager.loadManyByFieldEqualingAsync(queryContext, 'customIdField', [
386
386
  '1',
@@ -411,11 +411,11 @@ describe(EntityDataManager, () => {
411
411
  const entityDataManager = new EntityDataManager(
412
412
  databaseAdapter,
413
413
  entityCache,
414
- StubQueryContextProvider,
414
+ new StubQueryContextProvider(),
415
415
  new NoOpEntityMetricsAdapter(),
416
416
  TestEntity.name,
417
417
  );
418
- const queryContext = StubQueryContextProvider.getQueryContext();
418
+ const queryContext = new StubQueryContextProvider().getQueryContext();
419
419
 
420
420
  const dbSpy = jest.spyOn(databaseAdapter, 'fetchManyByFieldEqualityConjunctionAsync');
421
421
  const cacheSpy = jest.spyOn(entityCache, 'readManyThroughAsync');
@@ -457,11 +457,11 @@ describe(EntityDataManager, () => {
457
457
  const entityDataManager = new EntityDataManager(
458
458
  databaseAdapter,
459
459
  entityCache,
460
- StubQueryContextProvider,
460
+ new StubQueryContextProvider(),
461
461
  new NoOpEntityMetricsAdapter(),
462
462
  TestEntity.name,
463
463
  );
464
- const queryContext = StubQueryContextProvider.getQueryContext();
464
+ const queryContext = new StubQueryContextProvider().getQueryContext();
465
465
 
466
466
  await expect(
467
467
  entityDataManager.loadManyByFieldEqualingAsync(queryContext, 'customIdField', ['2']),
@@ -484,11 +484,11 @@ describe(EntityDataManager, () => {
484
484
  const entityDataManager = new EntityDataManager(
485
485
  databaseAdapter,
486
486
  entityCache,
487
- StubQueryContextProvider,
487
+ new StubQueryContextProvider(),
488
488
  metricsAdapter,
489
489
  TestEntity.name,
490
490
  );
491
- const queryContext = StubQueryContextProvider.getQueryContext();
491
+ const queryContext = new StubQueryContextProvider().getQueryContext();
492
492
 
493
493
  await entityDataManager.loadManyByFieldEqualingAsync(queryContext, 'customIdField', ['1']);
494
494
  verify(
@@ -587,11 +587,11 @@ describe(EntityDataManager, () => {
587
587
  const entityDataManager = new EntityDataManager(
588
588
  databaseAdapter,
589
589
  entityCache,
590
- StubQueryContextProvider,
590
+ new StubQueryContextProvider(),
591
591
  new NoOpEntityMetricsAdapter(),
592
592
  TestEntity.name,
593
593
  );
594
- const queryContext = StubQueryContextProvider.getQueryContext();
594
+ const queryContext = new StubQueryContextProvider().getQueryContext();
595
595
 
596
596
  await expect(
597
597
  entityDataManager.loadManyByFieldEqualingAsync(queryContext, 'nullableField', [null as any]),
@@ -330,9 +330,8 @@ async function canViewerDeleteInternalAsync<
330
330
  edgeDeletionPermissionInferenceBehavior ===
331
331
  EntityEdgeDeletionAuthorizationInferenceBehavior.ONE_IMPLIES_ALL
332
332
  ) {
333
- const singleEntityToTestForInboundEdge = await loader
334
- .withAuthorizationResults()
335
- .loadFirstByFieldEqualityConjunctionAsync(
333
+ const singleEntityResultToTestForInboundEdge =
334
+ await loader.loadFirstByFieldEqualityConjunctionAsync(
336
335
  [
337
336
  {
338
337
  fieldName,
@@ -343,18 +342,16 @@ async function canViewerDeleteInternalAsync<
343
342
  ],
344
343
  { orderBy: [] },
345
344
  );
346
- entityResultsToCheckForInboundEdge = singleEntityToTestForInboundEdge
347
- ? [singleEntityToTestForInboundEdge]
345
+ entityResultsToCheckForInboundEdge = singleEntityResultToTestForInboundEdge
346
+ ? [singleEntityResultToTestForInboundEdge]
348
347
  : [];
349
348
  } else {
350
- const entityResultsForInboundEdge = await loader
351
- .withAuthorizationResults()
352
- .loadManyByFieldEqualingAsync(
353
- fieldName,
354
- association.associatedEntityLookupByField
355
- ? sourceEntity.getField(association.associatedEntityLookupByField as any)
356
- : sourceEntity.getID(),
357
- );
349
+ const entityResultsForInboundEdge = await loader.loadManyByFieldEqualingAsync(
350
+ fieldName,
351
+ association.associatedEntityLookupByField
352
+ ? sourceEntity.getField(association.associatedEntityLookupByField as any)
353
+ : sourceEntity.getID(),
354
+ );
358
355
  entityResultsToCheckForInboundEdge = entityResultsForInboundEdge;
359
356
  }
360
357
 
@@ -50,7 +50,7 @@ describe(canViewerUpdateAsync, () => {
50
50
  it('appropriately executes update privacy policy', async () => {
51
51
  const companionProvider = createUnitTestEntityCompanionProvider();
52
52
  const viewerContext = new ViewerContext(companionProvider);
53
- const testEntity = await SimpleTestDenyDeleteEntity.creator(viewerContext).enforceCreateAsync();
53
+ const testEntity = await SimpleTestDenyDeleteEntity.creator(viewerContext).createAsync();
54
54
  const canViewerUpdate = await canViewerUpdateAsync(SimpleTestDenyDeleteEntity, testEntity);
55
55
  expect(canViewerUpdate).toBe(true);
56
56
  const canViewerUpdateResult = await getCanViewerUpdateResultAsync(
@@ -63,7 +63,7 @@ describe(canViewerUpdateAsync, () => {
63
63
  it('denies when policy denies', async () => {
64
64
  const companionProvider = createUnitTestEntityCompanionProvider();
65
65
  const viewerContext = new ViewerContext(companionProvider);
66
- const testEntity = await SimpleTestDenyUpdateEntity.creator(viewerContext).enforceCreateAsync();
66
+ const testEntity = await SimpleTestDenyUpdateEntity.creator(viewerContext).createAsync();
67
67
  const canViewerUpdate = await canViewerUpdateAsync(SimpleTestDenyUpdateEntity, testEntity);
68
68
  expect(canViewerUpdate).toBe(false);
69
69
  const canViewerUpdateResult = await getCanViewerUpdateResultAsync(
@@ -79,8 +79,7 @@ describe(canViewerUpdateAsync, () => {
79
79
  it('rethrows non-authorization errors', async () => {
80
80
  const companionProvider = createUnitTestEntityCompanionProvider();
81
81
  const viewerContext = new ViewerContext(companionProvider);
82
- const testEntity =
83
- await SimpleTestThrowOtherErrorEntity.creator(viewerContext).enforceCreateAsync();
82
+ const testEntity = await SimpleTestThrowOtherErrorEntity.creator(viewerContext).createAsync();
84
83
  await expect(canViewerUpdateAsync(SimpleTestThrowOtherErrorEntity, testEntity)).rejects.toThrow(
85
84
  'update error',
86
85
  );
@@ -94,7 +93,7 @@ describe(canViewerDeleteAsync, () => {
94
93
  it('appropriately executes update privacy policy', async () => {
95
94
  const companionProvider = createUnitTestEntityCompanionProvider();
96
95
  const viewerContext = new ViewerContext(companionProvider);
97
- const testEntity = await SimpleTestDenyUpdateEntity.creator(viewerContext).enforceCreateAsync();
96
+ const testEntity = await SimpleTestDenyUpdateEntity.creator(viewerContext).createAsync();
98
97
  const canViewerDelete = await canViewerDeleteAsync(SimpleTestDenyUpdateEntity, testEntity);
99
98
  expect(canViewerDelete).toBe(true);
100
99
  const canViewerDeleteResult = await getCanViewerDeleteResultAsync(
@@ -107,7 +106,7 @@ describe(canViewerDeleteAsync, () => {
107
106
  it('denies when policy denies', async () => {
108
107
  const companionProvider = createUnitTestEntityCompanionProvider();
109
108
  const viewerContext = new ViewerContext(companionProvider);
110
- const testEntity = await SimpleTestDenyDeleteEntity.creator(viewerContext).enforceCreateAsync();
109
+ const testEntity = await SimpleTestDenyDeleteEntity.creator(viewerContext).createAsync();
111
110
  const canViewerDelete = await canViewerDeleteAsync(SimpleTestDenyDeleteEntity, testEntity);
112
111
  expect(canViewerDelete).toBe(false);
113
112
  const canViewerDeleteResult = await getCanViewerDeleteResultAsync(
@@ -123,11 +122,11 @@ describe(canViewerDeleteAsync, () => {
123
122
  it('denies when recursive policy denies for CASCADE_DELETE', async () => {
124
123
  const companionProvider = createUnitTestEntityCompanionProvider();
125
124
  const viewerContext = new ViewerContext(companionProvider);
126
- const testEntity = await SimpleTestDenyUpdateEntity.creator(viewerContext).enforceCreateAsync();
125
+ const testEntity = await SimpleTestDenyUpdateEntity.creator(viewerContext).createAsync();
127
126
  // add another entity referencing testEntity that would cascade deletion to itself when testEntity is deleted
128
127
  const leafEntity = await LeafDenyDeleteEntity.creator(viewerContext)
129
128
  .setField('simple_test_deny_update_cascade_delete_id', testEntity.getID())
130
- .enforceCreateAsync();
129
+ .createAsync();
131
130
  const canViewerDelete = await canViewerDeleteAsync(SimpleTestDenyUpdateEntity, testEntity);
132
131
  expect(canViewerDelete).toBe(false);
133
132
  const canViewerDeleteResult = await getCanViewerDeleteResultAsync(
@@ -143,11 +142,11 @@ describe(canViewerDeleteAsync, () => {
143
142
  it('denies when recursive policy denies for SET_NULL', async () => {
144
143
  const companionProvider = createUnitTestEntityCompanionProvider();
145
144
  const viewerContext = new ViewerContext(companionProvider);
146
- const testEntity = await SimpleTestDenyUpdateEntity.creator(viewerContext).enforceCreateAsync();
145
+ const testEntity = await SimpleTestDenyUpdateEntity.creator(viewerContext).createAsync();
147
146
  // add another entity referencing testEntity that would set null to its column when testEntity is deleted
148
147
  const leafEntity = await LeafDenyUpdateEntity.creator(viewerContext)
149
148
  .setField('simple_test_deny_update_set_null_id', testEntity.getID())
150
- .enforceCreateAsync();
149
+ .createAsync();
151
150
  const canViewerDelete = await canViewerDeleteAsync(SimpleTestDenyUpdateEntity, testEntity);
152
151
  expect(canViewerDelete).toBe(false);
153
152
  const canViewerDeleteResult = await getCanViewerDeleteResultAsync(
@@ -163,15 +162,15 @@ describe(canViewerDeleteAsync, () => {
163
162
  it('allows when recursive policy allows for CASCADE_DELETE and SET_NULL', async () => {
164
163
  const companionProvider = createUnitTestEntityCompanionProvider();
165
164
  const viewerContext = new ViewerContext(companionProvider);
166
- const testEntity = await SimpleTestDenyUpdateEntity.creator(viewerContext).enforceCreateAsync();
165
+ const testEntity = await SimpleTestDenyUpdateEntity.creator(viewerContext).createAsync();
167
166
  // add another entity referencing testEntity that would cascade deletion to itself when testEntity is deleted
168
167
  await LeafDenyUpdateEntity.creator(viewerContext)
169
168
  .setField('simple_test_deny_update_cascade_delete_id', testEntity.getID())
170
- .enforceCreateAsync();
169
+ .createAsync();
171
170
  // add another entity referencing testEntity that would set null to its column when testEntity is deleted
172
171
  await LeafDenyDeleteEntity.creator(viewerContext)
173
172
  .setField('simple_test_deny_update_set_null_id', testEntity.getID())
174
- .enforceCreateAsync();
173
+ .createAsync();
175
174
 
176
175
  const canViewerDelete = await canViewerDeleteAsync(SimpleTestDenyUpdateEntity, testEntity);
177
176
  expect(canViewerDelete).toBe(true);
@@ -185,8 +184,7 @@ describe(canViewerDeleteAsync, () => {
185
184
  it('rethrows non-authorization errors', async () => {
186
185
  const companionProvider = createUnitTestEntityCompanionProvider();
187
186
  const viewerContext = new ViewerContext(companionProvider);
188
- const testEntity =
189
- await SimpleTestThrowOtherErrorEntity.creator(viewerContext).enforceCreateAsync();
187
+ const testEntity = await SimpleTestThrowOtherErrorEntity.creator(viewerContext).createAsync();
190
188
  await expect(
191
189
  canViewerDeleteAsync(SimpleTestThrowOtherErrorEntity, testEntity),
192
190
  ).rejects.toThrowError('delete error');
@@ -198,10 +196,10 @@ describe(canViewerDeleteAsync, () => {
198
196
  it('returns false when edge cannot be read', async () => {
199
197
  const companionProvider = createUnitTestEntityCompanionProvider();
200
198
  const viewerContext = new ViewerContext(companionProvider);
201
- const testEntity = await SimpleTestDenyUpdateEntity.creator(viewerContext).enforceCreateAsync();
199
+ const testEntity = await SimpleTestDenyUpdateEntity.creator(viewerContext).createAsync();
202
200
  const leafEntity = await LeafDenyReadEntity.creator(viewerContext)
203
201
  .setField('simple_test_id', testEntity.getID())
204
- .enforceCreateAsync();
202
+ .createAsync();
205
203
  const canViewerDelete = await canViewerDeleteAsync(SimpleTestDenyUpdateEntity, testEntity);
206
204
  expect(canViewerDelete).toBe(false);
207
205
  const canViewerDeleteResult = await getCanViewerDeleteResultAsync(
@@ -217,10 +215,10 @@ describe(canViewerDeleteAsync, () => {
217
215
  it('rethrows non-authorization edge read errors', async () => {
218
216
  const companionProvider = createUnitTestEntityCompanionProvider();
219
217
  const viewerContext = new ViewerContext(companionProvider);
220
- const testEntity = await SimpleTestDenyUpdateEntity.creator(viewerContext).enforceCreateAsync();
218
+ const testEntity = await SimpleTestDenyUpdateEntity.creator(viewerContext).createAsync();
221
219
  await SimpleTestThrowOtherErrorEntity.creator(viewerContext)
222
220
  .setField('simple_test_id', testEntity.getID())
223
- .enforceCreateAsync();
221
+ .createAsync();
224
222
  await expect(canViewerDeleteAsync(SimpleTestDenyUpdateEntity, testEntity)).rejects.toThrowError(
225
223
  'read in cascading delete error',
226
224
  );
@@ -238,10 +236,10 @@ describe(canViewerDeleteAsync, () => {
238
236
  const testEntity = await SimpleTestDenyUpdateEntity.creator(
239
237
  viewerContext,
240
238
  queryContext,
241
- ).enforceCreateAsync();
239
+ ).createAsync();
242
240
  await LeafDenyReadEntity.creator(viewerContext, queryContext)
243
241
  .setField('simple_test_id', testEntity.getID())
244
- .enforceCreateAsync();
242
+ .createAsync();
245
243
  // this would fail if transactions weren't supported or correctly passed through
246
244
  return await canViewerDeleteAsync(SimpleTestDenyUpdateEntity, testEntity, queryContext);
247
245
  },
@@ -254,10 +252,10 @@ describe(canViewerDeleteAsync, () => {
254
252
  const testEntity = await SimpleTestDenyUpdateEntity.creator(
255
253
  viewerContext,
256
254
  queryContext,
257
- ).enforceCreateAsync();
255
+ ).createAsync();
258
256
  await LeafDenyReadEntity.creator(viewerContext, queryContext)
259
257
  .setField('simple_test_id', testEntity.getID())
260
- .enforceCreateAsync();
258
+ .createAsync();
261
259
  // this would fail if transactions weren't supported or correctly passed through
262
260
  return await getCanViewerDeleteResultAsync(
263
261
  SimpleTestDenyUpdateEntity,
@@ -21,20 +21,20 @@ describe(canViewerDeleteAsync, () => {
21
21
  const viewerContext = new ViewerContext(companionProvider);
22
22
 
23
23
  // create root
24
- const testEntity = await TestEntity.creator(viewerContext).enforceCreateAsync();
24
+ const testEntity = await TestEntity.creator(viewerContext).createAsync();
25
25
 
26
26
  // create a bunch of leaves referencing root with
27
27
  // edgeDeletionPermissionInferenceBehavior = EntityEdgeDeletionPermissionInferenceBehavior.ONE_IMPLIES_ALL
28
28
  for (let i = 0; i < 10; i++) {
29
29
  await TestLeafEntity.creator(viewerContext)
30
30
  .setField('test_entity_id', testEntity.getID())
31
- .enforceCreateAsync();
31
+ .createAsync();
32
32
  }
33
33
 
34
34
  for (let i = 0; i < 10; i++) {
35
35
  await TestLeafLookupByFieldEntity.creator(viewerContext)
36
36
  .setField('test_entity_id', testEntity.getID())
37
- .enforceCreateAsync();
37
+ .createAsync();
38
38
  }
39
39
 
40
40
  const testLeafEntityCompanion =
@@ -63,13 +63,13 @@ describe(canViewerDeleteAsync, () => {
63
63
  const viewerContext = new ViewerContext(companionProvider);
64
64
 
65
65
  // create root
66
- const testEntity = await TestEntity.creator(viewerContext).enforceCreateAsync();
66
+ const testEntity = await TestEntity.creator(viewerContext).createAsync();
67
67
 
68
68
  // create a bunch of leaves with no edgeDeletionPermissionInferenceBehavior
69
69
  for (let i = 0; i < 10; i++) {
70
70
  await TestLeafNoInferenceEntity.creator(viewerContext)
71
71
  .setField('test_entity_id', testEntity.getID())
72
- .enforceCreateAsync();
72
+ .createAsync();
73
73
  }
74
74
 
75
75
  const companion =
@@ -1,7 +1,7 @@
1
1
  import { TransactionConfig } from '../../EntityQueryContext';
2
2
  import EntityQueryContextProvider from '../../EntityQueryContextProvider';
3
3
 
4
- export class StubQueryContextProvider extends EntityQueryContextProvider {
4
+ export default class StubQueryContextProvider extends EntityQueryContextProvider {
5
5
  protected getQueryInterface(): any {
6
6
  return {};
7
7
  }
@@ -18,5 +18,3 @@ export class StubQueryContextProvider extends EntityQueryContextProvider {
18
18
  return (transactionScope) => Promise.resolve(transactionScope({}));
19
19
  }
20
20
  }
21
-
22
- export default new StubQueryContextProvider();
@@ -5,6 +5,8 @@ import EntityCompanionProvider from '../../EntityCompanionProvider';
5
5
  import IEntityMetricsAdapter from '../../metrics/IEntityMetricsAdapter';
6
6
  import NoOpEntityMetricsAdapter from '../../metrics/NoOpEntityMetricsAdapter';
7
7
 
8
+ const queryContextProvider = new StubQueryContextProvider();
9
+
8
10
  /**
9
11
  * Entity companion provider for use in unit tests. All database and cache implementations
10
12
  * are replaced with in-memory simulations.
@@ -19,7 +21,7 @@ export const createUnitTestEntityCompanionProvider = (
19
21
  'postgres',
20
22
  {
21
23
  adapterProvider: new StubDatabaseAdapterProvider(),
22
- queryContextProvider: StubQueryContextProvider,
24
+ queryContextProvider,
23
25
  },
24
26
  ],
25
27
  ]),
@@ -1 +0,0 @@
1
- {"version":3,"file":"EntityMutator.js","sourceRoot":"","sources":["../src/EntityMutator.ts"],"names":[],"mappings":";;;;;;AAAA,2CAAgF;AAChF,0DAAkC;AAMlC,mEAAqE;AAErE,6DAK8B;AAS9B,yGAAiF;AACjF,qEAA4E;AAC5E,2EAAmG;AACnG,mDAAuD;AAEvD,MAAe,WAAW;IAeH;IACA;IACA;IACA;IACA;IAQA;IACA;IAOA;IAOA;IAQA;IACA;IArCrB,YACqB,iBAA0C,EAC1C,aAA6B,EAC7B,YAAgC,EAChC,mBAAiD,EACjD,WAOlB,EACkB,aAA6B,EAC7B,kBAMhB,EACgB,gBAMlB,EACkB,mBAOlB,EACkB,eAA+C,EAC/C,cAAqC;QApCrC,sBAAiB,GAAjB,iBAAiB,CAAyB;QAC1C,kBAAa,GAAb,aAAa,CAAgB;QAC7B,iBAAY,GAAZ,YAAY,CAAoB;QAChC,wBAAmB,GAAnB,mBAAmB,CAA8B;QACjD,gBAAW,GAAX,WAAW,CAO7B;QACkB,kBAAa,GAAb,aAAa,CAAgB;QAC7B,uBAAkB,GAAlB,kBAAkB,CAMlC;QACgB,qBAAgB,GAAhB,gBAAgB,CAMlC;QACkB,wBAAmB,GAAnB,mBAAmB,CAOrC;QACkB,oBAAe,GAAf,eAAe,CAAgC;QAC/C,mBAAc,GAAd,cAAc,CAAuB;IACvD,CAAC;IAEM,cAAc,CAAC,MAAwB;QAC/C,KAAK,MAAM,SAAS,IAAI,MAAM,EAAE,CAAC;YAC/B,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;YACrC,MAAM,eAAe,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACvE,IAAA,mBAAS,EAAC,eAAe,EAAE,0CAA0C,SAAS,EAAE,CAAC,CAAC;YAClF,MAAM,YAAY,GAAG,eAAe,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;YACpE,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,MAAM,IAAI,sCAA4B,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;YAClF,CAAC;QACH,CAAC;IACH,CAAC;IAES,KAAK,CAAC,8BAA8B,CAC5C,UAA6F,EAC7F,YAA6C,EAC7C,MAAe,EACf,YAMC;QAED,MAAM,OAAO,CAAC,GAAG,CACf,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAC3B,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,CAAC,CAC/E,CACF,CAAC;IACJ,CAAC;IAES,KAAK,CAAC,4BAA4B,CAC1C,QAEa,EACb,YAA6C,EAC7C,MAAe,EACf,YAA+F;QAE/F,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QACD,MAAM,OAAO,CAAC,GAAG,CACf,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACvB,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,CAAC,CAC7E,CACF,CAAC;IACJ,CAAC;IAES,KAAK,CAAC,4CAA4C,CAC1D,QAQa,EACb,MAAe,EACf,YAA+F;QAE/F,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QACD,MAAM,OAAO,CAAC,GAAG,CACf,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAC1F,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,MAAa,aAaX,SAAQ,WAAmF;IAC1E,eAAe,GAAqB,EAAE,CAAC;IAExD;;;;OAIG;IACH,QAAQ,CAAiD,SAAY,EAAE,KAAiB;QACtF,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,WAAW;QACf,OAAO,MAAM,IAAA,iDAA4B,EACvC,IAAI,CAAC,cAAc,EACnB,iDAAyB,CAAC,MAAM,EAChC,IAAI,CAAC,WAAW,CAAC,IAAI,CACtB,CAAC,IAAI,CAAC,wBAAwB,EAAE,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB;QACtB,OAAO,MAAM,IAAA,4BAAkB,EAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACtD,CAAC;IAEO,KAAK,CAAC,wBAAwB;QACpC,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,uCAAuC,CAAC,CAAC,iBAAiB,EAAE,EAAE,CAC3F,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAC5C,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC/B,YAA6C;QAE7C,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAE1C,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE;YACtF,aAAa,EAAE,IAAI;YACnB,oBAAoB,EAAE,IAAI;SAC3B,CAAC,CAAC;QAEH,MAAM,8BAA8B,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,eAAe,CAAC;YAC1E,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,EAAE,sCAAsC,EAAE,YAAY;YACxF,GAAG,IAAI,CAAC,eAAe;SACF,CAAC,CAAC;QAEzB,MAAM,qBAAqB,GAAG,MAAM,IAAA,qBAAW,EAC7C,IAAI,CAAC,aAAa,CAAC,oBAAoB,CACrC,IAAI,CAAC,aAAa,EAClB,YAAY,EACZ,EAAE,aAAa,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,EACnD,8BAA8B,EAC9B,IAAI,CAAC,cAAc,CACpB,CACF,CAAC;QACF,IAAI,CAAC,qBAAqB,CAAC,EAAE,EAAE,CAAC;YAC9B,OAAO,qBAAqB,CAAC;QAC/B,CAAC;QAED,MAAM,IAAI,CAAC,8BAA8B,CACvC,IAAI,CAAC,kBAAkB,EACvB,YAAY,EACZ,8BAA8B,EAC9B,EAAE,IAAI,EAAE,uCAAkB,CAAC,MAAM,EAAE,CACpC,CAAC;QACF,MAAM,IAAI,CAAC,4BAA4B,CACrC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAC/B,YAAY,EACZ,8BAA8B,EAC9B,EAAE,IAAI,EAAE,uCAAkB,CAAC,MAAM,EAAE,CACpC,CAAC;QACF,MAAM,IAAI,CAAC,4BAA4B,CACrC,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAClC,YAAY,EACZ,8BAA8B,EAC9B,EAAE,IAAI,EAAE,uCAAkB,CAAC,MAAM,EAAE,CACpC,CAAC;QAEF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAEhG,YAAY,CAAC,oCAAoC,CAC/C,YAAY,CAAC,KAAK,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAC5E,CAAC;QAEF,MAAM,6BAA6B,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;QACzF,MAAM,SAAS,GAAG,MAAM,YAAY;aACjC,SAAS,EAAE;aACX,aAAa,CAAC,6BAA6B,CAAC,KAAK,EAAE,CAAC,CAAC;QAExD,MAAM,IAAI,CAAC,4BAA4B,CACrC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EACjC,YAAY,EACZ,SAAS,EACT,EAAE,IAAI,EAAE,uCAAkB,CAAC,MAAM,EAAE,CACpC,CAAC;QACF,MAAM,IAAI,CAAC,4BAA4B,CACrC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAC9B,YAAY,EACZ,SAAS,EACT,EAAE,IAAI,EAAE,uCAAkB,CAAC,MAAM,EAAE,CACpC,CAAC;QAEF,YAAY,CAAC,wBAAwB,CACnC,IAAI,CAAC,4CAA4C,CAAC,IAAI,CACpD,IAAI,EACJ,IAAI,CAAC,gBAAgB,CAAC,WAAW,EACjC,SAAS,EACT,EAAE,IAAI,EAAE,uCAAkB,CAAC,MAAM,EAAE,CACpC,CACF,CAAC;QAEF,OAAO,IAAA,gBAAM,EAAC,SAAS,CAAC,CAAC;IAC3B,CAAC;CACF;AAtID,sCAsIC;AAED;;GAEG;AACH,MAAa,aAaX,SAAQ,WAAmF;IAC1E,cAAc,CAAU;IACxB,eAAe,CAAU;IACzB,aAAa,GAAqB,EAAE,CAAC;IAEtD,YACE,iBAA0C,EAC1C,aAA6B,EAC7B,YAAgC,EAChC,mBAAiD,EACjD,WAOC,EACD,aAA6B,EAC7B,kBAMG,EACH,gBAMC,EACD,mBAOC,EACD,eAA+C,EAC/C,cAAqC,EACrC,cAAuB;QAEvB,KAAK,CACH,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,cAAc,CACf,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,eAAe,GAAG,EAAE,GAAG,cAAc,CAAC,oBAAoB,EAAE,EAAE,CAAC;IACtE,CAAC;IAED;;;;OAIG;IACH,QAAQ,CAAiD,SAAY,EAAE,KAAiB;QACtF,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;QACxC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,WAAW;QACf,OAAO,MAAM,IAAA,iDAA4B,EACvC,IAAI,CAAC,cAAc,EACnB,iDAAyB,CAAC,MAAM,EAChC,IAAI,CAAC,WAAW,CAAC,IAAI,CACtB,CAAC,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB;QACtB,OAAO,MAAM,IAAA,4BAAkB,EAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACtD,CAAC;IAUO,KAAK,CAAC,wBAAwB,CACpC,kBAA2B,EAC3B,oBAAwD;QAExD,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,uCAAuC,CAAC,CAAC,iBAAiB,EAAE,EAAE,CAC3F,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,oBAAoB,CAAC,CACtF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC/B,YAA6C,EAC7C,kBAA2B,EAC3B,oBAAwD;QAExD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACxC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAE7C,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE;YACtF,aAAa,EAAE,IAAI,CAAC,cAAc;YAClC,oBAAoB;SACrB,CAAC,CAAC;QAEH,MAAM,sBAAsB,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC1F,MAAM,qBAAqB,GAAG,MAAM,IAAA,qBAAW,EAC7C,IAAI,CAAC,aAAa,CAAC,oBAAoB,CACrC,IAAI,CAAC,aAAa,EAClB,YAAY,EACZ,EAAE,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE,oBAAoB,EAAE,EAC5D,sBAAsB,EACtB,IAAI,CAAC,cAAc,CACpB,CACF,CAAC;QACF,IAAI,CAAC,qBAAqB,CAAC,EAAE,EAAE,CAAC;YAC9B,OAAO,qBAAqB,CAAC;QAC/B,CAAC;QAED,MAAM,IAAI,CAAC,8BAA8B,CACvC,IAAI,CAAC,kBAAkB,EACvB,YAAY,EACZ,sBAAsB,EACtB,EAAE,IAAI,EAAE,uCAAkB,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE,oBAAoB,EAAE,CAC9F,CAAC;QACF,MAAM,IAAI,CAAC,4BAA4B,CACrC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAC/B,YAAY,EACZ,sBAAsB,EACtB,EAAE,IAAI,EAAE,uCAAkB,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE,oBAAoB,EAAE,CAC9F,CAAC;QACF,MAAM,IAAI,CAAC,4BAA4B,CACrC,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAClC,YAAY,EACZ,sBAAsB,EACtB,EAAE,IAAI,EAAE,uCAAkB,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE,oBAAoB,EAAE,CAC9F,CAAC;QAEF,0CAA0C;QAC1C,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CACpC,YAAY,EACZ,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAChC,sBAAsB,CAAC,KAAK,EAAE,EAC9B,IAAI,CAAC,aAAa,CACnB,CAAC;QACJ,CAAC;QAED,YAAY,CAAC,oCAAoC,CAC/C,YAAY;aACT,KAAK,EAAE;aACP,qBAAqB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,oBAAoB,EAAE,CAAC,CACxF,CAAC;QACF,YAAY,CAAC,oCAAoC,CAC/C,YAAY,CAAC,KAAK,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,CACpF,CAAC;QAEF,MAAM,aAAa,GAAG,MAAM,YAAY;aACrC,SAAS,EAAE;aACX,aAAa,CAAC,sBAAsB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,uDAAuD;QAEzG,MAAM,IAAI,CAAC,4BAA4B,CACrC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EACjC,YAAY,EACZ,aAAa,EACb,EAAE,IAAI,EAAE,uCAAkB,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE,oBAAoB,EAAE,CAC9F,CAAC;QACF,MAAM,IAAI,CAAC,4BAA4B,CACrC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAC9B,YAAY,EACZ,aAAa,EACb,EAAE,IAAI,EAAE,uCAAkB,CAAC,MAAM,EAAE,aAAa,EAAE,IAAI,CAAC,cAAc,EAAE,oBAAoB,EAAE,CAC9F,CAAC;QAEF,YAAY,CAAC,wBAAwB,CACnC,IAAI,CAAC,4CAA4C,CAAC,IAAI,CACpD,IAAI,EACJ,IAAI,CAAC,gBAAgB,CAAC,WAAW,EACjC,aAAa,EACb;YACE,IAAI,EAAE,uCAAkB,CAAC,MAAM;YAC/B,aAAa,EAAE,IAAI,CAAC,cAAc;YAClC,oBAAoB;SACrB,CACF,CACF,CAAC;QAEF,OAAO,IAAA,gBAAM,EAAC,aAAa,CAAC,CAAC;IAC/B,CAAC;IAEO,mBAAmB,CAAC,aAA+B;QACzD,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC;QACjD,IAAI,aAAa,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,UAAU,KAAK,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;YACnF,MAAM,IAAI,KAAK,CAAC,kDAAkD,IAAI,CAAC,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;CACF;AApOD,sCAoOC;AAED;;GAEG;AACH,MAAa,aAaX,SAAQ,WAAmF;IAuCxE;IAtCnB,YACE,iBAA0C,EAC1C,aAA6B,EAC7B,YAAgC,EAChC,mBAAiD,EACjD,WAOC,EACD,aAA6B,EAC7B,kBAMG,EACH,gBAMC,EACD,mBAOC,EACD,eAA+C,EAC/C,cAAqC,EACpB,MAAe;QAEhC,KAAK,CACH,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,WAAW,EACX,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,cAAc,CACf,CAAC;QAde,WAAM,GAAN,MAAM,CAAS;IAelC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW;QACf,OAAO,MAAM,IAAA,iDAA4B,EACvC,IAAI,CAAC,cAAc,EACnB,iDAAyB,CAAC,MAAM,EAChC,IAAI,CAAC,WAAW,CAAC,IAAI,CACtB,CAAC,IAAI,CAAC,wBAAwB,CAAC,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB;QACtB,MAAM,IAAA,4BAAkB,EAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/C,CAAC;IAEO,KAAK,CAAC,wBAAwB,CACpC,iDAA8D,EAC9D,oBAA6B,EAC7B,oBAAwD;QAExD,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,uCAAuC,CAAC,CAAC,iBAAiB,EAAE,EAAE,CAC3F,IAAI,CAAC,mBAAmB,CACtB,iBAAiB,EACjB,iDAAiD,EACjD,oBAAoB,EACpB,oBAAoB,CACrB,CACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC/B,YAA6C,EAC7C,iDAA8D,EAC9D,oBAA6B,EAC7B,oBAAwD;QAExD,MAAM,qBAAqB,GAAG,MAAM,IAAA,qBAAW,EAC7C,IAAI,CAAC,aAAa,CAAC,oBAAoB,CACrC,IAAI,CAAC,aAAa,EAClB,YAAY,EACZ,EAAE,aAAa,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAC7C,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,cAAc,CACpB,CACF,CAAC;QACF,IAAI,CAAC,qBAAqB,CAAC,EAAE,EAAE,CAAC;YAC9B,OAAO,qBAAqB,CAAC;QAC/B,CAAC;QAED,MAAM,IAAI,CAAC,yCAAyC,CAClD,IAAI,CAAC,MAAM,EACX,YAAY,EACZ,iDAAiD,EACjD,oBAAoB,CACrB,CAAC;QAEF,MAAM,IAAI,CAAC,4BAA4B,CACrC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAC/B,YAAY,EACZ,IAAI,CAAC,MAAM,EACX,EAAE,IAAI,EAAE,uCAAkB,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAC1D,CAAC;QACF,MAAM,IAAI,CAAC,4BAA4B,CACrC,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAClC,YAAY,EACZ,IAAI,CAAC,MAAM,EACX,EAAE,IAAI,EAAE,uCAAkB,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAC1D,CAAC;QAEF,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC1B,MAAM,IAAI,CAAC,eAAe,CAAC,WAAW,CACpC,YAAY,EACZ,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAChC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CACpB,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE;YACtF,aAAa,EAAE,IAAI;YACnB,oBAAoB;SACrB,CAAC,CAAC;QACH,YAAY,CAAC,oCAAoC,CAC/C,YAAY;aACT,KAAK,EAAE;aACP,qBAAqB,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,CAAC,CAChF,CAAC;QAEF,MAAM,IAAI,CAAC,4BAA4B,CACrC,IAAI,CAAC,gBAAgB,CAAC,WAAW,EACjC,YAAY,EACZ,IAAI,CAAC,MAAM,EACX,EAAE,IAAI,EAAE,uCAAkB,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAC1D,CAAC;QACF,MAAM,IAAI,CAAC,4BAA4B,CACrC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAC9B,YAAY,EACZ,IAAI,CAAC,MAAM,EACX,EAAE,IAAI,EAAE,uCAAkB,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAC1D,CAAC;QAEF,YAAY,CAAC,wBAAwB,CACnC,IAAI,CAAC,4CAA4C,CAAC,IAAI,CACpD,IAAI,EACJ,IAAI,CAAC,gBAAgB,CAAC,WAAW,EACjC,IAAI,CAAC,MAAM,EACX,EAAE,IAAI,EAAE,uCAAkB,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAC1D,CACF,CAAC;QAEF,OAAO,IAAA,gBAAM,GAAE,CAAC;IAClB,CAAC;IAED;;;;;;;;;;;;;OAaG;IACK,KAAK,CAAC,yCAAyC,CACrD,MAAe,EACf,YAA6C,EAC7C,0BAAuC,EACvC,oBAAwD;QAExD,mFAAmF;QACnF,IAAI,0BAA0B,CAAC,GAAG,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC,EAAE,CAAC;YACjE,OAAO;QACT,CAAC;QACD,0BAA0B,CAAC,GAAG,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC;QAE7D,MAAM,mBAAmB,GAAG,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CACtE,MAAM,CAAC,WAON,CACF,CAAC,yBAAyB,CAAC;QAC5B,MAAM,mBAAmB,GAAG,mBAAmB,CAAC,mBAAmB,CAAC;QACpE,MAAM,YAAY,GAAG,mBAAmB,CAAC,YAAY,CAAC;QAEtD,MAAM,uBAAuB,GAAG;YAC9B,MAAM;YACN,oBAAoB;SACrB,CAAC;QAEF,MAAM,OAAO,CAAC,GAAG,CACf,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE;YACrC,MAAM,aAAa,GAAG,MAAM;iBACzB,gBAAgB,EAAE;iBAClB,sCAAsC,CAAC,WAAW,CAAC;iBACnD,gBAAgB,EAAE,CAAC;YACtB,MAAM,cAAc,GAAG,MAAM;iBAC1B,gBAAgB,EAAE;iBAClB,sCAAsC,CAAC,WAAW,CAAC;iBACnD,iBAAiB,EAAE,CAAC;YAEvB,OAAO,MAAM,IAAA,kBAAW,EACtB,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,yBAAyB;iBAChF,mBAAmB,CAAC,MAAM,EAC7B,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,EAAE;gBACnC,MAAM,WAAW,GAAG,eAAe,CAAC,WAAW,CAAC;gBAChD,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,OAAO;gBACT,CAAC;gBAED,MAAM,uBAAuB,GAAG,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAC1E,WAAW,CAAC,qBAAqB,CAClC,CAAC,yBAAyB,CAAC,mBAAmB,CAAC;gBAChD,IAAI,uBAAuB,KAAK,mBAAmB,EAAE,CAAC;oBACpD,OAAO;gBACT,CAAC;gBAED,MAAM,wBAAwB,GAAG,MAAM,aAAa;qBACjD,OAAO,CAAC,YAAY,EAAE;oBACrB,aAAa,EAAE,IAAI;oBACnB,oBAAoB,EAAE,uBAAuB;iBAC9C,CAAC;qBACD,SAAS,EAAE;qBACX,4BAA4B,CAC3B,SAAS,EACT,WAAW,CAAC,6BAA6B;oBACvC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,6BAAoC,CAAC;oBACnE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CACnB,CAAC;gBAEJ,QAAQ,WAAW,CAAC,oBAAoB,EAAE,CAAC;oBACzC,KAAK,kDAA0B,CAAC,oCAAoC,CAAC,CAAC,CAAC;wBACrE,MAAM,OAAO,CAAC,GAAG,CACf,wBAAwB,CAAC,GAAG,CAAC,CAAC,sBAAsB,EAAE,EAAE,CACtD,IAAA,4BAAkB,EAChB,cAAc;6BACX,SAAS,CAAC,sBAAsB,EAAE,YAAY,CAAC;6BAC/C,wBAAwB,CACvB,0BAA0B;wBAC1B,0BAA0B,CAAC,IAAI,EAAE,4BAA4B;wBAC7D,uBAAuB,CACxB,CACJ,CACF,CACF,CAAC;wBACF,MAAM;oBACR,CAAC;oBACD,KAAK,kDAA0B,CAAC,8BAA8B,CAAC,CAAC,CAAC;wBAC/D,MAAM,OAAO,CAAC,GAAG,CACf,wBAAwB,CAAC,GAAG,CAAC,CAAC,sBAAsB,EAAE,EAAE,CACtD,IAAA,4BAAkB,EAChB,cAAc;6BACX,SAAS,CAAC,sBAAsB,EAAE,YAAY,CAAC;6BAC/C,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAExB,0BAA0B,CAC3B,CAAC,wBAAwB,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAC5D,CACF,CACF,CAAC;wBACF,MAAM;oBACR,CAAC;oBACD,KAAK,kDAA0B,CAAC,QAAQ,CAAC,CAAC,CAAC;wBACzC,MAAM,OAAO,CAAC,GAAG,CACf,wBAAwB,CAAC,GAAG,CAAC,CAAC,sBAAsB,EAAE,EAAE,CACtD,IAAA,4BAAkB,EAChB,cAAc;6BACX,SAAS,CAAC,sBAAsB,EAAE,YAAY,CAAC;6BAC/C,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAExB,0BAA0B,CAC3B,CAAC,wBAAwB,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAC7D,CACF,CACF,CAAC;wBACF,MAAM;oBACR,CAAC;oBACD,KAAK,kDAA0B,CAAC,cAAc,CAAC,CAAC,CAAC;wBAC/C,MAAM,OAAO,CAAC,GAAG,CACf,wBAAwB,CAAC,GAAG,CAAC,CAAC,sBAAsB,EAAE,EAAE,CACtD,IAAA,4BAAkB,EAChB,cAAc;6BACX,SAAS,CAAC,sBAAsB,EAAE,YAAY,CAAC;6BAC/C,wBAAwB,CACvB,0BAA0B;wBAC1B,0BAA0B,CAAC,KAAK,EAChC,uBAAuB,CACxB,CACJ,CACF,CACF,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;CACF;AAjVD,sCAiVC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"EntityLoader-constructor-test.js","sourceRoot":"","sources":["../../src/__tests__/EntityLoader-constructor-test.ts"],"names":[],"mappings":"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"}