@expo/entity 0.16.0 → 0.20.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/EnforcingEntityLoader.js +2 -2
- package/build/EnforcingEntityLoader.js.map +1 -1
- package/build/Entity.js +8 -2
- package/build/Entity.js.map +1 -1
- package/build/EntityAssociationLoader.js +3 -3
- package/build/EntityAssociationLoader.js.map +1 -1
- package/build/EntityCompanion.d.ts +5 -0
- package/build/EntityCompanion.js +8 -1
- package/build/EntityCompanion.js.map +1 -1
- package/build/EntityCompanionProvider.d.ts +1 -1
- package/build/EntityCompanionProvider.js +5 -5
- package/build/EntityCompanionProvider.js.map +1 -1
- package/build/EntityConfiguration.d.ts +1 -1
- package/build/EntityConfiguration.js +3 -3
- package/build/EntityConfiguration.js.map +1 -1
- package/build/EntityDatabaseAdapter.d.ts +4 -4
- package/build/EntityDatabaseAdapter.js +13 -13
- package/build/EntityDatabaseAdapter.js.map +1 -1
- package/build/EntityFieldDefinition.d.ts +77 -0
- package/build/EntityFieldDefinition.js +53 -0
- package/build/EntityFieldDefinition.js.map +1 -0
- package/build/EntityFields.d.ts +5 -78
- package/build/EntityFields.js +19 -61
- package/build/EntityFields.js.map +1 -1
- package/build/EntityLoader.d.ts +3 -1
- package/build/EntityLoader.js +19 -15
- package/build/EntityLoader.js.map +1 -1
- package/build/EntityLoaderFactory.d.ts +3 -1
- package/build/EntityLoaderFactory.js +3 -2
- package/build/EntityLoaderFactory.js.map +1 -1
- package/build/EntityMutationInfo.d.ts +26 -0
- package/build/EntityMutationInfo.js +10 -0
- package/build/EntityMutationInfo.js.map +1 -0
- package/build/EntityMutationTriggerConfiguration.d.ts +4 -4
- package/build/EntityMutationValidator.d.ts +3 -3
- package/build/EntityMutationValidator.js.map +1 -1
- package/build/EntityMutator.d.ts +5 -16
- package/build/EntityMutator.js +62 -58
- package/build/EntityMutator.js.map +1 -1
- package/build/EntityPrivacyPolicy.d.ts +5 -4
- package/build/EntityPrivacyPolicy.js +60 -12
- package/build/EntityPrivacyPolicy.js.map +1 -1
- package/build/EntityQueryContext.d.ts +13 -0
- package/build/EntityQueryContext.js +18 -0
- package/build/EntityQueryContext.js.map +1 -1
- package/build/EntitySecondaryCacheLoader.js +2 -2
- package/build/EntitySecondaryCacheLoader.js.map +1 -1
- package/build/ReadonlyEntity.js +3 -4
- package/build/ReadonlyEntity.js.map +1 -1
- package/build/ViewerScopedEntityCompanion.d.ts +5 -0
- package/build/ViewerScopedEntityCompanion.js +6 -0
- package/build/ViewerScopedEntityCompanion.js.map +1 -1
- package/build/__tests__/EnforcingEntityLoader-test.js +82 -82
- package/build/__tests__/EnforcingEntityLoader-test.js.map +1 -1
- package/build/__tests__/Entity-test.js +6 -6
- package/build/__tests__/Entity-test.js.map +1 -1
- package/build/__tests__/EntityAssociationLoader-test.js +40 -40
- package/build/__tests__/EntityAssociationLoader-test.js.map +1 -1
- package/build/__tests__/EntityCommonUseCases-test.js +11 -11
- package/build/__tests__/EntityCommonUseCases-test.js.map +1 -1
- package/build/__tests__/EntityCompanion-test.js +3 -3
- package/build/__tests__/EntityCompanion-test.js.map +1 -1
- package/build/__tests__/EntityCompanionProvider-test.js +1 -1
- package/build/__tests__/EntityCompanionProvider-test.js.map +1 -1
- package/build/__tests__/EntityDatabaseAdapter-test.js +12 -12
- package/build/__tests__/EntityDatabaseAdapter-test.js.map +1 -1
- package/build/__tests__/EntityEdges-test.js +103 -6
- package/build/__tests__/EntityEdges-test.js.map +1 -1
- package/build/__tests__/EntityFields-test.js +18 -26
- package/build/__tests__/EntityFields-test.js.map +1 -1
- package/build/__tests__/EntityLoader-constructor-test.d.ts +22 -0
- package/build/__tests__/EntityLoader-constructor-test.js +111 -0
- package/build/__tests__/EntityLoader-constructor-test.js.map +1 -0
- package/build/__tests__/EntityLoader-test.js +81 -73
- package/build/__tests__/EntityLoader-test.js.map +1 -1
- package/build/__tests__/EntityMutator-MutationCacheConsistency-test.d.ts +1 -0
- package/build/__tests__/EntityMutator-MutationCacheConsistency-test.js +81 -0
- package/build/__tests__/EntityMutator-MutationCacheConsistency-test.js.map +1 -0
- package/build/__tests__/EntityMutator-test.js +138 -136
- package/build/__tests__/EntityMutator-test.js.map +1 -1
- package/build/__tests__/EntityPrivacyPolicy-test.js +143 -67
- package/build/__tests__/EntityPrivacyPolicy-test.js.map +1 -1
- package/build/__tests__/EntitySecondaryCacheLoader-test.js +15 -15
- package/build/__tests__/EntitySecondaryCacheLoader-test.js.map +1 -1
- package/build/__tests__/EntitySelfReferentialEdges-test.js +13 -12
- package/build/__tests__/EntitySelfReferentialEdges-test.js.map +1 -1
- package/build/__tests__/ReadonlyEntity-test.js +12 -12
- package/build/__tests__/ReadonlyEntity-test.js.map +1 -1
- package/build/__tests__/ViewerContext-test.js +2 -2
- package/build/__tests__/ViewerContext-test.js.map +1 -1
- package/build/__tests__/ViewerScopedEntityCompanion-test.js +2 -2
- package/build/__tests__/ViewerScopedEntityCompanion-test.js.map +1 -1
- package/build/__tests__/ViewerScopedEntityCompanionProvider-test.js +2 -2
- package/build/__tests__/ViewerScopedEntityCompanionProvider-test.js.map +1 -1
- package/build/__tests__/ViewerScopedEntityLoaderFactory-test.js +5 -5
- package/build/__tests__/ViewerScopedEntityLoaderFactory-test.js.map +1 -1
- package/build/__tests__/ViewerScopedEntityMutatorFactory-test.js +5 -5
- package/build/__tests__/ViewerScopedEntityMutatorFactory-test.js.map +1 -1
- package/build/__tests__/cases/TwoEntitySameTableDisjointRows-test.js +5 -5
- package/build/__tests__/cases/TwoEntitySameTableDisjointRows-test.js.map +1 -1
- package/build/__tests__/cases/TwoEntitySameTableOverlappingRows-test.js +2 -2
- package/build/__tests__/cases/TwoEntitySameTableOverlappingRows-test.js.map +1 -1
- package/build/__tests__/entityUtils-test.js +21 -21
- package/build/__tests__/entityUtils-test.js.map +1 -1
- package/build/index.d.ts +3 -0
- package/build/index.js +5 -1
- package/build/index.js.map +1 -1
- package/build/internal/EntityDataManager.js +8 -7
- package/build/internal/EntityDataManager.js.map +1 -1
- package/build/internal/EntityFieldTransformationUtils.js +2 -2
- package/build/internal/EntityFieldTransformationUtils.js.map +1 -1
- package/build/internal/ReadThroughEntityCache.js +4 -4
- package/build/internal/ReadThroughEntityCache.js.map +1 -1
- package/build/internal/__tests__/EntityDataManager-test.js +21 -21
- package/build/internal/__tests__/EntityDataManager-test.js.map +1 -1
- package/build/internal/__tests__/EntityFieldTransformationUtils-test.js +8 -8
- package/build/internal/__tests__/EntityFieldTransformationUtils-test.js.map +1 -1
- package/build/internal/__tests__/ReadThroughEntityCache-test.js +48 -48
- package/build/internal/__tests__/ReadThroughEntityCache-test.js.map +1 -1
- package/build/metrics/EntityMetricsUtils.js +1 -1
- package/build/metrics/EntityMetricsUtils.js.map +1 -1
- package/build/metrics/IEntityMetricsAdapter.d.ts +16 -0
- package/build/metrics/IEntityMetricsAdapter.js +6 -1
- package/build/metrics/IEntityMetricsAdapter.js.map +1 -1
- package/build/metrics/NoOpEntityMetricsAdapter.d.ts +2 -1
- package/build/metrics/NoOpEntityMetricsAdapter.js +1 -0
- package/build/metrics/NoOpEntityMetricsAdapter.js.map +1 -1
- package/build/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.js +4 -4
- package/build/rules/__tests__/AlwaysAllowPrivacyPolicyRule-test.js.map +1 -1
- package/build/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.js +4 -4
- package/build/rules/__tests__/AlwaysDenyPrivacyPolicyRule-test.js.map +1 -1
- package/build/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.js +4 -4
- package/build/rules/__tests__/AlwaysSkipPrivacyPolicyRule-test.js.map +1 -1
- package/build/testfixtures/DateIDTestEntity.js.map +1 -1
- package/build/testfixtures/SimpleTestEntity.js.map +1 -1
- package/build/testfixtures/TestEntity.d.ts +6 -6
- package/build/testfixtures/TestEntity.js +4 -4
- package/build/testfixtures/TestEntity.js.map +1 -1
- package/build/testfixtures/TestEntity2.d.ts +5 -5
- package/build/testfixtures/TestEntity2.js.map +1 -1
- package/build/testfixtures/TestEntityNumberKey.js +1 -1
- package/build/testfixtures/TestEntityNumberKey.js.map +1 -1
- package/build/utils/collections/__tests__/maps-test.js +13 -13
- package/build/utils/collections/__tests__/maps-test.js.map +1 -1
- package/build/utils/collections/maps.js +1 -1
- package/build/utils/collections/maps.js.map +1 -1
- package/build/utils/testing/PrivacyPolicyRuleTestUtils.d.ts +6 -6
- package/build/utils/testing/PrivacyPolicyRuleTestUtils.js +1 -1
- package/build/utils/testing/PrivacyPolicyRuleTestUtils.js.map +1 -1
- package/build/utils/testing/StubCacheAdapter.js +1 -1
- package/build/utils/testing/StubCacheAdapter.js.map +1 -1
- package/build/utils/testing/StubDatabaseAdapter.js +7 -7
- package/build/utils/testing/StubDatabaseAdapter.js.map +1 -1
- package/build/utils/testing/__tests__/StubDatabaseAdapter-test.js +26 -26
- package/build/utils/testing/__tests__/StubDatabaseAdapter-test.js.map +1 -1
- package/build/utils/testing/describeFieldTestCase.d.ts +2 -0
- package/build/utils/testing/describeFieldTestCase.js +18 -0
- package/build/utils/testing/describeFieldTestCase.js.map +1 -0
- package/package.json +2 -1
- package/src/Entity.ts +10 -2
- package/src/EntityAssociationLoader.ts +1 -1
- package/src/EntityCompanion.ts +10 -2
- package/src/EntityCompanionProvider.ts +5 -9
- package/src/EntityConfiguration.ts +1 -1
- package/src/EntityDatabaseAdapter.ts +10 -8
- package/src/EntityFieldDefinition.ts +124 -0
- package/src/EntityFields.ts +11 -126
- package/src/EntityLoader.ts +12 -4
- package/src/EntityLoaderFactory.ts +5 -2
- package/src/EntityMutationInfo.ts +47 -0
- package/src/EntityMutationTriggerConfiguration.ts +5 -5
- package/src/EntityMutationValidator.ts +10 -4
- package/src/EntityMutator.ts +98 -76
- package/src/EntityPrivacyPolicy.ts +77 -19
- package/src/EntityQueryContext.ts +20 -0
- package/src/ReadonlyEntity.ts +3 -2
- package/src/ViewerScopedEntityCompanion.ts +8 -0
- package/src/__tests__/Entity-test.ts +8 -8
- package/src/__tests__/EntityCommonUseCases-test.ts +4 -4
- package/src/__tests__/EntityEdges-test.ts +169 -14
- package/src/__tests__/EntityFields-test.ts +6 -23
- package/src/__tests__/EntityLoader-constructor-test.ts +177 -0
- package/src/__tests__/EntityLoader-test.ts +48 -20
- package/src/__tests__/EntityMutator-MutationCacheConsistency-test.ts +105 -0
- package/src/__tests__/EntityMutator-test.ts +153 -146
- package/src/__tests__/EntityPrivacyPolicy-test.ts +215 -78
- package/src/__tests__/EntitySecondaryCacheLoader-test.ts +7 -9
- package/src/__tests__/EntitySelfReferentialEdges-test.ts +6 -5
- package/src/__tests__/ReadonlyEntity-test.ts +1 -1
- package/src/__tests__/ViewerContext-test.ts +7 -6
- package/src/__tests__/ViewerScopedEntityCompanion-test.ts +11 -10
- package/src/__tests__/ViewerScopedEntityMutatorFactory-test.ts +4 -3
- package/src/__tests__/cases/TwoEntitySameTableDisjointRows-test.ts +6 -6
- package/src/__tests__/cases/TwoEntitySameTableOverlappingRows-test.ts +4 -4
- package/src/index.ts +3 -0
- package/src/internal/EntityDataManager.ts +2 -1
- package/src/internal/__tests__/EntityDataManager-test.ts +6 -6
- package/src/internal/__tests__/ReadThroughEntityCache-test.ts +15 -13
- package/src/metrics/EntityMetricsUtils.ts +56 -50
- package/src/metrics/IEntityMetricsAdapter.ts +23 -0
- package/src/metrics/NoOpEntityMetricsAdapter.ts +2 -0
- package/src/testfixtures/DateIDTestEntity.ts +4 -4
- package/src/testfixtures/SimpleTestEntity.ts +4 -4
- package/src/testfixtures/TestEntity.ts +8 -8
- package/src/testfixtures/TestEntity2.ts +4 -4
- package/src/testfixtures/TestEntityNumberKey.ts +6 -6
- package/src/utils/testing/StubDatabaseAdapter.ts +4 -4
- package/src/utils/testing/__tests__/StubDatabaseAdapter-test.ts +18 -18
- package/src/utils/testing/describeFieldTestCase.ts +21 -0
- package/CHANGELOG.md +0 -241
package/build/EntityMutator.js
CHANGED
|
@@ -3,20 +3,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.DeleteMutator = exports.UpdateMutator = exports.CreateMutator =
|
|
6
|
+
exports.DeleteMutator = exports.UpdateMutator = exports.CreateMutator = void 0;
|
|
7
7
|
const results_1 = require("@expo/results");
|
|
8
8
|
const invariant_1 = __importDefault(require("invariant"));
|
|
9
|
-
const
|
|
9
|
+
const EntityFieldDefinition_1 = require("./EntityFieldDefinition");
|
|
10
|
+
const EntityMutationInfo_1 = require("./EntityMutationInfo");
|
|
10
11
|
const EntityInvalidFieldValueError_1 = __importDefault(require("./errors/EntityInvalidFieldValueError"));
|
|
11
12
|
const EntityMetricsUtils_1 = require("./metrics/EntityMetricsUtils");
|
|
12
13
|
const IEntityMetricsAdapter_1 = require("./metrics/IEntityMetricsAdapter");
|
|
13
14
|
const maps_1 = require("./utils/collections/maps");
|
|
14
|
-
var EntityMutationType;
|
|
15
|
-
(function (EntityMutationType) {
|
|
16
|
-
EntityMutationType[EntityMutationType["CREATE"] = 0] = "CREATE";
|
|
17
|
-
EntityMutationType[EntityMutationType["UPDATE"] = 1] = "UPDATE";
|
|
18
|
-
EntityMutationType[EntityMutationType["DELETE"] = 2] = "DELETE";
|
|
19
|
-
})(EntityMutationType = exports.EntityMutationType || (exports.EntityMutationType = {}));
|
|
20
15
|
class BaseMutator {
|
|
21
16
|
constructor(viewerContext, queryContext, entityConfiguration, entityClass, privacyPolicy, mutationValidators, mutationTriggers, entityLoaderFactory, databaseAdapter, metricsAdapter) {
|
|
22
17
|
this.viewerContext = viewerContext;
|
|
@@ -34,20 +29,23 @@ class BaseMutator {
|
|
|
34
29
|
for (const fieldName in fields) {
|
|
35
30
|
const fieldValue = fields[fieldName];
|
|
36
31
|
const fieldDefinition = this.entityConfiguration.schema.get(fieldName);
|
|
37
|
-
invariant_1.default(fieldDefinition, `must have field definition for field = ${fieldName}`);
|
|
32
|
+
(0, invariant_1.default)(fieldDefinition, `must have field definition for field = ${fieldName}`);
|
|
38
33
|
const isInputValid = fieldDefinition.validateInputValue(fieldValue);
|
|
39
34
|
if (!isInputValid) {
|
|
40
35
|
throw new EntityInvalidFieldValueError_1.default(this.entityClass, fieldName, fieldValue);
|
|
41
36
|
}
|
|
42
37
|
}
|
|
43
38
|
}
|
|
44
|
-
async
|
|
45
|
-
|
|
39
|
+
async executeMutationValidatorsAsync(validators, queryContext, entity, mutationInfo) {
|
|
40
|
+
await Promise.all(validators.map((validator) => validator.executeAsync(this.viewerContext, queryContext, entity, mutationInfo)));
|
|
41
|
+
}
|
|
42
|
+
async executeMutationTriggersAsync(triggers, queryContext, entity, mutationInfo) {
|
|
43
|
+
if (!triggers) {
|
|
46
44
|
return;
|
|
47
45
|
}
|
|
48
|
-
await Promise.all(
|
|
46
|
+
await Promise.all(triggers.map((trigger) => trigger.executeAsync(this.viewerContext, queryContext, entity, mutationInfo)));
|
|
49
47
|
}
|
|
50
|
-
async
|
|
48
|
+
async executeNonTransactionalMutationTriggersAsync(triggers, entity, mutationInfo) {
|
|
51
49
|
if (!triggers) {
|
|
52
50
|
return;
|
|
53
51
|
}
|
|
@@ -77,13 +75,13 @@ class CreateMutator extends BaseMutator {
|
|
|
77
75
|
* @returns authorized, cached, newly-created entity result, where result error can be UnauthorizedError
|
|
78
76
|
*/
|
|
79
77
|
async createAsync() {
|
|
80
|
-
return await EntityMetricsUtils_1.timeAndLogMutationEventAsync(this.metricsAdapter, IEntityMetricsAdapter_1.EntityMetricsMutationType.CREATE, this.entityClass.name)(this.createInTransactionAsync());
|
|
78
|
+
return await (0, EntityMetricsUtils_1.timeAndLogMutationEventAsync)(this.metricsAdapter, IEntityMetricsAdapter_1.EntityMetricsMutationType.CREATE, this.entityClass.name)(this.createInTransactionAsync());
|
|
81
79
|
}
|
|
82
80
|
/**
|
|
83
81
|
* Convenience method that returns the new entity or throws upon create failure.
|
|
84
82
|
*/
|
|
85
83
|
async enforceCreateAsync() {
|
|
86
|
-
return await results_1.enforceAsyncResult(this.createAsync());
|
|
84
|
+
return await (0, results_1.enforceAsyncResult)(this.createAsync());
|
|
87
85
|
}
|
|
88
86
|
async createInTransactionAsync() {
|
|
89
87
|
return await this.queryContext.runInTransactionIfNotInTransactionAsync((innerQueryContext) => this.createInternalAsync(innerQueryContext));
|
|
@@ -94,24 +92,24 @@ class CreateMutator extends BaseMutator {
|
|
|
94
92
|
[this.entityConfiguration.idField]: '00000000-0000-0000-0000-000000000000',
|
|
95
93
|
...this.fieldsForEntity,
|
|
96
94
|
});
|
|
97
|
-
const authorizeCreateResult = await results_1.asyncResult(this.privacyPolicy.authorizeCreateAsync(this.viewerContext, queryContext, temporaryEntityForPrivacyCheck));
|
|
95
|
+
const authorizeCreateResult = await (0, results_1.asyncResult)(this.privacyPolicy.authorizeCreateAsync(this.viewerContext, queryContext, temporaryEntityForPrivacyCheck, this.metricsAdapter));
|
|
98
96
|
if (!authorizeCreateResult.ok) {
|
|
99
97
|
return authorizeCreateResult;
|
|
100
98
|
}
|
|
101
|
-
await this.
|
|
102
|
-
await this.
|
|
103
|
-
await this.
|
|
99
|
+
await this.executeMutationValidatorsAsync(this.mutationValidators, queryContext, temporaryEntityForPrivacyCheck, { type: EntityMutationInfo_1.EntityMutationType.CREATE });
|
|
100
|
+
await this.executeMutationTriggersAsync(this.mutationTriggers.beforeAll, queryContext, temporaryEntityForPrivacyCheck, { type: EntityMutationInfo_1.EntityMutationType.CREATE });
|
|
101
|
+
await this.executeMutationTriggersAsync(this.mutationTriggers.beforeCreate, queryContext, temporaryEntityForPrivacyCheck, { type: EntityMutationInfo_1.EntityMutationType.CREATE });
|
|
104
102
|
const insertResult = await this.databaseAdapter.insertAsync(queryContext, this.fieldsForEntity);
|
|
105
103
|
const entityLoader = this.entityLoaderFactory.forLoad(this.viewerContext, queryContext);
|
|
106
|
-
queryContext.
|
|
104
|
+
queryContext.appendPostCommitInvalidationCallback(entityLoader.invalidateFieldsAsync.bind(entityLoader, insertResult));
|
|
107
105
|
const unauthorizedEntityAfterInsert = new this.entityClass(this.viewerContext, insertResult);
|
|
108
106
|
const newEntity = await entityLoader
|
|
109
107
|
.enforcing()
|
|
110
108
|
.loadByIDAsync(unauthorizedEntityAfterInsert.getID());
|
|
111
|
-
await this.
|
|
112
|
-
await this.
|
|
113
|
-
queryContext.appendPostCommitCallback(this.
|
|
114
|
-
return results_1.result(newEntity);
|
|
109
|
+
await this.executeMutationTriggersAsync(this.mutationTriggers.afterCreate, queryContext, newEntity, { type: EntityMutationInfo_1.EntityMutationType.CREATE });
|
|
110
|
+
await this.executeMutationTriggersAsync(this.mutationTriggers.afterAll, queryContext, newEntity, { type: EntityMutationInfo_1.EntityMutationType.CREATE });
|
|
111
|
+
queryContext.appendPostCommitCallback(this.executeNonTransactionalMutationTriggersAsync.bind(this, this.mutationTriggers.afterCommit, newEntity, { type: EntityMutationInfo_1.EntityMutationType.CREATE }));
|
|
112
|
+
return (0, results_1.result)(newEntity);
|
|
115
113
|
}
|
|
116
114
|
}
|
|
117
115
|
exports.CreateMutator = CreateMutator;
|
|
@@ -142,13 +140,13 @@ class UpdateMutator extends BaseMutator {
|
|
|
142
140
|
* @returns authorized updated entity result, where result error can be UnauthorizedError
|
|
143
141
|
*/
|
|
144
142
|
async updateAsync() {
|
|
145
|
-
return await EntityMetricsUtils_1.timeAndLogMutationEventAsync(this.metricsAdapter, IEntityMetricsAdapter_1.EntityMetricsMutationType.UPDATE, this.entityClass.name)(this.updateInTransactionAsync());
|
|
143
|
+
return await (0, EntityMetricsUtils_1.timeAndLogMutationEventAsync)(this.metricsAdapter, IEntityMetricsAdapter_1.EntityMetricsMutationType.UPDATE, this.entityClass.name)(this.updateInTransactionAsync());
|
|
146
144
|
}
|
|
147
145
|
/**
|
|
148
146
|
* Convenience method that returns the updated entity or throws upon update failure.
|
|
149
147
|
*/
|
|
150
148
|
async enforceUpdateAsync() {
|
|
151
|
-
return await results_1.enforceAsyncResult(this.updateAsync());
|
|
149
|
+
return await (0, results_1.enforceAsyncResult)(this.updateAsync());
|
|
152
150
|
}
|
|
153
151
|
async updateInTransactionAsync() {
|
|
154
152
|
return await this.queryContext.runInTransactionIfNotInTransactionAsync((innerQueryContext) => this.updateInternalAsync(innerQueryContext));
|
|
@@ -156,25 +154,25 @@ class UpdateMutator extends BaseMutator {
|
|
|
156
154
|
async updateInternalAsync(queryContext) {
|
|
157
155
|
this.validateFields(this.updatedFields);
|
|
158
156
|
const entityAboutToBeUpdated = new this.entityClass(this.viewerContext, this.fieldsForEntity);
|
|
159
|
-
const authorizeUpdateResult = await results_1.asyncResult(this.privacyPolicy.authorizeUpdateAsync(this.viewerContext, queryContext, entityAboutToBeUpdated));
|
|
157
|
+
const authorizeUpdateResult = await (0, results_1.asyncResult)(this.privacyPolicy.authorizeUpdateAsync(this.viewerContext, queryContext, entityAboutToBeUpdated, this.metricsAdapter));
|
|
160
158
|
if (!authorizeUpdateResult.ok) {
|
|
161
159
|
return authorizeUpdateResult;
|
|
162
160
|
}
|
|
163
|
-
await this.
|
|
164
|
-
await this.
|
|
165
|
-
await this.
|
|
161
|
+
await this.executeMutationValidatorsAsync(this.mutationValidators, queryContext, entityAboutToBeUpdated, { type: EntityMutationInfo_1.EntityMutationType.UPDATE, previousValue: this.originalEntity });
|
|
162
|
+
await this.executeMutationTriggersAsync(this.mutationTriggers.beforeAll, queryContext, entityAboutToBeUpdated, { type: EntityMutationInfo_1.EntityMutationType.UPDATE, previousValue: this.originalEntity });
|
|
163
|
+
await this.executeMutationTriggersAsync(this.mutationTriggers.beforeUpdate, queryContext, entityAboutToBeUpdated, { type: EntityMutationInfo_1.EntityMutationType.UPDATE, previousValue: this.originalEntity });
|
|
166
164
|
const updateResult = await this.databaseAdapter.updateAsync(queryContext, this.entityConfiguration.idField, entityAboutToBeUpdated.getID(), this.updatedFields);
|
|
167
165
|
const entityLoader = this.entityLoaderFactory.forLoad(this.viewerContext, queryContext);
|
|
168
|
-
queryContext.
|
|
169
|
-
queryContext.
|
|
166
|
+
queryContext.appendPostCommitInvalidationCallback(entityLoader.invalidateFieldsAsync.bind(entityLoader, this.originalEntity.getAllDatabaseFields()));
|
|
167
|
+
queryContext.appendPostCommitInvalidationCallback(entityLoader.invalidateFieldsAsync.bind(entityLoader, this.fieldsForEntity));
|
|
170
168
|
const unauthorizedEntityAfterUpdate = new this.entityClass(this.viewerContext, updateResult);
|
|
171
169
|
const updatedEntity = await entityLoader
|
|
172
170
|
.enforcing()
|
|
173
171
|
.loadByIDAsync(unauthorizedEntityAfterUpdate.getID());
|
|
174
|
-
await this.
|
|
175
|
-
await this.
|
|
176
|
-
queryContext.appendPostCommitCallback(this.
|
|
177
|
-
return results_1.result(updatedEntity);
|
|
172
|
+
await this.executeMutationTriggersAsync(this.mutationTriggers.afterUpdate, queryContext, updatedEntity, { type: EntityMutationInfo_1.EntityMutationType.UPDATE, previousValue: this.originalEntity });
|
|
173
|
+
await this.executeMutationTriggersAsync(this.mutationTriggers.afterAll, queryContext, updatedEntity, { type: EntityMutationInfo_1.EntityMutationType.UPDATE, previousValue: this.originalEntity });
|
|
174
|
+
queryContext.appendPostCommitCallback(this.executeNonTransactionalMutationTriggersAsync.bind(this, this.mutationTriggers.afterCommit, updatedEntity, { type: EntityMutationInfo_1.EntityMutationType.UPDATE, previousValue: this.originalEntity }));
|
|
175
|
+
return (0, results_1.result)(updatedEntity);
|
|
178
176
|
}
|
|
179
177
|
}
|
|
180
178
|
exports.UpdateMutator = UpdateMutator;
|
|
@@ -191,34 +189,34 @@ class DeleteMutator extends BaseMutator {
|
|
|
191
189
|
* @returns void result, where result error can be UnauthorizedError
|
|
192
190
|
*/
|
|
193
191
|
async deleteAsync() {
|
|
194
|
-
return await EntityMetricsUtils_1.timeAndLogMutationEventAsync(this.metricsAdapter, IEntityMetricsAdapter_1.EntityMetricsMutationType.DELETE, this.entityClass.name)(this.deleteInTransactionAsync());
|
|
192
|
+
return await (0, EntityMetricsUtils_1.timeAndLogMutationEventAsync)(this.metricsAdapter, IEntityMetricsAdapter_1.EntityMetricsMutationType.DELETE, this.entityClass.name)(this.deleteInTransactionAsync(new Set(), false, null));
|
|
195
193
|
}
|
|
196
194
|
/**
|
|
197
195
|
* Convenience method that throws upon delete failure.
|
|
198
196
|
*/
|
|
199
197
|
async enforceDeleteAsync() {
|
|
200
|
-
return await results_1.enforceAsyncResult(this.deleteAsync());
|
|
198
|
+
return await (0, results_1.enforceAsyncResult)(this.deleteAsync());
|
|
201
199
|
}
|
|
202
|
-
async deleteInTransactionAsync(processedEntityIdentifiersFromTransitiveDeletions
|
|
203
|
-
return await this.queryContext.runInTransactionIfNotInTransactionAsync((innerQueryContext) => this.deleteInternalAsync(innerQueryContext, processedEntityIdentifiersFromTransitiveDeletions, skipDatabaseDeletion));
|
|
200
|
+
async deleteInTransactionAsync(processedEntityIdentifiersFromTransitiveDeletions, skipDatabaseDeletion, cascadingDeleteCause) {
|
|
201
|
+
return await this.queryContext.runInTransactionIfNotInTransactionAsync((innerQueryContext) => this.deleteInternalAsync(innerQueryContext, processedEntityIdentifiersFromTransitiveDeletions, skipDatabaseDeletion, cascadingDeleteCause));
|
|
204
202
|
}
|
|
205
|
-
async deleteInternalAsync(queryContext, processedEntityIdentifiersFromTransitiveDeletions, skipDatabaseDeletion) {
|
|
206
|
-
const authorizeDeleteResult = await results_1.asyncResult(this.privacyPolicy.authorizeDeleteAsync(this.viewerContext, queryContext, this.entity));
|
|
203
|
+
async deleteInternalAsync(queryContext, processedEntityIdentifiersFromTransitiveDeletions, skipDatabaseDeletion, cascadingDeleteCause) {
|
|
204
|
+
const authorizeDeleteResult = await (0, results_1.asyncResult)(this.privacyPolicy.authorizeDeleteAsync(this.viewerContext, queryContext, this.entity, this.metricsAdapter));
|
|
207
205
|
if (!authorizeDeleteResult.ok) {
|
|
208
206
|
return authorizeDeleteResult;
|
|
209
207
|
}
|
|
210
|
-
await this.processEntityDeletionForInboundEdgesAsync(this.entity, queryContext, processedEntityIdentifiersFromTransitiveDeletions);
|
|
211
|
-
await this.
|
|
212
|
-
await this.
|
|
208
|
+
await this.processEntityDeletionForInboundEdgesAsync(this.entity, queryContext, processedEntityIdentifiersFromTransitiveDeletions, cascadingDeleteCause);
|
|
209
|
+
await this.executeMutationTriggersAsync(this.mutationTriggers.beforeAll, queryContext, this.entity, { type: EntityMutationInfo_1.EntityMutationType.DELETE, cascadingDeleteCause });
|
|
210
|
+
await this.executeMutationTriggersAsync(this.mutationTriggers.beforeDelete, queryContext, this.entity, { type: EntityMutationInfo_1.EntityMutationType.DELETE, cascadingDeleteCause });
|
|
213
211
|
if (!skipDatabaseDeletion) {
|
|
214
212
|
await this.databaseAdapter.deleteAsync(queryContext, this.entityConfiguration.idField, this.entity.getID());
|
|
215
213
|
}
|
|
216
214
|
const entityLoader = this.entityLoaderFactory.forLoad(this.viewerContext, queryContext);
|
|
217
|
-
queryContext.
|
|
218
|
-
await this.
|
|
219
|
-
await this.
|
|
220
|
-
queryContext.appendPostCommitCallback(this.
|
|
221
|
-
return results_1.result();
|
|
215
|
+
queryContext.appendPostCommitInvalidationCallback(entityLoader.invalidateFieldsAsync.bind(entityLoader, this.entity.getAllDatabaseFields()));
|
|
216
|
+
await this.executeMutationTriggersAsync(this.mutationTriggers.afterDelete, queryContext, this.entity, { type: EntityMutationInfo_1.EntityMutationType.DELETE, cascadingDeleteCause });
|
|
217
|
+
await this.executeMutationTriggersAsync(this.mutationTriggers.afterAll, queryContext, this.entity, { type: EntityMutationInfo_1.EntityMutationType.DELETE, cascadingDeleteCause });
|
|
218
|
+
queryContext.appendPostCommitCallback(this.executeNonTransactionalMutationTriggersAsync.bind(this, this.mutationTriggers.afterCommit, this.entity, { type: EntityMutationInfo_1.EntityMutationType.DELETE, cascadingDeleteCause }));
|
|
219
|
+
return (0, results_1.result)();
|
|
222
220
|
}
|
|
223
221
|
/**
|
|
224
222
|
* Finds all entities referencing the specified entity and either deletes them, nullifies
|
|
@@ -234,7 +232,7 @@ class DeleteMutator extends BaseMutator {
|
|
|
234
232
|
*
|
|
235
233
|
* @param entity - entity to find all references to
|
|
236
234
|
*/
|
|
237
|
-
async processEntityDeletionForInboundEdgesAsync(entity, queryContext, processedEntityIdentifiers) {
|
|
235
|
+
async processEntityDeletionForInboundEdgesAsync(entity, queryContext, processedEntityIdentifiers, cascadingDeleteCause) {
|
|
238
236
|
// prevent infinite reference cycles by keeping track of entities already processed
|
|
239
237
|
if (processedEntityIdentifiers.has(entity.getUniqueIdentifier())) {
|
|
240
238
|
return;
|
|
@@ -244,7 +242,7 @@ class DeleteMutator extends BaseMutator {
|
|
|
244
242
|
const entityConfiguration = companionDefinition.entityConfiguration;
|
|
245
243
|
const inboundEdges = entityConfiguration.getInboundEdges();
|
|
246
244
|
await Promise.all(inboundEdges.map(async (entityClass) => {
|
|
247
|
-
return await maps_1.mapMapAsync(entityClass.getCompanionDefinition().entityConfiguration.schema, async (fieldDefinition, fieldName) => {
|
|
245
|
+
return await (0, maps_1.mapMapAsync)(entityClass.getCompanionDefinition().entityConfiguration.schema, async (fieldDefinition, fieldName) => {
|
|
248
246
|
const association = fieldDefinition.association;
|
|
249
247
|
if (!association) {
|
|
250
248
|
return;
|
|
@@ -279,26 +277,32 @@ class DeleteMutator extends BaseMutator {
|
|
|
279
277
|
}
|
|
280
278
|
switch (association.edgeDeletionBehavior) {
|
|
281
279
|
case undefined:
|
|
282
|
-
case
|
|
280
|
+
case EntityFieldDefinition_1.EntityEdgeDeletionBehavior.CASCADE_DELETE_INVALIDATE_CACHE: {
|
|
283
281
|
await Promise.all(inboundReferenceEntities.map((inboundReferenceEntity) => mutatorFactory
|
|
284
282
|
.forDelete(inboundReferenceEntity, queryContext)
|
|
285
283
|
.deleteInTransactionAsync(processedEntityIdentifiers,
|
|
286
|
-
/* skipDatabaseDeletion */ true // deletion is handled by DB
|
|
287
|
-
|
|
284
|
+
/* skipDatabaseDeletion */ true, // deletion is handled by DB
|
|
285
|
+
{
|
|
286
|
+
entity,
|
|
287
|
+
cascadingDeleteCause,
|
|
288
|
+
})));
|
|
288
289
|
break;
|
|
289
290
|
}
|
|
290
|
-
case
|
|
291
|
+
case EntityFieldDefinition_1.EntityEdgeDeletionBehavior.SET_NULL: {
|
|
291
292
|
await Promise.all(inboundReferenceEntities.map((inboundReferenceEntity) => mutatorFactory
|
|
292
293
|
.forUpdate(inboundReferenceEntity, queryContext)
|
|
293
294
|
.setField(fieldName, null)
|
|
294
295
|
.enforceUpdateAsync()));
|
|
295
296
|
break;
|
|
296
297
|
}
|
|
297
|
-
case
|
|
298
|
+
case EntityFieldDefinition_1.EntityEdgeDeletionBehavior.CASCADE_DELETE: {
|
|
298
299
|
await Promise.all(inboundReferenceEntities.map((inboundReferenceEntity) => mutatorFactory
|
|
299
300
|
.forDelete(inboundReferenceEntity, queryContext)
|
|
300
301
|
.deleteInTransactionAsync(processedEntityIdentifiers,
|
|
301
|
-
/* skipDatabaseDeletion */ false
|
|
302
|
+
/* skipDatabaseDeletion */ false, {
|
|
303
|
+
entity,
|
|
304
|
+
cascadingDeleteCause,
|
|
305
|
+
})));
|
|
302
306
|
}
|
|
303
307
|
}
|
|
304
308
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityMutator.js","sourceRoot":"","sources":["../src/EntityMutator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"EntityMutator.js","sourceRoot":"","sources":["../src/EntityMutator.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { EntityQueryContext } from './EntityQueryContext';
|
|
|
2
2
|
import ReadonlyEntity from './ReadonlyEntity';
|
|
3
3
|
import ViewerContext from './ViewerContext';
|
|
4
4
|
import EntityNotAuthorizedError from './errors/EntityNotAuthorizedError';
|
|
5
|
+
import IEntityMetricsAdapter from './metrics/IEntityMetricsAdapter';
|
|
5
6
|
import PrivacyPolicyRule from './rules/PrivacyPolicyRule';
|
|
6
7
|
export declare enum EntityPrivacyPolicyEvaluationMode {
|
|
7
8
|
ENFORCE = 0,
|
|
@@ -66,7 +67,7 @@ export default abstract class EntityPrivacyPolicy<TFields, TID extends NonNullab
|
|
|
66
67
|
* @returns entity if authorized
|
|
67
68
|
* @throws {@link EntityNotAuthorizedError} when not authorized
|
|
68
69
|
*/
|
|
69
|
-
authorizeCreateAsync(viewerContext: TViewerContext, queryContext: EntityQueryContext, entity: TEntity): Promise<TEntity>;
|
|
70
|
+
authorizeCreateAsync(viewerContext: TViewerContext, queryContext: EntityQueryContext, entity: TEntity, metricsAdapter: IEntityMetricsAdapter): Promise<TEntity>;
|
|
70
71
|
/**
|
|
71
72
|
* Authorize an entity against read policy.
|
|
72
73
|
* @param viewerContext - viewer context of user reading the entity
|
|
@@ -75,7 +76,7 @@ export default abstract class EntityPrivacyPolicy<TFields, TID extends NonNullab
|
|
|
75
76
|
* @returns entity if authorized
|
|
76
77
|
* @throws {@link EntityNotAuthorizedError} when not authorized
|
|
77
78
|
*/
|
|
78
|
-
authorizeReadAsync(viewerContext: TViewerContext, queryContext: EntityQueryContext, entity: TEntity): Promise<TEntity>;
|
|
79
|
+
authorizeReadAsync(viewerContext: TViewerContext, queryContext: EntityQueryContext, entity: TEntity, metricsAdapter: IEntityMetricsAdapter): Promise<TEntity>;
|
|
79
80
|
/**
|
|
80
81
|
* Authorize an entity against update policy.
|
|
81
82
|
* @param viewerContext - viewer context of user updating the entity
|
|
@@ -84,7 +85,7 @@ export default abstract class EntityPrivacyPolicy<TFields, TID extends NonNullab
|
|
|
84
85
|
* @returns entity if authorized
|
|
85
86
|
* @throws {@link EntityNotAuthorizedError} when not authorized
|
|
86
87
|
*/
|
|
87
|
-
authorizeUpdateAsync(viewerContext: TViewerContext, queryContext: EntityQueryContext, entity: TEntity): Promise<TEntity>;
|
|
88
|
+
authorizeUpdateAsync(viewerContext: TViewerContext, queryContext: EntityQueryContext, entity: TEntity, metricsAdapter: IEntityMetricsAdapter): Promise<TEntity>;
|
|
88
89
|
/**
|
|
89
90
|
* Authorize an entity against deletion policy.
|
|
90
91
|
* @param viewerContext - viewer context of user deleting the entity
|
|
@@ -93,7 +94,7 @@ export default abstract class EntityPrivacyPolicy<TFields, TID extends NonNullab
|
|
|
93
94
|
* @returns entity if authorized
|
|
94
95
|
* @throws {@link EntityNotAuthorizedError} when not authorized
|
|
95
96
|
*/
|
|
96
|
-
authorizeDeleteAsync(viewerContext: TViewerContext, queryContext: EntityQueryContext, entity: TEntity): Promise<TEntity>;
|
|
97
|
+
authorizeDeleteAsync(viewerContext: TViewerContext, queryContext: EntityQueryContext, entity: TEntity, metricsAdapter: IEntityMetricsAdapter): Promise<TEntity>;
|
|
97
98
|
private authorizeForRulesetAsync;
|
|
98
99
|
private authorizeForRulesetInnerAsync;
|
|
99
100
|
}
|
|
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.EntityAuthorizationAction = exports.EntityPrivacyPolicyEvaluationMode = void 0;
|
|
7
7
|
const EntityNotAuthorizedError_1 = __importDefault(require("./errors/EntityNotAuthorizedError"));
|
|
8
|
+
const IEntityMetricsAdapter_1 = require("./metrics/IEntityMetricsAdapter");
|
|
8
9
|
const PrivacyPolicyRule_1 = require("./rules/PrivacyPolicyRule");
|
|
9
10
|
var EntityPrivacyPolicyEvaluationMode;
|
|
10
11
|
(function (EntityPrivacyPolicyEvaluationMode) {
|
|
@@ -68,8 +69,8 @@ class EntityPrivacyPolicy {
|
|
|
68
69
|
* @returns entity if authorized
|
|
69
70
|
* @throws {@link EntityNotAuthorizedError} when not authorized
|
|
70
71
|
*/
|
|
71
|
-
async authorizeCreateAsync(viewerContext, queryContext, entity) {
|
|
72
|
-
return await this.authorizeForRulesetAsync(this.createRules, viewerContext, queryContext, entity, EntityAuthorizationAction.CREATE);
|
|
72
|
+
async authorizeCreateAsync(viewerContext, queryContext, entity, metricsAdapter) {
|
|
73
|
+
return await this.authorizeForRulesetAsync(this.createRules, viewerContext, queryContext, entity, EntityAuthorizationAction.CREATE, metricsAdapter);
|
|
73
74
|
}
|
|
74
75
|
/**
|
|
75
76
|
* Authorize an entity against read policy.
|
|
@@ -79,8 +80,8 @@ class EntityPrivacyPolicy {
|
|
|
79
80
|
* @returns entity if authorized
|
|
80
81
|
* @throws {@link EntityNotAuthorizedError} when not authorized
|
|
81
82
|
*/
|
|
82
|
-
async authorizeReadAsync(viewerContext, queryContext, entity) {
|
|
83
|
-
return await this.authorizeForRulesetAsync(this.readRules, viewerContext, queryContext, entity, EntityAuthorizationAction.READ);
|
|
83
|
+
async authorizeReadAsync(viewerContext, queryContext, entity, metricsAdapter) {
|
|
84
|
+
return await this.authorizeForRulesetAsync(this.readRules, viewerContext, queryContext, entity, EntityAuthorizationAction.READ, metricsAdapter);
|
|
84
85
|
}
|
|
85
86
|
/**
|
|
86
87
|
* Authorize an entity against update policy.
|
|
@@ -90,8 +91,8 @@ class EntityPrivacyPolicy {
|
|
|
90
91
|
* @returns entity if authorized
|
|
91
92
|
* @throws {@link EntityNotAuthorizedError} when not authorized
|
|
92
93
|
*/
|
|
93
|
-
async authorizeUpdateAsync(viewerContext, queryContext, entity) {
|
|
94
|
-
return await this.authorizeForRulesetAsync(this.updateRules, viewerContext, queryContext, entity, EntityAuthorizationAction.UPDATE);
|
|
94
|
+
async authorizeUpdateAsync(viewerContext, queryContext, entity, metricsAdapter) {
|
|
95
|
+
return await this.authorizeForRulesetAsync(this.updateRules, viewerContext, queryContext, entity, EntityAuthorizationAction.UPDATE, metricsAdapter);
|
|
95
96
|
}
|
|
96
97
|
/**
|
|
97
98
|
* Authorize an entity against deletion policy.
|
|
@@ -101,34 +102,81 @@ class EntityPrivacyPolicy {
|
|
|
101
102
|
* @returns entity if authorized
|
|
102
103
|
* @throws {@link EntityNotAuthorizedError} when not authorized
|
|
103
104
|
*/
|
|
104
|
-
async authorizeDeleteAsync(viewerContext, queryContext, entity) {
|
|
105
|
-
return await this.authorizeForRulesetAsync(this.deleteRules, viewerContext, queryContext, entity, EntityAuthorizationAction.DELETE);
|
|
105
|
+
async authorizeDeleteAsync(viewerContext, queryContext, entity, metricsAdapter) {
|
|
106
|
+
return await this.authorizeForRulesetAsync(this.deleteRules, viewerContext, queryContext, entity, EntityAuthorizationAction.DELETE, metricsAdapter);
|
|
106
107
|
}
|
|
107
|
-
async authorizeForRulesetAsync(ruleset, viewerContext, queryContext, entity, action) {
|
|
108
|
+
async authorizeForRulesetAsync(ruleset, viewerContext, queryContext, entity, action, metricsAdapter) {
|
|
108
109
|
const privacyPolicyEvaluator = this.getPrivacyPolicyEvaluator(viewerContext);
|
|
109
110
|
switch (privacyPolicyEvaluator.mode) {
|
|
110
111
|
case EntityPrivacyPolicyEvaluationMode.ENFORCE:
|
|
111
|
-
|
|
112
|
+
try {
|
|
113
|
+
const result = await this.authorizeForRulesetInnerAsync(ruleset, viewerContext, queryContext, entity, action);
|
|
114
|
+
metricsAdapter.logAuthorizationEvent({
|
|
115
|
+
entityClassName: entity.constructor.name,
|
|
116
|
+
action,
|
|
117
|
+
evaluationResult: IEntityMetricsAdapter_1.EntityMetricsAuthorizationResult.ALLOW,
|
|
118
|
+
privacyPolicyEvaluationMode: privacyPolicyEvaluator.mode,
|
|
119
|
+
});
|
|
120
|
+
return result;
|
|
121
|
+
}
|
|
122
|
+
catch (e) {
|
|
123
|
+
if (!(e instanceof EntityNotAuthorizedError_1.default)) {
|
|
124
|
+
throw e;
|
|
125
|
+
}
|
|
126
|
+
metricsAdapter.logAuthorizationEvent({
|
|
127
|
+
entityClassName: entity.constructor.name,
|
|
128
|
+
action,
|
|
129
|
+
evaluationResult: IEntityMetricsAdapter_1.EntityMetricsAuthorizationResult.DENY,
|
|
130
|
+
privacyPolicyEvaluationMode: privacyPolicyEvaluator.mode,
|
|
131
|
+
});
|
|
132
|
+
throw e;
|
|
133
|
+
}
|
|
112
134
|
case EntityPrivacyPolicyEvaluationMode.ENFORCE_AND_LOG:
|
|
113
135
|
try {
|
|
114
|
-
|
|
136
|
+
const result = await this.authorizeForRulesetInnerAsync(ruleset, viewerContext, queryContext, entity, action);
|
|
137
|
+
metricsAdapter.logAuthorizationEvent({
|
|
138
|
+
entityClassName: entity.constructor.name,
|
|
139
|
+
action,
|
|
140
|
+
evaluationResult: IEntityMetricsAdapter_1.EntityMetricsAuthorizationResult.ALLOW,
|
|
141
|
+
privacyPolicyEvaluationMode: privacyPolicyEvaluator.mode,
|
|
142
|
+
});
|
|
143
|
+
return result;
|
|
115
144
|
}
|
|
116
145
|
catch (e) {
|
|
117
146
|
if (!(e instanceof EntityNotAuthorizedError_1.default)) {
|
|
118
147
|
throw e;
|
|
119
148
|
}
|
|
120
149
|
privacyPolicyEvaluator.denyHandler(e);
|
|
150
|
+
metricsAdapter.logAuthorizationEvent({
|
|
151
|
+
entityClassName: entity.constructor.name,
|
|
152
|
+
action,
|
|
153
|
+
evaluationResult: IEntityMetricsAdapter_1.EntityMetricsAuthorizationResult.DENY,
|
|
154
|
+
privacyPolicyEvaluationMode: privacyPolicyEvaluator.mode,
|
|
155
|
+
});
|
|
121
156
|
throw e;
|
|
122
157
|
}
|
|
123
158
|
case EntityPrivacyPolicyEvaluationMode.DRY_RUN:
|
|
124
159
|
try {
|
|
125
|
-
|
|
160
|
+
const result = await this.authorizeForRulesetInnerAsync(ruleset, viewerContext, queryContext, entity, action);
|
|
161
|
+
metricsAdapter.logAuthorizationEvent({
|
|
162
|
+
entityClassName: entity.constructor.name,
|
|
163
|
+
action,
|
|
164
|
+
evaluationResult: IEntityMetricsAdapter_1.EntityMetricsAuthorizationResult.ALLOW,
|
|
165
|
+
privacyPolicyEvaluationMode: privacyPolicyEvaluator.mode,
|
|
166
|
+
});
|
|
167
|
+
return result;
|
|
126
168
|
}
|
|
127
169
|
catch (e) {
|
|
128
170
|
if (!(e instanceof EntityNotAuthorizedError_1.default)) {
|
|
129
171
|
throw e;
|
|
130
172
|
}
|
|
131
173
|
privacyPolicyEvaluator.denyHandler(e);
|
|
174
|
+
metricsAdapter.logAuthorizationEvent({
|
|
175
|
+
entityClassName: entity.constructor.name,
|
|
176
|
+
action,
|
|
177
|
+
evaluationResult: IEntityMetricsAdapter_1.EntityMetricsAuthorizationResult.DENY,
|
|
178
|
+
privacyPolicyEvaluationMode: privacyPolicyEvaluator.mode,
|
|
179
|
+
});
|
|
132
180
|
return entity;
|
|
133
181
|
}
|
|
134
182
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityPrivacyPolicy.js","sourceRoot":"","sources":["../src/EntityPrivacyPolicy.ts"],"names":[],"mappings":";;;;;;AAGA,iGAAyE;AACzE,iEAAoF;AAEpF,IAAY,iCAIX;AAJD,WAAY,iCAAiC;IAC3C,+FAAO,CAAA;IACP,+FAAO,CAAA;IACP,+GAAe,CAAA;AACjB,CAAC,EAJW,iCAAiC,GAAjC,yCAAiC,KAAjC,yCAAiC,QAI5C;AAyBD,IAAY,yBAKX;AALD,WAAY,yBAAyB;IACnC,6EAAM,CAAA;IACN,yEAAI,CAAA;IACJ,6EAAM,CAAA;IACN,6EAAM,CAAA;AACR,CAAC,EALW,yBAAyB,GAAzB,iCAAyB,KAAzB,iCAAyB,QAKpC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAA8B,mBAAmB;IAAjD;QAOqB,gBAAW,GAMxB,EAAE,CAAC;QACU,cAAS,GAMtB,EAAE,CAAC;QACU,gBAAW,GAMxB,EAAE,CAAC;QACU,gBAAW,GAMxB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"EntityPrivacyPolicy.js","sourceRoot":"","sources":["../src/EntityPrivacyPolicy.ts"],"names":[],"mappings":";;;;;;AAGA,iGAAyE;AACzE,2EAEyC;AACzC,iEAAoF;AAEpF,IAAY,iCAIX;AAJD,WAAY,iCAAiC;IAC3C,+FAAO,CAAA;IACP,+FAAO,CAAA;IACP,+GAAe,CAAA;AACjB,CAAC,EAJW,iCAAiC,GAAjC,yCAAiC,KAAjC,yCAAiC,QAI5C;AAyBD,IAAY,yBAKX;AALD,WAAY,yBAAyB;IACnC,6EAAM,CAAA;IACN,yEAAI,CAAA;IACJ,6EAAM,CAAA;IACN,6EAAM,CAAA;AACR,CAAC,EALW,yBAAyB,GAAzB,iCAAyB,KAAzB,iCAAyB,QAKpC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAA8B,mBAAmB;IAAjD;QAOqB,gBAAW,GAMxB,EAAE,CAAC;QACU,cAAS,GAMtB,EAAE,CAAC;QACU,gBAAW,GAMxB,EAAE,CAAC;QACU,gBAAW,GAMxB,EAAE,CAAC;IAwPX,CAAC;IAtPC;;;;;;;OAOG;IACO,yBAAyB,CACjC,cAA8B;QAE9B,OAAO;YACL,IAAI,EAAE,iCAAiC,CAAC,OAAO;SAChD,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,oBAAoB,CACxB,aAA6B,EAC7B,YAAgC,EAChC,MAAe,EACf,cAAqC;QAErC,OAAO,MAAM,IAAI,CAAC,wBAAwB,CACxC,IAAI,CAAC,WAAW,EAChB,aAAa,EACb,YAAY,EACZ,MAAM,EACN,yBAAyB,CAAC,MAAM,EAChC,cAAc,CACf,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,kBAAkB,CACtB,aAA6B,EAC7B,YAAgC,EAChC,MAAe,EACf,cAAqC;QAErC,OAAO,MAAM,IAAI,CAAC,wBAAwB,CACxC,IAAI,CAAC,SAAS,EACd,aAAa,EACb,YAAY,EACZ,MAAM,EACN,yBAAyB,CAAC,IAAI,EAC9B,cAAc,CACf,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,oBAAoB,CACxB,aAA6B,EAC7B,YAAgC,EAChC,MAAe,EACf,cAAqC;QAErC,OAAO,MAAM,IAAI,CAAC,wBAAwB,CACxC,IAAI,CAAC,WAAW,EAChB,aAAa,EACb,YAAY,EACZ,MAAM,EACN,yBAAyB,CAAC,MAAM,EAChC,cAAc,CACf,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,oBAAoB,CACxB,aAA6B,EAC7B,YAAgC,EAChC,MAAe,EACf,cAAqC;QAErC,OAAO,MAAM,IAAI,CAAC,wBAAwB,CACxC,IAAI,CAAC,WAAW,EAChB,aAAa,EACb,YAAY,EACZ,MAAM,EACN,yBAAyB,CAAC,MAAM,EAChC,cAAc,CACf,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,wBAAwB,CACpC,OAA6F,EAC7F,aAA6B,EAC7B,YAAgC,EAChC,MAAe,EACf,MAAiC,EACjC,cAAqC;QAErC,MAAM,sBAAsB,GAAG,IAAI,CAAC,yBAAyB,CAAC,aAAa,CAAC,CAAC;QAC7E,QAAQ,sBAAsB,CAAC,IAAI,EAAE;YACnC,KAAK,iCAAiC,CAAC,OAAO;gBAC5C,IAAI;oBACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,6BAA6B,CACrD,OAAO,EACP,aAAa,EACb,YAAY,EACZ,MAAM,EACN,MAAM,CACP,CAAC;oBACF,cAAc,CAAC,qBAAqB,CAAC;wBACnC,eAAe,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI;wBACxC,MAAM;wBACN,gBAAgB,EAAE,wDAAgC,CAAC,KAAK;wBACxD,2BAA2B,EAAE,sBAAsB,CAAC,IAAI;qBACzD,CAAC,CAAC;oBACH,OAAO,MAAM,CAAC;iBACf;gBAAC,OAAO,CAAC,EAAE;oBACV,IAAI,CAAC,CAAC,CAAC,YAAY,kCAAwB,CAAC,EAAE;wBAC5C,MAAM,CAAC,CAAC;qBACT;oBACD,cAAc,CAAC,qBAAqB,CAAC;wBACnC,eAAe,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI;wBACxC,MAAM;wBACN,gBAAgB,EAAE,wDAAgC,CAAC,IAAI;wBACvD,2BAA2B,EAAE,sBAAsB,CAAC,IAAI;qBACzD,CAAC,CAAC;oBACH,MAAM,CAAC,CAAC;iBACT;YACH,KAAK,iCAAiC,CAAC,eAAe;gBACpD,IAAI;oBACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,6BAA6B,CACrD,OAAO,EACP,aAAa,EACb,YAAY,EACZ,MAAM,EACN,MAAM,CACP,CAAC;oBACF,cAAc,CAAC,qBAAqB,CAAC;wBACnC,eAAe,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI;wBACxC,MAAM;wBACN,gBAAgB,EAAE,wDAAgC,CAAC,KAAK;wBACxD,2BAA2B,EAAE,sBAAsB,CAAC,IAAI;qBACzD,CAAC,CAAC;oBACH,OAAO,MAAM,CAAC;iBACf;gBAAC,OAAO,CAAC,EAAE;oBACV,IAAI,CAAC,CAAC,CAAC,YAAY,kCAAwB,CAAC,EAAE;wBAC5C,MAAM,CAAC,CAAC;qBACT;oBACD,sBAAsB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;oBACtC,cAAc,CAAC,qBAAqB,CAAC;wBACnC,eAAe,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI;wBACxC,MAAM;wBACN,gBAAgB,EAAE,wDAAgC,CAAC,IAAI;wBACvD,2BAA2B,EAAE,sBAAsB,CAAC,IAAI;qBACzD,CAAC,CAAC;oBACH,MAAM,CAAC,CAAC;iBACT;YACH,KAAK,iCAAiC,CAAC,OAAO;gBAC5C,IAAI;oBACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,6BAA6B,CACrD,OAAO,EACP,aAAa,EACb,YAAY,EACZ,MAAM,EACN,MAAM,CACP,CAAC;oBACF,cAAc,CAAC,qBAAqB,CAAC;wBACnC,eAAe,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI;wBACxC,MAAM;wBACN,gBAAgB,EAAE,wDAAgC,CAAC,KAAK;wBACxD,2BAA2B,EAAE,sBAAsB,CAAC,IAAI;qBACzD,CAAC,CAAC;oBACH,OAAO,MAAM,CAAC;iBACf;gBAAC,OAAO,CAAC,EAAE;oBACV,IAAI,CAAC,CAAC,CAAC,YAAY,kCAAwB,CAAC,EAAE;wBAC5C,MAAM,CAAC,CAAC;qBACT;oBACD,sBAAsB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;oBACtC,cAAc,CAAC,qBAAqB,CAAC;wBACnC,eAAe,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI;wBACxC,MAAM;wBACN,gBAAgB,EAAE,wDAAgC,CAAC,IAAI;wBACvD,2BAA2B,EAAE,sBAAsB,CAAC,IAAI;qBACzD,CAAC,CAAC;oBACH,OAAO,MAAM,CAAC;iBACf;SACJ;IACH,CAAC;IAEO,KAAK,CAAC,6BAA6B,CACzC,OAA6F,EAC7F,aAA6B,EAC7B,YAAgC,EAChC,MAAe,EACf,MAAiC;QAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACvC,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;YACzB,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;YAC3F,QAAQ,oBAAoB,EAAE;gBAC5B,KAAK,wCAAoB,CAAC,IAAI;oBAC5B,MAAM,IAAI,kCAAwB,CAMhC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;gBACtC,KAAK,wCAAoB,CAAC,IAAI;oBAC5B,SAAS;gBACX,KAAK,wCAAoB,CAAC,KAAK;oBAC7B,OAAO,MAAM,CAAC;gBAChB;oBACE,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;aAC5E;SACF;QAED,MAAM,IAAI,kCAAwB,CAChC,MAAM,EACN,aAAa,EACb,MAAM,EACN,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;CACF;AA1RD,sCA0RC"}
|
|
@@ -21,7 +21,20 @@ export declare class EntityNonTransactionalQueryContext extends EntityQueryConte
|
|
|
21
21
|
runInTransactionIfNotInTransactionAsync<T>(transactionScope: (queryContext: EntityTransactionalQueryContext) => Promise<T>): Promise<T>;
|
|
22
22
|
}
|
|
23
23
|
export declare class EntityTransactionalQueryContext extends EntityQueryContext {
|
|
24
|
+
private readonly postCommitInvalidationCallbacks;
|
|
24
25
|
private readonly postCommitCallbacks;
|
|
26
|
+
/**
|
|
27
|
+
* Schedule a post-commit cache invalidation callback. These are run before normal
|
|
28
|
+
* post-commit callbacks in order to have cache consistency in normal post-commit callbacks.
|
|
29
|
+
*
|
|
30
|
+
* @param callback - callback to schedule
|
|
31
|
+
*/
|
|
32
|
+
appendPostCommitInvalidationCallback(callback: PostCommitCallback): void;
|
|
33
|
+
/**
|
|
34
|
+
* Schedule a post-commit callback. These will be run after the transaction has
|
|
35
|
+
* been committed.
|
|
36
|
+
* @param callback - callback to schedule
|
|
37
|
+
*/
|
|
25
38
|
appendPostCommitCallback(callback: PostCommitCallback): void;
|
|
26
39
|
runPostCommitCallbacksAsync(): Promise<void>;
|
|
27
40
|
isInTransaction(): boolean;
|
|
@@ -33,12 +33,30 @@ exports.EntityNonTransactionalQueryContext = EntityNonTransactionalQueryContext;
|
|
|
33
33
|
class EntityTransactionalQueryContext extends EntityQueryContext {
|
|
34
34
|
constructor() {
|
|
35
35
|
super(...arguments);
|
|
36
|
+
this.postCommitInvalidationCallbacks = [];
|
|
36
37
|
this.postCommitCallbacks = [];
|
|
37
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* Schedule a post-commit cache invalidation callback. These are run before normal
|
|
41
|
+
* post-commit callbacks in order to have cache consistency in normal post-commit callbacks.
|
|
42
|
+
*
|
|
43
|
+
* @param callback - callback to schedule
|
|
44
|
+
*/
|
|
45
|
+
appendPostCommitInvalidationCallback(callback) {
|
|
46
|
+
this.postCommitInvalidationCallbacks.push(callback);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Schedule a post-commit callback. These will be run after the transaction has
|
|
50
|
+
* been committed.
|
|
51
|
+
* @param callback - callback to schedule
|
|
52
|
+
*/
|
|
38
53
|
appendPostCommitCallback(callback) {
|
|
39
54
|
this.postCommitCallbacks.push(callback);
|
|
40
55
|
}
|
|
41
56
|
async runPostCommitCallbacksAsync() {
|
|
57
|
+
const invalidationCallbacks = [...this.postCommitInvalidationCallbacks];
|
|
58
|
+
this.postCommitInvalidationCallbacks.length = 0;
|
|
59
|
+
await Promise.all(invalidationCallbacks.map((callback) => callback()));
|
|
42
60
|
const callbacks = [...this.postCommitCallbacks];
|
|
43
61
|
this.postCommitCallbacks.length = 0;
|
|
44
62
|
await Promise.all(callbacks.map((callback) => callback()));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityQueryContext.js","sourceRoot":"","sources":["../src/EntityQueryContext.ts"],"names":[],"mappings":";;;AAIA;;;;;;GAMG;AACH,MAAsB,kBAAkB;IACtC,YAA6B,cAAmB;QAAnB,mBAAc,GAAd,cAAc,CAAK;IAAG,CAAC;IAIpD,iBAAiB;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;CAKF;AAZD,gDAYC;AAED,MAAa,kCAAmC,SAAQ,kBAAkB;IACxE,YACE,cAAmB,EACF,0BAAsD;QAEvE,KAAK,CAAC,cAAc,CAAC,CAAC;QAFL,+BAA0B,GAA1B,0BAA0B,CAA4B;IAGzE,CAAC;IAED,eAAe;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,uCAAuC,CAC3C,gBAA+E;QAE/E,OAAO,MAAM,IAAI,CAAC,0BAA0B,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;IACvF,CAAC;CACF;AAjBD,gFAiBC;AAED,MAAa,+BAAgC,SAAQ,kBAAkB;IAAvE;;QACmB,wBAAmB,GAAyB,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"EntityQueryContext.js","sourceRoot":"","sources":["../src/EntityQueryContext.ts"],"names":[],"mappings":";;;AAIA;;;;;;GAMG;AACH,MAAsB,kBAAkB;IACtC,YAA6B,cAAmB;QAAnB,mBAAc,GAAd,cAAc,CAAK;IAAG,CAAC;IAIpD,iBAAiB;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;CAKF;AAZD,gDAYC;AAED,MAAa,kCAAmC,SAAQ,kBAAkB;IACxE,YACE,cAAmB,EACF,0BAAsD;QAEvE,KAAK,CAAC,cAAc,CAAC,CAAC;QAFL,+BAA0B,GAA1B,0BAA0B,CAA4B;IAGzE,CAAC;IAED,eAAe;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,uCAAuC,CAC3C,gBAA+E;QAE/E,OAAO,MAAM,IAAI,CAAC,0BAA0B,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;IACvF,CAAC;CACF;AAjBD,gFAiBC;AAED,MAAa,+BAAgC,SAAQ,kBAAkB;IAAvE;;QACmB,oCAA+B,GAAyB,EAAE,CAAC;QAC3D,wBAAmB,GAAyB,EAAE,CAAC;IAwClE,CAAC;IAtCC;;;;;OAKG;IACI,oCAAoC,CAAC,QAA4B;QACtE,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED;;;;OAIG;IACI,wBAAwB,CAAC,QAA4B;QAC1D,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAEM,KAAK,CAAC,2BAA2B;QACtC,MAAM,qBAAqB,GAAG,CAAC,GAAG,IAAI,CAAC,+BAA+B,CAAC,CAAC;QACxE,IAAI,CAAC,+BAA+B,CAAC,MAAM,GAAG,CAAC,CAAC;QAChD,MAAM,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAEvE,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAChD,IAAI,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC;QACpC,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,uCAAuC,CAC3C,gBAA+E;QAE/E,OAAO,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;CACF;AA1CD,0EA0CC"}
|
|
@@ -25,8 +25,8 @@ class EntitySecondaryCacheLoader {
|
|
|
25
25
|
async loadManyAsync(loadParamsArray) {
|
|
26
26
|
const loadParamsToFieldObjects = await this.secondaryEntityCache.loadManyThroughAsync(loadParamsArray, this.fetchObjectsFromDatabaseAsync.bind(this));
|
|
27
27
|
// convert value to and from array to reuse complex code
|
|
28
|
-
const entitiesMap = await this.entityLoader.constructAndAuthorizeEntitiesAsync(maps_1.mapMap(loadParamsToFieldObjects, (fieldObject) => (fieldObject ? [fieldObject] : [])));
|
|
29
|
-
return maps_1.mapMap(entitiesMap, (fieldObjects) => { var _a; return (_a = fieldObjects[0]) !== null && _a !== void 0 ? _a : null; });
|
|
28
|
+
const entitiesMap = await this.entityLoader.constructAndAuthorizeEntitiesAsync((0, maps_1.mapMap)(loadParamsToFieldObjects, (fieldObject) => (fieldObject ? [fieldObject] : [])));
|
|
29
|
+
return (0, maps_1.mapMap)(entitiesMap, (fieldObjects) => { var _a; return (_a = fieldObjects[0]) !== null && _a !== void 0 ? _a : null; });
|
|
30
30
|
}
|
|
31
31
|
/**
|
|
32
32
|
* Invalidate the cache for objects cached by loadParams.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntitySecondaryCacheLoader.js","sourceRoot":"","sources":["../src/EntitySecondaryCacheLoader.ts"],"names":[],"mappings":";;AAMA,mDAAkD;AA4BlD;;;;;;;;;;GAUG;AACH,MAA8B,0BAA0B;IAetD,YACmB,oBAAiE,EAC/D,YAOlB;QARgB,yBAAoB,GAApB,oBAAoB,CAA6C;QAC/D,iBAAY,GAAZ,YAAY,CAO9B;IACA,CAAC;IAEJ;;;;OAIG;IACI,KAAK,CAAC,aAAa,CACxB,eAAiD;QAEjD,MAAM,wBAAwB,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,oBAAoB,CACnF,eAAe,EACf,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,CAC9C,CAAC;QAEF,wDAAwD;QACxD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,kCAAkC,CAC5E,aAAM,
|
|
1
|
+
{"version":3,"file":"EntitySecondaryCacheLoader.js","sourceRoot":"","sources":["../src/EntitySecondaryCacheLoader.ts"],"names":[],"mappings":";;AAMA,mDAAkD;AA4BlD;;;;;;;;;;GAUG;AACH,MAA8B,0BAA0B;IAetD,YACmB,oBAAiE,EAC/D,YAOlB;QARgB,yBAAoB,GAApB,oBAAoB,CAA6C;QAC/D,iBAAY,GAAZ,YAAY,CAO9B;IACA,CAAC;IAEJ;;;;OAIG;IACI,KAAK,CAAC,aAAa,CACxB,eAAiD;QAEjD,MAAM,wBAAwB,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,oBAAoB,CACnF,eAAe,EACf,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,CAC9C,CAAC;QAEF,wDAAwD;QACxD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,kCAAkC,CAC5E,IAAA,aAAM,EAAC,wBAAwB,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CACtF,CAAC;QACF,OAAO,IAAA,aAAM,EAAC,WAAW,EAAE,CAAC,YAAY,EAAE,EAAE,WAAC,OAAA,MAAA,YAAY,CAAC,CAAC,CAAC,mCAAI,IAAI,CAAA,EAAA,CAAC,CAAC;IACxE,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,mBAAmB,CAC9B,eAAiD;QAEjD,MAAM,IAAI,CAAC,oBAAoB,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;IACvE,CAAC;CAUF;AAlED,6CAkEC"}
|