@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.
- package/build/src/EntityInvalidationUtils.d.ts +2 -4
- package/build/src/EntityInvalidationUtils.js +1 -1
- package/build/src/EntityLoaderFactory.d.ts +1 -1
- package/build/src/EntityLoaderFactory.js +1 -1
- package/build/src/ReadonlyEntity.d.ts +1 -1
- package/build/src/ViewerScopedEntityLoaderFactory.d.ts +1 -1
- package/package.json +3 -3
- package/src/EntityInvalidationUtils.ts +0 -17
- package/src/EntityLoaderFactory.ts +0 -2
- package/src/ReadonlyEntity.ts +1 -8
- package/src/ViewerScopedEntityLoaderFactory.ts +0 -1
- package/src/__tests__/AuthorizationResultBasedEntityLoader-test.ts +0 -3
|
@@ -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>,
|
|
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>,
|
|
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,
|
|
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,
|
|
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.
|
|
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,
|
|
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,
|
|
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.
|
|
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.
|
|
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": "
|
|
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
|
);
|
package/src/ReadonlyEntity.ts
CHANGED
|
@@ -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()
|
|
@@ -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
|
);
|