@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.
Files changed (143) hide show
  1. package/Dockerfile +2 -2
  2. package/dist/src/commands/deploy/DeployCommand.d.ts +1 -1
  3. package/dist/src/commands/deploy/DeployCommand.d.ts.map +1 -1
  4. package/dist/src/commands/deploy/DeployCommand.js +8 -3
  5. package/dist/src/commands/deploy/DeployCommand.js.map +1 -1
  6. package/dist/src/commands/migrations/MigrationAmendCommand.d.ts.map +1 -1
  7. package/dist/src/commands/migrations/MigrationAmendCommand.js +6 -6
  8. package/dist/src/commands/migrations/MigrationAmendCommand.js.map +1 -1
  9. package/dist/src/commands/migrations/MigrationBlankCommand.d.ts +15 -0
  10. package/dist/src/commands/migrations/MigrationBlankCommand.d.ts.map +1 -0
  11. package/dist/src/commands/migrations/MigrationBlankCommand.js +29 -0
  12. package/dist/src/commands/migrations/MigrationBlankCommand.js.map +1 -0
  13. package/dist/src/commands/migrations/MigrationDescribeCommand.d.ts.map +1 -1
  14. package/dist/src/commands/migrations/MigrationDescribeCommand.js +5 -5
  15. package/dist/src/commands/migrations/MigrationDescribeCommand.js.map +1 -1
  16. package/dist/src/commands/migrations/MigrationDiffCommand.d.ts.map +1 -1
  17. package/dist/src/commands/migrations/MigrationDiffCommand.js +8 -3
  18. package/dist/src/commands/migrations/MigrationDiffCommand.js.map +1 -1
  19. package/dist/src/commands/migrations/MigrationExecuteCommand.d.ts +1 -1
  20. package/dist/src/commands/migrations/MigrationExecuteCommand.d.ts.map +1 -1
  21. package/dist/src/commands/migrations/MigrationExecuteCommand.js +8 -3
  22. package/dist/src/commands/migrations/MigrationExecuteCommand.js.map +1 -1
  23. package/dist/src/commands/migrations/MigrationRebaseCommand.d.ts.map +1 -1
  24. package/dist/src/commands/migrations/MigrationRebaseCommand.js +2 -3
  25. package/dist/src/commands/migrations/MigrationRebaseCommand.js.map +1 -1
  26. package/dist/src/commands/migrations/MigrationStatusCommand.d.ts +1 -2
  27. package/dist/src/commands/migrations/MigrationStatusCommand.d.ts.map +1 -1
  28. package/dist/src/commands/migrations/MigrationStatusCommand.js +5 -7
  29. package/dist/src/commands/migrations/MigrationStatusCommand.js.map +1 -1
  30. package/dist/src/commands/migrations/index.d.ts +1 -0
  31. package/dist/src/commands/migrations/index.d.ts.map +1 -1
  32. package/dist/src/commands/migrations/index.js +1 -0
  33. package/dist/src/commands/migrations/index.js.map +1 -1
  34. package/dist/src/commands/project/ProjectValidateCommand.js +2 -2
  35. package/dist/src/commands/project/ProjectValidateCommand.js.map +1 -1
  36. package/dist/src/run.js +1 -0
  37. package/dist/src/run.js.map +1 -1
  38. package/dist/src/tsconfig.tsbuildinfo +1 -1
  39. package/dist/src/utils/admin.d.ts.map +1 -1
  40. package/dist/src/utils/admin.js +1 -5
  41. package/dist/src/utils/admin.js.map +1 -1
  42. package/dist/src/utils/esbuild.d.ts +2 -0
  43. package/dist/src/utils/esbuild.d.ts.map +1 -0
  44. package/dist/src/utils/esbuild.js +41 -0
  45. package/dist/src/utils/esbuild.js.map +1 -0
  46. package/dist/src/utils/migrations/JsLoader.d.ts +9 -0
  47. package/dist/src/utils/migrations/JsLoader.d.ts.map +1 -0
  48. package/dist/src/utils/migrations/JsLoader.js +33 -0
  49. package/dist/src/utils/migrations/JsLoader.js.map +1 -0
  50. package/dist/src/utils/migrations/JsonLoader.d.ts +9 -0
  51. package/dist/src/utils/migrations/JsonLoader.d.ts.map +1 -0
  52. package/dist/src/utils/migrations/JsonLoader.js +17 -0
  53. package/dist/src/utils/migrations/JsonLoader.js.map +1 -0
  54. package/dist/src/{commands → utils}/migrations/MigrationCreateHelper.d.ts +6 -3
  55. package/dist/src/utils/migrations/MigrationCreateHelper.d.ts.map +1 -0
  56. package/dist/src/{commands → utils}/migrations/MigrationCreateHelper.js +1 -1
  57. package/dist/src/utils/migrations/MigrationCreateHelper.js.map +1 -0
  58. package/dist/src/utils/migrations/MigrationCreator.d.ts +21 -0
  59. package/dist/src/utils/migrations/MigrationCreator.d.ts.map +1 -0
  60. package/dist/src/utils/migrations/MigrationCreator.js +47 -0
  61. package/dist/src/utils/migrations/MigrationCreator.js.map +1 -0
  62. package/dist/src/{commands → utils}/migrations/MigrationExecuteHelper.d.ts +8 -4
  63. package/dist/src/utils/migrations/MigrationExecuteHelper.d.ts.map +1 -0
  64. package/dist/src/{commands → utils}/migrations/MigrationExecuteHelper.js +57 -5
  65. package/dist/src/utils/migrations/MigrationExecuteHelper.js.map +1 -0
  66. package/dist/src/utils/migrations/MigrationFile.d.ts +36 -0
  67. package/dist/src/utils/migrations/MigrationFile.d.ts.map +1 -0
  68. package/dist/src/utils/migrations/MigrationFile.js +6 -0
  69. package/dist/src/utils/migrations/MigrationFile.js.map +1 -0
  70. package/dist/src/utils/migrations/MigrationFileLoader.d.ts +5 -0
  71. package/dist/src/utils/migrations/MigrationFileLoader.d.ts.map +1 -0
  72. package/dist/src/utils/migrations/MigrationFileLoader.js +3 -0
  73. package/dist/src/utils/migrations/MigrationFileLoader.js.map +1 -0
  74. package/dist/src/utils/migrations/MigrationFilesManager.d.ts +18 -0
  75. package/dist/src/utils/migrations/MigrationFilesManager.d.ts.map +1 -0
  76. package/dist/src/utils/migrations/MigrationFilesManager.js +114 -0
  77. package/dist/src/utils/migrations/MigrationFilesManager.js.map +1 -0
  78. package/dist/src/utils/migrations/MigrationParser.d.ts +6 -0
  79. package/dist/src/utils/migrations/MigrationParser.d.ts.map +1 -0
  80. package/dist/src/utils/migrations/MigrationParser.js +33 -0
  81. package/dist/src/utils/migrations/MigrationParser.js.map +1 -0
  82. package/dist/src/{MigrationsContainer.d.ts → utils/migrations/MigrationsContainer.d.ts} +5 -1
  83. package/dist/src/utils/migrations/MigrationsContainer.d.ts.map +1 -0
  84. package/dist/src/utils/migrations/MigrationsContainer.js +50 -0
  85. package/dist/src/utils/migrations/MigrationsContainer.js.map +1 -0
  86. package/dist/src/utils/migrations/MigrationsResolver.d.ts +14 -0
  87. package/dist/src/utils/migrations/MigrationsResolver.d.ts.map +1 -0
  88. package/dist/src/utils/migrations/MigrationsResolver.js +37 -0
  89. package/dist/src/utils/migrations/MigrationsResolver.js.map +1 -0
  90. package/dist/src/utils/migrations/SchemaVersionBuilder.d.ts +13 -0
  91. package/dist/src/utils/migrations/SchemaVersionBuilder.d.ts.map +1 -0
  92. package/dist/src/utils/migrations/SchemaVersionBuilder.js +26 -0
  93. package/dist/src/utils/migrations/SchemaVersionBuilder.js.map +1 -0
  94. package/dist/src/utils/{migrations.d.ts → migrations/migrations.d.ts} +18 -22
  95. package/dist/src/utils/migrations/migrations.d.ts.map +1 -0
  96. package/dist/src/utils/{migrations.js → migrations/migrations.js} +13 -28
  97. package/dist/src/utils/migrations/migrations.js.map +1 -0
  98. package/dist/src/utils/project/loadSchema.d.ts.map +1 -1
  99. package/dist/src/utils/project/loadSchema.js +5 -44
  100. package/dist/src/utils/project/loadSchema.js.map +1 -1
  101. package/dist/src/utils/project/resources/out.css +106 -124
  102. package/dist/src/utils/system/index.d.ts +3 -4
  103. package/dist/src/utils/system/index.d.ts.map +1 -1
  104. package/dist/src/utils/system/index.js.map +1 -1
  105. package/package.json +26 -27
  106. package/src/commands/deploy/DeployCommand.ts +9 -4
  107. package/src/commands/migrations/MigrationAmendCommand.ts +7 -11
  108. package/src/commands/migrations/MigrationBlankCommand.ts +46 -0
  109. package/src/commands/migrations/MigrationDescribeCommand.ts +7 -5
  110. package/src/commands/migrations/MigrationDiffCommand.ts +8 -3
  111. package/src/commands/migrations/MigrationExecuteCommand.ts +8 -3
  112. package/src/commands/migrations/MigrationRebaseCommand.ts +2 -3
  113. package/src/commands/migrations/MigrationStatusCommand.ts +6 -9
  114. package/src/commands/migrations/index.ts +1 -0
  115. package/src/commands/project/ProjectValidateCommand.ts +2 -2
  116. package/src/run.ts +2 -0
  117. package/src/tsconfig.json +1 -0
  118. package/src/utils/admin.ts +0 -1
  119. package/src/utils/esbuild.ts +14 -0
  120. package/src/utils/migrations/JsLoader.ts +37 -0
  121. package/src/utils/migrations/JsonLoader.ts +18 -0
  122. package/src/{commands → utils}/migrations/MigrationCreateHelper.ts +7 -11
  123. package/src/utils/migrations/MigrationCreator.ts +60 -0
  124. package/src/{commands → utils}/migrations/MigrationExecuteHelper.ts +68 -9
  125. package/src/utils/migrations/MigrationFile.ts +52 -0
  126. package/src/utils/migrations/MigrationFileLoader.ts +5 -0
  127. package/src/utils/migrations/MigrationFilesManager.ts +102 -0
  128. package/src/utils/migrations/MigrationParser.ts +32 -0
  129. package/src/{MigrationsContainer.ts → utils/migrations/MigrationsContainer.ts} +29 -12
  130. package/src/utils/migrations/MigrationsResolver.ts +44 -0
  131. package/src/utils/migrations/SchemaVersionBuilder.ts +33 -0
  132. package/src/utils/{migrations.ts → migrations/migrations.ts} +33 -57
  133. package/src/utils/project/loadSchema.ts +7 -21
  134. package/src/utils/system/index.ts +3 -4
  135. package/dist/src/MigrationsContainer.d.ts.map +0 -1
  136. package/dist/src/MigrationsContainer.js +0 -25
  137. package/dist/src/MigrationsContainer.js.map +0 -1
  138. package/dist/src/commands/migrations/MigrationCreateHelper.d.ts.map +0 -1
  139. package/dist/src/commands/migrations/MigrationCreateHelper.js.map +0 -1
  140. package/dist/src/commands/migrations/MigrationExecuteHelper.d.ts.map +0 -1
  141. package/dist/src/commands/migrations/MigrationExecuteHelper.js.map +0 -1
  142. package/dist/src/utils/migrations.d.ts.map +0 -1
  143. 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 { MigrationCreator, MigrationDescriber, MigrationFilesManager, MigrationsResolver, SchemaDiffer, SchemaMigrator, SchemaVersionBuilder } from '@contember/schema-migrations';
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, MigrationsResolver } from '@contember/schema-migrations';
1
+ import { Migration, MigrationDescriber, MigrationInfo } from '@contember/schema-migrations';
2
2
  import { Schema } from '@contember/schema';
