mozaic-mcp-server 2.4.0 → 2.5.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.
Files changed (73) hide show
  1. package/dist/app.module.d.ts +3 -0
  2. package/dist/app.module.d.ts.map +1 -0
  3. package/dist/app.module.js +28 -0
  4. package/dist/app.module.js.map +1 -0
  5. package/dist/auth/auth.guard.d.ts +10 -0
  6. package/dist/auth/auth.guard.d.ts.map +1 -0
  7. package/dist/auth/auth.guard.js +53 -0
  8. package/dist/auth/auth.guard.js.map +1 -0
  9. package/dist/auth/auth.module.d.ts +3 -0
  10. package/dist/auth/auth.module.d.ts.map +1 -0
  11. package/dist/auth/auth.module.js +18 -0
  12. package/dist/auth/auth.module.js.map +1 -0
  13. package/dist/config/configuration.d.ts +18 -0
  14. package/dist/config/configuration.d.ts.map +1 -0
  15. package/dist/config/configuration.js +17 -0
  16. package/dist/config/configuration.js.map +1 -0
  17. package/dist/main.d.ts +2 -0
  18. package/dist/main.d.ts.map +1 -0
  19. package/dist/main.js +55 -0
  20. package/dist/main.js.map +1 -0
  21. package/dist/mcp/mcp.controller.d.ts +27 -0
  22. package/dist/mcp/mcp.controller.d.ts.map +1 -0
  23. package/dist/mcp/mcp.controller.js +102 -0
  24. package/dist/mcp/mcp.controller.js.map +1 -0
  25. package/dist/mcp/mcp.module.d.ts +3 -0
  26. package/dist/mcp/mcp.module.d.ts.map +1 -0
  27. package/dist/mcp/mcp.module.js +20 -0
  28. package/dist/mcp/mcp.module.js.map +1 -0
  29. package/dist/mcp/mcp.service.d.ts +35 -0
  30. package/dist/mcp/mcp.service.d.ts.map +1 -0
  31. package/dist/mcp/mcp.service.js +229 -0
  32. package/dist/mcp/mcp.service.js.map +1 -0
  33. package/dist/tools/generate-freemarker.d.ts +6 -6
  34. package/dist/tools/get-freemarker-info.d.ts +2 -2
  35. package/dist/tools/list-css-utilities.d.ts +1 -1
  36. package/dist/tools/list-freemarker.d.ts +2 -2
  37. package/package.json +17 -3
  38. package/dist/__tests__/sanity-check.test.d.ts +0 -2
  39. package/dist/__tests__/sanity-check.test.d.ts.map +0 -1
  40. package/dist/__tests__/sanity-check.test.js +0 -167
  41. package/dist/__tests__/sanity-check.test.js.map +0 -1
  42. package/dist/__tests__/skills-scripts.test.d.ts +0 -2
  43. package/dist/__tests__/skills-scripts.test.d.ts.map +0 -1
  44. package/dist/__tests__/skills-scripts.test.js +0 -404
  45. package/dist/__tests__/skills-scripts.test.js.map +0 -1
  46. package/dist/__tests__/tools.integration.test.d.ts +0 -2
  47. package/dist/__tests__/tools.integration.test.d.ts.map +0 -1
  48. package/dist/__tests__/tools.integration.test.js +0 -305
  49. package/dist/__tests__/tools.integration.test.js.map +0 -1
  50. package/dist/parsers/__tests__/docs-parser.test.d.ts +0 -2
  51. package/dist/parsers/__tests__/docs-parser.test.d.ts.map +0 -1
  52. package/dist/parsers/__tests__/docs-parser.test.js +0 -251
  53. package/dist/parsers/__tests__/docs-parser.test.js.map +0 -1
  54. package/dist/parsers/__tests__/icons-parser.test.d.ts +0 -2
  55. package/dist/parsers/__tests__/icons-parser.test.d.ts.map +0 -1
  56. package/dist/parsers/__tests__/icons-parser.test.js +0 -169
  57. package/dist/parsers/__tests__/icons-parser.test.js.map +0 -1
  58. package/dist/parsers/__tests__/react-parser.test.d.ts +0 -2
  59. package/dist/parsers/__tests__/react-parser.test.d.ts.map +0 -1
  60. package/dist/parsers/__tests__/react-parser.test.js +0 -274
  61. package/dist/parsers/__tests__/react-parser.test.js.map +0 -1
  62. package/dist/parsers/__tests__/scss-parser.test.d.ts +0 -2
  63. package/dist/parsers/__tests__/scss-parser.test.d.ts.map +0 -1
  64. package/dist/parsers/__tests__/scss-parser.test.js +0 -364
  65. package/dist/parsers/__tests__/scss-parser.test.js.map +0 -1
  66. package/dist/parsers/__tests__/tokens-parser.test.d.ts +0 -2
  67. package/dist/parsers/__tests__/tokens-parser.test.d.ts.map +0 -1
  68. package/dist/parsers/__tests__/tokens-parser.test.js +0 -172
  69. package/dist/parsers/__tests__/tokens-parser.test.js.map +0 -1
  70. package/dist/parsers/__tests__/vue-parser.test.d.ts +0 -2
  71. package/dist/parsers/__tests__/vue-parser.test.d.ts.map +0 -1
  72. package/dist/parsers/__tests__/vue-parser.test.js +0 -207
  73. package/dist/parsers/__tests__/vue-parser.test.js.map +0 -1
