@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
@@ -8,3 +8,4 @@ export default class Export extends Command {
8
8
  };
9
9
  run(): Promise<void>;
10
10
  }
11
+ //# sourceMappingURL=export.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../../src/commands/querygen/export.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAI7C,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,OAAO;IACzC,MAAM,CAAC,WAAW,SAAoD;IAEtE,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,KAAK;;;MAOV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA2B3B"}
@@ -1,39 +1,37 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const core_1 = require("@oclif/core");
4
- const query_gen_1 = require("@memberjunction/query-gen");
5
- const metadata_sync_1 = require("@memberjunction/metadata-sync");
6
- class Export extends core_1.Command {
7
- static description = 'Export queries from database to metadata files';
8
- static examples = [
1
+ import { Command, Flags } from '@oclif/core';
2
+ import { exportCommand } from '@memberjunction/query-gen';
3
+ import { loadMJConfig, initializeProvider } from '@memberjunction/metadata-sync';
4
+ export default class Export extends Command {
5
+ static { this.description = 'Export queries from database to metadata files'; }
6
+ static { this.examples = [
9
7
  `<%= config.bin %> <%= command.id %>`,
10
8
  `<%= config.bin %> <%= command.id %> --output ./metadata/queries`,
11
9
  `<%= config.bin %> <%= command.id %> --verbose`,
12
- ];
13
- static flags = {
14
- output: core_1.Flags.string({
10
+ ]; }
11
+ static { this.flags = {
12
+ output: Flags.string({
15
13
  char: 'o',
16
14
  description: 'Output directory',
17
15
  default: './metadata/queries'
18
16
  }),
19
- verbose: core_1.Flags.boolean({ char: 'v', description: 'Verbose output' }),
20
- };
17
+ verbose: Flags.boolean({ char: 'v', description: 'Verbose output' }),
18
+ }; }
21
19
  async run() {
22
20
  const { flags } = await this.parse(Export);
23
21
  try {
24
22
  // Load MJ configuration and initialize provider
25
- const mjConfig = (0, metadata_sync_1.loadMJConfig)();
23
+ const mjConfig = loadMJConfig();
26
24
  if (!mjConfig) {
27
25
  this.error('No mj.config.cjs found in current directory or parent directories');
28
26
  }
29
- await (0, metadata_sync_1.initializeProvider)(mjConfig);
27
+ await initializeProvider(mjConfig);
30
28
  // Convert flags to options object for QueryGen
31
29
  const options = {
32
30
  output: flags.output,
33
31
  verbose: flags.verbose
34
32
  };
35
33
  // Call QueryGen export command
36
- await (0, query_gen_1.exportCommand)(options);
34
+ await exportCommand(options);
37
35
  }
38
36
  catch (error) {
39
37
  // QueryGen commands call process.exit(), so this may not be reached
@@ -42,4 +40,4 @@ class Export extends core_1.Command {
42
40
  }
43
41
  }
44
42
  }
45
- exports.default = Export;
43
+ //# sourceMappingURL=export.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.js","sourceRoot":"","sources":["../../../src/commands/querygen/export.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEjF,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,OAAO;aAClC,gBAAW,GAAG,gDAAgD,CAAC;aAE/D,aAAQ,GAAG;QAChB,qCAAqC;QACrC,iEAAiE;QACjE,+CAA+C;KAChD,CAAC;aAEK,UAAK,GAAG;QACb,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;YACnB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,kBAAkB;YAC/B,OAAO,EAAE,oBAAoB;SAC9B,CAAC;QACF,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC;KACrE,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE3C,IAAI,CAAC;YACH,gDAAgD;YAChD,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,IAAI,CAAC,KAAK,CAAC,mEAAmE,CAAC,CAAC;YAClF,CAAC;YAED,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAEnC,+CAA+C;YAC/C,MAAM,OAAO,GAA4B;gBACvC,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,CAAC;YAEF,+BAA+B;YAC/B,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;QAE/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,oEAAoE;YACpE,gCAAgC;YAChC,IAAI,CAAC,KAAK,CAAC,KAAc,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC"}
@@ -3,18 +3,19 @@ export default class Generate extends Command {
3
3
  static description: string;
4
4
  static examples: string[];
5
5
  static flags: {
6
- entities: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
7
- 'exclude-entities': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
8
- 'exclude-schemas': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
6
+ entities: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
7
+ 'exclude-entities': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
8
+ 'exclude-schemas': import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
9
9
  'max-entities': import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces").CustomOptions>;
10
10
  'target-groups': import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces").CustomOptions>;
11
11
  'max-refinements': import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces").CustomOptions>;
12
12
  'max-fixes': import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces").CustomOptions>;
13
- model: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
14
- vendor: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
15
- output: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
16
- mode: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
13
+ model: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
14
+ vendor: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
15
+ output: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
16
+ mode: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
17
17
  verbose: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
18
18
  };
19
19
  run(): Promise<void>;
20
20
  }
21
+ //# sourceMappingURL=generate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/commands/querygen/generate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAK7C,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,OAAO;IAC3C,MAAM,CAAC,WAAW,SAAwD;IAE1E,MAAM,CAAC,QAAQ,WAKb;IAEF,MAAM,CAAC,KAAK;;;;;;;;;;;;;MA+CV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAyC3B"}
@@ -1,77 +1,75 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const core_1 = require("@oclif/core");
4
- const query_gen_1 = require("@memberjunction/query-gen");
5
- const metadata_sync_1 = require("@memberjunction/metadata-sync");
6
- const aiengine_1 = require("@memberjunction/aiengine");
7
- class Generate extends core_1.Command {
8
- static description = 'Generate SQL query templates for entities using AI';
9
- static examples = [
1
+ import { Command, Flags } from '@oclif/core';
2
+ import { generateCommand } from '@memberjunction/query-gen';
3
+ import { loadMJConfig, initializeProvider, getSystemUser } from '@memberjunction/metadata-sync';
4
+ import { AIEngine } from '@memberjunction/aiengine';
5
+ export default class Generate extends Command {
6
+ static { this.description = 'Generate SQL query templates for entities using AI'; }
7
+ static { this.examples = [
10
8
  `<%= config.bin %> <%= command.id %>`,
11
9
  `<%= config.bin %> <%= command.id %> --entities "Customers,Orders"`,
12
10
  `<%= config.bin %> <%= command.id %> --max-entities 5 --verbose`,
13
11
  `<%= config.bin %> <%= command.id %> --mode database`,
14
- ];
15
- static flags = {
16
- entities: core_1.Flags.string({
12
+ ]; }
13
+ static { this.flags = {
14
+ entities: Flags.string({
17
15
  char: 'e',
18
16
  description: 'Specific entities to generate queries for (comma-separated)',
19
17
  multiple: false
20
18
  }),
21
- 'exclude-entities': core_1.Flags.string({
19
+ 'exclude-entities': Flags.string({
22
20
  char: 'x',
23
21
  description: 'Entities to exclude (comma-separated)',
24
22
  multiple: false
25
23
  }),
26
- 'exclude-schemas': core_1.Flags.string({
24
+ 'exclude-schemas': Flags.string({
27
25
  char: 's',
28
26
  description: 'Schemas to exclude (comma-separated)',
29
27
  multiple: false
30
28
  }),
31
- 'max-entities': core_1.Flags.integer({
29
+ 'max-entities': Flags.integer({
32
30
  char: 'm',
33
31
  description: 'Max entities per group',
34
32
  default: 3
35
33
  }),
36
- 'target-groups': core_1.Flags.integer({
34
+ 'target-groups': Flags.integer({
37
35
  char: 't',
38
36
  description: 'Target number of entity groups to generate',
39
37
  default: 75
40
38
  }),
41
- 'max-refinements': core_1.Flags.integer({
39
+ 'max-refinements': Flags.integer({
42
40
  char: 'r',
43
41
  description: 'Max refinement iterations',
44
42
  default: 3
45
43
  }),
46
- 'max-fixes': core_1.Flags.integer({
44
+ 'max-fixes': Flags.integer({
47
45
  char: 'f',
48
46
  description: 'Max error-fixing attempts',
49
47
  default: 5
50
48
  }),
51
- model: core_1.Flags.string({ description: 'Preferred AI model' }),
52
- vendor: core_1.Flags.string({ description: 'Preferred AI vendor' }),
53
- output: core_1.Flags.string({
49
+ model: Flags.string({ description: 'Preferred AI model' }),
50
+ vendor: Flags.string({ description: 'Preferred AI vendor' }),
51
+ output: Flags.string({
54
52
  char: 'o',
55
53
  description: 'Output directory'
56
54
  }),
57
- mode: core_1.Flags.string({
55
+ mode: Flags.string({
58
56
  description: 'Output mode: metadata|database|both',
59
57
  options: ['metadata', 'database', 'both']
60
58
  }),
61
- verbose: core_1.Flags.boolean({ char: 'v', description: 'Verbose output' }),
62
- };
59
+ verbose: Flags.boolean({ char: 'v', description: 'Verbose output' }),
60
+ }; }
63
61
  async run() {
64
62
  const { flags } = await this.parse(Generate);
65
63
  try {
66
64
  // Load MJ configuration and initialize provider
67
- const mjConfig = (0, metadata_sync_1.loadMJConfig)();
65
+ const mjConfig = loadMJConfig();
68
66
  if (!mjConfig) {
69
67
  this.error('No mj.config.cjs found in current directory or parent directories');
70
68
  }
71
- await (0, metadata_sync_1.initializeProvider)(mjConfig);
69
+ await initializeProvider(mjConfig);
72
70
  // Get system user and initialize AI Engine
73
- const systemUser = (0, metadata_sync_1.getSystemUser)();
74
- await aiengine_1.AIEngine.Instance.Config(false, systemUser);
71
+ const systemUser = getSystemUser();
72
+ await AIEngine.Instance.Config(false, systemUser);
75
73
  // Convert flags to options object for QueryGen
76
74
  const options = {
77
75
  entities: flags.entities,
@@ -88,7 +86,7 @@ class Generate extends core_1.Command {
88
86
  verbose: flags.verbose
89
87
  };
90
88
  // Call QueryGen generate command
91
- await (0, query_gen_1.generateCommand)(options);
89
+ await generateCommand(options);
92
90
  }
93
91
  catch (error) {
94
92
  // QueryGen commands call process.exit(), so this may not be reached
@@ -97,4 +95,4 @@ class Generate extends core_1.Command {
97
95
  }
98
96
  }
99
97
  }
100
- exports.default = Generate;
98
+ //# sourceMappingURL=generate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/commands/querygen/generate.ts"],"names":[],"mappings":"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"}
@@ -8,3 +8,4 @@ export default class Validate extends Command {
8
8
  };
9
9
  run(): Promise<void>;
10
10
  }
11
+ //# sourceMappingURL=validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/commands/querygen/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAI7C,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,OAAO;IAC3C,MAAM,CAAC,WAAW,SAAuC;IAEzD,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,KAAK;;;MAOV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA2B3B"}
@@ -1,39 +1,37 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const core_1 = require("@oclif/core");
4
- const query_gen_1 = require("@memberjunction/query-gen");
5
- const metadata_sync_1 = require("@memberjunction/metadata-sync");
6
- class Validate extends core_1.Command {
7
- static description = 'Validate existing query templates';
8
- static examples = [
1
+ import { Command, Flags } from '@oclif/core';
2
+ import { validateCommand } from '@memberjunction/query-gen';
3
+ import { loadMJConfig, initializeProvider } from '@memberjunction/metadata-sync';
4
+ export default class Validate extends Command {
5
+ static { this.description = 'Validate existing query templates'; }
6
+ static { this.examples = [
9
7
  `<%= config.bin %> <%= command.id %>`,
10
8
  `<%= config.bin %> <%= command.id %> --path ./metadata/queries`,
11
9
  `<%= config.bin %> <%= command.id %> --verbose`,
12
- ];
13
- static flags = {
14
- path: core_1.Flags.string({
10
+ ]; }
11
+ static { this.flags = {
12
+ path: Flags.string({
15
13
  char: 'p',
16
14
  description: 'Path to queries metadata file or directory',
17
15
  default: './metadata/queries'
18
16
  }),
19
- verbose: core_1.Flags.boolean({ char: 'v', description: 'Verbose output' }),
20
- };
17
+ verbose: Flags.boolean({ char: 'v', description: 'Verbose output' }),
18
+ }; }
21
19
  async run() {
22
20
  const { flags } = await this.parse(Validate);
23
21
  try {
24
22
  // Load MJ configuration and initialize provider
25
- const mjConfig = (0, metadata_sync_1.loadMJConfig)();
23
+ const mjConfig = loadMJConfig();
26
24
  if (!mjConfig) {
27
25
  this.error('No mj.config.cjs found in current directory or parent directories');
28
26
  }
29
- await (0, metadata_sync_1.initializeProvider)(mjConfig);
27
+ await initializeProvider(mjConfig);
30
28
  // Convert flags to options object for QueryGen
31
29
  const options = {
32
30
  path: flags.path,
33
31
  verbose: flags.verbose
34
32
  };
35
33
  // Call QueryGen validate command
36
- await (0, query_gen_1.validateCommand)(options);
34
+ await validateCommand(options);
37
35
  }
38
36
  catch (error) {
39
37
  // QueryGen commands call process.exit(), so this may not be reached
@@ -42,4 +40,4 @@ class Validate extends core_1.Command {
42
40
  }
43
41
  }
44
42
  }
45
- exports.default = Validate;
43
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/commands/querygen/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEjF,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,OAAO;aACpC,gBAAW,GAAG,mCAAmC,CAAC;aAElD,aAAQ,GAAG;QAChB,qCAAqC;QACrC,+DAA+D;QAC/D,+CAA+C;KAChD,CAAC;aAEK,UAAK,GAAG;QACb,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,4CAA4C;YACzD,OAAO,EAAE,oBAAoB;SAC9B,CAAC;QACF,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC;KACrE,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAE7C,IAAI,CAAC;YACH,gDAAgD;YAChD,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,IAAI,CAAC,KAAK,CAAC,mEAAmE,CAAC,CAAC;YAClF,CAAC;YAED,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAEnC,+CAA+C;YAC/C,MAAM,OAAO,GAA4B;gBACvC,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,CAAC;YAEF,iCAAiC;YACjC,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;QAEjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,oEAAoE;YACpE,gCAAgC;YAChC,IAAI,CAAC,KAAK,CAAC,KAAc,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC"}
@@ -3,8 +3,8 @@ export default class FileReset extends Command {
3
3
  static description: string;
4
4
  static examples: string[];
5
5
  static flags: {
6
- dir: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
7
- sections: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
6
+ dir: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
7
+ sections: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
8
8
  all: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
9
9
  'dry-run': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
10
10
  force: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
@@ -12,3 +12,4 @@ export default class FileReset extends Command {
12
12
  };
13
13
  run(): Promise<void>;
14
14
  }
15
+ //# sourceMappingURL=file-reset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-reset.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/file-reset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAe7C,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,OAAO;IAC5C,MAAM,CAAC,WAAW,SAAkC;IAEpD,MAAM,CAAC,QAAQ,WAKb;IAEF,MAAM,CAAC,KAAK;;;;;;;MAOV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA8J3B"}
@@ -1,69 +1,41 @@
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 core_1 = require("@oclif/core");
30
- const prompts_1 = require("@inquirer/prompts");
31
- const ora_classic_1 = __importDefault(require("ora-classic"));
32
- const chalk_1 = __importDefault(require("chalk"));
33
- const path = __importStar(require("path"));
34
- const metadata_sync_1 = require("@memberjunction/metadata-sync");
35
- class FileReset extends core_1.Command {
36
- static description = 'Reset file metadata sections';
37
- static examples = [
1
+ import { Command, Flags } from '@oclif/core';
2
+ import { confirm, checkbox } from '@inquirer/prompts';
3
+ import ora from 'ora-classic';
4
+ import chalk from 'chalk';
5
+ import * as path from 'path';
6
+ import { FileResetService, loadMJConfig, initializeProvider, getSyncEngine, getSystemUser, resetSyncEngine, configManager } from '@memberjunction/metadata-sync';
7
+ export default class FileReset extends Command {
8
+ static { this.description = 'Reset file metadata sections'; }
9
+ static { this.examples = [
38
10
  `<%= config.bin %> <%= command.id %>`,
39
11
  `<%= config.bin %> <%= command.id %> --dir="ai-prompts"`,
40
12
  `<%= config.bin %> <%= command.id %> --sections="dependencies,references"`,
41
13
  `<%= config.bin %> <%= command.id %> --all`,
42
- ];
43
- static flags = {
44
- dir: core_1.Flags.string({ description: 'Specific entity directory to reset' }),
45
- sections: core_1.Flags.string({ description: 'Comma-separated list of sections to reset (dependencies,references,related,lookup)' }),
46
- all: core_1.Flags.boolean({ description: 'Reset all metadata sections' }),
47
- 'dry-run': core_1.Flags.boolean({ description: 'Show what would be reset without actually resetting' }),
48
- force: core_1.Flags.boolean({ description: 'Skip confirmation prompts' }),
49
- verbose: core_1.Flags.boolean({ char: 'v', description: 'Show detailed output' }),
50
- };
14
+ ]; }
15
+ static { this.flags = {
16
+ dir: Flags.string({ description: 'Specific entity directory to reset' }),
17
+ sections: Flags.string({ description: 'Comma-separated list of sections to reset (dependencies,references,related,lookup)' }),
18
+ all: Flags.boolean({ description: 'Reset all metadata sections' }),
19
+ 'dry-run': Flags.boolean({ description: 'Show what would be reset without actually resetting' }),
20
+ force: Flags.boolean({ description: 'Skip confirmation prompts' }),
21
+ verbose: Flags.boolean({ char: 'v', description: 'Show detailed output' }),
22
+ }; }
51
23
  async run() {
52
24
  const { flags } = await this.parse(FileReset);
53
- const spinner = (0, ora_classic_1.default)();
25
+ const spinner = ora();
54
26
  try {
55
27
  // Load configuration
56
28
  spinner.start('Loading configuration');
57
- const mjConfig = (0, metadata_sync_1.loadMJConfig)();
29
+ const mjConfig = loadMJConfig();
58
30
  if (!mjConfig) {
59
31
  this.error('No mj.config.cjs found in current directory or parent directories');
60
32
  }
61
33
  // Stop spinner before provider initialization
62
34
  spinner.stop();
63
35
  // Initialize data provider
64
- await (0, metadata_sync_1.initializeProvider)(mjConfig);
36
+ await initializeProvider(mjConfig);
65
37
  // Initialize sync engine
66
- const syncEngine = await (0, metadata_sync_1.getSyncEngine)((0, metadata_sync_1.getSystemUser)());
38
+ const syncEngine = await getSyncEngine(getSystemUser());
67
39
  // Show success after initialization
68
40
  if (flags.verbose) {
69
41
  spinner.succeed('Configuration and metadata loaded');
@@ -87,7 +59,7 @@ class FileReset extends core_1.Command {
87
59
  }
88
60
  else {
89
61
  // Interactive selection
90
- sectionsToReset = await (0, prompts_1.checkbox)({
62
+ sectionsToReset = await checkbox({
91
63
  message: 'Select sections to reset:',
92
64
  choices: [
93
65
  { name: 'Primary Key metadata', value: 'primaryKey', checked: false },
@@ -95,32 +67,32 @@ class FileReset extends core_1.Command {
95
67
  ]
96
68
  });
97
69
  if (sectionsToReset.length === 0) {
98
- this.log(chalk_1.default.yellow('No sections selected. Exiting.'));
70
+ this.log(chalk.yellow('No sections selected. Exiting.'));
99
71
  return;
100
72
  }
101
73
  }
102
74
  // Determine target directory
103
75
  const targetDir = flags.dir
104
- ? path.resolve(metadata_sync_1.configManager.getOriginalCwd(), flags.dir)
105
- : metadata_sync_1.configManager.getOriginalCwd();
76
+ ? path.resolve(configManager.getOriginalCwd(), flags.dir)
77
+ : configManager.getOriginalCwd();
106
78
  // Show what will be reset
107
- this.log(chalk_1.default.bold('\nFile Reset Summary:'));
79
+ this.log(chalk.bold('\nFile Reset Summary:'));
108
80
  this.log(`Target directory: ${path.relative(process.cwd(), targetDir)}`);
109
81
  this.log(`Sections to reset: ${sectionsToReset.join(', ')}`);
110
82
  this.log(`Mode: ${flags['dry-run'] ? 'Dry run (no changes will be made)' : 'Live (files will be modified)'}`);
111
83
  // Confirm unless forced or dry-run
112
84
  if (!flags.force && !flags['dry-run']) {
113
- const shouldContinue = await (0, prompts_1.confirm)({
85
+ const shouldContinue = await confirm({
114
86
  message: 'This will reset the selected metadata sections. Continue?',
115
87
  default: false
116
88
  });
117
89
  if (!shouldContinue) {
118
- this.log(chalk_1.default.yellow('\nFile reset cancelled.'));
90
+ this.log(chalk.yellow('\nFile reset cancelled.'));
119
91
  return;
120
92
  }
121
93
  }
122
94
  // Create file reset service and execute
123
- const fileResetService = new metadata_sync_1.FileResetService();
95
+ const fileResetService = new FileResetService();
124
96
  spinner.start('Resetting file metadata...');
125
97
  // Map selected sections to service options
126
98
  let serviceSection = 'both';
@@ -153,17 +125,17 @@ class FileReset extends core_1.Command {
153
125
  // Show summary
154
126
  if (result.modifiedFiles > 0) {
155
127
  if (flags['dry-run']) {
156
- this.log(chalk_1.default.blue(`\nšŸ” Dry run complete. ${result.modifiedFiles} file(s) would be reset.`));
128
+ this.log(chalk.blue(`\nšŸ” Dry run complete. ${result.modifiedFiles} file(s) would be reset.`));
157
129
  }
158
130
  else {
159
- this.log(chalk_1.default.green(`\nāœ… Successfully reset ${result.modifiedFiles} file(s).`));
131
+ this.log(chalk.green(`\nāœ… Successfully reset ${result.modifiedFiles} file(s).`));
160
132
  if (result.backupsCreated > 0) {
161
- this.log(chalk_1.default.gray(` šŸ“ Created ${result.backupsCreated} backup(s).`));
133
+ this.log(chalk.gray(` šŸ“ Created ${result.backupsCreated} backup(s).`));
162
134
  }
163
135
  }
164
136
  }
165
137
  else {
166
- this.log(chalk_1.default.yellow('\nāš ļø No files needed resetting.'));
138
+ this.log(chalk.yellow('\nāš ļø No files needed resetting.'));
167
139
  }
168
140
  if (flags.verbose) {
169
141
  this.log(`\nšŸ“Š Statistics:`);
@@ -188,8 +160,8 @@ class FileReset extends core_1.Command {
188
160
  }
189
161
  finally {
190
162
  // Reset singletons
191
- (0, metadata_sync_1.resetSyncEngine)();
163
+ resetSyncEngine();
192
164
  }
193
165
  }
194
166
  }
195
- exports.default = FileReset;
167
+ //# sourceMappingURL=file-reset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-reset.js","sourceRoot":"","sources":["../../../src/commands/sync/file-reset.ts"],"names":[],"mappings":"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"}
@@ -4,3 +4,4 @@ export default class Init extends Command {
4
4
  static examples: string[];
5
5
  run(): Promise<void>;
6
6
  }
7
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAKtC,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,OAAO;IACvC,MAAM,CAAC,WAAW,SAAyD;IAE3E,MAAM,CAAC,QAAQ,WAEb;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAoG3B"}
@@ -1,28 +1,23 @@
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 prompts_1 = require("@inquirer/prompts");
8
- const ora_classic_1 = __importDefault(require("ora-classic"));
9
- const metadata_sync_1 = require("@memberjunction/metadata-sync");
10
- class Init extends core_1.Command {
11
- static description = 'Initialize a directory for metadata synchronization';
12
- static examples = [
1
+ import { Command } from '@oclif/core';
2
+ import { input, select } from '@inquirer/prompts';
3
+ import ora from 'ora-classic';
4
+ import { InitService } from '@memberjunction/metadata-sync';
5
+ export default class Init extends Command {
6
+ static { this.description = 'Initialize a directory for metadata synchronization'; }
7
+ static { this.examples = [
13
8
  `<%= config.bin %> <%= command.id %>`,
14
- ];
9
+ ]; }
15
10
  async run() {
16
- const spinner = (0, ora_classic_1.default)();
11
+ const spinner = ora();
17
12
  try {
18
13
  // Check if already initialized
19
- const initService = new metadata_sync_1.InitService();
14
+ const initService = new InitService();
20
15
  // Build options from user input
21
16
  const options = {};
22
17
  // Check for existing configuration
23
18
  try {
24
19
  // If .mj-sync.json exists, ask about overwrite
25
- const overwrite = await (0, prompts_1.select)({
20
+ const overwrite = await select({
26
21
  message: 'Directory already initialized. Overwrite configuration?',
27
22
  choices: [
28
23
  { name: 'Yes', value: true },
@@ -39,7 +34,7 @@ class Init extends core_1.Command {
39
34
  // File doesn't exist, proceed normally
40
35
  }
41
36
  // Ask if they want to set up an entity directory
42
- const setupEntity = await (0, prompts_1.select)({
37
+ const setupEntity = await select({
43
38
  message: 'Would you like to set up an entity directory now?',
44
39
  choices: [
45
40
  { name: 'Yes - AI Prompts', value: 'ai-prompts' },
@@ -49,10 +44,10 @@ class Init extends core_1.Command {
49
44
  });
50
45
  options.setupEntity = setupEntity;
51
46
  if (setupEntity === 'other') {
52
- options.entityName = await (0, prompts_1.input)({
47
+ options.entityName = await input({
53
48
  message: 'Enter the entity name (e.g., "Templates", "AI Models"):'
54
49
  });
55
- options.dirName = await (0, prompts_1.input)({
50
+ options.dirName = await input({
56
51
  message: 'Enter the directory name:',
57
52
  default: options.entityName.toLowerCase().replace(/\s+/g, '-')
58
53
  });
@@ -89,7 +84,7 @@ class Init extends core_1.Command {
89
84
  }
90
85
  // Check for error hints
91
86
  if (error instanceof Error) {
92
- const hint = new metadata_sync_1.InitService().getErrorHint(error);
87
+ const hint = new InitService().getErrorHint(error);
93
88
  if (hint) {
94
89
  this.log(`\nHint: ${hint}`);
95
90
  }
@@ -98,4 +93,4 @@ class Init extends core_1.Command {
98
93
  }
99
94
  }
100
95
  }
101
- exports.default = Init;
96
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/sync/init.ts"],"names":[],"mappings":"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"}