@contember/engine-system-api 1.1.0-alpha.2 → 1.1.0-alpha.3
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 +16 -21
- package/dist/src/SystemContainer.d.ts.map +1 -1
- package/dist/src/SystemContainer.js +14 -9
- 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.map +1 -1
- package/dist/src/migrations/2020-03-27-130000-project-migrations.d.ts +4 -0
- package/dist/src/migrations/2020-03-27-130000-project-migrations.d.ts.map +1 -0
- package/{migrations → dist/src/migrations}/2020-03-27-130000-project-migrations.js +2 -2
- package/dist/src/migrations/2020-03-27-130000-project-migrations.js.map +1 -0
- package/dist/src/migrations/2020-05-06-150000-composed-primary.d.ts +4 -0
- package/dist/src/migrations/2020-05-06-150000-composed-primary.d.ts.map +1 -0
- package/{migrations → dist/src/migrations}/2020-05-06-150000-composed-primary.js +13 -13
- package/dist/src/migrations/2020-05-06-150000-composed-primary.js.map +1 -0
- package/dist/src/migrations/2020-06-01-103000-event-trigger-perf.d.ts +4 -0
- package/dist/src/migrations/2020-06-01-103000-event-trigger-perf.d.ts.map +1 -0
- package/{migrations → dist/src/migrations}/2020-06-01-103000-event-trigger-perf.js +9 -8
- package/dist/src/migrations/2020-06-01-103000-event-trigger-perf.js.map +1 -0
- package/dist/src/migrations/2021-05-07-155800-event-log-rework.d.ts +4 -0
- package/dist/src/migrations/2021-05-07-155800-event-log-rework.d.ts.map +1 -0
- package/{migrations → dist/src/migrations}/2021-05-07-155800-event-log-rework.js +34 -33
- package/dist/src/migrations/2021-05-07-155800-event-log-rework.js.map +1 -0
- package/dist/src/migrations/2021-05-19-1232000-event-log-fix-constraint.d.ts +4 -0
- package/dist/src/migrations/2021-05-19-1232000-event-log-fix-constraint.d.ts.map +1 -0
- package/{migrations → dist/src/migrations}/2021-05-19-1232000-event-log-fix-constraint.js +4 -3
- package/dist/src/migrations/2021-05-19-1232000-event-log-fix-constraint.js.map +1 -0
- package/dist/src/migrations/index.d.ts +3 -0
- package/dist/src/migrations/index.d.ts.map +1 -0
- package/dist/src/{model/dependencies/content → migrations}/index.js +2 -1
- package/dist/src/migrations/index.js.map +1 -0
- package/dist/src/migrations/runner.d.ts +3 -0
- package/dist/src/migrations/runner.d.ts.map +1 -0
- package/{migrations/index.js → dist/src/migrations/runner.js} +5 -3
- package/dist/src/migrations/runner.js.map +1 -0
- package/dist/src/migrations/types.d.ts +7 -0
- package/dist/src/migrations/types.d.ts.map +1 -0
- package/dist/src/{migrations.js → migrations/types.js} +1 -1
- package/dist/src/migrations/types.js.map +1 -0
- package/dist/src/model/ProjectInitializer.d.ts.map +1 -1
- package/dist/src/model/ProjectInitializer.js +11 -13
- package/dist/src/model/ProjectInitializer.js.map +1 -1
- package/dist/src/model/ProjectTruncateExecutor.d.ts.map +1 -1
- package/dist/src/model/ProjectTruncateExecutor.js +4 -3
- package/dist/src/model/ProjectTruncateExecutor.js.map +1 -1
- package/dist/src/model/commands/stages/CreateStageCommand.d.ts +8 -0
- package/dist/src/model/commands/stages/CreateStageCommand.d.ts.map +1 -0
- package/dist/src/model/commands/stages/{CreateOrUpdateStageCommand.js → CreateStageCommand.js} +9 -10
- package/dist/src/model/commands/stages/CreateStageCommand.js.map +1 -0
- package/dist/src/model/commands/stages/index.d.ts +1 -1
- package/dist/src/model/commands/stages/index.d.ts.map +1 -1
- package/dist/src/model/commands/stages/index.js +1 -1
- package/dist/src/model/commands/stages/index.js.map +1 -1
- package/dist/src/model/database/DatabaseContext.d.ts +1 -1
- package/dist/src/model/database/DatabaseContext.d.ts.map +1 -1
- package/dist/src/model/database/DatabaseContext.js +4 -8
- package/dist/src/model/database/DatabaseContext.js.map +1 -1
- package/dist/src/model/dependencies/index.d.ts +0 -1
- package/dist/src/model/dependencies/index.d.ts.map +1 -1
- package/dist/src/model/dependencies/index.js +0 -1
- package/dist/src/model/dependencies/index.js.map +1 -1
- package/dist/src/model/dependencies/tenant/IdentityFetcher.d.ts +1 -2
- package/dist/src/model/dependencies/tenant/IdentityFetcher.d.ts.map +1 -1
- package/dist/src/model/dtos/Stage.d.ts +2 -4
- package/dist/src/model/dtos/Stage.d.ts.map +1 -1
- package/dist/src/model/events/EventResponseBuilder.d.ts +1 -2
- package/dist/src/model/events/EventResponseBuilder.d.ts.map +1 -1
- package/dist/src/model/events/EventResponseBuilder.js +2 -2
- package/dist/src/model/events/EventResponseBuilder.js.map +1 -1
- package/dist/src/model/migrations/ProjectMigrator.d.ts +2 -2
- package/dist/src/model/migrations/ProjectMigrator.d.ts.map +1 -1
- package/dist/src/model/migrations/ProjectMigrator.js +6 -7
- package/dist/src/model/migrations/ProjectMigrator.js.map +1 -1
- package/dist/src/model/migrations/index.d.ts +0 -1
- package/dist/src/model/migrations/index.d.ts.map +1 -1
- package/dist/src/model/migrations/index.js +0 -1
- package/dist/src/model/migrations/index.js.map +1 -1
- package/dist/src/model/queries/stages/StageBySlugQuery.d.ts +2 -2
- package/dist/src/model/queries/stages/StageBySlugQuery.d.ts.map +1 -1
- package/dist/src/model/queries/stages/StageBySlugQuery.js.map +1 -1
- package/dist/src/model/queries/stages/StageQueryFactory.d.ts +2 -2
- package/dist/src/model/queries/stages/StageQueryFactory.d.ts.map +1 -1
- package/dist/src/model/queries/stages/StageQueryFactory.js +2 -1
- package/dist/src/model/queries/stages/StageQueryFactory.js.map +1 -1
- package/dist/src/model/queries/stages/StagesQuery.d.ts +1 -1
- package/dist/src/model/queries/stages/StagesQuery.d.ts.map +1 -1
- package/dist/src/model/queries/stages/StagesQuery.js +2 -5
- package/dist/src/model/queries/stages/StagesQuery.js.map +1 -1
- package/dist/src/model/stages/StageCreator.d.ts.map +1 -1
- package/dist/src/model/stages/StageCreator.js +3 -2
- package/dist/src/model/stages/StageCreator.js.map +1 -1
- package/dist/src/resolvers/{ResolverContext.d.ts → SystemResolverContext.d.ts} +5 -8
- package/dist/src/resolvers/SystemResolverContext.d.ts.map +1 -0
- package/dist/src/resolvers/{ResolverContext.js → SystemResolverContext.js} +5 -6
- package/dist/src/resolvers/{ResolverContext.js.map → SystemResolverContext.js.map} +1 -1
- package/dist/src/resolvers/index.d.ts +1 -1
- package/dist/src/resolvers/index.d.ts.map +1 -1
- package/dist/src/resolvers/index.js +1 -1
- package/dist/src/resolvers/index.js.map +1 -1
- package/dist/src/resolvers/mutation/MigrateMutationResolver.d.ts +3 -3
- package/dist/src/resolvers/mutation/MigrateMutationResolver.d.ts.map +1 -1
- package/dist/src/resolvers/mutation/MigrateMutationResolver.js +5 -4
- package/dist/src/resolvers/mutation/MigrateMutationResolver.js.map +1 -1
- package/dist/src/resolvers/mutation/MigrationAlterMutationResolver.d.ts +3 -3
- package/dist/src/resolvers/mutation/MigrationAlterMutationResolver.d.ts.map +1 -1
- package/dist/src/resolvers/mutation/MigrationAlterMutationResolver.js.map +1 -1
- package/dist/src/resolvers/mutation/TruncateMutationResolver.d.ts +2 -2
- package/dist/src/resolvers/mutation/TruncateMutationResolver.d.ts.map +1 -1
- package/dist/src/resolvers/mutation/TruncateMutationResolver.js.map +1 -1
- package/dist/src/resolvers/query/EventsQueryResolver.d.ts +2 -2
- package/dist/src/resolvers/query/EventsQueryResolver.d.ts.map +1 -1
- package/dist/src/resolvers/query/EventsQueryResolver.js +1 -1
- package/dist/src/resolvers/query/EventsQueryResolver.js.map +1 -1
- package/dist/src/resolvers/query/ExecutedMigrationsQueryResolver.d.ts +2 -2
- package/dist/src/resolvers/query/ExecutedMigrationsQueryResolver.d.ts.map +1 -1
- package/dist/src/resolvers/query/ExecutedMigrationsQueryResolver.js.map +1 -1
- package/dist/src/resolvers/query/StagesQueryResolver.d.ts +2 -2
- package/dist/src/resolvers/query/StagesQueryResolver.d.ts.map +1 -1
- package/dist/src/resolvers/query/StagesQueryResolver.js.map +1 -1
- package/dist/src/resolvers/types/EventOldValuesResolver.d.ts +3 -3
- package/dist/src/resolvers/types/EventOldValuesResolver.d.ts.map +1 -1
- package/dist/src/resolvers/types/EventOldValuesResolver.js.map +1 -1
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/dist/src/types.d.ts +1 -0
- package/dist/src/types.d.ts.map +1 -1
- package/{migrations → dist/tests/cases/migrations}/2020-05-06-150000-composed-primary.test.d.ts +0 -0
- package/dist/tests/cases/migrations/2020-05-06-150000-composed-primary.test.d.ts.map +1 -0
- package/{migrations → dist/tests/cases/migrations}/2020-05-06-150000-composed-primary.test.js +12 -12
- package/dist/tests/cases/migrations/2020-05-06-150000-composed-primary.test.js.map +1 -0
- package/{migrations → dist/tests/cases/migrations}/2020-06-01-103000-event-trigger-perf.test.d.ts +0 -0
- package/dist/tests/cases/migrations/2020-06-01-103000-event-trigger-perf.test.d.ts.map +1 -0
- package/{migrations → dist/tests/cases/migrations}/2020-06-01-103000-event-trigger-perf.test.js +7 -7
- package/dist/tests/cases/migrations/2020-06-01-103000-event-trigger-perf.test.js.map +1 -0
- package/dist/tests/tsconfig.tsbuildinfo +1 -1
- package/package.json +15 -15
- package/src/SystemContainer.ts +21 -27
- package/src/index.ts +1 -0
- package/{migrations → src/migrations}/2018-08-04-102200-init.sql +9 -9
- package/{migrations → src/migrations}/2018-08-05-130501-trigger-event-function.sql +9 -9
- package/{migrations → src/migrations}/2019-01-14-143432-event-trx-id.sql +4 -4
- package/{migrations → src/migrations}/2019-02-04-154500-event-rebase.sql +6 -6
- package/{migrations → src/migrations}/2019-03-18-104147-event-run-migration-struct.sql +1 -1
- package/{migrations → src/migrations}/2019-07-29-103000-trigger-event-function-fix.sql +6 -6
- package/{migrations → src/migrations}/2019-11-28-100000-missing-setting-fallback.sql +2 -2
- package/{migrations → src/migrations}/2020-03-27-130000-project-migrations.ts +3 -4
- package/{migrations → src/migrations}/2020-05-06-150000-composed-primary.ts +13 -13
- package/{migrations → src/migrations}/2020-06-01-103000-event-trigger-perf.ts +9 -8
- package/{migrations → src/migrations}/2021-03-23-110000-timestamp-fix.sql +2 -2
- package/{migrations → src/migrations}/2021-05-07-155800-event-log-rework.ts +34 -33
- package/{migrations → src/migrations}/2021-05-19-1232000-event-log-fix-constraint.ts +4 -3
- package/src/migrations/2021-12-21-155500-events-up.sql +6 -0
- package/src/migrations/2022-02-08-132600-fn-search-path.sql +7 -0
- package/src/migrations/2022-02-08-140500-drop-deadcode.sql +2 -0
- package/src/migrations/2022-02-08-144400-dynamic-stage-schema.sql +41 -0
- package/src/migrations/index.ts +2 -0
- package/{migrations/index.ts → src/migrations/runner.ts} +2 -2
- package/src/migrations/types.ts +7 -0
- package/src/model/ProjectInitializer.ts +13 -14
- package/src/model/ProjectTruncateExecutor.ts +5 -4
- package/src/model/commands/stages/{CreateOrUpdateStageCommand.ts → CreateStageCommand.ts} +8 -11
- package/src/model/commands/stages/index.ts +1 -1
- package/src/model/database/DatabaseContext.ts +3 -8
- package/src/model/dependencies/index.ts +0 -1
- package/src/model/dependencies/tenant/IdentityFetcher.ts +1 -1
- package/src/model/dtos/Stage.ts +2 -5
- package/src/model/events/EventResponseBuilder.ts +2 -3
- package/src/model/migrations/ProjectMigrator.ts +10 -9
- package/src/model/migrations/index.ts +0 -1
- package/src/model/queries/stages/StageBySlugQuery.ts +2 -2
- package/src/model/queries/stages/StageQueryFactory.ts +3 -2
- package/src/model/queries/stages/StagesQuery.ts +4 -7
- package/src/model/stages/StageCreator.ts +4 -3
- package/src/resolvers/{ResolverContext.ts → SystemResolverContext.ts} +4 -9
- package/src/resolvers/index.ts +1 -1
- package/src/resolvers/mutation/MigrateMutationResolver.ts +9 -8
- package/src/resolvers/mutation/MigrationAlterMutationResolver.ts +3 -3
- package/src/resolvers/mutation/TruncateMutationResolver.ts +2 -2
- package/src/resolvers/query/EventsQueryResolver.ts +3 -3
- package/src/resolvers/query/ExecutedMigrationsQueryResolver.ts +2 -2
- package/src/resolvers/query/StagesQueryResolver.ts +2 -2
- package/src/resolvers/types/EventOldValuesResolver.ts +3 -3
- package/src/types.ts +1 -0
- package/{migrations → tests/cases/migrations}/2020-05-06-150000-composed-primary.test.ts +11 -12
- package/{migrations → tests/cases/migrations}/2020-06-01-103000-event-trigger-perf.test.ts +6 -7
- package/tests/tsconfig.json +0 -3
- package/tsconfig.json +0 -3
- package/dist/src/migrations.d.ts +0 -10
- package/dist/src/migrations.d.ts.map +0 -1
- package/dist/src/migrations.js.map +0 -1
- package/dist/src/model/commands/stages/CreateOrUpdateStageCommand.d.ts +0 -8
- package/dist/src/model/commands/stages/CreateOrUpdateStageCommand.d.ts.map +0 -1
- package/dist/src/model/commands/stages/CreateOrUpdateStageCommand.js.map +0 -1
- package/dist/src/model/dependencies/content/EntitiesSelector.d.ts +0 -28
- package/dist/src/model/dependencies/content/EntitiesSelector.d.ts.map +0 -1
- package/dist/src/model/dependencies/content/EntitiesSelector.js +0 -3
- package/dist/src/model/dependencies/content/EntitiesSelector.js.map +0 -1
- package/dist/src/model/dependencies/content/index.d.ts +0 -2
- package/dist/src/model/dependencies/content/index.d.ts.map +0 -1
- package/dist/src/model/dependencies/content/index.js.map +0 -1
- package/dist/src/model/migrations/MigrationExecutor.d.ts +0 -10
- package/dist/src/model/migrations/MigrationExecutor.d.ts.map +0 -1
- package/dist/src/model/migrations/MigrationExecutor.js +0 -25
- package/dist/src/model/migrations/MigrationExecutor.js.map +0 -1
- package/dist/src/resolvers/ResolverContext.d.ts.map +0 -1
- package/migrations/2020-03-27-130000-project-migrations.d.ts +0 -4
- package/migrations/2020-03-27-130000-project-migrations.d.ts.map +0 -1
- package/migrations/2020-05-06-150000-composed-primary.d.ts +0 -4
- package/migrations/2020-05-06-150000-composed-primary.d.ts.map +0 -1
- package/migrations/2020-05-06-150000-composed-primary.test.d.ts.map +0 -1
- package/migrations/2020-06-01-103000-event-trigger-perf.d.ts +0 -4
- package/migrations/2020-06-01-103000-event-trigger-perf.d.ts.map +0 -1
- package/migrations/2020-06-01-103000-event-trigger-perf.test.d.ts.map +0 -1
- package/migrations/2021-05-07-155800-event-log-rework.d.ts +0 -4
- package/migrations/2021-05-07-155800-event-log-rework.d.ts.map +0 -1
- package/migrations/2021-05-19-1232000-event-log-fix-constraint.d.ts +0 -4
- package/migrations/2021-05-19-1232000-event-log-fix-constraint.d.ts.map +0 -1
- package/migrations/2021-12-21-155500-events-up.sql +0 -6
- package/migrations/index.d.ts +0 -3
- package/migrations/index.d.ts.map +0 -1
- package/migrations/tsconfig.json +0 -15
- package/migrations/tsconfig.tsbuildinfo +0 -1
- package/src/migrations.ts +0 -10
- package/src/model/dependencies/content/EntitiesSelector.ts +0 -32
- package/src/model/dependencies/content/index.ts +0 -1
- package/src/model/migrations/MigrationExecutor.ts +0 -33
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
import { DatabaseQuery, DatabaseQueryable
|
|
2
|
-
import {
|
|
1
|
+
import { DatabaseQuery, DatabaseQueryable } from '@contember/database'
|
|
2
|
+
import { prepareStageQueryBuilder } from './StageQueryFactory'
|
|
3
|
+
import { Stage } from '../../dtos'
|
|
3
4
|
|
|
4
5
|
class StagesQuery extends DatabaseQuery<Stage[]> {
|
|
5
6
|
async fetch(queryable: DatabaseQueryable): Promise<Stage[]> {
|
|
6
|
-
const select =
|
|
7
|
-
.from('stage')
|
|
8
|
-
.select('id')
|
|
9
|
-
.select('name')
|
|
10
|
-
.select('slug')
|
|
7
|
+
const select = prepareStageQueryBuilder()
|
|
11
8
|
|
|
12
9
|
return await select.getResult(queryable.db)
|
|
13
10
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CreateStageCommand } from '../commands'
|
|
2
2
|
import { StageBySlugQuery } from '../queries'
|
|
3
3
|
import { StageConfig } from '../../types'
|
|
4
4
|
import { DatabaseContext } from '../database'
|
|
@@ -11,10 +11,11 @@ class StageCreator {
|
|
|
11
11
|
stage: StageConfig,
|
|
12
12
|
): Promise<boolean> {
|
|
13
13
|
const stageRow = await db.queryHandler.fetch(new StageBySlugQuery(stage.slug))
|
|
14
|
-
if (stageRow
|
|
14
|
+
if (stageRow) {
|
|
15
15
|
return false
|
|
16
16
|
}
|
|
17
|
-
|
|
17
|
+
await db.commandBus.execute(new CreateStageCommand(stage))
|
|
18
|
+
return true
|
|
18
19
|
}
|
|
19
20
|
}
|
|
20
21
|
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import { Authorizator } from '@contember/authorization'
|
|
2
2
|
import { Schema } from '@contember/schema'
|
|
3
3
|
import { ForbiddenError } from 'apollo-server-errors'
|
|
4
|
-
import { DatabaseContext, SchemaVersionBuilder } from '../model'
|
|
4
|
+
import { DatabaseContext, Identity, SchemaVersionBuilder } from '../model'
|
|
5
5
|
import { ProjectConfig } from '../types'
|
|
6
|
-
import { Identity } from '../model/authorization'
|
|
7
6
|
import { StagePermissionsFactory } from '../model/authorization/StagePermissionsFactory'
|
|
8
7
|
import { StageScope } from '../model/authorization/StageScope'
|
|
9
8
|
import { ItemLoader } from '../utils/batchQuery'
|
|
10
|
-
import { Client } from '@contember/database'
|
|
11
9
|
|
|
12
|
-
export class
|
|
10
|
+
export class SystemResolverContextFactory {
|
|
13
11
|
constructor(
|
|
14
12
|
private readonly authorizator: Authorizator<Identity>,
|
|
15
13
|
private readonly schemaVersionBuilder: SchemaVersionBuilder,
|
|
@@ -17,10 +15,9 @@ export class ResolverContextFactory {
|
|
|
17
15
|
|
|
18
16
|
public async create(
|
|
19
17
|
systemDbContext: DatabaseContext,
|
|
20
|
-
tenantDb: Client,
|
|
21
18
|
project: ProjectConfig,
|
|
22
19
|
identity: Identity,
|
|
23
|
-
): Promise<
|
|
20
|
+
): Promise<SystemResolverContext> {
|
|
24
21
|
const schema = await this.schemaVersionBuilder.buildSchema(systemDbContext)
|
|
25
22
|
const stagePermissionsFactory = new StagePermissionsFactory(schema)
|
|
26
23
|
const loaders = new Map<LoaderFactory<any, any>, ItemLoader<any, any>>()
|
|
@@ -44,14 +41,13 @@ export class ResolverContextFactory {
|
|
|
44
41
|
loaders.set(loaderFactory, newLoader)
|
|
45
42
|
return newLoader
|
|
46
43
|
},
|
|
47
|
-
tenantDb,
|
|
48
44
|
}
|
|
49
45
|
}
|
|
50
46
|
}
|
|
51
47
|
|
|
52
48
|
export type LoaderFactory<Args, Item> = (db: DatabaseContext) => ItemLoader<Args, Item>
|
|
53
49
|
|
|
54
|
-
export interface
|
|
50
|
+
export interface SystemResolverContext {
|
|
55
51
|
readonly project: ProjectConfig
|
|
56
52
|
readonly schema: Schema
|
|
57
53
|
readonly identity: Identity
|
|
@@ -59,5 +55,4 @@ export interface ResolverContext {
|
|
|
59
55
|
readonly authorizator: Authorizator<Identity>
|
|
60
56
|
readonly requireAccess: (action: Authorizator.Action, stage: string, message?: string) => Promise<void>
|
|
61
57
|
readonly getLoader: <Args, Item>(loaderFactory: LoaderFactory<Args, Item>) => ItemLoader<Args, Item>
|
|
62
|
-
readonly tenantDb: Client
|
|
63
58
|
}
|
package/src/resolvers/index.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { GraphQLResolveInfo } from 'graphql'
|
|
2
|
-
import {
|
|
2
|
+
import { SystemResolverContext } from '../SystemResolverContext'
|
|
3
3
|
import { MutationResolver } from '../Resolver'
|
|
4
4
|
import { MigrateResponse, MutationMigrateArgs } from '../../schema'
|
|
5
5
|
import { Migration } from '@contember/schema-migrations'
|
|
6
|
-
import { AuthorizationActions, MigrationError, ProjectMigrator } from '../../model'
|
|
6
|
+
import { AuthorizationActions, MigrationError, ProjectMigrator, StagesQuery } from '../../model'
|
|
7
7
|
|
|
8
8
|
export class MigrateMutationResolver implements MutationResolver<'migrate'> {
|
|
9
9
|
constructor(private readonly projectMigrator: ProjectMigrator) {}
|
|
@@ -11,7 +11,7 @@ export class MigrateMutationResolver implements MutationResolver<'migrate'> {
|
|
|
11
11
|
async migrateForce(
|
|
12
12
|
parent: any,
|
|
13
13
|
args: MutationMigrateArgs,
|
|
14
|
-
context:
|
|
14
|
+
context: SystemResolverContext,
|
|
15
15
|
info: GraphQLResolveInfo,
|
|
16
16
|
): Promise<MigrateResponse> {
|
|
17
17
|
return this.migrate(parent, args, context, info, true)
|
|
@@ -20,18 +20,19 @@ export class MigrateMutationResolver implements MutationResolver<'migrate'> {
|
|
|
20
20
|
async migrate(
|
|
21
21
|
parent: any,
|
|
22
22
|
args: MutationMigrateArgs,
|
|
23
|
-
context:
|
|
23
|
+
context: SystemResolverContext,
|
|
24
24
|
info: GraphQLResolveInfo,
|
|
25
25
|
force = false,
|
|
26
26
|
): Promise<MigrateResponse> {
|
|
27
|
-
for (const stage of context.project.stages) {
|
|
28
|
-
await context.requireAccess(AuthorizationActions.PROJECT_MIGRATE, stage.slug)
|
|
29
|
-
}
|
|
30
27
|
const migrations = args.migrations as readonly Migration[]
|
|
31
28
|
|
|
32
29
|
return context.db.transaction(async trx => {
|
|
30
|
+
const stages = await trx.queryHandler.fetch(new StagesQuery())
|
|
31
|
+
for (const stage of stages) {
|
|
32
|
+
await context.requireAccess(AuthorizationActions.PROJECT_MIGRATE, stage.slug)
|
|
33
|
+
}
|
|
33
34
|
try {
|
|
34
|
-
await this.projectMigrator.migrate(trx,
|
|
35
|
+
await this.projectMigrator.migrate(trx, stages, migrations, () => null, force)
|
|
35
36
|
} catch (e) {
|
|
36
37
|
if (e instanceof MigrationError) {
|
|
37
38
|
await trx.client.connection.rollback()
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { GraphQLResolveInfo } from 'graphql'
|
|
2
|
-
import {
|
|
2
|
+
import { SystemResolverContext } from '../SystemResolverContext'
|
|
3
3
|
import { MutationResolver } from '../Resolver'
|
|
4
4
|
import {
|
|
5
5
|
MigrationDeleteErrorCode,
|
|
@@ -19,7 +19,7 @@ export class MigrationAlterMutationResolver implements MutationResolver<'migrati
|
|
|
19
19
|
async migrationModify(
|
|
20
20
|
parent: any,
|
|
21
21
|
args: MutationMigrationModifyArgs,
|
|
22
|
-
context:
|
|
22
|
+
context: SystemResolverContext,
|
|
23
23
|
info: GraphQLResolveInfo,
|
|
24
24
|
): Promise<MigrationModifyResponse> {
|
|
25
25
|
const result = await this.migrationAlterer.modifyMigration(
|
|
@@ -41,7 +41,7 @@ export class MigrationAlterMutationResolver implements MutationResolver<'migrati
|
|
|
41
41
|
async migrationDelete(
|
|
42
42
|
parent: any,
|
|
43
43
|
args: MutationMigrationDeleteArgs,
|
|
44
|
-
context:
|
|
44
|
+
context: SystemResolverContext,
|
|
45
45
|
info: GraphQLResolveInfo,
|
|
46
46
|
): Promise<MigrationDeleteResponse> {
|
|
47
47
|
const result = await this.migrationAlterer.deleteMigration(context.db, args.migration)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { GraphQLResolveInfo } from 'graphql'
|
|
2
|
-
import {
|
|
2
|
+
import { SystemResolverContext } from '../SystemResolverContext'
|
|
3
3
|
import { MutationResolver } from '../Resolver'
|
|
4
4
|
import { TruncateResponse } from '../../schema'
|
|
5
5
|
import { ProjectTruncateExecutor } from '../../model'
|
|
@@ -9,7 +9,7 @@ export class TruncateMutationResolver implements MutationResolver<'truncate'> {
|
|
|
9
9
|
async truncate(
|
|
10
10
|
parent: any,
|
|
11
11
|
args: any,
|
|
12
|
-
context:
|
|
12
|
+
context: SystemResolverContext,
|
|
13
13
|
info: GraphQLResolveInfo,
|
|
14
14
|
): Promise<TruncateResponse> {
|
|
15
15
|
await this.projectTruncateExecutor.truncateProject(context.db, context.project, context.schema)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { GraphQLResolveInfo } from 'graphql'
|
|
2
|
-
import {
|
|
2
|
+
import { SystemResolverContext } from '../SystemResolverContext'
|
|
3
3
|
import { QueryResolver } from '../Resolver'
|
|
4
4
|
import { EventsOrder, QueryEventsArgs, ResolversTypes } from '../../schema'
|
|
5
5
|
import { AuthorizationActions, EventResponseBuilder, EventsQuery, StageBySlugQuery } from '../../model'
|
|
@@ -14,7 +14,7 @@ export class EventsQueryResolver implements QueryResolver<'events'> {
|
|
|
14
14
|
async events(
|
|
15
15
|
parent: any,
|
|
16
16
|
{ args }: QueryEventsArgs,
|
|
17
|
-
context:
|
|
17
|
+
context: SystemResolverContext,
|
|
18
18
|
info: GraphQLResolveInfo,
|
|
19
19
|
): Promise<ResolversTypes['Event'][]> {
|
|
20
20
|
return context.db.transaction(async db => {
|
|
@@ -36,7 +36,7 @@ export class EventsQueryResolver implements QueryResolver<'events'> {
|
|
|
36
36
|
Math.min(args?.limit ?? 1000, 10000),
|
|
37
37
|
))
|
|
38
38
|
|
|
39
|
-
return await this.eventResponseBuilder.buildResponse(
|
|
39
|
+
return await this.eventResponseBuilder.buildResponse(history)
|
|
40
40
|
})
|
|
41
41
|
}
|
|
42
42
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { GraphQLResolveInfo } from 'graphql'
|
|
2
|
-
import {
|
|
2
|
+
import { SystemResolverContext } from '../SystemResolverContext'
|
|
3
3
|
import { QueryResolver } from '../Resolver'
|
|
4
4
|
import { ExecutedMigration, QueryExecutedMigrationsArgs } from '../../schema'
|
|
5
5
|
import { ExecutedMigrationByVersionQuery, ExecutedMigrationsQuery } from '../../model'
|
|
@@ -8,7 +8,7 @@ export class ExecutedMigrationsQueryResolver implements QueryResolver<'executedM
|
|
|
8
8
|
async executedMigrations(
|
|
9
9
|
parent: any,
|
|
10
10
|
args: QueryExecutedMigrationsArgs,
|
|
11
|
-
context:
|
|
11
|
+
context: SystemResolverContext,
|
|
12
12
|
info: GraphQLResolveInfo,
|
|
13
13
|
): Promise<ExecutedMigration[]> {
|
|
14
14
|
if (args.version) {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { GraphQLResolveInfo } from 'graphql'
|
|
2
|
-
import {
|
|
2
|
+
import { SystemResolverContext } from '../SystemResolverContext'
|
|
3
3
|
import { QueryResolver } from '../Resolver'
|
|
4
4
|
import { Stage } from '../../schema'
|
|
5
5
|
import { StagesQuery } from '../../model'
|
|
6
6
|
|
|
7
7
|
export class StagesQueryResolver implements QueryResolver<'stages'> {
|
|
8
|
-
async stages(parent: any, args: any, context:
|
|
8
|
+
async stages(parent: any, args: any, context: SystemResolverContext, info: GraphQLResolveInfo): Promise<Stage[]> {
|
|
9
9
|
return context.db.queryHandler.fetch(new StagesQuery())
|
|
10
10
|
}
|
|
11
11
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { DeleteEvent, DeleteEventResolvers, UpdateEvent, UpdateEventResolvers } from '../../schema'
|
|
2
|
-
import {
|
|
2
|
+
import { SystemResolverContext } from '../SystemResolverContext'
|
|
3
3
|
import { oldValuesLoaderFactory } from './OldValuesHelpers'
|
|
4
4
|
|
|
5
|
-
export class EventOldValuesResolver implements UpdateEventResolvers<
|
|
5
|
+
export class EventOldValuesResolver implements UpdateEventResolvers<SystemResolverContext>, DeleteEventResolvers<SystemResolverContext> {
|
|
6
6
|
async oldValues(
|
|
7
7
|
parent: UpdateEvent | DeleteEvent,
|
|
8
8
|
args: unknown,
|
|
9
|
-
context:
|
|
9
|
+
context: SystemResolverContext,
|
|
10
10
|
): Promise<object> {
|
|
11
11
|
return await context.getLoader(oldValuesLoaderFactory)(parent.id)
|
|
12
12
|
}
|
package/src/types.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import migration from '
|
|
1
|
+
import migration from '../../../src/migrations/2020-05-06-150000-composed-primary'
|
|
2
2
|
import { createMigrationBuilder } from '@contember/database-migrations'
|
|
3
3
|
import { sampleProject } from '@contember/engine-api-tester'
|
|
4
4
|
import { test } from 'uvu'
|
|
@@ -21,7 +21,6 @@ test('many-has-many-primary migration sql', async () => {
|
|
|
21
21
|
},
|
|
22
22
|
],
|
|
23
23
|
},
|
|
24
|
-
queryHandler: null as any,
|
|
25
24
|
})
|
|
26
25
|
assert.equal(
|
|
27
26
|
builder.getSql(),
|
|
@@ -49,13 +48,13 @@ CREATE TRIGGER "log_event"
|
|
|
49
48
|
WITH RECURSIVE
|
|
50
49
|
recent_events(id, type, previous_id, data, created_at, stage) AS (
|
|
51
50
|
SELECT event.id, type, previous_id, data, created_at, stage.slug
|
|
52
|
-
FROM
|
|
53
|
-
JOIN
|
|
51
|
+
FROM event
|
|
52
|
+
JOIN stage ON stage.event_id = event.id
|
|
54
53
|
|
|
55
54
|
UNION ALL
|
|
56
55
|
|
|
57
56
|
SELECT event.id, event.type, event.previous_id, event.data, event.created_at, recent_events.stage
|
|
58
|
-
FROM
|
|
57
|
+
FROM event, recent_events
|
|
59
58
|
WHERE event.id = recent_events.previous_id
|
|
60
59
|
),
|
|
61
60
|
affected_events AS (
|
|
@@ -134,15 +133,15 @@ CREATE TRIGGER "log_event"
|
|
|
134
133
|
FOR EACH ROW
|
|
135
134
|
EXECUTE PROCEDURE "system"."trigger_event"($pga$id$pga$);
|
|
136
135
|
|
|
137
|
-
UPDATE
|
|
136
|
+
UPDATE event
|
|
138
137
|
SET data = data || jsonb_build_object('rowId', json_build_array(data ->> 'rowId'))
|
|
139
138
|
WHERE jsonb_typeof(data -> 'rowId') = 'string'
|
|
140
139
|
;
|
|
141
|
-
CREATE OR REPLACE FUNCTION "
|
|
140
|
+
CREATE OR REPLACE FUNCTION "trigger_event"() RETURNS TRIGGER AS
|
|
142
141
|
$$
|
|
143
142
|
|
|
144
143
|
DECLARE
|
|
145
|
-
new_event_id UUID :=
|
|
144
|
+
new_event_id UUID := uuid_generate_v4();
|
|
146
145
|
DECLARE new_event_type TEXT;
|
|
147
146
|
DECLARE new_event_data JSONB;
|
|
148
147
|
DECLARE current_stage RECORD;
|
|
@@ -202,15 +201,15 @@ BEGIN
|
|
|
202
201
|
END CASE;
|
|
203
202
|
|
|
204
203
|
SELECT "id", "event_id"
|
|
205
|
-
FROM "
|
|
204
|
+
FROM "stage"
|
|
206
205
|
WHERE "slug" = right(TG_TABLE_SCHEMA, -length('stage_'))
|
|
207
206
|
FOR NO KEY UPDATE
|
|
208
207
|
INTO current_stage;
|
|
209
208
|
|
|
210
|
-
INSERT INTO "
|
|
209
|
+
INSERT INTO "event" ("id", "type", "data", "previous_id")
|
|
211
210
|
VALUES (new_event_id, new_event_type, new_event_data, current_stage.event_id);
|
|
212
211
|
|
|
213
|
-
UPDATE "
|
|
212
|
+
UPDATE "stage"
|
|
214
213
|
SET "event_id" = new_event_id
|
|
215
214
|
WHERE "id" = current_stage.id;
|
|
216
215
|
|
|
@@ -219,7 +218,7 @@ END;
|
|
|
219
218
|
|
|
220
219
|
$$ LANGUAGE plpgsql;
|
|
221
220
|
;
|
|
222
|
-
DROP FUNCTION "
|
|
221
|
+
DROP FUNCTION "make_diff"("old" jsonb, "new" jsonb);
|
|
223
222
|
`,
|
|
224
223
|
)
|
|
225
224
|
})
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import migration from '
|
|
1
|
+
import migration from '../../../src/migrations/2020-06-01-103000-event-trigger-perf'
|
|
2
2
|
import { createMigrationBuilder } from '@contember/database-migrations'
|
|
3
3
|
import { sampleProject } from '@contember/engine-api-tester'
|
|
4
4
|
import { test } from 'uvu'
|
|
@@ -21,11 +21,10 @@ test('event-trigger-performance sql', async () => {
|
|
|
21
21
|
},
|
|
22
22
|
],
|
|
23
23
|
},
|
|
24
|
-
queryHandler: null as any,
|
|
25
24
|
})
|
|
26
25
|
assert.equal(
|
|
27
26
|
builder.getSql(),
|
|
28
|
-
`CREATE OR REPLACE FUNCTION "
|
|
27
|
+
`CREATE OR REPLACE FUNCTION "trigger_event"() RETURNS TRIGGER AS $$
|
|
29
28
|
DECLARE
|
|
30
29
|
DECLARE new_event_type TEXT;
|
|
31
30
|
DECLARE previous_id UUID;
|
|
@@ -87,26 +86,26 @@ BEGIN
|
|
|
87
86
|
END CASE;
|
|
88
87
|
CASE WHEN NULLIF(current_setting('system.current_stage_id' || TG_TABLE_SCHEMA, TRUE), '') IS NULL THEN
|
|
89
88
|
PERFORM set_config('system.current_stage_id' || TG_TABLE_SCHEMA, "id"::TEXT, TRUE), set_config('system.current_stage_event' || TG_TABLE_SCHEMA, "event_id"::TEXT, TRUE)
|
|
90
|
-
FROM "
|
|
89
|
+
FROM "stage"
|
|
91
90
|
WHERE "slug" = right(TG_TABLE_SCHEMA, -length('stage_'))
|
|
92
91
|
FOR NO KEY UPDATE;
|
|
93
92
|
ELSE
|
|
94
93
|
-- do nothing
|
|
95
94
|
END CASE;
|
|
96
95
|
previous_id := current_setting('system.current_stage_event' || TG_TABLE_SCHEMA)::UUID;
|
|
97
|
-
INSERT INTO "
|
|
96
|
+
INSERT INTO "event" ("id", "type", "data", "previous_id")
|
|
98
97
|
VALUES (set_config('system.current_stage_event' || TG_TABLE_SCHEMA, system.uuid_generate_v4()::TEXT, TRUE)::UUID, new_event_type, new_event_data, previous_id);
|
|
99
98
|
|
|
100
99
|
RETURN NULL;
|
|
101
100
|
END;
|
|
102
101
|
|
|
103
102
|
$$ LANGUAGE plpgsql;
|
|
104
|
-
CREATE OR REPLACE FUNCTION "
|
|
103
|
+
CREATE OR REPLACE FUNCTION "statement_trigger_event"() RETURNS TRIGGER AS
|
|
105
104
|
$$
|
|
106
105
|
BEGIN
|
|
107
106
|
CASE
|
|
108
107
|
WHEN NULLIF(current_setting('system.current_stage_id' || TG_TABLE_SCHEMA, TRUE), '') IS NOT NULL THEN
|
|
109
|
-
UPDATE
|
|
108
|
+
UPDATE stage SET event_id = current_setting('system.current_stage_event' || TG_TABLE_SCHEMA)::UUID WHERE id = current_setting('system.current_stage_id' || TG_TABLE_SCHEMA)::UUID;
|
|
110
109
|
ELSE
|
|
111
110
|
-- do nothing
|
|
112
111
|
END CASE;
|
package/tests/tsconfig.json
CHANGED
package/tsconfig.json
CHANGED
package/dist/src/migrations.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { Schema } from '@contember/schema';
|
|
2
|
-
import { ProjectConfig } from './types';
|
|
3
|
-
import { QueryHandler } from '@contember/queryable';
|
|
4
|
-
import { DatabaseQueryable } from '@contember/database';
|
|
5
|
-
export interface MigrationArgs {
|
|
6
|
-
schemaResolver: () => Promise<Schema>;
|
|
7
|
-
project: ProjectConfig;
|
|
8
|
-
queryHandler: QueryHandler<DatabaseQueryable>;
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=migrations.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../src/migrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD,MAAM,WAAW,aAAa;IAC7B,cAAc,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;IACrC,OAAO,EAAE,aAAa,CAAA;IACtB,YAAY,EAAE,YAAY,CAAC,iBAAiB,CAAC,CAAA;CAC7C"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../src/migrations.ts"],"names":[],"mappings":""}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { StageConfig } from '../../../types';
|
|
2
|
-
import { Command } from '../Command';
|
|
3
|
-
export declare class CreateOrUpdateStageCommand implements Command<boolean> {
|
|
4
|
-
private readonly stage;
|
|
5
|
-
constructor(stage: StageConfig);
|
|
6
|
-
execute({ db, providers }: Command.Args): Promise<boolean>;
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=CreateOrUpdateStageCommand.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CreateOrUpdateStageCommand.d.ts","sourceRoot":"","sources":["../../../../../src/model/commands/stages/CreateOrUpdateStageCommand.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpC,qBAAa,0BAA2B,YAAW,OAAO,CAAC,OAAO,CAAC;IACtD,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,WAAW;IAElC,OAAO,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;CAiBvE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CreateOrUpdateStageCommand.js","sourceRoot":"","sources":["../../../../../src/model/commands/stages/CreateOrUpdateStageCommand.ts"],"names":[],"mappings":";;;AAAA,kDAAuF;AACvF,2CAAgD;AAIhD,MAAa,0BAA0B;IACtC,YAA6B,KAAkB;QAAlB,UAAK,GAAL,KAAK,CAAa;IAAG,CAAC;IAE5C,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,SAAS,EAAgB;QACnD,MAAM,MAAM,GAAG,MAAM,wBAAa,CAAC,MAAM,EAAE;aACzC,IAAI,CAAC,OAAO,CAAC;aACb,MAAM,CAAC;YACP,EAAE,EAAE,SAAS,CAAC,IAAI,EAAE;YACpB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;YACrB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;SACrB,CAAC;aACD,UAAU,CAAC,6BAAkB,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE;YAChD,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;SACrB,CAAC;aACD,OAAO,CAAC,EAAE,CAAC,CAAA;QAEb,MAAM,EAAE,CAAC,KAAK,CAAC,8BAA8B,GAAG,IAAA,yBAAc,EAAC,IAAA,0BAAgB,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAE7F,OAAO,MAAM,GAAG,CAAC,CAAA;IAClB,CAAC;CACD;AApBD,gEAoBC"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { Client } from '@contember/database';
|
|
2
|
-
import { Acl, Input, Schema } from '@contember/schema';
|
|
3
|
-
export declare type EntitiesRelationsInput = readonly {
|
|
4
|
-
name: string;
|
|
5
|
-
relations: EntitiesRelationsInput;
|
|
6
|
-
}[];
|
|
7
|
-
export interface EntitiesSelectorContext {
|
|
8
|
-
db: Client;
|
|
9
|
-
schema: Schema;
|
|
10
|
-
identityVariables: Acl.VariablesMap;
|
|
11
|
-
roles: string[];
|
|
12
|
-
}
|
|
13
|
-
export interface EntitiesSelectorInput {
|
|
14
|
-
entity: string;
|
|
15
|
-
filter: Input.Where;
|
|
16
|
-
relations: EntitiesRelationsInput;
|
|
17
|
-
}
|
|
18
|
-
export interface EntitiesSelector {
|
|
19
|
-
getEntities(context: EntitiesSelectorContext, input: EntitiesSelectorInput): Promise<EntitiesResult[]>;
|
|
20
|
-
}
|
|
21
|
-
interface EntitiesResultRelations {
|
|
22
|
-
[relation: string]: EntitiesResult | EntitiesResult[] | null;
|
|
23
|
-
}
|
|
24
|
-
export declare type EntitiesResult = {
|
|
25
|
-
id: string;
|
|
26
|
-
} & EntitiesResultRelations;
|
|
27
|
-
export {};
|
|
28
|
-
//# sourceMappingURL=EntitiesSelector.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EntitiesSelector.d.ts","sourceRoot":"","sources":["../../../../../src/model/dependencies/content/EntitiesSelector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAEtD,oBAAY,sBAAsB,GAAG,SAAS;IAC7C,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,sBAAsB,CAAA;CACjC,EAAE,CAAA;AAEH,MAAM,WAAW,uBAAuB;IACvC,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,iBAAiB,EAAE,GAAG,CAAC,YAAY,CAAA;IACnC,KAAK,EAAE,MAAM,EAAE,CAAA;CACf;AAED,MAAM,WAAW,qBAAqB;IACrC,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,KAAK,CAAC,KAAK,CAAA;IACnB,SAAS,EAAE,sBAAsB,CAAA;CACjC;AAED,MAAM,WAAW,gBAAgB;IAChC,WAAW,CAAC,OAAO,EAAE,uBAAuB,EAAE,KAAK,EAAE,qBAAqB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAA;CACtG;AAED,UAAU,uBAAuB;IAChC,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,cAAc,EAAE,GAAG,IAAI,CAAA;CAC5D;AAED,oBAAY,cAAc,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAA;CACV,GAAG,uBAAuB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"EntitiesSelector.js","sourceRoot":"","sources":["../../../../../src/model/dependencies/content/EntitiesSelector.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/model/dependencies/content/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/model/dependencies/content/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAkC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { Schema } from '@contember/schema';
|
|
2
|
-
import { Migration, ModificationHandlerFactory } from '@contember/schema-migrations';
|
|
3
|
-
import { Stage } from '../dtos';
|
|
4
|
-
import { DatabaseContext } from '../database';
|
|
5
|
-
export declare class MigrationExecutor {
|
|
6
|
-
private readonly modificationHandlerFactory;
|
|
7
|
-
constructor(modificationHandlerFactory: ModificationHandlerFactory);
|
|
8
|
-
execute(db: DatabaseContext, schema: Schema, stage: Stage, migration: Migration): Promise<Schema>;
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=MigrationExecutor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MigrationExecutor.d.ts","sourceRoot":"","sources":["../../../../src/model/migrations/MigrationExecutor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAA;AAEpF,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAE/B,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAE7C,qBAAa,iBAAiB;IACjB,OAAO,CAAC,QAAQ,CAAC,0BAA0B;gBAA1B,0BAA0B,EAAE,0BAA0B;IAEtE,OAAO,CAAC,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC;CAqB9G"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MigrationExecutor = void 0;
|
|
4
|
-
const database_1 = require("@contember/database");
|
|
5
|
-
const database_migrations_1 = require("@contember/database-migrations");
|
|
6
|
-
const helpers_1 = require("../helpers");
|
|
7
|
-
class MigrationExecutor {
|
|
8
|
-
constructor(modificationHandlerFactory) {
|
|
9
|
-
this.modificationHandlerFactory = modificationHandlerFactory;
|
|
10
|
-
}
|
|
11
|
-
async execute(db, schema, stage, migration) {
|
|
12
|
-
await db.client.query('SET search_path TO ' + (0, database_1.wrapIdentifier)((0, helpers_1.formatSchemaName)(stage)));
|
|
13
|
-
const builder = (0, database_migrations_1.createMigrationBuilder)();
|
|
14
|
-
for (let { modification, ...data } of migration.modifications) {
|
|
15
|
-
const modificationHandler = this.modificationHandlerFactory.create(modification, data, schema, migration.formatVersion);
|
|
16
|
-
await modificationHandler.createSql(builder);
|
|
17
|
-
schema = modificationHandler.getSchemaUpdater()({ schema });
|
|
18
|
-
}
|
|
19
|
-
const sql = builder.getSql();
|
|
20
|
-
await db.client.query(sql);
|
|
21
|
-
return schema;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
exports.MigrationExecutor = MigrationExecutor;
|
|
25
|
-
//# sourceMappingURL=MigrationExecutor.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MigrationExecutor.js","sourceRoot":"","sources":["../../../../src/model/migrations/MigrationExecutor.ts"],"names":[],"mappings":";;;AAAA,kDAAoD;AAGpD,wEAAuE;AAEvE,wCAA6C;AAG7C,MAAa,iBAAiB;IAC7B,YAA6B,0BAAsD;QAAtD,+BAA0B,GAA1B,0BAA0B,CAA4B;IAAG,CAAC;IAEhF,KAAK,CAAC,OAAO,CAAC,EAAmB,EAAE,MAAc,EAAE,KAAY,EAAE,SAAoB;QAC3F,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,GAAG,IAAA,yBAAc,EAAC,IAAA,0BAAgB,EAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAEtF,MAAM,OAAO,GAAG,IAAA,4CAAsB,GAAE,CAAA;QAExC,KAAK,IAAI,EAAE,YAAY,EAAE,GAAG,IAAI,EAAE,IAAI,SAAS,CAAC,aAAa,EAAE;YAC9D,MAAM,mBAAmB,GAAG,IAAI,CAAC,0BAA0B,CAAC,MAAM,CACjE,YAAY,EACZ,IAAI,EACJ,MAAM,EACN,SAAS,CAAC,aAAa,CACvB,CAAA;YACD,MAAM,mBAAmB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;YAC5C,MAAM,GAAG,mBAAmB,CAAC,gBAAgB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;SAC3D;QAED,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,CAAA;QAE5B,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC1B,OAAO,MAAM,CAAA;IACd,CAAC;CACD;AAxBD,8CAwBC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ResolverContext.d.ts","sourceRoot":"","sources":["../../../src/resolvers/ResolverContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AAGjD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAE5C,qBAAa,sBAAsB;IAEjC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,oBAAoB;gBADpB,YAAY,EAAE,YAAY,CAAC,QAAQ,CAAC,EACpC,oBAAoB,EAAE,oBAAoB;IAG/C,MAAM,CAClB,eAAe,EAAE,eAAe,EAChC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,QAAQ,GAChB,OAAO,CAAC,eAAe,CAAC;CA2B3B;AAED,oBAAY,aAAa,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC,EAAE,EAAE,eAAe,KAAK,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;AAEvF,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAA;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,EAAE,EAAE,eAAe,CAAA;IAC5B,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAA;IAC7C,QAAQ,CAAC,aAAa,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACvG,QAAQ,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IACpG,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CACzB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"2020-03-27-130000-project-migrations.d.ts","sourceRoot":"","sources":["2020-03-27-130000-project-migrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAA;AAEnC,yBAA+B,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,iBAkB5E"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"2020-05-06-150000-composed-primary.d.ts","sourceRoot":"","sources":["2020-05-06-150000-composed-primary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,gBAAgB,EAAQ,MAAM,gCAAgC,CAAA;AACpF,OAAO,EAAuC,aAAa,EAAE,MAAM,IAAI,CAAA;AAwDvE,yBAA+B,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,iBA0H5E"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"2020-05-06-150000-composed-primary.test.d.ts","sourceRoot":"","sources":["2020-05-06-150000-composed-primary.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"2020-06-01-103000-event-trigger-perf.d.ts","sourceRoot":"","sources":["2020-06-01-103000-event-trigger-perf.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAQ,MAAM,gCAAgC,CAAA;AACvE,OAAO,EAAuC,aAAa,EAAE,MAAM,IAAI,CAAA;AAcvE,yBAA+B,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,iBAuG5E"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"2020-06-01-103000-event-trigger-perf.test.d.ts","sourceRoot":"","sources":["2020-06-01-103000-event-trigger-perf.test.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"2021-05-07-155800-event-log-rework.d.ts","sourceRoot":"","sources":["2021-05-07-155800-event-log-rework.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAQ,MAAM,gCAAgC,CAAA;AACvE,OAAO,EAAuC,aAAa,EAAE,MAAM,IAAI,CAAA;AAgBvE,yBAA+B,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,iBAoQ5E"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"2021-05-19-1232000-event-log-fix-constraint.d.ts","sourceRoot":"","sources":["2021-05-19-1232000-event-log-fix-constraint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAQ,MAAM,gCAAgC,CAAA;AACvE,OAAO,EAAuC,aAAa,EAAE,MAAM,IAAI,CAAA;AAmBvE,yBAA+B,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,iBAe5E"}
|