@expo/entity 0.18.0 → 0.22.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 (85) hide show
  1. package/build/Entity.js +8 -2
  2. package/build/Entity.js.map +1 -1
  3. package/build/EntityCompanion.d.ts +5 -0
  4. package/build/EntityCompanion.js +8 -1
  5. package/build/EntityCompanion.js.map +1 -1
  6. package/build/EntityCompanionProvider.d.ts +1 -1
  7. package/build/EntityCompanionProvider.js.map +1 -1
  8. package/build/EntityLoader.d.ts +3 -1
  9. package/build/EntityLoader.js +5 -4
  10. package/build/EntityLoader.js.map +1 -1
  11. package/build/EntityLoaderFactory.d.ts +3 -1
  12. package/build/EntityLoaderFactory.js +3 -2
  13. package/build/EntityLoaderFactory.js.map +1 -1
  14. package/build/EntityMutationInfo.d.ts +26 -0
  15. package/build/EntityMutationInfo.js +10 -0
  16. package/build/EntityMutationInfo.js.map +1 -0
  17. package/build/EntityMutationTriggerConfiguration.d.ts +3 -3
  18. package/build/EntityMutationValidator.d.ts +2 -2
  19. package/build/EntityMutationValidator.js.map +1 -1
  20. package/build/EntityMutator.d.ts +4 -15
  21. package/build/EntityMutator.js +48 -44
  22. package/build/EntityMutator.js.map +1 -1
  23. package/build/EntityPrivacyPolicy.d.ts +5 -4
  24. package/build/EntityPrivacyPolicy.js +60 -12
  25. package/build/EntityPrivacyPolicy.js.map +1 -1
  26. package/build/EntityQueryContext.d.ts +24 -0
  27. package/build/EntityQueryContext.js +43 -0
  28. package/build/EntityQueryContext.js.map +1 -1
  29. package/build/EntityQueryContextProvider.js +1 -0
  30. package/build/EntityQueryContextProvider.js.map +1 -1
  31. package/build/ViewerScopedEntityCompanion.d.ts +5 -0
  32. package/build/ViewerScopedEntityCompanion.js +6 -0
  33. package/build/ViewerScopedEntityCompanion.js.map +1 -1
  34. package/build/__tests__/EntityEdges-test.js +99 -3
  35. package/build/__tests__/EntityEdges-test.js.map +1 -1
  36. package/build/__tests__/EntityLoader-constructor-test.js +3 -2
  37. package/build/__tests__/EntityLoader-constructor-test.js.map +1 -1
  38. package/build/__tests__/EntityLoader-test.js +19 -11
  39. package/build/__tests__/EntityLoader-test.js.map +1 -1
  40. package/build/__tests__/EntityMutator-MutationCacheConsistency-test.d.ts +1 -0
  41. package/build/__tests__/EntityMutator-MutationCacheConsistency-test.js +81 -0
  42. package/build/__tests__/EntityMutator-MutationCacheConsistency-test.js.map +1 -0
  43. package/build/__tests__/EntityMutator-test.js +16 -14
  44. package/build/__tests__/EntityMutator-test.js.map +1 -1
  45. package/build/__tests__/EntityPrivacyPolicy-test.js +119 -43
  46. package/build/__tests__/EntityPrivacyPolicy-test.js.map +1 -1
  47. package/build/__tests__/EntityQueryContext-test.d.ts +1 -0
  48. package/build/__tests__/EntityQueryContext-test.js +56 -0
  49. package/build/__tests__/EntityQueryContext-test.js.map +1 -0
  50. package/build/__tests__/EntitySecondaryCacheLoader-test.js +1 -1
  51. package/build/__tests__/EntitySecondaryCacheLoader-test.js.map +1 -1
  52. package/build/index.d.ts +1 -0
  53. package/build/index.js +1 -0
  54. package/build/index.js.map +1 -1
  55. package/build/metrics/IEntityMetricsAdapter.d.ts +16 -0
  56. package/build/metrics/IEntityMetricsAdapter.js +6 -1
  57. package/build/metrics/IEntityMetricsAdapter.js.map +1 -1
  58. package/build/metrics/NoOpEntityMetricsAdapter.d.ts +2 -1
  59. package/build/metrics/NoOpEntityMetricsAdapter.js +1 -0
  60. package/build/metrics/NoOpEntityMetricsAdapter.js.map +1 -1
  61. package/package.json +1 -1
  62. package/src/Entity.ts +10 -2
  63. package/src/EntityCompanion.ts +10 -2
  64. package/src/EntityCompanionProvider.ts +1 -1
  65. package/src/EntityLoader.ts +9 -4
  66. package/src/EntityLoaderFactory.ts +5 -2
  67. package/src/EntityMutationInfo.ts +47 -0
  68. package/src/EntityMutationTriggerConfiguration.ts +3 -3
  69. package/src/EntityMutationValidator.ts +8 -2
  70. package/src/EntityMutator.ts +91 -71
  71. package/src/EntityPrivacyPolicy.ts +76 -18
  72. package/src/EntityQueryContext.ts +54 -0
  73. package/src/EntityQueryContextProvider.ts +1 -0
  74. package/src/ViewerScopedEntityCompanion.ts +8 -0
  75. package/src/__tests__/EntityEdges-test.ts +163 -9
  76. package/src/__tests__/EntityLoader-constructor-test.ts +4 -2
  77. package/src/__tests__/EntityLoader-test.ts +39 -11
  78. package/src/__tests__/EntityMutator-MutationCacheConsistency-test.ts +105 -0
  79. package/src/__tests__/EntityMutator-test.ts +38 -13
  80. package/src/__tests__/EntityPrivacyPolicy-test.ts +189 -52
  81. package/src/__tests__/EntityQueryContext-test.ts +82 -0
  82. package/src/__tests__/EntitySecondaryCacheLoader-test.ts +1 -0
  83. package/src/index.ts +1 -0
  84. package/src/metrics/IEntityMetricsAdapter.ts +23 -0
  85. package/src/metrics/NoOpEntityMetricsAdapter.ts +2 -0
@@ -31,6 +31,7 @@ const EntityPrivacyPolicy_1 = __importStar(require("../EntityPrivacyPolicy"));
31
31
  const EntityQueryContext_1 = require("../EntityQueryContext");
32
32
  const ViewerContext_1 = __importDefault(require("../ViewerContext"));
33
33
  const EntityNotAuthorizedError_1 = __importDefault(require("../errors/EntityNotAuthorizedError"));
34
+ const IEntityMetricsAdapter_1 = require("../metrics/IEntityMetricsAdapter");
34
35
  const AlwaysAllowPrivacyPolicyRule_1 = __importDefault(require("../rules/AlwaysAllowPrivacyPolicyRule"));
35
36
  const AlwaysDenyPrivacyPolicyRule_1 = __importDefault(require("../rules/AlwaysDenyPrivacyPolicyRule"));
36
37
  const AlwaysSkipPrivacyPolicyRule_1 = __importDefault(require("../rules/AlwaysSkipPrivacyPolicyRule"));
