@expo/entity 0.61.0 → 0.62.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.
@@ -1,6 +1,4 @@
1
- import type { IEntityClass } from './Entity.ts';
2
1
  import type { EntityConfiguration } from './EntityConfiguration.ts';
3
- import type { EntityPrivacyPolicy } from './EntityPrivacyPolicy.ts';
4
2
  import type { EntityTransactionalQueryContext } from './EntityQueryContext.ts';
5
3
  import type { ReadonlyEntity } from './ReadonlyEntity.ts';
6
4
  import type { ViewerContext } from './ViewerContext.ts';
@@ -10,11 +8,11 @@ import type { IEntityMetricsAdapter } from './metrics/IEntityMetricsAdapter.ts';
10
8
  * Entity invalidation utilities.
11
9
  * Methods are exposed publicly since in rare cases they may need to be called manually.
12
10
  */
13
- export declare class EntityInvalidationUtils<TFields extends Record<string, any>, TIDField extends keyof NonNullable<Pick<TFields, TSelectedFields>>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TIDField, TViewerContext, TSelectedFields>, TPrivacyPolicy extends EntityPrivacyPolicy<TFields, TIDField, TViewerContext, TEntity, TSelectedFields>, TSelectedFields extends keyof TFields> {
11
+ export declare class EntityInvalidationUtils<TFields extends Record<string, any>, TIDField extends keyof NonNullable<Pick<TFields, TSelectedFields>>, TViewerContext extends ViewerContext, TEntity extends ReadonlyEntity<TFields, TIDField, TViewerContext, TSelectedFields>, TSelectedFields extends keyof TFields> {
14
12
  private readonly entityConfiguration;
15
13
  private readonly dataManager;
16
14
  protected readonly metricsAdapter: IEntityMetricsAdapter;
17
- constructor(entityConfiguration: EntityConfiguration<TFields, TIDField>, _entityClass: IEntityClass<TFields, TIDField, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>, dataManager: EntityDataManager<TFields, TIDField>, metricsAdapter: IEntityMetricsAdapter);
15
+ constructor(entityConfiguration: EntityConfiguration<TFields, TIDField>, dataManager: EntityDataManager<TFields, TIDField>, metricsAdapter: IEntityMetricsAdapter);
18
16
  private getKeyValuePairsFromObjectFields;
19
17
  /**
20
18
  * Invalidate all caches and local dataloaders for an entity's fields. Exposed primarily for internal use by EntityMutator.
@@ -7,7 +7,7 @@ export class EntityInvalidationUtils {
7
7
  entityConfiguration;
8
8
  dataManager;
9
9
  metricsAdapter;
10
- constructor(entityConfiguration, _entityClass, dataManager, metricsAdapter) {
10
+ constructor(entityConfiguration, dataManager, metricsAdapter) {
11
11
  this.entityConfiguration = entityConfiguration;
12
12
  this.dataManager = dataManager;
13
13
  this.metricsAdapter = metricsAdapter;
@@ -16,7 +16,7 @@ export declare class EntityLoaderFactory<TFields extends Record<string, any>, TI
16
16
  private readonly dataManager;
17
17
  protected readonly metricsAdapter: IEntityMetricsAdapter;
18
18
  constructor(entityCompanion: EntityCompanion<TFields, TIDField, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>, dataManager: EntityDataManager<TFields, TIDField>, metricsAdapter: IEntityMetricsAdapter);
19
- invalidationUtils(): EntityInvalidationUtils<TFields, TIDField, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>;
19
+ invalidationUtils(): EntityInvalidationUtils<TFields, TIDField, TViewerContext, TEntity, TSelectedFields>;
20
20
  constructionUtils(viewerContext: TViewerContext, queryContext: EntityQueryContext, privacyPolicyEvaluationContext: EntityPrivacyPolicyEvaluationContext<TFields, TIDField, TViewerContext, TEntity, TSelectedFields>): EntityConstructionUtils<TFields, TIDField, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>;
21
21
  /**
22
22
  * Vend loader for loading an entity in a given query context.
@@ -14,7 +14,7 @@ export class EntityLoaderFactory {
14
14
  this.metricsAdapter = metricsAdapter;
15
15
  }
16
16
  invalidationUtils() {
17
- return new EntityInvalidationUtils(this.entityCompanion.entityCompanionDefinition.entityConfiguration, this.entityCompanion.entityCompanionDefinition.entityClass, this.dataManager, this.metricsAdapter);
17
+ return new EntityInvalidationUtils(this.entityCompanion.entityCompanionDefinition.entityConfiguration, this.dataManager, this.metricsAdapter);
18
18
  }
19
19
  constructionUtils(viewerContext, queryContext, privacyPolicyEvaluationContext) {
20
20
  return new EntityConstructionUtils(viewerContext, queryContext, privacyPolicyEvaluationContext, this.entityCompanion.entityCompanionDefinition.entityConfiguration, this.entityCompanion.entityCompanionDefinition.entityClass, this.entityCompanion.entityCompanionDefinition.entitySelectedFields, this.entityCompanion.privacyPolicy, this.metricsAdapter);
@@ -88,5 +88,5 @@ export declare abstract class ReadonlyEntity<TFields extends Record<string, any>
88
88
  * Utilities for entity invalidation.
89
89
  * Call these manually to keep entity cache consistent when performing operations outside of the entity framework.
90
90
  */
91
- static invalidationUtils<TMFields extends object, TMIDField extends keyof NonNullable<Pick<TMFields, TMSelectedFields>>, TMViewerContext extends ViewerContext, TMViewerContext2 extends TMViewerContext, TMEntity extends ReadonlyEntity<TMFields, TMIDField, TMViewerContext, TMSelectedFields>, TMPrivacyPolicy extends EntityPrivacyPolicy<TMFields, TMIDField, TMViewerContext, TMEntity, TMSelectedFields>, TMSelectedFields extends keyof TMFields = keyof TMFields>(this: IEntityClass<TMFields, TMIDField, TMViewerContext, TMEntity, TMPrivacyPolicy, TMSelectedFields>, viewerContext: TMViewerContext2): EntityInvalidationUtils<TMFields, TMIDField, TMViewerContext, TMEntity, TMPrivacyPolicy, TMSelectedFields>;
91
+ static invalidationUtils<TMFields extends object, TMIDField extends keyof NonNullable<Pick<TMFields, TMSelectedFields>>, TMViewerContext extends ViewerContext, TMViewerContext2 extends TMViewerContext, TMEntity extends ReadonlyEntity<TMFields, TMIDField, TMViewerContext, TMSelectedFields>, TMPrivacyPolicy extends EntityPrivacyPolicy<TMFields, TMIDField, TMViewerContext, TMEntity, TMSelectedFields>, TMSelectedFields extends keyof TMFields = keyof TMFields>(this: IEntityClass<TMFields, TMIDField, TMViewerContext, TMEntity, TMPrivacyPolicy, TMSelectedFields>, viewerContext: TMViewerContext2): EntityInvalidationUtils<TMFields, TMIDField, TMViewerContext, TMEntity, TMSelectedFields>;
92
92
  }
@@ -13,7 +13,7 @@ export declare class ViewerScopedEntityLoaderFactory<TFields extends Record<stri
13
13
  private readonly entityLoaderFactory;
14
14
  private readonly viewerContext;
15
15
  constructor(entityLoaderFactory: EntityLoaderFactory<TFields, TIDField, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>, viewerContext: TViewerContext);
16
- invalidationUtils(): EntityInvalidationUtils<TFields, TIDField, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>;
16
+ invalidationUtils(): EntityInvalidationUtils<TFields, TIDField, TViewerContext, TEntity, TSelectedFields>;
17
17
  constructionUtils(queryContext: EntityQueryContext, privacyPolicyEvaluationContext: EntityPrivacyPolicyEvaluationContext<TFields, TIDField, TViewerContext, TEntity, TSelectedFields>): EntityConstructionUtils<TFields, TIDField, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>;
18
18
  forLoad(queryContext: EntityQueryContext, privacyPolicyEvaluationContext: EntityPrivacyPolicyEvaluationContext<TFields, TIDField, TViewerContext, TEntity, TSelectedFields>): AuthorizationResultBasedEntityLoader<TFields, TIDField, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>;
19
19
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@expo/entity",
3
- "version": "0.61.0",
3
+ "version": "0.62.0",
4
4
  "description": "A privacy-first data model",
5
5
  "files": [
6
6
  "build",
@@ -33,7 +33,7 @@
33
33
  "invariant": "^2.2.4"
34
34
  },
35
35
  "devDependencies": {
36
- "@jest/globals": "30.2.0",
36
+ "@jest/globals": "30.3.0",
37
37
  "@types/invariant": "2.2.37",
38
38
  "@types/lodash-es": "4.17.12",
39
39
  "@types/node": "24.12.0",
@@ -42,5 +42,5 @@
42
42
  "typescript": "5.9.3",
43
43
  "uuid": "13.0.0"
44
44
  },
45
- "gitHead": "a6f1dd723262cb1c3e8022d3a8799c17602cd15b"
45
+ "gitHead": "4965cc238882982e6315beca48a68679ed45456b"
46
46
  }
