@pristine-ts/mysql-cli 2.0.16

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 (175) hide show
  1. package/LICENSE +201 -0
  2. package/dist/lib/cjs/commands/commands.js +25 -0
  3. package/dist/lib/cjs/commands/commands.js.map +1 -0
  4. package/dist/lib/cjs/commands/mysql-migrate-create.command-options.js +37 -0
  5. package/dist/lib/cjs/commands/mysql-migrate-create.command-options.js.map +1 -0
  6. package/dist/lib/cjs/commands/mysql-migrate-create.command.js +120 -0
  7. package/dist/lib/cjs/commands/mysql-migrate-create.command.js.map +1 -0
  8. package/dist/lib/cjs/commands/mysql-migrate-status.command-options.js +27 -0
  9. package/dist/lib/cjs/commands/mysql-migrate-status.command-options.js.map +1 -0
  10. package/dist/lib/cjs/commands/mysql-migrate-status.command.js +104 -0
  11. package/dist/lib/cjs/commands/mysql-migrate-status.command.js.map +1 -0
  12. package/dist/lib/cjs/commands/mysql-migrate-verify.command-options.js +27 -0
  13. package/dist/lib/cjs/commands/mysql-migrate-verify.command-options.js.map +1 -0
  14. package/dist/lib/cjs/commands/mysql-migrate-verify.command.js +74 -0
  15. package/dist/lib/cjs/commands/mysql-migrate-verify.command.js.map +1 -0
  16. package/dist/lib/cjs/commands/mysql-migrate.command-options.js +41 -0
  17. package/dist/lib/cjs/commands/mysql-migrate.command-options.js.map +1 -0
  18. package/dist/lib/cjs/commands/mysql-migrate.command.js +86 -0
  19. package/dist/lib/cjs/commands/mysql-migrate.command.js.map +1 -0
  20. package/dist/lib/cjs/enums/enums.js +18 -0
  21. package/dist/lib/cjs/enums/enums.js.map +1 -0
  22. package/dist/lib/cjs/enums/migration-state.enum.js +28 -0
  23. package/dist/lib/cjs/enums/migration-state.enum.js.map +1 -0
  24. package/dist/lib/cjs/errors/errors.js +22 -0
  25. package/dist/lib/cjs/errors/errors.js.map +1 -0
  26. package/dist/lib/cjs/errors/migration-checksum-mismatch.error.js +24 -0
  27. package/dist/lib/cjs/errors/migration-checksum-mismatch.error.js.map +1 -0
  28. package/dist/lib/cjs/errors/migration-duplicate-name.error.js +21 -0
  29. package/dist/lib/cjs/errors/migration-duplicate-name.error.js.map +1 -0
  30. package/dist/lib/cjs/errors/migration-execution.error.js +21 -0
  31. package/dist/lib/cjs/errors/migration-execution.error.js.map +1 -0
  32. package/dist/lib/cjs/errors/migration-invalid-name.error.js +20 -0
  33. package/dist/lib/cjs/errors/migration-invalid-name.error.js.map +1 -0
  34. package/dist/lib/cjs/errors/migration-orphaned-record.error.js +22 -0
  35. package/dist/lib/cjs/errors/migration-orphaned-record.error.js.map +1 -0
  36. package/dist/lib/cjs/interfaces/interfaces.js +18 -0
  37. package/dist/lib/cjs/interfaces/interfaces.js.map +1 -0
  38. package/dist/lib/cjs/interfaces/mysql-migration.interface.js +3 -0
  39. package/dist/lib/cjs/interfaces/mysql-migration.interface.js.map +1 -0
  40. package/dist/lib/cjs/managers/managers.js +22 -0
  41. package/dist/lib/cjs/managers/managers.js.map +1 -0
  42. package/dist/lib/cjs/managers/mysql-migration-checksum.manager.js +35 -0
  43. package/dist/lib/cjs/managers/mysql-migration-checksum.manager.js.map +1 -0
  44. package/dist/lib/cjs/managers/mysql-migration-record.manager.js +96 -0
  45. package/dist/lib/cjs/managers/mysql-migration-record.manager.js.map +1 -0
  46. package/dist/lib/cjs/managers/mysql-migration-runner.manager.js +96 -0
  47. package/dist/lib/cjs/managers/mysql-migration-runner.manager.js.map +1 -0
  48. package/dist/lib/cjs/managers/mysql-migration-scaffold.manager.js +217 -0
  49. package/dist/lib/cjs/managers/mysql-migration-scaffold.manager.js.map +1 -0
  50. package/dist/lib/cjs/managers/mysql-migration.manager.js +261 -0
  51. package/dist/lib/cjs/managers/mysql-migration.manager.js.map +1 -0
  52. package/dist/lib/cjs/models/migration-apply-entry.model.js +11 -0
  53. package/dist/lib/cjs/models/migration-apply-entry.model.js.map +1 -0
  54. package/dist/lib/cjs/models/migration-apply-result.model.js +18 -0
  55. package/dist/lib/cjs/models/migration-apply-result.model.js.map +1 -0
  56. package/dist/lib/cjs/models/migration-plan-entry.model.js +11 -0
  57. package/dist/lib/cjs/models/migration-plan-entry.model.js.map +1 -0
  58. package/dist/lib/cjs/models/migration-plan.model.js +24 -0
  59. package/dist/lib/cjs/models/migration-plan.model.js.map +1 -0
  60. package/dist/lib/cjs/models/migration-record.model.js +12 -0
  61. package/dist/lib/cjs/models/migration-record.model.js.map +1 -0
  62. package/dist/lib/cjs/models/models.js +22 -0
  63. package/dist/lib/cjs/models/models.js.map +1 -0
  64. package/dist/lib/cjs/mysql-cli.configuration-keys.js +20 -0
  65. package/dist/lib/cjs/mysql-cli.configuration-keys.js.map +1 -0
  66. package/dist/lib/cjs/mysql-cli.module.js +63 -0
  67. package/dist/lib/cjs/mysql-cli.module.js.map +1 -0
  68. package/dist/lib/cjs/mysql-cli.module.keyname.js +5 -0
  69. package/dist/lib/cjs/mysql-cli.module.keyname.js.map +1 -0
  70. package/dist/lib/cjs/tsconfig.cjs.tsbuildinfo +1 -0
  71. package/dist/lib/esm/commands/commands.js +9 -0
  72. package/dist/lib/esm/commands/commands.js.map +1 -0
  73. package/dist/lib/esm/commands/mysql-migrate-create.command-options.js +33 -0
  74. package/dist/lib/esm/commands/mysql-migrate-create.command-options.js.map +1 -0
  75. package/dist/lib/esm/commands/mysql-migrate-create.command.js +114 -0
  76. package/dist/lib/esm/commands/mysql-migrate-create.command.js.map +1 -0
  77. package/dist/lib/esm/commands/mysql-migrate-status.command-options.js +23 -0
  78. package/dist/lib/esm/commands/mysql-migrate-status.command-options.js.map +1 -0
  79. package/dist/lib/esm/commands/mysql-migrate-status.command.js +101 -0
  80. package/dist/lib/esm/commands/mysql-migrate-status.command.js.map +1 -0
  81. package/dist/lib/esm/commands/mysql-migrate-verify.command-options.js +23 -0
  82. package/dist/lib/esm/commands/mysql-migrate-verify.command-options.js.map +1 -0
  83. package/dist/lib/esm/commands/mysql-migrate-verify.command.js +71 -0
  84. package/dist/lib/esm/commands/mysql-migrate-verify.command.js.map +1 -0
  85. package/dist/lib/esm/commands/mysql-migrate.command-options.js +37 -0
  86. package/dist/lib/esm/commands/mysql-migrate.command-options.js.map +1 -0
  87. package/dist/lib/esm/commands/mysql-migrate.command.js +83 -0
  88. package/dist/lib/esm/commands/mysql-migrate.command.js.map +1 -0
  89. package/dist/lib/esm/enums/enums.js +2 -0
  90. package/dist/lib/esm/enums/enums.js.map +1 -0
  91. package/dist/lib/esm/enums/migration-state.enum.js +25 -0
  92. package/dist/lib/esm/enums/migration-state.enum.js.map +1 -0
  93. package/dist/lib/esm/errors/errors.js +6 -0
  94. package/dist/lib/esm/errors/errors.js.map +1 -0
  95. package/dist/lib/esm/errors/migration-checksum-mismatch.error.js +20 -0
  96. package/dist/lib/esm/errors/migration-checksum-mismatch.error.js.map +1 -0
  97. package/dist/lib/esm/errors/migration-duplicate-name.error.js +17 -0
  98. package/dist/lib/esm/errors/migration-duplicate-name.error.js.map +1 -0
  99. package/dist/lib/esm/errors/migration-execution.error.js +17 -0
  100. package/dist/lib/esm/errors/migration-execution.error.js.map +1 -0
  101. package/dist/lib/esm/errors/migration-invalid-name.error.js +16 -0
  102. package/dist/lib/esm/errors/migration-invalid-name.error.js.map +1 -0
  103. package/dist/lib/esm/errors/migration-orphaned-record.error.js +18 -0
  104. package/dist/lib/esm/errors/migration-orphaned-record.error.js.map +1 -0
  105. package/dist/lib/esm/interfaces/interfaces.js +2 -0
  106. package/dist/lib/esm/interfaces/interfaces.js.map +1 -0
  107. package/dist/lib/esm/interfaces/mysql-migration.interface.js +2 -0
  108. package/dist/lib/esm/interfaces/mysql-migration.interface.js.map +1 -0
  109. package/dist/lib/esm/managers/managers.js +6 -0
  110. package/dist/lib/esm/managers/managers.js.map +1 -0
  111. package/dist/lib/esm/managers/mysql-migration-checksum.manager.js +32 -0
  112. package/dist/lib/esm/managers/mysql-migration-checksum.manager.js.map +1 -0
  113. package/dist/lib/esm/managers/mysql-migration-record.manager.js +93 -0
  114. package/dist/lib/esm/managers/mysql-migration-record.manager.js.map +1 -0
  115. package/dist/lib/esm/managers/mysql-migration-runner.manager.js +93 -0
  116. package/dist/lib/esm/managers/mysql-migration-runner.manager.js.map +1 -0
  117. package/dist/lib/esm/managers/mysql-migration-scaffold.manager.js +211 -0
  118. package/dist/lib/esm/managers/mysql-migration-scaffold.manager.js.map +1 -0
  119. package/dist/lib/esm/managers/mysql-migration.manager.js +258 -0
  120. package/dist/lib/esm/managers/mysql-migration.manager.js.map +1 -0
  121. package/dist/lib/esm/models/migration-apply-entry.model.js +7 -0
  122. package/dist/lib/esm/models/migration-apply-entry.model.js.map +1 -0
  123. package/dist/lib/esm/models/migration-apply-result.model.js +14 -0
  124. package/dist/lib/esm/models/migration-apply-result.model.js.map +1 -0
  125. package/dist/lib/esm/models/migration-plan-entry.model.js +7 -0
  126. package/dist/lib/esm/models/migration-plan-entry.model.js.map +1 -0
  127. package/dist/lib/esm/models/migration-plan.model.js +20 -0
  128. package/dist/lib/esm/models/migration-plan.model.js.map +1 -0
  129. package/dist/lib/esm/models/migration-record.model.js +8 -0
  130. package/dist/lib/esm/models/migration-record.model.js.map +1 -0
  131. package/dist/lib/esm/models/models.js +6 -0
  132. package/dist/lib/esm/models/models.js.map +1 -0
  133. package/dist/lib/esm/mysql-cli.configuration-keys.js +17 -0
  134. package/dist/lib/esm/mysql-cli.configuration-keys.js.map +1 -0
  135. package/dist/lib/esm/mysql-cli.module.js +46 -0
  136. package/dist/lib/esm/mysql-cli.module.js.map +1 -0
  137. package/dist/lib/esm/mysql-cli.module.keyname.js +2 -0
  138. package/dist/lib/esm/mysql-cli.module.keyname.js.map +1 -0
  139. package/dist/lib/esm/tsconfig.tsbuildinfo +1 -0
  140. package/dist/types/commands/commands.d.ts +8 -0
  141. package/dist/types/commands/mysql-migrate-create.command-options.d.ts +12 -0
  142. package/dist/types/commands/mysql-migrate-create.command.d.ts +32 -0
  143. package/dist/types/commands/mysql-migrate-status.command-options.d.ts +8 -0
  144. package/dist/types/commands/mysql-migrate-status.command.d.ts +25 -0
  145. package/dist/types/commands/mysql-migrate-verify.command-options.d.ts +8 -0
  146. package/dist/types/commands/mysql-migrate-verify.command.d.ts +23 -0
  147. package/dist/types/commands/mysql-migrate.command-options.d.ts +14 -0
  148. package/dist/types/commands/mysql-migrate.command.d.ts +23 -0
  149. package/dist/types/enums/enums.d.ts +1 -0
  150. package/dist/types/enums/migration-state.enum.d.ts +23 -0
  151. package/dist/types/errors/errors.d.ts +5 -0
  152. package/dist/types/errors/migration-checksum-mismatch.error.d.ts +14 -0
  153. package/dist/types/errors/migration-duplicate-name.error.d.ts +11 -0
  154. package/dist/types/errors/migration-execution.error.d.ts +12 -0
  155. package/dist/types/errors/migration-invalid-name.error.d.ts +10 -0
  156. package/dist/types/errors/migration-orphaned-record.error.d.ts +12 -0
  157. package/dist/types/interfaces/interfaces.d.ts +1 -0
  158. package/dist/types/interfaces/mysql-migration.interface.d.ts +40 -0
  159. package/dist/types/managers/managers.d.ts +5 -0
  160. package/dist/types/managers/mysql-migration-checksum.manager.d.ts +15 -0
  161. package/dist/types/managers/mysql-migration-record.manager.d.ts +22 -0
  162. package/dist/types/managers/mysql-migration-runner.manager.d.ts +16 -0
  163. package/dist/types/managers/mysql-migration-scaffold.manager.d.ts +40 -0
  164. package/dist/types/managers/mysql-migration.manager.d.ts +41 -0
  165. package/dist/types/models/migration-apply-entry.model.d.ts +9 -0
  166. package/dist/types/models/migration-apply-result.model.d.ts +14 -0
  167. package/dist/types/models/migration-plan-entry.model.d.ts +15 -0
  168. package/dist/types/models/migration-plan.model.d.ts +14 -0
  169. package/dist/types/models/migration-record.model.d.ts +12 -0
  170. package/dist/types/models/models.d.ts +5 -0
  171. package/dist/types/mysql-cli.configuration-keys.d.ts +29 -0
  172. package/dist/types/mysql-cli.module.d.ts +10 -0
  173. package/dist/types/mysql-cli.module.keyname.d.ts +1 -0
  174. package/package.json +75 -0
  175. package/readme.md +195 -0
