@contember/cli 1.3.0-alpha.1 → 1.3.0-alpha.13
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/Dockerfile +1 -1
- package/build.sh +1 -0
- package/contember-docker.sh +0 -0
- package/dist/src/commands/migrations/MigrationAmendCommand.js +1 -1
- package/dist/src/commands/migrations/MigrationAmendCommand.js.map +1 -1
- package/dist/src/commands/migrations/MigrationDescribeCommand.d.ts +1 -2
- package/dist/src/commands/migrations/MigrationDescribeCommand.d.ts.map +1 -1
- package/dist/src/commands/migrations/MigrationDescribeCommand.js +1 -31
- package/dist/src/commands/migrations/MigrationDescribeCommand.js.map +1 -1
- package/dist/src/commands/migrations/MigrationValidationHelper.js +1 -1
- package/dist/src/commands/migrations/MigrationValidationHelper.js.map +1 -1
- package/dist/src/commands/project/ProjectPrintSchemaCommand.js +2 -2
- package/dist/src/commands/project/ProjectPrintSchemaCommand.js.map +1 -1
- package/dist/src/run.js +0 -0
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/dist/src/utils/migrations.d.ts +1 -1
- package/dist/src/utils/migrations.d.ts.map +1 -1
- package/dist/src/utils/migrations.js +12 -4
- package/dist/src/utils/migrations.js.map +1 -1
- package/package.json +10 -10
- package/src/commands/migrations/MigrationAmendCommand.ts +1 -1
- package/src/commands/migrations/MigrationDescribeCommand.ts +3 -37
- package/src/commands/migrations/MigrationValidationHelper.ts +1 -1
- package/src/commands/project/ProjectPrintSchemaCommand.ts +2 -2
- package/src/tsconfig.json +7 -21
- package/src/utils/migrations.ts +12 -4
|
@@ -8,7 +8,7 @@ export declare const findMigration: <M extends {
|
|
|
8
8
|
export declare const printMigrationDescription: (migrationsDescriber: MigrationDescriber, schema: Schema, migration: Migration, options: {
|
|
9
9
|
sqlOnly?: boolean;
|
|
10
10
|
noSql?: boolean;
|
|
11
|
-
}) =>
|
|
11
|
+
}) => void;
|
|
12
12
|
export interface ExecutedMigrationInfo extends MigrationInfo {
|
|
13
13
|
readonly executedAt: Date;
|
|
14
14
|
readonly checksum: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../../src/utils/migrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,SAAS,EACT,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAElB,MAAM,8BAA8B,CAAA;AAErC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../../src/utils/migrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,SAAS,EACT,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAElB,MAAM,8BAA8B,CAAA;AAErC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAK1C,eAAO,MAAM,kBAAkB,uBAA8B,kBAAkB,KAAG,QAAQ,SAAS,GAAG,IAAI,CAGzG,CAAA;AACD,eAAO,MAAM,kBAAkB,uBACV,kBAAkB,WAC7B,MAAM,KACb,QAAQ,SAAS,GAAG,IAAI,CAG1B,CAAA;AAED,eAAO,MAAM,aAAa;aAAyB,MAAM;6BAA8B,MAAM,aAGnF,CAAA;AAEV,eAAO,MAAM,yBAAyB,wBAChB,kBAAkB,UAC/B,MAAM,aACH,SAAS,WACX;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,SA8B/C,CAAA;AAED,MAAM,WAAW,qBAAsB,SAAQ,aAAa;IAC3D,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IACnD,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CACzB;AAED,oBAAY,cAAc;IACzB,aAAa,kBAAkB;IAC/B,gBAAgB,qBAAqB;IACrC,WAAW,gBAAgB;IAC3B,cAAc,mBAAmB;IACjC,gBAAgB,qBAAqB;CACrC;AAED,MAAM,WAAW,0BAA2B,SAAQ,aAAa;IAChE,KAAK,EAAE,cAAc,CAAC,aAAa,CAAA;IACnC,cAAc,EAAE,SAAS,CAAA;CACzB;AAED,UAAU,+BAAgC,SAAQ,aAAa;IAC9D,KAAK,EAAE,cAAc,CAAC,gBAAgB,CAAA;IACtC,cAAc,EAAE,SAAS,CAAA;IACzB,YAAY,EAAE,MAAM,CAAA;CACpB;AAED,UAAU,yBAA0B,SAAQ,aAAa;IACxD,KAAK,EAAE,cAAc,CAAC,WAAW,CAAA;IACjC,iBAAiB,EAAE,qBAAqB,CAAA;IACxC,cAAc,EAAE,SAAS,CAAA;CACzB;AAED,UAAU,8BAA+B,SAAQ,aAAa;IAC7D,KAAK,EAAE,cAAc,CAAC,gBAAgB,CAAA;IACtC,iBAAiB,EAAE,qBAAqB,CAAA;IACxC,YAAY,EAAE,MAAM,CAAA;CACpB;AAED,UAAU,4BAA6B,SAAQ,aAAa;IAC3D,KAAK,EAAE,cAAc,CAAC,cAAc,CAAA;IACpC,iBAAiB,EAAE,qBAAqB,CAAA;IACxC,cAAc,EAAE,SAAS,CAAA;IACzB,YAAY,EAAE,MAAM,CAAA;CACpB;AAED,oBAAY,oBAAoB,GAC7B,+BAA+B,GAC/B,8BAA8B,GAC9B,4BAA4B,CAAA;AAE/B,oBAAY,kBAAkB,GAAG,oBAAoB,GAAG,0BAA0B,GAAG,yBAAyB,CAAA;AAC9G,eAAO,MAAM,sBAAsB,cAAe,kBAAkB,sCAGlE,CAAA;AAEF,eAAO,MAAM,cAAc;aAAyB,MAAM;0BAEzD,CAAA;AAED,eAAO,MAAM,mBAAmB,uBACX,qBAAqB,EAAE,mBAC1B,SAAS,EAAE,UACrB,OAAO;mBAEC,kBAAkB,EAAE;qBAClB,oBAAoB,EAAE;yBAClB,0BAA0B,EAAE;CA4EjD,CAAA;AACD,eAAO,MAAM,0BAA0B,eAAgB,kBAAkB,EAAE,KAAG,MAkC7E,CAAA"}
|
|
@@ -8,6 +8,7 @@ const schema_migrations_1 = require("@contember/schema-migrations");
|
|
|
8
8
|
const chalk_1 = __importDefault(require("chalk"));
|
|
9
9
|
const chalk_table_1 = __importDefault(require("chalk-table"));
|
|
10
10
|
const assertNever_1 = require("./assertNever");
|
|
11
|
+
const schema_utils_1 = require("@contember/schema-utils");
|
|
11
12
|
const getLatestMigration = async (migrationsResolver) => {
|
|
12
13
|
const migrations = await migrationsResolver.getMigrations();
|
|
13
14
|
return migrations.length > 0 ? migrations[migrations.length - 1] : null;
|
|
@@ -20,11 +21,18 @@ const getMigrationByName = async (migrationsResolver, version) => {
|
|
|
20
21
|
exports.getMigrationByName = getMigrationByName;
|
|
21
22
|
const findMigration = (migrations, version) => migrations.find(it => schema_migrations_1.MigrationVersionHelper.extractVersion(it.version) === schema_migrations_1.MigrationVersionHelper.extractVersion(version)) || null;
|
|
22
23
|
exports.findMigration = findMigration;
|
|
23
|
-
const printMigrationDescription =
|
|
24
|
-
const description =
|
|
25
|
-
description.forEach(({ modification,
|
|
24
|
+
const printMigrationDescription = function (migrationsDescriber, schema, migration, options) {
|
|
25
|
+
const description = migrationsDescriber.describeModifications(schema, migration);
|
|
26
|
+
description.forEach(({ modification, getSql, description }) => {
|
|
27
|
+
const sql = getSql({
|
|
28
|
+
systemSchema: 'system',
|
|
29
|
+
databaseMetadata: schema_utils_1.dummySchemaDatabaseMetadata,
|
|
30
|
+
invalidateDatabaseMetadata: () => null,
|
|
31
|
+
});
|
|
26
32
|
if (options.sqlOnly) {
|
|
27
|
-
|
|
33
|
+
if (sql.trim()) {
|
|
34
|
+
console.log(sql);
|
|
35
|
+
}
|
|
28
36
|
}
|
|
29
37
|
else {
|
|
30
38
|
const color = description.isDestructive ? chalk_1.default.red : chalk_1.default.blue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../../src/utils/migrations.ts"],"names":[],"mappings":";;;;;;AAAA,oEAOqC;AACrC,kDAAyB;AAEzB,8DAAoC;AACpC,+CAA2C;
|
|
1
|
+
{"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../../src/utils/migrations.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contember/cli",
|
|
3
|
-
"version": "1.3.0-alpha.
|
|
3
|
+
"version": "1.3.0-alpha.13",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"bin": {
|
|
6
6
|
"contember": "./dist/src/run.js"
|
|
@@ -12,20 +12,20 @@
|
|
|
12
12
|
"devDependencies": {
|
|
13
13
|
"@types/fs-extra": "^9.0.3",
|
|
14
14
|
"@types/js-yaml": "^4.0.1",
|
|
15
|
-
"@types/prompts": "^2.0.1",
|
|
16
15
|
"@types/node": "^18",
|
|
16
|
+
"@types/prompts": "^2.0.1",
|
|
17
17
|
"autoprefixer": "^10.4.5",
|
|
18
18
|
"postcss": "^8.4.12",
|
|
19
19
|
"tailwindcss": "^3.0.24"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@contember/cli-common": "
|
|
23
|
-
"@contember/config-loader": "
|
|
24
|
-
"@contember/dic": "
|
|
25
|
-
"@contember/engine-content-api": "
|
|
26
|
-
"@contember/schema": "
|
|
27
|
-
"@contember/schema-migrations": "
|
|
28
|
-
"@contember/schema-utils": "
|
|
22
|
+
"@contember/cli-common": "1.3.0-alpha.13",
|
|
23
|
+
"@contember/config-loader": "1.3.0-alpha.13",
|
|
24
|
+
"@contember/dic": "1.3.0-alpha.13",
|
|
25
|
+
"@contember/engine-content-api": "1.3.0-alpha.13",
|
|
26
|
+
"@contember/schema": "1.3.0-alpha.13",
|
|
27
|
+
"@contember/schema-migrations": "1.3.0-alpha.13",
|
|
28
|
+
"@contember/schema-utils": "1.3.0-alpha.13",
|
|
29
29
|
"@graphql-tools/schema": "^8.3.5",
|
|
30
30
|
"chalk": "^4.1.2",
|
|
31
31
|
"chalk-table": "^1.0.2",
|
|
@@ -41,4 +41,4 @@
|
|
|
41
41
|
"vm2": "^3.9.9",
|
|
42
42
|
"yawn-yaml": "^1.5.0"
|
|
43
43
|
}
|
|
44
|
-
}
|
|
44
|
+
}
|
|
@@ -92,7 +92,7 @@ export class MigrationAmendCommand extends Command<Args, Options> {
|
|
|
92
92
|
emptySchema,
|
|
93
93
|
version => version < amendMigration.version,
|
|
94
94
|
)
|
|
95
|
-
const
|
|
95
|
+
const newSchema = await schemaMigrator.applyModifications(
|
|
96
96
|
prevSchema,
|
|
97
97
|
[...amendMigration.modifications, ...intermediateResult.migration.modifications],
|
|
98
98
|
amendMigration.formatVersion,
|
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
import { Command, CommandConfiguration, Input } from '@contember/cli-common'
|
|
1
|
+
import { Command, CommandConfiguration, Input, Workspace } from '@contember/cli-common'
|
|
2
2
|
import { MigrationsContainerFactory } from '../../MigrationsContainer'
|
|
3
|
-
import { getLatestMigration, getMigrationByName } from '../../utils/migrations'
|
|
4
|
-
import chalk from 'chalk'
|
|
5
|
-
import { Migration, MigrationDescriber } from '@contember/schema-migrations'
|
|
6
|
-
import { Schema } from '@contember/schema'
|
|
7
|
-
import { Workspace } from '@contember/cli-common'
|
|
3
|
+
import { getLatestMigration, getMigrationByName, printMigrationDescription } from '../../utils/migrations'
|
|
8
4
|
|
|
9
5
|
type Args = {
|
|
10
6
|
project?: string
|
|
@@ -16,36 +12,6 @@ type Options = {
|
|
|
16
12
|
['no-sql']: boolean
|
|
17
13
|
}
|
|
18
14
|
|
|
19
|
-
let printMigrationDescription = async function (
|
|
20
|
-
migrationsDescriber: MigrationDescriber,
|
|
21
|
-
schema: Schema,
|
|
22
|
-
migration: Migration,
|
|
23
|
-
options: { sqlOnly: boolean; noSql: boolean },
|
|
24
|
-
) {
|
|
25
|
-
const description = await migrationsDescriber.describeModifications(schema, migration, 'system') // schema name cannot be determined here
|
|
26
|
-
description.forEach(({ modification, sql, description }) => {
|
|
27
|
-
if (options.sqlOnly) {
|
|
28
|
-
if (sql.trim()) {
|
|
29
|
-
console.log(sql)
|
|
30
|
-
}
|
|
31
|
-
} else {
|
|
32
|
-
const color = description.isDestructive ? chalk.red : chalk.blue
|
|
33
|
-
console.group(color(`${description.message} [${modification.modification}]`))
|
|
34
|
-
if (description.failureWarning) {
|
|
35
|
-
console.log(chalk.bgWhite(chalk.redBright(description.failureWarning)))
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
if (!options.noSql) {
|
|
39
|
-
if (sql.trim()) {
|
|
40
|
-
console.log(sql)
|
|
41
|
-
} else {
|
|
42
|
-
console.log('No sql to execute')
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
console.groupEnd()
|
|
46
|
-
}
|
|
47
|
-
})
|
|
48
|
-
}
|
|
49
15
|
|
|
50
16
|
export class MigrationDescribeCommand extends Command<Args, Options> {
|
|
51
17
|
constructor(
|
|
@@ -83,6 +49,6 @@ export class MigrationDescribeCommand extends Command<Args, Options> {
|
|
|
83
49
|
const schema = await container.schemaVersionBuilder.buildSchemaUntil(migration.version)
|
|
84
50
|
const sqlOnly = input.getOption('sql-only')
|
|
85
51
|
const noSql = input.getOption('no-sql')
|
|
86
|
-
|
|
52
|
+
printMigrationDescription(container.migrationDescriber, schema, migration, { sqlOnly, noSql })
|
|
87
53
|
}
|
|
88
54
|
}
|
|
@@ -13,7 +13,7 @@ export const validateMigrations = async (
|
|
|
13
13
|
for (const migration of await migrations) {
|
|
14
14
|
try {
|
|
15
15
|
// just a check that it does not fail
|
|
16
|
-
|
|
16
|
+
describer.describeModifications(migratedSchema, migration)
|
|
17
17
|
|
|
18
18
|
migratedSchema = migrator.applyModifications(migratedSchema, migration.modifications, migration.formatVersion)
|
|
19
19
|
} catch (e) {
|
|
@@ -48,9 +48,9 @@ export class ProjectPrintSchemaCommand extends Command<Args, Options> {
|
|
|
48
48
|
if (!validateSchemaAndPrintErrors(schema, 'Defined schema is invalid:')) {
|
|
49
49
|
return 1
|
|
50
50
|
}
|
|
51
|
-
const permissionFactory = new PermissionFactory(
|
|
51
|
+
const permissionFactory = new PermissionFactory()
|
|
52
52
|
const inputRoles = input.getOption('role')
|
|
53
|
-
const permissions = permissionFactory.create(schema
|
|
53
|
+
const permissions = permissionFactory.create(schema, inputRoles || ['admin'])
|
|
54
54
|
const schemaBuilderFactory = new GraphQlSchemaBuilderFactory()
|
|
55
55
|
const authorizator = new Authorizator(permissions, schema.acl.customPrimary ?? false)
|
|
56
56
|
const introspection = new IntrospectionSchemaFactory(
|
package/src/tsconfig.json
CHANGED
|
@@ -8,26 +8,12 @@
|
|
|
8
8
|
"jsxFragmentFactory": "Fragment"
|
|
9
9
|
},
|
|
10
10
|
"references": [
|
|
11
|
-
{
|
|
12
|
-
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
"path": "../../dic/src"
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
"path": "../../engine-content-api/src"
|
|
22
|
-
},
|
|
23
|
-
{
|
|
24
|
-
"path": "../../schema/src"
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
"path": "../../schema-migrations/src"
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
"path": "../../schema-utils/src"
|
|
31
|
-
}
|
|
11
|
+
{ "path": "../../cli-common/src" },
|
|
12
|
+
{ "path": "../../config-loader/src" },
|
|
13
|
+
{ "path": "../../dic/src" },
|
|
14
|
+
{ "path": "../../engine-content-api/src" },
|
|
15
|
+
{ "path": "../../schema/src" },
|
|
16
|
+
{ "path": "../../schema-migrations/src" },
|
|
17
|
+
{ "path": "../../schema-utils/src" }
|
|
32
18
|
]
|
|
33
19
|
}
|
package/src/utils/migrations.ts
CHANGED
|
@@ -10,6 +10,7 @@ import chalk from 'chalk'
|
|
|
10
10
|
import { Schema } from '@contember/schema'
|
|
11
11
|
import chalkTable from 'chalk-table'
|
|
12
12
|
import { assertNever } from './assertNever'
|
|
13
|
+
import { dummySchemaDatabaseMetadata } from '@contember/schema-utils'
|
|
13
14
|
|
|
14
15
|
export const getLatestMigration = async (migrationsResolver: MigrationsResolver): Promise<Migration | null> => {
|
|
15
16
|
const migrations = await migrationsResolver.getMigrations()
|
|
@@ -28,16 +29,23 @@ export const findMigration = <M extends { version: string }>(migrations: M[], ve
|
|
|
28
29
|
it => MigrationVersionHelper.extractVersion(it.version) === MigrationVersionHelper.extractVersion(version),
|
|
29
30
|
) || null
|
|
30
31
|
|
|
31
|
-
export const printMigrationDescription =
|
|
32
|
+
export const printMigrationDescription = function (
|
|
32
33
|
migrationsDescriber: MigrationDescriber,
|
|
33
34
|
schema: Schema,
|
|
34
35
|
migration: Migration,
|
|
35
36
|
options: { sqlOnly?: boolean; noSql?: boolean },
|
|
36
37
|
) {
|
|
37
|
-
const description =
|
|
38
|
-
description.forEach(({ modification,
|
|
38
|
+
const description = migrationsDescriber.describeModifications(schema, migration)
|
|
39
|
+
description.forEach(({ modification, getSql, description }) => {
|
|
40
|
+
const sql = getSql({
|
|
41
|
+
systemSchema: 'system',
|
|
42
|
+
databaseMetadata: dummySchemaDatabaseMetadata,
|
|
43
|
+
invalidateDatabaseMetadata: () => null,
|
|
44
|
+
})
|
|
39
45
|
if (options.sqlOnly) {
|
|
40
|
-
|
|
46
|
+
if (sql.trim()) {
|
|
47
|
+
console.log(sql)
|
|
48
|
+
}
|
|
41
49
|
} else {
|
|
42
50
|
const color = description.isDestructive ? chalk.red : chalk.blue
|
|
43
51
|
console.group(color(`${description.message} [${modification.modification}]`))
|