@memberjunction/cli 3.3.0 → 4.0.0

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 (185) hide show
  1. package/README.md +28 -0
  2. package/bin/dev.cmd +2 -2
  3. package/bin/dev.js +5 -6
  4. package/bin/run.cmd +3 -3
  5. package/bin/run.js +14 -5
  6. package/dist/commands/ai/actions/list.d.ts +1 -0
  7. package/dist/commands/ai/actions/list.d.ts.map +1 -0
  8. package/dist/commands/ai/actions/list.js +14 -19
  9. package/dist/commands/ai/actions/list.js.map +1 -0
  10. package/dist/commands/ai/actions/run.d.ts +2 -1
  11. package/dist/commands/ai/actions/run.d.ts.map +1 -0
  12. package/dist/commands/ai/actions/run.js +24 -29
  13. package/dist/commands/ai/actions/run.js.map +1 -0
  14. package/dist/commands/ai/agents/list.d.ts +1 -0
  15. package/dist/commands/ai/agents/list.d.ts.map +1 -0
  16. package/dist/commands/ai/agents/list.js +14 -19
  17. package/dist/commands/ai/agents/list.js.map +1 -0
  18. package/dist/commands/ai/agents/run.d.ts +2 -1
  19. package/dist/commands/ai/agents/run.d.ts.map +1 -0
  20. package/dist/commands/ai/agents/run.js +20 -25
  21. package/dist/commands/ai/agents/run.js.map +1 -0
  22. package/dist/commands/ai/audit/agent-run.d.ts +7 -6
  23. package/dist/commands/ai/audit/agent-run.d.ts.map +1 -0
  24. package/dist/commands/ai/audit/agent-run.js +35 -63
  25. package/dist/commands/ai/audit/agent-run.js.map +1 -0
  26. package/dist/commands/ai/audit/index.d.ts +1 -0
  27. package/dist/commands/ai/audit/index.d.ts.map +1 -0
  28. package/dist/commands/ai/audit/index.js +5 -7
  29. package/dist/commands/ai/audit/index.js.map +1 -0
  30. package/dist/commands/ai/index.d.ts +1 -0
  31. package/dist/commands/ai/index.d.ts.map +1 -0
  32. package/dist/commands/ai/index.js +5 -7
  33. package/dist/commands/ai/index.js.map +1 -0
  34. package/dist/commands/ai/prompts/list.d.ts +1 -0
  35. package/dist/commands/ai/prompts/list.d.ts.map +1 -0
  36. package/dist/commands/ai/prompts/list.js +18 -23
  37. package/dist/commands/ai/prompts/list.js.map +1 -0
  38. package/dist/commands/ai/prompts/run.d.ts +6 -5
  39. package/dist/commands/ai/prompts/run.d.ts.map +1 -0
  40. package/dist/commands/ai/prompts/run.js +22 -27
  41. package/dist/commands/ai/prompts/run.js.map +1 -0
  42. package/dist/commands/bump/index.d.ts +2 -1
  43. package/dist/commands/bump/index.d.ts.map +1 -0
  44. package/dist/commands/bump/index.js +24 -52
  45. package/dist/commands/bump/index.js.map +1 -0
  46. package/dist/commands/clean/index.d.ts +3 -2
  47. package/dist/commands/clean/index.d.ts.map +1 -0
  48. package/dist/commands/clean/index.js +16 -22
  49. package/dist/commands/clean/index.js.map +1 -0
  50. package/dist/commands/codegen/index.d.ts +3 -2
  51. package/dist/commands/codegen/index.d.ts.map +1 -0
  52. package/dist/commands/codegen/index.js +14 -17
  53. package/dist/commands/codegen/index.js.map +1 -0
  54. package/dist/commands/codegen/manifest.d.ts +15 -0
  55. package/dist/commands/codegen/manifest.d.ts.map +1 -0
  56. package/dist/commands/codegen/manifest.js +65 -0
  57. package/dist/commands/codegen/manifest.js.map +1 -0
  58. package/dist/commands/dbdoc/analyze.d.ts +2 -1
  59. package/dist/commands/dbdoc/analyze.d.ts.map +1 -0
  60. package/dist/commands/dbdoc/analyze.js +11 -36
  61. package/dist/commands/dbdoc/analyze.js.map +1 -0
  62. package/dist/commands/dbdoc/export-sample-queries.d.ts +2 -1
  63. package/dist/commands/dbdoc/export-sample-queries.d.ts.map +1 -0
  64. package/dist/commands/dbdoc/export-sample-queries.js +19 -44
  65. package/dist/commands/dbdoc/export-sample-queries.js.map +1 -0
  66. package/dist/commands/dbdoc/export.d.ts +3 -2
  67. package/dist/commands/dbdoc/export.d.ts.map +1 -0
  68. package/dist/commands/dbdoc/export.js +20 -45
  69. package/dist/commands/dbdoc/export.js.map +1 -0
  70. package/dist/commands/dbdoc/generate-queries.d.ts +4 -3
  71. package/dist/commands/dbdoc/generate-queries.d.ts.map +1 -0
  72. package/dist/commands/dbdoc/generate-queries.js +14 -39
  73. package/dist/commands/dbdoc/generate-queries.js.map +1 -0
  74. package/dist/commands/dbdoc/index.d.ts +1 -0
  75. package/dist/commands/dbdoc/index.d.ts.map +1 -0
  76. package/dist/commands/dbdoc/index.js +5 -7
  77. package/dist/commands/dbdoc/index.js.map +1 -0
  78. package/dist/commands/dbdoc/init.d.ts +1 -0
  79. package/dist/commands/dbdoc/init.d.ts.map +1 -0
  80. package/dist/commands/dbdoc/init.js +7 -32
  81. package/dist/commands/dbdoc/init.js.map +1 -0
  82. package/dist/commands/dbdoc/reset.d.ts +1 -0
  83. package/dist/commands/dbdoc/reset.d.ts.map +1 -0
  84. package/dist/commands/dbdoc/reset.js +10 -35
  85. package/dist/commands/dbdoc/reset.js.map +1 -0
  86. package/dist/commands/dbdoc/review.d.ts +10 -0
  87. package/dist/commands/dbdoc/review.js +81 -0
  88. package/dist/commands/dbdoc/status.d.ts +2 -1
  89. package/dist/commands/dbdoc/status.d.ts.map +1 -0
  90. package/dist/commands/dbdoc/status.js +10 -35
  91. package/dist/commands/dbdoc/status.js.map +1 -0
  92. package/dist/commands/install/index.d.ts +76 -75
  93. package/dist/commands/install/index.d.ts.map +1 -0
  94. package/dist/commands/install/index.js +81 -111
  95. package/dist/commands/install/index.js.map +1 -0
  96. package/dist/commands/migrate/index.d.ts +4 -1
  97. package/dist/commands/migrate/index.d.ts.map +1 -0
  98. package/dist/commands/migrate/index.js +83 -73
  99. package/dist/commands/migrate/index.js.map +1 -0
  100. package/dist/commands/querygen/export.d.ts +1 -0
  101. package/dist/commands/querygen/export.d.ts.map +1 -0
  102. package/dist/commands/querygen/export.js +15 -17
  103. package/dist/commands/querygen/export.js.map +1 -0
  104. package/dist/commands/querygen/generate.d.ts +8 -7
  105. package/dist/commands/querygen/generate.d.ts.map +1 -0
  106. package/dist/commands/querygen/generate.js +28 -30
  107. package/dist/commands/querygen/generate.js.map +1 -0
  108. package/dist/commands/querygen/validate.d.ts +1 -0
  109. package/dist/commands/querygen/validate.d.ts.map +1 -0
  110. package/dist/commands/querygen/validate.js +15 -17
  111. package/dist/commands/querygen/validate.js.map +1 -0
  112. package/dist/commands/sync/file-reset.d.ts +3 -2
  113. package/dist/commands/sync/file-reset.d.ts.map +1 -0
  114. package/dist/commands/sync/file-reset.js +36 -64
  115. package/dist/commands/sync/file-reset.js.map +1 -0
  116. package/dist/commands/sync/init.d.ts +1 -0
  117. package/dist/commands/sync/init.d.ts.map +1 -0
  118. package/dist/commands/sync/init.js +16 -21
  119. package/dist/commands/sync/init.js.map +1 -0
  120. package/dist/commands/sync/pull.d.ts +7 -6
  121. package/dist/commands/sync/pull.d.ts.map +1 -0
  122. package/dist/commands/sync/pull.js +46 -51
  123. package/dist/commands/sync/pull.js.map +1 -0
  124. package/dist/commands/sync/push.d.ts +4 -3
  125. package/dist/commands/sync/push.d.ts.map +1 -0
  126. package/dist/commands/sync/push.js +44 -49
  127. package/dist/commands/sync/push.js.map +1 -0
  128. package/dist/commands/sync/status.d.ts +4 -3
  129. package/dist/commands/sync/status.d.ts.map +1 -0
  130. package/dist/commands/sync/status.js +28 -33
  131. package/dist/commands/sync/status.js.map +1 -0
  132. package/dist/commands/sync/validate.d.ts +3 -2
  133. package/dist/commands/sync/validate.d.ts.map +1 -0
  134. package/dist/commands/sync/validate.js +31 -59
  135. package/dist/commands/sync/validate.js.map +1 -0
  136. package/dist/commands/sync/watch.d.ts +3 -2
  137. package/dist/commands/sync/watch.d.ts.map +1 -0
  138. package/dist/commands/sync/watch.js +34 -63
  139. package/dist/commands/sync/watch.js.map +1 -0
  140. package/dist/commands/test/compare.d.ts +6 -5
  141. package/dist/commands/test/compare.d.ts.map +1 -0
  142. package/dist/commands/test/compare.js +20 -22
  143. package/dist/commands/test/compare.js.map +1 -0
  144. package/dist/commands/test/history.d.ts +6 -5
  145. package/dist/commands/test/history.d.ts.map +1 -0
  146. package/dist/commands/test/history.js +17 -19
  147. package/dist/commands/test/history.js.map +1 -0
  148. package/dist/commands/test/index.d.ts +1 -0
  149. package/dist/commands/test/index.d.ts.map +1 -0
  150. package/dist/commands/test/index.js +6 -8
  151. package/dist/commands/test/index.js.map +1 -0
  152. package/dist/commands/test/list.d.ts +5 -4
  153. package/dist/commands/test/list.d.ts.map +1 -0
  154. package/dist/commands/test/list.js +18 -20
  155. package/dist/commands/test/list.js.map +1 -0
  156. package/dist/commands/test/run.d.ts +5 -4
  157. package/dist/commands/test/run.d.ts.map +1 -0
  158. package/dist/commands/test/run.js +19 -21
  159. package/dist/commands/test/run.js.map +1 -0
  160. package/dist/commands/test/suite.d.ts +4 -3
  161. package/dist/commands/test/suite.d.ts.map +1 -0
  162. package/dist/commands/test/suite.js +17 -19
  163. package/dist/commands/test/suite.js.map +1 -0
  164. package/dist/commands/test/validate.d.ts +4 -3
  165. package/dist/commands/test/validate.d.ts.map +1 -0
  166. package/dist/commands/test/validate.js +19 -21
  167. package/dist/commands/test/validate.js.map +1 -0
  168. package/dist/config.d.ts +76 -38
  169. package/dist/config.d.ts.map +1 -0
  170. package/dist/config.js +108 -60
  171. package/dist/config.js.map +1 -0
  172. package/dist/hooks/init.d.ts +1 -0
  173. package/dist/hooks/init.d.ts.map +1 -0
  174. package/dist/hooks/init.js +5 -29
  175. package/dist/hooks/init.js.map +1 -0
  176. package/dist/hooks/prerun.d.ts +1 -0
  177. package/dist/hooks/prerun.d.ts.map +1 -0
  178. package/dist/hooks/prerun.js +4 -8
  179. package/dist/hooks/prerun.js.map +1 -0
  180. package/dist/index.d.ts +1 -0
  181. package/dist/index.d.ts.map +1 -0
  182. package/dist/index.js +2 -5
  183. package/dist/index.js.map +1 -0
  184. package/package.json +32 -30
  185. package/oclif.manifest.json +0 -2504
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/install/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAKtE,OAAO,EAAY,CAAC,EAAE,MAAM,KAAK,CAAC;AAUlC,KAAK,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAC3C,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BhB,CAAC;AAEH,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,OAAO;IAC1C,MAAM,CAAC,WAAW,SAA4B;IAE9C,MAAM,CAAC,QAAQ,WAGb;IAEF,MAAM,CAAC,KAAK;;MAEV;IAEF,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;IACtC,UAAU,EAAG,MAAM,CAAC;IAEd,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IA6GpB,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;IAwH1B;;;OAGG;IACH,UAAU,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE;IAW5B,gBAAgB;IAOhB;;;;OAIG;IACH,uBAAuB,CAAC,KAAK,SAAI;IAkCjC;;;;OAIG;IACG,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAoCxF,qBAAqB,CAAC,UAAU,EAAE,MAAM;IAiBxC;;;;;;OAMG;IACG,wBAAwB,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM;CAiDxG"}
@@ -1,40 +1,12 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- const prompts_1 = require("@inquirer/prompts");
30
- const dotenv = __importStar(require("dotenv"));
31
- const recast = __importStar(require("recast"));
32
- const core_1 = require("@oclif/core");
33
- const fs = __importStar(require("fs-extra"));
34
- const node_child_process_1 = require("node:child_process");
35
- const node_os_1 = __importDefault(require("node:os"));
36
- const node_path_1 = __importDefault(require("node:path"));
37
- const zod_1 = require("zod");
1
+ import { confirm, input, select } from '@inquirer/prompts';
2
+ import * as dotenv from 'dotenv';
3
+ import * as recast from 'recast';
4
+ import { Command, Flags } from '@oclif/core';
5
+ import * as fs from 'fs-extra';
6
+ import { execSync } from 'node:child_process';
7
+ import os from 'node:os';
8
+ import path from 'node:path';
9
+ import { ZodError, z } from 'zod';
38
10
  // Directories are relative to execution cwd
