@contember/schema-migrations 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 (136) hide show
  1. package/dist/src/Migration.d.ts +1 -1
  2. package/dist/src/Migration.d.ts.map +1 -1
  3. package/dist/src/SchemaDiffer.d.ts.map +1 -1
  4. package/dist/src/SchemaDiffer.js +2 -0
  5. package/dist/src/SchemaDiffer.js.map +1 -1
  6. package/dist/src/index.d.ts +0 -4
  7. package/dist/src/index.d.ts.map +1 -1
  8. package/dist/src/index.js +0 -4
  9. package/dist/src/index.js.map +1 -1
  10. package/dist/src/modifications/ModificationHandlerFactory.d.ts.map +1 -1
  11. package/dist/src/modifications/ModificationHandlerFactory.js +2 -0
  12. package/dist/src/modifications/ModificationHandlerFactory.js.map +1 -1
  13. package/dist/src/modifications/acl/PatchAclSchemaModification.d.ts +1 -2
  14. package/dist/src/modifications/acl/PatchAclSchemaModification.d.ts.map +1 -1
  15. package/dist/src/modifications/acl/PatchAclSchemaModification.js +1 -1
  16. package/dist/src/modifications/acl/PatchAclSchemaModification.js.map +1 -1
  17. package/dist/src/modifications/acl/UpdateAclSchemaModification.d.ts +1 -2
  18. package/dist/src/modifications/acl/UpdateAclSchemaModification.d.ts.map +1 -1
  19. package/dist/src/modifications/acl/UpdateAclSchemaModification.js +1 -1
  20. package/dist/src/modifications/acl/UpdateAclSchemaModification.js.map +1 -1
  21. package/dist/src/modifications/actions/CreateTargetModification.d.ts +1 -2
  22. package/dist/src/modifications/actions/CreateTargetModification.d.ts.map +1 -1
  23. package/dist/src/modifications/actions/CreateTargetModification.js +1 -1
  24. package/dist/src/modifications/actions/CreateTargetModification.js.map +1 -1
  25. package/dist/src/modifications/actions/CreateTriggerModification.d.ts +1 -2
  26. package/dist/src/modifications/actions/CreateTriggerModification.d.ts.map +1 -1
  27. package/dist/src/modifications/actions/CreateTriggerModification.js +1 -1
  28. package/dist/src/modifications/actions/CreateTriggerModification.js.map +1 -1
  29. package/dist/src/modifications/actions/RemoveTargetModification.d.ts +1 -2
  30. package/dist/src/modifications/actions/RemoveTargetModification.d.ts.map +1 -1
  31. package/dist/src/modifications/actions/RemoveTargetModification.js +1 -1
  32. package/dist/src/modifications/actions/RemoveTargetModification.js.map +1 -1
  33. package/dist/src/modifications/actions/RemoveTriggerModification.d.ts +1 -2
  34. package/dist/src/modifications/actions/RemoveTriggerModification.d.ts.map +1 -1
  35. package/dist/src/modifications/actions/RemoveTriggerModification.js +1 -1
  36. package/dist/src/modifications/actions/RemoveTriggerModification.js.map +1 -1
  37. package/dist/src/modifications/actions/UpdateTargetModification.d.ts +1 -2
  38. package/dist/src/modifications/actions/UpdateTargetModification.d.ts.map +1 -1
  39. package/dist/src/modifications/actions/UpdateTargetModification.js +1 -1
  40. package/dist/src/modifications/actions/UpdateTargetModification.js.map +1 -1
  41. package/dist/src/modifications/actions/UpdateTriggerModification.d.ts +1 -2
  42. package/dist/src/modifications/actions/UpdateTriggerModification.d.ts.map +1 -1
  43. package/dist/src/modifications/actions/UpdateTriggerModification.js +1 -1
  44. package/dist/src/modifications/actions/UpdateTriggerModification.js.map +1 -1
  45. package/dist/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.d.ts +28 -0
  46. package/dist/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.d.ts.map +1 -0
  47. package/dist/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.js +98 -0
  48. package/dist/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.js.map +1 -0
  49. package/dist/src/modifications/relations/ConvertOneToManyRelationModification.d.ts.map +1 -1
  50. package/dist/src/modifications/relations/ConvertOneToManyRelationModification.js +4 -2
  51. package/dist/src/modifications/relations/ConvertOneToManyRelationModification.js.map +1 -1
  52. package/dist/src/modifications/relations/CreateRelationInverseSideModification.d.ts +1 -2
  53. package/dist/src/modifications/relations/CreateRelationInverseSideModification.d.ts.map +1 -1
  54. package/dist/src/modifications/relations/CreateRelationInverseSideModification.js +1 -1
  55. package/dist/src/modifications/relations/CreateRelationInverseSideModification.js.map +1 -1
  56. package/dist/src/modifications/relations/DisableOrphanRemovalModification.d.ts +1 -2
  57. package/dist/src/modifications/relations/DisableOrphanRemovalModification.d.ts.map +1 -1
  58. package/dist/src/modifications/relations/DisableOrphanRemovalModification.js +1 -1
  59. package/dist/src/modifications/relations/DisableOrphanRemovalModification.js.map +1 -1
  60. package/dist/src/modifications/relations/EnableOrphanRemovalModification.d.ts +1 -2
  61. package/dist/src/modifications/relations/EnableOrphanRemovalModification.d.ts.map +1 -1
  62. package/dist/src/modifications/relations/EnableOrphanRemovalModification.js +1 -1
  63. package/dist/src/modifications/relations/EnableOrphanRemovalModification.js.map +1 -1
  64. package/dist/src/modifications/relations/UpdateRelationOrderByModification.d.ts +1 -2
  65. package/dist/src/modifications/relations/UpdateRelationOrderByModification.d.ts.map +1 -1
  66. package/dist/src/modifications/relations/UpdateRelationOrderByModification.js +1 -1
  67. package/dist/src/modifications/relations/UpdateRelationOrderByModification.js.map +1 -1
  68. package/dist/src/modifications/settings/UpdateSettingsModification.d.ts +1 -2
  69. package/dist/src/modifications/settings/UpdateSettingsModification.d.ts.map +1 -1
  70. package/dist/src/modifications/settings/UpdateSettingsModification.js +1 -1
  71. package/dist/src/modifications/settings/UpdateSettingsModification.js.map +1 -1
  72. package/dist/src/modifications/validation/PatchValidationSchemaModification.d.ts +1 -2
  73. package/dist/src/modifications/validation/PatchValidationSchemaModification.d.ts.map +1 -1
  74. package/dist/src/modifications/validation/PatchValidationSchemaModification.js +1 -1
  75. package/dist/src/modifications/validation/PatchValidationSchemaModification.js.map +1 -1
  76. package/dist/src/modifications/validation/UpdateValidationSchemaModification.d.ts +1 -2
  77. package/dist/src/modifications/validation/UpdateValidationSchemaModification.d.ts.map +1 -1
  78. package/dist/src/modifications/validation/UpdateValidationSchemaModification.js +1 -1
  79. package/dist/src/modifications/validation/UpdateValidationSchemaModification.js.map +1 -1
  80. package/dist/src/tsconfig.tsbuildinfo +1 -1
  81. package/dist/tests/cases/integration/convertManyHasOneToOneHasOneRelation.test.d.ts +2 -0
  82. package/dist/tests/cases/integration/convertManyHasOneToOneHasOneRelation.test.d.ts.map +1 -0
  83. package/dist/tests/cases/integration/convertManyHasOneToOneHasOneRelation.test.js +59 -0
  84. package/dist/tests/cases/integration/convertManyHasOneToOneHasOneRelation.test.js.map +1 -0
  85. package/dist/tests/cases/integration/convertOneToManyRelation.test.js +37 -0
  86. package/dist/tests/cases/integration/convertOneToManyRelation.test.js.map +1 -1
  87. package/dist/tests/tsconfig.tsbuildinfo +1 -1
  88. package/package.json +7 -7
  89. package/src/Migration.ts +1 -1
  90. package/src/SchemaDiffer.ts +2 -0
  91. package/src/index.ts +0 -4
  92. package/src/modifications/ModificationHandlerFactory.ts +2 -0
  93. package/src/modifications/acl/PatchAclSchemaModification.ts +1 -2
  94. package/src/modifications/acl/UpdateAclSchemaModification.ts +1 -2
  95. package/src/modifications/actions/CreateTargetModification.ts +1 -2
  96. package/src/modifications/actions/CreateTriggerModification.ts +1 -2
  97. package/src/modifications/actions/RemoveTargetModification.ts +1 -2
  98. package/src/modifications/actions/RemoveTriggerModification.ts +1 -2
  99. package/src/modifications/actions/UpdateTargetModification.ts +1 -3
  100. package/src/modifications/actions/UpdateTriggerModification.ts +1 -2
  101. package/src/modifications/relations/ConvertOneHasManyToOneHasOneRelationModification.ts +145 -0
  102. package/src/modifications/relations/ConvertOneToManyRelationModification.ts +3 -2
  103. package/src/modifications/relations/CreateRelationInverseSideModification.ts +1 -2
  104. package/src/modifications/relations/DisableOrphanRemovalModification.ts +1 -2
  105. package/src/modifications/relations/EnableOrphanRemovalModification.ts +1 -2
  106. package/src/modifications/relations/UpdateRelationOrderByModification.ts +1 -2
  107. package/src/modifications/settings/UpdateSettingsModification.ts +1 -2
  108. package/src/modifications/validation/PatchValidationSchemaModification.ts +1 -2
  109. package/src/modifications/validation/UpdateValidationSchemaModification.ts +1 -2
  110. package/tests/cases/integration/convertManyHasOneToOneHasOneRelation.test.ts +48 -0
  111. package/tests/cases/integration/convertOneToManyRelation.test.ts +42 -0
  112. package/dist/src/MigrationCreator.d.ts +0 -20
  113. package/dist/src/MigrationCreator.d.ts.map +0 -1
  114. package/dist/src/MigrationCreator.js +0 -37
  115. package/dist/src/MigrationCreator.js.map +0 -1
  116. package/dist/src/MigrationFilesManager.d.ts +0 -22
  117. package/dist/src/MigrationFilesManager.d.ts.map +0 -1
  118. package/dist/src/MigrationFilesManager.js +0 -99
  119. package/dist/src/MigrationFilesManager.js.map +0 -1
  120. package/dist/src/MigrationsResolver.d.ts +0 -9
  121. package/dist/src/MigrationsResolver.d.ts.map +0 -1
  122. package/dist/src/MigrationsResolver.js +0 -27
  123. package/dist/src/MigrationsResolver.js.map +0 -1
  124. package/dist/src/SchemaVersionBuilder.d.ts +0 -13
  125. package/dist/src/SchemaVersionBuilder.d.ts.map +0 -1
  126. package/dist/src/SchemaVersionBuilder.js +0 -26
  127. package/dist/src/SchemaVersionBuilder.js.map +0 -1
  128. package/dist/tests/scripts/checkCreateConsistentMigrations.d.ts +0 -2
  129. package/dist/tests/scripts/checkCreateConsistentMigrations.d.ts.map +0 -1
  130. package/dist/tests/scripts/checkCreateConsistentMigrations.js +0 -28
  131. package/dist/tests/scripts/checkCreateConsistentMigrations.js.map +0 -1
  132. package/src/MigrationCreator.ts +0 -50
  133. package/src/MigrationFilesManager.ts +0 -91
  134. package/src/MigrationsResolver.ts +0 -25
  135. package/src/SchemaVersionBuilder.ts +0 -33
  136. package/tests/scripts/checkCreateConsistentMigrations.ts +0 -32
