@memberjunction/cli 6.1.4 → 6.2.0-edge.1

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 (235) hide show
  1. package/README.md +18 -7
  2. package/dist/baseline/cli-helpers.d.ts +4 -0
  3. package/dist/baseline/cli-helpers.d.ts.map +1 -1
  4. package/dist/baseline/cli-helpers.js +18 -10
  5. package/dist/baseline/cli-helpers.js.map +1 -1
  6. package/dist/baseline/comparator.d.ts +5 -3
  7. package/dist/baseline/comparator.d.ts.map +1 -1
  8. package/dist/baseline/comparator.js +142 -138
  9. package/dist/baseline/comparator.js.map +1 -1
  10. package/dist/baseline/connection.d.ts +8 -6
  11. package/dist/baseline/connection.d.ts.map +1 -1
  12. package/dist/baseline/connection.js +16 -12
  13. package/dist/baseline/connection.js.map +1 -1
  14. package/dist/baseline/data-dumper.d.ts +7 -3
  15. package/dist/baseline/data-dumper.d.ts.map +1 -1
  16. package/dist/baseline/data-dumper.js +33 -25
  17. package/dist/baseline/data-dumper.js.map +1 -1
  18. package/dist/baseline/emitter.d.ts +5 -3
  19. package/dist/baseline/emitter.d.ts.map +1 -1
  20. package/dist/baseline/emitter.js +114 -110
  21. package/dist/baseline/emitter.js.map +1 -1
  22. package/dist/baseline/index.d.ts +7 -7
  23. package/dist/baseline/index.d.ts.map +1 -1
  24. package/dist/baseline/index.js +7 -7
  25. package/dist/baseline/index.js.map +1 -1
  26. package/dist/baseline/introspector-mssql.d.ts +2 -0
  27. package/dist/baseline/introspector-mssql.d.ts.map +1 -1
  28. package/dist/baseline/introspector-mssql.js +68 -64
  29. package/dist/baseline/introspector-mssql.js.map +1 -1
  30. package/dist/baseline/introspector-postgres.d.ts +2 -0
  31. package/dist/baseline/introspector-postgres.d.ts.map +1 -1
  32. package/dist/baseline/introspector-postgres.js +34 -30
  33. package/dist/baseline/introspector-postgres.js.map +1 -1
  34. package/dist/baseline/report.d.ts +4 -0
  35. package/dist/baseline/report.d.ts.map +1 -1
  36. package/dist/baseline/report.js +25 -17
  37. package/dist/baseline/report.js.map +1 -1
  38. package/dist/baseline/types.d.ts +71 -71
  39. package/dist/baseline/util.d.ts +54 -6
  40. package/dist/baseline/util.d.ts.map +1 -1
  41. package/dist/baseline/util.js +112 -36
  42. package/dist/baseline/util.js.map +1 -1
  43. package/dist/commands/agent/init.d.ts +23 -0
  44. package/dist/commands/agent/init.d.ts.map +1 -0
  45. package/dist/commands/agent/init.js +222 -0
  46. package/dist/commands/agent/init.js.map +1 -0
  47. package/dist/commands/ai/actions/list.js +7 -7
  48. package/dist/commands/ai/actions/run.js +7 -7
  49. package/dist/commands/ai/agents/list.js +7 -7
  50. package/dist/commands/ai/agents/run.js +9 -9
  51. package/dist/commands/ai/audit/agent-run.js +7 -7
  52. package/dist/commands/ai/prompts/run.js +7 -7
  53. package/dist/commands/app/check-updates.js +5 -5
  54. package/dist/commands/app/disable.js +2 -2
  55. package/dist/commands/app/enable.js +2 -2
  56. package/dist/commands/app/info.js +2 -2
  57. package/dist/commands/app/install.js +2 -2
  58. package/dist/commands/app/list.js +2 -2
  59. package/dist/commands/app/remove.js +4 -4
  60. package/dist/commands/app/upgrade.js +2 -2
  61. package/dist/commands/artifacts/reclassify.js +2 -2
  62. package/dist/commands/baseline/build.js +31 -31
  63. package/dist/commands/baseline/build.js.map +1 -1
  64. package/dist/commands/baseline/compare.js +36 -36
  65. package/dist/commands/baseline/roundtrip.js +56 -54
  66. package/dist/commands/baseline/roundtrip.js.map +1 -1
  67. package/dist/commands/bundle/index.js +4 -4
  68. package/dist/commands/clean/index.js +3 -3
  69. package/dist/commands/codegen/manifest.d.ts +2 -0
  70. package/dist/commands/codegen/manifest.d.ts.map +1 -1
  71. package/dist/commands/codegen/manifest.js +8 -4
  72. package/dist/commands/codegen/manifest.js.map +1 -1
  73. package/dist/commands/dev/workspace/index.d.ts +2 -0
  74. package/dist/commands/dev/workspace/index.d.ts.map +1 -1
  75. package/dist/commands/dev/workspace/index.js +8 -4
  76. package/dist/commands/dev/workspace/index.js.map +1 -1
  77. package/dist/commands/doctor/index.d.ts +6 -4
  78. package/dist/commands/doctor/index.d.ts.map +1 -1
  79. package/dist/commands/doctor/index.js +43 -18
  80. package/dist/commands/doctor/index.js.map +1 -1
  81. package/dist/commands/install/claude.d.ts +2 -0
  82. package/dist/commands/install/claude.d.ts.map +1 -1
  83. package/dist/commands/install/claude.js +11 -7
  84. package/dist/commands/install/claude.js.map +1 -1
  85. package/dist/commands/install/index.js +3 -3
  86. package/dist/commands/migrate/convert.d.ts +21 -0
  87. package/dist/commands/migrate/convert.d.ts.map +1 -1
  88. package/dist/commands/migrate/convert.js +22 -6
  89. package/dist/commands/migrate/convert.js.map +1 -1
  90. package/dist/commands/migrate/create.js +2 -2
  91. package/dist/commands/migrate/index.js +16 -16
  92. package/dist/commands/sync/file-reset.js +2 -2
  93. package/dist/commands/sync/init.js +3 -3
  94. package/dist/commands/test/compare.js +6 -6
  95. package/dist/commands/test/history.js +6 -6
  96. package/dist/commands/test/list.js +6 -6
  97. package/dist/commands/test/regression/build.js +5 -5
  98. package/dist/commands/test/regression/compare.js +3 -3
  99. package/dist/commands/test/regression/down.js +4 -4
  100. package/dist/commands/test/regression/export.js +4 -4
  101. package/dist/commands/test/regression/gen-forms.js +3 -3
  102. package/dist/commands/test/regression/remote.js +10 -10
  103. package/dist/commands/test/regression/up.js +6 -6
  104. package/dist/commands/test/run.js +6 -6
  105. package/dist/commands/test/scripts.d.ts +13 -0
  106. package/dist/commands/test/scripts.d.ts.map +1 -0
  107. package/dist/commands/test/scripts.js +50 -0
  108. package/dist/commands/test/scripts.js.map +1 -0
  109. package/dist/commands/test/suite.js +6 -6
  110. package/dist/commands/test/validate.js +6 -6
  111. package/dist/commands/translate-sql/index.js +25 -25
  112. package/dist/commands/update/claude.js +7 -7
  113. package/dist/commands/usage.js +4 -4
  114. package/dist/config.d.ts +175 -1
  115. package/dist/config.d.ts.map +1 -1
  116. package/dist/config.js +23 -9
  117. package/dist/config.js.map +1 -1
  118. package/dist/hooks/postrun.js +2 -2
  119. package/dist/hooks/prerun.js +2 -2
  120. package/dist/hooks/prerun.js.map +1 -1
  121. package/dist/init-templates/citizen-builder/.agents/skills/new-agent/SKILL.md +66 -0
  122. package/dist/init-templates/citizen-builder/.agents/skills/package-agent/SKILL.md +69 -0
  123. package/dist/init-templates/citizen-builder/.agents/skills/test-agent/SKILL.md +61 -0
  124. package/dist/init-templates/citizen-builder/.claude/skills/new-agent/SKILL.md +66 -0
  125. package/dist/init-templates/citizen-builder/.claude/skills/package-agent/SKILL.md +69 -0
  126. package/dist/init-templates/citizen-builder/.claude/skills/test-agent/SKILL.md +61 -0
  127. package/dist/init-templates/citizen-builder/.env.example +30 -0
  128. package/dist/init-templates/citizen-builder/AGENTS.md +331 -0
  129. package/dist/init-templates/citizen-builder/README.md +259 -0
  130. package/dist/init-templates/citizen-builder/docker/Dockerfile +16 -0
  131. package/dist/init-templates/citizen-builder/docker-compose.yml +59 -0
  132. package/dist/init-templates/citizen-builder/docs/ENTERPRISE_ORG_SETUP.md +73 -0
  133. package/dist/init-templates/citizen-builder/docs/PROMOTION_GUIDE.md +70 -0
  134. package/dist/init-templates/citizen-builder/metadata/.mj-sync.json +7 -0
  135. package/dist/init-templates/citizen-builder/metadata/agents/.customer-insight-agent.json +55 -0
  136. package/dist/init-templates/citizen-builder/metadata/agents/.mj-sync.json +45 -0
  137. package/dist/init-templates/citizen-builder/metadata/prompts/.customer-insight-prompt.json +15 -0
  138. package/dist/init-templates/citizen-builder/metadata/prompts/.mj-sync.json +45 -0
  139. package/dist/init-templates/citizen-builder/metadata/prompts/templates/customer-insight.template.md +18 -0
  140. package/dist/init-templates/citizen-builder/scripts/bootstrap.sh +47 -0
  141. package/dist/init-templates/citizen-builder/scripts/docker-entrypoint.sh +184 -0
  142. package/dist/init-templates/citizen-builder/scripts/generate-capabilities.sh +74 -0
  143. package/dist/init-templates/citizen-builder/scripts/query-run-history.sh +34 -0
  144. package/dist/init-templates/citizen-builder/scripts/sync-metadata.sh +14 -0
  145. package/dist/init-templates/remote-mj/README.md +4 -4
  146. package/dist/lib/claude-pack/ManagedBlockEditor.d.ts +6 -0
  147. package/dist/lib/claude-pack/ManagedBlockEditor.d.ts.map +1 -1
  148. package/dist/lib/claude-pack/ManagedBlockEditor.js +18 -6
  149. package/dist/lib/claude-pack/ManagedBlockEditor.js.map +1 -1
  150. package/dist/lib/claude-pack/PackFetcher.d.ts +8 -3
  151. package/dist/lib/claude-pack/PackFetcher.d.ts.map +1 -1
  152. package/dist/lib/claude-pack/PackFetcher.js +26 -18
  153. package/dist/lib/claude-pack/PackFetcher.js.map +1 -1
  154. package/dist/lib/claude-pack/PackInstaller.d.ts +6 -2
  155. package/dist/lib/claude-pack/PackInstaller.d.ts.map +1 -1
  156. package/dist/lib/claude-pack/PackInstaller.js +19 -13
  157. package/dist/lib/claude-pack/PackInstaller.js.map +1 -1
  158. package/dist/lib/claude-pack/PackMerger.d.ts +8 -0
  159. package/dist/lib/claude-pack/PackMerger.d.ts.map +1 -1
  160. package/dist/lib/claude-pack/PackMerger.js +63 -57
  161. package/dist/lib/claude-pack/PackMerger.js.map +1 -1
  162. package/dist/lib/claude-pack/PackOutputFormatter.d.ts +4 -0
  163. package/dist/lib/claude-pack/PackOutputFormatter.d.ts.map +1 -1
  164. package/dist/lib/claude-pack/PackOutputFormatter.js +10 -2
  165. package/dist/lib/claude-pack/PackOutputFormatter.js.map +1 -1
  166. package/dist/lib/claude-pack/PackPaths.d.ts +12 -0
  167. package/dist/lib/claude-pack/PackPaths.d.ts.map +1 -1
  168. package/dist/lib/claude-pack/PackPaths.js +31 -7
  169. package/dist/lib/claude-pack/PackPaths.js.map +1 -1
  170. package/dist/lib/claude-pack/PackTypes.d.ts +18 -14
  171. package/dist/lib/claude-pack/PackTypes.d.ts.map +1 -1
  172. package/dist/lib/claude-pack/PackTypes.js +11 -3
  173. package/dist/lib/claude-pack/PackTypes.js.map +1 -1
  174. package/dist/lib/claude-pack/SettingsMerger.d.ts +10 -0
  175. package/dist/lib/claude-pack/SettingsMerger.d.ts.map +1 -1
  176. package/dist/lib/claude-pack/SettingsMerger.js +36 -16
  177. package/dist/lib/claude-pack/SettingsMerger.js.map +1 -1
  178. package/dist/lib/cli-plugins.d.ts +2 -0
  179. package/dist/lib/cli-plugins.d.ts.map +1 -1
  180. package/dist/lib/cli-plugins.js +8 -4
  181. package/dist/lib/cli-plugins.js.map +1 -1
  182. package/dist/lib/db-preflight.d.ts +2 -0
  183. package/dist/lib/db-preflight.d.ts.map +1 -1
  184. package/dist/lib/db-preflight.js +12 -8
  185. package/dist/lib/db-preflight.js.map +1 -1
  186. package/dist/lib/db-version.d.ts +2 -0
  187. package/dist/lib/db-version.d.ts.map +1 -1
  188. package/dist/lib/db-version.js +5 -1
  189. package/dist/lib/db-version.js.map +1 -1
  190. package/dist/lib/derived-usage.d.ts +14 -8
  191. package/dist/lib/derived-usage.d.ts.map +1 -1
  192. package/dist/lib/derived-usage.js +30 -18
  193. package/dist/lib/derived-usage.js.map +1 -1
  194. package/dist/lib/domain-profiles.d.ts +4 -2
  195. package/dist/lib/domain-profiles.d.ts.map +1 -1
  196. package/dist/lib/domain-profiles.js +53 -49
  197. package/dist/lib/domain-profiles.js.map +1 -1
  198. package/dist/lib/domain-usage-command.js +4 -4
  199. package/dist/lib/dynamic-packages.d.ts +4 -2
  200. package/dist/lib/dynamic-packages.d.ts.map +1 -1
  201. package/dist/lib/dynamic-packages.js +9 -5
  202. package/dist/lib/dynamic-packages.js.map +1 -1
  203. package/dist/lib/format-compat.d.ts +9 -7
  204. package/dist/lib/format-compat.d.ts.map +1 -1
  205. package/dist/lib/format-compat.js +12 -8
  206. package/dist/lib/format-compat.js.map +1 -1
  207. package/dist/lib/interactive-guard.d.ts +16 -0
  208. package/dist/lib/interactive-guard.d.ts.map +1 -1
  209. package/dist/lib/interactive-guard.js +18 -6
  210. package/dist/lib/interactive-guard.js.map +1 -1
  211. package/dist/lib/migration-fetch.d.ts +16 -4
  212. package/dist/lib/migration-fetch.d.ts.map +1 -1
  213. package/dist/lib/migration-fetch.js +30 -18
  214. package/dist/lib/migration-fetch.js.map +1 -1
  215. package/dist/lib/regression/docker-helpers.d.ts +24 -0
  216. package/dist/lib/regression/docker-helpers.d.ts.map +1 -1
  217. package/dist/lib/regression/docker-helpers.js +46 -10
  218. package/dist/lib/regression/docker-helpers.js.map +1 -1
  219. package/dist/lib/usage-render.d.ts +6 -0
  220. package/dist/lib/usage-render.d.ts.map +1 -1
  221. package/dist/lib/usage-render.js +15 -3
  222. package/dist/lib/usage-render.js.map +1 -1
  223. package/dist/translate-sql/groundTruth.d.ts +3 -3
  224. package/dist/translate-sql/groundTruth.js +40 -40
  225. package/dist/translate-sql/reportGenerator.d.ts +7 -7
  226. package/dist/translate-sql/reportGenerator.js +18 -18
  227. package/dist/translate-sql/ruleTranslator.d.ts +3 -3
  228. package/dist/translate-sql/ruleTranslator.js +8 -8
  229. package/dist/translate-sql/ruleTranslator.js.map +1 -1
  230. package/dist/utils/open-app-context.d.ts +21 -0
  231. package/dist/utils/open-app-context.d.ts.map +1 -1
  232. package/dist/utils/open-app-context.js +26 -10
  233. package/dist/utils/open-app-context.js.map +1 -1
  234. package/oclif.manifest.json +1216 -1058
  235. package/package.json +22 -22