@@ -190,101 +191,176 @@ const blahEntityCompanionDefinition = new EntityCompanionProvider_1.EntityCompan
190
191
  privacyPolicyClass: AlwaysDenyPolicy,
191
192
  });
192
193
  describe(EntityPrivacyPolicy_1.default, () => {
193
- it('throws EntityNotAuthorizedError when deny', async () => {
194
- const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
195
- const queryContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(EntityQueryContext_1.EntityQueryContext));
196
- const entity = new BlahEntity(viewerContext, { id: '1' });
197
- const policy = new AlwaysDenyPolicy();
198
- await expect(policy.authorizeCreateAsync(viewerContext, queryContext, entity)).rejects.toBeInstanceOf(EntityNotAuthorizedError_1.default);
199
- });
200
- it('returns entity when allowed', async () => {
201
- const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
202
- const queryContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(EntityQueryContext_1.EntityQueryContext));
203
- const entity = new BlahEntity(viewerContext, { id: '1' });
204
- const policy = new AlwaysAllowPolicy();
205
- const approvedEntity = await policy.authorizeCreateAsync(viewerContext, queryContext, entity);
206
- expect(approvedEntity).toEqual(entity);
207
- });
208
- it('throws EntityNotAuthorizedError when all skipped', async () => {
209
- const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
210
- const queryContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(EntityQueryContext_1.EntityQueryContext));
211
- const entity = new BlahEntity(viewerContext, { id: '1' });
212
- const policy = new SkipAllPolicy();
213
- await expect(policy.authorizeCreateAsync(viewerContext, queryContext, entity)).rejects.toBeInstanceOf(EntityNotAuthorizedError_1.default);
214
- });
215
- it('throws EntityNotAuthorizedError when empty policy', async () => {
216
- const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
217
- const queryContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(EntityQueryContext_1.EntityQueryContext));
218
- const entity = new BlahEntity(viewerContext, { id: '1' });
219
- const policy = new EmptyPolicy();
220
- await expect(policy.authorizeCreateAsync(viewerContext, queryContext, entity)).rejects.toBeInstanceOf(EntityNotAuthorizedError_1.default);
221
- });
222
- it('throws when rule throws', async () => {
223
- const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
224
- const queryContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(EntityQueryContext_1.EntityQueryContext));
225
- const entity = new BlahEntity(viewerContext, { id: '1' });
226
- const policy = new ThrowAllPolicy();
227
- await expect(policy.authorizeCreateAsync(viewerContext, queryContext, entity)).rejects.toThrowError('WooHoo!');
194
+ describe(EntityPrivacyPolicy_1.EntityPrivacyPolicyEvaluationMode.ENFORCE.toString(), () => {
195
+ it('throws EntityNotAuthorizedError when deny', async () => {
196
+ const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
197
+ const queryContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(EntityQueryContext_1.EntityQueryContext));
198
+ const metricsAdapterMock = (0, ts_mockito_1.mock)();
199
+ const metricsAdapter = (0, ts_mockito_1.instance)(metricsAdapterMock);
200
+ const entity = new BlahEntity(viewerContext, { id: '1' });
201
+ const policy = new AlwaysDenyPolicy();
202
+ await expect(policy.authorizeCreateAsync(viewerContext, queryContext, entity, metricsAdapter)).rejects.toBeInstanceOf(EntityNotAuthorizedError_1.default);
203
+ (0, ts_mockito_1.verify)(metricsAdapterMock.logAuthorizationEvent((0, ts_mockito_1.objectContaining)({
204
+ entityClassName: entity.constructor.name,
205
+ action: EntityPrivacyPolicy_1.EntityAuthorizationAction.CREATE,
206
+ evaluationResult: IEntityMetricsAdapter_1.EntityMetricsAuthorizationResult.DENY,
207
+ privacyPolicyEvaluationMode: EntityPrivacyPolicy_1.EntityPrivacyPolicyEvaluationMode.ENFORCE,
208
+ }))).once();
209
+ });
210
+ it('returns entity when allowed', async () => {
211
+ const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
212
+ const queryContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(EntityQueryContext_1.EntityQueryContext));
213
+ const metricsAdapterMock = (0, ts_mockito_1.mock)();
214
+ const metricsAdapter = (0, ts_mockito_1.instance)(metricsAdapterMock);
215
+ const entity = new BlahEntity(viewerContext, { id: '1' });
216
+ const policy = new AlwaysAllowPolicy();
217
+ const approvedEntity = await policy.authorizeCreateAsync(viewerContext, queryContext, entity, metricsAdapter);
218
+ expect(approvedEntity).toEqual(entity);
219
+ (0, ts_mockito_1.verify)(metricsAdapterMock.logAuthorizationEvent((0, ts_mockito_1.objectContaining)({
220
+ entityClassName: entity.constructor.name,
221
+ action: EntityPrivacyPolicy_1.EntityAuthorizationAction.CREATE,
222
+ evaluationResult: IEntityMetricsAdapter_1.EntityMetricsAuthorizationResult.ALLOW,
223
+ privacyPolicyEvaluationMode: EntityPrivacyPolicy_1.EntityPrivacyPolicyEvaluationMode.ENFORCE,
224
+ }))).once();
225
+ });
226
+ it('throws EntityNotAuthorizedError when all skipped', async () => {
227
+ const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
228
+ const queryContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(EntityQueryContext_1.EntityQueryContext));
229
+ const metricsAdapterMock = (0, ts_mockito_1.mock)();
230
+ const metricsAdapter = (0, ts_mockito_1.instance)(metricsAdapterMock);
231
+ const entity = new BlahEntity(viewerContext, { id: '1' });
232
+ const policy = new SkipAllPolicy();
233
+ await expect(policy.authorizeCreateAsync(viewerContext, queryContext, entity, metricsAdapter)).rejects.toBeInstanceOf(EntityNotAuthorizedError_1.default);
234
+ (0, ts_mockito_1.verify)(metricsAdapterMock.logAuthorizationEvent((0, ts_mockito_1.objectContaining)({
235
+ entityClassName: entity.constructor.name,
236
+ action: EntityPrivacyPolicy_1.EntityAuthorizationAction.CREATE,
237
+ evaluationResult: IEntityMetricsAdapter_1.EntityMetricsAuthorizationResult.DENY,
238
+ privacyPolicyEvaluationMode: EntityPrivacyPolicy_1.EntityPrivacyPolicyEvaluationMode.ENFORCE,
239
+ }))).once();
240
+ });
241
+ it('throws EntityNotAuthorizedError when empty policy', async () => {
242
+ const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
243
+ const queryContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(EntityQueryContext_1.EntityQueryContext));
244
+ const metricsAdapterMock = (0, ts_mockito_1.mock)();
245
+ const metricsAdapter = (0, ts_mockito_1.instance)(metricsAdapterMock);
246
+ const entity = new BlahEntity(viewerContext, { id: '1' });
247
+ const policy = new EmptyPolicy();
248
+ await expect(policy.authorizeCreateAsync(viewerContext, queryContext, entity, metricsAdapter)).rejects.toBeInstanceOf(EntityNotAuthorizedError_1.default);
249
+ (0, ts_mockito_1.verify)(metricsAdapterMock.logAuthorizationEvent((0, ts_mockito_1.objectContaining)({
250
+ entityClassName: entity.constructor.name,
251
+ action: EntityPrivacyPolicy_1.EntityAuthorizationAction.CREATE,
252
+ evaluationResult: IEntityMetricsAdapter_1.EntityMetricsAuthorizationResult.DENY,
253
+ privacyPolicyEvaluationMode: EntityPrivacyPolicy_1.EntityPrivacyPolicyEvaluationMode.ENFORCE,
254
+ }))).once();
255
+ });
256
+ it('throws when rule throws', async () => {
257
+ const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
258
+ const queryContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(EntityQueryContext_1.EntityQueryContext));
259
+ const metricsAdapterMock = (0, ts_mockito_1.mock)();
260
+ const metricsAdapter = (0, ts_mockito_1.instance)(metricsAdapterMock);
261
+ const entity = new BlahEntity(viewerContext, { id: '1' });
262
+ const policy = new ThrowAllPolicy();
263
+ await expect(policy.authorizeCreateAsync(viewerContext, queryContext, entity, metricsAdapter)).rejects.toThrowError('WooHoo!');
264
+ (0, ts_mockito_1.verify)(metricsAdapterMock.logAuthorizationEvent((0, ts_mockito_1.anything)())).never();
265
+ });
228
266
  });
