wavemaker-dev-mcp 0.1.1 → 1.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.
Files changed (115) hide show
  1. package/README.md +75 -51
  2. package/dist/index.js +131 -180
  3. package/dist/index.js.map +1 -1
  4. package/dist/layout-tools.d.ts +27 -3
  5. package/dist/layout-tools.d.ts.map +1 -1
  6. package/dist/layout-tools.js +85 -32
  7. package/dist/layout-tools.js.map +1 -1
  8. package/dist/skills/loader.d.ts +36 -0
  9. package/dist/skills/loader.d.ts.map +1 -0
  10. package/dist/skills/loader.js +107 -0
  11. package/dist/skills/loader.js.map +1 -0
  12. package/package.json +8 -4
  13. package/skills/components/wm-accordion-pane.md +44 -0
  14. package/skills/components/wm-accordion.md +43 -0
  15. package/skills/components/wm-alert-dialog.md +42 -0
  16. package/skills/components/wm-anchor.md +51 -0
  17. package/skills/components/wm-audio.md +41 -0
  18. package/skills/components/wm-button-group.md +36 -0
  19. package/skills/components/wm-button.md +114 -0
  20. package/skills/components/wm-calendar.md +54 -0
  21. package/skills/components/wm-card.md +60 -0
  22. package/skills/components/wm-carousel.md +43 -0
  23. package/skills/components/wm-chart.md +104 -0
  24. package/skills/components/wm-checkbox.md +52 -0
  25. package/skills/components/wm-checkboxset.md +75 -0
  26. package/skills/components/wm-chips.md +78 -0
  27. package/skills/components/wm-composite.md +30 -0
  28. package/skills/components/wm-confirm-dialog.md +43 -0
  29. package/skills/components/wm-container.md +100 -0
  30. package/skills/components/wm-currency.md +69 -0
  31. package/skills/components/wm-datatable.md +146 -0
  32. package/skills/components/wm-date-time.md +80 -0
  33. package/skills/components/wm-date.md +78 -0
  34. package/skills/components/wm-dialog-body.md +28 -0
  35. package/skills/components/wm-dialog-container.md +48 -0
  36. package/skills/components/wm-dialog-content.md +31 -0
  37. package/skills/components/wm-dialog-footer.md +28 -0
  38. package/skills/components/wm-dialog-header.md +43 -0
  39. package/skills/components/wm-dialog.md +40 -0
  40. package/skills/components/wm-file-upload.md +58 -0
  41. package/skills/components/wm-footer.md +31 -0
  42. package/skills/components/wm-form-field.md +81 -0
  43. package/skills/components/wm-form.md +58 -0
  44. package/skills/components/wm-grid-column.md +30 -0
  45. package/skills/components/wm-header.md +31 -0
  46. package/skills/components/wm-html.md +31 -0
  47. package/skills/components/wm-icon.md +40 -0
  48. package/skills/components/wm-iframe-dialog.md +52 -0
  49. package/skills/components/wm-iframe.md +35 -0
  50. package/skills/components/wm-label.md +45 -0
  51. package/skills/components/wm-left-nav.md +35 -0
  52. package/skills/components/wm-linear-layout-item.md +28 -0
  53. package/skills/components/wm-linear-layout.md +92 -0
  54. package/skills/components/wm-list.md +92 -0
  55. package/skills/components/wm-live-filter.md +50 -0
  56. package/skills/components/wm-live-form.md +35 -0
  57. package/skills/components/wm-login-dialog.md +50 -0
  58. package/skills/components/wm-login.md +39 -0
  59. package/skills/components/wm-marquee.md +31 -0
  60. package/skills/components/wm-menu.md +71 -0
  61. package/skills/components/wm-message.md +41 -0
  62. package/skills/components/wm-nav-item.md +28 -0
  63. package/skills/components/wm-nav.md +61 -0
  64. package/skills/components/wm-number.md +62 -0
  65. package/skills/components/wm-page-content.md +34 -0
  66. package/skills/components/wm-page-dialog.md +45 -0
  67. package/skills/components/wm-page-toast.md +34 -0
  68. package/skills/components/wm-page.md +34 -0
  69. package/skills/components/wm-pagination.md +62 -0
  70. package/skills/components/wm-panel.md +69 -0
  71. package/skills/components/wm-partial-container.md +32 -0
  72. package/skills/components/wm-picture.md +46 -0
  73. package/skills/components/wm-popover.md +51 -0
  74. package/skills/components/wm-prefab-container.md +29 -0
  75. package/skills/components/wm-prefab.md +35 -0
  76. package/skills/components/wm-progress-bar.md +42 -0
  77. package/skills/components/wm-progress-circle.md +45 -0
  78. package/skills/components/wm-radioset.md +66 -0
  79. package/skills/components/wm-rating.md +76 -0
  80. package/skills/components/wm-rich-text-editor.md +36 -0
  81. package/skills/components/wm-right-nav.md +32 -0
  82. package/skills/components/wm-search.md +66 -0
  83. package/skills/components/wm-select.md +129 -0
  84. package/skills/components/wm-slider.md +53 -0
  85. package/skills/components/wm-spinner.md +43 -0
  86. package/skills/components/wm-tab-pane.md +45 -0
  87. package/skills/components/wm-table.md +113 -0
  88. package/skills/components/wm-tabs.md +48 -0
  89. package/skills/components/wm-text.md +65 -0
  90. package/skills/components/wm-textarea.md +47 -0
  91. package/skills/components/wm-tile.md +34 -0
  92. package/skills/components/wm-time.md +63 -0
  93. package/skills/components/wm-top-nav.md +31 -0
  94. package/skills/components/wm-tree.md +41 -0
  95. package/skills/components/wm-upload.md +42 -0
  96. package/skills/components/wm-video.md +48 -0
  97. package/skills/components/wm-wizard.md +59 -0
  98. package/skills/index.json +1151 -0
  99. package/skills/tokens/border.md +85 -0
  100. package/skills/tokens/colors.md +97 -0
  101. package/skills/tokens/elevation.md +73 -0
  102. package/skills/tokens/spacing.md +89 -0
  103. package/skills/tokens/typography.md +88 -0
  104. package/dist/components.d.ts +0 -17
  105. package/dist/components.d.ts.map +0 -1
  106. package/dist/components.js +0 -67
  107. package/dist/components.js.map +0 -1
  108. package/dist/paths.d.ts +0 -43
  109. package/dist/paths.d.ts.map +0 -1
  110. package/dist/paths.js +0 -103
  111. package/dist/paths.js.map +0 -1
  112. package/dist/search.d.ts +0 -15
  113. package/dist/search.d.ts.map +0 -1
  114. package/dist/search.js +0 -130
  115. package/dist/search.js.map +0 -1