@@ -1,6 +1,6 @@
1
1
  import { Command, Flags } from '@oclif/core';
2
2
  import ora from 'ora-classic';
3
- import { AI_FORMAT_MAP, CANONICAL_FORMAT_FLAG, resolveLegacyFormat } from '../../../lib/format-compat.js';
3
+ import { AI_FORMAT_MAP, CANONICAL_FORMAT_FLAG, ResolveLegacyFormat } from '../../../lib/format-compat.js';
4
4
  export default class ActionsRun extends Command {
5
5
  static { this.description = 'Execute an AI action with parameters'; }
6
6
  static { this.examples = [
@@ -44,12 +44,12 @@ export default class ActionsRun extends Command {
44
44
  const { ActionService, OutputFormatter } = await import('@memberjunction/ai-cli');
45
45
  const { flags, metadata } = await this.parse(ActionsRun);
46
46
  const service = new ActionService();
47
- const formatter = new OutputFormatter(resolveLegacyFormat({
48
- format: flags.format,
49
- legacy: flags.output,
50
- legacyDefault: 'compact',
51
- legacyWasExplicit: metadata.flags.output?.setFromDefault === false,
52
- map: AI_FORMAT_MAP,
47
+ const formatter = new OutputFormatter(ResolveLegacyFormat({
48
+ Format: flags.format,
49
+ Legacy: flags.output,
50
+ LegacyDefault: 'compact',
51
+ LegacyWasExplicit: metadata.flags.output?.setFromDefault === false,
52
+ Map: AI_FORMAT_MAP,
53
53
  }));
54
54
  // Parse parameters
55
55
  const params = {};
@@ -1,6 +1,6 @@
1
1
  import { Command, Flags } from '@oclif/core';
2
2
  import ora from 'ora-classic';
3
- import { AI_FORMAT_MAP, CANONICAL_FORMAT_FLAG, resolveLegacyFormat } from '../../../lib/format-compat.js';
3
+ import { AI_FORMAT_MAP, CANONICAL_FORMAT_FLAG, ResolveLegacyFormat } from '../../../lib/format-compat.js';
4
4
  export default class AgentsList extends Command {
5
5
  static { this.description = 'List available AI agents'; }
6
6
  static { this.examples = [
@@ -27,12 +27,12 @@ export default class AgentsList extends Command {
27
27
  const service = new AgentService();
28
28
  const agents = await service.listAgents();
29
29
  spinner.stop();
30
- const formatter = new OutputFormatter(resolveLegacyFormat({
31
- format: flags.format,
32
- legacy: flags.output,
33
- legacyDefault: 'compact',
34
- legacyWasExplicit: metadata.flags.output?.setFromDefault === false,
35
- map: AI_FORMAT_MAP,
30
+ const formatter = new OutputFormatter(ResolveLegacyFormat({
31
+ Format: flags.format,
32
+ Legacy: flags.output,
33
+ LegacyDefault: 'compact',
34
+ LegacyWasExplicit: metadata.flags.output?.setFromDefault === false,
35
+ Map: AI_FORMAT_MAP,
36
36
  }));
37
37
  this.log(formatter.formatAgentList(agents));
38
38
  // Force exit after completion
@@ -1,7 +1,7 @@
1
1
  import { Command, Flags } from '@oclif/core';
2
2
  import ora from 'ora-classic';
3
- import { AI_FORMAT_MAP, CANONICAL_FORMAT_FLAG, resolveLegacyFormat } from '../../../lib/format-compat.js';
4
- import { failOnNonInteractive, requireInteractive } from '../../../lib/interactive-guard.js';
3
+ import { AI_FORMAT_MAP, CANONICAL_FORMAT_FLAG, ResolveLegacyFormat } from '../../../lib/format-compat.js';
4
+ import { FailOnNonInteractive, requireInteractive } from '../../../lib/interactive-guard.js';
5
5
  export default class AgentsRun extends Command {
6
6
  static { this.description = 'Execute an AI agent with a prompt or start interactive chat'; }
7
7
  static { this.examples = [
@@ -57,17 +57,17 @@ export default class AgentsRun extends Command {
57
57
  requireInteractive('Interactive chat mode', 'Use --prompt "<your prompt>" for a single non-interactive execution, or re-run --chat at an interactive terminal.');
58
58
  }
59
59
  catch (error) {
60
- failOnNonInteractive(this, error);
60
+ FailOnNonInteractive(this, error);
61
61
  }
62
62
  }
63
63
  const { AgentService, OutputFormatter, ConversationService } = await import('@memberjunction/ai-cli');
64
64
  const service = new AgentService();
65
- const formatter = new OutputFormatter(resolveLegacyFormat({
66
- format: flags.format,
67
- legacy: flags.output,
68
- legacyDefault: 'compact',
69
- legacyWasExplicit: metadata.flags.output?.setFromDefault === false,
70
- map: AI_FORMAT_MAP,
65
+ const formatter = new OutputFormatter(ResolveLegacyFormat({
66
+ Format: flags.format,
67
+ Legacy: flags.output,
68
+ LegacyDefault: 'compact',
69
+ LegacyWasExplicit: metadata.flags.output?.setFromDefault === false,
70
+ Map: AI_FORMAT_MAP,
71
71
  }));
72
72
  try {
73
73
  if (flags.chat) {
@@ -2,7 +2,7 @@ import { Command, Flags, Args } from '@oclif/core';
2
2
  import ora from 'ora-classic';
3
3
  import chalk from 'chalk';
4
4
  import * as fs from 'fs/promises';
5
- import { CANONICAL_FORMAT_FLAG, resolveLegacyFormat } from '../../../lib/format-compat.js';
5
+ import { CANONICAL_FORMAT_FLAG, ResolveLegacyFormat } from '../../../lib/format-compat.js';
6
6
  export default class AgentRun extends Command {
7
7
  static { this.description = 'Audit and analyze AI agent execution runs for debugging and performance analysis'; }
8
8
  static { this.examples = [
@@ -111,12 +111,12 @@ export default class AgentRun extends Command {
111
111
  const spinner = ora();
112
112
  // One typed resolution for all four render sites below — replaces the `as any`
113
113
  // casts and applies the same --format/pipe rules as the rest of the CLI.
114
- const outputFormat = resolveLegacyFormat({
115
- format: flags.format,
116
- legacy: flags.output,
117
- legacyDefault: 'compact',
118
- legacyWasExplicit: metadata.flags.output?.setFromDefault === false,
119
- map: { text: 'compact', json: 'json', md: 'markdown' },
114
+ const outputFormat = ResolveLegacyFormat({
115
+ Format: flags.format,
116
+ Legacy: flags.output,
117
+ LegacyDefault: 'compact',
118
+ LegacyWasExplicit: metadata.flags.output?.setFromDefault === false,
119
+ Map: { text: 'compact', json: 'json', md: 'markdown' },
120
120
  });
121
121
  try {
122
122
  const service = new AgentAuditService();
@@ -1,6 +1,6 @@
1
1
  import { Command, Flags } from '@oclif/core';
2
2
  import ora from 'ora-classic';
3
- import { AI_FORMAT_MAP, CANONICAL_FORMAT_FLAG, resolveLegacyFormat } from '../../../lib/format-compat.js';
3
+ import { AI_FORMAT_MAP, CANONICAL_FORMAT_FLAG, ResolveLegacyFormat } from '../../../lib/format-compat.js';
4
4
  export default class PromptsRun extends Command {
5
5
  static { this.description = 'Execute a direct prompt with an AI model'; }
6
6
  static { this.examples = [
@@ -55,12 +55,12 @@ export default class PromptsRun extends Command {
55
55
  const { PromptService, OutputFormatter } = await import('@memberjunction/ai-cli');
56
56
  const { flags, metadata } = await this.parse(PromptsRun);
57
57
  const service = new PromptService();
58
- const formatter = new OutputFormatter(resolveLegacyFormat({
59
- format: flags.format,
60
- legacy: flags.output,
61
- legacyDefault: 'compact',
62
- legacyWasExplicit: metadata.flags.output?.setFromDefault === false,
63
- map: AI_FORMAT_MAP,
58
+ const formatter = new OutputFormatter(ResolveLegacyFormat({
59
+ Format: flags.format,
60
+ Legacy: flags.output,
61
+ LegacyDefault: 'compact',
62
+ LegacyWasExplicit: metadata.flags.output?.setFromDefault === false,
63
+ Map: AI_FORMAT_MAP,
64
64
  }));
65
65
  try {
66
66
  const spinner = ora();
@@ -2,9 +2,9 @@ import { Command } from '@oclif/core';
2
2
  import { ListInstalledApps, GetLatestVersion } from '@memberjunction/open-app-engine';
3
3
  import ora from 'ora-classic';
4
4
  import chalk from 'chalk';
5
- import { buildContextUser, buildGitHubOptions } from '../../utils/open-app-context.js';
5
+ import { BuildContextUser, BuildGitHubOptions } from '../../utils/open-app-context.js';
6
6
  import { CheckAppsForUpdates, FormatUpdateCheckReport } from '../../utils/update-check.js';
7
- import { getValidatedConfig } from '../../config.js';
7
+ import { GetValidatedConfig } from '../../config.js';
8
8
  /**
9
9
  * CLI command: `mj app check-updates`.
10
10
  *
@@ -19,8 +19,8 @@ export default class AppCheckUpdates extends Command {
19
19
  async run() {
20
20
  const spinner = ora('Checking for updates...').start();
21
21
  try {
22
- const config = getValidatedConfig();
23
- const contextUser = await buildContextUser();
22
+ const config = GetValidatedConfig();
23
+ const contextUser = await BuildContextUser();
24
24
  const apps = await ListInstalledApps(contextUser);
25
25
  if (apps.length === 0) {
26
26
  spinner.info('No Open Apps installed.');
@@ -29,7 +29,7 @@ export default class AppCheckUpdates extends Command {
29
29
  // Same options `mj app install` / `upgrade` use, so a repo reachable there is reachable here.
30
30
  // A bare `{ Token }` dropped the per-repo TokenMap, and every private repo whose token lives
31
31
  // there reported "up to date" forever.
32
- const githubOptions = buildGitHubOptions(config);
32
+ const githubOptions = BuildGitHubOptions(config);
33
33
  const report = await CheckAppsForUpdates(apps, (repoUrl, subpath) => GetLatestVersion(repoUrl, githubOptions, subpath));
34
34
  spinner.stop();
35
35
  // WHICH lines get printed is decided by FormatUpdateCheckReport — in particular the rule
@@ -2,7 +2,7 @@ import { Args, Command } from '@oclif/core';
2
2
  import { DisableApp } from '@memberjunction/open-app-engine';
3
3
  import ora from 'ora-classic';
4
4
  import chalk from 'chalk';
5
- import { buildOrchestratorContext } from '../../utils/open-app-context.js';
5
+ import { BuildOrchestratorContext } from '../../utils/open-app-context.js';
6
6
  /**
7
7
  * CLI command: `mj app disable <name>`.
8
8
  *
@@ -24,7 +24,7 @@ export default class AppDisable extends Command {
24
24
  const { args } = await this.parse(AppDisable);
25
25
  const spinner = ora(`Disabling ${args.name}...`).start();
26
26
  try {
27
- const context = await buildOrchestratorContext(this);
27
+ const context = await BuildOrchestratorContext(this);
28
28
  const result = await DisableApp(args.name, context);
29
29
  if (result.Success) {
30
30
  spinner.succeed(chalk.green(`Disabled ${args.name}`));
@@ -2,7 +2,7 @@ import { Args, Command } from '@oclif/core';
2
2
  import { EnableApp } from '@memberjunction/open-app-engine';
3
3
  import ora from 'ora-classic';
4
4
  import chalk from 'chalk';
5
- import { buildOrchestratorContext } from '../../utils/open-app-context.js';
5
+ import { BuildOrchestratorContext } from '../../utils/open-app-context.js';
6
6
  /**
7
7
  * CLI command: `mj app enable <name>`.
8
8
  *
@@ -24,7 +24,7 @@ export default class AppEnable extends Command {
24
24
  const { args } = await this.parse(AppEnable);
25
25
  const spinner = ora(`Enabling ${args.name}...`).start();
26
26
  try {
27
- const context = await buildOrchestratorContext(this);
27
+ const context = await BuildOrchestratorContext(this);
28
28
  const result = await EnableApp(args.name, context);
29
29
  if (result.Success) {
30
30
  spinner.succeed(chalk.green(`Enabled ${args.name}`));
@@ -1,7 +1,7 @@
1
1
  import { Args, Command } from '@oclif/core';
2
2
  import { FindInstalledApp } from '@memberjunction/open-app-engine';
3
3
  import chalk from 'chalk';
4
- import { buildContextUser } from '../../utils/open-app-context.js';
4
+ import { BuildContextUser } from '../../utils/open-app-context.js';
5
5
  /**
6
6
  * CLI command: `mj app info <name>`.
7
7
  *
@@ -22,7 +22,7 @@ export default class AppInfo extends Command {
22
22
  async run() {
23
23
  const { args } = await this.parse(AppInfo);
24
24
  try {
25
- const contextUser = await buildContextUser();
25
+ const contextUser = await BuildContextUser();
26
26
  const app = await FindInstalledApp(contextUser, args.name);
27
27
  if (!app) {
28
28
  this.error(`App '${args.name}' is not installed.`);
@@ -2,7 +2,7 @@ import { Args, Command, Flags } from '@oclif/core';
2
2
  import { InstallApp } from '@memberjunction/open-app-engine';
3
3
  import ora from 'ora-classic';
4
4
  import chalk from 'chalk';
5
- import { buildOrchestratorContext } from '../../utils/open-app-context.js';
5
+ import { BuildOrchestratorContext } from '../../utils/open-app-context.js';
6
6
  /**
7
7
  * CLI command: `mj app install <source>`.
8
8
  *
@@ -41,7 +41,7 @@ export default class AppInstall extends Command {
41
41
  const { args, flags } = await this.parse(AppInstall);
42
42
  const spinner = ora();
43
43
  try {
44
- const context = await buildOrchestratorContext(this, flags.verbose, !flags['non-interactive']);
44
+ const context = await BuildOrchestratorContext(this, flags.verbose, !flags['non-interactive']);
45
45
  const result = await InstallApp({
46
46
  Source: args.source,
47
47
  Version: flags.version,
@@ -1,7 +1,7 @@
1
1
  import { Command, Flags } from '@oclif/core';
2
2
  import { ListInstalledApps } from '@memberjunction/open-app-engine';
3
3
  import chalk from 'chalk';
4
- import { buildContextUser } from '../../utils/open-app-context.js';
4
+ import { BuildContextUser } from '../../utils/open-app-context.js';
5
5
  /**
6
6
  * CLI command: `mj app list`.
7
7
  *
@@ -19,7 +19,7 @@ export default class AppList extends Command {
19
19
  async run() {
20
20
  const { flags } = await this.parse(AppList);
21
21
  try {
22
- const contextUser = await buildContextUser();
22
+ const contextUser = await BuildContextUser();
23
23
  const apps = await ListInstalledApps(contextUser);
24
24
  if (apps.length === 0) {
25
25
  this.log('No Open Apps installed.');
@@ -1,10 +1,10 @@
1
1
  import { Args, Command, Flags } from '@oclif/core';
2
2
  import { RemoveApp } from '@memberjunction/open-app-engine';
3
3
  import { confirm } from '@inquirer/prompts';
4
- import { resolveOrPrompt, withNonInteractiveHandling } from '../../lib/interactive-guard.js';
4
+ import { resolveOrPrompt, WithNonInteractiveHandling } from '../../lib/interactive-guard.js';
5
5
  import ora from 'ora-classic';
6
6
  import chalk from 'chalk';
7
- import { buildOrchestratorContext } from '../../utils/open-app-context.js';
7
+ import { BuildOrchestratorContext } from '../../utils/open-app-context.js';
8
8
  /**
9
9
  * CLI command: `mj app remove <name>`.
10
10
  *
@@ -40,7 +40,7 @@ export default class AppRemove extends Command {
40
40
  if (!flags.yes) {
41
41
  // Destructive: this drops a schema. A headless run must say --yes explicitly
42
42
  // rather than have consent inferred for it.
43
- const confirmed = await withNonInteractiveHandling(this, () => resolveOrPrompt({
43
+ const confirmed = await WithNonInteractiveHandling(this, () => resolveOrPrompt({
44
44
  flagValue: undefined,
45
45
  what: `Confirmation to remove '${args.name}'`,
46
46
  suggestion: 'Pass --yes to confirm removal.',
@@ -55,7 +55,7 @@ export default class AppRemove extends Command {
55
55
  }
56
56
  }
57
57
  try {
58
- const context = await buildOrchestratorContext(this, flags.verbose);
58
+ const context = await BuildOrchestratorContext(this, flags.verbose);
59
59
  const result = await RemoveApp({
60
60
  AppName: args.name,
61
61
  KeepData: flags['keep-data'],
@@ -2,7 +2,7 @@ import { Args, Command, Flags } from '@oclif/core';
2
2
  import { UpgradeApp } from '@memberjunction/open-app-engine';
3
3
  import ora from 'ora-classic';
4
4
  import chalk from 'chalk';
5
- import { buildOrchestratorContext } from '../../utils/open-app-context.js';
5
+ import { BuildOrchestratorContext } from '../../utils/open-app-context.js';
6
6
  /**
7
7
  * CLI command: `mj app upgrade <name>`.
8
8
  *
@@ -37,7 +37,7 @@ export default class AppUpgrade extends Command {
37
37
  const { args, flags } = await this.parse(AppUpgrade);
38
38
  const spinner = ora();
39
39
  try {
40
- const context = await buildOrchestratorContext(this, flags.verbose, !flags['non-interactive']);
40
+ const context = await BuildOrchestratorContext(this, flags.verbose, !flags['non-interactive']);
41
41
  const result = await UpgradeApp({
42
42
  AppName: args.name,
43
43
  Version: flags.version,
@@ -6,7 +6,7 @@ import { ResolveStartupMode, RunView, LogStatus, SetProductionStatus } from '@me
6
6
  import { UUIDsEqual } from '@memberjunction/global';
7
7
  import { setupSQLServerClient, SQLServerProviderConfigData } from '@memberjunction/sqlserver-dataprovider';
8
8
  import { UserCache } from '@memberjunction/generic-database-provider';
9
- import { getValidatedConfig } from '../../config.js';
9
+ import { GetValidatedConfig } from '../../config.js';
10
10
  const JSON_FALLBACK_ID = 'AE674C7E-EA0D-49EA-89E4-0649F5EB20D4';
11
11
  export default class ArtifactsReclassify extends Command {
12
12
  static { this.description = 'Upgrade-recovery utility for v5.35 artifact unification. Re-evaluates rows whose TypeID is the deleted JSON fallback but whose actual content does not parse as JSON. ' +
@@ -28,7 +28,7 @@ export default class ArtifactsReclassify extends Command {
28
28
  const { flags } = await this.parse(ArtifactsReclassify);
29
29
  SetProductionStatus(false);
30
30
  const spinner = ora('Connecting to database...').start();
31
- const config = getValidatedConfig();
31
+ const config = GetValidatedConfig();
32
32
  const pool = new sql.ConnectionPool({
33
33
  server: config.dbHost,
34
34
  port: config.dbPort,
@@ -3,12 +3,12 @@ import * as fs from 'node:fs';
3
3
  import * as path from 'node:path';
4
4
  import ora from 'ora-classic';
5
5
  import chalk from 'chalk';
6
- import { resolveConnection, isTty } from '../../baseline/cli-helpers.js';
7
- import { openConnection } from '../../baseline/connection.js';
8
- import { introspectMssql } from '../../baseline/introspector-mssql.js';
9
- import { dumpTables } from '../../baseline/data-dumper.js';
10
- import { emitBaselineTsql } from '../../baseline/emitter.js';
11
- import { baselineFilename, computeAutoBaselineStamp, discoverMigrationsSourceDir, findLatestVersionedMigration, } from '../../baseline/util.js';
6
+ import { ResolveConnection, IsTty } from '../../baseline/cli-helpers.js';
7
+ import { OpenConnection } from '../../baseline/connection.js';
8
+ import { IntrospectMssql } from '../../baseline/introspector-mssql.js';
9
+ import { DumpTables } from '../../baseline/data-dumper.js';
10
+ import { EmitBaselineTsql } from '../../baseline/emitter.js';
11
+ import { BaselineFilename, ComputeAutoBaselineStamp, DiscoverMigrationsSourceDir, FindLatestVersionedMigration, } from '../../baseline/util.js';
12
12
  export default class BaselineBuild extends Command {
13
13
  static { this.description = 'Generate a deterministic baseline SQL script from the END-STATE of a migrated MSSQL database.'; }
14
14
  static { this.examples = [
@@ -62,7 +62,7 @@ export default class BaselineBuild extends Command {
62
62
  async run() {
63
63
  const { flags } = await this.parse(BaselineBuild);
64
64
  const { baselineVersion, generatedAtUtc, autoSource } = this.resolveVersionAndStamp(flags);
65
- const connectionParams = resolveConnection({ database: flags.database }, 'mssql');
65
+ const connectionParams = ResolveConnection({ database: flags.database }, 'mssql');
66
66
  const excludedDataTables = new Set(flags['exclude-data']
67
67
  .split(',')
68
68
  .map((s) => s.trim().toLowerCase())
@@ -70,7 +70,7 @@ export default class BaselineBuild extends Command {
70
70
  .map((s) => (s.includes('.') ? s : `dbo.${s}`)));
71
71
  excludedDataTables.add('flyway_schema_history');
72
72
  excludedDataTables.add('dbo.flyway_schema_history');
73
- const useSpinner = isTty();
73
+ const useSpinner = IsTty();
74
74
  const spinner = useSpinner ? ora() : null;
75
75
  const phase = (text) => {
76
76
  if (spinner) {
@@ -89,38 +89,38 @@ export default class BaselineBuild extends Command {
89
89
  this.log(chalk.dim(` Auto-detected baseline: v${baselineVersion}.x (from ${autoSource.filename})`));
90
90
  this.log(chalk.dim(` Auto timestamp : ${autoSource.timestamp} + 1m`));
91
91
  }
92
- phase(`Connecting to ${connectionParams.database}@${connectionParams.host}`);
93
- const db = await openConnection(connectionParams);
92
+ phase(`Connecting to ${connectionParams.Database}@${connectionParams.Host}`);
93
+ const db = await OpenConnection(connectionParams);
94
94
  try {
95
- succeed(`Connected to ${connectionParams.database}`);
95
+ succeed(`Connected to ${connectionParams.Database}`);
96
96
  phase(`Introspecting schema`);
97
- const snapshot = await introspectMssql(db, {
97
+ const snapshot = await IntrospectMssql(db, {
98
98
  onPhase: (p) => { if (flags.verbose)
99
99
  this.log(` - ${p}`); },
100
100
  });
101
- succeed(`Introspected ${snapshot.tables.length} tables, ` +
102
- `${snapshot.views.length} views, ` +
103
- `${snapshot.procedures.length} procs, ` +
104
- `${snapshot.functions.length} functions`);
101
+ succeed(`Introspected ${snapshot.Tables.length} tables, ` +
102
+ `${snapshot.Views.length} views, ` +
103
+ `${snapshot.Procedures.length} procs, ` +
104
+ `${snapshot.Functions.length} functions`);
105
105
  const dumps = flags['no-data'] ? [] : await (async () => {
106
106
  phase(`Dumping table data (every row, every column)`);
107
- const result = await dumpTables(db, snapshot.tables, { excludedTables: excludedDataTables }, {
108
- onTable: (table, count) => {
107
+ const result = await DumpTables(db, snapshot.Tables, { ExcludedTables: excludedDataTables }, {
108
+ OnTable: (table, count) => {
109
109
  if (flags.verbose)
110
- this.log(` ${table.schema}.${table.name}: ${count} rows`);
110
+ this.log(` ${table.Schema}.${table.Name}: ${count} rows`);
111
111
  else if (spinner)
112
- spinner.text = `Dumping ${table.schema}.${table.name} (${count} rows)`;
112
+ spinner.text = `Dumping ${table.Schema}.${table.Name} (${count} rows)`;
113
113
  },
114
114
  });
115
- const totalRows = result.reduce((sum, d) => sum + d.rowCount, 0);
115
+ const totalRows = result.reduce((sum, d) => sum + d.RowCount, 0);
116
116
  succeed(`Dumped ${totalRows.toLocaleString()} rows across ${result.length} tables`);
117
117
  return result;
118
118
  })();
119
119
  phase('Emitting baseline SQL');
120
- const sql = emitBaselineTsql({
121
- snapshot,
122
- dataDumps: dumps,
123
- options: {
120
+ const sql = EmitBaselineTsql({
121
+ Snapshot: snapshot,
122
+ DataDumps: dumps,
123
+ Options: {
124
124
  baselineVersion,
125
125
  description: flags.description,
126
126
  generatedAtUtc,
@@ -134,7 +134,7 @@ export default class BaselineBuild extends Command {
134
134
  process.stdout.write(sql);
135
135
  return;
136
136
  }
137
- const filename = baselineFilename({ generatedAtUtc, baselineVersion });
137
+ const filename = BaselineFilename({ generatedAtUtc, baselineVersion });
138
138
  fs.mkdirSync(flags.out, { recursive: true });
139
139
  const fullPath = path.resolve(flags.out, filename);
140
140
  fs.writeFileSync(fullPath, sql, 'utf8');
@@ -168,20 +168,20 @@ export default class BaselineBuild extends Command {
168
168
  }
169
169
  return { baselineVersion: explicit, generatedAtUtc: new Date(), autoSource: null };
170
170
  }
171
- const sourceDir = flags['source-dir'] ?? discoverMigrationsSourceDir(process.cwd());
171
+ const sourceDir = flags['source-dir'] ?? DiscoverMigrationsSourceDir(process.cwd());
172
172
  if (!sourceDir) {
173
173
  this.error('No --baseline-version provided and could not auto-discover a migrations directory. ' +
174
174
  'Pass --source-dir or --baseline-version.');
175
175
  }
176
- const latest = findLatestVersionedMigration(sourceDir);
176
+ const latest = FindLatestVersionedMigration(sourceDir);
177
177
  if (!latest) {
178
178
  this.error(`No V-files found in ${sourceDir}. Pass --baseline-version explicitly or point --source-dir at a folder with V<ts>__v<Major>.<Minor>...sql migrations.`);
179
179
  }
180
- const { generatedAtUtc } = computeAutoBaselineStamp(latest.timestamp);
180
+ const { generatedAtUtc } = ComputeAutoBaselineStamp(latest.Timestamp);
181
181
  return {
182
- baselineVersion: latest.majorMinor,
182
+ baselineVersion: latest.MajorMinor,
183
183
  generatedAtUtc,
184
- autoSource: { filename: latest.filename, timestamp: latest.timestamp },
184
+ autoSource: { filename: latest.Filename, timestamp: latest.Timestamp },
185
185
  };
186
186
  }
187
187
  }
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/commands/baseline/build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/commands/baseline/build.ts"],"names":[],"mappings":"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"}
@@ -3,13 +3,13 @@ import * as fs from 'node:fs';
3
3
  import * as path from 'node:path';
4
4
  import ora from 'ora-classic';
5
5
  import chalk from 'chalk';
6
- import { resolveConnection, isTty } from '../../baseline/cli-helpers.js';
7
- import { openConnection } from '../../baseline/connection.js';
8
- import { introspectMssql } from '../../baseline/introspector-mssql.js';
9
- import { introspectPostgres } from '../../baseline/introspector-postgres.js';
10
- import { dumpTables } from '../../baseline/data-dumper.js';
11
- import { compareSnapshots } from '../../baseline/comparator.js';
12
- import { renderJson, renderMarkdown } from '../../baseline/report.js';
6
+ import { ResolveConnection, IsTty } from '../../baseline/cli-helpers.js';
7
+ import { OpenConnection } from '../../baseline/connection.js';
8
+ import { IntrospectMssql } from '../../baseline/introspector-mssql.js';
9
+ import { IntrospectPostgres } from '../../baseline/introspector-postgres.js';
10
+ import { DumpTables } from '../../baseline/data-dumper.js';
11
+ import { CompareSnapshots } from '../../baseline/comparator.js';
12
+ import { RenderJson, RenderMarkdown } from '../../baseline/report.js';
13
13
  export default class BaselineCompare extends Command {
14
14
  static { this.description = 'Deterministically compare two databases object-by-object and row-by-row.'; }
15
15
  static { this.examples = [
@@ -50,7 +50,7 @@ export default class BaselineCompare extends Command {
50
50
  async run() {
51
51
  const { flags } = await this.parse(BaselineCompare);
52
52
  const dialect = flags.dialect;
53
- const useSpinner = isTty();
53
+ const useSpinner = IsTty();
54
54
  const spinner = useSpinner ? ora() : null;
55
55
  const phase = (text) => {
56
56
  if (spinner) {
@@ -63,23 +63,23 @@ export default class BaselineCompare extends Command {
63
63
  };
64
64
  const succeed = (text) => spinner ? spinner.succeed(text) : this.log(`✓ ${text}`);
65
65
  const fail = (text) => spinner ? spinner.fail(text) : this.logToStderr(`✗ ${text}`);
66
- const leftParams = resolveConnection({ database: flags.left }, dialect);
67
- const rightParams = resolveConnection({ database: flags.right }, dialect);
68
- phase(`Connecting (${leftParams.database} & ${rightParams.database})`);
69
- const left = await openConnection(leftParams);
70
- const right = await openConnection(rightParams);
66
+ const leftParams = ResolveConnection({ database: flags.left }, dialect);
67
+ const rightParams = ResolveConnection({ database: flags.right }, dialect);
68
+ phase(`Connecting (${leftParams.Database} & ${rightParams.Database})`);
69
+ const left = await OpenConnection(leftParams);
70
+ const right = await OpenConnection(rightParams);
71
71
  succeed(`Connected to both databases`);
72
72
  try {
73
- phase(`Introspecting ${leftParams.database}`);
73
+ phase(`Introspecting ${leftParams.Database}`);
74
74
  const leftSnapshot = dialect === 'mssql'
75
- ? await introspectMssql(left)
76
- : await introspectPostgres(left);
77
- succeed(`${leftParams.database}: ${leftSnapshot.tables.length} tables, ${leftSnapshot.views.length} views`);
78
- phase(`Introspecting ${rightParams.database}`);
75
+ ? await IntrospectMssql(left)
76
+ : await IntrospectPostgres(left);
77
+ succeed(`${leftParams.Database}: ${leftSnapshot.Tables.length} tables, ${leftSnapshot.Views.length} views`);
78
+ phase(`Introspecting ${rightParams.Database}`);
79
79
  const rightSnapshot = dialect === 'mssql'
80
- ? await introspectMssql(right)
81
- : await introspectPostgres(right);
82
- succeed(`${rightParams.database}: ${rightSnapshot.tables.length} tables, ${rightSnapshot.views.length} views`);
80
+ ? await IntrospectMssql(right)
81
+ : await IntrospectPostgres(right);
82
+ succeed(`${rightParams.Database}: ${rightSnapshot.Tables.length} tables, ${rightSnapshot.Views.length} views`);
83
83
  const rowMode = flags['row-compare'];
84
84
  let leftDumps = [];
85
85
  let rightDumps = [];
@@ -88,21 +88,21 @@ export default class BaselineCompare extends Command {
88
88
  this.warn('row data dump streaming optimised for MSSQL; PG path uses cursor fallback.');
89
89
  }
90
90
  phase(`Dumping rows (left)`);
91
- leftDumps = await dumpTables(left, leftSnapshot.tables, { excludedTables: new Set() });
92
- succeed(`Dumped ${leftDumps.reduce((s, d) => s + d.rowCount, 0).toLocaleString()} rows from ${leftParams.database}`);
91
+ leftDumps = await DumpTables(left, leftSnapshot.Tables, { ExcludedTables: new Set() });
92
+ succeed(`Dumped ${leftDumps.reduce((s, d) => s + d.RowCount, 0).toLocaleString()} rows from ${leftParams.Database}`);
93
93
  phase(`Dumping rows (right)`);
94
- rightDumps = await dumpTables(right, rightSnapshot.tables, { excludedTables: new Set() });
95
- succeed(`Dumped ${rightDumps.reduce((s, d) => s + d.rowCount, 0).toLocaleString()} rows from ${rightParams.database}`);
94
+ rightDumps = await DumpTables(right, rightSnapshot.Tables, { ExcludedTables: new Set() });
95
+ succeed(`Dumped ${rightDumps.reduce((s, d) => s + d.RowCount, 0).toLocaleString()} rows from ${rightParams.Database}`);
96
96
  }
97
97
  phase('Comparing');
98
- const report = compareSnapshots({
99
- left: { snapshot: leftSnapshot, data: leftDumps, label: leftParams.database },
100
- right: { snapshot: rightSnapshot, data: rightDumps, label: rightParams.database },
101
- options: {
102
- rowCompareMode: rowMode,
103
- rowHashAlgo: flags['row-hash-algo'],
104
- ignorePattern: flags.ignore ? new RegExp(flags.ignore, 'i') : undefined,
105
- rowDiffSampleLimit: flags['sample-limit'],
98
+ const report = CompareSnapshots({
99
+ Left: { snapshot: leftSnapshot, data: leftDumps, label: leftParams.Database },
100
+ Right: { snapshot: rightSnapshot, data: rightDumps, label: rightParams.Database },
101
+ Options: {
102
+ RowCompareMode: rowMode,
103
+ RowHashAlgo: flags['row-hash-algo'],
104
+ IgnorePattern: flags.ignore ? new RegExp(flags.ignore, 'i') : undefined,
105
+ RowDiffSampleLimit: flags['sample-limit'],
106
106
  },
107
107
  });
108
108
  report.isClean ? succeed('Comparison complete: CLEAN') : fail(`Comparison complete: ${report.summary.objectsWithDiffs} object diff(s), ${report.summary.totalRowDiffs} row diff(s)`);
@@ -111,14 +111,14 @@ export default class BaselineCompare extends Command {
111
111
  const stamp = new Date().toISOString().replace(/[:.]/g, '-');
112
112
  const jsonPath = path.resolve(flags.out, `baseline-compare-${stamp}.json`);
113
113
  const mdPath = path.resolve(flags.out, `baseline-compare-${stamp}.md`);
114
- fs.writeFileSync(jsonPath, renderJson(report), 'utf8');
115
- fs.writeFileSync(mdPath, renderMarkdown(report), 'utf8');
114
+ fs.writeFileSync(jsonPath, RenderJson(report), 'utf8');
115
+ fs.writeFileSync(mdPath, RenderMarkdown(report), 'utf8');
116
116
  this.log('');
117
117
  this.log(chalk.dim(` Reports: ${jsonPath}`));
118
118
  this.log(chalk.dim(` ${mdPath}`));
119
119
  }
120
120
  else {
121
- process.stdout.write(renderMarkdown(report));
121
+ process.stdout.write(RenderMarkdown(report));
122
122
  }
123
123
  if (flags['fail-on-diff'] && !report.isClean) {
124
124
  this.exit(2);