@contember/cli 1.4.0-alpha.1 → 1.4.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/Dockerfile +2 -2
- package/dist/src/commands/deploy/DeployCommand.d.ts +1 -1
- package/dist/src/commands/deploy/DeployCommand.d.ts.map +1 -1
- package/dist/src/commands/deploy/DeployCommand.js +8 -3
- package/dist/src/commands/deploy/DeployCommand.js.map +1 -1
- package/dist/src/commands/migrations/MigrationAmendCommand.d.ts.map +1 -1
- package/dist/src/commands/migrations/MigrationAmendCommand.js +6 -6
- package/dist/src/commands/migrations/MigrationAmendCommand.js.map +1 -1
- package/dist/src/commands/migrations/MigrationBlankCommand.d.ts +15 -0
- package/dist/src/commands/migrations/MigrationBlankCommand.d.ts.map +1 -0
- package/dist/src/commands/migrations/MigrationBlankCommand.js +29 -0
- package/dist/src/commands/migrations/MigrationBlankCommand.js.map +1 -0
- package/dist/src/commands/migrations/MigrationDescribeCommand.d.ts.map +1 -1
- package/dist/src/commands/migrations/MigrationDescribeCommand.js +5 -5
- package/dist/src/commands/migrations/MigrationDescribeCommand.js.map +1 -1
- package/dist/src/commands/migrations/MigrationDiffCommand.d.ts.map +1 -1
- package/dist/src/commands/migrations/MigrationDiffCommand.js +8 -3
- package/dist/src/commands/migrations/MigrationDiffCommand.js.map +1 -1
- package/dist/src/commands/migrations/MigrationExecuteCommand.d.ts +1 -1
- package/dist/src/commands/migrations/MigrationExecuteCommand.d.ts.map +1 -1
- package/dist/src/commands/migrations/MigrationExecuteCommand.js +8 -3
- package/dist/src/commands/migrations/MigrationExecuteCommand.js.map +1 -1
- package/dist/src/commands/migrations/MigrationRebaseCommand.d.ts.map +1 -1
- package/dist/src/commands/migrations/MigrationRebaseCommand.js +2 -3
- package/dist/src/commands/migrations/MigrationRebaseCommand.js.map +1 -1
- package/dist/src/commands/migrations/MigrationStatusCommand.d.ts +1 -2
- package/dist/src/commands/migrations/MigrationStatusCommand.d.ts.map +1 -1
- package/dist/src/commands/migrations/MigrationStatusCommand.js +5 -7
- package/dist/src/commands/migrations/MigrationStatusCommand.js.map +1 -1
- package/dist/src/commands/migrations/index.d.ts +1 -0
- package/dist/src/commands/migrations/index.d.ts.map +1 -1
- package/dist/src/commands/migrations/index.js +1 -0
- package/dist/src/commands/migrations/index.js.map +1 -1
- package/dist/src/commands/project/ProjectValidateCommand.js +2 -2
- package/dist/src/commands/project/ProjectValidateCommand.js.map +1 -1
- package/dist/src/run.js +1 -0
- package/dist/src/run.js.map +1 -1
- package/dist/src/tsconfig.tsbuildinfo +1 -1
- package/dist/src/utils/admin.d.ts.map +1 -1
- package/dist/src/utils/admin.js +1 -5
- package/dist/src/utils/admin.js.map +1 -1
- package/dist/src/utils/esbuild.d.ts +2 -0
- package/dist/src/utils/esbuild.d.ts.map +1 -0
- package/dist/src/utils/esbuild.js +41 -0
- package/dist/src/utils/esbuild.js.map +1 -0
- package/dist/src/utils/migrations/JsLoader.d.ts +9 -0
- package/dist/src/utils/migrations/JsLoader.d.ts.map +1 -0
- package/dist/src/utils/migrations/JsLoader.js +33 -0
- package/dist/src/utils/migrations/JsLoader.js.map +1 -0
- package/dist/src/utils/migrations/JsonLoader.d.ts +9 -0
- package/dist/src/utils/migrations/JsonLoader.d.ts.map +1 -0
- package/dist/src/utils/migrations/JsonLoader.js +17 -0
- package/dist/src/utils/migrations/JsonLoader.js.map +1 -0
- package/dist/src/{commands → utils}/migrations/MigrationCreateHelper.d.ts +6 -3
- package/dist/src/utils/migrations/MigrationCreateHelper.d.ts.map +1 -0
- package/dist/src/{commands → utils}/migrations/MigrationCreateHelper.js +1 -1
- package/dist/src/utils/migrations/MigrationCreateHelper.js.map +1 -0
- package/dist/src/utils/migrations/MigrationCreator.d.ts +21 -0
- package/dist/src/utils/migrations/MigrationCreator.d.ts.map +1 -0
- package/dist/src/utils/migrations/MigrationCreator.js +47 -0
- package/dist/src/utils/migrations/MigrationCreator.js.map +1 -0
- package/dist/src/{commands → utils}/migrations/MigrationExecuteHelper.d.ts +8 -4
- package/dist/src/utils/migrations/MigrationExecuteHelper.d.ts.map +1 -0
- package/dist/src/{commands → utils}/migrations/MigrationExecuteHelper.js +57 -5
- package/dist/src/utils/migrations/MigrationExecuteHelper.js.map +1 -0
- package/dist/src/utils/migrations/MigrationFile.d.ts +36 -0
- package/dist/src/utils/migrations/MigrationFile.d.ts.map +1 -0
- package/dist/src/utils/migrations/MigrationFile.js +6 -0
- package/dist/src/utils/migrations/MigrationFile.js.map +1 -0
- package/dist/src/utils/migrations/MigrationFileLoader.d.ts +5 -0
- package/dist/src/utils/migrations/MigrationFileLoader.d.ts.map +1 -0
- package/dist/src/utils/migrations/MigrationFileLoader.js +3 -0
- package/dist/src/utils/migrations/MigrationFileLoader.js.map +1 -0
- package/dist/src/utils/migrations/MigrationFilesManager.d.ts +18 -0
- package/dist/src/utils/migrations/MigrationFilesManager.d.ts.map +1 -0
- package/dist/src/utils/migrations/MigrationFilesManager.js +114 -0
- package/dist/src/utils/migrations/MigrationFilesManager.js.map +1 -0
- package/dist/src/utils/migrations/MigrationParser.d.ts +6 -0
- package/dist/src/utils/migrations/MigrationParser.d.ts.map +1 -0
- package/dist/src/utils/migrations/MigrationParser.js +33 -0
- package/dist/src/utils/migrations/MigrationParser.js.map +1 -0
- package/dist/src/{MigrationsContainer.d.ts → utils/migrations/MigrationsContainer.d.ts} +5 -1
- package/dist/src/utils/migrations/MigrationsContainer.d.ts.map +1 -0
- package/dist/src/utils/migrations/MigrationsContainer.js +50 -0
- package/dist/src/utils/migrations/MigrationsContainer.js.map +1 -0
- package/dist/src/utils/migrations/MigrationsResolver.d.ts +14 -0
- package/dist/src/utils/migrations/MigrationsResolver.d.ts.map +1 -0
- package/dist/src/utils/migrations/MigrationsResolver.js +37 -0
- package/dist/src/utils/migrations/MigrationsResolver.js.map +1 -0
- package/dist/src/utils/migrations/SchemaVersionBuilder.d.ts +13 -0
- package/dist/src/utils/migrations/SchemaVersionBuilder.d.ts.map +1 -0
- package/dist/src/utils/migrations/SchemaVersionBuilder.js +26 -0
- package/dist/src/utils/migrations/SchemaVersionBuilder.js.map +1 -0
- package/dist/src/utils/{migrations.d.ts → migrations/migrations.d.ts} +18 -22
- package/dist/src/utils/migrations/migrations.d.ts.map +1 -0
- package/dist/src/utils/{migrations.js → migrations/migrations.js} +13 -28
- package/dist/src/utils/migrations/migrations.js.map +1 -0
- package/dist/src/utils/project/loadSchema.d.ts.map +1 -1
- package/dist/src/utils/project/loadSchema.js +5 -44
- package/dist/src/utils/project/loadSchema.js.map +1 -1
- package/dist/src/utils/project/resources/out.css +106 -124
- package/dist/src/utils/system/index.d.ts +3 -4
- package/dist/src/utils/system/index.d.ts.map +1 -1
- package/dist/src/utils/system/index.js.map +1 -1
- package/package.json +26 -27
- package/src/commands/deploy/DeployCommand.ts +9 -4
- package/src/commands/migrations/MigrationAmendCommand.ts +7 -11
- package/src/commands/migrations/MigrationBlankCommand.ts +46 -0
- package/src/commands/migrations/MigrationDescribeCommand.ts +7 -5
- package/src/commands/migrations/MigrationDiffCommand.ts +8 -3
- package/src/commands/migrations/MigrationExecuteCommand.ts +8 -3
- package/src/commands/migrations/MigrationRebaseCommand.ts +2 -3
- package/src/commands/migrations/MigrationStatusCommand.ts +6 -9
- package/src/commands/migrations/index.ts +1 -0
- package/src/commands/project/ProjectValidateCommand.ts +2 -2
- package/src/run.ts +2 -0
- package/src/tsconfig.json +1 -0
- package/src/utils/admin.ts +0 -1
- package/src/utils/esbuild.ts +14 -0
- package/src/utils/migrations/JsLoader.ts +37 -0
- package/src/utils/migrations/JsonLoader.ts +18 -0
- package/src/{commands → utils}/migrations/MigrationCreateHelper.ts +7 -11
- package/src/utils/migrations/MigrationCreator.ts +60 -0
- package/src/{commands → utils}/migrations/MigrationExecuteHelper.ts +68 -9
- package/src/utils/migrations/MigrationFile.ts +52 -0
- package/src/utils/migrations/MigrationFileLoader.ts +5 -0
- package/src/utils/migrations/MigrationFilesManager.ts +102 -0
- package/src/utils/migrations/MigrationParser.ts +32 -0
- package/src/{MigrationsContainer.ts → utils/migrations/MigrationsContainer.ts} +29 -12
- package/src/utils/migrations/MigrationsResolver.ts +44 -0
- package/src/utils/migrations/SchemaVersionBuilder.ts +33 -0
- package/src/utils/{migrations.ts → migrations/migrations.ts} +33 -57
- package/src/utils/project/loadSchema.ts +7 -21
- package/src/utils/system/index.ts +3 -4
- package/dist/src/MigrationsContainer.d.ts.map +0 -1
- package/dist/src/MigrationsContainer.js +0 -25
- package/dist/src/MigrationsContainer.js.map +0 -1
- package/dist/src/commands/migrations/MigrationCreateHelper.d.ts.map +0 -1
- package/dist/src/commands/migrations/MigrationCreateHelper.js.map +0 -1
- package/dist/src/commands/migrations/MigrationExecuteHelper.d.ts.map +0 -1
- package/dist/src/commands/migrations/MigrationExecuteHelper.js.map +0 -1
- package/dist/src/utils/migrations.d.ts.map +0 -1
- package/dist/src/utils/migrations.js.map +0 -1
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.MigrationFilesManager = void 0;
|
|
27
|
+
const engine_common_1 = require("@contember/engine-common");
|
|
28
|
+
const fs = __importStar(require("node:fs/promises"));
|
|
29
|
+
const node_path_1 = require("node:path");
|
|
30
|
+
class MigrationFilesManager {
|
|
31
|
+
constructor(directory, loaders) {
|
|
32
|
+
this.directory = directory;
|
|
33
|
+
this.loaders = loaders;
|
|
34
|
+
this.migrations = null;
|
|
35
|
+
}
|
|
36
|
+
async createFile(content, name, extension = 'json') {
|
|
37
|
+
this.migrations = null;
|
|
38
|
+
const path = this.formatPath(name, extension);
|
|
39
|
+
await fs.writeFile(path, content, { encoding: 'utf8' });
|
|
40
|
+
return await fs.realpath(path);
|
|
41
|
+
}
|
|
42
|
+
async removeFile(name) {
|
|
43
|
+
this.migrations = null;
|
|
44
|
+
const path = this.formatPath(name);
|
|
45
|
+
await fs.unlink(path);
|
|
46
|
+
}
|
|
47
|
+
async moveFile(oldName, newName) {
|
|
48
|
+
this.migrations = null;
|
|
49
|
+
await fs.rename(this.formatPath(oldName), this.formatPath(newName));
|
|
50
|
+
}
|
|
51
|
+
async createDirIfNotExist() {
|
|
52
|
+
try {
|
|
53
|
+
await fs.mkdir(this.directory);
|
|
54
|
+
}
|
|
55
|
+
catch (e) {
|
|
56
|
+
if (!(e instanceof Error) || !('code' in e) || e.code !== 'EEXIST') {
|
|
57
|
+
throw e;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
async readFiles() {
|
|
62
|
+
var _a;
|
|
63
|
+
return (_a = this.migrations) !== null && _a !== void 0 ? _a : (this.migrations = this.forceReadFiles());
|
|
64
|
+
}
|
|
65
|
+
async forceReadFiles() {
|
|
66
|
+
const files = (await this.listFiles()).map(it => ({
|
|
67
|
+
filename: it,
|
|
68
|
+
version: engine_common_1.MigrationVersionHelper.extractVersion(it),
|
|
69
|
+
}));
|
|
70
|
+
return files.map(({ version, filename }) => {
|
|
71
|
+
const ext = filename.substring(filename.lastIndexOf('.') + 1);
|
|
72
|
+
const path = (0, node_path_1.join)(this.directory, filename);
|
|
73
|
+
let content = null;
|
|
74
|
+
const file = {
|
|
75
|
+
path: path,
|
|
76
|
+
version: version,
|
|
77
|
+
name: engine_common_1.MigrationVersionHelper.extractName(path.substring(path.lastIndexOf('/') + 1)),
|
|
78
|
+
getContent: () => {
|
|
79
|
+
content !== null && content !== void 0 ? content : (content = this.loaders[ext].load(file));
|
|
80
|
+
return content;
|
|
81
|
+
},
|
|
82
|
+
};
|
|
83
|
+
return file;
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
async tryReadDir() {
|
|
87
|
+
try {
|
|
88
|
+
return await fs.readdir(this.directory, { withFileTypes: true });
|
|
89
|
+
}
|
|
90
|
+
catch (e) {
|
|
91
|
+
if (e instanceof Error && 'code' in e && e.code === 'ENOENT') {
|
|
92
|
+
return [];
|
|
93
|
+
}
|
|
94
|
+
throw e;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
async listFiles() {
|
|
98
|
+
const files = await this.tryReadDir();
|
|
99
|
+
const extensions = Object.keys(this.loaders).join('|');
|
|
100
|
+
const regex = new RegExp('^\\d{4}-\\d{2}-\\d{2}-\\d{6}-[\\w-]+\\.(' + extensions + ')$');
|
|
101
|
+
const filteredFiles = await Promise.all(files
|
|
102
|
+
.filter(it => it.isFile())
|
|
103
|
+
.map(it => it.name)
|
|
104
|
+
.filter(it => it.match(regex)));
|
|
105
|
+
return filteredFiles.sort();
|
|
106
|
+
}
|
|
107
|
+
formatPath(version, extension = 'json') {
|
|
108
|
+
const filename = `${version}.${extension}`;
|
|
109
|
+
const path = `${this.directory}/${filename}`;
|
|
110
|
+
return path;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
exports.MigrationFilesManager = MigrationFilesManager;
|
|
114
|
+
//# sourceMappingURL=MigrationFilesManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MigrationFilesManager.js","sourceRoot":"","sources":["../../../../src/utils/migrations/MigrationFilesManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { JSONValue } from '@contember/cli-common';
|
|
2
|
+
import { MigrationFile, ResolvedMigrationContent } from './MigrationFile';
|
|
3
|
+
export declare class MigrationParser {
|
|
4
|
+
parse(migrationFile: MigrationFile, content: JSONValue): ResolvedMigrationContent;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=MigrationParser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MigrationParser.d.ts","sourceRoot":"","sources":["../../../../src/utils/migrations/MigrationParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AAEjD,OAAO,EAAyB,aAAa,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAEhG,qBAAa,eAAe;IACpB,KAAK,CAAC,aAAa,EAAE,aAAa,EAAE,OAAO,EAAE,SAAS,GAAG,wBAAwB;CA0BxF"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MigrationParser = void 0;
|
|
4
|
+
const schema_migrations_1 = require("@contember/schema-migrations");
|
|
5
|
+
class MigrationParser {
|
|
6
|
+
parse(migrationFile, content) {
|
|
7
|
+
if (typeof content !== 'object' || content === null) {
|
|
8
|
+
throw new Error('Invalid migration');
|
|
9
|
+
}
|
|
10
|
+
if ('modifications' in content) {
|
|
11
|
+
const validated = content; // todo validate
|
|
12
|
+
return {
|
|
13
|
+
type: 'schema',
|
|
14
|
+
version: migrationFile.version,
|
|
15
|
+
name: migrationFile.name,
|
|
16
|
+
formatVersion: validated.formatVersion || schema_migrations_1.VERSION_INITIAL,
|
|
17
|
+
modifications: validated.modifications,
|
|
18
|
+
...(validated.skippedErrors ? { skippedErrors: validated.skippedErrors } : {}),
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
else if ('queries' in content || 'query' in content) {
|
|
22
|
+
return {
|
|
23
|
+
type: 'content',
|
|
24
|
+
version: migrationFile.version,
|
|
25
|
+
name: migrationFile.name,
|
|
26
|
+
queries: ('queries' in content ? content.queries : [content]),
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
throw new Error('Invalid migration content');
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.MigrationParser = MigrationParser;
|
|
33
|
+
//# sourceMappingURL=MigrationParser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MigrationParser.js","sourceRoot":"","sources":["../../../../src/utils/migrations/MigrationParser.ts"],"names":[],"mappings":";;;AACA,oEAAyE;AAGzE,MAAa,eAAe;IACpB,KAAK,CAAC,aAA4B,EAAE,OAAkB;QAC5D,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,EAAE;YACpD,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAA;SACpC;QAED,IAAI,eAAe,IAAI,OAAO,EAAE;YAC/B,MAAM,SAAS,GAAG,OAAoB,CAAA,CAAC,gBAAgB;YAEvD,OAAO;gBACN,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,aAAa,CAAC,OAAO;gBAC9B,IAAI,EAAE,aAAa,CAAC,IAAI;gBACxB,aAAa,EAAE,SAAS,CAAC,aAAa,IAAI,mCAAe;gBACzD,aAAa,EAAE,SAAS,CAAC,aAAa;gBACtC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,SAAS,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC9E,CAAA;SACD;aAAM,IAAI,SAAS,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,EAAE;YACtD,OAAO;gBACN,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE,aAAa,CAAC,OAAO;gBAC9B,IAAI,EAAE,aAAa,CAAC,IAAI;gBACxB,OAAO,EAAE,CAAC,SAAS,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAA4B;aACxF,CAAA;SACD;QACD,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;IAC7C,CAAC;CACD;AA3BD,0CA2BC"}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { MigrationDescriber, SchemaDiffer, SchemaMigrator } from '@contember/schema-migrations';
|
|
2
|
+
import { MigrationCreator } from './MigrationCreator';
|
|
3
|
+
import { SchemaVersionBuilder } from './SchemaVersionBuilder';
|
|
4
|
+
import { MigrationsResolver } from './MigrationsResolver';
|
|
5
|
+
import { MigrationFilesManager } from './MigrationFilesManager';
|
|
2
6
|
export interface MigrationsContainer {
|
|
3
7
|
migrationCreator: MigrationCreator;
|
|
4
8
|
migrationDescriber: MigrationDescriber;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MigrationsContainer.d.ts","sourceRoot":"","sources":["../../../../src/utils/migrations/MigrationsContainer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAA8B,YAAY,EAAE,cAAc,EAAkB,MAAM,8BAA8B,CAAA;AAC3I,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAK/D,MAAM,WAAW,mBAAmB;IACnC,gBAAgB,EAAE,gBAAgB,CAAA;IAClC,kBAAkB,EAAE,kBAAkB,CAAA;IACtC,oBAAoB,EAAE,oBAAoB,CAAA;IAC1C,YAAY,EAAE,YAAY,CAAA;IAC1B,kBAAkB,EAAE,kBAAkB,CAAA;IACtC,qBAAqB,EAAE,qBAAqB,CAAA;IAC5C,cAAc,EAAE,cAAc,CAAA;CAC9B;AAaD,qBAAa,0BAA0B;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,MAAM;IAEvC,MAAM,IAAI,mBAAmB;CAqCpC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MigrationsContainerFactory = void 0;
|
|
4
|
+
const dic_1 = require("@contember/dic");
|
|
5
|
+
const schema_migrations_1 = require("@contember/schema-migrations");
|
|
6
|
+
const MigrationCreator_1 = require("./MigrationCreator");
|
|
7
|
+
const SchemaVersionBuilder_1 = require("./SchemaVersionBuilder");
|
|
8
|
+
const MigrationsResolver_1 = require("./MigrationsResolver");
|
|
9
|
+
const MigrationFilesManager_1 = require("./MigrationFilesManager");
|
|
10
|
+
const JsonLoader_1 = require("./JsonLoader");
|
|
11
|
+
const MigrationParser_1 = require("./MigrationParser");
|
|
12
|
+
const JsLoader_1 = require("./JsLoader");
|
|
13
|
+
const jsSample = `
|
|
14
|
+
export const query = \`\`
|
|
15
|
+
export const variables = {}
|
|
16
|
+
|
|
17
|
+
// or multiple queries
|
|
18
|
+
// export const queries = []
|
|
19
|
+
|
|
20
|
+
// or a factory
|
|
21
|
+
// export default async () => ({ queries: [] })
|
|
22
|
+
`;
|
|
23
|
+
class MigrationsContainerFactory {
|
|
24
|
+
constructor(directory) {
|
|
25
|
+
this.directory = directory;
|
|
26
|
+
}
|
|
27
|
+
create() {
|
|
28
|
+
return new dic_1.Builder({})
|
|
29
|
+
.addService('migrationFilesManager', () => new MigrationFilesManager_1.MigrationFilesManager(this.directory, {
|
|
30
|
+
json: new JsonLoader_1.JsonLoader(new MigrationParser_1.MigrationParser()),
|
|
31
|
+
ts: new JsLoader_1.JsLoader(new MigrationParser_1.MigrationParser()),
|
|
32
|
+
js: new JsLoader_1.JsLoader(new MigrationParser_1.MigrationParser()),
|
|
33
|
+
}))
|
|
34
|
+
.addService('modificationHandlerFactory', () => new schema_migrations_1.ModificationHandlerFactory(schema_migrations_1.ModificationHandlerFactory.defaultFactoryMap))
|
|
35
|
+
.addService('schemaMigrator', ({ modificationHandlerFactory }) => new schema_migrations_1.SchemaMigrator(modificationHandlerFactory))
|
|
36
|
+
.addService('migrationsResolver', ({ migrationFilesManager }) => new MigrationsResolver_1.MigrationsResolver(migrationFilesManager))
|
|
37
|
+
.addService('schemaVersionBuilder', ({ migrationsResolver, schemaMigrator }) => new SchemaVersionBuilder_1.SchemaVersionBuilder(migrationsResolver, schemaMigrator))
|
|
38
|
+
.addService('schemaDiffer', ({ schemaMigrator }) => new schema_migrations_1.SchemaDiffer(schemaMigrator))
|
|
39
|
+
.addService('migrationCreator', ({ migrationFilesManager, schemaDiffer }) => new MigrationCreator_1.MigrationCreator(migrationFilesManager, schemaDiffer, {
|
|
40
|
+
json: JSON.stringify({ formatVersion: schema_migrations_1.VERSION_LATEST, modifications: [] }, undefined, '\t') + '\n',
|
|
41
|
+
ts: jsSample,
|
|
42
|
+
js: jsSample,
|
|
43
|
+
}))
|
|
44
|
+
.addService('migrationDescriber', ({ modificationHandlerFactory }) => new schema_migrations_1.MigrationDescriber(modificationHandlerFactory))
|
|
45
|
+
.build()
|
|
46
|
+
.pick('migrationCreator', 'migrationDescriber', 'schemaVersionBuilder', 'schemaDiffer', 'migrationsResolver', 'migrationFilesManager', 'schemaMigrator');
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.MigrationsContainerFactory = MigrationsContainerFactory;
|
|
50
|
+
//# sourceMappingURL=MigrationsContainer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MigrationsContainer.js","sourceRoot":"","sources":["../../../../src/utils/migrations/MigrationsContainer.ts"],"names":[],"mappings":";;;AAAA,wCAAwC;AACxC,oEAA2I;AAC3I,yDAAqD;AACrD,iEAA6D;AAC7D,6DAAyD;AACzD,mEAA+D;AAC/D,6CAAyC;AACzC,uDAAmD;AACnD,yCAAqC;AAYrC,MAAM,QAAQ,GAAG;;;;;;;;;CAShB,CAAA;AAED,MAAa,0BAA0B;IACtC,YAA6B,SAAiB;QAAjB,cAAS,GAAT,SAAS,CAAQ;IAAG,CAAC;IAE3C,MAAM;QACZ,OAAO,IAAI,aAAO,CAAC,EAAE,CAAC;aACpB,UAAU,CAAC,uBAAuB,EAAE,GAAG,EAAE,CACzC,IAAI,6CAAqB,CAAC,IAAI,CAAC,SAAS,EAAE;YACzC,IAAI,EAAE,IAAI,uBAAU,CAAC,IAAI,iCAAe,EAAE,CAAC;YAC3C,EAAE,EAAE,IAAI,mBAAQ,CAAC,IAAI,iCAAe,EAAE,CAAC;YACvC,EAAE,EAAE,IAAI,mBAAQ,CAAC,IAAI,iCAAe,EAAE,CAAC;SACvC,CAAC,CAAC;aACH,UAAU,CAAC,4BAA4B,EAAE,GAAG,EAAE,CAC9C,IAAI,8CAA0B,CAAC,8CAA0B,CAAC,iBAAiB,CAAC,CAAC;aAC7E,UAAU,CAAC,gBAAgB,EAAE,CAAC,EAAE,0BAA0B,EAAE,EAAE,EAAE,CAChE,IAAI,kCAAc,CAAC,0BAA0B,CAAC,CAAC;aAC/C,UAAU,CAAC,oBAAoB,EAAE,CAAC,EAAE,qBAAqB,EAAE,EAAE,EAAE,CAC/D,IAAI,uCAAkB,CAAC,qBAAqB,CAAC,CAAC;aAC9C,UAAU,CAAC,sBAAsB,EAAE,CAAC,EAAE,kBAAkB,EAAE,cAAc,EAAE,EAAE,EAAE,CAC9E,IAAI,2CAAoB,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;aAC7D,UAAU,CAAC,cAAc,EAAE,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE,CAClD,IAAI,gCAAY,CAAC,cAAc,CAAC,CAAC;aACjC,UAAU,CAAC,kBAAkB,EAAE,CAAC,EAAE,qBAAqB,EAAE,YAAY,EAAE,EAAE,EAAE,CAC3E,IAAI,mCAAgB,CAAC,qBAAqB,EAAE,YAAY,EAAE;YACzD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,aAAa,EAAE,kCAAc,EAAE,aAAa,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,IAAI;YAClG,EAAE,EAAE,QAAQ;YACZ,EAAE,EAAE,QAAQ;SACZ,CAAC,CAAC;aACH,UAAU,CAAC,oBAAoB,EAAE,CAAC,EAAE,0BAA0B,EAAE,EAAE,EAAE,CACpE,IAAI,sCAAkB,CAAC,0BAA0B,CAAC,CAAC;aACnD,KAAK,EAAE;aACP,IAAI,CACJ,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,cAAc,EACd,oBAAoB,EACpB,uBAAuB,EACvB,gBAAgB,CAChB,CAAA;IACH,CAAC;CACD;AAxCD,gEAwCC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { MigrationFilesManager } from './MigrationFilesManager';
|
|
2
|
+
import { Migration } from '@contember/schema-migrations';
|
|
3
|
+
import { MigrationFile } from './MigrationFile';
|
|
4
|
+
export declare class MigrationsResolver {
|
|
5
|
+
private readonly migrationFilesManager;
|
|
6
|
+
constructor(migrationFilesManager: MigrationFilesManager);
|
|
7
|
+
get directory(): string;
|
|
8
|
+
getMigrationFiles(): Promise<MigrationFile[]>;
|
|
9
|
+
getSchemaMigrations(): Promise<Migration[]>;
|
|
10
|
+
findLatestSchemaMigration(): Promise<Migration | null>;
|
|
11
|
+
findSchemaMigrationByVersion(version: string): Promise<Migration | null>;
|
|
12
|
+
private convertMigrationFileToSchemaMigration;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=MigrationsResolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MigrationsResolver.d.ts","sourceRoot":"","sources":["../../../../src/utils/migrations/MigrationsResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAA;AACxD,OAAO,EAAqB,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAGlE,qBAAa,kBAAkB;IAElB,OAAO,CAAC,QAAQ,CAAC,qBAAqB;gBAArB,qBAAqB,EAAE,qBAAqB;IAEzE,IAAW,SAAS,IAAI,MAAM,CAE7B;IAEY,iBAAiB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAI7C,mBAAmB,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAQ3C,yBAAyB,IAAI,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAKtD,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;YASvE,qCAAqC;CAInD"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MigrationsResolver = void 0;
|
|
4
|
+
const MigrationFile_1 = require("./MigrationFile");
|
|
5
|
+
const engine_common_1 = require("@contember/engine-common");
|
|
6
|
+
class MigrationsResolver {
|
|
7
|
+
constructor(migrationFilesManager) {
|
|
8
|
+
this.migrationFilesManager = migrationFilesManager;
|
|
9
|
+
}
|
|
10
|
+
get directory() {
|
|
11
|
+
return this.migrationFilesManager.directory;
|
|
12
|
+
}
|
|
13
|
+
async getMigrationFiles() {
|
|
14
|
+
return await this.migrationFilesManager.readFiles();
|
|
15
|
+
}
|
|
16
|
+
async getSchemaMigrations() {
|
|
17
|
+
const migrationFiles = await this.getMigrationFiles();
|
|
18
|
+
const migrations = await Promise.all(migrationFiles.map(this.convertMigrationFileToSchemaMigration));
|
|
19
|
+
return migrations.filter((it) => it !== null);
|
|
20
|
+
}
|
|
21
|
+
async findLatestSchemaMigration() {
|
|
22
|
+
const migrations = await this.getSchemaMigrations();
|
|
23
|
+
return migrations.length > 0 ? migrations[migrations.length - 1] : null;
|
|
24
|
+
}
|
|
25
|
+
async findSchemaMigrationByVersion(version) {
|
|
26
|
+
var _a;
|
|
27
|
+
const migrations = await this.getSchemaMigrations();
|
|
28
|
+
return (_a = migrations
|
|
29
|
+
.find(it => engine_common_1.MigrationVersionHelper.extractVersion(it.version) === engine_common_1.MigrationVersionHelper.extractVersion(version))) !== null && _a !== void 0 ? _a : null;
|
|
30
|
+
}
|
|
31
|
+
async convertMigrationFileToSchemaMigration(file) {
|
|
32
|
+
const result = await file.getContent();
|
|
33
|
+
return (0, MigrationFile_1.isSchemaMigration)(result) ? result : null;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.MigrationsResolver = MigrationsResolver;
|
|
37
|
+
//# sourceMappingURL=MigrationsResolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MigrationsResolver.js","sourceRoot":"","sources":["../../../../src/utils/migrations/MigrationsResolver.ts"],"names":[],"mappings":";;;AAEA,mDAAkE;AAClE,4DAAiE;AAEjE,MAAa,kBAAkB;IAE9B,YAA6B,qBAA4C;QAA5C,0BAAqB,GAArB,qBAAqB,CAAuB;IAAG,CAAC;IAE7E,IAAW,SAAS;QACnB,OAAO,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAA;IAC5C,CAAC;IAEM,KAAK,CAAC,iBAAiB;QAC7B,OAAO,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,CAAA;IACpD,CAAC;IAEM,KAAK,CAAC,mBAAmB;QAC/B,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAA;QAErD,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC,CAAA;QAEpG,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,EAAmB,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,CAAA;IAC/D,CAAC;IAEM,KAAK,CAAC,yBAAyB;QACrC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAA;QACnD,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACxE,CAAC;IAEM,KAAK,CAAC,4BAA4B,CAAC,OAAe;;QACxD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAA;QACnD,OAAO,MAAA,UAAU;aACf,IAAI,CAAC,EAAE,CAAC,EAAE,CACV,sCAAsB,CAAC,cAAc,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,sCAAsB,CAAC,cAAc,CAAC,OAAO,CAAC,CACpG,mCACE,IAAI,CAAA;IACT,CAAC;IAEO,KAAK,CAAC,qCAAqC,CAAC,IAAmB;QACtE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAA;QACtC,OAAO,IAAA,iCAAiB,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA;IACjD,CAAC;CACD;AAtCD,gDAsCC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Schema } from '@contember/schema';
|
|
2
|
+
import { SchemaMigrator } from '@contember/schema-migrations';
|
|
3
|
+
import { MigrationsResolver } from './MigrationsResolver';
|
|
4
|
+
export declare class SchemaVersionBuilder {
|
|
5
|
+
private readonly migrationsResolver;
|
|
6
|
+
private readonly schemaMigrator;
|
|
7
|
+
constructor(migrationsResolver: MigrationsResolver, schemaMigrator: SchemaMigrator);
|
|
8
|
+
buildSchema(targetVersion?: string): Promise<Schema>;
|
|
9
|
+
buildSchemaUntil(targetVersion: string): Promise<Schema>;
|
|
10
|
+
continue(schema: Schema, previousVersion: string | null, targetVersion: string): Promise<Schema>;
|
|
11
|
+
buildSchemaAdvanced(initialSchema: Schema, condition: (version: string) => boolean): Promise<Schema>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=SchemaVersionBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SchemaVersionBuilder.d.ts","sourceRoot":"","sources":["../../../../src/utils/migrations/SchemaVersionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAEzD,qBAAa,oBAAoB;IAE/B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,cAAc;gBADd,kBAAkB,EAAE,kBAAkB,EACtC,cAAc,EAAE,cAAc;IAG1C,WAAW,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIpD,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIxD,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIzF,mBAAmB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;CASjH"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SchemaVersionBuilder = void 0;
|
|
4
|
+
const schema_utils_1 = require("@contember/schema-utils");
|
|
5
|
+
class SchemaVersionBuilder {
|
|
6
|
+
constructor(migrationsResolver, schemaMigrator) {
|
|
7
|
+
this.migrationsResolver = migrationsResolver;
|
|
8
|
+
this.schemaMigrator = schemaMigrator;
|
|
9
|
+
}
|
|
10
|
+
async buildSchema(targetVersion) {
|
|
11
|
+
return this.buildSchemaAdvanced(schema_utils_1.emptySchema, version => !targetVersion || version <= targetVersion);
|
|
12
|
+
}
|
|
13
|
+
async buildSchemaUntil(targetVersion) {
|
|
14
|
+
return this.buildSchemaAdvanced(schema_utils_1.emptySchema, version => version < targetVersion);
|
|
15
|
+
}
|
|
16
|
+
async continue(schema, previousVersion, targetVersion) {
|
|
17
|
+
return this.buildSchemaAdvanced(schema, version => version <= targetVersion && version > (previousVersion || ''));
|
|
18
|
+
}
|
|
19
|
+
async buildSchemaAdvanced(initialSchema, condition) {
|
|
20
|
+
return (await this.migrationsResolver.getSchemaMigrations())
|
|
21
|
+
.filter(({ version }) => condition(version))
|
|
22
|
+
.reduce((schema, { modifications, formatVersion }) => this.schemaMigrator.applyModifications(schema, modifications, formatVersion), initialSchema);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.SchemaVersionBuilder = SchemaVersionBuilder;
|
|
26
|
+
//# sourceMappingURL=SchemaVersionBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SchemaVersionBuilder.js","sourceRoot":"","sources":["../../../../src/utils/migrations/SchemaVersionBuilder.ts"],"names":[],"mappings":";;;AACA,0DAAqD;AAIrD,MAAa,oBAAoB;IAChC,YACkB,kBAAsC,EACtC,cAA8B;QAD9B,uBAAkB,GAAlB,kBAAkB,CAAoB;QACtC,mBAAc,GAAd,cAAc,CAAgB;IAC7C,CAAC;IAEJ,KAAK,CAAC,WAAW,CAAC,aAAsB;QACvC,OAAO,IAAI,CAAC,mBAAmB,CAAC,0BAAW,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,aAAa,IAAI,OAAO,IAAI,aAAa,CAAC,CAAA;IACpG,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,aAAqB;QAC3C,OAAO,IAAI,CAAC,mBAAmB,CAAC,0BAAW,EAAE,OAAO,CAAC,EAAE,CAAC,OAAO,GAAG,aAAa,CAAC,CAAA;IACjF,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,eAA8B,EAAE,aAAqB;QACnF,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,OAAO,IAAI,aAAa,IAAI,OAAO,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,CAAA;IAClH,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAAC,aAAqB,EAAE,SAAuC;QAC9F,OAAO,CAAC,MAAM,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,EAAE,CAAC;aAC1D,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;aAC3C,MAAM,CACN,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,aAAa,EAAE,EAAE,EAAE,CAC5C,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,MAAM,EAAE,aAAa,EAAE,aAAa,CAAC,EAC7E,aAAa,CACb,CAAA;IACH,CAAC;CACD;AA3BD,oDA2BC"}
|
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
import { Migration, MigrationDescriber, MigrationInfo
|
|
1
|
+
import { Migration, MigrationDescriber, MigrationInfo } from '@contember/schema-migrations';
|
|
2
2
|
import { Schema } from '@contember/schema';
|
|
3
|
-
|
|
4
|
-
export declare const getMigrationByName: (migrationsResolver: MigrationsResolver, version: string) => Promise<Migration | null>;
|
|
5
|
-
export declare const findMigration: <M extends {
|
|
6
|
-
version: string;
|
|
7
|
-
}>(migrations: M[], version: string) => M | null;
|
|
3
|
+
import { MigrationFile } from './MigrationFile';
|
|
8
4
|
export declare const printMigrationDescription: (migrationsDescriber: MigrationDescriber, schema: Schema, migration: Migration, options: {
|
|
9
5
|
sqlOnly?: boolean;
|
|
10
6
|
noSql?: boolean;
|
|
@@ -24,29 +20,29 @@ export declare enum MigrationState {
|
|
|
24
20
|
EXECUTED_ERROR = "executed_error",
|
|
25
21
|
EXECUTED_MISSING = "executed_missing"
|
|
26
22
|
}
|
|
27
|
-
export interface
|
|
28
|
-
state:
|
|
29
|
-
|
|
23
|
+
export interface MigrationStatusBase<S extends MigrationState> {
|
|
24
|
+
state: S;
|
|
25
|
+
version: string;
|
|
26
|
+
name: string;
|
|
27
|
+
}
|
|
28
|
+
export interface MigrationToExecuteOkStatus extends MigrationStatusBase<MigrationState.TO_EXECUTE_OK> {
|
|
29
|
+
localMigration: MigrationFile;
|
|
30
30
|
}
|
|
31
|
-
interface MigrationToExecuteInvalidStatus extends
|
|
32
|
-
|
|
33
|
-
localMigration: Migration;
|
|
31
|
+
interface MigrationToExecuteInvalidStatus extends MigrationStatusBase<MigrationState.TO_EXECUTE_ERROR> {
|
|
32
|
+
localMigration: MigrationFile;
|
|
34
33
|
errorMessage: string;
|
|
35
34
|
}
|
|
36
|
-
interface MigrationExecutedOkStatus extends
|
|
37
|
-
state: MigrationState.EXECUTED_OK;
|
|
35
|
+
interface MigrationExecutedOkStatus extends MigrationStatusBase<MigrationState.EXECUTED_OK> {
|
|
38
36
|
executedMigration: ExecutedMigrationInfo;
|
|
39
|
-
localMigration:
|
|
37
|
+
localMigration: MigrationFile;
|
|
40
38
|
}
|
|
41
|
-
interface MigrationExecutedMissingStatus extends
|
|
42
|
-
state: MigrationState.EXECUTED_MISSING;
|
|
39
|
+
interface MigrationExecutedMissingStatus extends MigrationStatusBase<MigrationState.EXECUTED_MISSING> {
|
|
43
40
|
executedMigration: ExecutedMigrationInfo;
|
|
44
41
|
errorMessage: string;
|
|
45
42
|
}
|
|
46
|
-
interface MigrationExecutedErrorStatus extends
|
|
47
|
-
state: MigrationState.EXECUTED_ERROR;
|
|
43
|
+
interface MigrationExecutedErrorStatus extends MigrationStatusBase<MigrationState.EXECUTED_ERROR> {
|
|
48
44
|
executedMigration: ExecutedMigrationInfo;
|
|
49
|
-
localMigration:
|
|
45
|
+
localMigration: MigrationFile;
|
|
50
46
|
errorMessage: string;
|
|
51
47
|
}
|
|
52
48
|
export type ErrorMigrationStatus = MigrationToExecuteInvalidStatus | MigrationExecutedMissingStatus | MigrationExecutedErrorStatus;
|
|
@@ -55,11 +51,11 @@ export declare const isErrorMigrationStatus: (migration: AnyMigrationStatus) =>
|
|
|
55
51
|
export declare const sortMigrations: <M extends {
|
|
56
52
|
version: string;
|
|
57
53
|
}>(migrations: M[]) => M[];
|
|
58
|
-
export declare const getMigrationsStatus: (executedMigrations: ExecutedMigrationInfo[], localMigrations:
|
|
54
|
+
export declare const getMigrationsStatus: (executedMigrations: ExecutedMigrationInfo[], localMigrations: MigrationFile[], force?: boolean) => Promise<{
|
|
59
55
|
allMigrations: AnyMigrationStatus[];
|
|
60
56
|
errorMigrations: ErrorMigrationStatus[];
|
|
61
57
|
migrationsToExecute: MigrationToExecuteOkStatus[];
|
|
62
|
-
}
|
|
58
|
+
}>;
|
|
63
59
|
export declare const createMigrationStatusTable: (migrations: AnyMigrationStatus[]) => string;
|
|
64
60
|
export {};
|
|
65
61
|
//# sourceMappingURL=migrations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../../../../src/utils/migrations/migrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,SAAS,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAEvH,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAI1C,OAAO,EAAqB,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAElE,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,mBAAmB,CAAC,CAAC,SAAS,cAAc;IAC5D,KAAK,EAAE,CAAC,CAAA;IACR,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,0BAA2B,SAAQ,mBAAmB,CAAC,cAAc,CAAC,aAAa,CAAC;IACpG,cAAc,EAAE,aAAa,CAAA;CAC7B;AAED,UAAU,+BAAgC,SAAQ,mBAAmB,CAAC,cAAc,CAAC,gBAAgB,CAAC;IACrG,cAAc,EAAE,aAAa,CAAA;IAC7B,YAAY,EAAE,MAAM,CAAA;CACpB;AAED,UAAU,yBAA0B,SAAQ,mBAAmB,CAAC,cAAc,CAAC,WAAW,CAAC;IAC1F,iBAAiB,EAAE,qBAAqB,CAAA;IACxC,cAAc,EAAE,aAAa,CAAA;CAC7B;AAED,UAAU,8BAA+B,SAAQ,mBAAmB,CAAC,cAAc,CAAC,gBAAgB,CAAC;IACpG,iBAAiB,EAAE,qBAAqB,CAAA;IACxC,YAAY,EAAE,MAAM,CAAA;CACpB;AAED,UAAU,4BAA6B,SAAQ,mBAAmB,CAAC,cAAc,CAAC,cAAc,CAAC;IAChG,iBAAiB,EAAE,qBAAqB,CAAA;IACxC,cAAc,EAAE,aAAa,CAAA;IAC7B,YAAY,EAAE,MAAM,CAAA;CACpB;AAED,MAAM,MAAM,oBAAoB,GAC7B,+BAA+B,GAC/B,8BAA8B,GAC9B,4BAA4B,CAAA;AAE/B,MAAM,MAAM,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,aAAa,EAAE,UACzB,OAAO;mBAEC,kBAAkB,EAAE;qBAClB,oBAAoB,EAAE;yBAClB,0BAA0B,EAAE;EA0EjD,CAAA;AACD,eAAO,MAAM,0BAA0B,eAAgB,kBAAkB,EAAE,KAAG,MAkC7E,CAAA"}
|
|
@@ -3,24 +3,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.createMigrationStatusTable = exports.getMigrationsStatus = exports.sortMigrations = exports.isErrorMigrationStatus = exports.MigrationState = exports.printMigrationDescription =
|
|
6
|
+
exports.createMigrationStatusTable = exports.getMigrationsStatus = exports.sortMigrations = exports.isErrorMigrationStatus = exports.MigrationState = exports.printMigrationDescription = void 0;
|
|
7
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
|
-
const assertNever_1 = require("
|
|
10
|
+
const assertNever_1 = require("../assertNever");
|
|
11
11
|
const database_1 = require("@contember/database");
|
|
12
|
-
const
|
|
13
|
-
const migrations = await migrationsResolver.getMigrations();
|
|
14
|
-
return migrations.length > 0 ? migrations[migrations.length - 1] : null;
|
|
15
|
-
};
|
|
16
|
-
exports.getLatestMigration = getLatestMigration;
|
|
17
|
-
const getMigrationByName = async (migrationsResolver, version) => {
|
|
18
|
-
const migrations = await migrationsResolver.getMigrations();
|
|
19
|
-
return (0, exports.findMigration)(migrations, version);
|
|
20
|
-
};
|
|
21
|
-
exports.getMigrationByName = getMigrationByName;
|
|
22
|
-
const findMigration = (migrations, version) => migrations.find(it => schema_migrations_1.MigrationVersionHelper.extractVersion(it.version) === schema_migrations_1.MigrationVersionHelper.extractVersion(version)) || null;
|
|
23
|
-
exports.findMigration = findMigration;
|
|
12
|
+
const MigrationFile_1 = require("./MigrationFile");
|
|
24
13
|
const printMigrationDescription = function (migrationsDescriber, schema, migration, options) {
|
|
25
14
|
const description = migrationsDescriber.describeModifications(schema, migration);
|
|
26
15
|
description.forEach(({ modification, getSql, description }) => {
|
|
@@ -67,7 +56,7 @@ const sortMigrations = (migrations) => {
|
|
|
67
56
|
return [...migrations].sort((a, b) => a.version.localeCompare(b.version));
|
|
68
57
|
};
|
|
69
58
|
exports.sortMigrations = sortMigrations;
|
|
70
|
-
const getMigrationsStatus = (executedMigrations, localMigrations, force = false) => {
|
|
59
|
+
const getMigrationsStatus = async (executedMigrations, localMigrations, force = false) => {
|
|
71
60
|
const sortedExecuted = (0, exports.sortMigrations)(executedMigrations);
|
|
72
61
|
const allMigrations = [];
|
|
73
62
|
for (const executed of sortedExecuted) {
|
|
@@ -76,22 +65,21 @@ const getMigrationsStatus = (executedMigrations, localMigrations, force = false)
|
|
|
76
65
|
allMigrations.push({
|
|
77
66
|
state: MigrationState.EXECUTED_MISSING,
|
|
78
67
|
executedMigration: executed,
|
|
79
|
-
formatVersion: executed.formatVersion,
|
|
80
|
-
name: executed.name,
|
|
81
68
|
version: executed.version,
|
|
69
|
+
name: executed.name,
|
|
82
70
|
errorMessage: `Migration ${executed.name} is missing locally`,
|
|
83
71
|
});
|
|
84
72
|
continue;
|
|
85
73
|
}
|
|
86
|
-
const
|
|
74
|
+
const migrationContent = await localMigration.getContent();
|
|
75
|
+
const localChecksum = !(0, MigrationFile_1.isSchemaMigration)(migrationContent) ? null : (0, schema_migrations_1.calculateMigrationChecksum)(migrationContent);
|
|
87
76
|
if (localChecksum !== executed.checksum) {
|
|
88
77
|
allMigrations.push({
|
|
89
78
|
state: MigrationState.EXECUTED_ERROR,
|
|
90
79
|
executedMigration: executed,
|
|
91
|
-
localMigration,
|
|
92
|
-
formatVersion: executed.formatVersion,
|
|
93
|
-
name: executed.name,
|
|
94
80
|
version: executed.version,
|
|
81
|
+
name: executed.name,
|
|
82
|
+
localMigration,
|
|
95
83
|
errorMessage: `Checksum of executed migration "${executed.checksum}" does not match "${localChecksum}"`,
|
|
96
84
|
});
|
|
97
85
|
continue;
|
|
@@ -99,10 +87,9 @@ const getMigrationsStatus = (executedMigrations, localMigrations, force = false)
|
|
|
99
87
|
allMigrations.push({
|
|
100
88
|
state: MigrationState.EXECUTED_OK,
|
|
101
89
|
executedMigration: executed,
|
|
102
|
-
localMigration,
|
|
103
|
-
formatVersion: executed.formatVersion,
|
|
104
|
-
name: executed.name,
|
|
105
90
|
version: executed.version,
|
|
91
|
+
name: executed.name,
|
|
92
|
+
localMigration,
|
|
106
93
|
});
|
|
107
94
|
}
|
|
108
95
|
const latestExecuted = sortedExecuted.length > 0 ? sortedExecuted[sortedExecuted.length - 1] : null;
|
|
@@ -114,9 +101,8 @@ const getMigrationsStatus = (executedMigrations, localMigrations, force = false)
|
|
|
114
101
|
allMigrations.push({
|
|
115
102
|
state: MigrationState.TO_EXECUTE_ERROR,
|
|
116
103
|
localMigration,
|
|
117
|
-
formatVersion: localMigration.formatVersion,
|
|
118
|
-
name: localMigration.name,
|
|
119
104
|
version: localMigration.version,
|
|
105
|
+
name: localMigration.name,
|
|
120
106
|
errorMessage: `Must follow latest executed migration ${latestExecuted.name}`,
|
|
121
107
|
});
|
|
122
108
|
continue;
|
|
@@ -124,9 +110,8 @@ const getMigrationsStatus = (executedMigrations, localMigrations, force = false)
|
|
|
124
110
|
allMigrations.push({
|
|
125
111
|
state: MigrationState.TO_EXECUTE_OK,
|
|
126
112
|
localMigration,
|
|
127
|
-
formatVersion: localMigration.formatVersion,
|
|
128
|
-
name: localMigration.name,
|
|
129
113
|
version: localMigration.version,
|
|
114
|
+
name: localMigration.name,
|
|
130
115
|
});
|
|
131
116
|
}
|
|
132
117
|
const allMigrationsSorted = (0, exports.sortMigrations)(allMigrations);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../../../src/utils/migrations/migrations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadSchema.d.ts","sourceRoot":"","sources":["../../../../src/utils/project/loadSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"loadSchema.d.ts","sourceRoot":"","sources":["../../../../src/utils/project/loadSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAK1C,eAAO,MAAM,UAAU,YAAmB,OAAO,KAAG,QAAQ,MAAM,CAOjE,CAAA"}
|
|
@@ -1,53 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
3
|
exports.loadSchema = void 0;
|
|
27
|
-
const esbuild = __importStar(require("esbuild"));
|
|
28
4
|
const node_path_1 = require("node:path");
|
|
29
|
-
const vm2_1 = require("vm2");
|
|
30
5
|
const schema_utils_1 = require("@contember/schema-utils");
|
|
6
|
+
const esbuild_1 = require("../esbuild");
|
|
31
7
|
const loadSchema = async (project) => {
|
|
32
|
-
const
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
treeShaking: true,
|
|
37
|
-
write: false,
|
|
38
|
-
loader: { '.sql': 'text' },
|
|
39
|
-
external: ['@contember/admin', 'react', 'react/jsx-runtime'],
|
|
40
|
-
});
|
|
41
|
-
const bundledJs = response.outputFiles[0].text;
|
|
42
|
-
const vm = new vm2_1.NodeVM({
|
|
43
|
-
require: {
|
|
44
|
-
builtin: ['*'],
|
|
45
|
-
},
|
|
46
|
-
});
|
|
47
|
-
const schema = await vm.run(bundledJs).default;
|
|
48
|
-
// https://github.com/patriksimek/vm2/issues/198
|
|
49
|
-
const fixedSchema = JSON.parse(JSON.stringify(schema));
|
|
50
|
-
return (0, schema_utils_1.schemaType)(fixedSchema);
|
|
8
|
+
const bundledJs = await (0, esbuild_1.buildJs)((0, node_path_1.join)(project.apiDir, 'index.ts'));
|
|
9
|
+
const fn = new Function('require', `var module = {}; ((module) => { ${bundledJs} })(module); return module`);
|
|
10
|
+
const schema = fn(require).exports.default;
|
|
11
|
+
return (0, schema_utils_1.schemaType)(schema);
|
|
51
12
|
};
|
|
52
13
|
exports.loadSchema = loadSchema;
|
|
53
14
|
//# sourceMappingURL=loadSchema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadSchema.js","sourceRoot":"","sources":["../../../../src/utils/project/loadSchema.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"loadSchema.js","sourceRoot":"","sources":["../../../../src/utils/project/loadSchema.ts"],"names":[],"mappings":";;;AAEA,yCAAgC;AAChC,0DAAoD;AACpD,wCAAoC;AAE7B,MAAM,UAAU,GAAG,KAAK,EAAE,OAAgB,EAAmB,EAAE;IACrE,MAAM,SAAS,GAAG,MAAM,IAAA,iBAAO,EAAC,IAAA,gBAAI,EAAC,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAA;IAEjE,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,SAAS,EAAE,mCAAmC,SAAS,4BAA4B,CAAC,CAAA;IAE5G,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,OAAO,CAAA;IAC1C,OAAO,IAAA,yBAAU,EAAC,MAAM,CAAC,CAAA;AAC1B,CAAC,CAAA;AAPY,QAAA,UAAU,cAOtB"}
|