@cwygoda/service-catalog-cli 0.17.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ import '../dist/index.js';
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const buildCommand: Command;
3
+ //# sourceMappingURL=build.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.command.d.ts","sourceRoot":"","sources":["../../src/commands/build.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA2DpC,eAAO,MAAM,YAAY,SAKT,CAAC"}
@@ -0,0 +1,43 @@
1
+ import { Command } from 'commander';
2
+ import { resolve } from 'node:path';
3
+ import chalk from 'chalk';
4
+ import { recommendedConfig } from '@cwygoda/bpmn-txt';
5
+ import { FilesystemLoader, createJsonWriter, buildServiceGraph, } from '@cwygoda/service-catalog-core';
6
+ import { resolveBpmnlintrc } from '../utils/resolve-bpmnlintrc.js';
7
+ import { formatLintDiagnostics } from '../utils/format-lint.js';
8
+ async function build(options) {
9
+ const inputPath = resolve(options.input);
10
+ const outputPath = resolve(options.output, 'catalog.json');
11
+ console.log(chalk.blue('Building catalog...'));
12
+ console.log(chalk.gray(` Input: ${inputPath}`));
13
+ console.log(chalk.gray(` Output: ${outputPath}`));
14
+ const bpmnLintConfig = (await resolveBpmnlintrc()) ?? recommendedConfig;
15
+ const loader = new FilesystemLoader({ bpmnLint: options.bpmnLint, bpmnLintConfig });
16
+ const writer = createJsonWriter();
17
+ try {
18
+ const { catalog, lintDiagnostics } = await loader.loadWithDiagnostics(inputPath);
19
+ console.log(chalk.gray(` Found ${String(catalog.services.length)} service(s)`));
20
+ if (lintDiagnostics.length > 0) {
21
+ process.stderr.write('\n' + formatLintDiagnostics(lintDiagnostics) + '\n\n');
22
+ }
23
+ // Build service graph
24
+ const graph = buildServiceGraph(catalog);
25
+ console.log(chalk.gray(` Built graph: ${String(graph.nodes.length)} nodes, ${String(graph.edges.length)} edges`));
26
+ // Add graph to catalog output
27
+ const catalogWithGraph = { ...catalog, graph };
28
+ await writer.write(catalogWithGraph, outputPath);
29
+ console.log(chalk.green('✓ Catalog built successfully'));
30
+ }
31
+ catch (error) {
32
+ console.error(chalk.red('✗ Build failed:'));
33
+ console.error(chalk.red(` ${error instanceof Error ? error.message : String(error)}`));
34
+ process.exit(1);
35
+ }
36
+ }
37
+ export const buildCommand = new Command('build')
38
+ .description('Build the service catalog from source files')
39
+ .option('-i, --input <path>', 'Input directory containing service definitions', '.')
40
+ .option('-o, --output <path>', 'Output directory for built catalog', 'dist')
41
+ .option('--bpmn-lint <level>', 'BPMN lint level: error, warn, off', 'warn')
42
+ .action(build);
43
+ //# sourceMappingURL=build.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.command.js","sourceRoot":"","sources":["../../src/commands/build.command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const lintCommand: Command;
3
+ //# sourceMappingURL=lint.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lint.command.d.ts","sourceRoot":"","sources":["../../src/commands/lint.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyBpC,eAAO,MAAM,WAAW,SAIH,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { Command } from 'commander';
2
+ import { resolve } from 'node:path';
3
+ import { recommendedConfig } from '@cwygoda/bpmn-txt';
4
+ import { FilesystemLoader } from '@cwygoda/service-catalog-core';
5
+ import { resolveBpmnlintrc } from '../utils/resolve-bpmnlintrc.js';
6
+ import { formatLintDiagnostics } from '../utils/format-lint.js';
7
+ async function lintAction(options) {
8
+ const inputPath = resolve(options.input);
9
+ const bpmnLintConfig = (await resolveBpmnlintrc(options.config)) ?? recommendedConfig;
10
+ const loader = new FilesystemLoader({ bpmnLint: 'warn', bpmnLintConfig });
11
+ const { lintDiagnostics } = await loader.loadWithDiagnostics(inputPath);
12
+ if (lintDiagnostics.length > 0) {
13
+ const output = formatLintDiagnostics(lintDiagnostics);
14
+ process.stderr.write(output + '\n');
15
+ }
16
+ }
17
+ export const lintCommand = new Command('lint')
18
+ .description('Lint BPMN definitions in the catalog')
19
+ .option('-i, --input <path>', 'Input directory containing service definitions', '.')
20
+ .option('--config <path>', 'Path to .bpmnlintrc config file')
21
+ .action(lintAction);
22
+ //# sourceMappingURL=lint.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lint.command.js","sourceRoot":"","sources":["../../src/commands/lint.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAOhE,KAAK,UAAU,UAAU,CAAC,OAAoB;IAC5C,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,cAAc,GAAG,CAAC,MAAM,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,iBAAiB,CAAC;IAEtF,MAAM,MAAM,GAAG,IAAI,gBAAgB,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC;IAC1E,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAExE,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,qBAAqB,CAAC,eAAe,CAAC,CAAC;QACtD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;KAC3C,WAAW,CAAC,sCAAsC,CAAC;KACnD,MAAM,CAAC,oBAAoB,EAAE,gDAAgD,EAAE,GAAG,CAAC;KACnF,MAAM,CAAC,iBAAiB,EAAE,iCAAiC,CAAC;KAC5D,MAAM,CAAC,UAAU,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,12 @@
1
+ import { Command } from 'commander';
2
+ import { buildCommand } from './commands/build.command.js';
3
+ import { lintCommand } from './commands/lint.command.js';
4
+ const program = new Command();
5
+ program
6
+ .name('service-catalog')
7
+ .description('Build service catalogs from service descriptions')
8
+ .version('0.0.0');
9
+ program.addCommand(buildCommand);
10
+ program.addCommand(lintCommand);
11
+ program.parse();
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,iBAAiB,CAAC;KACvB,WAAW,CAAC,kDAAkD,CAAC;KAC/D,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAEhC,OAAO,CAAC,KAAK,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { LintDiagnostic } from '@cwygoda/service-catalog-core';
2
+ export declare function formatLintDiagnostics(diagnostics: LintDiagnostic[]): string;
3
+ //# sourceMappingURL=format-lint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-lint.d.ts","sourceRoot":"","sources":["../../src/utils/format-lint.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAEpE,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,cAAc,EAAE,GAAG,MAAM,CAqC3E"}
@@ -0,0 +1,33 @@
1
+ import { relative } from 'node:path';
2
+ import chalk from 'chalk';
3
+ export function formatLintDiagnostics(diagnostics) {
4
+ if (diagnostics.length === 0)
5
+ return '';
6
+ let errorCount = 0;
7
+ let warnCount = 0;
8
+ const lines = [];
9
+ for (const diag of diagnostics) {
10
+ const relPath = relative(process.cwd(), diag.filePath);
11
+ lines.push(chalk.underline(relPath));
12
+ for (const result of diag.results) {
13
+ if (result.category === 'error') {
14
+ errorCount++;
15
+ lines.push(` ${chalk.red('✗')} ${result.id}: ${result.message} ${chalk.gray(`(${result.rule})`)}`);
16
+ }
17
+ else {
18
+ warnCount++;
19
+ lines.push(` ${chalk.yellow('⚠')} ${result.id}: ${result.message} ${chalk.gray(`(${result.rule})`)}`);
20
+ }
21
+ }
22
+ lines.push('');
23
+ }
24
+ const total = errorCount + warnCount;
25
+ const parts = [];
26
+ if (errorCount > 0)
27
+ parts.push(chalk.red(`${String(errorCount)} error${errorCount !== 1 ? 's' : ''}`));
28
+ if (warnCount > 0)
29
+ parts.push(chalk.yellow(`${String(warnCount)} warning${warnCount !== 1 ? 's' : ''}`));
30
+ lines.push(`${String(total)} problem${total !== 1 ? 's' : ''} (${parts.join(', ')})`);
31
+ return lines.join('\n');
32
+ }
33
+ //# sourceMappingURL=format-lint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format-lint.js","sourceRoot":"","sources":["../../src/utils/format-lint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,UAAU,qBAAqB,CAAC,WAA6B;IACjE,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAExC,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAErC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;gBAChC,UAAU,EAAE,CAAC;gBACb,KAAK,CAAC,IAAI,CACR,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE,CACxF,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,SAAS,EAAE,CAAC;gBACZ,KAAK,CAAC,IAAI,CACR,KAAK,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE,CAC3F,CAAC;YACJ,CAAC;QACH,CAAC;QAED,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjB,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,GAAG,SAAS,CAAC;IACrC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,UAAU,GAAG,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACrF,IAAI,SAAS,GAAG,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACxF,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAEtF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { LinterConfig } from '@cwygoda/bpmn-txt';
2
+ export declare function resolveBpmnlintrc(configPath?: string): Promise<LinterConfig | undefined>;
3
+ //# sourceMappingURL=resolve-bpmnlintrc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-bpmnlintrc.d.ts","sourceRoot":"","sources":["../../src/utils/resolve-bpmnlintrc.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,wBAAsB,iBAAiB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAS9F"}
@@ -0,0 +1,13 @@
1
+ import { readFile } from 'node:fs/promises';
2
+ import { resolve } from 'node:path';
3
+ export async function resolveBpmnlintrc(configPath) {
4
+ const filePath = configPath ? resolve(configPath) : resolve('.bpmnlintrc');
5
+ try {
6
+ const content = await readFile(filePath, 'utf-8');
7
+ return JSON.parse(content);
8
+ }
9
+ catch {
10
+ return undefined;
11
+ }
12
+ }
13
+ //# sourceMappingURL=resolve-bpmnlintrc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-bpmnlintrc.js","sourceRoot":"","sources":["../../src/utils/resolve-bpmnlintrc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,UAAmB;IACzD,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAE3E,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAiB,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
package/package.json ADDED
@@ -0,0 +1,32 @@
1
+ {
2
+ "name": "@cwygoda/service-catalog-cli",
3
+ "version": "0.17.1",
4
+ "type": "module",
5
+ "bin": {
6
+ "service-catalog": "./bin/service-catalog.js"
7
+ },
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/index.d.ts",
11
+ "import": "./dist/index.js"
12
+ }
13
+ },
14
+ "files": [
15
+ "dist",
16
+ "bin"
17
+ ],
18
+ "dependencies": {
19
+ "@cwygoda/bpmn-txt": "^0.14.0",
20
+ "chalk": "^5.6.2",
21
+ "commander": "^14.0.3",
22
+ "@cwygoda/service-catalog-core": "0.17.1"
23
+ },
24
+ "devDependencies": {
25
+ "@types/node": "^24.12.0",
26
+ "typescript": "^5.9.3"
27
+ },
28
+ "scripts": {
29
+ "build": "tsc",
30
+ "typecheck": "tsc --noEmit"
31
+ }
32
+ }