39
11
  const GENERATED_ENTITIES_DIR = 'GeneratedEntities';
40
12
  const SQL_SCRIPTS_DIR = 'SQL Scripts';
@@ -42,46 +14,44 @@ const GENERATED_DIR = 'generated';
42
14
  const MJ_BASE_DIR = 'MJ_BASE';
43
15
  const MJAPI_DIR = 'MJAPI';
44
16
  const MJEXPLORER_DIR = 'MJExplorer';
45
- const configSchema = zod_1.z.object({
46
- dbUrl: zod_1.z.string().min(1),
47
- dbInstance: zod_1.z.string(),
48
- dbTrustServerCertificate: zod_1.z.coerce
17
+ const configSchema = z.object({
18
+ dbUrl: z.string().min(1),
19
+ dbInstance: z.string(),
20
+ dbTrustServerCertificate: z.coerce
49
21
  .boolean()
50
22
  .default(false)
51
23
  .transform((v) => (v ? 'Y' : 'N')),
52
- dbDatabase: zod_1.z.string().min(1),
53
- dbPort: zod_1.z.number({ coerce: true }).int().positive(),
54
- codeGenLogin: zod_1.z.string(),
55
- codeGenPwD: zod_1.z.string(),
56
- mjAPILogin: zod_1.z.string(),
57
- mjAPIPwD: zod_1.z.string(),
58
- graphQLPort: zod_1.z.number({ coerce: true }).int().positive().optional(),
59
- authType: zod_1.z.enum(['MSAL', 'AUTH0', 'BOTH']),
60
- msalWebClientId: zod_1.z.string().optional(),
61
- msalTenantId: zod_1.z.string().optional(),
62
- auth0ClientId: zod_1.z.string().optional(),
63
- auth0ClientSecret: zod_1.z.string().optional(),
64
- auth0Domain: zod_1.z.string().optional(),
65
- createNewUser: zod_1.z.coerce.boolean().optional(),
66
- userEmail: zod_1.z.string().email().or(zod_1.z.literal('')).optional().default(''),
67
- userFirstName: zod_1.z.string().optional(),
68
- userLastName: zod_1.z.string().optional(),
69
- userName: zod_1.z.string().optional(),
70
- openAIAPIKey: zod_1.z.string().optional(),
71
- anthropicAPIKey: zod_1.z.string().optional(),
72
- mistralAPIKey: zod_1.z.string().optional(),
24
+ dbDatabase: z.string().min(1),
25
+ dbPort: z.number({ coerce: true }).int().positive(),
26
+ codeGenLogin: z.string(),
27
+ codeGenPwD: z.string(),
28
+ mjAPILogin: z.string(),
29
+ mjAPIPwD: z.string(),
30
+ graphQLPort: z.number({ coerce: true }).int().positive().optional(),
31
+ authType: z.enum(['MSAL', 'AUTH0', 'BOTH']),
32
+ msalWebClientId: z.string().optional(),
33
+ msalTenantId: z.string().optional(),
34
+ auth0ClientId: z.string().optional(),
35
+ auth0ClientSecret: z.string().optional(),
36
+ auth0Domain: z.string().optional(),
37
+ createNewUser: z.coerce.boolean().optional(),
38
+ userEmail: z.string().email().or(z.literal('')).optional().default(''),
39
+ userFirstName: z.string().optional(),
40
+ userLastName: z.string().optional(),
41
+ userName: z.string().optional(),
42
+ openAIAPIKey: z.string().optional(),
43
+ anthropicAPIKey: z.string().optional(),
44
+ mistralAPIKey: z.string().optional(),
73
45
  });
74
- class Install extends core_1.Command {
75
- static description = 'Install MemberJunction';
76
- static examples = [
46
+ export default class Install extends Command {
47
+ static { this.description = 'Install MemberJunction'; }
48
+ static { this.examples = [
77
49
  `<%= config.bin %> <%= command.id %>
78
50
  `,
79
- ];
80
- static flags = {
81
- verbose: core_1.Flags.boolean({ char: 'v', description: 'Enable additional logging' }),
82
- };
83
- flags;
84
- userConfig;
51
+ ]; }
52
+ static { this.flags = {
53
+ verbose: Flags.boolean({ char: 'v', description: 'Enable additional logging' }),
54
+ }; }
85
55
  async run() {
86
56
  const parsed = await this.parse(Install);
87
57
  this.flags = parsed.flags;
@@ -98,7 +68,7 @@ class Install extends core_1.Command {
98
68
  //*******************************************************************
99
69
  this.log('\nBootstrapping GeneratedEntities...');
100
70
  this.log('Running npm install...');
101
- (0, node_child_process_1.execSync)('npm install', { stdio: 'inherit', cwd: GENERATED_ENTITIES_DIR });
71
+ execSync('npm install', { stdio: 'inherit', cwd: GENERATED_ENTITIES_DIR });
102
72
  //*******************************************************************
103
73
  // Process Config
104
74
  //*******************************************************************
@@ -154,12 +124,12 @@ ASK_SKIP_ORGANIZATION_ID = 1
154
124
  //*******************************************************************
155
125
  this.log('\n\nBootstrapping MJAPI...');
156
126
  this.log(' Running npm link for generated code...');
157
- (0, node_child_process_1.execSync)('npm link ../GeneratedEntities ../GeneratedActions', { stdio: 'inherit', cwd: MJAPI_DIR });
127
+ execSync('npm link ../GeneratedEntities ../GeneratedActions', { stdio: 'inherit', cwd: MJAPI_DIR });
158
128
  this.log('Running CodeGen...');
159
129
  this.renameFolderToMJ_BASE(this.userConfig.dbDatabase);
160
130
  // next, run CodeGen
161
131
  // We do not manually run the compilation for GeneratedEntities because CodeGen handles that, but notice above that we did npm install for GeneratedEntities otherwise when CodeGen attempts to compile it, it will fail.
162
- dotenv.config();
132
+ dotenv.config({ quiet: true });
163
133
  this.config.runCommand('codegen');
164
134
  // Process MJExplorer
165
135
  this.log('\nProcessing MJExplorer...');
@@ -172,10 +142,10 @@ ASK_SKIP_ORGANIZATION_ID = 1
172
142
  AUTH0_DOMAIN: this.userConfig.auth0Domain,
173
143
  AUTH0_CLIENTID: this.userConfig.auth0ClientId,
174
144
  };
175
- await this.updateEnvironmentFiles(node_path_1.default.join(MJEXPLORER_DIR, 'src', 'environments'), config);
145
+ await this.updateEnvironmentFiles(path.join(MJEXPLORER_DIR, 'src', 'environments'), config);
176
146
  // keep on going with MJ Explorer - do the rest of the stuff
177
147
  this.log(' Running npm link for GeneratedEntities...');
178
- (0, node_child_process_1.execSync)('npm link ../GeneratedEntities', { stdio: 'inherit', cwd: MJEXPLORER_DIR });
148
+ execSync('npm link ../GeneratedEntities', { stdio: 'inherit', cwd: MJEXPLORER_DIR });
179
149
  this.log('Installation complete!');
180
150
  }
181
151
  async getUserConfiguration() {
@@ -185,50 +155,50 @@ ASK_SKIP_ORGANIZATION_ID = 1
185
155
  userConfig = configSchema.parse(configObject);
186
156
  }
187
157
  catch (e) {
188
- if (e instanceof zod_1.ZodError) {
189
- this.log(`Invalid config file found at '${node_path_1.default.join(fs.realpathSync('.'), 'install.config.json')}'${this.flags.verbose ? '' : ', retry with --verbose for details'}`);
158
+ if (e instanceof ZodError) {
159
+ this.log(`Invalid config file found at '${path.join(fs.realpathSync('.'), 'install.config.json')}'${this.flags.verbose ? '' : ', retry with --verbose for details'}`);
190
160
  if (this.flags.verbose) {
191
161
  console.table(e.issues);
192
162
  }
193
163
  }
194
164
  else {
195
- this.log(`No config file found at '${node_path_1.default.join(fs.realpathSync('.'), 'install.config.json')}'`);
165
+ this.log(`No config file found at '${path.join(fs.realpathSync('.'), 'install.config.json')}'`);
196
166
  }
197
167
  }
198
168
  if (!userConfig) {
199
169
  this.log('\n>>> Please answer the following questions to setup the .env files for CodeGen. After this process you can manually edit the .env file as desired.');
200
- const dbUrl = await (0, prompts_1.input)({
170
+ const dbUrl = await input({
201
171
  message: 'Enter the database server hostname:',
202
172
  validate: (v) => configSchema.shape.dbDatabase.safeParse(v).success,
203
173
  });
204
- const dbInstance = await (0, prompts_1.input)({
174
+ const dbInstance = await input({
205
175
  message: 'If you are using a named instance on that server, if so, enter the name here, if not leave blank:',
206
176
  });
207
- const dbTrustServerCertificate = (await (0, prompts_1.confirm)({
177
+ const dbTrustServerCertificate = (await confirm({
208
178
  message: 'Does the database server use a self-signed certificate? If you are using a local instance, enter Y:',
209
179
  }))
210
180
  ? 'Y'
211
181
  : 'N';
212
- const dbDatabase = await (0, prompts_1.input)({
182
+ const dbDatabase = await input({
213
183
  message: 'Enter the database name on that server:',
214
184
  validate: (v) => configSchema.shape.dbDatabase.safeParse(v).success,
215
185
  });
216
- const dbPort = await (0, prompts_1.input)({
186
+ const dbPort = await input({
217
187
  message: 'Enter the port the database server listens on',
218
188
  validate: (v) => configSchema.shape.dbPort.safeParse(v).success,
219
189
  default: '1433',
220
190
  });
221
- const codeGenLogin = await (0, prompts_1.input)({ message: 'Enter the database login for CodeGen:' });
222
- const codeGenPwD = await (0, prompts_1.input)({ message: 'Enter the database password for CodeGen:' });
191
+ const codeGenLogin = await input({ message: 'Enter the database login for CodeGen:' });
192
+ const codeGenPwD = await input({ message: 'Enter the database password for CodeGen:' });
223
193
  this.log('\n>>> Please answer the following questions to setup the .env files for MJAPI. After this process you can manually edit the .env file in CodeGen as desired.');
224
- const mjAPILogin = await (0, prompts_1.input)({ message: 'Enter the database login for MJAPI:' });
225
- const mjAPIPwD = await (0, prompts_1.input)({ message: 'Enter the database password for MJAPI:' });
226
- const graphQLPort = await (0, prompts_1.input)({
194
+ const mjAPILogin = await input({ message: 'Enter the database login for MJAPI:' });
195
+ const mjAPIPwD = await input({ message: 'Enter the database password for MJAPI:' });
196
+ const graphQLPort = await input({
227
197
  message: 'Enter the port to use for the GraphQL API',
228
198
  validate: (v) => configSchema.shape.graphQLPort.safeParse(v).success,
229
199
  default: '4000',
230
200
  });
231
- const authType = await (0, prompts_1.select)({
201
+ const authType = await select({
232
202
  message: 'Will you be using Microsoft Entra (formerly Azure AD), Auth0, or both for authentication services for MJAPI:',
233
203
  choices: [
234
204
  { name: 'Microsoft Entra (MSAL)', value: 'MSAL' },
@@ -236,26 +206,26 @@ ASK_SKIP_ORGANIZATION_ID = 1
236
206
  { name: 'Both', value: 'BOTH' },
237
207
  ],
238
208
  });
239
- const msalTenantId = ['BOTH', 'MSAL'].includes(authType) ? await (0, prompts_1.input)({ message: 'Enter the web client ID for Entra:' }) : '';
240
- const msalWebClientId = ['BOTH', 'MSAL'].includes(authType) ? await (0, prompts_1.input)({ message: 'Enter the tenant ID for Entra:' }) : '';
241
- const auth0ClientId = ['BOTH', 'AUTH0'].includes(authType) ? await (0, prompts_1.input)({ message: 'Enter the client ID for Auth0:' }) : '';
242
- const auth0ClientSecret = ['BOTH', 'AUTH0'].includes(authType) ? await (0, prompts_1.input)({ message: 'Enter the client secret for Auth0:' }) : '';
243
- const auth0Domain = ['BOTH', 'AUTH0'].includes(authType) ? await (0, prompts_1.input)({ message: 'Enter the domain for Auth0:' }) : '';
244
- const createNewUser = await (0, prompts_1.confirm)({ message: 'Do you want to create a new user in the database? (Y/N):' });
209
+ const msalTenantId = ['BOTH', 'MSAL'].includes(authType) ? await input({ message: 'Enter the web client ID for Entra:' }) : '';
210
+ const msalWebClientId = ['BOTH', 'MSAL'].includes(authType) ? await input({ message: 'Enter the tenant ID for Entra:' }) : '';
211
+ const auth0ClientId = ['BOTH', 'AUTH0'].includes(authType) ? await input({ message: 'Enter the client ID for Auth0:' }) : '';
212
+ const auth0ClientSecret = ['BOTH', 'AUTH0'].includes(authType) ? await input({ message: 'Enter the client secret for Auth0:' }) : '';
213
+ const auth0Domain = ['BOTH', 'AUTH0'].includes(authType) ? await input({ message: 'Enter the domain for Auth0:' }) : '';
214
+ const createNewUser = await confirm({ message: 'Do you want to create a new user in the database? (Y/N):' });
245
215
  const userEmail = createNewUser
246
- ? await (0, prompts_1.input)({
216
+ ? await input({
247
217
  message: 'Enter the new user email',
248
218
  validate: (v) => configSchema.shape.userEmail.safeParse(v).success,
249
219
  })
250
220
  : '';
251
- const userFirstName = createNewUser ? await (0, prompts_1.input)({ message: 'Enter the new user first name:' }) : '';
252
- const userLastName = createNewUser ? await (0, prompts_1.input)({ message: 'Enter the new user last name::' }) : '';
221
+ const userFirstName = createNewUser ? await input({ message: 'Enter the new user first name:' }) : '';
222
+ const userLastName = createNewUser ? await input({ message: 'Enter the new user last name::' }) : '';
253
223
  const userName = createNewUser
254
- ? await (0, prompts_1.input)({ message: 'Enter the new user name (leave blank to use email):', default: userEmail })
224
+ ? await input({ message: 'Enter the new user name (leave blank to use email):', default: userEmail })
255
225
  : '';
256
- const openAIAPIKey = await (0, prompts_1.input)({ message: 'Enter the OpenAI API Key (leave blank if not using):' });
257
- const anthropicAPIKey = await (0, prompts_1.input)({ message: 'Enter the Anthropic API Key (leave blank if not using):' });
258
- const mistralAPIKey = await (0, prompts_1.input)({ message: 'Enter the Mistral API Key (leave blank if not using):' });
226
+ const openAIAPIKey = await input({ message: 'Enter the OpenAI API Key (leave blank if not using):' });
227
+ const anthropicAPIKey = await input({ message: 'Enter the Anthropic API Key (leave blank if not using):' });
228
+ const mistralAPIKey = await input({ message: 'Enter the Mistral API Key (leave blank if not using):' });
259
229
  userConfig = configSchema.parse({
260
230
  dbUrl,
261
231
  dbInstance,
@@ -292,7 +262,7 @@ ASK_SKIP_ORGANIZATION_ID = 1
292
262
  verifyDirs(...dirs) {
293
263
  dirs.forEach((dir) => {
294
264
  if (!fs.existsSync(dir)) {
295
- this.error(`Unable to locate required package at '${node_path_1.default.join(fs.realpathSync('.'), dir)}'`, {
265
+ this.error(`Unable to locate required package at '${path.join(fs.realpathSync('.'), dir)}'`, {
296
266
  exit: 1,
297
267
  suggestions: ['Run the install from the same directory as the extracted MemberJunction distribution'],
298
268
  });
@@ -317,17 +287,17 @@ ASK_SKIP_ORGANIZATION_ID = 1
317
287
  const GBToBytes = 1024 * 1024 * 1024;
318
288
  const requiredSpace = numGB * GBToBytes;
319
289
  let freeSpace;
320
- if (node_os_1.default.platform() === 'win32') {
290
+ if (os.platform() === 'win32') {
321
291
  // For Windows, check the C: drive
322
292
  const command = `wmic LogicalDisk where DeviceID="C:" get FreeSpace`;
323
- const output = (0, node_child_process_1.execSync)(command).toString();
293
+ const output = execSync(command).toString();
324
294
  const lines = output.trim().split('\n');
325
295
  freeSpace = parseInt(lines[1].trim());
326
296
  }
327
297
  else {
328
298
  // For POSIX systems, check the root directory
329
299
  const command = `df -k / | tail -1 | awk '{ print $4; }'`;
330
- freeSpace = parseInt((0, node_child_process_1.execSync)(command).toString().trim()) * 1024;
300
+ freeSpace = parseInt(execSync(command).toString().trim()) * 1024;
331
301
  }
332
302
  if (freeSpace >= requiredSpace) {
333
303
  this.log(` Sufficient disk space available: ${Math.round(freeSpace / GBToBytes)} GB`);
@@ -362,7 +332,7 @@ ASK_SKIP_ORGANIZATION_ID = 1
362
332
  if (this.flags.verbose) {
363
333
  this.log(`Updating ${file}`);
364
334
  }
365
- const filePath = node_path_1.default.join(dirPath, file);
335
+ const filePath = path.join(dirPath, file);
366
336
  const data = await fs.readFile(filePath, 'utf8');
367
337
  // Replace the values in the file.
368
338
  let updatedData = data;
@@ -382,8 +352,8 @@ ASK_SKIP_ORGANIZATION_ID = 1
382
352
  }
383
353
  renameFolderToMJ_BASE(dbDatabase) {
384
354
  // rename the MJ_BASE set of SQL Scripts to our new dbname
385
- const oldFolderPath = node_path_1.default.join(SQL_SCRIPTS_DIR, GENERATED_DIR, MJ_BASE_DIR);
386
- const newFolderPath = node_path_1.default.join(SQL_SCRIPTS_DIR, GENERATED_DIR, dbDatabase); // Assuming dbDatabase holds the new name
355
+ const oldFolderPath = path.join(SQL_SCRIPTS_DIR, GENERATED_DIR, MJ_BASE_DIR);
356
+ const newFolderPath = path.join(SQL_SCRIPTS_DIR, GENERATED_DIR, dbDatabase); // Assuming dbDatabase holds the new name
387
357
  if (!fs.existsSync(oldFolderPath)) {
388
358
  this.warn(`SQL scripts not found at '${oldFolderPath}', skipping rename`);
389
359
  return;
@@ -445,4 +415,4 @@ ASK_SKIP_ORGANIZATION_ID = 1
445
415
  }
446
416
  }
447
417
  }
448
- exports.default = Install;
418
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/install/index.ts"],"names":[],"mappings":"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"}
@@ -4,8 +4,11 @@ export default class Migrate extends Command {
4
4
  static examples: string[];
5
5
  static flags: {
6
6
  verbose: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
7
- tag: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
7
+ tag: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
8
+ schema: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
9
+ dir: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
8
10
  };
9
11
  run(): Promise<void>;
10
12
  private analyzeFlywayError;
11
13
  }
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/migrate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAQ7C,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,OAAO;IAC1C,MAAM,CAAC,WAAW,SAAuD;IAEzE,MAAM,CAAC,QAAQ,WAOb;IAEF,MAAM,CAAC,KAAK;;;;;MAKV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAwI1B,OAAO,CAAC,kBAAkB;CAgH3B"}
@@ -1,37 +1,42 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const core_1 = require("@oclif/core");
7
- const node_flyway_1 = require("node-flyway");
8
- const ora_classic_1 = __importDefault(require("ora-classic"));
9
- const config_1 = require("../../config");
10
- class Migrate extends core_1.Command {
11
- static description = 'Migrate MemberJunction database to latest version';
12
- static examples = [
1
+ import { Command, Flags } from '@oclif/core';
2
+ import { Flyway } from 'node-flyway';
3
+ import ora from 'ora-classic';
4
+ import { spawnSync } from 'child_process';
5
+ import path from 'path';
6
+ import os from 'os';
7
+ import { getValidatedConfig, getFlywayConfig } from '../../config.js';
8
+ export default class Migrate extends Command {
9
+ static { this.description = 'Migrate MemberJunction database to latest version'; }
10
+ static { this.examples = [
13
11
  `<%= config.bin %> <%= command.id %>
14
12
  `,
15
- ];
16
- static flags = {
17
- verbose: core_1.Flags.boolean({ char: 'v', description: 'Enable additional logging' }),
18
- tag: core_1.Flags.string({ char: 't', description: 'Version tag to use for running remote migrations' }),
19
- };
13
+ `<%= config.bin %> <%= command.id %> --schema __BCSaaS --dir ./migrations/v1
14
+ `,
15
+ `<%= config.bin %> <%= command.id %> --schema __BCSaaS --tag v1.0.0
16
+ `,
17
+ ]; }
18
+ static { this.flags = {
19
+ verbose: Flags.boolean({ char: 'v', description: 'Enable additional logging' }),
20
+ tag: Flags.string({ char: 't', description: 'Version tag to use for running remote migrations' }),
21
+ schema: Flags.string({ char: 's', description: 'Target schema (overrides coreSchema from config)' }),
22
+ dir: Flags.string({ description: 'Migration source directory (overrides migrationsLocation from config)' }),
23
+ }; }
20
24
  async run() {
21
25
  const { flags } = await this.parse(Migrate);
22
- const config = (0, config_1.getValidatedConfig)();
23
- const flywayConfig = await (0, config_1.getFlywayConfig)(config, flags.tag);
24
- const flyway = new node_flyway_1.Flyway(flywayConfig);
26
+ const config = getValidatedConfig();
27
+ const targetSchema = flags.schema || config.coreSchema;
28
+ const flywayConfig = await getFlywayConfig(config, flags.tag, flags.schema, flags.dir);
29
+ const flyway = new Flyway(flywayConfig);
25
30
  if (flags.verbose) {
26
31
  this.log(`Connecting to ${flywayConfig.url}`);
27
32
  this.log(`Database Connection: ${config.dbHost}, ${config.dbDatabase}, User: ${flywayConfig.user}`);
28
- this.log(`Migrating ${config.coreSchema} schema using migrations from:\n\t- ${flywayConfig.migrationLocations.join('\n\t- ')}\n`);
33
+ this.log(`Migrating ${targetSchema} schema using migrations from:\n\t- ${flywayConfig.migrationLocations.join('\n\t- ')}\n`);
29
34
  this.log(`Flyway config settings: baselineVersion: ${config.baselineVersion}, baselineMigrate: ${config.baselineOnMigrate}\n`);
30
35
  }
31
36
  if (flags.tag) {
32
37
  this.log(`Migrating to ${flags.tag}`);
33
38
  }
34
- const spinner = (0, ora_classic_1.default)('Running migrations...');
39
+ const spinner = ora('Running migrations...');
35
40
  spinner.start();
36
41
  const result = await flyway.migrate();
37
42
  const isParseError = result.error?.errorCode === 'UNABLE_TO_PARSE_RESPONSE';
@@ -43,32 +48,37 @@ class Migrate extends core_1.Command {
43
48
  }
44
49
  }
45
50
  else if (isParseError) {
46
- // Parse error - could be SQL error or connection issue
47
- // Run Flyway CLI directly to get the actual error
48
- spinner.fail();
49
- this.logToStderr('\nāŒ Migration failed - unable to parse Flyway response.');
50
- this.logToStderr(`Execution time: ${result.additionalDetails.executionTime / 1000}s\n`);
51
- this.logToStderr('šŸ” Running diagnostic to identify the actual error...');
52
- const dbInfo = `${config.dbHost}:${config.dbPort}/${config.dbDatabase}`;
53
- this.logToStderr(` Database: ${dbInfo}`);
54
- this.logToStderr(` User: ${config.codeGenLogin}\n`);
51
+ // Parse error - could be SQL error or connection issue, or just a node-flyway bug
52
+ // Run Flyway CLI directly to determine if migration actually succeeded
53
+ spinner.text = 'Verifying migration status...';
55
54
  try {
56
- const { spawnSync } = require('child_process');
57
- const path = require('path');
58
- const os = require('os');
59
55
  // Construct Flyway executable path
60
56
  const flywayDir = result.additionalDetails.flywayCli.location;
61
57
  const flywayExeName = os.platform() === 'win32' ? 'flyway.cmd' : 'flyway';
62
58
  const flywayExePath = path.join(flywayDir, flywayExeName);
63
59
  // Use spawnSync to avoid shell interpretation of special characters in password
64
60
  const jdbcUrl = `jdbc:sqlserver://${config.dbHost}:${config.dbPort};databaseName=${config.dbDatabase};trustServerCertificate=${config.dbTrustServerCertificate}`;
65
- // Build common args
61
+ // Build common args - use targetSchema instead of coreSchema
62
+ // This ensures diagnostic validates the schema being migrated, not the core MJ schema
66
63
  const baseArgs = [
67
64
  `-url=${jdbcUrl}`,
68
65
  `-user=${config.codeGenLogin}`,
69
66
  `-password=${config.codeGenPassword}`,
70
- `-schemas=${config.coreSchema}`
67
+ `-schemas=${targetSchema}`
71
68
  ];
69
+ // Add placeholder arguments from config
70
+ // Read directly from config.SQLOutput.schemaPlaceholders since node-flyway doesn't use them
71
+ const schemaPlaceholders = config.SQLOutput?.schemaPlaceholders;
72
+ if (schemaPlaceholders && schemaPlaceholders.length > 0) {
73
+ schemaPlaceholders.forEach(({ schema, placeholder }) => {
74
+ const cleanPlaceholder = placeholder.replace(/^\$\{|\}$/g, '');
75
+ // Skip Flyway built-in placeholders
76
+ if (cleanPlaceholder.startsWith('flyway:'))
77
+ return;
78
+ // Flyway CLI format: -placeholders.PLACEHOLDER_NAME=value
79
+ baseArgs.push(`-placeholders.${cleanPlaceholder}=${schema}`);
80
+ });
81
+ }
72
82
  // Convert relative migration paths to absolute paths
73
83
  const absoluteMigrationPaths = flywayConfig.migrationLocations.map((loc) => {
74
84
  // Remove 'filesystem:' prefix if present
@@ -76,50 +86,50 @@ class Migrate extends core_1.Command {
76
86
  // Convert to absolute path if relative
77
87
  return path.isAbsolute(cleanLoc) ? loc : `filesystem:${path.resolve(cleanLoc)}`;
78
88
  });
79
- // First try validate to catch checksum mismatches
80
- const validateArgs = [
89
+ // Skip validation and go straight to migrate
90
+ // node-flyway already tried and failed, so we just need to run the actual migration
91
+ const migrateArgs = [
81
92
  ...baseArgs,
93
+ `-baselineVersion=${config.baselineVersion}`,
94
+ `-baselineOnMigrate=${config.baselineOnMigrate}`,
82
95
  `-locations=${absoluteMigrationPaths.join(',')}`,
83
- 'validate'
96
+ 'migrate'
84
97
  ];
85
- const validateResult = spawnSync(flywayExePath, validateArgs, { encoding: 'utf8' });
86
- const validateOutput = validateResult.stderr || validateResult.stdout || '';
87
- // Check if validation failed
88
- if (validateResult.status !== 0 || validateOutput.toLowerCase().includes('validate failed')) {
89
- this.analyzeFlywayError(validateOutput, config);
98
+ const migrateResult = spawnSync(flywayExePath, migrateArgs, { encoding: 'utf8' });
99
+ const migrateOutput = migrateResult.stderr || migrateResult.stdout || '';
100
+ // Check if output contains error messages even if exit code is 0
101
+ // Exclude SQL Server informational messages and recompilation warnings
102
+ const hasErrorsInOutput = (migrateOutput.toLowerCase().includes('error') &&
103
+ !migrateOutput.includes('Error Code: 0') && // Informational messages
104
+ !migrateOutput.includes('Error Code: 15070')) || // Recompilation warnings
105
+ migrateOutput.toLowerCase().includes('incorrect syntax') ||
106
+ migrateOutput.toLowerCase().includes('must be the only statement');
107
+ if (migrateResult.status === 0 && !hasErrorsInOutput) {
108
+ // Migration actually succeeded - don't throw error
109
+ spinner.succeed('Migrations complete');
110
+ this.log(`Execution time: ${result.additionalDetails.executionTime / 1000}s`);
111
+ if (flags.verbose) {
112
+ this.logToStderr('\nšŸ’” Note: Migration succeeded but node-flyway had trouble parsing the response.');
113
+ this.logToStderr(' This is a known issue with node-flyway and does not affect migration success.\n');
114
+ }
115
+ return;
116
+ }
117
+ else if (migrateResult.status === 0 && hasErrorsInOutput) {
118
+ // Exit code was 0 but output contains errors - SQL script likely has error handling
119
+ spinner.fail();
120
+ this.logToStderr('\nāš ļø Migration completed but errors were detected in output:\n');
121
+ this.analyzeFlywayError(migrateOutput, config);
90
122
  }
91
123
  else {
92
- // Validation passed, try migrate to see the actual SQL error
93
- const migrateArgs = [
94
- ...baseArgs,
95
- `-baselineVersion=${config.baselineVersion}`,
96
- `-baselineOnMigrate=${config.baselineOnMigrate}`,
97
- `-locations=${absoluteMigrationPaths.join(',')}`,
98
- 'migrate'
99
- ];
100
- const migrateResult = spawnSync(flywayExePath, migrateArgs, { encoding: 'utf8' });
101
- const migrateOutput = migrateResult.stderr || migrateResult.stdout || '';
102
- // Check if output contains error messages even if exit code is 0
103
- const hasErrorsInOutput = migrateOutput.toLowerCase().includes('error') ||
104
- migrateOutput.toLowerCase().includes('incorrect syntax') ||
105
- migrateOutput.toLowerCase().includes('must be the only statement');
106
- if (migrateResult.status === 0 && !hasErrorsInOutput) {
107
- this.logToStderr('āœ“ Migration executed successfully (Flyway CLI reports success)');
108
- this.logToStderr(' The issue was with node-flyway response parsing only\n');
109
- }
110
- else if (migrateResult.status === 0 && hasErrorsInOutput) {
111
- // Exit code was 0 but output contains errors - SQL script likely has error handling
112
- this.logToStderr('āš ļø Migration completed but errors were detected in output:\n');
113
- this.analyzeFlywayError(migrateOutput, config);
114
- }
115
- else {
116
- // Migration failed with non-zero exit code
117
- this.analyzeFlywayError(migrateOutput, config);
118
- }
124
+ // Migration failed with non-zero exit code
125
+ spinner.fail();
126
+ this.logToStderr('\nāŒ Migration failed:\n');
127
+ this.analyzeFlywayError(migrateOutput, config);
119
128
  }
120
129
  }
121
130
  catch (err) {
122
- this.logToStderr(`āŒ Error running diagnostic: ${err.message || err}\n`);
131
+ spinner.fail();
132
+ this.logToStderr(`\nāŒ Error running diagnostic: ${err.message || err}\n`);
123
133
  }
124
134
  this.error('Migration failed - see diagnostic information above');
125
135
  }
@@ -250,4 +260,4 @@ class Migrate extends core_1.Command {
250
260
  }
251
261
  }
252
262
  }
253
- exports.default = Migrate;
263
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/migrate/index.ts"],"names":[],"mappings":"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"}