@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.
- package/README.md +28 -0
- package/bin/dev.cmd +2 -2
- package/bin/dev.js +5 -6
- package/bin/run.cmd +3 -3
- package/bin/run.js +14 -5
- package/dist/commands/ai/actions/list.d.ts +1 -0
- package/dist/commands/ai/actions/list.d.ts.map +1 -0
- package/dist/commands/ai/actions/list.js +14 -19
- package/dist/commands/ai/actions/list.js.map +1 -0
- package/dist/commands/ai/actions/run.d.ts +2 -1
- package/dist/commands/ai/actions/run.d.ts.map +1 -0
- package/dist/commands/ai/actions/run.js +24 -29
- package/dist/commands/ai/actions/run.js.map +1 -0
- package/dist/commands/ai/agents/list.d.ts +1 -0
- package/dist/commands/ai/agents/list.d.ts.map +1 -0
- package/dist/commands/ai/agents/list.js +14 -19
- package/dist/commands/ai/agents/list.js.map +1 -0
- package/dist/commands/ai/agents/run.d.ts +2 -1
- package/dist/commands/ai/agents/run.d.ts.map +1 -0
- package/dist/commands/ai/agents/run.js +20 -25
- package/dist/commands/ai/agents/run.js.map +1 -0
- package/dist/commands/ai/audit/agent-run.d.ts +7 -6
- package/dist/commands/ai/audit/agent-run.d.ts.map +1 -0
- package/dist/commands/ai/audit/agent-run.js +35 -63
- package/dist/commands/ai/audit/agent-run.js.map +1 -0
- package/dist/commands/ai/audit/index.d.ts +1 -0
- package/dist/commands/ai/audit/index.d.ts.map +1 -0
- package/dist/commands/ai/audit/index.js +5 -7
- package/dist/commands/ai/audit/index.js.map +1 -0
- package/dist/commands/ai/index.d.ts +1 -0
- package/dist/commands/ai/index.d.ts.map +1 -0
- package/dist/commands/ai/index.js +5 -7
- package/dist/commands/ai/index.js.map +1 -0
- package/dist/commands/ai/prompts/list.d.ts +1 -0
- package/dist/commands/ai/prompts/list.d.ts.map +1 -0
- package/dist/commands/ai/prompts/list.js +18 -23
- package/dist/commands/ai/prompts/list.js.map +1 -0
- package/dist/commands/ai/prompts/run.d.ts +6 -5
- package/dist/commands/ai/prompts/run.d.ts.map +1 -0
- package/dist/commands/ai/prompts/run.js +22 -27
- package/dist/commands/ai/prompts/run.js.map +1 -0
- package/dist/commands/bump/index.d.ts +2 -1
- package/dist/commands/bump/index.d.ts.map +1 -0
- package/dist/commands/bump/index.js +24 -52
- package/dist/commands/bump/index.js.map +1 -0
- package/dist/commands/clean/index.d.ts +3 -2
- package/dist/commands/clean/index.d.ts.map +1 -0
- package/dist/commands/clean/index.js +16 -22
- package/dist/commands/clean/index.js.map +1 -0
- package/dist/commands/codegen/index.d.ts +3 -2
- package/dist/commands/codegen/index.d.ts.map +1 -0
- package/dist/commands/codegen/index.js +14 -17
- package/dist/commands/codegen/index.js.map +1 -0
- package/dist/commands/codegen/manifest.d.ts +15 -0
- package/dist/commands/codegen/manifest.d.ts.map +1 -0
- package/dist/commands/codegen/manifest.js +65 -0
- package/dist/commands/codegen/manifest.js.map +1 -0
- package/dist/commands/dbdoc/analyze.d.ts +2 -1
- package/dist/commands/dbdoc/analyze.d.ts.map +1 -0
- package/dist/commands/dbdoc/analyze.js +11 -36
- package/dist/commands/dbdoc/analyze.js.map +1 -0
- package/dist/commands/dbdoc/export-sample-queries.d.ts +2 -1
- package/dist/commands/dbdoc/export-sample-queries.d.ts.map +1 -0
- package/dist/commands/dbdoc/export-sample-queries.js +19 -44
- package/dist/commands/dbdoc/export-sample-queries.js.map +1 -0
- package/dist/commands/dbdoc/export.d.ts +3 -2
- package/dist/commands/dbdoc/export.d.ts.map +1 -0
- package/dist/commands/dbdoc/export.js +20 -45
- package/dist/commands/dbdoc/export.js.map +1 -0
- package/dist/commands/dbdoc/generate-queries.d.ts +4 -3
- package/dist/commands/dbdoc/generate-queries.d.ts.map +1 -0
- package/dist/commands/dbdoc/generate-queries.js +14 -39
- package/dist/commands/dbdoc/generate-queries.js.map +1 -0
- package/dist/commands/dbdoc/index.d.ts +1 -0
- package/dist/commands/dbdoc/index.d.ts.map +1 -0
- package/dist/commands/dbdoc/index.js +5 -7
- package/dist/commands/dbdoc/index.js.map +1 -0
- package/dist/commands/dbdoc/init.d.ts +1 -0
- package/dist/commands/dbdoc/init.d.ts.map +1 -0
- package/dist/commands/dbdoc/init.js +7 -32
- package/dist/commands/dbdoc/init.js.map +1 -0
- package/dist/commands/dbdoc/reset.d.ts +1 -0
- package/dist/commands/dbdoc/reset.d.ts.map +1 -0
- package/dist/commands/dbdoc/reset.js +10 -35
- package/dist/commands/dbdoc/reset.js.map +1 -0
- package/dist/commands/dbdoc/review.d.ts +10 -0
- package/dist/commands/dbdoc/review.js +81 -0
- package/dist/commands/dbdoc/status.d.ts +2 -1
- package/dist/commands/dbdoc/status.d.ts.map +1 -0
- package/dist/commands/dbdoc/status.js +10 -35
- package/dist/commands/dbdoc/status.js.map +1 -0
- package/dist/commands/install/index.d.ts +76 -75
- package/dist/commands/install/index.d.ts.map +1 -0
- package/dist/commands/install/index.js +81 -111
- package/dist/commands/install/index.js.map +1 -0
- package/dist/commands/migrate/index.d.ts +4 -1
- package/dist/commands/migrate/index.d.ts.map +1 -0
- package/dist/commands/migrate/index.js +83 -73
- package/dist/commands/migrate/index.js.map +1 -0
- package/dist/commands/querygen/export.d.ts +1 -0
- package/dist/commands/querygen/export.d.ts.map +1 -0
- package/dist/commands/querygen/export.js +15 -17
- package/dist/commands/querygen/export.js.map +1 -0
- package/dist/commands/querygen/generate.d.ts +8 -7
- package/dist/commands/querygen/generate.d.ts.map +1 -0
- package/dist/commands/querygen/generate.js +28 -30
- package/dist/commands/querygen/generate.js.map +1 -0
- package/dist/commands/querygen/validate.d.ts +1 -0
- package/dist/commands/querygen/validate.d.ts.map +1 -0
- package/dist/commands/querygen/validate.js +15 -17
- package/dist/commands/querygen/validate.js.map +1 -0
- package/dist/commands/sync/file-reset.d.ts +3 -2
- package/dist/commands/sync/file-reset.d.ts.map +1 -0
- package/dist/commands/sync/file-reset.js +36 -64
- package/dist/commands/sync/file-reset.js.map +1 -0
- package/dist/commands/sync/init.d.ts +1 -0
- package/dist/commands/sync/init.d.ts.map +1 -0
- package/dist/commands/sync/init.js +16 -21
- package/dist/commands/sync/init.js.map +1 -0
- package/dist/commands/sync/pull.d.ts +7 -6
- package/dist/commands/sync/pull.d.ts.map +1 -0
- package/dist/commands/sync/pull.js +46 -51
- package/dist/commands/sync/pull.js.map +1 -0
- package/dist/commands/sync/push.d.ts +4 -3
- package/dist/commands/sync/push.d.ts.map +1 -0
- package/dist/commands/sync/push.js +44 -49
- package/dist/commands/sync/push.js.map +1 -0
- package/dist/commands/sync/status.d.ts +4 -3
- package/dist/commands/sync/status.d.ts.map +1 -0
- package/dist/commands/sync/status.js +28 -33
- package/dist/commands/sync/status.js.map +1 -0
- package/dist/commands/sync/validate.d.ts +3 -2
- package/dist/commands/sync/validate.d.ts.map +1 -0
- package/dist/commands/sync/validate.js +31 -59
- package/dist/commands/sync/validate.js.map +1 -0
- package/dist/commands/sync/watch.d.ts +3 -2
- package/dist/commands/sync/watch.d.ts.map +1 -0
- package/dist/commands/sync/watch.js +34 -63
- package/dist/commands/sync/watch.js.map +1 -0
- package/dist/commands/test/compare.d.ts +6 -5
- package/dist/commands/test/compare.d.ts.map +1 -0
- package/dist/commands/test/compare.js +20 -22
- package/dist/commands/test/compare.js.map +1 -0
- package/dist/commands/test/history.d.ts +6 -5
- package/dist/commands/test/history.d.ts.map +1 -0
- package/dist/commands/test/history.js +17 -19
- package/dist/commands/test/history.js.map +1 -0
- package/dist/commands/test/index.d.ts +1 -0
- package/dist/commands/test/index.d.ts.map +1 -0
- package/dist/commands/test/index.js +6 -8
- package/dist/commands/test/index.js.map +1 -0
- package/dist/commands/test/list.d.ts +5 -4
- package/dist/commands/test/list.d.ts.map +1 -0
- package/dist/commands/test/list.js +18 -20
- package/dist/commands/test/list.js.map +1 -0
- package/dist/commands/test/run.d.ts +5 -4
- package/dist/commands/test/run.d.ts.map +1 -0
- package/dist/commands/test/run.js +19 -21
- package/dist/commands/test/run.js.map +1 -0
- package/dist/commands/test/suite.d.ts +4 -3
- package/dist/commands/test/suite.d.ts.map +1 -0
- package/dist/commands/test/suite.js +17 -19
- package/dist/commands/test/suite.js.map +1 -0
- package/dist/commands/test/validate.d.ts +4 -3
- package/dist/commands/test/validate.d.ts.map +1 -0
- package/dist/commands/test/validate.js +19 -21
- package/dist/commands/test/validate.js.map +1 -0
- package/dist/config.d.ts +76 -38
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +108 -60
- package/dist/config.js.map +1 -0
- package/dist/hooks/init.d.ts +1 -0
- package/dist/hooks/init.d.ts.map +1 -0
- package/dist/hooks/init.js +5 -29
- package/dist/hooks/init.js.map +1 -0
- package/dist/hooks/prerun.d.ts +1 -0
- package/dist/hooks/prerun.d.ts.map +1 -0
- package/dist/hooks/prerun.js +4 -8
- package/dist/hooks/prerun.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -5
- package/dist/index.js.map +1 -0
- package/package.json +32 -30
- package/oclif.manifest.json +0 -2504
|
@@ -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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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:
|
|
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:
|
|
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 =
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
7
|
-
'exclude-entities': import("@oclif/core/lib/interfaces").OptionFlag<string
|
|
8
|
-
'exclude-schemas': import("@oclif/core/lib/interfaces").OptionFlag<string
|
|
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
|
|
14
|
-
vendor: import("@oclif/core/lib/interfaces").OptionFlag<string
|
|
15
|
-
output: import("@oclif/core/lib/interfaces").OptionFlag<string
|
|
16
|
-
mode: import("@oclif/core/lib/interfaces").OptionFlag<string
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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:
|
|
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':
|
|
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':
|
|
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':
|
|
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':
|
|
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':
|
|
39
|
+
'max-refinements': Flags.integer({
|
|
42
40
|
char: 'r',
|
|
43
41
|
description: 'Max refinement iterations',
|
|
44
42
|
default: 3
|
|
45
43
|
}),
|
|
46
|
-
'max-fixes':
|
|
44
|
+
'max-fixes': Flags.integer({
|
|
47
45
|
char: 'f',
|
|
48
46
|
description: 'Max error-fixing attempts',
|
|
49
47
|
default: 5
|
|
50
48
|
}),
|
|
51
|
-
model:
|
|
52
|
-
vendor:
|
|
53
|
-
output:
|
|
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:
|
|
55
|
+
mode: Flags.string({
|
|
58
56
|
description: 'Output mode: metadata|database|both',
|
|
59
57
|
options: ['metadata', 'database', 'both']
|
|
60
58
|
}),
|
|
61
|
-
verbose:
|
|
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 =
|
|
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
|
|
69
|
+
await initializeProvider(mjConfig);
|
|
72
70
|
// Get system user and initialize AI Engine
|
|
73
|
-
const systemUser =
|
|
74
|
-
await
|
|
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
|
|
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
|
-
|
|
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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"}
|
|
@@ -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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
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:
|
|
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:
|
|
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 =
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
7
|
-
sections: import("@oclif/core/lib/interfaces").OptionFlag<string
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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:
|
|
45
|
-
sections:
|
|
46
|
-
all:
|
|
47
|
-
'dry-run':
|
|
48
|
-
force:
|
|
49
|
-
verbose:
|
|
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 = (
|
|
25
|
+
const spinner = ora();
|
|
54
26
|
try {
|
|
55
27
|
// Load configuration
|
|
56
28
|
spinner.start('Loading configuration');
|
|
57
|
-
const mjConfig =
|
|
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
|
|
36
|
+
await initializeProvider(mjConfig);
|
|
65
37
|
// Initialize sync engine
|
|
66
|
-
const syncEngine = await
|
|
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
|
|
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(
|
|
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(
|
|
105
|
-
:
|
|
76
|
+
? path.resolve(configManager.getOriginalCwd(), flags.dir)
|
|
77
|
+
: configManager.getOriginalCwd();
|
|
106
78
|
// Show what will be reset
|
|
107
|
-
this.log(
|
|
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
|
|
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(
|
|
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
|
|
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(
|
|
128
|
+
this.log(chalk.blue(`\nš Dry run complete. ${result.modifiedFiles} file(s) would be reset.`));
|
|
157
129
|
}
|
|
158
130
|
else {
|
|
159
|
-
this.log(
|
|
131
|
+
this.log(chalk.green(`\nā
Successfully reset ${result.modifiedFiles} file(s).`));
|
|
160
132
|
if (result.backupsCreated > 0) {
|
|
161
|
-
this.log(
|
|
133
|
+
this.log(chalk.gray(` š Created ${result.backupsCreated} backup(s).`));
|
|
162
134
|
}
|
|
163
135
|
}
|
|
164
136
|
}
|
|
165
137
|
else {
|
|
166
|
-
this.log(
|
|
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
|
-
|
|
163
|
+
resetSyncEngine();
|
|
192
164
|
}
|
|
193
165
|
}
|
|
194
166
|
}
|
|
195
|
-
|
|
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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"}
|
|
@@ -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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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 = (
|
|
11
|
+
const spinner = ora();
|
|
17
12
|
try {
|
|
18
13
|
// Check if already initialized
|
|
19
|
-
const initService = new
|
|
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
|
|
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
|
|
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
|
|
47
|
+
options.entityName = await input({
|
|
53
48
|
message: 'Enter the entity name (e.g., "Templates", "AI Models"):'
|
|
54
49
|
});
|
|
55
|
-
options.dirName = await
|
|
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
|
|
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
|
-
|
|
96
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/sync/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,GAAG,MAAM,aAAa,CAAC;AAC9B,OAAO,EAAE,WAAW,EAAe,MAAM,+BAA+B,CAAC;AAEzE,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,OAAO;aAChC,gBAAW,GAAG,qDAAqD,CAAC;aAEpE,aAAQ,GAAG;QAChB,qCAAqC;KACtC,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC;QAEtB,IAAI,CAAC;YACH,+BAA+B;YAC/B,MAAM,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;YAEtC,gCAAgC;YAChC,MAAM,OAAO,GAAgB,EAAE,CAAC;YAEhC,mCAAmC;YACnC,IAAI,CAAC;gBACH,+CAA+C;gBAC/C,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC;oBAC7B,OAAO,EAAE,yDAAyD;oBAClE,OAAO,EAAE;wBACP,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE;wBAC5B,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE;qBAC7B;iBACF,CAAC,CAAC;gBAEH,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,IAAI,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;oBACrC,OAAO;gBACT,CAAC;gBAED,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;YAC3B,CAAC;YAAC,MAAM,CAAC;gBACP,uCAAuC;YACzC,CAAC;YAED,iDAAiD;YACjD,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC;gBAC/B,OAAO,EAAE,mDAAmD;gBAC5D,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,YAAY,EAAE;oBACjD,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,OAAO,EAAE;oBAC9C,EAAE,IAAI,EAAE,yBAAyB,EAAE,KAAK,EAAE,IAAI,EAAE;iBACjD;aACF,CAAC,CAAC;YAEH,OAAO,CAAC,WAAW,GAAG,WAA4C,CAAC;YAEnE,IAAI,WAAW,KAAK,OAAO,EAAE,CAAC;gBAC5B,OAAO,CAAC,UAAU,GAAG,MAAM,KAAK,CAAC;oBAC/B,OAAO,EAAE,yDAAyD;iBACnE,CAAC,CAAC;gBAEH,OAAO,CAAC,OAAO,GAAG,MAAM,KAAK,CAAC;oBAC5B,OAAO,EAAE,2BAA2B;oBACpC,OAAO,EAAE,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;iBAC/D,CAAC,CAAC;YACL,CAAC;YAED,4BAA4B;YAC5B,MAAM,WAAW,CAAC,UAAU,CAAC,OAAO,EAAE;gBACpC,UAAU,EAAE,CAAC,OAAO,EAAE,EAAE;oBACtB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACzB,CAAC;gBACD,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;oBACrB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC3B,CAAC;gBACD,OAAO,EAAE,CAAC,OAAO,EAAE,EAAE;oBACnB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACxB,CAAC;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;YAEzC,kBAAkB;YAClB,MAAM,SAAS,GAAG,WAAW,CAAC,YAAY,EAAE,CAAC;YAC7C,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAC1B,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;gBAChC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;YAClE,CAAC,CAAC,CAAC;QAEL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAEtC,yBAAyB;YACzB,IAAI,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;YACnD,IAAI,CAAC,GAAG,CAAC,eAAe,KAAK,EAAE,WAAW,EAAE,IAAI,IAAI,SAAS,EAAE,CAAC,CAAC;YACjE,IAAI,CAAC,GAAG,CAAC,kBAAkB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAErF,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC1C,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;gBAC3B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACxB,CAAC;YAED,wBAAwB;YACxB,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBAC3B,MAAM,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBACnD,IAAI,IAAI,EAAE,CAAC;oBACT,IAAI,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,KAAc,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC"}
|