@portel/photon-core 1.0.0 → 1.0.2
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/dist/cli-formatter.d.ts +92 -0
- package/dist/cli-formatter.d.ts.map +1 -0
- package/dist/cli-formatter.js +486 -0
- package/dist/cli-formatter.js.map +1 -0
- package/dist/dependency-manager.d.ts.map +1 -1
- package/dist/dependency-manager.js +6 -1
- package/dist/dependency-manager.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/path-resolver.d.ts +30 -0
- package/dist/path-resolver.d.ts.map +1 -0
- package/dist/path-resolver.js +95 -0
- package/dist/path-resolver.js.map +1 -0
- package/dist/schema-extractor.d.ts +2 -0
- package/dist/schema-extractor.d.ts.map +1 -1
- package/dist/schema-extractor.js +18 -5
- package/dist/schema-extractor.js.map +1 -1
- package/dist/types.d.ts +8 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +4 -2
- package/src/cli-formatter.ts +579 -0
- package/src/dependency-manager.ts +7 -1
- package/src/index.ts +32 -0
- package/src/path-resolver.ts +120 -0
- package/src/schema-extractor.ts +23 -7
- package/src/types.ts +12 -1
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Output Formatter
|
|
3
|
+
*
|
|
4
|
+
* Shared formatting utilities for beautiful CLI output.
|
|
5
|
+
* Used by photon CLI, lumina, ncp, and other projects.
|
|
6
|
+
*
|
|
7
|
+
* Structural formats:
|
|
8
|
+
* - primitive: Single values (string, number, boolean)
|
|
9
|
+
* - table: Flat objects or arrays of flat objects (bordered tables)
|
|
10
|
+
* - tree: Nested/hierarchical structures (indented)
|
|
11
|
+
* - list: Arrays of primitives (bullet points)
|
|
12
|
+
* - none: No data to display
|
|
13
|
+
*
|
|
14
|
+
* Content formats:
|
|
15
|
+
* - json: Pretty-printed JSON
|
|
16
|
+
* - markdown: Rendered markdown
|
|
17
|
+
* - yaml: YAML content
|
|
18
|
+
* - code / code:<lang>: Syntax highlighted code
|
|
19
|
+
*/
|
|
20
|
+
import { OutputFormat } from './types.js';
|
|
21
|
+
/**
|
|
22
|
+
* Format and output data with optional format hint
|
|
23
|
+
*/
|
|
24
|
+
export declare function formatOutput(data: any, hint?: OutputFormat): void;
|
|
25
|
+
/**
|
|
26
|
+
* Detect format type from data structure
|
|
27
|
+
*/
|
|
28
|
+
export declare function detectFormat(data: any): OutputFormat;
|
|
29
|
+
/**
|
|
30
|
+
* Render primitive value
|
|
31
|
+
*/
|
|
32
|
+
export declare function renderPrimitive(value: any): void;
|
|
33
|
+
/**
|
|
34
|
+
* Render list (array of primitives)
|
|
35
|
+
*/
|
|
36
|
+
export declare function renderList(data: any[]): void;
|
|
37
|
+
/**
|
|
38
|
+
* Render table (flat object or array of flat objects)
|
|
39
|
+
*/
|
|
40
|
+
export declare function renderTable(data: any): void;
|
|
41
|
+
/**
|
|
42
|
+
* Render tree (nested/hierarchical structure)
|
|
43
|
+
*/
|
|
44
|
+
export declare function renderTree(data: any, indent?: string): void;
|
|
45
|
+
/**
|
|
46
|
+
* Render none format (operation with no data)
|
|
47
|
+
*/
|
|
48
|
+
export declare function renderNone(): void;
|
|
49
|
+
/**
|
|
50
|
+
* Format a key for display (camelCase to Title Case)
|
|
51
|
+
*/
|
|
52
|
+
export declare function formatKey(key: string): string;
|
|
53
|
+
/**
|
|
54
|
+
* Format a value for display
|
|
55
|
+
*/
|
|
56
|
+
export declare function formatValue(value: any): string | number | boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Status indicators for tables (ASCII only for proper alignment)
|
|
59
|
+
*/
|
|
60
|
+
export declare const STATUS: {
|
|
61
|
+
readonly OK: "ok";
|
|
62
|
+
readonly UPDATE: "update";
|
|
63
|
+
readonly WARN: "warn";
|
|
64
|
+
readonly ERROR: "!";
|
|
65
|
+
readonly OFF: "off";
|
|
66
|
+
readonly UNKNOWN: "?";
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* Convert output format to MIME type (for MCP responses)
|
|
70
|
+
*/
|
|
71
|
+
export declare function formatToMimeType(format: OutputFormat): string | undefined;
|
|
72
|
+
/**
|
|
73
|
+
* Print a success message
|
|
74
|
+
*/
|
|
75
|
+
export declare function printSuccess(message: string): void;
|
|
76
|
+
/**
|
|
77
|
+
* Print an error message
|
|
78
|
+
*/
|
|
79
|
+
export declare function printError(message: string): void;
|
|
80
|
+
/**
|
|
81
|
+
* Print an info message
|
|
82
|
+
*/
|
|
83
|
+
export declare function printInfo(message: string): void;
|
|
84
|
+
/**
|
|
85
|
+
* Print a warning message
|
|
86
|
+
*/
|
|
87
|
+
export declare function printWarning(message: string): void;
|
|
88
|
+
/**
|
|
89
|
+
* Print a section header
|
|
90
|
+
*/
|
|
91
|
+
export declare function printHeader(title: string): void;
|
|
92
|
+
//# sourceMappingURL=cli-formatter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-formatter.d.ts","sourceRoot":"","sources":["../src/cli-formatter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAI1C;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,IAAI,CAWjE;AA2KD;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,YAAY,CAmDpD;AAmBD;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,CAMhD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAS5C;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,GAAG,GAAG,IAAI,CA8G3C;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,GAAE,MAAW,GAAG,IAAI,CA6C/D;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAEjC;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAO7C;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAQjE;AAED;;GAEG;AACH,eAAO,MAAM,MAAM;;;;;;;CAOT,CAAC;AAEX;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,GAAG,SAAS,CAuBzE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAElD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAEhD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE/C;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAElD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAG/C"}
|
|
@@ -0,0 +1,486 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Output Formatter
|
|
3
|
+
*
|
|
4
|
+
* Shared formatting utilities for beautiful CLI output.
|
|
5
|
+
* Used by photon CLI, lumina, ncp, and other projects.
|
|
6
|
+
*
|
|
7
|
+
* Structural formats:
|
|
8
|
+
* - primitive: Single values (string, number, boolean)
|
|
9
|
+
* - table: Flat objects or arrays of flat objects (bordered tables)
|
|
10
|
+
* - tree: Nested/hierarchical structures (indented)
|
|
11
|
+
* - list: Arrays of primitives (bullet points)
|
|
12
|
+
* - none: No data to display
|
|
13
|
+
*
|
|
14
|
+
* Content formats:
|
|
15
|
+
* - json: Pretty-printed JSON
|
|
16
|
+
* - markdown: Rendered markdown
|
|
17
|
+
* - yaml: YAML content
|
|
18
|
+
* - code / code:<lang>: Syntax highlighted code
|
|
19
|
+
*/
|
|
20
|
+
import { highlight } from 'cli-highlight';
|
|
21
|
+
import chalk from 'chalk';
|
|
22
|
+
/**
|
|
23
|
+
* Format and output data with optional format hint
|
|
24
|
+
*/
|
|
25
|
+
export function formatOutput(data, hint) {
|
|
26
|
+
const format = hint || detectFormat(data);
|
|
27
|
+
// Handle content formats (for string data)
|
|
28
|
+
if (typeof data === 'string' && isContentFormat(format)) {
|
|
29
|
+
renderContent(data, format);
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
// Handle structural formats
|
|
33
|
+
formatDataWithHint(data, format);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Check if format is a content type format
|
|
37
|
+
*/
|
|
38
|
+
function isContentFormat(format) {
|
|
39
|
+
return ['json', 'markdown', 'yaml', 'xml', 'html'].includes(format) ||
|
|
40
|
+
format === 'code' ||
|
|
41
|
+
format.startsWith('code:');
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Render content with appropriate formatting
|
|
45
|
+
*/
|
|
46
|
+
function renderContent(content, format) {
|
|
47
|
+
switch (format) {
|
|
48
|
+
case 'json':
|
|
49
|
+
renderJson(content);
|
|
50
|
+
break;
|
|
51
|
+
case 'markdown':
|
|
52
|
+
renderMarkdown(content);
|
|
53
|
+
break;
|
|
54
|
+
case 'yaml':
|
|
55
|
+
renderYaml(content);
|
|
56
|
+
break;
|
|
57
|
+
case 'xml':
|
|
58
|
+
case 'html':
|
|
59
|
+
renderXml(content);
|
|
60
|
+
break;
|
|
61
|
+
default:
|
|
62
|
+
if (format === 'code' || format.startsWith('code:')) {
|
|
63
|
+
const lang = format === 'code' ? undefined : format.split(':')[1];
|
|
64
|
+
renderCode(content, lang);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
console.log(content);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Render JSON with syntax highlighting
|
|
73
|
+
*/
|
|
74
|
+
function renderJson(content) {
|
|
75
|
+
try {
|
|
76
|
+
const parsed = typeof content === 'string' ? JSON.parse(content) : content;
|
|
77
|
+
const formatted = JSON.stringify(parsed, null, 2);
|
|
78
|
+
console.log(highlight(formatted, { language: 'json', ignoreIllegals: true }));
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
console.log(content);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Render markdown with colored terminal output
|
|
86
|
+
*/
|
|
87
|
+
function renderMarkdown(content) {
|
|
88
|
+
// Process markdown with colors for terminal
|
|
89
|
+
// Order matters: process block elements first, then inline elements
|
|
90
|
+
let rendered = content;
|
|
91
|
+
// 1. Code blocks - highlight with language if specified (must be first)
|
|
92
|
+
rendered = rendered.replace(/```(\w*)\n([\s\S]*?)```/g, (_match, lang, code) => {
|
|
93
|
+
const trimmedCode = code.trim();
|
|
94
|
+
if (lang && lang !== '') {
|
|
95
|
+
try {
|
|
96
|
+
return '\n' + highlight(trimmedCode, { language: lang, ignoreIllegals: true }) + '\n';
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
return '\n' + chalk.gray(trimmedCode) + '\n';
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return '\n' + chalk.gray(trimmedCode) + '\n';
|
|
103
|
+
});
|
|
104
|
+
// 2. Links - convert to plain format first (before other inline processing)
|
|
105
|
+
// This prevents markdown link brackets from interfering with other processing
|
|
106
|
+
rendered = rendered.replace(/\[([^\]]+)\]\(([^)]+)\)/g, (_m, text, url) => chalk.blue.underline(text) + chalk.dim(` (${url})`));
|
|
107
|
+
// 3. Headers with colors
|
|
108
|
+
rendered = rendered
|
|
109
|
+
.replace(/^### (.+)$/gm, (_m, h) => '\n' + chalk.cyan(' ' + h) + '\n ' + chalk.dim('-'.repeat(20)))
|
|
110
|
+
.replace(/^## (.+)$/gm, (_m, h) => '\n' + chalk.yellow.bold(' ' + h) + '\n ' + chalk.dim('='.repeat(30)))
|
|
111
|
+
.replace(/^# (.+)$/gm, (_m, h) => '\n' + chalk.magenta.bold(h) + '\n' + chalk.dim('='.repeat(40)));
|
|
112
|
+
// 4. Blockquotes
|
|
113
|
+
rendered = rendered.replace(/^> (.+)$/gm, (_m, quote) => chalk.dim('│ ') + chalk.italic(quote));
|
|
114
|
+
// 5. Horizontal rules
|
|
115
|
+
rendered = rendered.replace(/^---+$/gm, chalk.dim('─'.repeat(40)));
|
|
116
|
+
// 6. Lists
|
|
117
|
+
rendered = rendered.replace(/^- /gm, chalk.dim(' • '));
|
|
118
|
+
rendered = rendered.replace(/^(\d+)\. /gm, (_m, num) => chalk.dim(` ${num}. `));
|
|
119
|
+
// 7. Bold (before italic to handle **text** before *text*)
|
|
120
|
+
rendered = rendered.replace(/\*\*(.+?)\*\*/g, (_m, text) => chalk.bold(text));
|
|
121
|
+
// 8. Italic
|
|
122
|
+
rendered = rendered.replace(/\*(.+?)\*/g, (_m, text) => chalk.italic(text));
|
|
123
|
+
rendered = rendered.replace(/_(.+?)_/g, (_m, text) => chalk.italic(text));
|
|
124
|
+
// 9. Inline code (last to avoid matching code in other elements)
|
|
125
|
+
rendered = rendered.replace(/`([^`]+)`/g, (_m, code) => chalk.cyan(code));
|
|
126
|
+
console.log(rendered);
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Render YAML with syntax highlighting
|
|
130
|
+
*/
|
|
131
|
+
function renderYaml(content) {
|
|
132
|
+
try {
|
|
133
|
+
console.log(highlight(content, { language: 'yaml', ignoreIllegals: true }));
|
|
134
|
+
}
|
|
135
|
+
catch {
|
|
136
|
+
console.log(content);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Render XML/HTML with syntax highlighting
|
|
141
|
+
*/
|
|
142
|
+
function renderXml(content) {
|
|
143
|
+
try {
|
|
144
|
+
console.log(highlight(content, { language: 'xml', ignoreIllegals: true }));
|
|
145
|
+
}
|
|
146
|
+
catch {
|
|
147
|
+
console.log(content);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Render code with syntax highlighting
|
|
152
|
+
*/
|
|
153
|
+
function renderCode(content, lang) {
|
|
154
|
+
try {
|
|
155
|
+
if (lang) {
|
|
156
|
+
console.log(highlight(content, { language: lang, ignoreIllegals: true }));
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
// Auto-detect language
|
|
160
|
+
console.log(highlight(content, { ignoreIllegals: true }));
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
catch {
|
|
164
|
+
console.log(content);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Format data using specified or detected format
|
|
169
|
+
*/
|
|
170
|
+
function formatDataWithHint(data, format) {
|
|
171
|
+
switch (format) {
|
|
172
|
+
case 'primitive':
|
|
173
|
+
renderPrimitive(data);
|
|
174
|
+
break;
|
|
175
|
+
case 'list':
|
|
176
|
+
renderList(Array.isArray(data) ? data : [data]);
|
|
177
|
+
break;
|
|
178
|
+
case 'table':
|
|
179
|
+
renderTable(data);
|
|
180
|
+
break;
|
|
181
|
+
case 'tree':
|
|
182
|
+
renderTree(data);
|
|
183
|
+
break;
|
|
184
|
+
case 'none':
|
|
185
|
+
renderNone();
|
|
186
|
+
break;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Detect format type from data structure
|
|
191
|
+
*/
|
|
192
|
+
export function detectFormat(data) {
|
|
193
|
+
// null/undefined = none
|
|
194
|
+
if (data === null || data === undefined) {
|
|
195
|
+
return 'none';
|
|
196
|
+
}
|
|
197
|
+
// Primitive types
|
|
198
|
+
if (typeof data === 'string' ||
|
|
199
|
+
typeof data === 'number' ||
|
|
200
|
+
typeof data === 'boolean') {
|
|
201
|
+
return 'primitive';
|
|
202
|
+
}
|
|
203
|
+
// Array handling
|
|
204
|
+
if (Array.isArray(data)) {
|
|
205
|
+
if (data.length === 0) {
|
|
206
|
+
return 'list';
|
|
207
|
+
}
|
|
208
|
+
// Check first element to determine list vs table
|
|
209
|
+
const firstItem = data[0];
|
|
210
|
+
// Array of primitives = list
|
|
211
|
+
if (typeof firstItem !== 'object' || firstItem === null) {
|
|
212
|
+
return 'list';
|
|
213
|
+
}
|
|
214
|
+
// Array of flat objects = table
|
|
215
|
+
if (isFlatObject(firstItem)) {
|
|
216
|
+
return 'table';
|
|
217
|
+
}
|
|
218
|
+
// Array of nested objects = tree
|
|
219
|
+
return 'tree';
|
|
220
|
+
}
|
|
221
|
+
// Single object
|
|
222
|
+
if (typeof data === 'object') {
|
|
223
|
+
// Flat object = table
|
|
224
|
+
if (isFlatObject(data)) {
|
|
225
|
+
return 'table';
|
|
226
|
+
}
|
|
227
|
+
// Nested object = tree
|
|
228
|
+
return 'tree';
|
|
229
|
+
}
|
|
230
|
+
// Default fallback
|
|
231
|
+
return 'none';
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Check if an object is flat (no nested objects or arrays)
|
|
235
|
+
*/
|
|
236
|
+
function isFlatObject(obj) {
|
|
237
|
+
if (typeof obj !== 'object' || obj === null) {
|
|
238
|
+
return false;
|
|
239
|
+
}
|
|
240
|
+
for (const value of Object.values(obj)) {
|
|
241
|
+
if (typeof value === 'object' && value !== null) {
|
|
242
|
+
return false;
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
return true;
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Render primitive value
|
|
249
|
+
*/
|
|
250
|
+
export function renderPrimitive(value) {
|
|
251
|
+
if (typeof value === 'boolean') {
|
|
252
|
+
console.log(value ? 'yes' : 'no');
|
|
253
|
+
}
|
|
254
|
+
else {
|
|
255
|
+
console.log(value);
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Render list (array of primitives)
|
|
260
|
+
*/
|
|
261
|
+
export function renderList(data) {
|
|
262
|
+
if (data.length === 0) {
|
|
263
|
+
console.log('(empty)');
|
|
264
|
+
return;
|
|
265
|
+
}
|
|
266
|
+
data.forEach(item => {
|
|
267
|
+
console.log(` * ${item}`);
|
|
268
|
+
});
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Render table (flat object or array of flat objects)
|
|
272
|
+
*/
|
|
273
|
+
export function renderTable(data) {
|
|
274
|
+
// Single flat object - show as bordered key-value table
|
|
275
|
+
if (!Array.isArray(data)) {
|
|
276
|
+
const entries = Object.entries(data).filter(([key, value]) => !(key === 'returnValue' && value === true));
|
|
277
|
+
if (entries.length === 0) {
|
|
278
|
+
console.log('(empty)');
|
|
279
|
+
return;
|
|
280
|
+
}
|
|
281
|
+
const maxKeyLength = Math.max(...entries.map(([k]) => formatKey(k).length));
|
|
282
|
+
const maxValueLength = Math.max(...entries.map(([_, v]) => String(formatValue(v)).length));
|
|
283
|
+
// Top border
|
|
284
|
+
console.log(`┌─${'─'.repeat(maxKeyLength)}─┬─${'─'.repeat(maxValueLength)}─┐`);
|
|
285
|
+
// Rows
|
|
286
|
+
for (let i = 0; i < entries.length; i++) {
|
|
287
|
+
const [key, value] = entries[i];
|
|
288
|
+
const formattedKey = formatKey(key);
|
|
289
|
+
const formattedValue = String(formatValue(value));
|
|
290
|
+
const keyPadding = ' '.repeat(maxKeyLength - formattedKey.length);
|
|
291
|
+
const valuePadding = ' '.repeat(maxValueLength - formattedValue.length);
|
|
292
|
+
console.log(`| ${formattedKey}${keyPadding} | ${formattedValue}${valuePadding} |`);
|
|
293
|
+
// Add separator between rows (not after last row)
|
|
294
|
+
if (i < entries.length - 1) {
|
|
295
|
+
console.log(`├─${'─'.repeat(maxKeyLength)}─┼─${'─'.repeat(maxValueLength)}─┤`);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
// Bottom border
|
|
299
|
+
console.log(`└─${'─'.repeat(maxKeyLength)}─┴─${'─'.repeat(maxValueLength)}─┘`);
|
|
300
|
+
return;
|
|
301
|
+
}
|
|
302
|
+
// Array of flat objects - show as bordered table
|
|
303
|
+
if (data.length === 0) {
|
|
304
|
+
console.log('(empty)');
|
|
305
|
+
return;
|
|
306
|
+
}
|
|
307
|
+
// Get all unique keys across all objects
|
|
308
|
+
const allKeys = Array.from(new Set(data.flatMap(obj => Object.keys(obj)))).filter(k => k !== 'returnValue');
|
|
309
|
+
if (allKeys.length === 0) {
|
|
310
|
+
console.log('(no data)');
|
|
311
|
+
return;
|
|
312
|
+
}
|
|
313
|
+
// Calculate column widths
|
|
314
|
+
const columnWidths = new Map();
|
|
315
|
+
for (const key of allKeys) {
|
|
316
|
+
const headerWidth = formatKey(key).length;
|
|
317
|
+
const maxValueWidth = Math.max(...data.map(obj => String(formatValue(obj[key] ?? '')).length));
|
|
318
|
+
columnWidths.set(key, Math.max(headerWidth, maxValueWidth));
|
|
319
|
+
}
|
|
320
|
+
// Top border
|
|
321
|
+
const topBorderParts = allKeys.map(key => '─'.repeat(columnWidths.get(key) + 2));
|
|
322
|
+
console.log('┌' + topBorderParts.join('┬') + '┐');
|
|
323
|
+
// Header
|
|
324
|
+
const headerParts = allKeys.map(key => {
|
|
325
|
+
const formattedKey = formatKey(key);
|
|
326
|
+
const width = columnWidths.get(key);
|
|
327
|
+
return ' ' + formattedKey.padEnd(width) + ' ';
|
|
328
|
+
});
|
|
329
|
+
console.log('│' + headerParts.join('│') + '│');
|
|
330
|
+
// Header separator
|
|
331
|
+
const separatorParts = allKeys.map(key => '─'.repeat(columnWidths.get(key) + 2));
|
|
332
|
+
console.log('├' + separatorParts.join('┼') + '┤');
|
|
333
|
+
// Rows
|
|
334
|
+
for (const row of data) {
|
|
335
|
+
const rowParts = allKeys.map(key => {
|
|
336
|
+
const value = formatValue(row[key] ?? '');
|
|
337
|
+
const width = columnWidths.get(key);
|
|
338
|
+
return ' ' + String(value).padEnd(width) + ' ';
|
|
339
|
+
});
|
|
340
|
+
console.log('│' + rowParts.join('│') + '│');
|
|
341
|
+
}
|
|
342
|
+
// Bottom border
|
|
343
|
+
const bottomBorderParts = allKeys.map(key => '─'.repeat(columnWidths.get(key) + 2));
|
|
344
|
+
console.log('└' + bottomBorderParts.join('┴') + '┘');
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* Render tree (nested/hierarchical structure)
|
|
348
|
+
*/
|
|
349
|
+
export function renderTree(data, indent = '') {
|
|
350
|
+
// Array of objects
|
|
351
|
+
if (Array.isArray(data)) {
|
|
352
|
+
if (data.length === 0) {
|
|
353
|
+
console.log(`${indent}(empty)`);
|
|
354
|
+
return;
|
|
355
|
+
}
|
|
356
|
+
data.forEach((item, index) => {
|
|
357
|
+
if (typeof item === 'object' && item !== null) {
|
|
358
|
+
console.log(`${indent}[${index}]`);
|
|
359
|
+
renderTree(item, indent + ' ');
|
|
360
|
+
}
|
|
361
|
+
else {
|
|
362
|
+
console.log(`${indent}* ${item}`);
|
|
363
|
+
}
|
|
364
|
+
});
|
|
365
|
+
return;
|
|
366
|
+
}
|
|
367
|
+
// Object
|
|
368
|
+
if (typeof data === 'object' && data !== null) {
|
|
369
|
+
const entries = Object.entries(data).filter(([key, value]) => !(key === 'returnValue' && value === true));
|
|
370
|
+
for (const [key, value] of entries) {
|
|
371
|
+
const formattedKey = formatKey(key);
|
|
372
|
+
if (value === null || value === undefined) {
|
|
373
|
+
console.log(`${indent}${formattedKey}: (none)`);
|
|
374
|
+
}
|
|
375
|
+
else if (Array.isArray(value)) {
|
|
376
|
+
console.log(`${indent}${formattedKey}:`);
|
|
377
|
+
renderTree(value, indent + ' ');
|
|
378
|
+
}
|
|
379
|
+
else if (typeof value === 'object') {
|
|
380
|
+
console.log(`${indent}${formattedKey}:`);
|
|
381
|
+
renderTree(value, indent + ' ');
|
|
382
|
+
}
|
|
383
|
+
else {
|
|
384
|
+
console.log(`${indent}${formattedKey}: ${formatValue(value)}`);
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
return;
|
|
388
|
+
}
|
|
389
|
+
// Primitive (shouldn't happen but handle it)
|
|
390
|
+
console.log(`${indent}${formatValue(data)}`);
|
|
391
|
+
}
|
|
392
|
+
/**
|
|
393
|
+
* Render none format (operation with no data)
|
|
394
|
+
*/
|
|
395
|
+
export function renderNone() {
|
|
396
|
+
console.log('Done');
|
|
397
|
+
}
|
|
398
|
+
/**
|
|
399
|
+
* Format a key for display (camelCase to Title Case)
|
|
400
|
+
*/
|
|
401
|
+
export function formatKey(key) {
|
|
402
|
+
return key
|
|
403
|
+
.replace(/([A-Z]+)([A-Z][a-z])/g, '$1 $2')
|
|
404
|
+
.replace(/([a-z])([A-Z])/g, '$1 $2')
|
|
405
|
+
.replace(/_/g, ' ')
|
|
406
|
+
.replace(/^./, str => str.toUpperCase())
|
|
407
|
+
.trim();
|
|
408
|
+
}
|
|
409
|
+
/**
|
|
410
|
+
* Format a value for display
|
|
411
|
+
*/
|
|
412
|
+
export function formatValue(value) {
|
|
413
|
+
if (value === null || value === undefined) {
|
|
414
|
+
return '-';
|
|
415
|
+
}
|
|
416
|
+
if (typeof value === 'boolean') {
|
|
417
|
+
return value ? 'yes' : 'no';
|
|
418
|
+
}
|
|
419
|
+
return value;
|
|
420
|
+
}
|
|
421
|
+
/**
|
|
422
|
+
* Status indicators for tables (ASCII only for proper alignment)
|
|
423
|
+
*/
|
|
424
|
+
export const STATUS = {
|
|
425
|
+
OK: 'ok',
|
|
426
|
+
UPDATE: 'update',
|
|
427
|
+
WARN: 'warn',
|
|
428
|
+
ERROR: '!',
|
|
429
|
+
OFF: 'off',
|
|
430
|
+
UNKNOWN: '?',
|
|
431
|
+
};
|
|
432
|
+
/**
|
|
433
|
+
* Convert output format to MIME type (for MCP responses)
|
|
434
|
+
*/
|
|
435
|
+
export function formatToMimeType(format) {
|
|
436
|
+
const mimeTypes = {
|
|
437
|
+
json: 'application/json',
|
|
438
|
+
markdown: 'text/markdown',
|
|
439
|
+
yaml: 'text/yaml',
|
|
440
|
+
xml: 'application/xml',
|
|
441
|
+
html: 'text/html',
|
|
442
|
+
};
|
|
443
|
+
if (mimeTypes[format]) {
|
|
444
|
+
return mimeTypes[format];
|
|
445
|
+
}
|
|
446
|
+
if (format === 'code') {
|
|
447
|
+
return 'text/plain';
|
|
448
|
+
}
|
|
449
|
+
if (format.startsWith('code:')) {
|
|
450
|
+
const lang = format.split(':')[1];
|
|
451
|
+
return `text/x-${lang}`;
|
|
452
|
+
}
|
|
453
|
+
return undefined;
|
|
454
|
+
}
|
|
455
|
+
/**
|
|
456
|
+
* Print a success message
|
|
457
|
+
*/
|
|
458
|
+
export function printSuccess(message) {
|
|
459
|
+
console.error(`✓ ${message}`);
|
|
460
|
+
}
|
|
461
|
+
/**
|
|
462
|
+
* Print an error message
|
|
463
|
+
*/
|
|
464
|
+
export function printError(message) {
|
|
465
|
+
console.error(`✗ ${message}`);
|
|
466
|
+
}
|
|
467
|
+
/**
|
|
468
|
+
* Print an info message
|
|
469
|
+
*/
|
|
470
|
+
export function printInfo(message) {
|
|
471
|
+
console.error(`${message}`);
|
|
472
|
+
}
|
|
473
|
+
/**
|
|
474
|
+
* Print a warning message
|
|
475
|
+
*/
|
|
476
|
+
export function printWarning(message) {
|
|
477
|
+
console.error(`! ${message}`);
|
|
478
|
+
}
|
|
479
|
+
/**
|
|
480
|
+
* Print a section header
|
|
481
|
+
*/
|
|
482
|
+
export function printHeader(title) {
|
|
483
|
+
console.error(`\n${title}`);
|
|
484
|
+
console.error('─'.repeat(title.length));
|
|
485
|
+
}
|
|
486
|
+
//# sourceMappingURL=cli-formatter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-formatter.js","sourceRoot":"","sources":["../src/cli-formatter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependency-manager.d.ts","sourceRoot":"","sources":["../src/dependency-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAS;;IAOzB;;;;;;OAMG;IACG,mBAAmB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IA0C5E;;;;OAIG;IACG,kBAAkB,CACtB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,cAAc,EAAE,GAC7B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA0CzB;;OAEG;YACW,cAAc;
|
|
1
|
+
{"version":3,"file":"dependency-manager.d.ts","sourceRoot":"","sources":["../src/dependency-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAS;;IAOzB;;;;;;OAMG;IACG,mBAAmB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IA0C5E;;;;OAIG;IACG,kBAAkB,CACtB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,cAAc,EAAE,GAC7B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA0CzB;;OAEG;YACW,cAAc;IAiC5B;;OAEG;YACW,aAAa;IAqB3B;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUhD;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;CAQrC"}
|
|
@@ -29,7 +29,7 @@ export class DependencyManager {
|
|
|
29
29
|
const dependencies = [];
|
|
30
30
|
// Match @dependencies tags in JSDoc comments
|
|
31
31
|
// Regex: @dependencies package@version, package2@version2
|
|
32
|
-
const dependencyRegex = /@dependencies\s+([\w@^~.,\s
|
|
32
|
+
const dependencyRegex = /@dependencies\s+([\w@^~.,\s/-]+)/g;
|
|
33
33
|
let match;
|
|
34
34
|
while ((match = dependencyRegex.exec(content)) !== null) {
|
|
35
35
|
const depString = match[1].trim();
|
|
@@ -100,6 +100,11 @@ export class DependencyManager {
|
|
|
100
100
|
try {
|
|
101
101
|
const packageJsonPath = path.join(mcpDir, 'package.json');
|
|
102
102
|
const packageJson = JSON.parse(await fs.readFile(packageJsonPath, 'utf-8'));
|
|
103
|
+
// Check if dependency count matches (catches added/removed dependencies)
|
|
104
|
+
const installedCount = Object.keys(packageJson.dependencies || {}).length;
|
|
105
|
+
if (installedCount !== dependencies.length) {
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
103
108
|
// Check if all dependencies match
|
|
104
109
|
for (const dep of dependencies) {
|
|
105
110
|
if (packageJson.dependencies?.[dep.name] !== dep.version) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependency-manager.js","sourceRoot":"","sources":["../src/dependency-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAOtC;;GAEG;AACH,MAAM,OAAO,iBAAiB;IACpB,QAAQ,CAAS;IAEzB;QACE,0DAA0D;QAC1D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;IAClF,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,mBAAmB,CAAC,cAAsB;QAC9C,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QAE3D,MAAM,YAAY,GAAqB,EAAE,CAAC;QAE1C,6CAA6C;QAC7C,0DAA0D;QAC1D,MAAM,eAAe,GAAG,
|
|
1
|
+
{"version":3,"file":"dependency-manager.js","sourceRoot":"","sources":["../src/dependency-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -35,5 +35,7 @@
|
|
|
35
35
|
export { PhotonMCP } from './base.js';
|
|
36
36
|
export { DependencyManager } from './dependency-manager.js';
|
|
37
37
|
export { SchemaExtractor } from './schema-extractor.js';
|
|
38
|
+
export { formatOutput, detectFormat, renderPrimitive, renderList, renderTable, renderTree, renderNone, formatKey, formatValue, formatToMimeType, printSuccess, printError, printInfo, printWarning, printHeader, STATUS, } from './cli-formatter.js';
|
|
39
|
+
export { resolvePath, listFiles, ensureDir, resolvePhotonPath, listPhotonFiles, ensurePhotonDir, DEFAULT_PHOTON_DIR, type ResolverOptions, } from './path-resolver.js';
|
|
38
40
|
export * from './types.js';
|
|
39
41
|
//# sourceMappingURL=index.d.ts.map
|