@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
|
@@ -1,47 +1,42 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
-
const metadata_sync_1 = require("@memberjunction/metadata-sync");
|
|
10
|
-
class Status extends core_1.Command {
|
|
11
|
-
static description = 'Show status of local files vs database';
|
|
12
|
-
static examples = [
|
|
1
|
+
import { Command, Flags } from '@oclif/core';
|
|
2
|
+
import ora from 'ora-classic';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
import { StatusService, loadMJConfig, initializeProvider, getSyncEngine, getSystemUser, resetSyncEngine } from '@memberjunction/metadata-sync';
|
|
5
|
+
export default class Status extends Command {
|
|
6
|
+
static { this.description = 'Show status of local files vs database'; }
|
|
7
|
+
static { this.examples = [
|
|
13
8
|
`<%= config.bin %> <%= command.id %>`,
|
|
14
9
|
`<%= config.bin %> <%= command.id %> --dir="ai-prompts"`,
|
|
15
10
|
`<%= config.bin %> <%= command.id %> --verbose`,
|
|
16
|
-
];
|
|
17
|
-
static flags = {
|
|
18
|
-
dir:
|
|
19
|
-
verbose:
|
|
20
|
-
include:
|
|
11
|
+
]; }
|
|
12
|
+
static { this.flags = {
|
|
13
|
+
dir: Flags.string({ description: 'Specific entity directory to check status' }),
|
|
14
|
+
verbose: Flags.boolean({ char: 'v', description: 'Show detailed field-level differences' }),
|
|
15
|
+
include: Flags.string({
|
|
21
16
|
description: 'Only process these directories (comma-separated, supports patterns)',
|
|
22
17
|
multiple: false
|
|
23
18
|
}),
|
|
24
|
-
exclude:
|
|
19
|
+
exclude: Flags.string({
|
|
25
20
|
description: 'Skip these directories (comma-separated, supports patterns)',
|
|
26
21
|
multiple: false
|
|
27
22
|
}),
|
|
28
|
-
};
|
|
23
|
+
}; }
|
|
29
24
|
async run() {
|
|
30
25
|
const { flags } = await this.parse(Status);
|
|
31
|
-
const spinner = (
|
|
26
|
+
const spinner = ora();
|
|
32
27
|
try {
|
|
33
28
|
// Load configuration
|
|
34
29
|
spinner.start('Loading configuration');
|
|
35
|
-
const mjConfig =
|
|
30
|
+
const mjConfig = loadMJConfig();
|
|
36
31
|
if (!mjConfig) {
|
|
37
32
|
this.error('No mj.config.cjs found in current directory or parent directories');
|
|
38
33
|
}
|
|
39
34
|
// Stop spinner before provider initialization
|
|
40
35
|
spinner.stop();
|
|
41
36
|
// Initialize data provider
|
|
42
|
-
await
|
|
37
|
+
await initializeProvider(mjConfig);
|
|
43
38
|
// Initialize sync engine
|
|
44
|
-
const syncEngine = await
|
|
39
|
+
const syncEngine = await getSyncEngine(getSystemUser());
|
|
45
40
|
// Show success after initialization
|
|
46
41
|
if (flags.verbose) {
|
|
47
42
|
spinner.succeed('Configuration and metadata loaded');
|
|
@@ -53,7 +48,7 @@ class Status extends core_1.Command {
|
|
|
53
48
|
const includeFilter = flags.include ? flags.include.split(',').map(s => s.trim()) : undefined;
|
|
54
49
|
const excludeFilter = flags.exclude ? flags.exclude.split(',').map(s => s.trim()) : undefined;
|
|
55
50
|
// Create status service and execute
|
|
56
|
-
const statusService = new
|
|
51
|
+
const statusService = new StatusService(syncEngine);
|
|
57
52
|
spinner.start('Checking status...');
|
|
58
53
|
const result = await statusService.checkStatus({
|
|
59
54
|
dir: flags.dir,
|
|
@@ -76,25 +71,25 @@ class Status extends core_1.Command {
|
|
|
76
71
|
const summary = result.summary;
|
|
77
72
|
const totalFiles = summary.new + summary.modified + summary.deleted + summary.unchanged;
|
|
78
73
|
if (totalFiles === 0) {
|
|
79
|
-
this.log(
|
|
74
|
+
this.log(chalk.yellow('\nNo metadata files found in the specified directory.'));
|
|
80
75
|
}
|
|
81
76
|
else {
|
|
82
|
-
this.log(
|
|
77
|
+
this.log(chalk.bold('\nSummary:'));
|
|
83
78
|
if (summary.new > 0) {
|
|
84
|
-
this.log(
|
|
79
|
+
this.log(chalk.green(` ${summary.new} new file(s) to push`));
|
|
85
80
|
}
|
|
86
81
|
if (summary.modified > 0) {
|
|
87
|
-
this.log(
|
|
82
|
+
this.log(chalk.yellow(` ${summary.modified} modified file(s) to push`));
|
|
88
83
|
}
|
|
89
84
|
if (summary.deleted > 0) {
|
|
90
|
-
this.log(
|
|
85
|
+
this.log(chalk.red(` ${summary.deleted} deleted file(s) to remove`));
|
|
91
86
|
}
|
|
92
87
|
if (summary.unchanged > 0) {
|
|
93
|
-
this.log(
|
|
88
|
+
this.log(chalk.gray(` ${summary.unchanged} unchanged file(s)`));
|
|
94
89
|
}
|
|
95
90
|
// Show details by entity if verbose
|
|
96
91
|
if (flags.verbose && result.details.length > 0) {
|
|
97
|
-
this.log(
|
|
92
|
+
this.log(chalk.bold('\nDetails by entity:'));
|
|
98
93
|
for (const detail of result.details) {
|
|
99
94
|
this.log(`\n ${detail.entityName} (${detail.directory}):`);
|
|
100
95
|
this.log(` New: ${detail.new}, Modified: ${detail.modified}, Deleted: ${detail.deleted}, Unchanged: ${detail.unchanged}`);
|
|
@@ -116,8 +111,8 @@ class Status extends core_1.Command {
|
|
|
116
111
|
}
|
|
117
112
|
finally {
|
|
118
113
|
// Reset singletons
|
|
119
|
-
|
|
114
|
+
resetSyncEngine();
|
|
120
115
|
}
|
|
121
116
|
}
|
|
122
117
|
}
|
|
123
|
-
|
|
118
|
+
//# sourceMappingURL=status.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/commands/sync/status.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,10 +3,11 @@ export default class Validate 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
|
|
6
|
+
dir: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
7
7
|
verbose: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
8
8
|
'save-report': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
9
|
-
output: import("@oclif/core/lib/interfaces").OptionFlag<string
|
|
9
|
+
output: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
10
10
|
};
|
|
11
11
|
run(): Promise<void>;
|
|
12
12
|
}
|
|
13
|
+
//# sourceMappingURL=validate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/validate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAgB7C,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,OAAO;IAC3C,MAAM,CAAC,WAAW,SAA6B;IAE/C,MAAM,CAAC,QAAQ,WAKb;IAEF,MAAM,CAAC,KAAK;;;;;MAKV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA+F3B"}
|
|
@@ -1,67 +1,39 @@
|
|
|
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 ora_classic_1 = __importDefault(require("ora-classic"));
|
|
31
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
32
|
-
const path = __importStar(require("path"));
|
|
33
|
-
const fs_extra_1 = __importDefault(require("fs-extra"));
|
|
34
|
-
const metadata_sync_1 = require("@memberjunction/metadata-sync");
|
|
35
|
-
class Validate extends core_1.Command {
|
|
36
|
-
static description = 'Validate metadata files';
|
|
37
|
-
static examples = [
|
|
1
|
+
import { Command, Flags } from '@oclif/core';
|
|
2
|
+
import ora from 'ora-classic';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
import * as path from 'path';
|
|
5
|
+
import fs from 'fs-extra';
|
|
6
|
+
import { ValidationService, FormattingService, loadMJConfig, initializeProvider, getSyncEngine, getSystemUser, resetSyncEngine, configManager } from '@memberjunction/metadata-sync';
|
|
7
|
+
export default class Validate extends Command {
|
|
8
|
+
static { this.description = 'Validate metadata files'; }
|
|
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 %> --save-report`,
|
|
41
13
|
`<%= config.bin %> <%= command.id %> --verbose`,
|
|
42
|
-
];
|
|
43
|
-
static flags = {
|
|
44
|
-
dir:
|
|
45
|
-
verbose:
|
|
46
|
-
'save-report':
|
|
47
|
-
'output':
|
|
48
|
-
};
|
|
14
|
+
]; }
|
|
15
|
+
static { this.flags = {
|
|
16
|
+
dir: Flags.string({ description: 'Specific entity directory to validate' }),
|
|
17
|
+
verbose: Flags.boolean({ char: 'v', description: 'Show detailed validation output' }),
|
|
18
|
+
'save-report': Flags.boolean({ description: 'Save validation report as markdown file' }),
|
|
19
|
+
'output': Flags.string({ description: 'Output file path for validation report (default: validation-report.md)' }),
|
|
20
|
+
}; }
|
|
49
21
|
async run() {
|
|
50
22
|
const { flags } = await this.parse(Validate);
|
|
51
|
-
const spinner = (
|
|
23
|
+
const spinner = ora();
|
|
52
24
|
try {
|
|
53
25
|
// Load configuration
|
|
54
26
|
spinner.start('Loading configuration');
|
|
55
|
-
const mjConfig =
|
|
27
|
+
const mjConfig = loadMJConfig();
|
|
56
28
|
if (!mjConfig) {
|
|
57
29
|
this.error('No mj.config.cjs found in current directory or parent directories');
|
|
58
30
|
}
|
|
59
31
|
// Stop spinner before provider initialization
|
|
60
32
|
spinner.stop();
|
|
61
33
|
// Initialize data provider
|
|
62
|
-
await
|
|
34
|
+
await initializeProvider(mjConfig);
|
|
63
35
|
// Initialize sync engine (needed for metadata access)
|
|
64
|
-
await
|
|
36
|
+
await getSyncEngine(getSystemUser());
|
|
65
37
|
// Show success after initialization
|
|
66
38
|
if (flags.verbose) {
|
|
67
39
|
spinner.succeed('Configuration and metadata loaded');
|
|
@@ -70,12 +42,12 @@ class Validate extends core_1.Command {
|
|
|
70
42
|
spinner.stop();
|
|
71
43
|
}
|
|
72
44
|
// Create validation service
|
|
73
|
-
const validator = new
|
|
74
|
-
const formatter = new
|
|
45
|
+
const validator = new ValidationService({ verbose: flags.verbose });
|
|
46
|
+
const formatter = new FormattingService();
|
|
75
47
|
// Determine directory to validate
|
|
76
48
|
const targetDir = flags.dir
|
|
77
|
-
? path.resolve(
|
|
78
|
-
:
|
|
49
|
+
? path.resolve(configManager.getOriginalCwd(), flags.dir)
|
|
50
|
+
: configManager.getOriginalCwd();
|
|
79
51
|
spinner.start(`Validating metadata in ${path.relative(process.cwd(), targetDir)}...`);
|
|
80
52
|
// Run validation
|
|
81
53
|
const validationResult = await validator.validateDirectory(targetDir);
|
|
@@ -89,19 +61,19 @@ class Validate extends core_1.Command {
|
|
|
89
61
|
const fullReportPath = path.resolve(reportPath);
|
|
90
62
|
// Generate markdown report
|
|
91
63
|
const report = formatter.formatValidationResultAsMarkdown(validationResult);
|
|
92
|
-
await
|
|
93
|
-
this.log(
|
|
64
|
+
await fs.writeFile(fullReportPath, report, 'utf8');
|
|
65
|
+
this.log(chalk.green(`\n✅ Validation report saved to: ${path.relative(process.cwd(), fullReportPath)}`));
|
|
94
66
|
}
|
|
95
67
|
// Show summary
|
|
96
68
|
const totalIssues = validationResult.errors.length + validationResult.warnings.length;
|
|
97
69
|
if (validationResult.isValid && validationResult.warnings.length === 0) {
|
|
98
|
-
this.log(
|
|
70
|
+
this.log(chalk.green('\n✅ All metadata files are valid!'));
|
|
99
71
|
}
|
|
100
72
|
else if (validationResult.isValid && validationResult.warnings.length > 0) {
|
|
101
|
-
this.log(
|
|
73
|
+
this.log(chalk.yellow(`\n⚠️ Validation passed with ${validationResult.warnings.length} warning(s)`));
|
|
102
74
|
}
|
|
103
75
|
else {
|
|
104
|
-
this.log(
|
|
76
|
+
this.log(chalk.red(`\n❌ Validation failed with ${validationResult.errors.length} error(s) and ${validationResult.warnings.length} warning(s)`));
|
|
105
77
|
}
|
|
106
78
|
// Exit with error code if validation failed
|
|
107
79
|
if (!validationResult.isValid) {
|
|
@@ -122,8 +94,8 @@ class Validate extends core_1.Command {
|
|
|
122
94
|
}
|
|
123
95
|
finally {
|
|
124
96
|
// Reset singletons
|
|
125
|
-
|
|
97
|
+
resetSyncEngine();
|
|
126
98
|
}
|
|
127
99
|
}
|
|
128
100
|
}
|
|
129
|
-
|
|
101
|
+
//# sourceMappingURL=validate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/commands/sync/validate.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,11 +3,12 @@ export default class Watch 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
|
-
debounce: import("@oclif/core/lib/interfaces").OptionFlag<number
|
|
6
|
+
dir: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
7
|
+
debounce: import("@oclif/core/lib/interfaces").OptionFlag<number, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
8
8
|
'no-validate': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
9
9
|
verbose: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
10
10
|
};
|
|
11
11
|
private watchController?;
|
|
12
12
|
run(): Promise<void>;
|
|
13
13
|
}
|
|
14
|
+
//# sourceMappingURL=watch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/watch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAgB7C,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,OAAO;IACxC,MAAM,CAAC,WAAW,SAAmD;IAErE,MAAM,CAAC,QAAQ,WAKb;IAEF,MAAM,CAAC,KAAK;;;;;MAKV;IAEF,OAAO,CAAC,eAAe,CAAC,CAAM;IAExB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAkH3B"}
|
|
@@ -1,116 +1,87 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
}
|
|
8
|
-
|
|
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 ora_classic_1 = __importDefault(require("ora-classic"));
|
|
31
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
32
|
-
const path = __importStar(require("path"));
|
|
33
|
-
const metadata_sync_1 = require("@memberjunction/metadata-sync");
|
|
34
|
-
class Watch extends core_1.Command {
|
|
35
|
-
static description = 'Watch for file changes and sync automatically';
|
|
36
|
-
static examples = [
|
|
1
|
+
import { Command, Flags } from '@oclif/core';
|
|
2
|
+
import ora from 'ora-classic';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
import * as path from 'path';
|
|
5
|
+
import { WatchService, loadMJConfig, loadSyncConfig, initializeProvider, getSyncEngine, getSystemUser, resetSyncEngine, configManager } from '@memberjunction/metadata-sync';
|
|
6
|
+
export default class Watch extends Command {
|
|
7
|
+
static { this.description = 'Watch for file changes and sync automatically'; }
|
|
8
|
+
static { this.examples = [
|
|
37
9
|
`<%= config.bin %> <%= command.id %>`,
|
|
38
10
|
`<%= config.bin %> <%= command.id %> --dir="ai-prompts"`,
|
|
39
11
|
`<%= config.bin %> <%= command.id %> --debounce=1000`,
|
|
40
12
|
`<%= config.bin %> <%= command.id %> --no-validate`,
|
|
41
|
-
];
|
|
42
|
-
static flags = {
|
|
43
|
-
dir:
|
|
44
|
-
debounce:
|
|
45
|
-
'no-validate':
|
|
46
|
-
verbose:
|
|
47
|
-
};
|
|
48
|
-
watchController;
|
|
13
|
+
]; }
|
|
14
|
+
static { this.flags = {
|
|
15
|
+
dir: Flags.string({ description: 'Specific entity directory to watch' }),
|
|
16
|
+
debounce: Flags.integer({ description: 'Debounce delay in milliseconds (default: 500)' }),
|
|
17
|
+
'no-validate': Flags.boolean({ description: 'Skip validation before sync' }),
|
|
18
|
+
verbose: Flags.boolean({ char: 'v', description: 'Show detailed output' }),
|
|
19
|
+
}; }
|
|
49
20
|
async run() {
|
|
50
21
|
const { flags } = await this.parse(Watch);
|
|
51
|
-
const spinner = (
|
|
22
|
+
const spinner = ora();
|
|
52
23
|
try {
|
|
53
24
|
// Load configuration
|
|
54
25
|
spinner.start('Loading configuration');
|
|
55
|
-
const mjConfig =
|
|
26
|
+
const mjConfig = loadMJConfig();
|
|
56
27
|
if (!mjConfig) {
|
|
57
28
|
this.error('No mj.config.cjs found in current directory or parent directories');
|
|
58
29
|
}
|
|
59
30
|
// Load sync config
|
|
60
|
-
const syncConfigDir = flags.dir ? path.resolve(
|
|
61
|
-
const syncConfig = await
|
|
31
|
+
const syncConfigDir = flags.dir ? path.resolve(configManager.getOriginalCwd(), flags.dir) : configManager.getOriginalCwd();
|
|
32
|
+
const syncConfig = await loadSyncConfig(syncConfigDir);
|
|
62
33
|
// Stop spinner before provider initialization
|
|
63
34
|
spinner.stop();
|
|
64
35
|
// Initialize data provider
|
|
65
|
-
await
|
|
36
|
+
await initializeProvider(mjConfig);
|
|
66
37
|
// Initialize sync engine
|
|
67
|
-
const syncEngine = await
|
|
38
|
+
const syncEngine = await getSyncEngine(getSystemUser());
|
|
68
39
|
// Show success after initialization
|
|
69
40
|
spinner.succeed('Configuration and metadata loaded');
|
|
70
41
|
// Determine watch directory
|
|
71
42
|
const watchDir = flags.dir
|
|
72
|
-
? path.resolve(
|
|
73
|
-
:
|
|
43
|
+
? path.resolve(configManager.getOriginalCwd(), flags.dir)
|
|
44
|
+
: configManager.getOriginalCwd();
|
|
74
45
|
// Create watch service
|
|
75
|
-
const watchService = new
|
|
46
|
+
const watchService = new WatchService(syncEngine);
|
|
76
47
|
// Setup graceful shutdown
|
|
77
48
|
process.on('SIGINT', async () => {
|
|
78
|
-
this.log(
|
|
49
|
+
this.log(chalk.yellow('\n\n⏹️ Stopping file watcher...'));
|
|
79
50
|
if (this.watchController) {
|
|
80
51
|
await this.watchController.stop();
|
|
81
52
|
}
|
|
82
|
-
|
|
53
|
+
resetSyncEngine();
|
|
83
54
|
process.exit(0);
|
|
84
55
|
});
|
|
85
56
|
process.on('SIGTERM', async () => {
|
|
86
57
|
if (this.watchController) {
|
|
87
58
|
await this.watchController.stop();
|
|
88
59
|
}
|
|
89
|
-
|
|
60
|
+
resetSyncEngine();
|
|
90
61
|
process.exit(0);
|
|
91
62
|
});
|
|
92
63
|
// Start watching
|
|
93
|
-
this.log(
|
|
94
|
-
this.log(
|
|
64
|
+
this.log(chalk.bold(`\n👀 Watching for changes in: ${path.relative(process.cwd(), watchDir)}`));
|
|
65
|
+
this.log(chalk.gray('Press Ctrl+C to stop watching\n'));
|
|
95
66
|
this.watchController = await watchService.watch({
|
|
96
67
|
dir: flags.dir,
|
|
97
68
|
debounceMs: flags.debounce || 500
|
|
98
69
|
}, {
|
|
99
70
|
onFileAdd: (filePath, entityDir, entityConfig) => {
|
|
100
71
|
const relativePath = path.relative(process.cwd(), filePath);
|
|
101
|
-
this.log(
|
|
72
|
+
this.log(chalk.gray(`➕ added: ${relativePath}`));
|
|
102
73
|
},
|
|
103
74
|
onFileChange: (filePath, entityDir, entityConfig) => {
|
|
104
75
|
const relativePath = path.relative(process.cwd(), filePath);
|
|
105
|
-
this.log(
|
|
76
|
+
this.log(chalk.gray(`📝 changed: ${relativePath}`));
|
|
106
77
|
},
|
|
107
78
|
onFileDelete: (filePath, entityDir, entityConfig) => {
|
|
108
79
|
const relativePath = path.relative(process.cwd(), filePath);
|
|
109
|
-
this.log(
|
|
80
|
+
this.log(chalk.gray(`❌ deleted: ${relativePath}`));
|
|
110
81
|
},
|
|
111
82
|
onRecordSaved: (entity, isNew, entityConfig) => {
|
|
112
83
|
const action = isNew ? 'created' : 'updated';
|
|
113
|
-
this.log(
|
|
84
|
+
this.log(chalk.green(`✅ Record ${action} for ${entityConfig.entity}`));
|
|
114
85
|
},
|
|
115
86
|
onError: (error) => {
|
|
116
87
|
spinner.fail('Watch error');
|
|
@@ -145,4 +116,4 @@ class Watch extends core_1.Command {
|
|
|
145
116
|
}
|
|
146
117
|
}
|
|
147
118
|
}
|
|
148
|
-
|
|
119
|
+
//# sourceMappingURL=watch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../../../src/commands/sync/watch.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,16 +3,17 @@ export default class TestCompare extends Command {
|
|
|
3
3
|
static description: string;
|
|
4
4
|
static examples: string[];
|
|
5
5
|
static args: {
|
|
6
|
-
runId1: import("@oclif/core/lib/interfaces").Arg<string
|
|
7
|
-
runId2: import("@oclif/core/lib/interfaces").Arg<string
|
|
6
|
+
runId1: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
7
|
+
runId2: import("@oclif/core/lib/interfaces").Arg<string, Record<string, unknown>>;
|
|
8
8
|
};
|
|
9
9
|
static flags: {
|
|
10
|
-
version: import("@oclif/core/lib/interfaces").OptionFlag<string[]
|
|
11
|
-
commit: import("@oclif/core/lib/interfaces").OptionFlag<string[]
|
|
10
|
+
version: import("@oclif/core/lib/interfaces").OptionFlag<string[], import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
11
|
+
commit: import("@oclif/core/lib/interfaces").OptionFlag<string[], import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
12
12
|
'diff-only': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
13
13
|
format: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
14
|
-
output: import("@oclif/core/lib/interfaces").OptionFlag<string
|
|
14
|
+
output: import("@oclif/core/lib/interfaces").OptionFlag<string, import("@oclif/core/lib/interfaces").CustomOptions>;
|
|
15
15
|
verbose: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
|
|
16
16
|
};
|
|
17
17
|
run(): Promise<void>;
|
|
18
18
|
}
|
|
19
|
+
//# sourceMappingURL=compare.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compare.d.ts","sourceRoot":"","sources":["../../../src/commands/test/compare.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAe,MAAM,aAAa,CAAC;AAGnD,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,OAAO;IAC9C,MAAM,CAAC,WAAW,SAAgD;IAElE,MAAM,CAAC,QAAQ,WAKb;IAEF,MAAM,CAAC,IAAI;;;MAST;IAEF,MAAM,CAAC,KAAK;;;;;;;MA6BV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAoB3B"}
|
|
@@ -1,61 +1,59 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
static description = 'Compare test runs for regression detection';
|
|
7
|
-
static examples = [
|
|
1
|
+
import { Command, Flags, Args } from '@oclif/core';
|
|
2
|
+
import { CompareCommand } from '@memberjunction/testing-cli';
|
|
3
|
+
export default class TestCompare extends Command {
|
|
4
|
+
static { this.description = 'Compare test runs for regression detection'; }
|
|
5
|
+
static { this.examples = [
|
|
8
6
|
'<%= config.bin %> <%= command.id %> <run-id-1> <run-id-2>',
|
|
9
7
|
'<%= config.bin %> <%= command.id %> --baseline=<run-id> --current=<run-id>',
|
|
10
8
|
'<%= config.bin %> <%= command.id %> --suite=<suite-id> --since="2024-01-01"',
|
|
11
9
|
'<%= config.bin %> <%= command.id %> <run-id-1> <run-id-2> --format=json',
|
|
12
|
-
];
|
|
13
|
-
static args = {
|
|
14
|
-
runId1:
|
|
10
|
+
]; }
|
|
11
|
+
static { this.args = {
|
|
12
|
+
runId1: Args.string({
|
|
15
13
|
description: 'First test run ID to compare',
|
|
16
14
|
required: false,
|
|
17
15
|
}),
|
|
18
|
-
runId2:
|
|
16
|
+
runId2: Args.string({
|
|
19
17
|
description: 'Second test run ID to compare',
|
|
20
18
|
required: false,
|
|
21
19
|
}),
|
|
22
|
-
};
|
|
23
|
-
static flags = {
|
|
24
|
-
version:
|
|
20
|
+
}; }
|
|
21
|
+
static { this.flags = {
|
|
22
|
+
version: Flags.string({
|
|
25
23
|
char: 'v',
|
|
26
24
|
description: 'Compare runs by version',
|
|
27
25
|
multiple: true,
|
|
28
26
|
}),
|
|
29
|
-
commit:
|
|
27
|
+
commit: Flags.string({
|
|
30
28
|
char: 'c',
|
|
31
29
|
description: 'Compare runs by git commit',
|
|
32
30
|
multiple: true,
|
|
33
31
|
}),
|
|
34
|
-
'diff-only':
|
|
32
|
+
'diff-only': Flags.boolean({
|
|
35
33
|
description: 'Show only differences',
|
|
36
34
|
default: false,
|
|
37
35
|
}),
|
|
38
|
-
format:
|
|
36
|
+
format: Flags.string({
|
|
39
37
|
char: 'f',
|
|
40
38
|
description: 'Output format',
|
|
41
39
|
options: ['console', 'json', 'markdown'],
|
|
42
40
|
default: 'console',
|
|
43
41
|
}),
|
|
44
|
-
output:
|
|
42
|
+
output: Flags.string({
|
|
45
43
|
char: 'o',
|
|
46
44
|
description: 'Output file path',
|
|
47
45
|
}),
|
|
48
|
-
verbose:
|
|
46
|
+
verbose: Flags.boolean({
|
|
49
47
|
description: 'Show detailed information',
|
|
50
48
|
default: false,
|
|
51
49
|
}),
|
|
52
|
-
};
|
|
50
|
+
}; }
|
|
53
51
|
async run() {
|
|
54
52
|
const { args, flags } = await this.parse(TestCompare);
|
|
55
53
|
try {
|
|
56
54
|
// Create CompareCommand instance and execute
|
|
57
55
|
// Context user will be fetched internally after MJ provider initialization
|
|
58
|
-
const compareCommand = new
|
|
56
|
+
const compareCommand = new CompareCommand();
|
|
59
57
|
await compareCommand.execute(args.runId1, args.runId2, {
|
|
60
58
|
version: flags.version,
|
|
61
59
|
commit: flags.commit,
|
|
@@ -70,4 +68,4 @@ class TestCompare extends core_1.Command {
|
|
|
70
68
|
}
|
|
71
69
|
}
|
|
72
70
|
}
|
|
73
|
-
|
|
71
|
+
//# sourceMappingURL=compare.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compare.js","sourceRoot":"","sources":["../../../src/commands/test/compare.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,OAAO;aACvC,gBAAW,GAAG,4CAA4C,CAAC;aAE3D,aAAQ,GAAG;QAChB,2DAA2D;QAC3D,4EAA4E;QAC5E,6EAA6E;QAC7E,yEAAyE;KAC1E,CAAC;aAEK,SAAI,GAAG;QACZ,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;YAClB,WAAW,EAAE,8BAA8B;YAC3C,QAAQ,EAAE,KAAK;SAChB,CAAC;QACF,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;YAClB,WAAW,EAAE,+BAA+B;YAC5C,QAAQ,EAAE,KAAK;SAChB,CAAC;KACH,CAAC;aAEK,UAAK,GAAG;QACb,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC;YACpB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,yBAAyB;YACtC,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;YACnB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,4BAA4B;YACzC,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC;YACzB,WAAW,EAAE,uBAAuB;YACpC,OAAO,EAAE,KAAK;SACf,CAAC;QACF,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;YACnB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,eAAe;YAC5B,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC;YACxC,OAAO,EAAE,SAAS;SACnB,CAAC;QACF,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;YACnB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,kBAAkB;SAChC,CAAC;QACF,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC;YACrB,WAAW,EAAE,2BAA2B;YACxC,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAEtD,IAAI,CAAC;YACH,6CAA6C;YAC7C,2EAA2E;YAC3E,MAAM,cAAc,GAAG,IAAI,cAAc,EAAE,CAAC;YAC5C,MAAM,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;gBACrD,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,QAAQ,EAAE,KAAK,CAAC,WAAW,CAAC;gBAC5B,MAAM,EAAE,KAAK,CAAC,MAAyC;gBACvD,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,OAAO,EAAE,KAAK,CAAC,OAAO;aACvB,CAAC,CAAC;QAEL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,KAAc,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC"}
|