@@ -1,169 +0,0 @@
1
- import { describe, it, expect } from "vitest";
2
- import { generateSvg, generateReactComponent, generateVueComponent, } from "../icons-parser.js";
3
- describe("Icons Parser", () => {
4
- describe("generateSvg", () => {
5
- it("generates SVG from simple path", () => {
6
- const icon = {
7
- name: "ArrowDown16",
8
- iconName: "ArrowDown",
9
- type: "navigation",
10
- size: 16,
11
- viewBox: "0 0 16 16",
12
- paths: '[{"tagName":"path","attrs":{"d":"M8 12L4 8h8z"}}]',
13
- };
14
- const svg = generateSvg(icon);
15
- expect(svg).toContain('viewBox="0 0 16 16"');
16
- expect(svg).toContain("<path");
17
- expect(svg).toContain('d="M8 12L4 8h8z"');
18
- expect(svg).toContain("xmlns=");
19
- });
20
- it("handles complex paths with nested elements", () => {
21
- const icon = {
22
- name: "Complex24",
23
- iconName: "Complex",
24
- type: "media",
25
- size: 24,
26
- viewBox: "0 0 24 24",
27
- paths: '[{"tagName":"g","attrs":{"clip-path":"url(#id)"},"children":[{"tagName":"path","attrs":{"d":"M0 0h24v24H0z"}}]}]',
28
- };
29
- const svg = generateSvg(icon);
30
- expect(svg).toContain("<g");
31
- expect(svg).toContain("</g>");
32
- expect(svg).toContain("<path");
33
- });
34
- it("handles empty paths array", () => {
35
- const icon = {
36
- name: "Empty16",
37
- iconName: "Empty",
38
- type: "unknown",
39
- size: 16,
40
- viewBox: "0 0 16 16",
41
- paths: "[]",
42
- };
43
- const svg = generateSvg(icon);
44
- expect(svg).toContain('viewBox="0 0 16 16"');
45
- expect(svg).toContain("</svg>");
46
- });
47
- it("handles malformed paths gracefully", () => {
48
- const icon = {
49
- name: "Malformed16",
50
- iconName: "Malformed",
51
- type: "unknown",
52
- size: 16,
53
- viewBox: "0 0 16 16",
54
- paths: "not valid json",
55
- };
56
- // Should not throw
57
- const svg = generateSvg(icon);
58
- expect(svg).toContain("<svg");
59
- expect(svg).toContain("</svg>");
60
- });
61
- });
62
- describe("generateReactComponent", () => {
63
- it("generates React import code", () => {
64
- const icon = {
65
- name: "ArrowDown16",
66
- iconName: "ArrowDown",
67
- type: "navigation",
68
- size: 16,
69
- viewBox: "0 0 16 16",
70
- paths: "[]",
71
- };
72
- const code = generateReactComponent(icon);
73
- expect(code).toContain("@mozaic-ds/react");
74
- expect(code).toContain("<MIcon");
75
- expect(code).toContain('name="ArrowDown16"');
76
- expect(code).toContain("@mozaic-ds/icons/js/icons");
77
- expect(code).toContain("ArrowDown16");
78
- });
79
- });
80
- describe("generateVueComponent", () => {
81
- it("generates Vue component code", () => {
82
- const icon = {
83
- name: "Cart24",
84
- iconName: "Cart",
85
- type: "action",
86
- size: 24,
87
- viewBox: "0 0 24 24",
88
- paths: "[]",
89
- };
90
- const code = generateVueComponent(icon);
91
- expect(code).toContain("<template>");
92
- expect(code).toContain("<MIcon");
93
- expect(code).toContain('name="Cart24"');
94
- expect(code).toContain("@mozaic-ds/vue-3");
95
- expect(code).toContain("<script setup>");
96
- });
97
- });
98
- describe("icon name parsing", () => {
99
- it("correctly identifies size from icon name", () => {
100
- // Test via the parsed icon structure
101
- const icon16 = {
102
- name: "Arrow16",
103
- iconName: "Arrow",
104
- type: "navigation",
105
- size: 16,
106
- viewBox: "0 0 16 16",
107
- paths: "[]",
108
- };
109
- expect(icon16.size).toBe(16);
110
- const icon64 = {
111
- name: "Arrow64",
112
- iconName: "Arrow",
113
- type: "navigation",
114
- size: 64,
115
- viewBox: "0 0 64 64",
116
- paths: "[]",
117
- };
118
- expect(icon64.size).toBe(64);
119
- });
120
- it("correctly extracts clean icon name", () => {
121
- const icon = {
122
- name: "ArrowArrowBottom16",
123
- iconName: "ArrowArrowBottom",
124
- type: "navigation",
125
- size: 16,
126
- viewBox: "0 0 16 16",
127
- paths: "[]",
128
- };
129
- expect(icon.iconName).toBe("ArrowArrowBottom");
130
- expect(icon.iconName).not.toContain("16");
131
- });
132
- });
133
- describe("icon types", () => {
134
- it("supports navigation type", () => {
135
- const icon = {
136
- name: "ArrowUp16",
137
- iconName: "ArrowUp",
138
- type: "navigation",
139
- size: 16,
140
- viewBox: "0 0 16 16",
141
- paths: "[]",
142
- };
143
- expect(icon.type).toBe("navigation");
144
- });
145
- it("supports media type", () => {
146
- const icon = {
147
- name: "Play24",
148
- iconName: "Play",
149
- type: "media",
150
- size: 24,
151
- viewBox: "0 0 24 24",
152
- paths: "[]",
153
- };
154
- expect(icon.type).toBe("media");
155
- });
156
- it("supports social type", () => {
157
- const icon = {
158
- name: "Share16",
159
- iconName: "Share",
160
- type: "social",
161
- size: 16,
162
- viewBox: "0 0 16 16",
163
- paths: "[]",
164
- };
165
- expect(icon.type).toBe("social");
166
- });
167
- });
168
- });
169
- //# sourceMappingURL=icons-parser.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"icons-parser.test.js","sourceRoot":"","sources":["../../../src/parsers/__tests__/icons-parser.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=react-parser.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"react-parser.test.d.ts","sourceRoot":"","sources":["../../../src/parsers/__tests__/react-parser.test.ts"],"names":[],"mappings":""}
@@ -1,274 +0,0 @@
1
- import { describe, it, expect } from "vitest";
2
- // Test the React prop extraction patterns directly
3
- describe("React Parser - extractConstArrays", () => {
4
- function extractConstArrays(content) {
5
- const constArrays = new Map();
6
- const constRegex = /const\s+(\w+)\s*=\s*\[([^\]]+)\]\s*as\s+const/g;
7
- let match;
8
- while ((match = constRegex.exec(content)) !== null) {
9
- const name = match[1];
10
- const values = match[2]
11
- .split(",")
12
- .map((s) => s.trim().replace(/['"]/g, ""))
13
- .filter((s) => s.length > 0);
14
- constArrays.set(name, values);
15
- }
16
- return constArrays;
17
- }
18
- it("should extract const arrays", () => {
19
- const content = `
20
- export const sizes = ['s', 'm', 'l'] as const;
21
- export const themes = ['primary', 'secondary', 'danger'] as const;
22
- `;
23
- const arrays = extractConstArrays(content);
24
- expect(arrays.get("sizes")).toEqual(["s", "m", "l"]);
25
- expect(arrays.get("themes")).toEqual(["primary", "secondary", "danger"]);
26
- });
27
- it("should handle double quotes", () => {
28
- const content = `export const variants = ["solid", "bordered", "ghost"] as const;`;
29
- const arrays = extractConstArrays(content);
30
- expect(arrays.get("variants")).toEqual(["solid", "bordered", "ghost"]);
31
- });
32
- });
33
- describe("React Parser - extractPropsFromInterface", () => {
34
- function extractPropsFromInterface(content, interfaceName, constArrays) {
35
- const props = [];
36
- const seenProps = new Set();
37
- const interfaceRegex = new RegExp(`interface\\s+${interfaceName}\\s*(?:extends\\s+([^{]+))?\\s*\\{([\\s\\S]*?)\\}`, "g");
38
- const match = interfaceRegex.exec(content);
39
- if (!match)
40
- return props;
41
- const extendsClause = match[1];
42
- const interfaceBody = match[2];
43
- // Recursively get props from extended interfaces
44
- if (extendsClause) {
45
- const extendedInterfaces = extendsClause
46
- .split(",")
47
- .map((s) => s.trim().replace(/<[^>]+>/, ""))
48
- .filter((s) => s.length > 0 && !s.startsWith("Omit") && !s.includes("HTMLAttributes"));
49
- for (const extInterface of extendedInterfaces) {
50
- const extProps = extractPropsFromInterface(content, extInterface, constArrays);
51
- for (const prop of extProps) {
52
- if (!seenProps.has(prop.name)) {
53
- seenProps.add(prop.name);
54
- props.push(prop);
55
- }
56
- }
57
- }
58
- }
59
- const propRegex = /(\w+)(\?)?:\s*([^;\n]+)/g;
60
- let propMatch;
61
- while ((propMatch = propRegex.exec(interfaceBody)) !== null) {
62
- const propName = propMatch[1];
63
- const isOptional = !!propMatch[2];
64
- const propType = propMatch[3].trim();
65
- if (seenProps.has(propName))
66
- continue;
67
- if (propType.includes("=>") || propName.startsWith("on"))
68
- continue;
69
- if (propName === "children" || propName === "className")
70
- continue;
71
- seenProps.add(propName);
72
- let options;
73
- const typeRefMatch = propType.match(/^T(\w+)$/);
74
- if (typeRefMatch) {
75
- const typeName = typeRefMatch[1].toLowerCase();
76
- for (const [constName, values] of constArrays) {
77
- const constNameLower = constName.toLowerCase();
78
- // Match if type contains const name or const name contains type suffix
79
- // e.g., "buttonvariant" should match "variant" or "variants"
80
- if (typeName.includes(constNameLower) ||
81
- typeName.includes(constNameLower.replace(/s$/, ""))) {
82
- options = values;
83
- break;
84
- }
85
- }
86
- }
87
- if (propType.includes("|") && propType.includes("'")) {
88
- options = propType
89
- .split("|")
90
- .map((s) => s.trim().replace(/['"]/g, ""))
91
- .filter((s) => s && s !== "undefined");
92
- }
93
- props.push({
94
- name: propName,
95
- type: propType,
96
- required: !isOptional,
97
- options: options && options.length > 1 ? options : undefined,
98
- });
99
- }
100
- return props;
101
- }
102
- it("should extract props from simple interface", () => {
103
- const content = `
104
- interface IButtonProps {
105
- variant?: TButtonVariant;
106
- size?: TButtonSize;
107
- isDisabled?: boolean;
108
- }
109
- `;
110
- const constArrays = new Map();
111
- constArrays.set("variants", ["solid", "bordered"]);
112
- constArrays.set("sizes", ["s", "m", "l"]);
113
- const props = extractPropsFromInterface(content, "IButtonProps", constArrays);
114
- expect(props).toHaveLength(3);
115
- expect(props[0].name).toBe("variant");
116
- expect(props[0].options).toEqual(["solid", "bordered"]);
117
- expect(props[1].name).toBe("size");
118
- expect(props[1].options).toEqual(["s", "m", "l"]);
119
- expect(props[2].name).toBe("isDisabled");
120
- expect(props[2].type).toBe("boolean");
121
- });
122
- it("should handle interface inheritance", () => {
123
- const content = `
124
- interface IBaseProps {
125
- id?: string;
126
- testId?: string;
127
- }
128
-
129
- interface IButtonProps extends IBaseProps {
130
- variant?: string;
131
- size?: string;
132
- }
133
- `;
134
- const props = extractPropsFromInterface(content, "IButtonProps", new Map());
135
- expect(props).toHaveLength(4);
136
- expect(props.map((p) => p.name)).toContain("id");
137
- expect(props.map((p) => p.name)).toContain("testId");
138
- expect(props.map((p) => p.name)).toContain("variant");
139
- expect(props.map((p) => p.name)).toContain("size");
140
- });
141
- it("should extract inline union types as options", () => {
142
- const content = `
143
- interface IButtonProps {
144
- theme?: 'primary' | 'secondary' | 'danger';
145
- size?: 's' | 'm' | 'l';
146
- }
147
- `;
148
- const props = extractPropsFromInterface(content, "IButtonProps", new Map());
149
- expect(props[0].options).toEqual(["primary", "secondary", "danger"]);
150
- expect(props[1].options).toEqual(["s", "m", "l"]);
151
- });
152
- it("should skip callback props and children", () => {
153
- const content = `
154
- interface IButtonProps {
155
- onClick?: () => void;
156
- onHover?: (event: MouseEvent) => void;
157
- children?: ReactNode;
158
- className?: string;
159
- label?: string;
160
- }
161
- `;
162
- const props = extractPropsFromInterface(content, "IButtonProps", new Map());
163
- expect(props).toHaveLength(1);
164
- expect(props[0].name).toBe("label");
165
- });
166
- });
167
- describe("React Parser - extractCallbacks", () => {
168
- function extractCallbacks(content) {
169
- const events = [];
170
- const seenEvents = new Set();
171
- const callbackPatterns = [
172
- /(\bon[A-Z]\w*)\??:\s*\([^)]*\)\s*=>\s*\w+/g,
173
- /(\bon[A-Z]\w*)\??:\s*\w*EventHandler/g,
174
- ];
175
- for (const pattern of callbackPatterns) {
176
- let match;
177
- while ((match = pattern.exec(content)) !== null) {
178
- const eventName = match[1];
179
- if (!seenEvents.has(eventName)) {
180
- seenEvents.add(eventName);
181
- events.push({
182
- name: eventName,
183
- description: `${eventName.replace(/^on/, "")} event callback`,
184
- });
185
- }
186
- }
187
- }
188
- return events;
189
- }
190
- it("should extract callback props", () => {
191
- const content = `
192
- interface IButtonProps {
193
- onClick?: () => void;
194
- onHover?: (event: MouseEvent) => void;
195
- onChange?: (value: string) => void;
196
- }
197
- `;
198
- const callbacks = extractCallbacks(content);
199
- expect(callbacks).toHaveLength(3);
200
- expect(callbacks.map((c) => c.name)).toContain("onClick");
201
- expect(callbacks.map((c) => c.name)).toContain("onHover");
202
- expect(callbacks.map((c) => c.name)).toContain("onChange");
203
- });
204
- it("should extract EventHandler types", () => {
205
- const content = `
206
- interface IInputProps {
207
- onFocus?: FocusEventHandler;
208
- onBlur?: FocusEventHandler;
209
- }
210
- `;
211
- const callbacks = extractCallbacks(content);
212
- expect(callbacks).toHaveLength(2);
213
- expect(callbacks.map((c) => c.name)).toContain("onFocus");
214
- expect(callbacks.map((c) => c.name)).toContain("onBlur");
215
- });
216
- });
217
- describe("React Parser - hasChildrenProp", () => {
218
- function hasChildrenProp(content) {
219
- return (content.includes("children") ||
220
- content.includes("PropsWithChildren") ||
221
- content.includes("ReactNode"));
222
- }
223
- it("should detect children prop", () => {
224
- expect(hasChildrenProp("interface Props { children: ReactNode }")).toBe(true);
225
- expect(hasChildrenProp("type Props = PropsWithChildren<{}>")).toBe(true);
226
- expect(hasChildrenProp("interface Props { label: string }")).toBe(false);
227
- });
228
- });
229
- describe("React Parser - inferCategory", () => {
230
- function inferCategory(componentName) {
231
- const name = componentName.toLowerCase();
232
- if (["button", "link", "optionbutton"].some((n) => name.includes(n)))
233
- return "action";
234
- if (["input", "select", "checkbox", "radio", "toggle", "textarea", "field"].some((n) => name.includes(n)))
235
- return "form";
236
- if (["accordion", "breadcrumb", "menu", "pagination", "tabs"].some((n) => name.includes(n)))
237
- return "navigation";
238
- if (["badge", "flag", "loader", "modal", "notification", "progress", "tooltip"].some((n) => name.includes(n)))
239
- return "feedback";
240
- if (["card", "divider", "layer"].some((n) => name.includes(n)))
241
- return "layout";
242
- if (["table", "heading", "hero", "listbox", "rating", "tag"].some((n) => name.includes(n)))
243
- return "data-display";
244
- return "other";
245
- }
246
- it("should categorize action components", () => {
247
- expect(inferCategory("Button")).toBe("action");
248
- expect(inferCategory("Link")).toBe("action");
249
- expect(inferCategory("OptionButton")).toBe("action");
250
- });
251
- it("should categorize form components", () => {
252
- expect(inferCategory("Input")).toBe("form");
253
- expect(inferCategory("TextInput")).toBe("form");
254
- expect(inferCategory("Checkbox")).toBe("form");
255
- expect(inferCategory("Select")).toBe("form");
256
- expect(inferCategory("TextField")).toBe("form");
257
- });
258
- it("should categorize navigation components", () => {
259
- expect(inferCategory("Breadcrumb")).toBe("navigation");
260
- expect(inferCategory("Menu")).toBe("navigation");
261
- expect(inferCategory("Tabs")).toBe("navigation");
262
- });
263
- it("should categorize feedback components", () => {
264
- expect(inferCategory("Modal")).toBe("feedback");
265
- expect(inferCategory("Notification")).toBe("feedback");
266
- expect(inferCategory("Loader")).toBe("feedback");
267
- expect(inferCategory("ProgressBar")).toBe("feedback");
268
- });
269
- it("should return other for unknown components", () => {
270
- expect(inferCategory("CustomComponent")).toBe("other");
271
- expect(inferCategory("MyWidget")).toBe("other");
272
- });
273
- });
274
- //# sourceMappingURL=react-parser.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"react-parser.test.js","sourceRoot":"","sources":["../../../src/parsers/__tests__/react-parser.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=scss-parser.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scss-parser.test.d.ts","sourceRoot":"","sources":["../../../src/parsers/__tests__/scss-parser.test.ts"],"names":[],"mappings":""}