229
- describe('dry run', () => {
267
+ describe(EntityPrivacyPolicy_1.EntityPrivacyPolicyEvaluationMode.DRY_RUN.toString(), () => {
230
268
  it('returns entity when denied but calls denialHandler', async () => {
231
269
  const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
232
270
  const queryContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(EntityQueryContext_1.EntityQueryContext));
271
+ const metricsAdapterMock = (0, ts_mockito_1.mock)();
272
+ const metricsAdapter = (0, ts_mockito_1.instance)(metricsAdapterMock);
233
273
  const entity = new BlahEntity(viewerContext, { id: '1' });
234
274
  const policy = new DryRunAlwaysDenyPolicy();
235
275
  const policySpy = (0, ts_mockito_1.spy)(policy);
236
- const approvedEntity = await policy.authorizeCreateAsync(viewerContext, queryContext, entity);
276
+ const approvedEntity = await policy.authorizeCreateAsync(viewerContext, queryContext, entity, metricsAdapter);
237
277
  expect(approvedEntity).toEqual(entity);
238
278
  (0, ts_mockito_1.verify)(policySpy.denyHandler((0, ts_mockito_1.anyOfClass)(EntityNotAuthorizedError_1.default))).once();
279
+ (0, ts_mockito_1.verify)(metricsAdapterMock.logAuthorizationEvent((0, ts_mockito_1.objectContaining)({
280
+ entityClassName: entity.constructor.name,
281
+ action: EntityPrivacyPolicy_1.EntityAuthorizationAction.CREATE,
282
+ evaluationResult: IEntityMetricsAdapter_1.EntityMetricsAuthorizationResult.DENY,
283
+ privacyPolicyEvaluationMode: EntityPrivacyPolicy_1.EntityPrivacyPolicyEvaluationMode.DRY_RUN,
284
+ }))).once();
239
285
  });
240
286
  it('does not log when not denied', async () => {
241
287
  const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
242
288
  const queryContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(EntityQueryContext_1.EntityQueryContext));
289
+ const metricsAdapterMock = (0, ts_mockito_1.mock)();
290
+ const metricsAdapter = (0, ts_mockito_1.instance)(metricsAdapterMock);
243
291
  const entity = new BlahEntity(viewerContext, { id: '1' });
244
292
  const policy = new DryRunAlwaysAllowPolicy();
245
293
  const policySpy = (0, ts_mockito_1.spy)(policy);
246
- const approvedEntity = await policy.authorizeCreateAsync(viewerContext, queryContext, entity);
294
+ const approvedEntity = await policy.authorizeCreateAsync(viewerContext, queryContext, entity, metricsAdapter);
247
295
  expect(approvedEntity).toEqual(entity);
248
296
  (0, ts_mockito_1.verify)(policySpy.denyHandler((0, ts_mockito_1.anyOfClass)(EntityNotAuthorizedError_1.default))).never();
297
+ (0, ts_mockito_1.verify)(metricsAdapterMock.logAuthorizationEvent((0, ts_mockito_1.objectContaining)({
298
+ entityClassName: entity.constructor.name,
299
+ action: EntityPrivacyPolicy_1.EntityAuthorizationAction.CREATE,
300
+ evaluationResult: IEntityMetricsAdapter_1.EntityMetricsAuthorizationResult.ALLOW,
301
+ privacyPolicyEvaluationMode: EntityPrivacyPolicy_1.EntityPrivacyPolicyEvaluationMode.DRY_RUN,
302
+ }))).once();
249
303
  });
250
304
  it('passes through other errors', async () => {
251
305
  const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
252
306
  const queryContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(EntityQueryContext_1.EntityQueryContext));
307
+ const metricsAdapterMock = (0, ts_mockito_1.mock)();
308
+ const metricsAdapter = (0, ts_mockito_1.instance)(metricsAdapterMock);
253
309
  const entity = new BlahEntity(viewerContext, { id: '1' });
254
310
  const policy = new DryRunThrowAllPolicy();
255
311
  const policySpy = (0, ts_mockito_1.spy)(policy);
256
- await expect(policy.authorizeCreateAsync(viewerContext, queryContext, entity)).rejects.toThrowError('WooHoo!');
312
+ await expect(policy.authorizeCreateAsync(viewerContext, queryContext, entity, metricsAdapter)).rejects.toThrowError('WooHoo!');
257
313
  (0, ts_mockito_1.verify)(policySpy.denyHandler((0, ts_mockito_1.anyOfClass)(EntityNotAuthorizedError_1.default))).never();
314
+ (0, ts_mockito_1.verify)(metricsAdapterMock.logAuthorizationEvent((0, ts_mockito_1.anything)())).never();
258
315
  });
259
316
  });