package/dist/paths.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"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"}
package/dist/search.d.ts DELETED
@@ -1,15 +0,0 @@
1
- export type ContentMatch = {
2
- file: string;
3
- line: number;
4
- text: string;
5
- };
6
- /**
7
- * Try ripgrep for fast search; returns null if rg is missing or errors.
8
- */
9
- export declare function searchWithRipgrep(root: string, pattern: string, maxResults: number, pathGlob?: string): ContentMatch[] | null;
10
- /**
11
- * Slow path: walk files under root and scan line-by-line.
12
- */
13
- export declare function searchWithNode(root: string, pattern: string, maxResults: number, pathGlob?: string): Promise<ContentMatch[]>;
14
- export declare function formatMatches(rootLabel: string, rootPath: string, matches: ContentMatch[]): string;
15
- //# sourceMappingURL=search.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAuBF;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,GAChB,YAAY,EAAE,GAAG,IAAI,CAmBvB;AAuBD;;GAEG;AACH,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,YAAY,EAAE,CAAC,CAsCzB;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,CAMlG"}
package/dist/search.js DELETED
@@ -1,130 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.searchWithRipgrep = searchWithRipgrep;
7
- exports.searchWithNode = searchWithNode;
8
- exports.formatMatches = formatMatches;
9
- const node_child_process_1 = require("node:child_process");
10
- const node_fs_1 = __importDefault(require("node:fs"));
11
- const node_path_1 = __importDefault(require("node:path"));
12
- const fast_glob_1 = __importDefault(require("fast-glob"));
13
- const TEXT_EXTENSIONS = new Set([
14
- ".ts",
15
- ".tsx",
16
- ".js",
17
- ".jsx",
18
- ".mjs",
19
- ".cjs",
20
- ".json",
21
- ".md",
22
- ".less",
23
- ".css",
24
- ".scss",
25
- ".svg",
26
- ".html",
27
- ]);
28
- function isTextish(file) {
29
- const ext = file.slice(file.lastIndexOf("."));
30
- return TEXT_EXTENSIONS.has(ext.toLowerCase()) || !ext.includes(".");
31
- }
32
- /**
33
- * Try ripgrep for fast search; returns null if rg is missing or errors.
34
- */
35
- function searchWithRipgrep(root, pattern, maxResults, pathGlob) {
36
- const args = ["--line-number", "--no-heading", "--smart-case"];
37
- if (pathGlob && pathGlob.length > 0) {
38
- args.push("--glob", pathGlob);
39
- }
40
- args.push(pattern, root);
41
- try {
42
- const out = (0, node_child_process_1.execFileSync)("rg", args, {
43
- encoding: "utf8",
44
- maxBuffer: 32 * 1024 * 1024,
45
- });
46
- return parseRgOutput(out, root, maxResults);
47
- }
48
- catch (e) {
49
- const err = e;
50
- if (err.status === 1 && typeof err.stdout === "string") {
51
- return parseRgOutput(err.stdout, root, maxResults);
52
- }
53
- return null;
54
- }
55
- }
56
- function parseRgOutput(out, root, maxResults) {
57
- const lines = out.split(/\r?\n/).filter(Boolean);
58
- const matches = [];
59
- const absRoot = node_path_1.default.resolve(root);
60
- for (const line of lines) {
61
- const m = /^(.+?):(\d+):(.*)$/.exec(line);
62
- if (!m)
63
- continue;
64
- let filePath = m[1];
65
- const absFile = node_path_1.default.resolve(filePath);
66
- filePath = node_path_1.default.relative(absRoot, absFile).replace(/\\/g, "/");
67
- if (filePath.startsWith(".."))
68
- continue;
69
- matches.push({
70
- file: filePath,
71
- line: Number(m[2]),
72
- text: m[3],
73
- });
74
- if (matches.length >= maxResults)
75
- break;
76
- }
77
- return matches;
78
- }
79
- /**
80
- * Slow path: walk files under root and scan line-by-line.
81
- */
82
- async function searchWithNode(root, pattern, maxResults, pathGlob) {
83
- const globPat = pathGlob && pathGlob.length > 0 ? pathGlob : "**/*";
84
- const files = await (0, fast_glob_1.default)(globPat, {
85
- cwd: root,
86
- onlyFiles: true,
87
- dot: false,
88
- ignore: ["**/node_modules/**"],
89
- followSymbolicLinks: false,
90
- });
91
- let regex;
92
- try {
93
- regex = new RegExp(pattern, "i");
94
- }
95
- catch {
96
- regex = new RegExp(pattern.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), "i");
97
- }
98
- const matches = [];
99
- const maxFiles = 4000;
100
- for (let i = 0; i < files.length && i < maxFiles; i++) {
101
- const rel = files[i];
102
- if (!isTextish(rel))
103
- continue;
104
- const full = `${root}/${rel}`.replace(/\\/g, "/");
105
- let content;
106
- try {
107
- content = node_fs_1.default.readFileSync(full, "utf8");
108
- }
109
- catch {
110
- continue;
111
- }
112
- const lines = content.split(/\r?\n/);
113
- for (let li = 0; li < lines.length; li++) {
114
- if (regex.test(lines[li])) {
115
- matches.push({ file: rel.replace(/\\/g, "/"), line: li + 1, text: lines[li] });
116
- if (matches.length >= maxResults)
117
- return matches;
118
- }
119
- }
120
- }
121
- return matches;
122
- }
123
- function formatMatches(rootLabel, rootPath, matches) {
124
- if (matches.length === 0) {
125
- return `No matches in ${rootLabel} (${rootPath}).`;
126
- }
127
- const lines = matches.map((m) => `${m.file}:${m.line}: ${m.text}`);
128
- return [`${rootLabel} (${rootPath})`, "", ...lines].join("\n");
129
- }
130
- //# sourceMappingURL=search.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"search.js","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"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"}