@@ -1,22 +0,0 @@
1
- declare class MigrationFilesManager {
2
- readonly directory: string;
3
- constructor(directory: string);
4
- createFile(content: string, name: string): Promise<string>;
5
- removeFile(name: string): Promise<void>;
6
- moveFile(oldName: string, newName: string): Promise<void>;
7
- createDirIfNotExist(): Promise<void>;
8
- listFiles(): Promise<string[]>;
9
- private tryReadDir;
10
- readFiles(predicate?: (version: string) => boolean): Promise<MigrationFilesManager.MigrationFile[]>;
11
- static createForProject(projectsDirectory: string, projectSlug: string): MigrationFilesManager;
12
- private formatPath;
13
- }
14
- declare namespace MigrationFilesManager {
15
- type MigrationFile = {
16
- filename: string;
17
- path: string;
18
- content: string;
19
- };
20
- }
21
- export { MigrationFilesManager };
22
- //# sourceMappingURL=MigrationFilesManager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MigrationFilesManager.d.ts","sourceRoot":"","sources":["../../src/MigrationFilesManager.ts"],"names":[],"mappings":"AAIA,cAAM,qBAAqB;aACE,SAAS,EAAE,MAAM;gBAAjB,SAAS,EAAE,MAAM;IAEhC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAM1D,UAAU,CAAC,IAAI,EAAE,MAAM;IAKvB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAIzC,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAUpC,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAa7B,UAAU;IAWX,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC,aAAa,EAAE,CAAC;WAclG,gBAAgB,CAAC,iBAAiB,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,qBAAqB;IAKrG,OAAO,CAAC,UAAU;CAKlB;AAED,kBAAU,qBAAqB,CAAC;IAC/B,KAAY,aAAa,GAAG;QAC3B,QAAQ,EAAE,MAAM,CAAA;QAChB,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,EAAE,MAAM,CAAA;KACf,CAAA;CACD;AAED,OAAO,EAAE,qBAAqB,EAAE,CAAA"}
@@ -1,99 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- 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 path = __importStar(require("node:path"));
30
- class MigrationFilesManager {
31
- constructor(directory) {
32
- this.directory = directory;
33
- }
34
- async createFile(content, name) {
35
- const path = this.formatPath(name);
36
- await fs.writeFile(path, content, { encoding: 'utf8' });
37
- return await fs.realpath(path);
38
- }
39
- async removeFile(name) {
40
- const path = this.formatPath(name);
41
- await fs.unlink(path);
42
- }
43
- async moveFile(oldName, newName) {
44
- await fs.rename(this.formatPath(oldName), this.formatPath(newName));
45
- }
46
- async createDirIfNotExist() {
47
- try {
48
- await fs.mkdir(this.directory);
49
- }
50
- catch (e) {
51
- if (!(e instanceof Error) || !('code' in e) || e.code !== 'EEXIST') {
52
- throw e;
53
- }
54
- }
55
- }
56
- async listFiles() {
57
- const files = await this.tryReadDir();
58
- const filteredFiles = await Promise.all(files
59
- .filter(file => file.endsWith(`.json`))
60
- .filter(async (file) => {
61
- return (await fs.lstat(`${this.directory}/${file}`)).isFile();
62
- }));
63
- return filteredFiles.sort();
64
- }
65
- async tryReadDir() {
66
- try {
67
- return await fs.readdir(this.directory);
68
- }
69
- catch (e) {
70
- if (e instanceof Error && 'code' in e && e.code === 'ENOENT') {
71
- return [];
72
- }
73
- throw e;
74
- }
75
- }
76
- async readFiles(predicate) {
77
- let files = await this.listFiles();
78
- if (predicate) {
79
- files = files.filter(filename => predicate(engine_common_1.MigrationVersionHelper.extractVersion(filename)));
80
- }
81
- const filesWithContent = files.map(async (filename) => ({
82
- filename: filename,
83
- path: `${this.directory}/${filename}`,
84
- content: await fs.readFile(`${this.directory}/${filename}`, { encoding: 'utf8' }),
85
- }));
86
- return await Promise.all(filesWithContent);
87
- }
88
- static createForProject(projectsDirectory, projectSlug) {
89
- const migrationsDir = path.join(projectsDirectory, projectSlug, 'migrations');
90
- return new MigrationFilesManager(migrationsDir);
91
- }
92
- formatPath(version) {
93
- const filename = `${version}.json`;
94
- const path = `${this.directory}/${filename}`;
95
- return path;
96
- }
97
- }
98
- exports.MigrationFilesManager = MigrationFilesManager;
99
- //# sourceMappingURL=MigrationFilesManager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MigrationFilesManager.js","sourceRoot":"","sources":["../../src/MigrationFilesManager.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- import { MigrationFilesManager } from './MigrationFilesManager';
2
- import { Migration } from './Migration';
3
- export declare class MigrationsResolver {
4
- private readonly migrationFilesManager;
5
- constructor(migrationFilesManager: MigrationFilesManager);
6
- get directory(): string;
7
- getMigrations(): Promise<Migration[]>;
8
- }
9
- //# sourceMappingURL=MigrationsResolver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MigrationsResolver.d.ts","sourceRoot":"","sources":["../../src/MigrationsResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAG/D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,qBAAa,kBAAkB;IAClB,OAAO,CAAC,QAAQ,CAAC,qBAAqB;gBAArB,qBAAqB,EAAE,qBAAqB;IAEzE,IAAW,SAAS,IAAI,MAAM,CAE7B;IAEY,aAAa,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;CAYlD"}
@@ -1,27 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MigrationsResolver = void 0;
4
- const ModificationVersions_1 = require("./modifications/ModificationVersions");
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 getMigrations() {
14
- return (await this.migrationFilesManager.readFiles()).map(({ filename, content }) => {
15
- const parsed = JSON.parse(content);
16
- return {
17
- version: engine_common_1.MigrationVersionHelper.extractVersion(filename),
18
- name: engine_common_1.MigrationVersionHelper.extractName(filename),
19
- formatVersion: parsed.formatVersion || ModificationVersions_1.VERSION_INITIAL,
20
- modifications: parsed.modifications,
21
- ...(parsed.skippedErrors ? { skippedErrors: parsed.skippedErrors } : {}),
22
- };
23
- });
24
- }
25
- }
26
- exports.MigrationsResolver = MigrationsResolver;
27
- //# sourceMappingURL=MigrationsResolver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MigrationsResolver.js","sourceRoot":"","sources":["../../src/MigrationsResolver.ts"],"names":[],"mappings":";;;AACA,+EAAsE;AACtE,4DAAiE;AAGjE,MAAa,kBAAkB;IAC9B,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,aAAa;QACzB,OAAO,CAAC,MAAM,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;YACnF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAClC,OAAO;gBACN,OAAO,EAAE,sCAAsB,CAAC,cAAc,CAAC,QAAQ,CAAC;gBACxD,IAAI,EAAE,sCAAsB,CAAC,WAAW,CAAC,QAAQ,CAAC;gBAClD,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,sCAAe;gBACtD,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACxE,CAAA;QACF,CAAC,CAAC,CAAA;IACH,CAAC;CACD;AAnBD,gDAmBC"}
@@ -1,13 +0,0 @@
1
- import { Schema } from '@contember/schema';
2
- import { SchemaMigrator } from './SchemaMigrator';
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"SchemaVersionBuilder.d.ts","sourceRoot":"","sources":["../../src/SchemaVersionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,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"}
@@ -1,26 +0,0 @@
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.getMigrations())
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"SchemaVersionBuilder.js","sourceRoot":"","sources":["../../src/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,aAAa,EAAE,CAAC;aACpD,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,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=checkCreateConsistentMigrations.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"checkCreateConsistentMigrations.d.ts","sourceRoot":"","sources":["../../../tests/scripts/checkCreateConsistentMigrations.ts"],"names":[],"mappings":""}
@@ -1,28 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const node_path_1 = require("node:path");
4
- const src_1 = require("../../src");
5
- const schema_utils_1 = require("@contember/schema-utils");
6
- (async () => {
7
- // eslint-disable-next-line no-console
8
- console.log((0, node_path_1.relative)(process.cwd(), process.argv[2]));
9
- const migrationsResolver = new src_1.MigrationsResolver(new src_1.MigrationFilesManager((0, node_path_1.relative)(process.cwd(), process.argv[2])));
10
- const modificationHandlerFactory = new src_1.ModificationHandlerFactory(src_1.ModificationHandlerFactory.defaultFactoryMap);
11
- const differ = new src_1.SchemaDiffer(new src_1.SchemaMigrator(modificationHandlerFactory));
12
- const migrator = new src_1.SchemaMigrator(modificationHandlerFactory);
13
- let schema = schema_utils_1.emptySchema;
14
- for (const migration of await migrationsResolver.getMigrations()) {
15
- const nextSchema = migrator.applyModifications(schema, migration.modifications, migration.formatVersion);
16
- (0, schema_utils_1.schemaType)(nextSchema);
17
- const nextSchemaWithoutMeta = nextSchema;
18
- differ.diffSchemas(schema, nextSchemaWithoutMeta);
19
- schema = nextSchema;
20
- }
21
- // eslint-disable-next-line no-console
22
- console.log('OK');
23
- })().catch(e => {
24
- // eslint-disable-next-line no-console
25
- console.error(e);
26
- process.exit(1);
27
- });
28
- //# sourceMappingURL=checkCreateConsistentMigrations.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"checkCreateConsistentMigrations.js","sourceRoot":"","sources":["../../../tests/scripts/checkCreateConsistentMigrations.ts"],"names":[],"mappings":";;AAAA,yCAAoC;AACpC,mCAMkB;AAClB,0DACC;AAAA,CAAC,KAAK,IAAI,EAAE;IACZ,sCAAsC;IACtC,OAAO,CAAC,GAAG,CAAC,IAAA,oBAAQ,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACrD,MAAM,kBAAkB,GAAG,IAAI,wBAAkB,CAAC,IAAI,2BAAqB,CAAC,IAAA,oBAAQ,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACtH,MAAM,0BAA0B,GAAG,IAAI,gCAA0B,CAAC,gCAA0B,CAAC,iBAAiB,CAAC,CAAA;IAC/G,MAAM,MAAM,GAAG,IAAI,kBAAY,CAAC,IAAI,oBAAc,CAAC,0BAA0B,CAAC,CAAC,CAAA;IAC/E,MAAM,QAAQ,GAAG,IAAI,oBAAc,CAAC,0BAA0B,CAAC,CAAA;IAC/D,IAAI,MAAM,GAAG,0BAAW,CAAA;IACxB,KAAK,MAAM,SAAS,IAAI,MAAM,kBAAkB,CAAC,aAAa,EAAE,EAAE;QACjE,MAAM,UAAU,GAAG,QAAQ,CAAC,kBAAkB,CAAC,MAAM,EAAE,SAAS,CAAC,aAAa,EAAE,SAAS,CAAC,aAAa,CAAC,CAAA;QACxG,IAAA,yBAAU,EAAC,UAAU,CAAC,CAAA;QACtB,MAAM,qBAAqB,GAAG,UAAU,CAAA;QACxC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAA;QAEjD,MAAM,GAAG,UAAU,CAAA;KACnB;IACD,sCAAsC;IACtC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;AAClB,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;IACd,sCAAsC;IACtC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAChB,CAAC,CAAC,CAAA"}
@@ -1,50 +0,0 @@
1
- import { MigrationFilesManager } from './MigrationFilesManager'
2
- import { Schema } from '@contember/schema'
3
- import { SchemaDiffer } from './SchemaDiffer'
4
- import { VERSION_LATEST } from './modifications/ModificationVersions'
5
- import { Migration } from './Migration'
6
- import { MigrationVersionHelper } from '@contember/engine-common'
7
-
8
- export class MigrationCreator {
9
- constructor(
10
- private readonly migrationFilesManager: MigrationFilesManager,
11
- private readonly schemaDiffer: SchemaDiffer,
12
- ) {}
13
-
14
- async prepareMigration(
15
- initialSchema: Schema,
16
- newSchema: Schema,
17
- migrationName: string,
18
- { skipInitialSchemaValidation = false }: { skipInitialSchemaValidation?: boolean } = {},
19
- ): Promise<{ migration: Migration; initialSchema: Schema } | null> {
20
- await this.migrationFilesManager.createDirIfNotExist()
21
-
22
- const modifications = this.schemaDiffer.diffSchemas(initialSchema, newSchema, { skipInitialSchemaValidation })
23
- if (modifications.length === 0) {
24
- return null
25
- }
26
-
27
- const migration = this.createMigration(modifications, migrationName)
28
-
29
- return { initialSchema, migration }
30
- }
31
-
32
- async saveMigration(migration: Migration): Promise<string> {
33
- const jsonDiff = MigrationCreator.createContent(migration)
34
- const filename = await this.migrationFilesManager.createFile(jsonDiff, migration.name)
35
- return filename
36
- }
37
-
38
- async removeMigration(name: string): Promise<void> {
39
- await this.migrationFilesManager.removeFile(name)
40
- }
41
-
42
- private createMigration(modifications: Migration.Modification[], name: string): Migration {
43
- const [version, fullName] = MigrationVersionHelper.createVersion(name)
44
- return { formatVersion: VERSION_LATEST, modifications, version, name: fullName }
45
- }
46
-
47
- public static createContent({ modifications, formatVersion }: Migration): string {
48
- return JSON.stringify({ formatVersion, modifications }, undefined, '\t') + '\n'
49
- }
50
- }
@@ -1,91 +0,0 @@
1
- import { MigrationVersionHelper } from '@contember/engine-common'
2
- import * as fs from 'node:fs/promises'
3
- import * as path from 'node:path'
4
-
5
- class MigrationFilesManager {
6
- constructor(public readonly directory: string) {}
7
-
8
- public async createFile(content: string, name: string): Promise<string> {
9
- const path = this.formatPath(name)
10
- await fs.writeFile(path, content, { encoding: 'utf8' })
11
- return await fs.realpath(path)
12
- }
13
-
14
- public async removeFile(name: string) {
15
- const path = this.formatPath(name)
16
- await fs.unlink(path)
17
- }
18
-
19
- public async moveFile(oldName: string, newName: string) {
20
- await fs.rename(this.formatPath(oldName), this.formatPath(newName))
21
- }
22
-
23
- public async createDirIfNotExist(): Promise<void> {
24
- try {
25
- await fs.mkdir(this.directory)
26
- } catch (e) {
27
- if (!(e instanceof Error) || !('code' in e) || (e as any).code !== 'EEXIST') {
28
- throw e
29
- }
30
- }
31
- }
32
-
33
- public async listFiles(): Promise<string[]> {
34
- const files: string[] = await this.tryReadDir()
35
-
36
- const filteredFiles: string[] = await Promise.all(
37
- files
38
- .filter(file => file.endsWith(`.json`))
39
- .filter(async file => {
40
- return (await fs.lstat(`${this.directory}/${file}`)).isFile()
41
- }),
42
- )
43
- return filteredFiles.sort()
44
- }
45
-
46
- private async tryReadDir(): Promise<string[]> {
47
- try {
48
- return await fs.readdir(this.directory)
49
- } catch (e) {
50
- if (e instanceof Error && 'code' in e && (e as any).code === 'ENOENT') {
51
- return []
52
- }
53
- throw e
54
- }
55
- }
56
-
57
- public async readFiles(predicate?: (version: string) => boolean): Promise<MigrationFilesManager.MigrationFile[]> {
58
- let files = await this.listFiles()
59
- if (predicate) {
60
- files = files.filter(filename => predicate(MigrationVersionHelper.extractVersion(filename)))
61
- }
62
- const filesWithContent = files.map(async filename => ({
63
- filename: filename,
64
- path: `${this.directory}/${filename}`,
65
- content: await fs.readFile(`${this.directory}/${filename}`, { encoding: 'utf8' }),
66
- }))
67
-
68
- return await Promise.all(filesWithContent)
69
- }
70
-
71
- public static createForProject(projectsDirectory: string, projectSlug: string): MigrationFilesManager {
72
- const migrationsDir = path.join(projectsDirectory, projectSlug, 'migrations')
73
- return new MigrationFilesManager(migrationsDir)
74
- }
75
-
76
- private formatPath(version: string) {
77
- const filename = `${version}.json`
78
- const path = `${this.directory}/${filename}`
79
- return path
80
- }
81
- }
82
-
83
- namespace MigrationFilesManager {
84
- export type MigrationFile = {
85
- filename: string
86
- path: string
87
- content: string
88
- }
89
- }
90
-
91
- export { MigrationFilesManager }
@@ -1,25 +0,0 @@
1
- import { MigrationFilesManager } from './MigrationFilesManager'
2
- import { VERSION_INITIAL } from './modifications/ModificationVersions'
3
- import { MigrationVersionHelper } from '@contember/engine-common'
4
- import { Migration } from './Migration'
5
-
6
- export class MigrationsResolver {
7
- constructor(private readonly migrationFilesManager: MigrationFilesManager) {}
8
-
9
- public get directory(): string {
10
- return this.migrationFilesManager.directory
11
- }
12
-
13
- public async getMigrations(): Promise<Migration[]> {
14
- return (await this.migrationFilesManager.readFiles()).map(({ filename, content }) => {
15
- const parsed = JSON.parse(content)
16
- return {
17
- version: MigrationVersionHelper.extractVersion(filename),
18
- name: MigrationVersionHelper.extractName(filename),
19
- formatVersion: parsed.formatVersion || VERSION_INITIAL,
20
- modifications: parsed.modifications,
21
- ...(parsed.skippedErrors ? { skippedErrors: parsed.skippedErrors } : {}),
22
- }
23
- })
24
- }
25
- }
@@ -1,33 +0,0 @@
1
- import { Schema } from '@contember/schema'
2
- import { emptySchema } from '@contember/schema-utils'
3
- import { SchemaMigrator } from './SchemaMigrator'
4
- import { MigrationsResolver } from './MigrationsResolver'
5
-
6
- export class SchemaVersionBuilder {
7
- constructor(
8
- private readonly migrationsResolver: MigrationsResolver,
9
- private readonly schemaMigrator: SchemaMigrator,
10
- ) {}
11
-
12
- async buildSchema(targetVersion?: string): Promise<Schema> {
13
- return this.buildSchemaAdvanced(emptySchema, version => !targetVersion || version <= targetVersion)
14
- }
15
-
16
- async buildSchemaUntil(targetVersion: string): Promise<Schema> {
17
- return this.buildSchemaAdvanced(emptySchema, version => version < targetVersion)
18
- }
19
-
20
- async continue(schema: Schema, previousVersion: string | null, targetVersion: string): Promise<Schema> {
21
- return this.buildSchemaAdvanced(schema, version => version <= targetVersion && version > (previousVersion || ''))
22
- }
23
-
24
- public async buildSchemaAdvanced(initialSchema: Schema, condition: (version: string) => boolean): Promise<Schema> {
25
- return (await this.migrationsResolver.getMigrations())
26
- .filter(({ version }) => condition(version))
27
- .reduce<Schema>(
28
- (schema, { modifications, formatVersion }) =>
29
- this.schemaMigrator.applyModifications(schema, modifications, formatVersion),
30
- initialSchema,
31
- )
32
- }
33
- }
@@ -1,32 +0,0 @@
1
- import { relative } from 'node:path'
2
- import {
3
- MigrationFilesManager,
4
- MigrationsResolver,
5
- ModificationHandlerFactory,
6
- SchemaDiffer,
7
- SchemaMigrator,
8
- } from '../../src'
9
- import { emptySchema, schemaType } from '@contember/schema-utils'
10
- ;(async () => {
11
- // eslint-disable-next-line no-console
12
- console.log(relative(process.cwd(), process.argv[2]))
13
- const migrationsResolver = new MigrationsResolver(new MigrationFilesManager(relative(process.cwd(), process.argv[2])))
14
- const modificationHandlerFactory = new ModificationHandlerFactory(ModificationHandlerFactory.defaultFactoryMap)
15
- const differ = new SchemaDiffer(new SchemaMigrator(modificationHandlerFactory))
16
- const migrator = new SchemaMigrator(modificationHandlerFactory)
17
- let schema = emptySchema
18
- for (const migration of await migrationsResolver.getMigrations()) {
19
- const nextSchema = migrator.applyModifications(schema, migration.modifications, migration.formatVersion)
20
- schemaType(nextSchema)
21
- const nextSchemaWithoutMeta = nextSchema
22
- differ.diffSchemas(schema, nextSchemaWithoutMeta)
23
-
24
- schema = nextSchema
25
- }
26
- // eslint-disable-next-line no-console
27
- console.log('OK')
28
- })().catch(e => {
29
- // eslint-disable-next-line no-console
30
- console.error(e)
31
- process.exit(1)
32
- })