260
- describe('logging enforce', () => {
317
+ describe(EntityPrivacyPolicy_1.EntityPrivacyPolicyEvaluationMode.ENFORCE_AND_LOG.toString(), () => {
261
318
  it('denies when denied but calls denialHandler', async () => {
262
319
  const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
263
320
  const queryContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(EntityQueryContext_1.EntityQueryContext));
321
+ const metricsAdapterMock = (0, ts_mockito_1.mock)();
322
+ const metricsAdapter = (0, ts_mockito_1.instance)(metricsAdapterMock);
264
323
  const entity = new BlahEntity(viewerContext, { id: '1' });
265
324
  const policy = new LoggingEnforceAlwaysDenyPolicy();
266
325
  const policySpy = (0, ts_mockito_1.spy)(policy);
267
- await expect(policy.authorizeCreateAsync(viewerContext, queryContext, entity)).rejects.toBeInstanceOf(EntityNotAuthorizedError_1.default);
326
+ await expect(policy.authorizeCreateAsync(viewerContext, queryContext, entity, metricsAdapter)).rejects.toBeInstanceOf(EntityNotAuthorizedError_1.default);
268
327
  (0, ts_mockito_1.verify)(policySpy.denyHandler((0, ts_mockito_1.anyOfClass)(EntityNotAuthorizedError_1.default))).once();
328
+ (0, ts_mockito_1.verify)(metricsAdapterMock.logAuthorizationEvent((0, ts_mockito_1.objectContaining)({
329
+ entityClassName: entity.constructor.name,
330
+ action: EntityPrivacyPolicy_1.EntityAuthorizationAction.CREATE,
331
+ evaluationResult: IEntityMetricsAdapter_1.EntityMetricsAuthorizationResult.DENY,
332
+ privacyPolicyEvaluationMode: EntityPrivacyPolicy_1.EntityPrivacyPolicyEvaluationMode.ENFORCE_AND_LOG,
333
+ }))).once();
269
334
  });
270
335
  it('does not log when not denied', async () => {
271
336
  const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
272
337
  const queryContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(EntityQueryContext_1.EntityQueryContext));
338
+ const metricsAdapterMock = (0, ts_mockito_1.mock)();
339
+ const metricsAdapter = (0, ts_mockito_1.instance)(metricsAdapterMock);
273
340
  const entity = new BlahEntity(viewerContext, { id: '1' });
274
341
  const policy = new LoggingEnforceAlwaysAllowPolicy();
275
342
  const policySpy = (0, ts_mockito_1.spy)(policy);
276
- const approvedEntity = await policy.authorizeCreateAsync(viewerContext, queryContext, entity);
343
+ const approvedEntity = await policy.authorizeCreateAsync(viewerContext, queryContext, entity, metricsAdapter);
277
344
  expect(approvedEntity).toEqual(entity);
278
345
  (0, ts_mockito_1.verify)(policySpy.denyHandler((0, ts_mockito_1.anyOfClass)(EntityNotAuthorizedError_1.default))).never();
346
+ (0, ts_mockito_1.verify)(metricsAdapterMock.logAuthorizationEvent((0, ts_mockito_1.objectContaining)({
347
+ entityClassName: entity.constructor.name,
348
+ action: EntityPrivacyPolicy_1.EntityAuthorizationAction.CREATE,
349
+ evaluationResult: IEntityMetricsAdapter_1.EntityMetricsAuthorizationResult.ALLOW,
350
+ privacyPolicyEvaluationMode: EntityPrivacyPolicy_1.EntityPrivacyPolicyEvaluationMode.ENFORCE_AND_LOG,
351
+ }))).once();
279
352
  });
280
353
  it('passes through other errors', async () => {
281
354
  const viewerContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(ViewerContext_1.default));
282
355
  const queryContext = (0, ts_mockito_1.instance)((0, ts_mockito_1.mock)(EntityQueryContext_1.EntityQueryContext));
356
+ const metricsAdapterMock = (0, ts_mockito_1.mock)();
357
+ const metricsAdapter = (0, ts_mockito_1.instance)(metricsAdapterMock);
283
358
  const entity = new BlahEntity(viewerContext, { id: '1' });
284
359
  const policy = new LoggingEnforceThrowAllPolicy();
285
360
  const policySpy = (0, ts_mockito_1.spy)(policy);
286
- await expect(policy.authorizeCreateAsync(viewerContext, queryContext, entity)).rejects.toThrowError('WooHoo!');
361
+ await expect(policy.authorizeCreateAsync(viewerContext, queryContext, entity, metricsAdapter)).rejects.toThrowError('WooHoo!');
287
362
  (0, ts_mockito_1.verify)(policySpy.denyHandler((0, ts_mockito_1.anyOfClass)(EntityNotAuthorizedError_1.default))).never();
363
+ (0, ts_mockito_1.verify)(metricsAdapterMock.logAuthorizationEvent((0, ts_mockito_1.anything)())).never();
288
364
  });
289
365
  });
290
366
  });
