@contember/engine-system-api 0.12.0-beta.1 → 1.0.0-alpha.2
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/dist/src/SystemContainer.d.ts +15 -14
- package/dist/src/SystemContainer.d.ts.map +1 -1
- package/dist/src/SystemContainer.js +7 -11
- package/dist/src/SystemContainer.js.map +1 -1
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/model/ProjectInitializer.d.ts.map +1 -1
- package/dist/src/model/ProjectInitializer.js +7 -17
- package/dist/src/model/ProjectInitializer.js.map +1 -1
- package/dist/src/model/ProjectTruncateExecutor.js +3 -3
- package/dist/src/model/ProjectTruncateExecutor.js.map +1 -1
- package/dist/src/model/authorization/AuthorizationActions.d.ts +0 -20
- package/dist/src/model/authorization/AuthorizationActions.d.ts.map +1 -1
- package/dist/src/model/authorization/AuthorizationActions.js +0 -5
- package/dist/src/model/authorization/AuthorizationActions.js.map +1 -1
- package/dist/src/model/authorization/StagePermissionsFactory.d.ts.map +1 -1
- package/dist/src/model/authorization/StagePermissionsFactory.js +1 -21
- package/dist/src/model/authorization/StagePermissionsFactory.js.map +1 -1
- package/dist/src/model/commands/migrations/ModifyMigrationCommand.js +1 -1
- package/dist/src/model/commands/migrations/ModifyMigrationCommand.js.map +1 -1
- package/dist/src/model/commands/migrations/SaveMigrationCommand.js +1 -1
- package/dist/src/model/commands/migrations/SaveMigrationCommand.js.map +1 -1
- package/dist/src/model/commands/stages/CreateOrUpdateStageCommand.d.ts.map +1 -1
- package/dist/src/model/commands/stages/CreateOrUpdateStageCommand.js +2 -3
- package/dist/src/model/commands/stages/CreateOrUpdateStageCommand.js.map +1 -1
- package/dist/src/model/commands/stages/index.d.ts +0 -1
- package/dist/src/model/commands/stages/index.d.ts.map +1 -1
- package/dist/src/model/commands/stages/index.js +0 -1
- package/dist/src/model/commands/stages/index.js.map +1 -1
- package/dist/src/model/database/DatabaseContext.js +1 -1
- package/dist/src/model/database/DatabaseContext.js.map +1 -1
- package/dist/src/model/dependencies/content/index.d.ts +0 -1
- package/dist/src/model/dependencies/content/index.d.ts.map +1 -1
- package/dist/src/model/dependencies/content/index.js +0 -1
- package/dist/src/model/dependencies/content/index.js.map +1 -1
- package/dist/src/model/dependencies/index.d.ts +1 -0
- package/dist/src/model/dependencies/index.d.ts.map +1 -1
- package/dist/src/model/dependencies/index.js +1 -0
- package/dist/src/model/dependencies/index.js.map +1 -1
- package/dist/src/model/dependencies/tenant/IdentityFetcher.d.ts +2 -1
- package/dist/src/model/dependencies/tenant/IdentityFetcher.d.ts.map +1 -1
- package/dist/src/model/dependencies/tenant/index.d.ts +2 -0
- package/dist/src/model/dependencies/tenant/index.d.ts.map +1 -0
- package/dist/src/model/{events/dependency → dependencies/tenant}/index.js +1 -5
- package/dist/src/model/dependencies/tenant/index.js.map +1 -0
- package/dist/src/model/events/EventResponseBuilder.d.ts +11 -0
- package/dist/src/model/events/EventResponseBuilder.d.ts.map +1 -0
- package/dist/src/model/events/{HistoryEventResponseBuilder.js → EventResponseBuilder.js} +19 -18
- package/dist/src/model/events/EventResponseBuilder.js.map +1 -0
- package/dist/src/model/events/EventResponseHelper.d.ts +3 -3
- package/dist/src/model/events/EventResponseHelper.js +3 -3
- package/dist/src/model/events/EventResponseHelper.js.map +1 -1
- package/dist/src/model/events/identityUtils.js +1 -1
- package/dist/src/model/events/identityUtils.js.map +1 -1
- package/dist/src/model/events/index.d.ts +1 -5
- package/dist/src/model/events/index.d.ts.map +1 -1
- package/dist/src/model/events/index.js +1 -5
- package/dist/src/model/events/index.js.map +1 -1
- package/dist/src/model/helpers/modelHelpers.js +1 -1
- package/dist/src/model/helpers/modelHelpers.js.map +1 -1
- package/dist/src/model/migrations/MigrationExecutor.d.ts.map +1 -1
- package/dist/src/model/migrations/MigrationExecutor.js +2 -2
- package/dist/src/model/migrations/MigrationExecutor.js.map +1 -1
- package/dist/src/model/migrations/ProjectMigrator.d.ts.map +1 -1
- package/dist/src/model/migrations/ProjectMigrator.js +6 -12
- package/dist/src/model/migrations/ProjectMigrator.js.map +1 -1
- package/dist/src/model/migrations/SchemaVersionBuilder.js +2 -2
- package/dist/src/model/migrations/SchemaVersionBuilder.js.map +1 -1
- package/dist/src/model/queries/events/EventQueryHelpers.d.ts +4 -3
- package/dist/src/model/queries/events/EventQueryHelpers.d.ts.map +1 -1
- package/dist/src/model/queries/events/EventQueryHelpers.js +4 -5
- package/dist/src/model/queries/events/EventQueryHelpers.js.map +1 -1
- package/dist/src/model/queries/events/EventsQuery.d.ts +12 -0
- package/dist/src/model/queries/events/EventsQuery.d.ts.map +1 -0
- package/dist/src/model/queries/events/EventsQuery.js +88 -0
- package/dist/src/model/queries/events/EventsQuery.js.map +1 -0
- package/dist/src/model/queries/events/OldValuesQuery.d.ts +7 -0
- package/dist/src/model/queries/events/OldValuesQuery.d.ts.map +1 -0
- package/dist/src/model/queries/events/OldValuesQuery.js +25 -0
- package/dist/src/model/queries/events/OldValuesQuery.js.map +1 -0
- package/dist/src/model/queries/events/index.d.ts +2 -0
- package/dist/src/model/queries/events/index.d.ts.map +1 -1
- package/dist/src/model/queries/events/index.js +2 -0
- package/dist/src/model/queries/events/index.js.map +1 -1
- package/dist/src/model/queries/migrations/ExecutedMigrationByVersionQuery.js +2 -2
- package/dist/src/model/queries/migrations/ExecutedMigrationByVersionQuery.js.map +1 -1
- package/dist/src/model/queries/migrations/ExecutedMigrationsQuery.js +1 -1
- package/dist/src/model/queries/migrations/ExecutedMigrationsQuery.js.map +1 -1
- package/dist/src/model/queries/stages/StageBySlugQuery.js +1 -1
- package/dist/src/model/queries/stages/StageBySlugQuery.js.map +1 -1
- package/dist/src/model/queries/stages/StageQueryFactory.d.ts.map +1 -1
- package/dist/src/model/queries/stages/StageQueryFactory.js +0 -1
- package/dist/src/model/queries/stages/StageQueryFactory.js.map +1 -1
- package/dist/src/model/stages/StageCreator.d.ts +1 -2
- package/dist/src/model/stages/StageCreator.d.ts.map +1 -1
- package/dist/src/model/stages/StageCreator.js +2 -10
- package/dist/src/model/stages/StageCreator.js.map +1 -1
- package/dist/src/model/stages/index.d.ts +0 -1
- package/dist/src/model/stages/index.d.ts.map +1 -1
- package/dist/src/model/stages/index.js +0 -1
- package/dist/src/model/stages/index.js.map +1 -1
- package/dist/src/resolvers/ResolverContext.d.ts +4 -3
- package/dist/src/resolvers/ResolverContext.d.ts.map +1 -1
- package/dist/src/resolvers/ResolverContext.js +2 -2
- package/dist/src/resolvers/ResolverContext.js.map +1 -1
- package/dist/src/resolvers/ResolverFactory.d.ts +7 -11
- package/dist/src/resolvers/ResolverFactory.d.ts.map +1 -1
- package/dist/src/resolvers/ResolverFactory.js +21 -14
- package/dist/src/resolvers/ResolverFactory.js.map +1 -1
- package/dist/src/resolvers/mutation/MigrateMutationResolver.d.ts.map +1 -1
- package/dist/src/resolvers/mutation/MigrateMutationResolver.js +3 -2
- package/dist/src/resolvers/mutation/MigrateMutationResolver.js.map +1 -1
- package/dist/src/resolvers/mutation/index.d.ts +1 -0
- package/dist/src/resolvers/mutation/index.d.ts.map +1 -1
- package/dist/src/resolvers/mutation/index.js +1 -0
- package/dist/src/resolvers/mutation/index.js.map +1 -1
- package/dist/src/resolvers/query/EventsQueryResolver.d.ts +11 -0
- package/dist/src/resolvers/query/EventsQueryResolver.d.ts.map +1 -0
- package/dist/src/resolvers/query/EventsQueryResolver.js +26 -0
- package/dist/src/resolvers/query/EventsQueryResolver.js.map +1 -0
- package/dist/src/resolvers/query/index.d.ts +1 -0
- package/dist/src/resolvers/query/index.d.ts.map +1 -1
- package/dist/src/resolvers/query/index.js +1 -0
- package/dist/src/resolvers/query/index.js.map +1 -1
- package/dist/src/resolvers/types/EventOldValuesResolver.d.ts +6 -0
- package/dist/src/resolvers/types/EventOldValuesResolver.d.ts.map +1 -0
- package/dist/src/resolvers/types/EventOldValuesResolver.js +11 -0
- package/dist/src/resolvers/types/EventOldValuesResolver.js.map +1 -0
- package/dist/src/resolvers/types/OldValuesHelpers.d.ts +3 -0
- package/dist/src/resolvers/types/OldValuesHelpers.d.ts.map +1 -0
- package/dist/src/resolvers/types/OldValuesHelpers.js +10 -0
- package/dist/src/resolvers/types/OldValuesHelpers.js.map +1 -0
- package/dist/src/resolvers/types/index.d.ts +2 -0
- package/dist/src/resolvers/types/index.d.ts.map +1 -0
- package/dist/src/resolvers/types/index.js +14 -0
- package/dist/src/resolvers/types/index.js.map +1 -0
- package/dist/src/schema/dev.graphql.js +1 -1
- package/dist/src/schema/dev.graphql.js.map +1 -1
- package/dist/src/schema/system.graphql.d.ts.map +1 -1
- package/dist/src/schema/system.graphql.js +47 -43
- package/dist/src/schema/system.graphql.js.map +1 -1
- package/dist/src/schema/types.d.ts +146 -170
- package/dist/src/schema/types.d.ts.map +1 -1
- package/dist/src/schema/types.js +14 -12
- package/dist/src/schema/types.js.map +1 -1
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/dist/src/types.d.ts +0 -1
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/batchQuery.js +1 -1
- package/dist/src/utils/batchQuery.js.map +1 -1
- package/dist/tests/cases/integration/systemApi/projectInitializer.test.js +1 -1
- package/dist/tests/cases/integration/systemApi/projectInitializer.test.js.map +1 -1
- package/dist/tests/src/asserts.js +1 -1
- package/dist/tests/src/asserts.js.map +1 -1
- package/dist/tests/tsconfig.tsbuildinfo +1 -1
- package/migrations/2020-05-06-150000-composed-primary.js +4 -4
- package/migrations/2020-05-06-150000-composed-primary.test.js +3 -3
- package/migrations/2020-06-01-103000-event-trigger-perf.js +1 -1
- package/migrations/2020-06-01-103000-event-trigger-perf.test.js +3 -3
- package/migrations/2021-05-07-155800-event-log-rework.js +1 -1
- package/migrations/2021-05-19-1232000-event-log-fix-constraint.js +1 -1
- package/migrations/2021-12-21-155500-events-up.sql +6 -0
- package/migrations/index.js +1 -1
- package/migrations/tsconfig.tsbuildinfo +1 -1
- package/package.json +14 -14
- package/src/SystemContainer.ts +18 -26
- package/src/index.ts +0 -1
- package/src/model/ProjectInitializer.ts +5 -16
- package/src/model/authorization/AuthorizationActions.ts +0 -8
- package/src/model/authorization/StagePermissionsFactory.ts +0 -21
- package/src/model/commands/stages/CreateOrUpdateStageCommand.ts +1 -2
- package/src/model/commands/stages/index.ts +0 -1
- package/src/model/dependencies/content/index.ts +0 -1
- package/src/model/dependencies/index.ts +1 -0
- package/src/model/dependencies/tenant/IdentityFetcher.ts +3 -1
- package/src/model/dependencies/tenant/index.ts +1 -0
- package/src/model/events/{HistoryEventResponseBuilder.ts → EventResponseBuilder.ts} +13 -17
- package/src/model/events/EventResponseHelper.ts +3 -3
- package/src/model/events/index.ts +1 -5
- package/src/model/migrations/MigrationExecutor.ts +0 -2
- package/src/model/migrations/ProjectMigrator.ts +5 -11
- package/src/model/migrations/SchemaVersionBuilder.ts +1 -1
- package/src/model/queries/events/EventQueryHelpers.ts +15 -12
- package/src/model/queries/events/EventsQuery.ts +105 -0
- package/src/model/queries/events/OldValuesQuery.ts +23 -0
- package/src/model/queries/events/index.ts +2 -0
- package/src/model/queries/stages/StageQueryFactory.ts +0 -1
- package/src/model/stages/StageCreator.ts +1 -12
- package/src/model/stages/index.ts +0 -1
- package/src/resolvers/ResolverContext.ts +5 -4
- package/src/resolvers/ResolverFactory.ts +27 -37
- package/src/resolvers/mutation/MigrateMutationResolver.ts +4 -3
- package/src/resolvers/mutation/index.ts +1 -0
- package/src/resolvers/query/EventsQueryResolver.ts +42 -0
- package/src/resolvers/query/index.ts +1 -0
- package/src/resolvers/types/EventOldValuesResolver.ts +13 -0
- package/src/resolvers/types/OldValuesHelpers.ts +11 -0
- package/src/resolvers/types/index.ts +1 -0
- package/src/schema/system.graphql.ts +46 -42
- package/src/schema/types.ts +148 -175
- package/src/types.ts +0 -1
- package/tests/src/asserts.ts +1 -1
- package/dist/src/model/commands/stages/UpdateStageEventCommand.d.ts +0 -8
- package/dist/src/model/commands/stages/UpdateStageEventCommand.d.ts.map +0 -1
- package/dist/src/model/commands/stages/UpdateStageEventCommand.js +0 -21
- package/dist/src/model/commands/stages/UpdateStageEventCommand.js.map +0 -1
- package/dist/src/model/dependencies/content/ContentEventsApplier.d.ts +0 -23
- package/dist/src/model/dependencies/content/ContentEventsApplier.d.ts.map +0 -1
- package/dist/src/model/dependencies/content/ContentEventsApplier.js +0 -3
- package/dist/src/model/dependencies/content/ContentEventsApplier.js.map +0 -1
- package/dist/src/model/events/DependencyBuilder.d.ts +0 -8
- package/dist/src/model/events/DependencyBuilder.d.ts.map +0 -1
- package/dist/src/model/events/DependencyBuilder.js +0 -3
- package/dist/src/model/events/DependencyBuilder.js.map +0 -1
- package/dist/src/model/events/DiffBuilder.d.ts +0 -48
- package/dist/src/model/events/DiffBuilder.d.ts.map +0 -1
- package/dist/src/model/events/DiffBuilder.js +0 -95
- package/dist/src/model/events/DiffBuilder.js.map +0 -1
- package/dist/src/model/events/EventFilterValidator.d.ts +0 -12
- package/dist/src/model/events/EventFilterValidator.d.ts.map +0 -1
- package/dist/src/model/events/EventFilterValidator.js +0 -50
- package/dist/src/model/events/EventFilterValidator.js.map +0 -1
- package/dist/src/model/events/HistoryEventResponseBuilder.d.ts +0 -10
- package/dist/src/model/events/HistoryEventResponseBuilder.d.ts.map +0 -1
- package/dist/src/model/events/HistoryEventResponseBuilder.js.map +0 -1
- package/dist/src/model/events/TableReferencingResolver.d.ts +0 -8
- package/dist/src/model/events/TableReferencingResolver.d.ts.map +0 -1
- package/dist/src/model/events/TableReferencingResolver.js +0 -31
- package/dist/src/model/events/TableReferencingResolver.js.map +0 -1
- package/dist/src/model/events/dependency/CreatedRowReferenceDependencyBuilder.d.ts +0 -19
- package/dist/src/model/events/dependency/CreatedRowReferenceDependencyBuilder.d.ts.map +0 -1
- package/dist/src/model/events/dependency/CreatedRowReferenceDependencyBuilder.js +0 -79
- package/dist/src/model/events/dependency/CreatedRowReferenceDependencyBuilder.js.map +0 -1
- package/dist/src/model/events/dependency/DeletedRowReferenceDependencyBuilder.d.ts +0 -17
- package/dist/src/model/events/dependency/DeletedRowReferenceDependencyBuilder.d.ts.map +0 -1
- package/dist/src/model/events/dependency/DeletedRowReferenceDependencyBuilder.js +0 -76
- package/dist/src/model/events/dependency/DeletedRowReferenceDependencyBuilder.js.map +0 -1
- package/dist/src/model/events/dependency/DependencyBuilderList.d.ts +0 -9
- package/dist/src/model/events/dependency/DependencyBuilderList.d.ts.map +0 -1
- package/dist/src/model/events/dependency/DependencyBuilderList.js +0 -20
- package/dist/src/model/events/dependency/DependencyBuilderList.js.map +0 -1
- package/dist/src/model/events/dependency/SameRowDependencyBuilder.d.ts +0 -16
- package/dist/src/model/events/dependency/SameRowDependencyBuilder.d.ts.map +0 -1
- package/dist/src/model/events/dependency/SameRowDependencyBuilder.js +0 -38
- package/dist/src/model/events/dependency/SameRowDependencyBuilder.js.map +0 -1
- package/dist/src/model/events/dependency/TransactionDependencyBuilder.d.ts +0 -15
- package/dist/src/model/events/dependency/TransactionDependencyBuilder.d.ts.map +0 -1
- package/dist/src/model/events/dependency/TransactionDependencyBuilder.js +0 -30
- package/dist/src/model/events/dependency/TransactionDependencyBuilder.js.map +0 -1
- package/dist/src/model/events/dependency/index.d.ts +0 -6
- package/dist/src/model/events/dependency/index.d.ts.map +0 -1
- package/dist/src/model/events/dependency/index.js.map +0 -1
- package/dist/src/model/stages/StageTree.d.ts +0 -14
- package/dist/src/model/stages/StageTree.d.ts.map +0 -1
- package/dist/src/model/stages/StageTree.js +0 -38
- package/dist/src/model/stages/StageTree.js.map +0 -1
- package/dist/src/resolvers/helpers/StageFetchHelper.d.ts +0 -22
- package/dist/src/resolvers/helpers/StageFetchHelper.d.ts.map +0 -1
- package/dist/src/resolvers/helpers/StageFetchHelper.js +0 -45
- package/dist/src/resolvers/helpers/StageFetchHelper.js.map +0 -1
- package/dist/tests/cases/unit/events/createdRowReference.test.d.ts +0 -2
- package/dist/tests/cases/unit/events/createdRowReference.test.d.ts.map +0 -1
- package/dist/tests/cases/unit/events/createdRowReference.test.js +0 -138
- package/dist/tests/cases/unit/events/createdRowReference.test.js.map +0 -1
- package/dist/tests/cases/unit/events/deletedRowReference.test.d.ts +0 -2
- package/dist/tests/cases/unit/events/deletedRowReference.test.d.ts.map +0 -1
- package/dist/tests/cases/unit/events/deletedRowReference.test.js +0 -103
- package/dist/tests/cases/unit/events/deletedRowReference.test.js.map +0 -1
- package/dist/tests/cases/unit/events/sameRowDependency.test.d.ts +0 -2
- package/dist/tests/cases/unit/events/sameRowDependency.test.d.ts.map +0 -1
- package/dist/tests/cases/unit/events/sameRowDependency.test.js +0 -63
- package/dist/tests/cases/unit/events/sameRowDependency.test.js.map +0 -1
- package/dist/tests/cases/unit/events/transactionDependency.test.d.ts +0 -2
- package/dist/tests/cases/unit/events/transactionDependency.test.d.ts.map +0 -1
- package/dist/tests/cases/unit/events/transactionDependency.test.js +0 -62
- package/dist/tests/cases/unit/events/transactionDependency.test.js.map +0 -1
- package/src/model/commands/stages/UpdateStageEventCommand.ts +0 -16
- package/src/model/dependencies/content/ContentEventsApplier.ts +0 -27
- package/src/model/events/DependencyBuilder.ts +0 -9
- package/src/model/events/DiffBuilder.ts +0 -150
- package/src/model/events/EventFilterValidator.ts +0 -52
- package/src/model/events/TableReferencingResolver.ts +0 -45
- package/src/model/events/dependency/CreatedRowReferenceDependencyBuilder.ts +0 -80
- package/src/model/events/dependency/DeletedRowReferenceDependencyBuilder.ts +0 -75
- package/src/model/events/dependency/DependencyBuilderList.ts +0 -18
- package/src/model/events/dependency/SameRowDependencyBuilder.ts +0 -36
- package/src/model/events/dependency/TransactionDependencyBuilder.ts +0 -31
- package/src/model/events/dependency/index.ts +0 -5
- package/src/model/stages/StageTree.ts +0 -36
- package/src/resolvers/helpers/StageFetchHelper.ts +0 -48
- package/tests/cases/unit/events/createdRowReference.test.ts +0 -131
- package/tests/cases/unit/events/deletedRowReference.test.ts +0 -95
- package/tests/cases/unit/events/sameRowDependency.test.ts +0 -48
- package/tests/cases/unit/events/transactionDependency.test.ts +0 -47
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { DependencyBuilder } from './DependencyBuilder';
|
|
2
|
-
import { Stage } from '../dtos';
|
|
3
|
-
import { ContentEvent } from '@contember/engine-common';
|
|
4
|
-
import { DatabaseContext } from '../database';
|
|
5
|
-
import { SchemaVersionBuilder } from '../migrations';
|
|
6
|
-
import { EntitiesRelationsInput, EntitiesSelector } from '../dependencies';
|
|
7
|
-
import { Acl, Input } from '@contember/schema';
|
|
8
|
-
import { Identity } from '../authorization';
|
|
9
|
-
import { ImmutableSet } from '../../utils/set';
|
|
10
|
-
export declare type EventsPermissionsVerifierContext = {
|
|
11
|
-
variables: Acl.VariablesMap;
|
|
12
|
-
identity: Identity;
|
|
13
|
-
};
|
|
14
|
-
export declare class DiffBuilder {
|
|
15
|
-
private readonly dependencyBuilder;
|
|
16
|
-
private readonly schemaVersionBuilder;
|
|
17
|
-
private readonly entitiesSelector;
|
|
18
|
-
constructor(dependencyBuilder: DependencyBuilder, schemaVersionBuilder: SchemaVersionBuilder, entitiesSelector: EntitiesSelector);
|
|
19
|
-
build(db: DatabaseContext, permissionContext: EventsPermissionsVerifierContext, baseStage: Stage, headStage: Stage, filter: ReadonlyArray<EventFilter> | null): Promise<DiffBuilderResponse>;
|
|
20
|
-
private filterEvents;
|
|
21
|
-
private fetchAffectedEntities;
|
|
22
|
-
}
|
|
23
|
-
export declare type DiffBuilderResponse = DiffBuilderOkResponse | DiffBuilderErrorResponse;
|
|
24
|
-
export declare enum DiffBuilderErrorCode {
|
|
25
|
-
notRebased = "notRebased",
|
|
26
|
-
invalidFilter = "invalidFilter"
|
|
27
|
-
}
|
|
28
|
-
export declare class DiffBuilderErrorResponse {
|
|
29
|
-
readonly error: DiffBuilderErrorCode;
|
|
30
|
-
readonly message: string;
|
|
31
|
-
readonly ok: false;
|
|
32
|
-
constructor(error: DiffBuilderErrorCode, message: string);
|
|
33
|
-
}
|
|
34
|
-
export declare type EventWithDependencies = ContentEvent & {
|
|
35
|
-
dependencies: ImmutableSet<string>;
|
|
36
|
-
};
|
|
37
|
-
export declare class DiffBuilderOkResponse {
|
|
38
|
-
readonly events: EventWithDependencies[];
|
|
39
|
-
readonly ok: true;
|
|
40
|
-
constructor(events: EventWithDependencies[]);
|
|
41
|
-
}
|
|
42
|
-
export declare type EventFilter = {
|
|
43
|
-
entity: string;
|
|
44
|
-
id?: string;
|
|
45
|
-
filter?: Input.Where;
|
|
46
|
-
relations: EntitiesRelationsInput;
|
|
47
|
-
};
|
|
48
|
-
//# sourceMappingURL=DiffBuilder.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DiffBuilder.d.ts","sourceRoot":"","sources":["../../../../src/model/events/DiffBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAsB,MAAM,qBAAqB,CAAA;AAC3E,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,sBAAsB,EAAkB,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAC1F,OAAO,EAAE,GAAG,EAAE,KAAK,EAAU,MAAM,mBAAmB,CAAA;AAGtD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG9C,oBAAY,gCAAgC,GAAG;IAC9C,SAAS,EAAE,GAAG,CAAC,YAAY,CAAA;IAC3B,QAAQ,EAAE,QAAQ,CAAA;CAClB,CAAA;AAED,qBAAa,WAAW;IAEtB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBAFhB,iBAAiB,EAAE,iBAAiB,EACpC,oBAAoB,EAAE,oBAAoB,EAC1C,gBAAgB,EAAE,gBAAgB;IAGvC,KAAK,CACjB,EAAE,EAAE,eAAe,EACnB,iBAAiB,EAAE,gCAAgC,EACnD,SAAS,EAAE,KAAK,EAChB,SAAS,EAAE,KAAK,EAChB,MAAM,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,IAAI,GACvC,OAAO,CAAC,mBAAmB,CAAC;YAIjB,YAAY;YAsCZ,qBAAqB;CAgDnC;AAED,oBAAY,mBAAmB,GAAG,qBAAqB,GAAG,wBAAwB,CAAA;AAElF,oBAAY,oBAAoB;IAC/B,UAAU,eAAe;IACzB,aAAa,kBAAkB;CAC/B;AAED,qBAAa,wBAAwB;aAGR,KAAK,EAAE,oBAAoB;aAAkB,OAAO,EAAE,MAAM;IAFxF,SAAgB,EAAE,EAAE,KAAK,CAAQ;gBAEL,KAAK,EAAE,oBAAoB,EAAkB,OAAO,EAAE,MAAM;CACxF;AAED,oBAAY,qBAAqB,GAAG,YAAY,GAAG;IAAE,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,CAAA;CAAE,CAAA;AAEzF,qBAAa,qBAAqB;aAGL,MAAM,EAAE,qBAAqB,EAAE;IAF3D,SAAgB,EAAE,EAAE,IAAI,CAAO;gBAEH,MAAM,EAAE,qBAAqB,EAAE;CAC3D;AAED,oBAAY,WAAW,GAAG;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,MAAM,CAAC,EAAE,KAAK,CAAC,KAAK,CAAA;IACpB,SAAS,EAAE,sBAAsB,CAAA;CACjC,CAAA"}
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DiffBuilderOkResponse = exports.DiffBuilderErrorResponse = exports.DiffBuilderErrorCode = exports.DiffBuilder = void 0;
|
|
4
|
-
const helpers_1 = require("../helpers");
|
|
5
|
-
const schema_utils_1 = require("@contember/schema-utils");
|
|
6
|
-
const StagingDisabledError_1 = require("../../StagingDisabledError");
|
|
7
|
-
class DiffBuilder {
|
|
8
|
-
constructor(dependencyBuilder, schemaVersionBuilder, entitiesSelector) {
|
|
9
|
-
this.dependencyBuilder = dependencyBuilder;
|
|
10
|
-
this.schemaVersionBuilder = schemaVersionBuilder;
|
|
11
|
-
this.entitiesSelector = entitiesSelector;
|
|
12
|
-
}
|
|
13
|
-
async build(db, permissionContext, baseStage, headStage, filter) {
|
|
14
|
-
throw new StagingDisabledError_1.StagingDisabledError();
|
|
15
|
-
}
|
|
16
|
-
async filterEvents(events, eventDependencies, permissionContext, db, schema, baseStage, headStage, filter) {
|
|
17
|
-
if (filter.length === 0) {
|
|
18
|
-
return [];
|
|
19
|
-
}
|
|
20
|
-
const baseEntities = await this.fetchAffectedEntities(db, permissionContext, schema, baseStage, filter);
|
|
21
|
-
const headEntities = await this.fetchAffectedEntities(db, permissionContext, schema, headStage, filter);
|
|
22
|
-
const allIds = [...baseEntities, ...headEntities];
|
|
23
|
-
const rootEvents = events.filter(it => it.rowId.some(id => allIds.includes(id)));
|
|
24
|
-
const eventIds = new Set([]);
|
|
25
|
-
const collectDependencies = (ids) => {
|
|
26
|
-
ids.forEach(id => {
|
|
27
|
-
if (eventIds.has(id)) {
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
eventIds.add(id);
|
|
31
|
-
const deps = eventDependencies.get(id);
|
|
32
|
-
if (deps) {
|
|
33
|
-
collectDependencies(deps);
|
|
34
|
-
}
|
|
35
|
-
});
|
|
36
|
-
};
|
|
37
|
-
const rootEventIds = new Set(rootEvents.map(it => it.id));
|
|
38
|
-
collectDependencies(rootEventIds);
|
|
39
|
-
return events.filter(it => eventIds.has(it.id));
|
|
40
|
-
}
|
|
41
|
-
async fetchAffectedEntities(db, permissionContext, schema, stage, filter) {
|
|
42
|
-
const affectedEntities = (await Promise.all(filter.map(async (it) => await this.entitiesSelector.getEntities({
|
|
43
|
-
db: db.client.forSchema(helpers_1.formatSchemaName(stage)),
|
|
44
|
-
schema: schema_utils_1.filterSchemaByStage(schema, stage.slug),
|
|
45
|
-
identityVariables: permissionContext.variables,
|
|
46
|
-
roles: permissionContext.identity.roles,
|
|
47
|
-
}, {
|
|
48
|
-
entity: it.entity,
|
|
49
|
-
relations: it.relations,
|
|
50
|
-
filter: it.id
|
|
51
|
-
? {
|
|
52
|
-
[schema_utils_1.getEntity(schema.model, it.entity).primary]: { eq: it.id },
|
|
53
|
-
}
|
|
54
|
-
: it.filter || {},
|
|
55
|
-
})))).flatMap(it => it);
|
|
56
|
-
const collectIds = (result) => {
|
|
57
|
-
const { id, ...rest } = result;
|
|
58
|
-
return [
|
|
59
|
-
id,
|
|
60
|
-
...Object.values(rest).flatMap(it => {
|
|
61
|
-
if (!it) {
|
|
62
|
-
return [];
|
|
63
|
-
}
|
|
64
|
-
if (Array.isArray(it)) {
|
|
65
|
-
return it.flatMap(collectIds);
|
|
66
|
-
}
|
|
67
|
-
return collectIds(it);
|
|
68
|
-
}),
|
|
69
|
-
];
|
|
70
|
-
};
|
|
71
|
-
return affectedEntities.flatMap(it => (it ? collectIds(it) : [])).filter(it => it !== null);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
exports.DiffBuilder = DiffBuilder;
|
|
75
|
-
var DiffBuilderErrorCode;
|
|
76
|
-
(function (DiffBuilderErrorCode) {
|
|
77
|
-
DiffBuilderErrorCode["notRebased"] = "notRebased";
|
|
78
|
-
DiffBuilderErrorCode["invalidFilter"] = "invalidFilter";
|
|
79
|
-
})(DiffBuilderErrorCode = exports.DiffBuilderErrorCode || (exports.DiffBuilderErrorCode = {}));
|
|
80
|
-
class DiffBuilderErrorResponse {
|
|
81
|
-
constructor(error, message) {
|
|
82
|
-
this.error = error;
|
|
83
|
-
this.message = message;
|
|
84
|
-
this.ok = false;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
exports.DiffBuilderErrorResponse = DiffBuilderErrorResponse;
|
|
88
|
-
class DiffBuilderOkResponse {
|
|
89
|
-
constructor(events) {
|
|
90
|
-
this.events = events;
|
|
91
|
-
this.ok = true;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
exports.DiffBuilderOkResponse = DiffBuilderOkResponse;
|
|
95
|
-
//# sourceMappingURL=DiffBuilder.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DiffBuilder.js","sourceRoot":"","sources":["../../../../src/model/events/DiffBuilder.ts"],"names":[],"mappings":";;;AAOA,wCAA6C;AAC7C,0DAAwE;AAGxE,qEAAiE;AAOjE,MAAa,WAAW;IACvB,YACkB,iBAAoC,EACpC,oBAA0C,EAC1C,gBAAkC;QAFlC,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,yBAAoB,GAApB,oBAAoB,CAAsB;QAC1C,qBAAgB,GAAhB,gBAAgB,CAAkB;IACjD,CAAC;IAEG,KAAK,CAAC,KAAK,CACjB,EAAmB,EACnB,iBAAmD,EACnD,SAAgB,EAChB,SAAgB,EAChB,MAAyC;QAEzC,MAAM,IAAI,2CAAoB,EAAE,CAAA;IACjC,CAAC;IAEO,KAAK,CAAC,YAAY,CACzB,MAAsB,EACtB,iBAAqC,EACrC,iBAAmD,EACnD,EAAmB,EACnB,MAAc,EACd,SAAgB,EAChB,SAAgB,EAChB,MAAkC;QAElC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;YACxB,OAAO,EAAE,CAAA;SACT;QACD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;QACvG,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,EAAE,EAAE,iBAAiB,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;QACvG,MAAM,MAAM,GAAG,CAAC,GAAG,YAAY,EAAE,GAAG,YAAY,CAAC,CAAA;QAEjD,MAAM,UAAU,GAAmB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAChG,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAS,EAAE,CAAC,CAAA;QAEpC,MAAM,mBAAmB,GAAG,CAAC,GAAyB,EAAE,EAAE;YACzD,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;gBAChB,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;oBACrB,OAAM;iBACN;gBACD,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;gBAChB,MAAM,IAAI,GAAG,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;gBACtC,IAAI,IAAI,EAAE;oBACT,mBAAmB,CAAC,IAAI,CAAC,CAAA;iBACzB;YACF,CAAC,CAAC,CAAA;QACH,CAAC,CAAA;QACD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QACzD,mBAAmB,CAAC,YAAY,CAAC,CAAA;QAEjC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAChD,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAClC,EAAmB,EACnB,iBAAmD,EACnD,MAAc,EACd,KAAY,EACZ,MAA8B;QAE9B,MAAM,gBAAgB,GAAG,CACxB,MAAM,OAAO,CAAC,GAAG,CAChB,MAAM,CAAC,GAAG,CACT,KAAK,EAAC,EAAE,EAAC,EAAE,CACV,MAAM,IAAI,CAAC,gBAAgB,CAAC,WAAW,CACtC;YACC,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,0BAAgB,CAAC,KAAK,CAAC,CAAC;YAChD,MAAM,EAAE,kCAAmB,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC;YAC/C,iBAAiB,EAAE,iBAAiB,CAAC,SAAS;YAC9C,KAAK,EAAE,iBAAiB,CAAC,QAAQ,CAAC,KAAK;SACvC,EACD;YACC,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,SAAS,EAAE,EAAE,CAAC,SAAS;YACvB,MAAM,EAAE,EAAE,CAAC,EAAE;gBACZ,CAAC,CAAC;oBACD,CAAC,wBAAS,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE;iBACzD;gBACH,CAAC,CAAC,EAAE,CAAC,MAAM,IAAI,EAAE;SAClB,CACD,CACF,CACD,CACD,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;QACnB,MAAM,UAAU,GAAG,CAAC,MAAsB,EAAY,EAAE;YACvD,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAA;YAC9B,OAAO;gBACN,EAAE;gBACF,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;oBACnC,IAAI,CAAC,EAAE,EAAE;wBACR,OAAO,EAAE,CAAA;qBACT;oBACD,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;wBACtB,OAAO,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;qBAC7B;oBACD,OAAO,UAAU,CAAC,EAAE,CAAC,CAAA;gBACtB,CAAC,CAAC;aACF,CAAA;QACF,CAAC,CAAA;QACD,OAAO,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,CAAA;IAC5F,CAAC;CACD;AAvGD,kCAuGC;AAID,IAAY,oBAGX;AAHD,WAAY,oBAAoB;IAC/B,iDAAyB,CAAA;IACzB,uDAA+B,CAAA;AAChC,CAAC,EAHW,oBAAoB,GAApB,4BAAoB,KAApB,4BAAoB,QAG/B;AAED,MAAa,wBAAwB;IAGpC,YAA4B,KAA2B,EAAkB,OAAe;QAA5D,UAAK,GAAL,KAAK,CAAsB;QAAkB,YAAO,GAAP,OAAO,CAAQ;QAFxE,OAAE,GAAU,KAAK,CAAA;IAE0D,CAAC;CAC5F;AAJD,4DAIC;AAID,MAAa,qBAAqB;IAGjC,YAA4B,MAA+B;QAA/B,WAAM,GAAN,MAAM,CAAyB;QAF3C,OAAE,GAAS,IAAI,CAAA;IAE+B,CAAC;CAC/D;AAJD,sDAIC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { Model } from '@contember/schema';
|
|
2
|
-
import { EventFilter } from './DiffBuilder';
|
|
3
|
-
export declare class InvalidFilterError {
|
|
4
|
-
readonly message: string;
|
|
5
|
-
constructor(message: string);
|
|
6
|
-
}
|
|
7
|
-
export declare class EventFilterValidator {
|
|
8
|
-
static validateFilter(model: Model.Schema, filter: EventFilter): void;
|
|
9
|
-
private static getEntity;
|
|
10
|
-
private static validateRelations;
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=EventFilterValidator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EventFilterValidator.d.ts","sourceRoot":"","sources":["../../../../src/model/events/EventFilterValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAI3C,qBAAa,kBAAkB;aACF,OAAO,EAAE,MAAM;gBAAf,OAAO,EAAE,MAAM;CAC3C;AAED,qBAAa,oBAAoB;WAClB,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,IAAI;IAK5E,OAAO,CAAC,MAAM,CAAC,SAAS;IAWxB,OAAO,CAAC,MAAM,CAAC,iBAAiB;CAyBhC"}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EventFilterValidator = exports.InvalidFilterError = void 0;
|
|
4
|
-
const schema_utils_1 = require("@contember/schema-utils");
|
|
5
|
-
class InvalidFilterError {
|
|
6
|
-
constructor(message) {
|
|
7
|
-
this.message = message;
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
exports.InvalidFilterError = InvalidFilterError;
|
|
11
|
-
class EventFilterValidator {
|
|
12
|
-
static validateFilter(model, filter) {
|
|
13
|
-
const entity = EventFilterValidator.getEntity(model, filter.entity);
|
|
14
|
-
EventFilterValidator.validateRelations(model, entity, filter.relations, [entity.name]);
|
|
15
|
-
}
|
|
16
|
-
static getEntity(model, entityName) {
|
|
17
|
-
try {
|
|
18
|
-
return schema_utils_1.getEntity(model, entityName);
|
|
19
|
-
}
|
|
20
|
-
catch (e) {
|
|
21
|
-
if (e instanceof schema_utils_1.ModelError && e.code === schema_utils_1.ModelErrorCode.ENTITY_NOT_FOUND) {
|
|
22
|
-
throw new InvalidFilterError(`${entityName}: entity not found`);
|
|
23
|
-
}
|
|
24
|
-
throw e;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
static validateRelations(model, entity, relations, path) {
|
|
28
|
-
for (const relation of relations) {
|
|
29
|
-
const newPath = [...path, relation.name];
|
|
30
|
-
try {
|
|
31
|
-
const targetEntity = schema_utils_1.acceptFieldVisitor(model, entity, relation.name, {
|
|
32
|
-
visitColumn: () => {
|
|
33
|
-
throw new InvalidFilterError(`${newPath.join('.')}: not a relation`);
|
|
34
|
-
},
|
|
35
|
-
visitRelation: ({}, {}, targetEntity) => {
|
|
36
|
-
return targetEntity;
|
|
37
|
-
},
|
|
38
|
-
});
|
|
39
|
-
EventFilterValidator.validateRelations(model, targetEntity, relation.relations, newPath);
|
|
40
|
-
}
|
|
41
|
-
catch (e) {
|
|
42
|
-
if (e instanceof schema_utils_1.ModelError && e.code === schema_utils_1.ModelErrorCode.FIELD_NOT_FOUND) {
|
|
43
|
-
throw new InvalidFilterError(`${newPath.join('.')}: field not found`);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
exports.EventFilterValidator = EventFilterValidator;
|
|
50
|
-
//# sourceMappingURL=EventFilterValidator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EventFilterValidator.js","sourceRoot":"","sources":["../../../../src/model/events/EventFilterValidator.ts"],"names":[],"mappings":";;;AAEA,0DAAmG;AAGnG,MAAa,kBAAkB;IAC9B,YAA4B,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;IAAG,CAAC;CAC/C;AAFD,gDAEC;AAED,MAAa,oBAAoB;IACzB,MAAM,CAAC,cAAc,CAAC,KAAmB,EAAE,MAAmB;QACpE,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;QACnE,oBAAoB,CAAC,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;IACvF,CAAC;IAEO,MAAM,CAAC,SAAS,CAAC,KAAmB,EAAE,UAAkB;QAC/D,IAAI;YACH,OAAO,wBAAS,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;SACnC;QAAC,OAAO,CAAC,EAAE;YACX,IAAI,CAAC,YAAY,yBAAU,IAAI,CAAC,CAAC,IAAI,KAAK,6BAAc,CAAC,gBAAgB,EAAE;gBAC1E,MAAM,IAAI,kBAAkB,CAAC,GAAG,UAAU,oBAAoB,CAAC,CAAA;aAC/D;YACD,MAAM,CAAC,CAAA;SACP;IACF,CAAC;IAEO,MAAM,CAAC,iBAAiB,CAC/B,KAAmB,EACnB,MAAoB,EACpB,SAAiC,EACjC,IAAc;QAEd,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;YACjC,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;YACxC,IAAI;gBACH,MAAM,YAAY,GAAG,iCAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE;oBACrE,WAAW,EAAE,GAAG,EAAE;wBACjB,MAAM,IAAI,kBAAkB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;oBACrE,CAAC;oBACD,aAAa,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE;wBACvC,OAAO,YAAY,CAAA;oBACpB,CAAC;iBACD,CAAC,CAAA;gBACF,oBAAoB,CAAC,iBAAiB,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;aACxF;YAAC,OAAO,CAAC,EAAE;gBACX,IAAI,CAAC,YAAY,yBAAU,IAAI,CAAC,CAAC,IAAI,KAAK,6BAAc,CAAC,eAAe,EAAE;oBACzE,MAAM,IAAI,kBAAkB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;iBACrE;aACD;SACD;IACF,CAAC;CACD;AA1CD,oDA0CC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { AnyEvent } from '@contember/engine-common';
|
|
2
|
-
import { HistoryEvent as ApiEvent } from '../../schema';
|
|
3
|
-
import { IdentityFetcher } from '../dependencies/tenant/IdentityFetcher';
|
|
4
|
-
export declare class HistoryEventResponseBuilder {
|
|
5
|
-
private readonly identityFetcher;
|
|
6
|
-
constructor(identityFetcher: IdentityFetcher);
|
|
7
|
-
buildResponse(events: AnyEvent[]): Promise<ApiEvent[]>;
|
|
8
|
-
private formatDescription;
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=HistoryEventResponseBuilder.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"HistoryEventResponseBuilder.d.ts","sourceRoot":"","sources":["../../../../src/model/events/HistoryEventResponseBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAa,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAGN,YAAY,IAAI,QAAQ,EAGxB,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAA;AAIxE,qBAAa,2BAA2B;IAC3B,OAAO,CAAC,QAAQ,CAAC,eAAe;gBAAf,eAAe,EAAE,eAAe;IAEhD,aAAa,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAgCnE,OAAO,CAAC,iBAAiB;CAYzB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"HistoryEventResponseBuilder.js","sourceRoot":"","sources":["../../../../src/model/events/HistoryEventResponseBuilder.ts"],"names":[],"mappings":";;;AAAA,4DAA8D;AAC9D,yCAMqB;AACrB,uCAAyC;AAEzC,mDAAgD;AAChD,+DAAoH;AAEpH,MAAa,2BAA2B;IACvC,YAA6B,eAAgC;QAAhC,oBAAe,GAAf,eAAe,CAAiB;IAAG,CAAC;IAE1D,KAAK,CAAC,aAAa,CAAC,MAAkB;QAC5C,MAAM,mBAAmB,GAAG;YAC3B,CAAC,yBAAS,CAAC,MAAM,CAAC,EAAE,yBAAY,CAAC,MAAM;YACvC,CAAC,yBAAS,CAAC,MAAM,CAAC,EAAE,yBAAY,CAAC,MAAM;YACvC,CAAC,yBAAS,CAAC,MAAM,CAAC,EAAE,yBAAY,CAAC,MAAM;SACvC,CAAA;QACD,MAAM,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,CAAA;QACzG,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,WAAW,CAAC,CAAA;QAC1E,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;QAEnF,OAAO,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;YACtB,MAAM,UAAU,GAAG;gBAClB,SAAS,EAAE,EAAE,CAAC,SAAS;gBACvB,EAAE,EAAE,EAAE,CAAC,EAAE;gBACT,IAAI,EAAE,mBAAmB,CAAC,EAAE,CAAC,IAAI,CAAC;gBAClC,WAAW,EAAE,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACvC,aAAa,EAAE,EAAE,CAAC,aAAa;gBAC/B,UAAU,EAAE,EAAE,CAAC,UAAU;gBACzB,mBAAmB,EAAE,8BAAc,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;aACjE,CAAA;YACD,QAAQ,EAAE,CAAC,IAAI,EAAE;gBAChB,KAAK,yBAAS,CAAC,MAAM;oBACpB,OAAO,CAAC,GAAuB,EAAE,CAAC,8CAAwB,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,CAAA;gBAC9E,KAAK,yBAAS,CAAC,MAAM;oBACpB,OAAO,CAAC,GAAuB,EAAE,CAAC,8CAAwB,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,CAAA;gBAC9E,KAAK,yBAAS,CAAC,MAAM;oBACpB,OAAO,CAAC,GAAuB,EAAE,CAAC,8CAAwB,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,CAAA;aAC9E;YACD,mBAAW,CAAC,EAAE,CAAC,CAAA;QAChB,CAAC,CAAC,CAAA;IACH,CAAC;IAEO,iBAAiB,CAAC,KAAe;QACxC,QAAQ,KAAK,CAAC,IAAI,EAAE;YACnB,KAAK,yBAAS,CAAC,MAAM;gBACpB,OAAO,YAAY,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,EAAE,CAAA;YACpD,KAAK,yBAAS,CAAC,MAAM;gBACpB,OAAO,YAAY,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,EAAE,CAAA;YACpD,KAAK,yBAAS,CAAC,MAAM;gBACpB,OAAO,YAAY,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,EAAE,CAAA;YACpD;gBACC,OAAO,mBAAW,CAAC,KAAK,CAAC,CAAA;SAC1B;IACF,CAAC;CACD;AA/CD,kEA+CC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { Model } from '@contember/schema';
|
|
2
|
-
export declare const getTableReferencing: (schema: Model.Schema) => TableReferencingResolverResult;
|
|
3
|
-
export declare type TableReferencingResolverResult = {
|
|
4
|
-
[tableName: string]: {
|
|
5
|
-
[column: string]: string;
|
|
6
|
-
};
|
|
7
|
-
};
|
|
8
|
-
//# sourceMappingURL=TableReferencingResolver.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TableReferencingResolver.d.ts","sourceRoot":"","sources":["../../../../src/model/events/TableReferencingResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAGzC,eAAO,MAAM,mBAAmB,WAAY,MAAM,MAAM,KAAG,8BAuC1D,CAAA;AAED,oBAAY,8BAA8B,GAAG;IAAE,CAAC,SAAS,EAAE,MAAM,GAAG;QAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;CAAE,CAAA"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getTableReferencing = void 0;
|
|
4
|
-
const schema_utils_1 = require("@contember/schema-utils");
|
|
5
|
-
const getTableReferencing = (schema) => {
|
|
6
|
-
const result = {};
|
|
7
|
-
for (let entity of Object.values(schema.entities)) {
|
|
8
|
-
result[entity.tableName] = {};
|
|
9
|
-
schema_utils_1.acceptEveryFieldVisitor(schema, entity, new (class {
|
|
10
|
-
visitManyHasOne({}, relation, targetEntity) {
|
|
11
|
-
result[entity.tableName][relation.joiningColumn.columnName] = targetEntity.tableName;
|
|
12
|
-
}
|
|
13
|
-
visitOneHasOneOwning({}, relation, targetEntity) {
|
|
14
|
-
result[entity.tableName][relation.joiningColumn.columnName] = targetEntity.tableName;
|
|
15
|
-
}
|
|
16
|
-
visitManyHasManyOwning(entity, relation, targetEntity) {
|
|
17
|
-
result[relation.joiningTable.tableName] = {
|
|
18
|
-
[relation.joiningTable.joiningColumn.columnName]: entity.tableName,
|
|
19
|
-
[relation.joiningTable.inverseJoiningColumn.columnName]: targetEntity.tableName,
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
visitColumn() { }
|
|
23
|
-
visitManyHasManyInverse() { }
|
|
24
|
-
visitOneHasMany() { }
|
|
25
|
-
visitOneHasOneInverse() { }
|
|
26
|
-
})());
|
|
27
|
-
}
|
|
28
|
-
return result;
|
|
29
|
-
};
|
|
30
|
-
exports.getTableReferencing = getTableReferencing;
|
|
31
|
-
//# sourceMappingURL=TableReferencingResolver.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TableReferencingResolver.js","sourceRoot":"","sources":["../../../../src/model/events/TableReferencingResolver.ts"],"names":[],"mappings":";;;AACA,0DAAiE;AAE1D,MAAM,mBAAmB,GAAG,CAAC,MAAoB,EAAkC,EAAE;IAC3F,MAAM,MAAM,GAAmC,EAAE,CAAA;IAEjD,KAAK,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;QAClD,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAA;QAC7B,sCAAuB,CACtB,MAAM,EACN,MAAM,EACN,IAAI,CAAC;YACJ,eAAe,CAAC,EAAE,EAAE,QAAkC,EAAE,YAA0B;gBACjF,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,YAAY,CAAC,SAAS,CAAA;YACrF,CAAC;YAED,oBAAoB,CAAC,EAAE,EAAE,QAAuC,EAAE,YAA0B;gBAC3F,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,YAAY,CAAC,SAAS,CAAA;YACrF,CAAC;YAED,sBAAsB,CACrB,MAAoB,EACpB,QAAyC,EACzC,YAA0B;gBAE1B,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG;oBACzC,CAAC,QAAQ,CAAC,YAAY,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,SAAS;oBAClE,CAAC,QAAQ,CAAC,YAAY,CAAC,oBAAoB,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC,SAAS;iBAC/E,CAAA;YACF,CAAC;YAED,WAAW,KAAI,CAAC;YAEhB,uBAAuB,KAAI,CAAC;YAE5B,eAAe,KAAI,CAAC;YAEpB,qBAAqB,KAAI,CAAC;SAC1B,CAAC,EAAE,CACJ,CAAA;KACD;IACD,OAAO,MAAM,CAAA;AACd,CAAC,CAAA;AAvCY,QAAA,mBAAmB,uBAuC/B"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { ContentEvent } from '@contember/engine-common';
|
|
2
|
-
import { DependencyBuilder, EventsDependencies } from '../DependencyBuilder';
|
|
3
|
-
import { Schema } from '@contember/schema';
|
|
4
|
-
/**
|
|
5
|
-
* Events that references a row depends on creation of such event (or its following update)
|
|
6
|
-
*
|
|
7
|
-
* A1 - A row creation
|
|
8
|
-
* A2 - A row update
|
|
9
|
-
* B1 - some update on B row
|
|
10
|
-
* B2 - some update on B row that references A row
|
|
11
|
-
*
|
|
12
|
-
* v----\
|
|
13
|
-
* A1 A2 B1 B2
|
|
14
|
-
*
|
|
15
|
-
*/
|
|
16
|
-
export declare class CreatedRowReferenceDependencyBuilder implements DependencyBuilder {
|
|
17
|
-
build(schema: Schema, events: ContentEvent[]): Promise<EventsDependencies>;
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=CreatedRowReferenceDependencyBuilder.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CreatedRowReferenceDependencyBuilder.d.ts","sourceRoot":"","sources":["../../../../../src/model/events/dependency/CreatedRowReferenceDependencyBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAa,MAAM,0BAA0B,CAAA;AAClE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAE5E,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAK1C;;;;;;;;;;;GAWG;AACH,qBAAa,oCAAqC,YAAW,iBAAiB;IACvE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;CA0DhF"}
|
|
@@ -1,79 +0,0 @@
|
|
|
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
|
-
exports.CreatedRowReferenceDependencyBuilder = void 0;
|
|
7
|
-
const engine_common_1 = require("@contember/engine-common");
|
|
8
|
-
const TableReferencingResolver_1 = require("../TableReferencingResolver");
|
|
9
|
-
const helpers_1 = require("../../helpers");
|
|
10
|
-
const assert_1 = __importDefault(require("assert"));
|
|
11
|
-
const utils_1 = require("../../../utils");
|
|
12
|
-
/**
|
|
13
|
-
* Events that references a row depends on creation of such event (or its following update)
|
|
14
|
-
*
|
|
15
|
-
* A1 - A row creation
|
|
16
|
-
* A2 - A row update
|
|
17
|
-
* B1 - some update on B row
|
|
18
|
-
* B2 - some update on B row that references A row
|
|
19
|
-
*
|
|
20
|
-
* v----\
|
|
21
|
-
* A1 A2 B1 B2
|
|
22
|
-
*
|
|
23
|
-
*/
|
|
24
|
-
class CreatedRowReferenceDependencyBuilder {
|
|
25
|
-
async build(schema, events) {
|
|
26
|
-
if (events.length === 0) {
|
|
27
|
-
return new utils_1.MapSet();
|
|
28
|
-
}
|
|
29
|
-
const tableReferencing = TableReferencingResolver_1.getTableReferencing(schema.model);
|
|
30
|
-
const dependencies = new utils_1.MapSet();
|
|
31
|
-
const formatRef = (id, table) => `${table}#${id}`;
|
|
32
|
-
const createdRows = new Map();
|
|
33
|
-
const junctionTables = helpers_1.getJunctionTables(schema.model);
|
|
34
|
-
const junctionTableMap = new Map(junctionTables.map(it => utils_1.tuple(it.tableName, it)));
|
|
35
|
-
for (const event of events) {
|
|
36
|
-
const junctionTable = junctionTableMap.get(event.tableName);
|
|
37
|
-
if (!junctionTable) {
|
|
38
|
-
assert_1.default.strictEqual(event.rowId.length, 1);
|
|
39
|
-
const ref = formatRef(event.rowId[0], event.tableName);
|
|
40
|
-
if (event.type === engine_common_1.EventType.create) {
|
|
41
|
-
createdRows.set(ref, event.id);
|
|
42
|
-
}
|
|
43
|
-
else if (createdRows.has(ref)) {
|
|
44
|
-
// update event reference to latest event
|
|
45
|
-
createdRows.set(ref, event.id);
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
if (event.type !== engine_common_1.EventType.create && event.type !== engine_common_1.EventType.update) {
|
|
49
|
-
continue;
|
|
50
|
-
}
|
|
51
|
-
for (let column in event.values) {
|
|
52
|
-
const referencedTable = tableReferencing[event.tableName][column];
|
|
53
|
-
if (!referencedTable) {
|
|
54
|
-
continue;
|
|
55
|
-
}
|
|
56
|
-
const ref = formatRef(event.values[column], referencedTable);
|
|
57
|
-
const createEventId = createdRows.get(ref);
|
|
58
|
-
if (createEventId !== undefined) {
|
|
59
|
-
dependencies.add(event.id, createEventId);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
if (junctionTable) {
|
|
63
|
-
event.rowId.forEach((id, index) => {
|
|
64
|
-
assert_1.default.ok(index === 0 || index === 1);
|
|
65
|
-
const columnName = index === 0 ? junctionTable.joiningColumn.columnName : junctionTable.inverseJoiningColumn.columnName;
|
|
66
|
-
const table = tableReferencing[junctionTable.tableName][columnName];
|
|
67
|
-
const ref = formatRef(id, table);
|
|
68
|
-
const createdEventId = createdRows.get(ref);
|
|
69
|
-
if (createdEventId) {
|
|
70
|
-
dependencies.add(event.id, createdEventId);
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
return dependencies;
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
exports.CreatedRowReferenceDependencyBuilder = CreatedRowReferenceDependencyBuilder;
|
|
79
|
-
//# sourceMappingURL=CreatedRowReferenceDependencyBuilder.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CreatedRowReferenceDependencyBuilder.js","sourceRoot":"","sources":["../../../../../src/model/events/dependency/CreatedRowReferenceDependencyBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { ContentEvent } from '@contember/engine-common';
|
|
2
|
-
import { DependencyBuilder, EventsDependencies } from '../DependencyBuilder';
|
|
3
|
-
import { Schema } from '@contember/schema';
|
|
4
|
-
/**
|
|
5
|
-
* Delete event depends on all previous events which references this row
|
|
6
|
-
*
|
|
7
|
-
* A1 - update event which references X row
|
|
8
|
-
* A2 - another event which does not reference X row
|
|
9
|
-
*
|
|
10
|
-
* v----\
|
|
11
|
-
* A1 A2 X1
|
|
12
|
-
*
|
|
13
|
-
*/
|
|
14
|
-
export declare class DeletedRowReferenceDependencyBuilder implements DependencyBuilder {
|
|
15
|
-
build(schema: Schema, events: ContentEvent[]): Promise<EventsDependencies>;
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=DeletedRowReferenceDependencyBuilder.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DeletedRowReferenceDependencyBuilder.d.ts","sourceRoot":"","sources":["../../../../../src/model/events/dependency/DeletedRowReferenceDependencyBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAa,MAAM,0BAA0B,CAAA;AAClE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAE5E,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAK1C;;;;;;;;;GASG;AACH,qBAAa,oCAAqC,YAAW,iBAAiB;IACvE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAuDhF"}
|
|
@@ -1,76 +0,0 @@
|
|
|
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
|
-
exports.DeletedRowReferenceDependencyBuilder = void 0;
|
|
7
|
-
const engine_common_1 = require("@contember/engine-common");
|
|
8
|
-
const TableReferencingResolver_1 = require("../TableReferencingResolver");
|
|
9
|
-
const helpers_1 = require("../../helpers");
|
|
10
|
-
const assert_1 = __importDefault(require("assert"));
|
|
11
|
-
const utils_1 = require("../../../utils");
|
|
12
|
-
/**
|
|
13
|
-
* Delete event depends on all previous events which references this row
|
|
14
|
-
*
|
|
15
|
-
* A1 - update event which references X row
|
|
16
|
-
* A2 - another event which does not reference X row
|
|
17
|
-
*
|
|
18
|
-
* v----\
|
|
19
|
-
* A1 A2 X1
|
|
20
|
-
*
|
|
21
|
-
*/
|
|
22
|
-
class DeletedRowReferenceDependencyBuilder {
|
|
23
|
-
async build(schema, events) {
|
|
24
|
-
if (events.length === 0) {
|
|
25
|
-
return new utils_1.MapSet();
|
|
26
|
-
}
|
|
27
|
-
const tableReferencing = TableReferencingResolver_1.getTableReferencing(schema.model);
|
|
28
|
-
const formatRef = (id, table) => `${table}#${id}`;
|
|
29
|
-
const dependencies = new utils_1.MapSet();
|
|
30
|
-
const deletedRows = new Map();
|
|
31
|
-
const junctionTables = helpers_1.getJunctionTables(schema.model);
|
|
32
|
-
const junctionTableMap = new Map(junctionTables.map(it => utils_1.tuple(it.tableName, it)));
|
|
33
|
-
for (const event of events) {
|
|
34
|
-
if (!junctionTableMap.has(event.tableName)) {
|
|
35
|
-
assert_1.default.strictEqual(event.rowId.length, 1);
|
|
36
|
-
if (event.type === engine_common_1.EventType.delete) {
|
|
37
|
-
deletedRows.set(formatRef(event.rowId[0], event.tableName), event.id);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
for (const event of events) {
|
|
42
|
-
if (event.type !== engine_common_1.EventType.create && event.type !== engine_common_1.EventType.update) {
|
|
43
|
-
continue;
|
|
44
|
-
}
|
|
45
|
-
const junctionTable = junctionTableMap.get(event.tableName);
|
|
46
|
-
if (junctionTable) {
|
|
47
|
-
event.rowId.forEach((id, index) => {
|
|
48
|
-
assert_1.default.ok(index === 0 || index === 1);
|
|
49
|
-
const columnName = index === 0 ? junctionTable.joiningColumn.columnName : junctionTable.inverseJoiningColumn.columnName;
|
|
50
|
-
const table = tableReferencing[junctionTable.tableName][columnName];
|
|
51
|
-
const ref = formatRef(id, table);
|
|
52
|
-
const deleteEventId = deletedRows.get(ref);
|
|
53
|
-
if (deleteEventId) {
|
|
54
|
-
dependencies.add(deleteEventId, event.id);
|
|
55
|
-
}
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
for (let column in event.values) {
|
|
60
|
-
const referencedTable = tableReferencing[event.tableName][column];
|
|
61
|
-
if (!referencedTable) {
|
|
62
|
-
continue;
|
|
63
|
-
}
|
|
64
|
-
const ref = formatRef(event.values[column], referencedTable);
|
|
65
|
-
const deleteEventId = deletedRows.get(ref);
|
|
66
|
-
if (deleteEventId) {
|
|
67
|
-
dependencies.add(deleteEventId, event.id);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
return dependencies;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
exports.DeletedRowReferenceDependencyBuilder = DeletedRowReferenceDependencyBuilder;
|
|
76
|
-
//# sourceMappingURL=DeletedRowReferenceDependencyBuilder.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DeletedRowReferenceDependencyBuilder.js","sourceRoot":"","sources":["../../../../../src/model/events/dependency/DeletedRowReferenceDependencyBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { DependencyBuilder, EventsDependencies } from '../DependencyBuilder';
|
|
2
|
-
import { ContentEvent } from '@contember/engine-common';
|
|
3
|
-
import { Schema } from '@contember/schema';
|
|
4
|
-
export declare class DependencyBuilderList implements DependencyBuilder {
|
|
5
|
-
private readonly builders;
|
|
6
|
-
constructor(builders: DependencyBuilder[]);
|
|
7
|
-
build(schema: Schema, events: ContentEvent[]): Promise<EventsDependencies>;
|
|
8
|
-
}
|
|
9
|
-
//# sourceMappingURL=DependencyBuilderList.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DependencyBuilderList.d.ts","sourceRoot":"","sources":["../../../../../src/model/events/dependency/DependencyBuilderList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAC5E,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAG1C,qBAAa,qBAAsB,YAAW,iBAAiB;IAClD,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,iBAAiB,EAAE;IAEpD,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAShF"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DependencyBuilderList = void 0;
|
|
4
|
-
const utils_1 = require("../../../utils");
|
|
5
|
-
class DependencyBuilderList {
|
|
6
|
-
constructor(builders) {
|
|
7
|
-
this.builders = builders;
|
|
8
|
-
}
|
|
9
|
-
async build(schema, events) {
|
|
10
|
-
const deps = new utils_1.MapSet();
|
|
11
|
-
for (const event of events) {
|
|
12
|
-
deps.add(event.id);
|
|
13
|
-
}
|
|
14
|
-
const buildersDeps = await Promise.all(this.builders.map(builder => builder.build(schema, events)));
|
|
15
|
-
deps.merge(...buildersDeps);
|
|
16
|
-
return deps;
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
exports.DependencyBuilderList = DependencyBuilderList;
|
|
20
|
-
//# sourceMappingURL=DependencyBuilderList.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DependencyBuilderList.js","sourceRoot":"","sources":["../../../../../src/model/events/dependency/DependencyBuilderList.ts"],"names":[],"mappings":";;;AAGA,0CAAuC;AAEvC,MAAa,qBAAqB;IACjC,YAA6B,QAA6B;QAA7B,aAAQ,GAAR,QAAQ,CAAqB;IAAG,CAAC;IAE9D,KAAK,CAAC,KAAK,CAAC,MAAc,EAAE,MAAsB;QACjD,MAAM,IAAI,GAAuB,IAAI,cAAM,EAAE,CAAA;QAC7C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC3B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;SAClB;QACD,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;QACnG,IAAI,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,CAAA;QAC3B,OAAO,IAAI,CAAA;IACZ,CAAC;CACD;AAZD,sDAYC"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { ContentEvent } from '@contember/engine-common';
|
|
2
|
-
import { DependencyBuilder, EventsDependencies } from '../DependencyBuilder';
|
|
3
|
-
import { Schema } from '@contember/schema';
|
|
4
|
-
/**
|
|
5
|
-
* Events on a same row are depending on each other. Meaning that
|
|
6
|
-
* a) all previous events has to be executed
|
|
7
|
-
* b) all following events has to be executed (todo rethink)
|
|
8
|
-
*
|
|
9
|
-
* v-----v-----v
|
|
10
|
-
* A1 B1 A2 B2 A3
|
|
11
|
-
* ^-----^
|
|
12
|
-
*/
|
|
13
|
-
export declare class SameRowDependencyBuilder implements DependencyBuilder {
|
|
14
|
-
build(schema: Schema, events: ContentEvent[]): Promise<EventsDependencies>;
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=SameRowDependencyBuilder.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SameRowDependencyBuilder.d.ts","sourceRoot":"","sources":["../../../../../src/model/events/dependency/SameRowDependencyBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAC5E,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAK1C;;;;;;;;GAQG;AACH,qBAAa,wBAAyB,YAAW,iBAAiB;IAC3D,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAkBhF"}
|
|
@@ -1,38 +0,0 @@
|
|
|
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
|
-
exports.SameRowDependencyBuilder = void 0;
|
|
7
|
-
const helpers_1 = require("../../helpers");
|
|
8
|
-
const assert_1 = __importDefault(require("assert"));
|
|
9
|
-
const utils_1 = require("../../../utils");
|
|
10
|
-
/**
|
|
11
|
-
* Events on a same row are depending on each other. Meaning that
|
|
12
|
-
* a) all previous events has to be executed
|
|
13
|
-
* b) all following events has to be executed (todo rethink)
|
|
14
|
-
*
|
|
15
|
-
* v-----v-----v
|
|
16
|
-
* A1 B1 A2 B2 A3
|
|
17
|
-
* ^-----^
|
|
18
|
-
*/
|
|
19
|
-
class SameRowDependencyBuilder {
|
|
20
|
-
async build(schema, events) {
|
|
21
|
-
const rows = new utils_1.MapSet();
|
|
22
|
-
const dependencies = new utils_1.MapSet();
|
|
23
|
-
const junctionTables = new Set(helpers_1.getJunctionTables(schema.model).map(it => it.tableName));
|
|
24
|
-
const formatRef = (id, table) => `${table}#${id}`;
|
|
25
|
-
for (const event of events) {
|
|
26
|
-
if (junctionTables.has(event.tableName)) {
|
|
27
|
-
continue;
|
|
28
|
-
}
|
|
29
|
-
assert_1.default.strictEqual(event.rowId.length, 1);
|
|
30
|
-
const ref = formatRef(event.rowId[0], event.tableName);
|
|
31
|
-
const events = rows.add(ref, event.id);
|
|
32
|
-
dependencies.set(event.id, events);
|
|
33
|
-
}
|
|
34
|
-
return dependencies;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
exports.SameRowDependencyBuilder = SameRowDependencyBuilder;
|
|
38
|
-
//# sourceMappingURL=SameRowDependencyBuilder.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SameRowDependencyBuilder.js","sourceRoot":"","sources":["../../../../../src/model/events/dependency/SameRowDependencyBuilder.ts"],"names":[],"mappings":";;;;;;AAGA,2CAAiD;AACjD,oDAA2B;AAC3B,0CAAuC;AAEvC;;;;;;;;GAQG;AACH,MAAa,wBAAwB;IACpC,KAAK,CAAC,KAAK,CAAC,MAAc,EAAE,MAAsB;QACjD,MAAM,IAAI,GAAG,IAAI,cAAM,EAAkB,CAAA;QACzC,MAAM,YAAY,GAAuB,IAAI,cAAM,EAAE,CAAA;QACrD,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,2BAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;QACvF,MAAM,SAAS,GAAG,CAAC,EAAU,EAAE,KAAa,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,EAAE,EAAE,CAAA;QACjE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC3B,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;gBACxC,SAAQ;aACR;YACD,gBAAM,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;YACzC,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,CAAA;YAEtD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA;YACtC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;SAClC;QAED,OAAO,YAAY,CAAA;IACpB,CAAC;CACD;AAnBD,4DAmBC"}
|