3
- export declare const getLatestMigration: (migrationsResolver: MigrationsResolver) => Promise<Migration | null>;
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 MigrationToExecuteOkStatus extends MigrationInfo {
28
- state: MigrationState.TO_EXECUTE_OK;
29
- localMigration: Migration;
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 MigrationInfo {
32
- state: MigrationState.TO_EXECUTE_ERROR;
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 MigrationInfo {
37
- state: MigrationState.EXECUTED_OK;
35
+ interface MigrationExecutedOkStatus extends MigrationStatusBase<MigrationState.EXECUTED_OK> {
38
36
  executedMigration: ExecutedMigrationInfo;
39
- localMigration: Migration;
37
+ localMigration: MigrationFile;
40
38
  }
41
- interface MigrationExecutedMissingStatus extends MigrationInfo {
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 MigrationInfo {
47
- state: MigrationState.EXECUTED_ERROR;
43
+ interface MigrationExecutedErrorStatus extends MigrationStatusBase<MigrationState.EXECUTED_ERROR> {
48
44
  executedMigration: ExecutedMigrationInfo;
49
- localMigration: Migration;
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: Migration[], force?: boolean) => {
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 = exports.findMigration = exports.getMigrationByName = exports.getLatestMigration = void 0;
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("./assertNever");
10
+ const assertNever_1 = require("../assertNever");
11
11
  const database_1 = require("@contember/database");
12
- const getLatestMigration = async (migrationsResolver) => {
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 localChecksum = (0, schema_migrations_1.calculateMigrationChecksum)(localMigration);
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;AAM1C,eAAO,MAAM,UAAU,YAAmB,OAAO,KAAG,QAAQ,MAAM,CAoBjE,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 response = await esbuild.build({
33
- entryPoints: [(0, node_path_1.join)(project.apiDir, 'index.ts')],
34
- platform: 'node',
35
- bundle: true,
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":";;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,iDAAkC;AAClC,yCAAgC;AAChC,6BAA4B;AAC5B,0DAAoD;AAE7C,MAAM,UAAU,GAAG,KAAK,EAAE,OAAgB,EAAmB,EAAE;IACrE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC;QACpC,WAAW,EAAE,CAAC,IAAA,gBAAI,EAAC,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAC/C,QAAQ,EAAE,MAAM;QAChB,MAAM,EAAE,IAAI;QACZ,WAAW,EAAE,IAAI;QACjB,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;QAC1B,QAAQ,EAAE,CAAC,kBAAkB,EAAE,OAAO,EAAE,mBAAmB,CAAC;KAC5D,CAAC,CAAA;IACF,MAAM,SAAS,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAC9C,MAAM,EAAE,GAAG,IAAI,YAAM,CAAC;QACrB,OAAO,EAAE;YACR,OAAO,EAAE,CAAC,GAAG,CAAC;SACd;KACD,CAAC,CAAA;IACF,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,OAAO,CAAA;IAC9C,gDAAgD;IAChD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;IACtD,OAAO,IAAA,yBAAU,EAAC,WAAW,CAAC,CAAA;AAC/B,CAAC,CAAA;AApBY,QAAA,UAAU,cAoBtB"}
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"}