@@ -1 +1 @@
1
- {"version":3,"file":"EntityPrivacyPolicy-test.js","sourceRoot":"","sources":["../../src/__tests__/EntityPrivacyPolicy-test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EntityPrivacyPolicy-test.js","sourceRoot":"","sources":["../../src/__tests__/EntityPrivacyPolicy-test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,56 @@
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 invariant_1 = __importDefault(require("invariant"));
7
+ const EntityQueryContext_1 = require("../EntityQueryContext");
8
+ const ViewerContext_1 = __importDefault(require("../ViewerContext"));
9
+ const createUnitTestEntityCompanionProvider_1 = require("../utils/testing/createUnitTestEntityCompanionProvider");
10
+ describe(EntityQueryContext_1.EntityQueryContext, () => {
11
+ describe('callbacks', () => {
12
+ it('calls all callbacks, and calls invalidation first', async () => {
13
+ const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
14
+ const viewerContext = new ViewerContext_1.default(companionProvider);
15
+ const preCommitFirstCallback = jest.fn(async () => { });
16
+ const preCommitSecondCallback = jest.fn(async () => { });
17
+ const postCommitInvalidationCallback = jest.fn(async () => {
18
+ (0, invariant_1.default)(preCommitFirstCallback.mock.calls.length === 1, 'preCommit should be called before postCommitInvalidation');
19
+ (0, invariant_1.default)(preCommitSecondCallback.mock.calls.length === 1, 'preCommit should be called before postCommitInvalidation');
20
+ });
21
+ const postCommitCallback = jest.fn(async () => {
22
+ (0, invariant_1.default)(preCommitFirstCallback.mock.calls.length === 1, 'preCommit should be called before postCommit');
23
+ (0, invariant_1.default)(preCommitSecondCallback.mock.calls.length === 1, 'preCommit should be called before postCommit');
24
+ (0, invariant_1.default)(postCommitInvalidationCallback.mock.calls.length === 1, 'postCommitInvalidation should be called before postCommit');
25
+ });
26
+ await viewerContext.runInTransactionForDatabaseAdaptorFlavorAsync('postgres', async (queryContext) => {
27
+ queryContext.appendPostCommitCallback(postCommitCallback);
28
+ queryContext.appendPostCommitInvalidationCallback(postCommitInvalidationCallback);
29
+ queryContext.appendPreCommitCallback(preCommitSecondCallback, 2);
30
+ queryContext.appendPreCommitCallback(preCommitFirstCallback, 1);
31
+ });
32
+ expect(preCommitFirstCallback).toHaveBeenCalledTimes(1);
33
+ expect(preCommitSecondCallback).toHaveBeenCalledTimes(1);
34
+ expect(postCommitCallback).toHaveBeenCalledTimes(1);
35
+ expect(postCommitInvalidationCallback).toHaveBeenCalledTimes(1);
36
+ });
37
+ it('prevents transaction from finishing when precommit throws (post commit callbacks are not called)', async () => {
38
+ const companionProvider = (0, createUnitTestEntityCompanionProvider_1.createUnitTestEntityCompanionProvider)();
39
+ const viewerContext = new ViewerContext_1.default(companionProvider);
40
+ const preCommitCallback = jest.fn(async () => {
41
+ throw new Error('wat');
42
+ });
43
+ const postCommitInvalidationCallback = jest.fn(async () => { });
44
+ const postCommitCallback = jest.fn(async () => { });
45
+ await expect(viewerContext.runInTransactionForDatabaseAdaptorFlavorAsync('postgres', async (queryContext) => {
46
+ queryContext.appendPostCommitCallback(postCommitCallback);
47
+ queryContext.appendPostCommitInvalidationCallback(postCommitInvalidationCallback);
48
+ queryContext.appendPreCommitCallback(preCommitCallback, 0);
49
+ })).rejects.toThrowError('wat');
50
+ expect(preCommitCallback).toHaveBeenCalledTimes(1);
51
+ expect(postCommitCallback).toHaveBeenCalledTimes(0);
52
+ expect(postCommitInvalidationCallback).toHaveBeenCalledTimes(0);
53
+ });
54
+ });
55
+ });
56
+ //# sourceMappingURL=EntityQueryContext-test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EntityQueryContext-test.js","sourceRoot":"","sources":["../../src/__tests__/EntityQueryContext-test.ts"],"names":[],"mappings":";;;;;AAAA,0DAAkC;AAElC,8DAA2D;AAC3D,qEAA6C;AAC7C,kHAA+G;AAE/G,QAAQ,CAAC,uCAAkB,EAAE,GAAG,EAAE;IAChC,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;QACzB,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;YACjE,MAAM,iBAAiB,GAAG,IAAA,6EAAqC,GAAE,CAAC;YAClE,MAAM,aAAa,GAAG,IAAI,uBAAa,CAAC,iBAAiB,CAAC,CAAC;YAE3D,MAAM,sBAAsB,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,IAAmB,EAAE,GAAE,CAAC,CAAC,CAAC;YACtE,MAAM,uBAAuB,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,IAAmB,EAAE,GAAE,CAAC,CAAC,CAAC;YACvE,MAAM,8BAA8B,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,IAAmB,EAAE;gBACvE,IAAA,mBAAS,EACP,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAC9C,0DAA0D,CAC3D,CAAC;gBACF,IAAA,mBAAS,EACP,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAC/C,0DAA0D,CAC3D,CAAC;YACJ,CAAC,CAAC,CAAC;YACH,MAAM,kBAAkB,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,IAAmB,EAAE;gBAC3D,IAAA,mBAAS,EACP,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAC9C,8CAA8C,CAC/C,CAAC;gBACF,IAAA,mBAAS,EACP,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAC/C,8CAA8C,CAC/C,CAAC;gBACF,IAAA,mBAAS,EACP,8BAA8B,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EACtD,2DAA2D,CAC5D,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,MAAM,aAAa,CAAC,6CAA6C,CAC/D,UAAU,EACV,KAAK,EAAE,YAAY,EAAE,EAAE;gBACrB,YAAY,CAAC,wBAAwB,CAAC,kBAAkB,CAAC,CAAC;gBAC1D,YAAY,CAAC,oCAAoC,CAAC,8BAA8B,CAAC,CAAC;gBAClF,YAAY,CAAC,uBAAuB,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAC;gBACjE,YAAY,CAAC,uBAAuB,CAAC,sBAAsB,EAAE,CAAC,CAAC,CAAC;YAClE,CAAC,CACF,CAAC;YAEF,MAAM,CAAC,sBAAsB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YACxD,MAAM,CAAC,uBAAuB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YACzD,MAAM,CAAC,kBAAkB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YACpD,MAAM,CAAC,8BAA8B,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kGAAkG,EAAE,KAAK,IAAI,EAAE;YAChH,MAAM,iBAAiB,GAAG,IAAA,6EAAqC,GAAE,CAAC;YAClE,MAAM,aAAa,GAAG,IAAI,uBAAa,CAAC,iBAAiB,CAAC,CAAC;YAE3D,MAAM,iBAAiB,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,IAAmB,EAAE;gBAC1D,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC;YACH,MAAM,8BAA8B,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,IAAmB,EAAE,GAAE,CAAC,CAAC,CAAC;YAC9E,MAAM,kBAAkB,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,IAAmB,EAAE,GAAE,CAAC,CAAC,CAAC;YAElE,MAAM,MAAM,CACV,aAAa,CAAC,6CAA6C,CACzD,UAAU,EACV,KAAK,EAAE,YAAY,EAAE,EAAE;gBACrB,YAAY,CAAC,wBAAwB,CAAC,kBAAkB,CAAC,CAAC;gBAC1D,YAAY,CAAC,oCAAoC,CAAC,8BAA8B,CAAC,CAAC;gBAClF,YAAY,CAAC,uBAAuB,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;YAC7D,CAAC,CACF,CACF,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAE9B,MAAM,CAAC,iBAAiB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YACnD,MAAM,CAAC,kBAAkB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YACpD,MAAM,CAAC,8BAA8B,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAClE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -41,7 +41,7 @@ describe(EntitySecondaryCacheLoader_1.default, () => {
41
41
  const secondaryCacheLoader = new TestSecondaryRedisCacheLoader(secondaryEntityCache, loader);
42
42
  const result = await secondaryCacheLoader.loadManyAsync([loadParams]);
43
43
  expect((_a = result.get(loadParams)) === null || _a === void 0 ? void 0 : _a.enforceValue().getID()).toEqual(createdEntity.getID());
44
- (0, ts_mockito_1.verify)(spiedPrivacyPolicy.authorizeReadAsync(vc1, (0, ts_mockito_1.anyOfClass)(EntityQueryContext_1.EntityNonTransactionalQueryContext), (0, ts_mockito_1.anything)())).once();
44
+ (0, ts_mockito_1.verify)(spiedPrivacyPolicy.authorizeReadAsync(vc1, (0, ts_mockito_1.anyOfClass)(EntityQueryContext_1.EntityNonTransactionalQueryContext), (0, ts_mockito_1.anything)(), (0, ts_mockito_1.anything)())).once();
45
45
  });
46
46
  });
