@maltjoy/mcp-server 0.3.1 → 0.4.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 +30 -28
- package/dist/doc/VJoyAdminBanner/metadata.json +2 -0
- package/dist/doc/VJoyAvailability/metadata.json +2 -0
- package/dist/doc/VJoyAvatar/metadata.json +2 -0
- package/dist/doc/VJoyAvatarsList/metadata.json +2 -0
- package/dist/doc/VJoyBadge/metadata.json +2 -0
- package/dist/doc/VJoyBadgeLevel/metadata.json +2 -0
- package/dist/doc/VJoyBlockSkeleton/metadata.json +2 -0
- package/dist/doc/VJoyBottomSheet/metadata.json +2 -0
- package/dist/doc/VJoyBottomSheetTrigger/metadata.json +2 -0
- package/dist/doc/VJoyButton/metadata.json +2 -0
- package/dist/doc/VJoyButtonCard/JoyButtonCard.types.ts +15 -0
- package/dist/doc/VJoyButtonCard/metadata.json +78 -0
- package/dist/doc/VJoyCheckbox/JoyCheckbox.types.ts +26 -0
- package/dist/doc/VJoyCheckbox/metadata.json +29 -27
- package/dist/doc/VJoyCheckboxCard/JoyCheckboxCard.types.ts +8 -0
- package/dist/doc/VJoyCheckboxCard/metadata.json +221 -0
- package/dist/doc/VJoyCheckboxGroup/metadata.json +338 -0
- package/dist/doc/VJoyCollapse/metadata.json +2 -0
- package/dist/doc/VJoyCollapseItem/metadata.json +2 -0
- package/dist/doc/VJoyCompanyAvatar/metadata.json +2 -0
- package/dist/doc/VJoyDialog/metadata.json +2 -0
- package/dist/doc/VJoyDialogTrigger/metadata.json +2 -0
- package/dist/doc/VJoyDot/metadata.json +2 -0
- package/dist/doc/VJoyDrawer/metadata.json +2 -0
- package/dist/doc/VJoyDrawerTrigger/metadata.json +2 -0
- package/dist/doc/VJoyDropdown/metadata.json +76 -74
- package/dist/doc/VJoyDropdownList/metadata.json +2 -0
- package/dist/doc/VJoyDropzone/metadata.json +2 -0
- package/dist/doc/VJoyFilterBar/metadata.json +2 -0
- package/dist/doc/VJoyFilterBarButton/metadata.json +2 -0
- package/dist/doc/VJoyFloatingActionsBar/metadata.json +70 -0
- package/dist/doc/VJoyFormError/metadata.json +2 -0
- package/dist/doc/VJoyFormFieldSkeleton/metadata.json +2 -0
- package/dist/doc/VJoyFormGroup/metadata.json +2 -0
- package/dist/doc/VJoyFunnel/metadata.json +2 -0
- package/dist/doc/VJoyFunnelFooter/metadata.json +2 -0
- package/dist/doc/VJoyFunnelHeader/metadata.json +2 -0
- package/dist/doc/VJoyHighlight/metadata.json +2 -0
- package/dist/doc/VJoyIcon/metadata.json +2 -0
- package/dist/doc/VJoyIconButton/JoyIconButton.types.ts +6 -0
- package/dist/doc/VJoyIconButton/metadata.json +116 -0
- package/dist/doc/VJoyIndicator/metadata.json +2 -0
- package/dist/doc/VJoyIndicators/metadata.json +2 -0
- package/dist/doc/VJoyInput/JoyInput.types.ts +1 -1
- package/dist/doc/VJoyInput/metadata.json +18 -14
- package/dist/doc/VJoyInputDigit/metadata.json +2 -0
- package/dist/doc/VJoyInputNumber/metadata.json +286 -0
- package/dist/doc/VJoyInputPassword/metadata.json +36 -32
- package/dist/doc/VJoyLabel/metadata.json +6 -4
- package/dist/doc/VJoyLink/metadata.json +11 -9
- package/dist/doc/VJoyListItem/metadata.json +2 -0
- package/dist/doc/VJoyMenu/metadata.json +2 -0
- package/dist/doc/VJoyMenuItem/metadata.json +3 -1
- package/dist/doc/VJoyMultiCheckbox/metadata.json +193 -12
- package/dist/doc/VJoyPagination/metadata.json +2 -0
- package/dist/doc/VJoyPanel/metadata.json +2 -0
- package/dist/doc/VJoyPanelSection/metadata.json +2 -0
- package/dist/doc/VJoyPasswordRequirement/metadata.json +2 -0
- package/dist/doc/VJoyProductTour/metadata.json +2 -0
- package/dist/doc/VJoyProductTourTrigger/metadata.json +2 -0
- package/dist/doc/VJoyProgressBar/metadata.json +2 -5
- package/dist/doc/VJoyRadio/metadata.json +2 -0
- package/dist/doc/VJoyRadioGroup/metadata.json +4 -2
- package/dist/doc/VJoyRatingStars/metadata.json +2 -0
- package/dist/doc/VJoyScreenLoader/metadata.json +2 -0
- package/dist/doc/VJoySelect/metadata.json +34 -32
- package/dist/doc/VJoySelectableItem/metadata.json +2 -0
- package/dist/doc/VJoySelectableItemGroup/metadata.json +2 -0
- package/dist/doc/VJoySeparator/metadata.json +2 -0
- package/dist/doc/VJoySnackbar/metadata.json +2 -0
- package/dist/doc/VJoySpinner/metadata.json +2 -0
- package/dist/doc/VJoyStep/metadata.json +2 -0
- package/dist/doc/VJoyStepper/metadata.json +2 -0
- package/dist/doc/VJoyTab/metadata.json +2 -0
- package/dist/doc/VJoyTabs/metadata.json +2 -0
- package/dist/doc/VJoyTag/metadata.json +6 -4
- package/dist/doc/VJoyTagsInput/metadata.json +2 -0
- package/dist/doc/VJoyTagsList/metadata.json +19 -17
- package/dist/doc/VJoyTemplate/metadata.json +2 -0
- package/dist/doc/VJoyText/metadata.json +2 -0
- package/dist/doc/VJoyTextarea/metadata.json +25 -23
- package/dist/doc/VJoyTitleBrand/metadata.json +2 -0
- package/dist/doc/VJoyToggle/metadata.json +15 -13
- package/dist/doc/VJoyTooltip/metadata.json +2 -0
- package/dist/doc/VJoyUserCard/metadata.json +2 -0
- package/dist/doc/VJoyWalkthrough/metadata.json +2 -0
- package/dist/doc/VJoyWalkthroughTrigger/metadata.json +2 -0
- package/dist/doc/VJoyWrapper/metadata.json +20 -18
- package/dist/doc/css-classes.json +2 -0
- package/dist/doc/design-tokens.json +30 -30
- package/dist/doc/index.json +223 -17
- package/dist/parser.d.ts +12 -0
- package/dist/parser.d.ts.map +1 -1
- package/dist/parser.js +25 -0
- package/dist/parser.js.map +1 -1
- package/dist/tools/get-component-info.js +1 -1
- package/dist/tools/get-component-info.js.map +1 -1
- package/dist/tools/list-components.d.ts +2 -4
- package/dist/tools/list-components.d.ts.map +1 -1
- package/dist/tools/list-components.js +24 -7
- package/dist/tools/list-components.js.map +1 -1
- package/package.json +3 -2
- package/dist/doc/VJoyTemplateShape/metadata.json +0 -9
package/dist/parser.d.ts
CHANGED
|
@@ -7,11 +7,23 @@ export declare function parseComponentNames(): string[];
|
|
|
7
7
|
* Get component count
|
|
8
8
|
*/
|
|
9
9
|
export declare function getComponentCount(): number;
|
|
10
|
+
export interface ComponentSummary {
|
|
11
|
+
name: string;
|
|
12
|
+
description: string;
|
|
13
|
+
category: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Parse the Joy components documentation JSON file
|
|
17
|
+
* and extract component names with descriptions from the index
|
|
18
|
+
*/
|
|
19
|
+
export declare function parseComponentSummaries(): ComponentSummary[];
|
|
10
20
|
/**
|
|
11
21
|
* Interface for component information
|
|
12
22
|
*/
|
|
13
23
|
export interface ComponentInfo {
|
|
14
24
|
name: string;
|
|
25
|
+
description: string;
|
|
26
|
+
category: string;
|
|
15
27
|
props: PropInfo[];
|
|
16
28
|
events: EventInfo[];
|
|
17
29
|
slots: SlotInfo[];
|
package/dist/parser.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAmB9C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,cAAc,EAAE,iBAAiB,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAOA;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAmB9C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,gBAAgB,EAAE,CAmB5D;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,cAAc,EAAE,iBAAiB,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI,CAsC9E"}
|
package/dist/parser.js
CHANGED
|
@@ -31,6 +31,29 @@ export function parseComponentNames() {
|
|
|
31
31
|
export function getComponentCount() {
|
|
32
32
|
return parseComponentNames().length;
|
|
33
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Parse the Joy components documentation JSON file
|
|
36
|
+
* and extract component names with descriptions from the index
|
|
37
|
+
*/
|
|
38
|
+
export function parseComponentSummaries() {
|
|
39
|
+
try {
|
|
40
|
+
const indexPath = join(__dirname, 'doc/index.json');
|
|
41
|
+
const content = readFileSync(indexPath, 'utf-8');
|
|
42
|
+
const data = JSON.parse(content);
|
|
43
|
+
if (data.components && Array.isArray(data.components)) {
|
|
44
|
+
return data.components.map((comp) => ({
|
|
45
|
+
name: comp.name,
|
|
46
|
+
description: comp.description || '',
|
|
47
|
+
category: comp.category || 'Uncategorized',
|
|
48
|
+
}));
|
|
49
|
+
}
|
|
50
|
+
return [];
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
console.error('Error parsing component summaries:', error instanceof Error ? error.message : String(error));
|
|
54
|
+
return [];
|
|
55
|
+
}
|
|
56
|
+
}
|
|
34
57
|
/**
|
|
35
58
|
* Parse and extract all information for a specific component from JSON
|
|
36
59
|
*/
|
|
@@ -43,6 +66,8 @@ export function parseComponentInfo(componentName) {
|
|
|
43
66
|
// Map JSON structure to ComponentInfo interface
|
|
44
67
|
return {
|
|
45
68
|
name: data.displayName || componentName,
|
|
69
|
+
description: data.description || '',
|
|
70
|
+
category: data.category || 'Uncategorized',
|
|
46
71
|
props: data.props.map((prop) => ({
|
|
47
72
|
name: prop.name,
|
|
48
73
|
type: prop.type,
|
package/dist/parser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAErC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC;;;GAGG;AACH,MAAM,UAAU,mBAAmB;IACjC,IAAI,CAAC;QACH,iFAAiF;QACjF,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;QAEpD,MAAM,OAAO,GAAG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEjC,oDAAoD;QACpD,IAAI,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;YACtD,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5D,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,gCAAgC,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QACxG,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,mBAAmB,EAAE,CAAC,MAAM,CAAC;AACtC,CAAC;
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { parseComponentInfo } from '../parser.js';
|
|
|
4
4
|
*/
|
|
5
5
|
export const getComponentInfoTool = {
|
|
6
6
|
name: 'joy_get_component_info',
|
|
7
|
-
description: 'Retrieves detailed information about a specific Joy Vue3 component including props, events, slots, and exposed members. Provide the exact component name (e.g., VJoyButton).',
|
|
7
|
+
description: 'Retrieves detailed information about a specific Joy Vue3 component including description, category, props, events, slots, and exposed members. Provide the exact component name (e.g., VJoyButton).',
|
|
8
8
|
inputSchema: {
|
|
9
9
|
type: 'object',
|
|
10
10
|
properties: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-component-info.js","sourceRoot":"","sources":["../../src/tools/get-component-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAiB,MAAM,cAAc,CAAC;AAEjE;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,IAAI,EAAE,wBAAwB;IAC9B,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"get-component-info.js","sourceRoot":"","sources":["../../src/tools/get-component-info.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAiB,MAAM,cAAc,CAAC;AAEjE;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,IAAI,EAAE,wBAAwB;IAC9B,WAAW,EAAE,qMAAqM;IAClN,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,aAAa,EAAE;gBACb,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,gEAAgE;aAC9E;SACF;QACD,QAAQ,EAAE,CAAC,eAAe,CAAC;KAC5B;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,aAAqB;IAChE,IAAI,CAAC,aAAa,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;QACxD,OAAO;YACL,KAAK,EAAE,mFAAmF;SAC3F,CAAC;IACJ,CAAC;IAED,MAAM,aAAa,GAAG,kBAAkB,CAAC,aAAa,CAAC,CAAC;IAExD,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO;YACL,KAAK,EAAE,cAAc,aAAa,6EAA6E;SAChH,CAAC;IACJ,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type ComponentSummary } from '../parser.js';
|
|
1
2
|
/**
|
|
2
3
|
* Tool definition for listing all Joy Vue components
|
|
3
4
|
*/
|
|
@@ -13,8 +14,5 @@ export declare const listComponentsTool: {
|
|
|
13
14
|
/**
|
|
14
15
|
* Handler for the list components tool
|
|
15
16
|
*/
|
|
16
|
-
export declare function handleListComponents(): Promise<
|
|
17
|
-
components: string[];
|
|
18
|
-
count: number;
|
|
19
|
-
}>;
|
|
17
|
+
export declare function handleListComponents(): Promise<Record<string, Array<Pick<ComponentSummary, 'name' | 'description'>>>>;
|
|
20
18
|
//# sourceMappingURL=list-components.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-components.d.ts","sourceRoot":"","sources":["../../src/tools/list-components.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"list-components.d.ts","sourceRoot":"","sources":["../../src/tools/list-components.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAE9E;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;CAQ9B,CAAC;AAEF;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,CA0B3H"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { parseComponentSummaries } from '../parser.js';
|
|
2
2
|
/**
|
|
3
3
|
* Tool definition for listing all Joy Vue components
|
|
4
4
|
*/
|
|
5
5
|
export const listComponentsTool = {
|
|
6
6
|
name: 'joy_list_components',
|
|
7
|
-
description: 'Lists all available Joy Vue3 components from the @maltjoy/core-vue library
|
|
7
|
+
description: 'Lists all available Joy Vue3 components from the @maltjoy/core-vue library as a flat object keyed by category name. Each entry contains components with their name and description.',
|
|
8
8
|
inputSchema: {
|
|
9
9
|
type: 'object',
|
|
10
10
|
properties: {},
|
|
@@ -15,10 +15,27 @@ export const listComponentsTool = {
|
|
|
15
15
|
* Handler for the list components tool
|
|
16
16
|
*/
|
|
17
17
|
export async function handleListComponents() {
|
|
18
|
-
const components =
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
18
|
+
const components = parseComponentSummaries();
|
|
19
|
+
const categoriesByName = new Map();
|
|
20
|
+
for (const component of components) {
|
|
21
|
+
const categoryName = component.category || 'Uncategorized';
|
|
22
|
+
const bucket = categoriesByName.get(categoryName);
|
|
23
|
+
const componentSummary = {
|
|
24
|
+
name: component.name,
|
|
25
|
+
description: component.description
|
|
26
|
+
};
|
|
27
|
+
if (bucket) {
|
|
28
|
+
bucket.push(componentSummary);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
categoriesByName.set(categoryName, [componentSummary]);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return Object.fromEntries(Array.from(categoriesByName.entries())
|
|
35
|
+
.sort(([left], [right]) => left.localeCompare(right))
|
|
36
|
+
.map(([name, categoryComponents]) => [
|
|
37
|
+
name,
|
|
38
|
+
categoryComponents.sort((left, right) => left.name.localeCompare(right.name))
|
|
39
|
+
]));
|
|
23
40
|
}
|
|
24
41
|
//# sourceMappingURL=list-components.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list-components.js","sourceRoot":"","sources":["../../src/tools/list-components.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"list-components.js","sourceRoot":"","sources":["../../src/tools/list-components.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAyB,MAAM,cAAc,CAAC;AAE9E;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE,qLAAqL;IAClM,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,EAAE;KACb;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,MAAM,UAAU,GAAG,uBAAuB,EAAE,CAAC;IAC7C,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAiE,CAAC;IAElG,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,YAAY,GAAG,SAAS,CAAC,QAAQ,IAAI,eAAe,CAAC;QAC3D,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAClD,MAAM,gBAAgB,GAAG;YACvB,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,WAAW,EAAE,SAAS,CAAC,WAAW;SACnC,CAAC;QACF,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,gBAAgB,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,WAAW,CACvB,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;SACrC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SACpD,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,kBAAkB,CAAC,EAAE,EAAE,CAAC;QACnC,IAAI;QACJ,kBAAkB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;KAC9E,CAAC,CACH,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@maltjoy/mcp-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "MCP server for Joy Design System - exposes Vue3 components information",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"build": "tsc && npm run generate:components-docs:json",
|
|
15
15
|
"dev": "tsc --watch",
|
|
16
16
|
"start": "node dist/index.js",
|
|
17
|
-
"generate:components-docs:json": "
|
|
17
|
+
"generate:components-docs:json": "tsx src/json-metadata-generator.mjs",
|
|
18
18
|
"inspector": "pnpx @modelcontextprotocol/inspector node ./dist/index.js"
|
|
19
19
|
},
|
|
20
20
|
"keywords": [
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
33
33
|
"@types/node": "20.14.2",
|
|
34
|
+
"tsx": "^4.21.0",
|
|
34
35
|
"typescript": "5.3.3",
|
|
35
36
|
"vue-component-meta": "3.1.5"
|
|
36
37
|
}
|