@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,74 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
15
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16
+ return new (P || (P = Promise))(function (resolve, reject) {
17
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
18
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
19
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
20
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
21
+ });
22
+ };
23
+ var MysqlMigrateVerifyCommand_1;
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.MysqlMigrateVerifyCommand = void 0;
26
+ const common_1 = require("@pristine-ts/common");
27
+ const tsyringe_1 = require("tsyringe");
28
+ const cli_1 = require("@pristine-ts/cli");
29
+ const mysql_cli_module_keyname_1 = require("../mysql-cli.module.keyname");
30
+ const mysql_migration_manager_1 = require("../managers/mysql-migration.manager");
31
+ const mysql_migrate_verify_command_options_1 = require("./mysql-migrate-verify.command-options");
32
+ /**
33
+ * `pristine mysql:verify [--config <keyname>]`
34
+ *
35
+ * Same scan as `mysql:status`, but exits non-zero if any Modified or Orphaned
36
+ * entries exist. Designed for CI gates: a clean exit means the database and the
37
+ * registered migrations are in agreement.
38
+ */
39
+ let MysqlMigrateVerifyCommand = MysqlMigrateVerifyCommand_1 = class MysqlMigrateVerifyCommand {
40
+ constructor(migrationManager, cliOutput, logHandler) {
41
+ this.migrationManager = migrationManager;
42
+ this.cliOutput = cliOutput;
43
+ this.logHandler = logHandler;
44
+ this.optionsType = mysql_migrate_verify_command_options_1.MysqlMigrateVerifyCommandOptions;
45
+ this.name = "mysql:verify";
46
+ this.description = "Verify that all applied migrations match disk (exits non-zero on drift).";
47
+ }
48
+ run(args) {
49
+ return __awaiter(this, void 0, void 0, function* () {
50
+ var _a;
51
+ const configUniqueKeyname = (_a = args.config) !== null && _a !== void 0 ? _a : MysqlMigrateVerifyCommand_1.DefaultConfigKeyname;
52
+ try {
53
+ yield this.migrationManager.verify(configUniqueKeyname);
54
+ this.cliOutput.writeLine(`mysql:verify config=${configUniqueKeyname} OK`);
55
+ return common_1.ExitCode.Success;
56
+ }
57
+ catch (error) {
58
+ this.logHandler.error("mysql:verify failed.", { highlights: { error: error.message } });
59
+ return common_1.ExitCode.Error;
60
+ }
61
+ });
62
+ }
63
+ };
64
+ exports.MysqlMigrateVerifyCommand = MysqlMigrateVerifyCommand;
65
+ MysqlMigrateVerifyCommand.DefaultConfigKeyname = "__default__";
66
+ exports.MysqlMigrateVerifyCommand = MysqlMigrateVerifyCommand = MysqlMigrateVerifyCommand_1 = __decorate([
67
+ (0, common_1.tag)(common_1.ServiceDefinitionTagEnum.Command),
68
+ (0, common_1.moduleScoped)(mysql_cli_module_keyname_1.MysqlCliModuleKeyname),
69
+ (0, tsyringe_1.injectable)(),
70
+ __param(2, (0, tsyringe_1.inject)("LogHandlerInterface")),
71
+ __metadata("design:paramtypes", [mysql_migration_manager_1.MysqlMigrationManager,
72
+ cli_1.CliOutput, Object])
73
+ ], MysqlMigrateVerifyCommand);
74
+ //# 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,gDAA0F;AAC1F,uCAA4C;AAE5C,0CAA6D;AAC7D,0EAAkE;AAClE,iFAA0E;AAC1E,iGAAwF;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,uEAAgC,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,iBAAQ,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,iBAAQ,CAAC,KAAK,CAAC;YACxB,CAAC;QACH,CAAC;KAAA;;AAzBU,8DAAyB;AAKZ,8CAAoB,GAAG,aAAa,AAAhB,CAAiB;oCALlD,yBAAyB;IAHrC,IAAA,YAAG,EAAC,iCAAwB,CAAC,OAAO,CAAC;IACrC,IAAA,qBAAY,EAAC,gDAAqB,CAAC;IACnC,IAAA,qBAAU,GAAE;IAWR,WAAA,IAAA,iBAAM,EAAC,qBAAqB,CAAC,CAAA;qCAFK,+CAAqB;QAC5B,eAAS;GAT5B,yBAAyB,CA0BrC"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.MysqlMigrateCommandOptions = void 0;
13
+ require("reflect-metadata");
14
+ const class_validator_1 = require("@pristine-ts/class-validator");
15
+ /**
16
+ * Flags for `pristine mysql:migrate [--config <keyname>] [--dry-run] [--force]`.
17
+ *
18
+ * `--config` picks the `MysqlConfig.uniqueKeyname` to target. Defaults to
19
+ * `__default__`. `--dry-run` prints the plan without writing anything. `--force`
20
+ * overrides the refusal-to-proceed when drift (Modified / Orphaned entries) is
21
+ * detected — used sparingly, on environments you're comfortable diverging.
22
+ */
23
+ class MysqlMigrateCommandOptions {
24
+ }
25
+ exports.MysqlMigrateCommandOptions = MysqlMigrateCommandOptions;
26
+ __decorate([
27
+ (0, class_validator_1.IsOptional)(),
28
+ (0, class_validator_1.IsString)(),
29
+ __metadata("design:type", String)
30
+ ], MysqlMigrateCommandOptions.prototype, "config", void 0);
31
+ __decorate([
32
+ (0, class_validator_1.IsOptional)(),
33
+ (0, class_validator_1.IsBoolean)(),
34
+ __metadata("design:type", Boolean)
35
+ ], MysqlMigrateCommandOptions.prototype, "dry-run", void 0);
36
+ __decorate([
37
+ (0, class_validator_1.IsOptional)(),
38
+ (0, class_validator_1.IsBoolean)(),
39
+ __metadata("design:type", Boolean)
40
+ ], MysqlMigrateCommandOptions.prototype, "force", void 0);
41
+ //# 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,4BAA0B;AAC1B,kEAA6E;AAE7E;;;;;;;GAOG;AACH,MAAa,0BAA0B;CAYtC;AAZD,gEAYC;AATC;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;0DACK;AAIhB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,GAAE;;2DACQ;AAIpB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,GAAE;;yDACI"}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
15
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
16
+ return new (P || (P = Promise))(function (resolve, reject) {
17
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
18
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
19
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
20
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
21
+ });
22
+ };
23
+ var MysqlMigrateCommand_1;
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.MysqlMigrateCommand = void 0;
26
+ const common_1 = require("@pristine-ts/common");
27
+ const tsyringe_1 = require("tsyringe");
28
+ const cli_1 = require("@pristine-ts/cli");
29
+ const mysql_cli_module_keyname_1 = require("../mysql-cli.module.keyname");
30
+ const mysql_migration_manager_1 = require("../managers/mysql-migration.manager");
31
+ const mysql_migrate_command_options_1 = require("./mysql-migrate.command-options");
32
+ /**
33
+ * `pristine mysql:migrate [--config <keyname>] [--dry-run] [--force]`
34
+ *
35
+ * Applies every Pending migration against the targeted database. Halts on the first
36
+ * failure. Refuses to proceed when drift (Modified / Orphaned entries) exists unless
37
+ * `--force` is given.
38
+ */
39
+ let MysqlMigrateCommand = MysqlMigrateCommand_1 = class MysqlMigrateCommand {
40
+ constructor(migrationManager, cliOutput, logHandler) {
41
+ this.migrationManager = migrationManager;
42
+ this.cliOutput = cliOutput;
43
+ this.logHandler = logHandler;
44
+ this.optionsType = mysql_migrate_command_options_1.MysqlMigrateCommandOptions;
45
+ this.name = "mysql:migrate";
46
+ this.description = "Apply pending MySQL migrations against the configured database.";
47
+ }
48
+ run(args) {
49
+ return __awaiter(this, void 0, void 0, function* () {
50
+ var _a;
51
+ const configUniqueKeyname = (_a = args.config) !== null && _a !== void 0 ? _a : MysqlMigrateCommand_1.DefaultConfigKeyname;
52
+ try {
53
+ const result = yield this.migrationManager.apply(configUniqueKeyname, {
54
+ dryRun: args["dry-run"] === true,
55
+ force: args.force === true,
56
+ });
57
+ this.cliOutput.writeLine(`Applying migrations against config: ${configUniqueKeyname}${result.dryRun ? " (dry-run)" : ""}`);
58
+ for (const entry of result.appliedMigrations) {
59
+ this.cliOutput.writeLine(` ✓ ${entry.name} (${entry.executionTimeMs} ms)`);
60
+ }
61
+ if (result.failedMigration !== undefined) {
62
+ this.cliOutput.writeLine(` ✗ ${result.failedMigration.name} (failed)`);
63
+ this.logHandler.error(`Migration ${result.failedMigration.name} failed: ${result.failedMigration.error}`);
64
+ return common_1.ExitCode.Error;
65
+ }
66
+ this.cliOutput.writeLine(`Applied ${result.appliedMigrations.length} migration(s). ${result.skippedAlreadyApplied.length} skipped.`);
67
+ return common_1.ExitCode.Success;
68
+ }
69
+ catch (error) {
70
+ this.logHandler.error("mysql:migrate failed.", { highlights: { error: error.message } });
71
+ return common_1.ExitCode.Error;
72
+ }
73
+ });
74
+ }
75
+ };
76
+ exports.MysqlMigrateCommand = MysqlMigrateCommand;
77
+ MysqlMigrateCommand.DefaultConfigKeyname = "__default__";
78
+ exports.MysqlMigrateCommand = MysqlMigrateCommand = MysqlMigrateCommand_1 = __decorate([
79
+ (0, common_1.tag)(common_1.ServiceDefinitionTagEnum.Command),
80
+ (0, common_1.moduleScoped)(mysql_cli_module_keyname_1.MysqlCliModuleKeyname),
81
+ (0, tsyringe_1.injectable)(),
82
+ __param(2, (0, tsyringe_1.inject)("LogHandlerInterface")),
83
+ __metadata("design:paramtypes", [mysql_migration_manager_1.MysqlMigrationManager,
84
+ cli_1.CliOutput, Object])
85
+ ], MysqlMigrateCommand);
86
+ //# 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":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAA0F;AAC1F,uCAA4C;AAE5C,0CAA6D;AAC7D,0EAAkE;AAClE,iFAA0E;AAC1E,mFAA2E;AAE3E;;;;;;GAMG;AAII,IAAM,mBAAmB,2BAAzB,MAAM,mBAAmB;IAO9B,YACmB,gBAAuC,EACvC,SAAoB,EACN,UAAgD;QAF9D,qBAAgB,GAAhB,gBAAgB,CAAuB;QACvC,cAAS,GAAT,SAAS,CAAW;QACW,eAAU,GAAV,UAAU,CAAqB;QATjF,gBAAW,GAAG,0DAA0B,CAAC;QACzC,SAAI,GAAG,eAAe,CAAC;QACvB,gBAAW,GAAG,iEAAiE,CAAC;IAShF,CAAC;IAEY,GAAG,CAAC,IAAgC;;;YAC/C,MAAM,mBAAmB,GAAG,MAAA,IAAI,CAAC,MAAM,mCAAI,qBAAmB,CAAC,oBAAoB,CAAC;YAEpF,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,mBAAmB,EAAE;oBACpE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI;oBAChC,KAAK,EAAE,IAAI,CAAC,KAAK,KAAK,IAAI;iBAC3B,CAAC,CAAC;gBAEH,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,uCAAuC,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC5H,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;oBAC7C,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,KAAK,CAAC,IAAI,MAAM,KAAK,CAAC,eAAe,MAAM,CAAC,CAAC;gBAC/E,CAAC;gBAED,IAAI,MAAM,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;oBACzC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,MAAM,CAAC,eAAe,CAAC,IAAI,YAAY,CAAC,CAAC;oBACzE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,aAAa,MAAM,CAAC,eAAe,CAAC,IAAI,YAAY,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC;oBAC1G,OAAO,iBAAQ,CAAC,KAAK,CAAC;gBACxB,CAAC;gBAED,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,WAAW,MAAM,CAAC,iBAAiB,CAAC,MAAM,kBAAkB,MAAM,CAAC,qBAAqB,CAAC,MAAM,WAAW,CAAC,CAAC;gBACrI,OAAO,iBAAQ,CAAC,OAAO,CAAC;YAC1B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAC,UAAU,EAAE,EAAC,KAAK,EAAG,KAAe,CAAC,OAAO,EAAC,EAAC,CAAC,CAAC;gBAChG,OAAO,iBAAQ,CAAC,KAAK,CAAC;YACxB,CAAC;QACH,CAAC;KAAA;;AAxCU,kDAAmB;AAKN,wCAAoB,GAAG,aAAa,AAAhB,CAAiB;8BALlD,mBAAmB;IAH/B,IAAA,YAAG,EAAC,iCAAwB,CAAC,OAAO,CAAC;IACrC,IAAA,qBAAY,EAAC,gDAAqB,CAAC;IACnC,IAAA,qBAAU,GAAE;IAWR,WAAA,IAAA,iBAAM,EAAC,qBAAqB,CAAC,CAAA;qCAFK,+CAAqB;QAC5B,eAAS;GAT5B,mBAAmB,CAyC/B"}
@@ -0,0 +1,18 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./migration-state.enum"), exports);
18
+ //# sourceMappingURL=enums.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../../src/enums/enums.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAuC"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MigrationStateEnum = void 0;
4
+ /**
5
+ * State of a single migration as observed by `MysqlMigrationManager.status` /
6
+ * `verify`. Computed from the union of registered migrations (DI) and applied
7
+ * records (the `pristine_migrations` table).
8
+ */
9
+ var MigrationStateEnum;
10
+ (function (MigrationStateEnum) {
11
+ /** Registered in DI, not in the database. Will be applied next `migrate` run. */
12
+ MigrationStateEnum["Pending"] = "pending";
13
+ /** Registered in DI, in the database, checksums match. Nothing to do. */
14
+ MigrationStateEnum["Applied"] = "applied";
15
+ /**
16
+ * Registered in DI, in the database, checksums differ. The migration's `up()` was
17
+ * edited after it was applied. Verify fails; apply refuses to proceed (unless
18
+ * `--force`).
19
+ */
20
+ MigrationStateEnum["Modified"] = "modified";
21
+ /**
22
+ * In the database, not registered in DI. The class was deleted from the codebase,
23
+ * or the CLI is targeting the wrong config. Verify fails; apply refuses to proceed
24
+ * (unless `--force`).
25
+ */
26
+ MigrationStateEnum["Orphaned"] = "orphaned";
27
+ })(MigrationStateEnum || (exports.MigrationStateEnum = MigrationStateEnum = {}));
28
+ //# 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,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,kCAAlB,kBAAkB,QAoB7B"}
@@ -0,0 +1,22 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./migration-checksum-mismatch.error"), exports);
18
+ __exportStar(require("./migration-duplicate-name.error"), exports);
19
+ __exportStar(require("./migration-execution.error"), exports);
20
+ __exportStar(require("./migration-invalid-name.error"), exports);
21
+ __exportStar(require("./migration-orphaned-record.error"), exports);
22
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../../src/errors/errors.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sEAAoD;AACpD,mEAAiD;AACjD,8DAA4C;AAC5C,iEAA+C;AAC/C,oEAAkD"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MigrationChecksumMismatchError = void 0;
4
+ /**
5
+ * Thrown by `verify` (and by `apply` without `--force`) when a migration that's
6
+ * already applied has had its `up()` body edited since. Indicates someone changed
7
+ * a migration after it ran somewhere — the new SQL was never applied to that
8
+ * database. The fix is either to revert the change or to write a new migration
9
+ * that produces the desired state.
10
+ */
11
+ class MigrationChecksumMismatchError extends Error {
12
+ constructor(migrationName, configUniqueKeyname, diskChecksum, appliedChecksum) {
13
+ super(`Migration "${migrationName}" has been edited since it was applied to config ` +
14
+ `"${configUniqueKeyname}". Disk checksum ${diskChecksum} vs applied ` +
15
+ `${appliedChecksum}. Revert the edit or add a new migration to roll forward.`);
16
+ this.migrationName = migrationName;
17
+ this.configUniqueKeyname = configUniqueKeyname;
18
+ this.diskChecksum = diskChecksum;
19
+ this.appliedChecksum = appliedChecksum;
20
+ Object.setPrototypeOf(this, MigrationChecksumMismatchError.prototype);
21
+ }
22
+ }
23
+ exports.MigrationChecksumMismatchError = MigrationChecksumMismatchError;
24
+ //# 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,MAAa,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;AAfD,wEAeC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MigrationDuplicateNameError = void 0;
4
+ /**
5
+ * Thrown when two registered migrations share the same `name` after filtering by
6
+ * `configUniqueKeynames` for the targeted config. Names must be globally unique per
7
+ * config because the database stores them in a `UNIQUE` column. The usual cause is
8
+ * a copy-paste mistake at scaffold time.
9
+ */
10
+ class MigrationDuplicateNameError extends Error {
11
+ constructor(migrationName, configUniqueKeyname) {
12
+ super(`Multiple registered migrations have the same name "${migrationName}" for ` +
13
+ `config "${configUniqueKeyname}". Each migration name must be unique. Rename ` +
14
+ `one of them and re-run.`);
15
+ this.migrationName = migrationName;
16
+ this.configUniqueKeyname = configUniqueKeyname;
17
+ Object.setPrototypeOf(this, MigrationDuplicateNameError.prototype);
18
+ }
19
+ }
20
+ exports.MigrationDuplicateNameError = MigrationDuplicateNameError;
21
+ //# sourceMappingURL=migration-duplicate-name.error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration-duplicate-name.error.js","sourceRoot":"","sources":["../../../../src/errors/migration-duplicate-name.error.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,MAAa,2BAA4B,SAAQ,KAAK;IACpD,YACkB,aAAqB,EACrB,mBAA2B;QAE3C,KAAK,CACH,sDAAsD,aAAa,QAAQ;YAC3E,WAAW,mBAAmB,gDAAgD;YAC9E,yBAAyB,CAC1B,CAAC;QAPc,kBAAa,GAAb,aAAa,CAAQ;QACrB,wBAAmB,GAAnB,mBAAmB,CAAQ;QAQ3C,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,2BAA2B,CAAC,SAAS,CAAC,CAAC;IACrE,CAAC;CACF;AAbD,kEAaC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MigrationExecutionError = void 0;
4
+ /**
5
+ * Thrown when mysql2 raises an error while executing a migration's SQL. Carries the
6
+ * failing migration name and wraps the underlying error for context. The `apply`
7
+ * orchestrator catches this, halts further migrations, and reports it as the
8
+ * `failedMigration` entry on the result.
9
+ */
10
+ class MigrationExecutionError extends Error {
11
+ constructor(migrationName, configUniqueKeyname, cause) {
12
+ super(`Migration "${migrationName}" failed against config "${configUniqueKeyname}": ` +
13
+ `${cause.message}`);
14
+ this.migrationName = migrationName;
15
+ this.configUniqueKeyname = configUniqueKeyname;
16
+ this.cause = cause;
17
+ Object.setPrototypeOf(this, MigrationExecutionError.prototype);
18
+ }
19
+ }
20
+ exports.MigrationExecutionError = MigrationExecutionError;
21
+ //# sourceMappingURL=migration-execution.error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration-execution.error.js","sourceRoot":"","sources":["../../../../src/errors/migration-execution.error.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,MAAa,uBAAwB,SAAQ,KAAK;IAChD,YACkB,aAAqB,EACrB,mBAA2B,EAC3B,KAAY;QAE5B,KAAK,CACH,cAAc,aAAa,4BAA4B,mBAAmB,KAAK;YAC/E,GAAG,KAAK,CAAC,OAAO,EAAE,CACnB,CAAC;QAPc,kBAAa,GAAb,aAAa,CAAQ;QACrB,wBAAmB,GAAnB,mBAAmB,CAAQ;QAC3B,UAAK,GAAL,KAAK,CAAO;QAO5B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,uBAAuB,CAAC,SAAS,CAAC,CAAC;IACjE,CAAC;CACF;AAbD,0DAaC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MigrationInvalidNameError = void 0;
4
+ /**
5
+ * Thrown when a registered migration's `name` doesn't satisfy the
6
+ * `<NN>-<kebab-slug>` regex (`/^\d+-[a-z0-9-]+$/`). Indicates a hand-edited or
7
+ * misnamed migration class. The fix is to rename to the convention and update the
8
+ * `name` field.
9
+ */
10
+ class MigrationInvalidNameError extends Error {
11
+ constructor(migrationName) {
12
+ super(`Migration name "${migrationName}" does not match the required pattern ` +
13
+ `<NN>-<kebab-slug> (e.g. "01-init", "02-add-users-table"). Rename the ` +
14
+ `class file and update its \`name\` field to match.`);
15
+ this.migrationName = migrationName;
16
+ Object.setPrototypeOf(this, MigrationInvalidNameError.prototype);
17
+ }
18
+ }
19
+ exports.MigrationInvalidNameError = MigrationInvalidNameError;
20
+ //# sourceMappingURL=migration-invalid-name.error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration-invalid-name.error.js","sourceRoot":"","sources":["../../../../src/errors/migration-invalid-name.error.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,MAAa,yBAA0B,SAAQ,KAAK;IAClD,YACkB,aAAqB;QAErC,KAAK,CACH,mBAAmB,aAAa,wCAAwC;YACxE,uEAAuE;YACvE,oDAAoD,CACrD,CAAC;QANc,kBAAa,GAAb,aAAa,CAAQ;QAQrC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,yBAAyB,CAAC,SAAS,CAAC,CAAC;IACnE,CAAC;CACF;AAZD,8DAYC"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MigrationOrphanedRecordError = void 0;
4
+ /**
5
+ * Thrown by `verify` (and by `apply` without `--force`) when the bookkeeping table
6
+ * holds a record for a migration that no longer exists in the registered DI graph.
7
+ * Indicates a deleted migration class, a renamed `name` field, or running against
8
+ * the wrong config. The fix is to restore the class, fix the name, or run against
9
+ * the correct config.
10
+ */
11
+ class MigrationOrphanedRecordError extends Error {
12
+ constructor(migrationName, configUniqueKeyname) {
13
+ super(`Database has a record for migration "${migrationName}" against config ` +
14
+ `"${configUniqueKeyname}" but no matching class is registered. Restore the ` +
15
+ `class, check the \`name\` field, or target a different config.`);
16
+ this.migrationName = migrationName;
17
+ this.configUniqueKeyname = configUniqueKeyname;
18
+ Object.setPrototypeOf(this, MigrationOrphanedRecordError.prototype);
19
+ }
20
+ }
21
+ exports.MigrationOrphanedRecordError = MigrationOrphanedRecordError;
22
+ //# sourceMappingURL=migration-orphaned-record.error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migration-orphaned-record.error.js","sourceRoot":"","sources":["../../../../src/errors/migration-orphaned-record.error.ts"],"names":[],"mappings":";;;AAAA;;;;;;GAMG;AACH,MAAa,4BAA6B,SAAQ,KAAK;IACrD,YACkB,aAAqB,EACrB,mBAA2B;QAE3C,KAAK,CACH,wCAAwC,aAAa,mBAAmB;YACxE,IAAI,mBAAmB,qDAAqD;YAC5E,gEAAgE,CACjE,CAAC;QAPc,kBAAa,GAAb,aAAa,CAAQ;QACrB,wBAAmB,GAAnB,mBAAmB,CAAQ;QAQ3C,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,4BAA4B,CAAC,SAAS,CAAC,CAAC;IACtE,CAAC;CACF;AAbD,oEAaC"}
@@ -0,0 +1,18 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./mysql-migration.interface"), exports);
18
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../src/interfaces/interfaces.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8DAA4C"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=mysql-migration.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mysql-migration.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/mysql-migration.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./mysql-migration-checksum.manager"), exports);
18
+ __exportStar(require("./mysql-migration-record.manager"), exports);
19
+ __exportStar(require("./mysql-migration-runner.manager"), exports);
20
+ __exportStar(require("./mysql-migration-scaffold.manager"), exports);
21
+ __exportStar(require("./mysql-migration.manager"), exports);
22
+ //# sourceMappingURL=managers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"managers.js","sourceRoot":"","sources":["../../../../src/managers/managers.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qEAAmD;AACnD,mEAAiD;AACjD,mEAAiD;AACjD,qEAAmD;AACnD,4DAA0C"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.MysqlMigrationChecksumManager = void 0;
10
+ const crypto_1 = require("crypto");
11
+ const tsyringe_1 = require("tsyringe");
12
+ /**
13
+ * Computes the stable sha256 hex digest of a migration's SQL string. Used both at
14
+ * apply time (to record what was applied) and at status/verify time (to detect
15
+ * drift). Canonicalization strips trivial editor noise — trailing whitespace per
16
+ * line, CRLF endings, leading/trailing whitespace — so identical SQL with different
17
+ * line-ending or final-newline conventions hashes the same.
18
+ *
19
+ * Whitespace *between* tokens is preserved: changing `SELECT *` to `SELECT *`
20
+ * does change the checksum. That's deliberate — anything beyond formatting noise
21
+ * is a real edit, and the user should know.
22
+ */
23
+ let MysqlMigrationChecksumManager = class MysqlMigrationChecksumManager {
24
+ compute(sql) {
25
+ return (0, crypto_1.createHash)("sha256").update(this.canonicalize(sql)).digest("hex");
26
+ }
27
+ canonicalize(sql) {
28
+ return sql.replace(/\r\n/g, "\n").replace(/[ \t]+\n/g, "\n").trim();
29
+ }
30
+ };
31
+ exports.MysqlMigrationChecksumManager = MysqlMigrationChecksumManager;
32
+ exports.MysqlMigrationChecksumManager = MysqlMigrationChecksumManager = __decorate([
33
+ (0, tsyringe_1.injectable)()
34
+ ], MysqlMigrationChecksumManager);
35
+ //# sourceMappingURL=mysql-migration-checksum.manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mysql-migration-checksum.manager.js","sourceRoot":"","sources":["../../../../src/managers/mysql-migration-checksum.manager.ts"],"names":[],"mappings":";;;;;;;;;AAAA,mCAAkC;AAClC,uCAAoC;AAEpC;;;;;;;;;;GAUG;AAEI,IAAM,6BAA6B,GAAnC,MAAM,6BAA6B;IACjC,OAAO,CAAC,GAAW;QACxB,OAAO,IAAA,mBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3E,CAAC;IAEO,YAAY,CAAC,GAAW;QAC9B,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IACtE,CAAC;CACF,CAAA;AARY,sEAA6B;wCAA7B,6BAA6B;IADzC,IAAA,qBAAU,GAAE;GACA,6BAA6B,CAQzC"}