@@ -0,0 +1,33 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import "reflect-metadata";
11
+ import { IsNotEmpty, IsOptional, IsString } from "@pristine-ts/class-validator";
12
+ import { commandParameter } from "@pristine-ts/cli";
13
+ /**
14
+ * Flags for `pristine mysql:create --name <name> [--config <keyname>]`.
15
+ *
16
+ * `name` is the human-readable description (e.g. `add-products-table`). The scaffold
17
+ * slugifies it, prepends the next sequential number, and writes the `.ts` file. It is
18
+ * required; when it isn't passed and the terminal is interactive, the CLI asks for it.
19
+ */
20
+ export class MysqlMigrateCreateCommandOptions {
21
+ }
22
+ __decorate([
23
+ commandParameter({ question: "Migration name (e.g. add-products-table)?" }),
24
+ IsString(),
25
+ IsNotEmpty(),
26
+ __metadata("design:type", String)
27
+ ], MysqlMigrateCreateCommandOptions.prototype, "name", void 0);
28
+ __decorate([
29
+ IsOptional(),
30
+ IsString(),
31
+ __metadata("design:type", String)
32
+ ], MysqlMigrateCreateCommandOptions.prototype, "config", void 0);
33
+ //# sourceMappingURL=mysql-migrate-create.command-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mysql-migrate-create.command-options.js","sourceRoot":"","sources":["../../../../src/commands/mysql-migrate-create.command-options.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAC,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EAAC,gBAAgB,EAAC,MAAM,kBAAkB,CAAC;AAElD;;;;;;GAMG;AACH,MAAM,OAAO,gCAAgC;CAS5C;AALC;IAHC,gBAAgB,CAAC,EAAC,QAAQ,EAAE,2CAA2C,EAAC,CAAC;IACzE,QAAQ,EAAE;IACV,UAAU,EAAE;;8DACC;AAId;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;gEACK"}
@@ -0,0 +1,114 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
11
+ return function (target, key) { decorator(target, key, paramIndex); }
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ import path from "path";
23
+ import { ExitCode, injectConfig, moduleScoped, ServiceDefinitionTagEnum, tag } from "@pristine-ts/common";
24
+ import { inject, injectable } from "tsyringe";
25
+ import { CliOutput } from "@pristine-ts/cli";
26
+ import { MysqlCliModuleKeyname } from "../mysql-cli.module.keyname";
27
+ import { MysqlCliConfigurationKeys } from "../mysql-cli.configuration-keys";
28
+ import { MysqlMigrationScaffoldManager } from "../managers/mysql-migration-scaffold.manager";
29
+ import { MysqlMigrateCreateCommandOptions } from "./mysql-migrate-create.command-options";
30
+ /**
31
+ * `pristine mysql:create --name <name> [--config <keyname>]`
32
+ *
33
+ * Scaffolds a new `.sql-migrations.ts` file under the configured scaffold path
34
+ * (`pristine.mysql-cli.scaffold.path`, default `src/sql-migrations`). When the
35
+ * config key `pristine.mysql-cli.scaffold.barrelPath` is set, splices the new
36
+ * import and class reference into that file between the marker comments
37
+ * `<pristine:migration-imports:start/end>` and `<pristine:migration-services:start/end>`.
38
+ *
39
+ * Numbering is sequential: the scaffold scans the target directory for files
40
+ * matching `<digits>-<slug>.sql-migrations.ts`, picks `max + 1`, pads to the
41
+ * existing width (default 2). If you cross 99, do a one-time rename of the
42
+ * existing files to 3-digit width and the scaffold respects it going forward.
43
+ */
44
+ let MysqlMigrateCreateCommand = class MysqlMigrateCreateCommand {
45
+ constructor(scaffoldPath, scaffoldBarrelPath, scaffoldManager, cliOutput, logHandler) {
46
+ this.scaffoldPath = scaffoldPath;
47
+ this.scaffoldBarrelPath = scaffoldBarrelPath;
48
+ this.scaffoldManager = scaffoldManager;
49
+ this.cliOutput = cliOutput;
50
+ this.logHandler = logHandler;
51
+ this.optionsType = MysqlMigrateCreateCommandOptions;
52
+ this.name = "mysql:create";
53
+ this.description = "Scaffold a new SQL migration class with the next sequential number.";
54
+ }
55
+ run(args) {
56
+ return __awaiter(this, void 0, void 0, function* () {
57
+ // `name` is a required, validated parameter — by the time `run` is reached it has been
58
+ // supplied on the command line or asked for interactively (see its `@commandParameter`).
59
+ const descriptiveName = args.name;
60
+ const projectRoot = process.cwd();
61
+ const absoluteScaffoldPath = path.resolve(projectRoot, this.scaffoldPath);
62
+ const absoluteBarrelPath = this.scaffoldBarrelPath.length > 0
63
+ ? path.resolve(projectRoot, this.scaffoldBarrelPath)
64
+ : undefined;
65
+ try {
66
+ const result = yield this.scaffoldManager.create({
67
+ scaffoldPath: absoluteScaffoldPath,
68
+ descriptiveName,
69
+ barrelPath: absoluteBarrelPath,
70
+ configUniqueKeynames: args.config !== undefined ? [args.config] : undefined,
71
+ });
72
+ this.cliOutput.writeLine(`✓ Created ${path.relative(projectRoot, result.filePath)}`);
73
+ if (result.barrelUpdated) {
74
+ this.cliOutput.writeLine(`✓ Updated ${path.relative(projectRoot, absoluteBarrelPath)}`);
75
+ }
76
+ else if (absoluteBarrelPath !== undefined) {
77
+ this.cliOutput.writeLine(`! Barrel not auto-edited at ${path.relative(projectRoot, absoluteBarrelPath)} — see warnings above.`);
78
+ this.printManualInstructions(result.className, result.migrationName);
79
+ }
80
+ else {
81
+ this.cliOutput.writeLine("");
82
+ this.printManualInstructions(result.className, result.migrationName);
83
+ }
84
+ return ExitCode.Success;
85
+ }
86
+ catch (error) {
87
+ this.logHandler.error("mysql:create failed.", { highlights: { error: error.message } });
88
+ return ExitCode.Error;
89
+ }
90
+ });
91
+ }
92
+ printManualInstructions(className, migrationName) {
93
+ this.cliOutput.writeLine("Next step: register the migration with the kernel. Add to your migrations module:");
94
+ this.cliOutput.writeLine("");
95
+ this.cliOutput.writeLine(` import {${className}} from "./${migrationName}.sql-migrations";`);
96
+ this.cliOutput.writeLine("");
97
+ this.cliOutput.writeLine(` importServices: [..., ${className}],`);
98
+ this.cliOutput.writeLine("");
99
+ this.cliOutput.writeLine("Tip: set `pristine.mysql-cli.scaffold.barrelPath` in pristine.config.ts to have " +
100
+ "this command auto-edit your migrations module on future scaffolds.");
101
+ }
102
+ };
103
+ MysqlMigrateCreateCommand = __decorate([
104
+ tag(ServiceDefinitionTagEnum.Command),
105
+ moduleScoped(MysqlCliModuleKeyname),
106
+ injectable(),
107
+ __param(0, injectConfig(MysqlCliConfigurationKeys.ScaffoldPath)),
108
+ __param(1, injectConfig(MysqlCliConfigurationKeys.ScaffoldBarrelPath)),
109
+ __param(4, inject("LogHandlerInterface")),
110
+ __metadata("design:paramtypes", [String, String, MysqlMigrationScaffoldManager,
111
+ CliOutput, Object])
112
+ ], MysqlMigrateCreateCommand);
113
+ export { MysqlMigrateCreateCommand };
114
+ //# sourceMappingURL=mysql-migrate-create.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mysql-migrate-create.command.js","sourceRoot":"","sources":["../../../../src/commands/mysql-migrate-create.command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import "reflect-metadata";
11
+ import { IsOptional, IsString } from "@pristine-ts/class-validator";
12
+ /**
13
+ * Flags for `pristine mysql:status [--config <keyname>]`. Status is informational
14
+ * and always exits 0 — for a CI gate that fails on drift, use `mysql:verify`.
15
+ */
16
+ export class MysqlMigrateStatusCommandOptions {
17
+ }
18
+ __decorate([
19
+ IsOptional(),
20
+ IsString(),
21
+ __metadata("design:type", String)
22
+ ], MysqlMigrateStatusCommandOptions.prototype, "config", void 0);
23
+ //# sourceMappingURL=mysql-migrate-status.command-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mysql-migrate-status.command-options.js","sourceRoot":"","sources":["../../../../src/commands/mysql-migrate-status.command-options.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAE,QAAQ,EAAC,MAAM,8BAA8B,CAAC;AAElE;;;GAGG;AACH,MAAM,OAAO,gCAAgC;CAI5C;AADC;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;gEACK"}
@@ -0,0 +1,101 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
11
+ return function (target, key) { decorator(target, key, paramIndex); }
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var MysqlMigrateStatusCommand_1;
23
+ import { ExitCode, moduleScoped, ServiceDefinitionTagEnum, tag } from "@pristine-ts/common";
24
+ import { inject, injectable } from "tsyringe";
25
+ import { CliOutput } from "@pristine-ts/cli";
26
+ import { MysqlCliModuleKeyname } from "../mysql-cli.module.keyname";
27
+ import { MysqlMigrationManager } from "../managers/mysql-migration.manager";
28
+ import { MigrationStateEnum } from "../enums/migration-state.enum";
29
+ import { MysqlMigrateStatusCommandOptions } from "./mysql-migrate-status.command-options";
30
+ /**
31
+ * `pristine mysql:status [--config <keyname>]`
32
+ *
33
+ * Prints the disk-vs-database diff. Reports each migration as Pending, Applied,
34
+ * Modified, or Orphaned. Informational only — always exits 0. Use `mysql:verify`
35
+ * to fail on drift.
36
+ */
37
+ let MysqlMigrateStatusCommand = MysqlMigrateStatusCommand_1 = class MysqlMigrateStatusCommand {
38
+ constructor(migrationManager, cliOutput, logHandler) {
39
+ this.migrationManager = migrationManager;
40
+ this.cliOutput = cliOutput;
41
+ this.logHandler = logHandler;
42
+ this.optionsType = MysqlMigrateStatusCommandOptions;
43
+ this.name = "mysql:status";
44
+ this.description = "Show the disk-vs-database status of MySQL migrations.";
45
+ }
46
+ run(args) {
47
+ return __awaiter(this, void 0, void 0, function* () {
48
+ var _a;
49
+ const configUniqueKeyname = (_a = args.config) !== null && _a !== void 0 ? _a : MysqlMigrateStatusCommand_1.DefaultConfigKeyname;
50
+ try {
51
+ const plan = yield this.migrationManager.status(configUniqueKeyname);
52
+ this.cliOutput.writeLine(`config: ${plan.configUniqueKeyname} table: ${plan.tableName}`);
53
+ for (const entry of plan.entries) {
54
+ const label = this.formatState(entry.state);
55
+ const suffix = this.formatSuffix(entry);
56
+ this.cliOutput.writeLine(` ${label} ${entry.name}${suffix}`);
57
+ }
58
+ this.cliOutput.writeLine(`Summary: ${plan.countByState(MigrationStateEnum.Pending)} pending, ` +
59
+ `${plan.countByState(MigrationStateEnum.Applied)} applied, ` +
60
+ `${plan.countByState(MigrationStateEnum.Modified)} modified, ` +
61
+ `${plan.countByState(MigrationStateEnum.Orphaned)} orphaned`);
62
+ return ExitCode.Success;
63
+ }
64
+ catch (error) {
65
+ this.logHandler.error("mysql:status failed.", { highlights: { error: error.message } });
66
+ return ExitCode.Error;
67
+ }
68
+ });
69
+ }
70
+ formatState(state) {
71
+ switch (state) {
72
+ case MigrationStateEnum.Pending: return "Pending ";
73
+ case MigrationStateEnum.Applied: return "Applied ";
74
+ case MigrationStateEnum.Modified: return "Modified";
75
+ case MigrationStateEnum.Orphaned: return "Orphaned";
76
+ }
77
+ }
78
+ formatSuffix(entry) {
79
+ if (entry.state === MigrationStateEnum.Applied && entry.appliedAt !== undefined) {
80
+ return ` (applied ${entry.appliedAt.toISOString()})`;
81
+ }
82
+ if (entry.state === MigrationStateEnum.Modified) {
83
+ return ` (checksum drift)`;
84
+ }
85
+ if (entry.state === MigrationStateEnum.Orphaned) {
86
+ return ` (in DB, not registered)`;
87
+ }
88
+ return "";
89
+ }
90
+ };
91
+ MysqlMigrateStatusCommand.DefaultConfigKeyname = "__default__";
92
+ MysqlMigrateStatusCommand = MysqlMigrateStatusCommand_1 = __decorate([
93
+ tag(ServiceDefinitionTagEnum.Command),
94
+ moduleScoped(MysqlCliModuleKeyname),
95
+ injectable(),
96
+ __param(2, inject("LogHandlerInterface")),
97
+ __metadata("design:paramtypes", [MysqlMigrationManager,
98
+ CliOutput, Object])
99
+ ], MysqlMigrateStatusCommand);
100
+ export { MysqlMigrateStatusCommand };
101
+ //# sourceMappingURL=mysql-migrate-status.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mysql-migrate-status.command.js","sourceRoot":"","sources":["../../../../src/commands/mysql-migrate-status.command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import "reflect-metadata";
11
+ import { IsOptional, IsString } from "@pristine-ts/class-validator";
12
+ /**
13
+ * Flags for `pristine mysql:verify [--config <keyname>]`. Verify exits non-zero
14
+ * when any Modified or Orphaned entries are detected; designed for CI gates.
15
+ */
16
+ export class MysqlMigrateVerifyCommandOptions {
17
+ }
18
+ __decorate([
19
+ IsOptional(),
20
+ IsString(),
21
+ __metadata("design:type", String)
22
+ ], MysqlMigrateVerifyCommandOptions.prototype, "config", void 0);
23
+ //# sourceMappingURL=mysql-migrate-verify.command-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mysql-migrate-verify.command-options.js","sourceRoot":"","sources":["../../../../src/commands/mysql-migrate-verify.command-options.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAE,QAAQ,EAAC,MAAM,8BAA8B,CAAC;AAElE;;;GAGG;AACH,MAAM,OAAO,gCAAgC;CAI5C;AADC;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;gEACK"}
@@ -0,0 +1,71 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
11
+ return function (target, key) { decorator(target, key, paramIndex); }
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var MysqlMigrateVerifyCommand_1;
23
+ import { ExitCode, moduleScoped, ServiceDefinitionTagEnum, tag } from "@pristine-ts/common";
24
+ import { inject, injectable } from "tsyringe";
25
+ import { CliOutput } from "@pristine-ts/cli";
26
+ import { MysqlCliModuleKeyname } from "../mysql-cli.module.keyname";
27
+ import { MysqlMigrationManager } from "../managers/mysql-migration.manager";
28
+ import { MysqlMigrateVerifyCommandOptions } from "./mysql-migrate-verify.command-options";
29
+ /**
30
+ * `pristine mysql:verify [--config <keyname>]`
31
+ *
32
+ * Same scan as `mysql:status`, but exits non-zero if any Modified or Orphaned
33
+ * entries exist. Designed for CI gates: a clean exit means the database and the
34
+ * registered migrations are in agreement.
35
+ */
36
+ let MysqlMigrateVerifyCommand = MysqlMigrateVerifyCommand_1 = class MysqlMigrateVerifyCommand {
37
+ constructor(migrationManager, cliOutput, logHandler) {
38
+ this.migrationManager = migrationManager;
39
+ this.cliOutput = cliOutput;
40
+ this.logHandler = logHandler;
41
+ this.optionsType = MysqlMigrateVerifyCommandOptions;
42
+ this.name = "mysql:verify";
43
+ this.description = "Verify that all applied migrations match disk (exits non-zero on drift).";
44
+ }
45
+ run(args) {
46
+ return __awaiter(this, void 0, void 0, function* () {
47
+ var _a;
48
+ const configUniqueKeyname = (_a = args.config) !== null && _a !== void 0 ? _a : MysqlMigrateVerifyCommand_1.DefaultConfigKeyname;
49
+ try {
50
+ yield this.migrationManager.verify(configUniqueKeyname);
51
+ this.cliOutput.writeLine(`mysql:verify config=${configUniqueKeyname} OK`);
52
+ return ExitCode.Success;
53
+ }
54
+ catch (error) {
55
+ this.logHandler.error("mysql:verify failed.", { highlights: { error: error.message } });
56
+ return ExitCode.Error;
57
+ }
58
+ });
59
+ }
60
+ };
61
+ MysqlMigrateVerifyCommand.DefaultConfigKeyname = "__default__";
62
+ MysqlMigrateVerifyCommand = MysqlMigrateVerifyCommand_1 = __decorate([
63
+ tag(ServiceDefinitionTagEnum.Command),
64
+ moduleScoped(MysqlCliModuleKeyname),
65
+ injectable(),
66
+ __param(2, inject("LogHandlerInterface")),
67
+ __metadata("design:paramtypes", [MysqlMigrationManager,
68
+ CliOutput, Object])
69
+ ], MysqlMigrateVerifyCommand);
70
+ export { MysqlMigrateVerifyCommand };
71
+ //# sourceMappingURL=mysql-migrate-verify.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mysql-migrate-verify.command.js","sourceRoot":"","sources":["../../../../src/commands/mysql-migrate-verify.command.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAC,QAAQ,EAAE,YAAY,EAAE,wBAAwB,EAAE,GAAG,EAAC,MAAM,qBAAqB,CAAC;AAC1F,OAAO,EAAC,MAAM,EAAE,UAAU,EAAC,MAAM,UAAU,CAAC;AAE5C,OAAO,EAAmB,SAAS,EAAC,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAC,qBAAqB,EAAC,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAC,qBAAqB,EAAC,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAC,gCAAgC,EAAC,MAAM,wCAAwC,CAAC;AAExF;;;;;;GAMG;AAII,IAAM,yBAAyB,iCAA/B,MAAM,yBAAyB;IAOpC,YACmB,gBAAuC,EACvC,SAAoB,EACN,UAAgD;QAF9D,qBAAgB,GAAhB,gBAAgB,CAAuB;QACvC,cAAS,GAAT,SAAS,CAAW;QACW,eAAU,GAAV,UAAU,CAAqB;QATjF,gBAAW,GAAG,gCAAgC,CAAC;QAC/C,SAAI,GAAG,cAAc,CAAC;QACtB,gBAAW,GAAG,0EAA0E,CAAC;IASzF,CAAC;IAEY,GAAG,CAAC,IAAsC;;;YACrD,MAAM,mBAAmB,GAAG,MAAA,IAAI,CAAC,MAAM,mCAAI,2BAAyB,CAAC,oBAAoB,CAAC;YAE1F,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;gBACxD,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,wBAAwB,mBAAmB,MAAM,CAAC,CAAC;gBAC5E,OAAO,QAAQ,CAAC,OAAO,CAAC;YAC1B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,sBAAsB,EAAE,EAAC,UAAU,EAAE,EAAC,KAAK,EAAG,KAAe,CAAC,OAAO,EAAC,EAAC,CAAC,CAAC;gBAC/F,OAAO,QAAQ,CAAC,KAAK,CAAC;YACxB,CAAC;QACH,CAAC;KAAA;;AApBuB,8CAAoB,GAAG,aAAa,AAAhB,CAAiB;AALlD,yBAAyB;IAHrC,GAAG,CAAC,wBAAwB,CAAC,OAAO,CAAC;IACrC,YAAY,CAAC,qBAAqB,CAAC;IACnC,UAAU,EAAE;IAWR,WAAA,MAAM,CAAC,qBAAqB,CAAC,CAAA;qCAFK,qBAAqB;QAC5B,SAAS;GAT5B,yBAAyB,CA0BrC"}
@@ -0,0 +1,37 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import "reflect-metadata";
11
+ import { IsBoolean, IsOptional, IsString } from "@pristine-ts/class-validator";
12
+ /**
13
+ * Flags for `pristine mysql:migrate [--config <keyname>] [--dry-run] [--force]`.
14
+ *
15
+ * `--config` picks the `MysqlConfig.uniqueKeyname` to target. Defaults to
16
+ * `__default__`. `--dry-run` prints the plan without writing anything. `--force`
17
+ * overrides the refusal-to-proceed when drift (Modified / Orphaned entries) is
18
+ * detected — used sparingly, on environments you're comfortable diverging.
19
+ */
20
+ export class MysqlMigrateCommandOptions {
21
+ }
22
+ __decorate([
23
+ IsOptional(),
24
+ IsString(),
25
+ __metadata("design:type", String)
26
+ ], MysqlMigrateCommandOptions.prototype, "config", void 0);
27
+ __decorate([
28
+ IsOptional(),
29
+ IsBoolean(),
30
+ __metadata("design:type", Boolean)
31
+ ], MysqlMigrateCommandOptions.prototype, "dry-run", void 0);
32
+ __decorate([
33
+ IsOptional(),
34
+ IsBoolean(),
35
+ __metadata("design:type", Boolean)
36
+ ], MysqlMigrateCommandOptions.prototype, "force", void 0);
37
+ //# sourceMappingURL=mysql-migrate.command-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mysql-migrate.command-options.js","sourceRoot":"","sources":["../../../../src/commands/mysql-migrate.command-options.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAC,MAAM,8BAA8B,CAAC;AAE7E;;;;;;;GAOG;AACH,MAAM,OAAO,0BAA0B;CAYtC;AATC;IAFC,UAAU,EAAE;IACZ,QAAQ,EAAE;;0DACK;AAIhB;IAFC,UAAU,EAAE;IACZ,SAAS,EAAE;;2DACQ;AAIpB;IAFC,UAAU,EAAE;IACZ,SAAS,EAAE;;yDACI"}
@@ -0,0 +1,83 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
11
+ return function (target, key) { decorator(target, key, paramIndex); }
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var MysqlMigrateCommand_1;
23
+ import { ExitCode, moduleScoped, ServiceDefinitionTagEnum, tag } from "@pristine-ts/common";
24
+ import { inject, injectable } from "tsyringe";
25
+ import { CliOutput } from "@pristine-ts/cli";
26
+ import { MysqlCliModuleKeyname } from "../mysql-cli.module.keyname";
27
+ import { MysqlMigrationManager } from "../managers/mysql-migration.manager";
28
+ import { MysqlMigrateCommandOptions } from "./mysql-migrate.command-options";
29
+ /**
30
+ * `pristine mysql:migrate [--config <keyname>] [--dry-run] [--force]`
31
+ *
32
+ * Applies every Pending migration against the targeted database. Halts on the first
33
+ * failure. Refuses to proceed when drift (Modified / Orphaned entries) exists unless
34
+ * `--force` is given.
35
+ */
36
+ let MysqlMigrateCommand = MysqlMigrateCommand_1 = class MysqlMigrateCommand {
37
+ constructor(migrationManager, cliOutput, logHandler) {
38
+ this.migrationManager = migrationManager;
39
+ this.cliOutput = cliOutput;
40
+ this.logHandler = logHandler;
41
+ this.optionsType = MysqlMigrateCommandOptions;
42
+ this.name = "mysql:migrate";
43
+ this.description = "Apply pending MySQL migrations against the configured database.";
44
+ }
45
+ run(args) {
46
+ return __awaiter(this, void 0, void 0, function* () {
47
+ var _a;
48
+ const configUniqueKeyname = (_a = args.config) !== null && _a !== void 0 ? _a : MysqlMigrateCommand_1.DefaultConfigKeyname;
49
+ try {
50
+ const result = yield this.migrationManager.apply(configUniqueKeyname, {
51
+ dryRun: args["dry-run"] === true,
52
+ force: args.force === true,
53
+ });
54
+ this.cliOutput.writeLine(`Applying migrations against config: ${configUniqueKeyname}${result.dryRun ? " (dry-run)" : ""}`);
55
+ for (const entry of result.appliedMigrations) {
56
+ this.cliOutput.writeLine(` ✓ ${entry.name} (${entry.executionTimeMs} ms)`);
57
+ }
58
+ if (result.failedMigration !== undefined) {
59
+ this.cliOutput.writeLine(` ✗ ${result.failedMigration.name} (failed)`);
60
+ this.logHandler.error(`Migration ${result.failedMigration.name} failed: ${result.failedMigration.error}`);
61
+ return ExitCode.Error;
62
+ }
63
+ this.cliOutput.writeLine(`Applied ${result.appliedMigrations.length} migration(s). ${result.skippedAlreadyApplied.length} skipped.`);
64
+ return ExitCode.Success;
65
+ }
66
+ catch (error) {
67
+ this.logHandler.error("mysql:migrate failed.", { highlights: { error: error.message } });
68
+ return ExitCode.Error;
69
+ }
70
+ });
71
+ }
72
+ };
73
+ MysqlMigrateCommand.DefaultConfigKeyname = "__default__";
74
+ MysqlMigrateCommand = MysqlMigrateCommand_1 = __decorate([
75
+ tag(ServiceDefinitionTagEnum.Command),
76
+ moduleScoped(MysqlCliModuleKeyname),
77
+ injectable(),
78
+ __param(2, inject("LogHandlerInterface")),
79
+ __metadata("design:paramtypes", [MysqlMigrationManager,
80
+ CliOutput, Object])
81
+ ], MysqlMigrateCommand);
82
+ export { MysqlMigrateCommand };
83
+ //# sourceMappingURL=mysql-migrate.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mysql-migrate.command.js","sourceRoot":"","sources":["../../../../src/commands/mysql-migrate.command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from "./migration-state.enum";
2
+ //# sourceMappingURL=enums.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../../src/enums/enums.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * State of a single migration as observed by `MysqlMigrationManager.status` /
3
+ * `verify`. Computed from the union of registered migrations (DI) and applied
4
+ * records (the `pristine_migrations` table).
5
+ */
6
+ export var MigrationStateEnum;
7
+ (function (MigrationStateEnum) {
8
+ /** Registered in DI, not in the database. Will be applied next `migrate` run. */
9
+ MigrationStateEnum["Pending"] = "pending";
10
+ /** Registered in DI, in the database, checksums match. Nothing to do. */
11
+ MigrationStateEnum["Applied"] = "applied";
12
+ /**
13
+ * Registered in DI, in the database, checksums differ. The migration's `up()` was
14
+ * edited after it was applied. Verify fails; apply refuses to proceed (unless
15
+ * `--force`).
16
+ */
17
+ MigrationStateEnum["Modified"] = "modified";
18
+ /**
19
+ * In the database, not registered in DI. The class was deleted from the codebase,
20
+ * or the CLI is targeting the wrong config. Verify fails; apply refuses to proceed
21
+ * (unless `--force`).
22
+ */
23
+ MigrationStateEnum["Orphaned"] = "orphaned";
24
+ })(MigrationStateEnum || (MigrationStateEnum = {}));
25
+ //# sourceMappingURL=migration-state.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration-state.enum.js","sourceRoot":"","sources":["../../../../src/enums/migration-state.enum.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAN,IAAY,kBAoBX;AApBD,WAAY,kBAAkB;IAC5B,iFAAiF;IACjF,yCAAmB,CAAA;IAEnB,yEAAyE;IACzE,yCAAmB,CAAA;IAEnB;;;;OAIG;IACH,2CAAqB,CAAA;IAErB;;;;OAIG;IACH,2CAAqB,CAAA;AACvB,CAAC,EApBW,kBAAkB,KAAlB,kBAAkB,QAoB7B"}
@@ -0,0 +1,6 @@
1
+ export * from "./migration-checksum-mismatch.error";
2
+ export * from "./migration-duplicate-name.error";
3
+ export * from "./migration-execution.error";
4
+ export * from "./migration-invalid-name.error";
5
+ export * from "./migration-orphaned-record.error";
6
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/errors/errors.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC;AACpD,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,mCAAmC,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Thrown by `verify` (and by `apply` without `--force`) when a migration that's
3
+ * already applied has had its `up()` body edited since. Indicates someone changed
4
+ * a migration after it ran somewhere — the new SQL was never applied to that
5
+ * database. The fix is either to revert the change or to write a new migration
6
+ * that produces the desired state.
7
+ */
8
+ export class MigrationChecksumMismatchError extends Error {
9
+ constructor(migrationName, configUniqueKeyname, diskChecksum, appliedChecksum) {
10
+ super(`Migration "${migrationName}" has been edited since it was applied to config ` +
11
+ `"${configUniqueKeyname}". Disk checksum ${diskChecksum} vs applied ` +
12
+ `${appliedChecksum}. Revert the edit or add a new migration to roll forward.`);
13
+ this.migrationName = migrationName;
14
+ this.configUniqueKeyname = configUniqueKeyname;
15
+ this.diskChecksum = diskChecksum;
16
+ this.appliedChecksum = appliedChecksum;
17
+ Object.setPrototypeOf(this, MigrationChecksumMismatchError.prototype);
18
+ }
19
+ }
20
+ //# sourceMappingURL=migration-checksum-mismatch.error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration-checksum-mismatch.error.js","sourceRoot":"","sources":["../../../../src/errors/migration-checksum-mismatch.error.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,OAAO,8BAA+B,SAAQ,KAAK;IACvD,YACkB,aAAqB,EACrB,mBAA2B,EAC3B,YAAoB,EACpB,eAAuB;QAEvC,KAAK,CACH,cAAc,aAAa,mDAAmD;YAC9E,IAAI,mBAAmB,oBAAoB,YAAY,cAAc;YACrE,GAAG,eAAe,2DAA2D,CAC9E,CAAC;QATc,kBAAa,GAAb,aAAa,CAAQ;QACrB,wBAAmB,GAAnB,mBAAmB,CAAQ;QAC3B,iBAAY,GAAZ,YAAY,CAAQ;QACpB,oBAAe,GAAf,eAAe,CAAQ;QAQvC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,8BAA8B,CAAC,SAAS,CAAC,CAAC;IACxE,CAAC;CACF"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Thrown when two registered migrations share the same `name` after filtering by
3
+ * `configUniqueKeynames` for the targeted config. Names must be globally unique per
4
+ * config because the database stores them in a `UNIQUE` column. The usual cause is
5
+ * a copy-paste mistake at scaffold time.
6
+ */
7
+ export class MigrationDuplicateNameError extends Error {
8
+ constructor(migrationName, configUniqueKeyname) {
9
+ super(`Multiple registered migrations have the same name "${migrationName}" for ` +
10
+ `config "${configUniqueKeyname}". Each migration name must be unique. Rename ` +
11
+ `one of them and re-run.`);
12
+ this.migrationName = migrationName;
13
+ this.configUniqueKeyname = configUniqueKeyname;
14
+ Object.setPrototypeOf(this, MigrationDuplicateNameError.prototype);
15
+ }
16
+ }
17
+ //# sourceMappingURL=migration-duplicate-name.error.js.map