@contember/engine-system-api 0.12.0-beta.2 → 1.0.0-alpha.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/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 +3 -1
- package/dist/src/resolvers/ResolverContext.d.ts.map +1 -1
- package/dist/src/resolvers/ResolverContext.js +2 -1
- 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 +4 -0
- 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,15 +0,0 @@
|
|
|
1
|
-
import { ContentEvent } from '@contember/engine-common';
|
|
2
|
-
import { DependencyBuilder, EventsDependencies } from '../DependencyBuilder';
|
|
3
|
-
import { Schema } from '@contember/schema';
|
|
4
|
-
/**
|
|
5
|
-
* Events in transaction are dependent on each other (meaning you have to execute whole transaction at once)
|
|
6
|
-
* todo this has to be optimized that only "dangerous" operations are dependent
|
|
7
|
-
*
|
|
8
|
-
* v--v v--v--v
|
|
9
|
-
* A1 A2 B1 B2 B3
|
|
10
|
-
*
|
|
11
|
-
*/
|
|
12
|
-
export declare class TransactionDependencyBuilder implements DependencyBuilder {
|
|
13
|
-
build(schema: Schema, events: ContentEvent[]): Promise<EventsDependencies>;
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=TransactionDependencyBuilder.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TransactionDependencyBuilder.d.ts","sourceRoot":"","sources":["../../../../../src/model/events/dependency/TransactionDependencyBuilder.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;AAG1C;;;;;;;GAOG;AACH,qBAAa,4BAA6B,YAAW,iBAAiB;IAC/D,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAgBhF"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.TransactionDependencyBuilder = void 0;
|
|
4
|
-
const utils_1 = require("../../../utils");
|
|
5
|
-
/**
|
|
6
|
-
* Events in transaction are dependent on each other (meaning you have to execute whole transaction at once)
|
|
7
|
-
* todo this has to be optimized that only "dangerous" operations are dependent
|
|
8
|
-
*
|
|
9
|
-
* v--v v--v--v
|
|
10
|
-
* A1 A2 B1 B2 B3
|
|
11
|
-
*
|
|
12
|
-
*/
|
|
13
|
-
class TransactionDependencyBuilder {
|
|
14
|
-
async build(schema, events) {
|
|
15
|
-
let trxId = null;
|
|
16
|
-
let eventsInTrx = new Set();
|
|
17
|
-
let dependencies = new utils_1.MapSet();
|
|
18
|
-
for (const event of events) {
|
|
19
|
-
if (trxId !== event.transactionId) {
|
|
20
|
-
trxId = event.transactionId;
|
|
21
|
-
eventsInTrx = new Set();
|
|
22
|
-
}
|
|
23
|
-
eventsInTrx.add(event.id);
|
|
24
|
-
dependencies.set(event.id, eventsInTrx);
|
|
25
|
-
}
|
|
26
|
-
return dependencies;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
exports.TransactionDependencyBuilder = TransactionDependencyBuilder;
|
|
30
|
-
//# sourceMappingURL=TransactionDependencyBuilder.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TransactionDependencyBuilder.js","sourceRoot":"","sources":["../../../../../src/model/events/dependency/TransactionDependencyBuilder.ts"],"names":[],"mappings":";;;AAGA,0CAAuC;AAEvC;;;;;;;GAOG;AACH,MAAa,4BAA4B;IACxC,KAAK,CAAC,KAAK,CAAC,MAAc,EAAE,MAAsB;QACjD,IAAI,KAAK,GAAG,IAAI,CAAA;QAChB,IAAI,WAAW,GAAgB,IAAI,GAAG,EAAE,CAAA;QACxC,IAAI,YAAY,GAAuB,IAAI,cAAM,EAAE,CAAA;QAEnD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;YAC3B,IAAI,KAAK,KAAK,KAAK,CAAC,aAAa,EAAE;gBAClC,KAAK,GAAG,KAAK,CAAC,aAAa,CAAA;gBAC3B,WAAW,GAAG,IAAI,GAAG,EAAE,CAAA;aACvB;YACD,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YACzB,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,WAAW,CAAC,CAAA;SACvC;QAED,OAAO,YAAY,CAAA;IACpB,CAAC;CACD;AAjBD,oEAiBC"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export * from './CreatedRowReferenceDependencyBuilder';
|
|
2
|
-
export * from './DeletedRowReferenceDependencyBuilder';
|
|
3
|
-
export * from './DependencyBuilderList';
|
|
4
|
-
export * from './SameRowDependencyBuilder';
|
|
5
|
-
export * from './TransactionDependencyBuilder';
|
|
6
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/model/events/dependency/index.ts"],"names":[],"mappings":"AAAA,cAAc,wCAAwC,CAAA;AACtD,cAAc,wCAAwC,CAAA;AACtD,cAAc,yBAAyB,CAAA;AACvC,cAAc,4BAA4B,CAAA;AAC1C,cAAc,gCAAgC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/model/events/dependency/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yEAAsD;AACtD,yEAAsD;AACtD,0DAAuC;AACvC,6DAA0C;AAC1C,iEAA8C"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { StageWithoutEvent } from '../dtos';
|
|
2
|
-
import { ProjectConfig, StageConfig } from '../../types';
|
|
3
|
-
export declare class StageTree {
|
|
4
|
-
private readonly root;
|
|
5
|
-
private readonly childMap;
|
|
6
|
-
constructor(root: StageConfig, childMap: StageTreeMap);
|
|
7
|
-
getRoot(): StageConfig;
|
|
8
|
-
getChildren(stage: StageWithoutEvent): StageConfig[];
|
|
9
|
-
}
|
|
10
|
-
export declare const createStageTree: (project: Pick<ProjectConfig, 'stages'>) => StageTree;
|
|
11
|
-
export declare type StageTreeMap = {
|
|
12
|
-
[parent: string]: StageConfig[];
|
|
13
|
-
};
|
|
14
|
-
//# sourceMappingURL=StageTree.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"StageTree.d.ts","sourceRoot":"","sources":["../../../../src/model/stages/StageTree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAGxD,qBAAa,SAAS;IACT,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAe,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAA5C,IAAI,EAAE,WAAW,EAAmB,QAAQ,EAAE,YAAY;IAEhF,OAAO,IAAI,WAAW;IAItB,WAAW,CAAC,KAAK,EAAE,iBAAiB,GAAG,WAAW,EAAE;CAG3D;AAED,eAAO,MAAM,eAAe,YAAa,KAAK,aAAa,EAAE,QAAQ,CAAC,KAAG,SAkBxE,CAAA;AACD,oBAAY,YAAY,GAAG;IAAE,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,EAAE,CAAA;CAAE,CAAA"}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createStageTree = exports.StageTree = void 0;
|
|
4
|
-
const utils_1 = require("../../utils");
|
|
5
|
-
class StageTree {
|
|
6
|
-
constructor(root, childMap) {
|
|
7
|
-
this.root = root;
|
|
8
|
-
this.childMap = childMap;
|
|
9
|
-
}
|
|
10
|
-
getRoot() {
|
|
11
|
-
return this.root;
|
|
12
|
-
}
|
|
13
|
-
getChildren(stage) {
|
|
14
|
-
return this.childMap[stage.slug] || [];
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
exports.StageTree = StageTree;
|
|
18
|
-
const createStageTree = (project) => {
|
|
19
|
-
const rootStages = project.stages.filter(it => !it.base);
|
|
20
|
-
if (rootStages.length !== 1) {
|
|
21
|
-
throw new Error(`Exactly 1 root stage expected, ${rootStages.length} found`);
|
|
22
|
-
}
|
|
23
|
-
const rootStage = rootStages[0];
|
|
24
|
-
const stages = project.stages
|
|
25
|
-
.filter(it => it.base)
|
|
26
|
-
.reduce((acc, stage) => {
|
|
27
|
-
if (!stage.base) {
|
|
28
|
-
throw new utils_1.ImplementationException();
|
|
29
|
-
}
|
|
30
|
-
return {
|
|
31
|
-
...acc,
|
|
32
|
-
[stage.base]: [...(acc[stage.base] || []), stage],
|
|
33
|
-
};
|
|
34
|
-
}, {});
|
|
35
|
-
return new StageTree(rootStage, stages);
|
|
36
|
-
};
|
|
37
|
-
exports.createStageTree = createStageTree;
|
|
38
|
-
//# sourceMappingURL=StageTree.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"StageTree.js","sourceRoot":"","sources":["../../../../src/model/stages/StageTree.ts"],"names":[],"mappings":";;;AAEA,uCAAqD;AAErD,MAAa,SAAS;IACrB,YAA6B,IAAiB,EAAmB,QAAsB;QAA1D,SAAI,GAAJ,IAAI,CAAa;QAAmB,aAAQ,GAAR,QAAQ,CAAc;IAAG,CAAC;IAEpF,OAAO;QACb,OAAO,IAAI,CAAC,IAAI,CAAA;IACjB,CAAC;IAEM,WAAW,CAAC,KAAwB;QAC1C,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;IACvC,CAAC;CACD;AAVD,8BAUC;AAEM,MAAM,eAAe,GAAG,CAAC,OAAsC,EAAa,EAAE;IACpF,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;IACxD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;QAC5B,MAAM,IAAI,KAAK,CAAC,kCAAkC,UAAU,CAAC,MAAM,QAAQ,CAAC,CAAA;KAC5E;IACD,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAA;IAC/B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM;SAC3B,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;SACrB,MAAM,CAAe,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QACpC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YAChB,MAAM,IAAI,+BAAuB,EAAE,CAAA;SACnC;QACD,OAAO;YACN,GAAG,GAAG;YACN,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC;SACjD,CAAA;IACF,CAAC,EAAE,EAAE,CAAC,CAAA;IACP,OAAO,IAAI,SAAS,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;AACxC,CAAC,CAAA;AAlBY,QAAA,eAAe,mBAkB3B"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { DatabaseContext } from '../../model/database';
|
|
2
|
-
import { ProjectConfig } from '../../types';
|
|
3
|
-
import { StageWithId } from '../../model/dtos';
|
|
4
|
-
export declare const fetchStages: (stage: string, db: DatabaseContext, project: ProjectConfig) => Promise<FetchStageResult>;
|
|
5
|
-
export declare type FetchStageResult = FetchStageErrorResponse | FetchStageOkResponse;
|
|
6
|
-
export declare enum FetchStageErrors {
|
|
7
|
-
headNotFound = "headNotFound",
|
|
8
|
-
missingBase = "missingBase"
|
|
9
|
-
}
|
|
10
|
-
export declare class FetchStageErrorResponse {
|
|
11
|
-
readonly error: FetchStageErrors;
|
|
12
|
-
readonly message: string;
|
|
13
|
-
readonly ok = false;
|
|
14
|
-
constructor(error: FetchStageErrors, message: string);
|
|
15
|
-
}
|
|
16
|
-
export declare class FetchStageOkResponse {
|
|
17
|
-
readonly head: StageWithId;
|
|
18
|
-
readonly base: StageWithId;
|
|
19
|
-
readonly ok = true;
|
|
20
|
-
constructor(head: StageWithId, base: StageWithId);
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=StageFetchHelper.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"StageFetchHelper.d.ts","sourceRoot":"","sources":["../../../../src/resolvers/helpers/StageFetchHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAE3C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAG9C,eAAO,MAAM,WAAW,UAChB,MAAM,MACT,eAAe,WACV,aAAa,KACpB,QAAQ,gBAAgB,CAkB1B,CAAA;AAED,oBAAY,gBAAgB,GAAG,uBAAuB,GAAG,oBAAoB,CAAA;AAE7E,oBAAY,gBAAgB;IAC3B,YAAY,iBAAiB;IAC7B,WAAW,gBAAgB;CAC3B;AAED,qBAAa,uBAAuB;aAGP,KAAK,EAAE,gBAAgB;aAAkB,OAAO,EAAE,MAAM;IAFpF,SAAgB,EAAE,SAAQ;gBAEE,KAAK,EAAE,gBAAgB,EAAkB,OAAO,EAAE,MAAM;CACpF;AAED,qBAAa,oBAAoB;aAGJ,IAAI,EAAE,WAAW;aAAkB,IAAI,EAAE,WAAW;IAFhF,SAAgB,EAAE,QAAO;gBAEG,IAAI,EAAE,WAAW,EAAkB,IAAI,EAAE,WAAW;CAChF"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FetchStageOkResponse = exports.FetchStageErrorResponse = exports.FetchStageErrors = exports.fetchStages = void 0;
|
|
4
|
-
const queries_1 = require("../../model/queries");
|
|
5
|
-
const utils_1 = require("../../utils");
|
|
6
|
-
const fetchStages = async (stage, db, project) => {
|
|
7
|
-
const headStageConfig = project.stages.find(it => it.slug === stage);
|
|
8
|
-
if (!headStageConfig) {
|
|
9
|
-
return new FetchStageErrorResponse(FetchStageErrors.headNotFound, `Stage ${stage} not found`);
|
|
10
|
-
}
|
|
11
|
-
if (!headStageConfig.base) {
|
|
12
|
-
return new FetchStageErrorResponse(FetchStageErrors.missingBase, `Stage ${stage} is a root stage`);
|
|
13
|
-
}
|
|
14
|
-
const [baseStage, headStage] = await Promise.all([
|
|
15
|
-
db.queryHandler.fetch(new queries_1.StageBySlugQuery(headStageConfig.base)),
|
|
16
|
-
db.queryHandler.fetch(new queries_1.StageBySlugQuery(headStageConfig.slug)),
|
|
17
|
-
]);
|
|
18
|
-
if (!baseStage || !headStage) {
|
|
19
|
-
throw new utils_1.ShouldNotHappenException();
|
|
20
|
-
}
|
|
21
|
-
return new FetchStageOkResponse(headStage, baseStage);
|
|
22
|
-
};
|
|
23
|
-
exports.fetchStages = fetchStages;
|
|
24
|
-
var FetchStageErrors;
|
|
25
|
-
(function (FetchStageErrors) {
|
|
26
|
-
FetchStageErrors["headNotFound"] = "headNotFound";
|
|
27
|
-
FetchStageErrors["missingBase"] = "missingBase";
|
|
28
|
-
})(FetchStageErrors = exports.FetchStageErrors || (exports.FetchStageErrors = {}));
|
|
29
|
-
class FetchStageErrorResponse {
|
|
30
|
-
constructor(error, message) {
|
|
31
|
-
this.error = error;
|
|
32
|
-
this.message = message;
|
|
33
|
-
this.ok = false;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
exports.FetchStageErrorResponse = FetchStageErrorResponse;
|
|
37
|
-
class FetchStageOkResponse {
|
|
38
|
-
constructor(head, base) {
|
|
39
|
-
this.head = head;
|
|
40
|
-
this.base = base;
|
|
41
|
-
this.ok = true;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
exports.FetchStageOkResponse = FetchStageOkResponse;
|
|
45
|
-
//# sourceMappingURL=StageFetchHelper.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"StageFetchHelper.js","sourceRoot":"","sources":["../../../../src/resolvers/helpers/StageFetchHelper.ts"],"names":[],"mappings":";;;AAEA,iDAAsD;AAEtD,uCAAsD;AAE/C,MAAM,WAAW,GAAG,KAAK,EAC/B,KAAa,EACb,EAAmB,EACnB,OAAsB,EACM,EAAE;IAC9B,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC,CAAA;IACpE,IAAI,CAAC,eAAe,EAAE;QACrB,OAAO,IAAI,uBAAuB,CAAC,gBAAgB,CAAC,YAAY,EAAE,SAAS,KAAK,YAAY,CAAC,CAAA;KAC7F;IACD,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;QAC1B,OAAO,IAAI,uBAAuB,CAAC,gBAAgB,CAAC,WAAW,EAAE,SAAS,KAAK,kBAAkB,CAAC,CAAA;KAClG;IACD,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAChD,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,0BAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACjE,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,0BAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;KACjE,CAAC,CAAA;IAEF,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,EAAE;QAC7B,MAAM,IAAI,gCAAwB,EAAE,CAAA;KACpC;IAED,OAAO,IAAI,oBAAoB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;AACtD,CAAC,CAAA;AAtBY,QAAA,WAAW,eAsBvB;AAID,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC3B,iDAA6B,CAAA;IAC7B,+CAA2B,CAAA;AAC5B,CAAC,EAHW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAG3B;AAED,MAAa,uBAAuB;IAGnC,YAA4B,KAAuB,EAAkB,OAAe;QAAxD,UAAK,GAAL,KAAK,CAAkB;QAAkB,YAAO,GAAP,OAAO,CAAQ;QAFpE,OAAE,GAAG,KAAK,CAAA;IAE6D,CAAC;CACxF;AAJD,0DAIC;AAED,MAAa,oBAAoB;IAGhC,YAA4B,IAAiB,EAAkB,IAAiB;QAApD,SAAI,GAAJ,IAAI,CAAa;QAAkB,SAAI,GAAJ,IAAI,CAAa;QAFhE,OAAE,GAAG,IAAI,CAAA;IAE0D,CAAC;CACpF;AAJD,oDAIC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createdRowReference.test.d.ts","sourceRoot":"","sources":["../../../../../tests/cases/unit/events/createdRowReference.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
-
}) : (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
-
}) : function(o, v) {
|
|
12
|
-
o["default"] = v;
|
|
13
|
-
});
|
|
14
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
-
if (mod && mod.__esModule) return mod;
|
|
16
|
-
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
-
__setModuleDefault(result, mod);
|
|
19
|
-
return result;
|
|
20
|
-
};
|
|
21
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
const uvu_1 = require("uvu");
|
|
23
|
-
const dependency_1 = require("../../../../src/model/events/dependency");
|
|
24
|
-
const schema_definition_1 = require("@contember/schema-definition");
|
|
25
|
-
const schema_utils_1 = require("@contember/schema-utils");
|
|
26
|
-
const engine_common_1 = require("@contember/engine-common");
|
|
27
|
-
const engine_api_tester_1 = require("@contember/engine-api-tester");
|
|
28
|
-
const src_1 = require("../../../../src");
|
|
29
|
-
const assert = __importStar(require("../../../src/asserts"));
|
|
30
|
-
const test = uvu_1.suite('Created row reference dependency builder');
|
|
31
|
-
const now = new Date('2020-10-28 10:00');
|
|
32
|
-
test('basic reference', async () => {
|
|
33
|
-
const model = new schema_definition_1.SchemaBuilder()
|
|
34
|
-
.entity('Post', e => e.column('title').manyHasOne('author', r => r.target('Author')))
|
|
35
|
-
.entity('Author', e => e.column('name'))
|
|
36
|
-
.buildSchema();
|
|
37
|
-
const dependencyBuilder = new dependency_1.CreatedRowReferenceDependencyBuilder();
|
|
38
|
-
const authorEventId = engine_api_tester_1.testUuid(10);
|
|
39
|
-
const authorEntityId = engine_api_tester_1.testUuid(11);
|
|
40
|
-
const trxId = engine_api_tester_1.testUuid(500);
|
|
41
|
-
const postEventId = engine_api_tester_1.testUuid(20);
|
|
42
|
-
const events = [
|
|
43
|
-
new engine_common_1.CreateEvent(authorEventId, now, src_1.unnamedIdentity, trxId, [authorEntityId], 'author', {
|
|
44
|
-
name: 'John doe',
|
|
45
|
-
}),
|
|
46
|
-
new engine_common_1.CreateEvent(postEventId, now, src_1.unnamedIdentity, trxId, [postEventId], 'post', {
|
|
47
|
-
title: 'foo',
|
|
48
|
-
author_id: authorEntityId,
|
|
49
|
-
}),
|
|
50
|
-
];
|
|
51
|
-
const deps = await dependencyBuilder.build({ ...schema_utils_1.emptySchema, model }, events);
|
|
52
|
-
assert.is(deps.size, 1);
|
|
53
|
-
assert.ok(deps.has(postEventId));
|
|
54
|
-
assert.not.ok(deps.has(authorEventId));
|
|
55
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
56
|
-
const postDeps = deps.get(postEventId);
|
|
57
|
-
assert.is(postDeps.size, 1);
|
|
58
|
-
assert.ok(postDeps.has(authorEventId));
|
|
59
|
-
});
|
|
60
|
-
test('uuid collision in different table', async () => {
|
|
61
|
-
const model = new schema_definition_1.SchemaBuilder()
|
|
62
|
-
.entity('Post', e => e.column('title').manyHasOne('author', r => r.target('Author')))
|
|
63
|
-
.entity('Author', e => e.column('name'))
|
|
64
|
-
.buildSchema();
|
|
65
|
-
const dependencyBuilder = new dependency_1.CreatedRowReferenceDependencyBuilder();
|
|
66
|
-
const authorEventId = engine_api_tester_1.testUuid(10);
|
|
67
|
-
const authorEntityId = engine_api_tester_1.testUuid(11);
|
|
68
|
-
const trxId = engine_api_tester_1.testUuid(500);
|
|
69
|
-
const postEventId = engine_api_tester_1.testUuid(20);
|
|
70
|
-
const events = [
|
|
71
|
-
new engine_common_1.CreateEvent(authorEventId, now, src_1.unnamedIdentity, trxId, [authorEntityId], 'authorXXX', {}),
|
|
72
|
-
new engine_common_1.CreateEvent(postEventId, now, src_1.unnamedIdentity, trxId, [postEventId], 'post', {
|
|
73
|
-
title: 'foo',
|
|
74
|
-
author_id: authorEntityId,
|
|
75
|
-
}),
|
|
76
|
-
];
|
|
77
|
-
const deps = await dependencyBuilder.build({ ...schema_utils_1.emptySchema, model }, events);
|
|
78
|
-
assert.is(deps.size, 0);
|
|
79
|
-
});
|
|
80
|
-
test('update of created row', async () => {
|
|
81
|
-
const model = new schema_definition_1.SchemaBuilder()
|
|
82
|
-
.entity('Post', e => e.column('title').manyHasOne('author', r => r.target('Author')))
|
|
83
|
-
.entity('Author', e => e.column('name'))
|
|
84
|
-
.buildSchema();
|
|
85
|
-
const dependencyBuilder = new dependency_1.CreatedRowReferenceDependencyBuilder();
|
|
86
|
-
const authorEventId = engine_api_tester_1.testUuid(10);
|
|
87
|
-
const authorEventId2 = engine_api_tester_1.testUuid(12);
|
|
88
|
-
const authorEntityId = engine_api_tester_1.testUuid(11);
|
|
89
|
-
const trxId = engine_api_tester_1.testUuid(500);
|
|
90
|
-
const postEventId = engine_api_tester_1.testUuid(20);
|
|
91
|
-
const events = [
|
|
92
|
-
new engine_common_1.CreateEvent(authorEventId, now, src_1.unnamedIdentity, trxId, [authorEntityId], 'author', {
|
|
93
|
-
name: 'John doe',
|
|
94
|
-
}),
|
|
95
|
-
new engine_common_1.UpdateEvent(authorEventId2, now, src_1.unnamedIdentity, trxId, [authorEntityId], 'author', {
|
|
96
|
-
name: 'Jack black',
|
|
97
|
-
}),
|
|
98
|
-
new engine_common_1.CreateEvent(postEventId, now, src_1.unnamedIdentity, trxId, [postEventId], 'post', {
|
|
99
|
-
title: 'foo',
|
|
100
|
-
author_id: authorEntityId,
|
|
101
|
-
}),
|
|
102
|
-
];
|
|
103
|
-
const deps = await dependencyBuilder.build({ ...schema_utils_1.emptySchema, model }, events);
|
|
104
|
-
assert.is(deps.size, 1);
|
|
105
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
106
|
-
const postDeps = deps.get(postEventId);
|
|
107
|
-
assert.is(postDeps.size, 1);
|
|
108
|
-
assert.ok(postDeps.has(authorEventId2));
|
|
109
|
-
});
|
|
110
|
-
test('junction table', async () => {
|
|
111
|
-
const model = new schema_definition_1.SchemaBuilder()
|
|
112
|
-
.entity('Post', e => e.column('title').manyHasMany('categories', r => r.target('Category')))
|
|
113
|
-
.entity('Category', e => e.column('name'))
|
|
114
|
-
.buildSchema();
|
|
115
|
-
const dependencyBuilder = new dependency_1.CreatedRowReferenceDependencyBuilder();
|
|
116
|
-
const categoryEventId = engine_api_tester_1.testUuid(10);
|
|
117
|
-
const trxId = engine_api_tester_1.testUuid(500);
|
|
118
|
-
const postEventId = engine_api_tester_1.testUuid(20);
|
|
119
|
-
const junctionEventId = engine_api_tester_1.testUuid(30);
|
|
120
|
-
const events = [
|
|
121
|
-
new engine_common_1.CreateEvent(categoryEventId, now, src_1.unnamedIdentity, trxId, [categoryEventId], 'category', {
|
|
122
|
-
name: 'lorem',
|
|
123
|
-
}),
|
|
124
|
-
new engine_common_1.CreateEvent(postEventId, now, src_1.unnamedIdentity, trxId, [postEventId], 'post', {
|
|
125
|
-
title: 'foo',
|
|
126
|
-
}),
|
|
127
|
-
new engine_common_1.CreateEvent(junctionEventId, now, src_1.unnamedIdentity, trxId, [postEventId, categoryEventId], 'post_categories', {}),
|
|
128
|
-
];
|
|
129
|
-
const deps = await dependencyBuilder.build({ ...schema_utils_1.emptySchema, model }, events);
|
|
130
|
-
assert.is(deps.size, 1);
|
|
131
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
132
|
-
const junctionDeps = deps.get(junctionEventId);
|
|
133
|
-
assert.is(junctionDeps.size, 2);
|
|
134
|
-
assert.ok(junctionDeps.has(categoryEventId));
|
|
135
|
-
assert.ok(junctionDeps.has(postEventId));
|
|
136
|
-
});
|
|
137
|
-
test.run();
|
|
138
|
-
//# sourceMappingURL=createdRowReference.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createdRowReference.test.js","sourceRoot":"","sources":["../../../../../tests/cases/unit/events/createdRowReference.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deletedRowReference.test.d.ts","sourceRoot":"","sources":["../../../../../tests/cases/unit/events/deletedRowReference.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
-
}) : (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
-
}) : function(o, v) {
|
|
12
|
-
o["default"] = v;
|
|
13
|
-
});
|
|
14
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
-
if (mod && mod.__esModule) return mod;
|
|
16
|
-
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
-
__setModuleDefault(result, mod);
|
|
19
|
-
return result;
|
|
20
|
-
};
|
|
21
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
const uvu_1 = require("uvu");
|
|
23
|
-
const dependency_1 = require("../../../../src/model/events/dependency");
|
|
24
|
-
const schema_definition_1 = require("@contember/schema-definition");
|
|
25
|
-
const schema_utils_1 = require("@contember/schema-utils");
|
|
26
|
-
const engine_common_1 = require("@contember/engine-common");
|
|
27
|
-
const engine_api_tester_1 = require("@contember/engine-api-tester");
|
|
28
|
-
const src_1 = require("../../../../src");
|
|
29
|
-
const assert = __importStar(require("../../../src/asserts"));
|
|
30
|
-
const test = uvu_1.suite('Deleted row reference dependency builder');
|
|
31
|
-
const now = new Date('2020-10-28 10:00');
|
|
32
|
-
test('basic reference', async () => {
|
|
33
|
-
const model = new schema_definition_1.SchemaBuilder()
|
|
34
|
-
.entity('Post', e => e.column('title').manyHasOne('author', r => r.target('Author')))
|
|
35
|
-
.entity('Author', e => e.column('name'))
|
|
36
|
-
.buildSchema();
|
|
37
|
-
const dependencyBuilder = new dependency_1.DeletedRowReferenceDependencyBuilder();
|
|
38
|
-
const authorEventId = engine_api_tester_1.testUuid(10);
|
|
39
|
-
const authorEntityId = engine_api_tester_1.testUuid(11);
|
|
40
|
-
const trxId = engine_api_tester_1.testUuid(500);
|
|
41
|
-
const postEventId = engine_api_tester_1.testUuid(20);
|
|
42
|
-
const events = [
|
|
43
|
-
new engine_common_1.UpdateEvent(postEventId, now, src_1.unnamedIdentity, trxId, [postEventId], 'post', {
|
|
44
|
-
author_id: authorEntityId,
|
|
45
|
-
}),
|
|
46
|
-
new engine_common_1.DeleteEvent(authorEventId, now, src_1.unnamedIdentity, trxId, [authorEntityId], 'author'),
|
|
47
|
-
];
|
|
48
|
-
const deps = await dependencyBuilder.build({ ...schema_utils_1.emptySchema, model }, events);
|
|
49
|
-
assert.is(deps.size, 1);
|
|
50
|
-
assert.ok(deps.has(authorEventId));
|
|
51
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
52
|
-
const authorDeps = deps.get(authorEventId);
|
|
53
|
-
assert.is(authorDeps.size, 1);
|
|
54
|
-
assert.ok(authorDeps.has(postEventId));
|
|
55
|
-
});
|
|
56
|
-
test('uuid collision in different table', async () => {
|
|
57
|
-
const model = new schema_definition_1.SchemaBuilder()
|
|
58
|
-
.entity('Post', e => e.column('title').manyHasOne('author', r => r.target('Author')))
|
|
59
|
-
.entity('Author', e => e.column('name'))
|
|
60
|
-
.buildSchema();
|
|
61
|
-
const dependencyBuilder = new dependency_1.DeletedRowReferenceDependencyBuilder();
|
|
62
|
-
const authorEventId = engine_api_tester_1.testUuid(10);
|
|
63
|
-
const authorEntityId = engine_api_tester_1.testUuid(11);
|
|
64
|
-
const trxId = engine_api_tester_1.testUuid(500);
|
|
65
|
-
const postEventId = engine_api_tester_1.testUuid(20);
|
|
66
|
-
const events = [
|
|
67
|
-
new engine_common_1.UpdateEvent(postEventId, now, src_1.unnamedIdentity, trxId, [postEventId], 'post', {
|
|
68
|
-
author_id: authorEntityId,
|
|
69
|
-
}),
|
|
70
|
-
new engine_common_1.DeleteEvent(authorEventId, now, src_1.unnamedIdentity, trxId, [authorEntityId], 'authorX'),
|
|
71
|
-
];
|
|
72
|
-
const deps = await dependencyBuilder.build({ ...schema_utils_1.emptySchema, model }, events);
|
|
73
|
-
assert.is(deps.size, 0);
|
|
74
|
-
});
|
|
75
|
-
test('junction table', async () => {
|
|
76
|
-
const model = new schema_definition_1.SchemaBuilder()
|
|
77
|
-
.entity('Post', e => e.column('title').manyHasMany('categories', r => r.target('Category')))
|
|
78
|
-
.entity('Category', e => e.column('name'))
|
|
79
|
-
.buildSchema();
|
|
80
|
-
const dependencyBuilder = new dependency_1.DeletedRowReferenceDependencyBuilder();
|
|
81
|
-
const categoryEventId = engine_api_tester_1.testUuid(10);
|
|
82
|
-
const trxId = engine_api_tester_1.testUuid(500);
|
|
83
|
-
const postEventId = engine_api_tester_1.testUuid(20);
|
|
84
|
-
const junctionEventId = engine_api_tester_1.testUuid(30);
|
|
85
|
-
const events = [
|
|
86
|
-
new engine_common_1.CreateEvent(junctionEventId, now, src_1.unnamedIdentity, trxId, [postEventId, categoryEventId], 'post_categories', {}),
|
|
87
|
-
new engine_common_1.DeleteEvent(categoryEventId, now, src_1.unnamedIdentity, trxId, [categoryEventId], 'category'),
|
|
88
|
-
new engine_common_1.DeleteEvent(postEventId, now, src_1.unnamedIdentity, trxId, [postEventId], 'post'),
|
|
89
|
-
];
|
|
90
|
-
const deps = await dependencyBuilder.build({ ...schema_utils_1.emptySchema, model }, events);
|
|
91
|
-
assert.is(deps.size, 2);
|
|
92
|
-
assert.ok(deps.has(categoryEventId));
|
|
93
|
-
assert.ok(deps.has(postEventId));
|
|
94
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
95
|
-
const categoryEventDeps = deps.get(categoryEventId);
|
|
96
|
-
assert.is(categoryEventDeps.size, 1);
|
|
97
|
-
assert.ok(categoryEventDeps.has(junctionEventId));
|
|
98
|
-
const postEventDeps = deps.get(postEventId);
|
|
99
|
-
assert.is(postEventDeps.size, 1);
|
|
100
|
-
assert.ok(postEventDeps.has(junctionEventId));
|
|
101
|
-
});
|
|
102
|
-
test.run();
|
|
103
|
-
//# sourceMappingURL=deletedRowReference.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deletedRowReference.test.js","sourceRoot":"","sources":["../../../../../tests/cases/unit/events/deletedRowReference.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sameRowDependency.test.d.ts","sourceRoot":"","sources":["../../../../../tests/cases/unit/events/sameRowDependency.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
-
}) : (function(o, m, k, k2) {
|
|
6
|
-
if (k2 === undefined) k2 = k;
|
|
7
|
-
o[k2] = m[k];
|
|
8
|
-
}));
|
|
9
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
-
}) : function(o, v) {
|
|
12
|
-
o["default"] = v;
|
|
13
|
-
});
|
|
14
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
-
if (mod && mod.__esModule) return mod;
|
|
16
|
-
var result = {};
|
|
17
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
-
__setModuleDefault(result, mod);
|
|
19
|
-
return result;
|
|
20
|
-
};
|
|
21
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
const uvu_1 = require("uvu");
|
|
23
|
-
const dependency_1 = require("../../../../src/model/events/dependency");
|
|
24
|
-
const schema_definition_1 = require("@contember/schema-definition");
|
|
25
|
-
const schema_utils_1 = require("@contember/schema-utils");
|
|
26
|
-
const engine_common_1 = require("@contember/engine-common");
|
|
27
|
-
const engine_api_tester_1 = require("@contember/engine-api-tester");
|
|
28
|
-
const src_1 = require("../../../../src");
|
|
29
|
-
const assert = __importStar(require("../../../src/asserts"));
|
|
30
|
-
const test = uvu_1.suite('Same row dependency builder');
|
|
31
|
-
const now = new Date('2020-10-28 10:00');
|
|
32
|
-
test('basic deps', async () => {
|
|
33
|
-
const model = new schema_definition_1.SchemaBuilder().entity('Author', e => e.column('name')).buildSchema();
|
|
34
|
-
const dependencyBuilder = new dependency_1.SameRowDependencyBuilder();
|
|
35
|
-
const event1 = engine_api_tester_1.testUuid(30);
|
|
36
|
-
const event2 = engine_api_tester_1.testUuid(31);
|
|
37
|
-
const event3 = engine_api_tester_1.testUuid(32);
|
|
38
|
-
const authorEntityId = engine_api_tester_1.testUuid(10);
|
|
39
|
-
const trxId1 = engine_api_tester_1.testUuid(500);
|
|
40
|
-
const events = [
|
|
41
|
-
new engine_common_1.UpdateEvent(event1, now, src_1.unnamedIdentity, trxId1, [authorEntityId], 'author', {}),
|
|
42
|
-
new engine_common_1.UpdateEvent(event2, now, src_1.unnamedIdentity, trxId1, [authorEntityId], 'author', {}),
|
|
43
|
-
new engine_common_1.UpdateEvent(event3, now, src_1.unnamedIdentity, trxId1, [authorEntityId], 'author', {}),
|
|
44
|
-
];
|
|
45
|
-
const deps = await dependencyBuilder.build({ ...schema_utils_1.emptySchema, model }, events);
|
|
46
|
-
assert.is(deps.size, 3);
|
|
47
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
48
|
-
const event1deps = deps.get(event1);
|
|
49
|
-
// it also includes self-dep
|
|
50
|
-
assert.is(event1deps.size, 3);
|
|
51
|
-
assert.ok(event1deps.has(event2));
|
|
52
|
-
assert.ok(event1deps.has(event3));
|
|
53
|
-
const event2deps = deps.get(event2);
|
|
54
|
-
assert.is(event2deps.size, 3);
|
|
55
|
-
assert.ok(event2deps.has(event1));
|
|
56
|
-
assert.ok(event2deps.has(event3));
|
|
57
|
-
const event3deps = deps.get(event3);
|
|
58
|
-
assert.is(event3deps.size, 3);
|
|
59
|
-
assert.ok(event3deps.has(event1));
|
|
60
|
-
assert.ok(event3deps.has(event2));
|
|
61
|
-
});
|
|
62
|
-
test.run();
|
|
63
|
-
//# sourceMappingURL=sameRowDependency.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sameRowDependency.test.js","sourceRoot":"","sources":["../../../../../tests/cases/unit/events/sameRowDependency.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transactionDependency.test.d.ts","sourceRoot":"","sources":["../../../../../tests/cases/unit/events/transactionDependency.test.ts"],"names":[],"mappings":""}
|