47
47
  describe('invalidateManyAsync', () => {
@@ -1 +1 @@
1
- {"version":3,"file":"EntitySecondaryCacheLoader-test.js","sourceRoot":"","sources":["../../src/__tests__/EntitySecondaryCacheLoader-test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EntitySecondaryCacheLoader-test.js","sourceRoot":"","sources":["../../src/__tests__/EntitySecondaryCacheLoader-test.ts"],"names":[],"mappings":"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"}
package/build/index.d.ts CHANGED
@@ -31,6 +31,7 @@ export { default as EntitySecondaryCacheLoader } from './EntitySecondaryCacheLoa
31
31
  export * from './EntitySecondaryCacheLoader';
32
32
  export * from './EntityMutator';
33
33
  export { default as EntityMutationValidator } from './EntityMutationValidator';
34
+ export * from './EntityMutationInfo';
34
35
  export * from './EntityMutationTriggerConfiguration';
35
36
  export { default as EntityMutationTriggerConfiguration } from './EntityMutationTriggerConfiguration';
36
37
  export { default as EntityMutatorFactory } from './EntityMutatorFactory';
package/build/index.js CHANGED
@@ -65,6 +65,7 @@ __exportStar(require("./EntitySecondaryCacheLoader"), exports);
65
65
  __exportStar(require("./EntityMutator"), exports);
66
66
  var EntityMutationValidator_1 = require("./EntityMutationValidator");
67
67
  Object.defineProperty(exports, "EntityMutationValidator", { enumerable: true, get: function () { return __importDefault(EntityMutationValidator_1).default; } });
68
+ __exportStar(require("./EntityMutationInfo"), exports);
68
69
  __exportStar(require("./EntityMutationTriggerConfiguration"), exports);
69
70
  var EntityMutatorFactory_1 = require("./EntityMutatorFactory");
70
71
  Object.defineProperty(exports, "EntityMutatorFactory", { enumerable: true, get: function () { return __importDefault(EntityMutatorFactory_1).default; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,iCAAiC;AACjC;;;GAGG;;;;;;;;;;;;;;;;AAEH,iEAA2E;AAAlE,+IAAA,OAAO,OAAyB;AACzC,mCAA6C;AAApC,iHAAA,OAAO,OAAU;AAC1B,2CAAyB;AACzB,qEAA+E;AAAtE,mJAAA,OAAO,OAA2B;AAC3C,4DAA0C;AAC1C,2DAAqE;AAA5D,yIAAA,OAAO,OAAsB;AACtC,qDAA+D;AAAtD,mIAAA,OAAO,OAAmB;AACnC,oDAAkC;AAClC,qEAA+E;AAAtE,mJAAA,OAAO,OAA2B;AAC3C,4DAA0C;AAC1C,6DAAuE;AAA9D,2IAAA,OAAO,OAAuB;AACvC,iEAA2E;AAAlE,+IAAA,OAAO,OAAyB;AACzC,0DAAwC;AACxC,kFAA4F;AAAnF,yJAAA,OAAO,OAA8B;AAC9C,sEAAoD;AACpD,4EAAsF;AAA7E,mJAAA,OAAO,OAA2B;AAC3C,mEAAiD;AACjD,uDAAqC;AACrC,oDAA8D;AAArD,2HAAA,OAAO,OAAe;AAC/B,8EAAwF;AAA/E,qJAAA,OAAO,OAA4B;AAC5C,oEAA8E;AAArE,2IAAA,OAAO,OAAuB;AACvC,iDAA+B;AAC/B,0DAAwC;AACxC,+CAAyD;AAAhD,6HAAA,OAAO,OAAgB;AAChC,6DAAuE;AAA9D,2IAAA,OAAO,OAAuB;AACvC,2EAAqF;AAA5E,yJAAA,OAAO,OAA8B;AAC9C,+DAA6C;AAC7C,kDAAgC;AAChC,qEAA+E;AAAtE,mJAAA,OAAO,OAA2B;AAC3C,uEAAqD;AAErD,+DAAyE;AAAhE,6IAAA,OAAO,OAAwB;AACxC,6DAAuE;AAA9D,2IAAA,OAAO,OAAuB;AACvC,wDAAsC;AACtC,uDAAqC;AAGrC,2EAAqF;AAA5E,yJAAA,OAAO,OAA8B;AAC9C,mDAA6D;AAApD,iIAAA,OAAO,OAAkB;AAClC,iDAA2D;AAAlD,+HAAA,OAAO,OAAiB;AACjC,6EAAuF;AAA9E,2JAAA,OAAO,OAA+B;AAC/C,6FAAuG;AAA9F,2KAAA,OAAO,OAAuC;AACvD,qFAA+F;AAAtF,mKAAA,OAAO,OAAmC;AACnD,uFAAiG;AAAxF,qKAAA,OAAO,OAAoC;AACpD,gDAA8B;AAC9B,kEAA4E;AAAnE,uIAAA,OAAO,OAAqB;AACrC,4EAA0D;AAC1D,4EAAsF;AAA7E,iJAAA,OAAO,OAA0B;AAC1C,oEAAkD;AAClD,+DAA6C;AAE7C,kEAAgD;AAChD,+EAAyF;AAAhF,qJAAA,OAAO,OAA4B;AAC5C,qFAA+F;AAAtF,6JAAA,OAAO,OAAgC;AAChD,mFAA6F;AAApF,2JAAA,OAAO,OAA+B;AAC/C,mFAA6F;AAApF,2JAAA,OAAO,OAA+B;AAC/C,+DAAyE;AAAhE,uIAAA,OAAO,OAAqB;AACrC,4DAA0C;AAC1C,6EAA2D;AAC3D,mEAAiD;AACjD,+EAAyF;AAAhF,+IAAA,OAAO,OAAyB;AACzC,2EAAqF;AAA5E,2IAAA,OAAO,OAAuB;AACvC,2FAAqG;AAA5F,2JAAA,OAAO,OAA+B;AAC/C,qFAA+F;AAAtF,qJAAA,OAAO,OAA4B;AAC5C,wFAAsE;AACtE,2DAAyC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,iCAAiC;AACjC;;;GAGG;;;;;;;;;;;;;;;;AAEH,iEAA2E;AAAlE,+IAAA,OAAO,OAAyB;AACzC,mCAA6C;AAApC,iHAAA,OAAO,OAAU;AAC1B,2CAAyB;AACzB,qEAA+E;AAAtE,mJAAA,OAAO,OAA2B;AAC3C,4DAA0C;AAC1C,2DAAqE;AAA5D,yIAAA,OAAO,OAAsB;AACtC,qDAA+D;AAAtD,mIAAA,OAAO,OAAmB;AACnC,oDAAkC;AAClC,qEAA+E;AAAtE,mJAAA,OAAO,OAA2B;AAC3C,4DAA0C;AAC1C,6DAAuE;AAA9D,2IAAA,OAAO,OAAuB;AACvC,iEAA2E;AAAlE,+IAAA,OAAO,OAAyB;AACzC,0DAAwC;AACxC,kFAA4F;AAAnF,yJAAA,OAAO,OAA8B;AAC9C,sEAAoD;AACpD,4EAAsF;AAA7E,mJAAA,OAAO,OAA2B;AAC3C,mEAAiD;AACjD,uDAAqC;AACrC,oDAA8D;AAArD,2HAAA,OAAO,OAAe;AAC/B,8EAAwF;AAA/E,qJAAA,OAAO,OAA4B;AAC5C,oEAA8E;AAArE,2IAAA,OAAO,OAAuB;AACvC,iDAA+B;AAC/B,0DAAwC;AACxC,+CAAyD;AAAhD,6HAAA,OAAO,OAAgB;AAChC,6DAAuE;AAA9D,2IAAA,OAAO,OAAuB;AACvC,2EAAqF;AAA5E,yJAAA,OAAO,OAA8B;AAC9C,+DAA6C;AAC7C,kDAAgC;AAChC,qEAA+E;AAAtE,mJAAA,OAAO,OAA2B;AAC3C,uDAAqC;AACrC,uEAAqD;AAErD,+DAAyE;AAAhE,6IAAA,OAAO,OAAwB;AACxC,6DAAuE;AAA9D,2IAAA,OAAO,OAAuB;AACvC,wDAAsC;AACtC,uDAAqC;AAGrC,2EAAqF;AAA5E,yJAAA,OAAO,OAA8B;AAC9C,mDAA6D;AAApD,iIAAA,OAAO,OAAkB;AAClC,iDAA2D;AAAlD,+HAAA,OAAO,OAAiB;AACjC,6EAAuF;AAA9E,2JAAA,OAAO,OAA+B;AAC/C,6FAAuG;AAA9F,2KAAA,OAAO,OAAuC;AACvD,qFAA+F;AAAtF,mKAAA,OAAO,OAAmC;AACnD,uFAAiG;AAAxF,qKAAA,OAAO,OAAoC;AACpD,gDAA8B;AAC9B,kEAA4E;AAAnE,uIAAA,OAAO,OAAqB;AACrC,4EAA0D;AAC1D,4EAAsF;AAA7E,iJAAA,OAAO,OAA0B;AAC1C,oEAAkD;AAClD,+DAA6C;AAE7C,kEAAgD;AAChD,+EAAyF;AAAhF,qJAAA,OAAO,OAA4B;AAC5C,qFAA+F;AAAtF,6JAAA,OAAO,OAAgC;AAChD,mFAA6F;AAApF,2JAAA,OAAO,OAA+B;AAC/C,mFAA6F;AAApF,2JAAA,OAAO,OAA+B;AAC/C,+DAAyE;AAAhE,uIAAA,OAAO,OAAqB;AACrC,4DAA0C;AAC1C,6EAA2D;AAC3D,mEAAiD;AACjD,+EAAyF;AAAhF,+IAAA,OAAO,OAAyB;AACzC,2EAAqF;AAA5E,2IAAA,OAAO,OAAuB;AACvC,2FAAqG;AAA5F,2JAAA,OAAO,OAA+B;AAC/C,qFAA+F;AAAtF,qJAAA,OAAO,OAA4B;AAC5C,wFAAsE;AACtE,2DAAyC"}
@@ -1,3 +1,4 @@
1
+ import { EntityAuthorizationAction, EntityPrivacyPolicyEvaluationMode } from '../EntityPrivacyPolicy';
1
2
  export declare enum EntityMetricsLoadType {
2
3
  LOAD_MANY = 0,
3
4
  LOAD_MANY_EQUALITY_CONJUNCTION = 1,
@@ -23,11 +24,26 @@ export interface IncrementLoadCountEvent {
23
24
  fieldValueCount: number;
24
25
  entityClassName: string;
25
26
  }
27
+ export declare enum EntityMetricsAuthorizationResult {
28
+ DENY = 0,
29
+ ALLOW = 1
30
+ }
31
+ export interface EntityMetricsAuthorizationEvent {
32
+ entityClassName: string;
33
+ action: EntityAuthorizationAction;
34
+ evaluationResult: EntityMetricsAuthorizationResult;
35
+ privacyPolicyEvaluationMode: EntityPrivacyPolicyEvaluationMode;
36
+ }
26
37
  /**
27
38
  * An interface for gathering metrics about the Entity framework. Information about
28
39
  * entity load and mutation operations is piped to an instance of this adapter.
29
40
  */
30
41
  export default interface IEntityMetricsAdapter {
42
+ /**
43
+ * Called when a {@link EntityPrivacyPolicy} authorization succeeds or fails.
44
+ * @param authorizationEvent - info about the authorization event
45
+ */
46
+ logAuthorizationEvent(authorizationEvent: EntityMetricsAuthorizationEvent): void;
31
47
  /**
32
48
  * Called when any load occurs.
33
49
  * @param loadEvent - info about the load event
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EntityMetricsMutationType = exports.EntityMetricsLoadType = void 0;
3
+ exports.EntityMetricsAuthorizationResult = exports.EntityMetricsMutationType = exports.EntityMetricsLoadType = void 0;
4
4
  var EntityMetricsLoadType;
5
5
  (function (EntityMetricsLoadType) {
6
6
  EntityMetricsLoadType[EntityMetricsLoadType["LOAD_MANY"] = 0] = "LOAD_MANY";
@@ -13,4 +13,9 @@ var EntityMetricsMutationType;
13
13
  EntityMetricsMutationType[EntityMetricsMutationType["UPDATE"] = 1] = "UPDATE";
14
14
  EntityMetricsMutationType[EntityMetricsMutationType["DELETE"] = 2] = "DELETE";
15
15
  })(EntityMetricsMutationType = exports.EntityMetricsMutationType || (exports.EntityMetricsMutationType = {}));
16
+ var EntityMetricsAuthorizationResult;
17
+ (function (EntityMetricsAuthorizationResult) {
18
+ EntityMetricsAuthorizationResult[EntityMetricsAuthorizationResult["DENY"] = 0] = "DENY";
19
+ EntityMetricsAuthorizationResult[EntityMetricsAuthorizationResult["ALLOW"] = 1] = "ALLOW";
20
+ })(EntityMetricsAuthorizationResult = exports.EntityMetricsAuthorizationResult || (exports.EntityMetricsAuthorizationResult = {}));
16
21
  //# sourceMappingURL=IEntityMetricsAdapter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IEntityMetricsAdapter.js","sourceRoot":"","sources":["../../src/metrics/IEntityMetricsAdapter.ts"],"names":[],"mappings":";;;AAAA,IAAY,qBAIX;AAJD,WAAY,qBAAqB;IAC/B,2EAAS,CAAA;IACT,qHAA8B,CAAA;IAC9B,mFAAa,CAAA;AACf,CAAC,EAJW,qBAAqB,GAArB,6BAAqB,KAArB,6BAAqB,QAIhC;AASD,IAAY,yBAIX;AAJD,WAAY,yBAAyB;IACnC,6EAAM,CAAA;IACN,6EAAM,CAAA;IACN,6EAAM,CAAA;AACR,CAAC,EAJW,yBAAyB,GAAzB,iCAAyB,KAAzB,iCAAyB,QAIpC"}
1
+ {"version":3,"file":"IEntityMetricsAdapter.js","sourceRoot":"","sources":["../../src/metrics/IEntityMetricsAdapter.ts"],"names":[],"mappings":";;;AAKA,IAAY,qBAIX;AAJD,WAAY,qBAAqB;IAC/B,2EAAS,CAAA;IACT,qHAA8B,CAAA;IAC9B,mFAAa,CAAA;AACf,CAAC,EAJW,qBAAqB,GAArB,6BAAqB,KAArB,6BAAqB,QAIhC;AASD,IAAY,yBAIX;AAJD,WAAY,yBAAyB;IACnC,6EAAM,CAAA;IACN,6EAAM,CAAA;IACN,6EAAM,CAAA;AACR,CAAC,EAJW,yBAAyB,GAAzB,iCAAyB,KAAzB,iCAAyB,QAIpC;AAaD,IAAY,gCAGX;AAHD,WAAY,gCAAgC;IAC1C,uFAAI,CAAA;IACJ,yFAAK,CAAA;AACP,CAAC,EAHW,gCAAgC,GAAhC,wCAAgC,KAAhC,wCAAgC,QAG3C"}
@@ -1,5 +1,6 @@
1
- import IEntityMetricsAdapter, { EntityMetricsLoadEvent, EntityMetricsMutationEvent, IncrementLoadCountEvent } from './IEntityMetricsAdapter';
1
+ import IEntityMetricsAdapter, { EntityMetricsAuthorizationEvent, EntityMetricsLoadEvent, EntityMetricsMutationEvent, IncrementLoadCountEvent } from './IEntityMetricsAdapter';
2
2
  export default class NoOpEntityMetricsAdapter implements IEntityMetricsAdapter {
3
+ logAuthorizationEvent(_authorizationEvent: EntityMetricsAuthorizationEvent): void;
3
4
  logDataManagerLoadEvent(_loadEvent: EntityMetricsLoadEvent): void;
4
5
  logMutatorMutationEvent(_mutationEvent: EntityMetricsMutationEvent): void;
5
6
  incrementDataManagerDataloaderLoadCount(_incrementLoadCountEvent: IncrementLoadCountEvent): void;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  class NoOpEntityMetricsAdapter {
4
+ logAuthorizationEvent(_authorizationEvent) { }
4
5
  logDataManagerLoadEvent(_loadEvent) { }
5
6
  logMutatorMutationEvent(_mutationEvent) { }
6
7
  incrementDataManagerDataloaderLoadCount(_incrementLoadCountEvent) { }
@@ -1 +1 @@
1
- {"version":3,"file":"NoOpEntityMetricsAdapter.js","sourceRoot":"","sources":["../../src/metrics/NoOpEntityMetricsAdapter.ts"],"names":[],"mappings":";;AAMA,MAAqB,wBAAwB;IAC3C,uBAAuB,CAAC,UAAkC,IAAS,CAAC;IACpE,uBAAuB,CAAC,cAA0C,IAAS,CAAC;IAC5E,uCAAuC,CACrC,wBAAiD,IAC1C,CAAC;IACV,kCAAkC,CAAC,wBAAiD,IAAS,CAAC;IAC9F,qCAAqC,CAAC,wBAAiD,IAAS,CAAC;CAClG;AARD,2CAQC"}
1
+ {"version":3,"file":"NoOpEntityMetricsAdapter.js","sourceRoot":"","sources":["../../src/metrics/NoOpEntityMetricsAdapter.ts"],"names":[],"mappings":";;AAOA,MAAqB,wBAAwB;IAC3C,qBAAqB,CAAC,mBAAoD,IAAS,CAAC;IACpF,uBAAuB,CAAC,UAAkC,IAAS,CAAC;IACpE,uBAAuB,CAAC,cAA0C,IAAS,CAAC;IAC5E,uCAAuC,CACrC,wBAAiD,IAC1C,CAAC;IACV,kCAAkC,CAAC,wBAAiD,IAAS,CAAC;IAC9F,qCAAqC,CAAC,wBAAiD,IAAS,CAAC;CAClG;AATD,2CASC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expo/entity",
3
- "version": "0.18.0",
3
+ "version": "0.22.0",
4
4
  "description": "A privacy-first data model",
5
5
  "files": [
6
6
  "build",
package/src/Entity.ts CHANGED
@@ -243,12 +243,16 @@ export default abstract class Entity<
243
243
  .getQueryContextProvider()
244
244
  .getQueryContext()
245
245
  ): Promise<boolean> {
246
+ const companion = existingEntity
247
+ .getViewerContext()
248
+ .getViewerScopedEntityCompanionForClass(this);
246
249
  const privacyPolicy = new (this.getCompanionDefinition().privacyPolicyClass)();
247
250
  const evaluationResult = await asyncResult(
248
251
  privacyPolicy.authorizeUpdateAsync(
249
252
  existingEntity.getViewerContext(),
250
253
  queryContext,
251
- existingEntity
254
+ existingEntity,
255
+ companion.getMetricsAdapter()
252
256
  )
253
257
  );
254
258
  return evaluationResult.ok;
@@ -292,12 +296,16 @@ export default abstract class Entity<
292
296
  .getQueryContextProvider()
293
297
  .getQueryContext()
294
298
  ): Promise<boolean> {
299
+ const companion = existingEntity
300
+ .getViewerContext()
301
+ .getViewerScopedEntityCompanionForClass(this);
295
302
  const privacyPolicy = new (this.getCompanionDefinition().privacyPolicyClass)();
296
303
  const evaluationResult = await asyncResult(
297
304
  privacyPolicy.authorizeDeleteAsync(
298
305
  existingEntity.getViewerContext(),
299
306
  queryContext,
300
- existingEntity
307
+ existingEntity,
308
+ companion.getMetricsAdapter()
301
309
  )
302
310
  );
303
311
  return evaluationResult.ok;
@@ -73,7 +73,7 @@ export default class EntityCompanion<
73
73
  TEntity,
74
74
  TSelectedFields
75
75
  >,
76
- metricsAdapter: IEntityMetricsAdapter
76
+ private readonly metricsAdapter: IEntityMetricsAdapter
77
77
  ) {
78
78
  const privacyPolicy = new PrivacyPolicyClass();
79
79
  this.entityLoaderFactory = new EntityLoaderFactory<
@@ -87,7 +87,8 @@ export default class EntityCompanion<
87
87
  tableDataCoordinator.entityConfiguration,
88
88
  entityClass,
89
89
  privacyPolicy,
90
- tableDataCoordinator.dataManager
90
+ tableDataCoordinator.dataManager,
91
+ metricsAdapter
91
92
  );
92
93
  this.entityMutatorFactory = new EntityMutatorFactory(
93
94
  tableDataCoordinator.entityConfiguration,
@@ -129,4 +130,11 @@ export default class EntityCompanion<
129
130
  getQueryContextProvider(): EntityQueryContextProvider {
130
131
  return this.tableDataCoordinator.getQueryContextProvider();
131
132
  }
133
+
134
+ /**
135
+ * Get the {@link IEntityMetricsAdapter} for this companion.
136
+ */
137
+ getMetricsAdapter(): IEntityMetricsAdapter {
138
+ return this.metricsAdapter;
139
+ }
132
140
  }
@@ -174,7 +174,7 @@ export default class EntityCompanionProvider {
174
174
  * @param cacheAdapterFlavors - Cache adapter configurations for this instance
175
175
  */
176
176
  constructor(
177
- private metricsAdapter: IEntityMetricsAdapter,
177
+ public readonly metricsAdapter: IEntityMetricsAdapter,
178
178
  private databaseAdapterFlavors: ReadonlyMap<
179
179
  DatabaseAdapterFlavor,
180
180
  DatabaseAdapterFlavorDefinition