@@ -1,6 +1,4 @@
1
- import type { IEntityClass } from './Entity.ts';
2
1
  import type { EntityConfiguration } from './EntityConfiguration.ts';
3
- import type { EntityPrivacyPolicy } from './EntityPrivacyPolicy.ts';
4
2
  import type { EntityTransactionalQueryContext } from './EntityQueryContext.ts';
5
3
  import type { ReadonlyEntity } from './ReadonlyEntity.ts';
6
4
  import type { ViewerContext } from './ViewerContext.ts';
@@ -18,25 +16,10 @@ export class EntityInvalidationUtils<
18
16
  TIDField extends keyof NonNullable<Pick<TFields, TSelectedFields>>,
19
17
  TViewerContext extends ViewerContext,
20
18
  TEntity extends ReadonlyEntity<TFields, TIDField, TViewerContext, TSelectedFields>,
21
- TPrivacyPolicy extends EntityPrivacyPolicy<
22
- TFields,
23
- TIDField,
24
- TViewerContext,
25
- TEntity,
26
- TSelectedFields
27
- >,
28
19
  TSelectedFields extends keyof TFields,
29
20
  > {
30
21
  constructor(
31
22
  private readonly entityConfiguration: EntityConfiguration<TFields, TIDField>,
32
- _entityClass: IEntityClass<
33
- TFields,
34
- TIDField,
35
- TViewerContext,
36
- TEntity,
37
- TPrivacyPolicy,
38
- TSelectedFields
39
- >,
40
23
  private readonly dataManager: EntityDataManager<TFields, TIDField>,
41
24
  protected readonly metricsAdapter: IEntityMetricsAdapter,
42
25
  ) {}
@@ -47,12 +47,10 @@ export class EntityLoaderFactory<
47
47
  TIDField,
48
48
  TViewerContext,
49
49
  TEntity,
50
- TPrivacyPolicy,
51
50
  TSelectedFields
52
51
  > {
53
52
  return new EntityInvalidationUtils(
54
53
  this.entityCompanion.entityCompanionDefinition.entityConfiguration,
55
- this.entityCompanion.entityCompanionDefinition.entityClass,
56
54
  this.dataManager,
57
55
  this.metricsAdapter,
58
56
  );
@@ -257,14 +257,7 @@ export abstract class ReadonlyEntity<
257
257
  TMSelectedFields
258
258
  >,
259
259
  viewerContext: TMViewerContext2,
260
- ): EntityInvalidationUtils<
261
- TMFields,
262
- TMIDField,
263
- TMViewerContext,
264
- TMEntity,
265
- TMPrivacyPolicy,
266
- TMSelectedFields
267
- > {
260
+ ): EntityInvalidationUtils<TMFields, TMIDField, TMViewerContext, TMEntity, TMSelectedFields> {
268
261
  return viewerContext
269
262
  .getViewerScopedEntityCompanionForClass(this)
270
263
  .getLoaderFactory()
@@ -44,7 +44,6 @@ export class ViewerScopedEntityLoaderFactory<
44
44
  TIDField,
45
45
  TViewerContext,
46
46
  TEntity,
47
- TPrivacyPolicy,
48
47
  TSelectedFields
49
48
  > {
50
49
  return this.entityLoaderFactory.invalidationUtils();
@@ -409,7 +409,6 @@ describe(AuthorizationResultBasedEntityLoader, () => {
409
409
  const id1 = uuidv4();
410
410
  const invalidationUtils = new EntityInvalidationUtils(
411
411
  testEntityConfiguration,
412
- TestEntity,
413
412
  dataManagerInstance,
414
413
  metricsAdapter,
415
414
  );
@@ -488,7 +487,6 @@ describe(AuthorizationResultBasedEntityLoader, () => {
488
487
 
489
488
  const invalidationUtils = new EntityInvalidationUtils(
490
489
  testEntityConfiguration,
491
- TestEntity,
492
490
  dataManagerInstance,
493
491
  metricsAdapter,
494
492
  );
@@ -560,7 +558,6 @@ describe(AuthorizationResultBasedEntityLoader, () => {
560
558
  await new StubQueryContextProvider().runInTransactionAsync(async (queryContext) => {
561
559
  const invalidationUtils = new EntityInvalidationUtils(
562
560
  testEntityConfiguration,
563
- TestEntity,
564
561
  dataManagerInstance,
565
562
  metricsAdapter,
566
563
  );