diff --git a/.gitignore b/.gitignore index 3fe92bf..955456d 100644 --- a/.gitignore +++ b/.gitignore @@ -138,5 +138,9 @@ n8n-mcp-wrapper.sh # MCP configuration files .mcp.json +# UI Apps build output +ui-apps/dist/ +ui-apps/node_modules/ + # Telemetry configuration (user-specific) ~/.n8n-mcp/ diff --git a/CHANGELOG.md b/CHANGELOG.md index c4ed90f..1e788aa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,49 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [2.34.0] - 2026-02-07 + +### Added + +- **MCP Apps**: Rich HTML UIs rendered by MCP hosts alongside tool results via `_meta.ui` and the MCP resources protocol + - Server-side UI module (`src/mcp/ui/`) with tool-to-UI mapping and `_meta.ui` injection + - `UIAppRegistry` static class for loading and serving self-contained HTML apps + - `UI_APP_CONFIGS` mapping tools to their corresponding UI apps + +- **Operation Result UI**: Visual summary for workflow operation tools + - Status badge, operation type, workflow details card + - Expandable sections for nodes added, modified, and removed + - Mapped to: `n8n_create_workflow`, `n8n_update_full_workflow`, `n8n_update_partial_workflow`, `n8n_delete_workflow`, `n8n_test_workflow`, `n8n_autofix_workflow`, `n8n_deploy_template` + +- **Validation Summary UI**: Visual summary for validation tools + - Valid/invalid badge with error and warning counts + - Expandable error list with type, property, message, and fix + - Expandable warning list and suggestions + - Mapped to: `validate_node`, `validate_workflow`, `n8n_validate_workflow` + +- **React + Vite Build Pipeline** (`ui-apps/`): + - React 19, Vite 6, vite-plugin-singlefile for self-contained HTML output + - Shared component library: Card, Badge, Expandable + - `useToolData` hook for reading data from `window.__MCP_DATA__` or embedded JSON + - n8n-branded dark theme with CSS custom properties + - Per-app builds via `APP_NAME` environment variable + +- **MCP Resources Protocol**: Server now exposes `resources` capability + - `ListResources` handler returns available UI apps + - `ReadResource` handler serves self-contained HTML via `n8n-mcp://ui/{id}` URIs + +- **New Scripts**: + - `build:ui`: Build UI apps (`cd ui-apps && npm install && npm run build`) + - `build:all`: Build UI apps then server (`npm run build:ui && npm run build`) + +### Changed + +- **MCP Server**: Added `resources: {}` to server capabilities alongside existing `tools: {}` +- **Tool Responses**: Tools with matching UI apps now include `_meta.ui.app` URI pointing to their visual representation +- **Graceful Degradation**: Server starts and operates normally without `ui-apps/dist/`; UI metadata is only injected when HTML is available + +Conceived by Romuald Czlonkowski - https://www.aiadvisors.pl/en + ## [2.33.6] - 2026-02-06 ### Changed diff --git a/dist/index.d.ts b/dist/index.d.ts index 2dd6712..73f5ffb 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -5,6 +5,8 @@ export { N8NDocumentationMCPServer } from './mcp/server'; export type { InstanceContext } from './types/instance-context'; export { validateInstanceContext, isInstanceContext } from './types/instance-context'; export type { SessionState } from './types/session-state'; +export type { UIAppConfig, UIMetadata } from './mcp/ui/types'; +export { UI_APP_CONFIGS } from './mcp/ui/app-configs'; export type { Tool, CallToolResult, ListToolsResult } from '@modelcontextprotocol/sdk/types.js'; import N8NMCPEngine from './mcp-engine'; export default N8NMCPEngine; diff --git a/dist/index.d.ts.map b/dist/index.d.ts.map index 528f794..6f41396 100644 --- a/dist/index.d.ts.map +++ b/dist/index.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAGzD,YAAY,EACV,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EAClB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,YAAY,EACb,MAAM,uBAAuB,CAAC;AAG/B,YAAY,EACV,IAAI,EACJ,cAAc,EACd,eAAe,EAChB,MAAM,oCAAoC,CAAC;AAG5C,OAAO,YAAY,MAAM,cAAc,CAAC;AACxC,eAAe,YAAY,CAAC"} \ No newline at end of file +{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAGzD,YAAY,EACV,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EAClB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,YAAY,EACb,MAAM,uBAAuB,CAAC;AAG/B,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,YAAY,EACV,IAAI,EACJ,cAAc,EACd,eAAe,EAChB,MAAM,oCAAoC,CAAC;AAG5C,OAAO,YAAY,MAAM,cAAc,CAAC;AACxC,eAAe,YAAY,CAAC"} \ No newline at end of file diff --git a/dist/index.js b/dist/index.js index fbc5207..cb27728 100644 --- a/dist/index.js +++ b/dist/index.js @@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); -exports.isInstanceContext = exports.validateInstanceContext = exports.N8NDocumentationMCPServer = exports.ConsoleManager = exports.SingleSessionHTTPServer = exports.N8NMCPEngine = void 0; +exports.UI_APP_CONFIGS = exports.isInstanceContext = exports.validateInstanceContext = exports.N8NDocumentationMCPServer = exports.ConsoleManager = exports.SingleSessionHTTPServer = exports.N8NMCPEngine = void 0; var mcp_engine_1 = require("./mcp-engine"); Object.defineProperty(exports, "N8NMCPEngine", { enumerable: true, get: function () { return mcp_engine_1.N8NMCPEngine; } }); var http_server_single_session_1 = require("./http-server-single-session"); @@ -15,6 +15,8 @@ Object.defineProperty(exports, "N8NDocumentationMCPServer", { enumerable: true, var instance_context_1 = require("./types/instance-context"); Object.defineProperty(exports, "validateInstanceContext", { enumerable: true, get: function () { return instance_context_1.validateInstanceContext; } }); Object.defineProperty(exports, "isInstanceContext", { enumerable: true, get: function () { return instance_context_1.isInstanceContext; } }); +var app_configs_1 = require("./mcp/ui/app-configs"); +Object.defineProperty(exports, "UI_APP_CONFIGS", { enumerable: true, get: function () { return app_configs_1.UI_APP_CONFIGS; } }); const mcp_engine_2 = __importDefault(require("./mcp-engine")); exports.default = mcp_engine_2.default; //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/dist/index.js.map b/dist/index.js.map index fde0259..bc942f4 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAOA,2CAAyE;AAAhE,0GAAA,YAAY,OAAA;AACrB,2EAAuE;AAA9D,qIAAA,uBAAuB,OAAA;AAChC,2DAAyD;AAAhD,iHAAA,cAAc,OAAA;AACvB,uCAAyD;AAAhD,mHAAA,yBAAyB,OAAA;AAMlC,6DAGkC;AAFhC,2HAAA,uBAAuB,OAAA;AACvB,qHAAA,iBAAiB,OAAA;AAcnB,8DAAwC;AACxC,kBAAe,oBAAY,CAAC"} \ No newline at end of file +{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAOA,2CAAyE;AAAhE,0GAAA,YAAY,OAAA;AACrB,2EAAuE;AAA9D,qIAAA,uBAAuB,OAAA;AAChC,2DAAyD;AAAhD,iHAAA,cAAc,OAAA;AACvB,uCAAyD;AAAhD,mHAAA,yBAAyB,OAAA;AAMlC,6DAGkC;AAFhC,2HAAA,uBAAuB,OAAA;AACvB,qHAAA,iBAAiB,OAAA;AAQnB,oDAAsD;AAA7C,6GAAA,cAAc,OAAA;AAUvB,8DAAwC;AACxC,kBAAe,oBAAY,CAAC"} \ No newline at end of file diff --git a/dist/mcp/server.d.ts.map b/dist/mcp/server.d.ts.map index 6d58249..cc64150 100644 --- a/dist/mcp/server.d.ts.map +++ b/dist/mcp/server.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAuCA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAmGnE,qBAAa,yBAAyB;IACpC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,EAAE,CAAgC;IAC1C,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,eAAe,CAAC,CAAkB;IAC1C,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,qBAAqB,CAAsB;IACnD,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,kBAAkB,CAA4B;IACtD,OAAO,CAAC,iBAAiB,CAAkB;IAC3C,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,UAAU,CAAkB;gBAExB,eAAe,CAAC,EAAE,eAAe,EAAE,WAAW,CAAC,EAAE,gBAAgB;IAqGvE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YA+Cd,kBAAkB;YAiDlB,wBAAwB;IA0BtC,OAAO,CAAC,kBAAkB;YA6CZ,iBAAiB;IAa/B,OAAO,CAAC,eAAe,CAAkB;YAE3B,sBAAsB;IAgDpC,OAAO,CAAC,gBAAgB;IAqCxB,OAAO,CAAC,aAAa;IAoTrB,OAAO,CAAC,wBAAwB;IAoFhC,OAAO,CAAC,kBAAkB;IAqE1B,OAAO,CAAC,uBAAuB;IAwB/B,OAAO,CAAC,qBAAqB;YAoTf,SAAS;YA2DT,WAAW;YAkFX,WAAW;YA0CX,cAAc;YA8Md,gBAAgB;IAqD9B,OAAO,CAAC,mBAAmB;IAwE3B,OAAO,CAAC,eAAe;YAsBT,eAAe;IA2L7B,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,uBAAuB;IA0D/B,OAAO,CAAC,iBAAiB;YAqFX,WAAW;YAgCX,oBAAoB;IAuFlC,OAAO,CAAC,aAAa;YAQP,qBAAqB;YAwDrB,iBAAiB;YAiKjB,OAAO;YAgDP,cAAc;YAwFd,iBAAiB;IAqC/B,OAAO,CAAC,iBAAiB;IA0BzB,OAAO,CAAC,iBAAiB;IA0BzB,OAAO,CAAC,eAAe;IAwCvB,OAAO,CAAC,kBAAkB;IAiC1B,OAAO,CAAC,aAAa;IAoCrB,OAAO,CAAC,0BAA0B;IAgClC,OAAO,CAAC,4BAA4B;YAKtB,oBAAoB;IAsDlC,OAAO,CAAC,gBAAgB;YAiBV,SAAS;YA6CT,kBAAkB;YAqElB,uBAAuB;YAsDvB,iBAAiB;IAqE/B,OAAO,CAAC,qBAAqB;IA8C7B,OAAO,CAAC,uBAAuB;IA4D/B,OAAO,CAAC,wBAAwB;IAkChC,OAAO,CAAC,iBAAiB;YAoDX,mBAAmB;YAoEnB,qBAAqB;IAS7B,OAAO,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;YAS9B,aAAa;YAcb,iBAAiB;YAoBjB,WAAW;YAwBX,eAAe;YAqBf,mBAAmB;YAwBnB,yBAAyB;IA4CvC,OAAO,CAAC,kBAAkB;YAiBZ,gBAAgB;YA6HhB,2BAA2B;YAiE3B,2BAA2B;IAyEnC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IA0BpB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAgEhC"} \ No newline at end of file +{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AA0CA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAmGnE,qBAAa,yBAAyB;IACpC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,EAAE,CAAgC;IAC1C,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,eAAe,CAAC,CAAkB;IAC1C,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,qBAAqB,CAAsB;IACnD,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,kBAAkB,CAA4B;IACtD,OAAO,CAAC,iBAAiB,CAAkB;IAC3C,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,UAAU,CAAkB;gBAExB,eAAe,CAAC,EAAE,eAAe,EAAE,WAAW,CAAC,EAAE,gBAAgB;IAuGvE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YA+Cd,kBAAkB;YAiDlB,wBAAwB;IA0BtC,OAAO,CAAC,kBAAkB;YA6CZ,iBAAiB;IAa/B,OAAO,CAAC,eAAe,CAAkB;YAE3B,sBAAsB;IAgDpC,OAAO,CAAC,gBAAgB;IAqCxB,OAAO,CAAC,aAAa;IAmWrB,OAAO,CAAC,wBAAwB;IAoFhC,OAAO,CAAC,kBAAkB;IAqE1B,OAAO,CAAC,uBAAuB;IAwB/B,OAAO,CAAC,qBAAqB;YAoTf,SAAS;YA2DT,WAAW;YAkFX,WAAW;YA0CX,cAAc;YA8Md,gBAAgB;IAqD9B,OAAO,CAAC,mBAAmB;IAwE3B,OAAO,CAAC,eAAe;YAsBT,eAAe;IA2L7B,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,uBAAuB;IA0D/B,OAAO,CAAC,iBAAiB;YAqFX,WAAW;YAgCX,oBAAoB;IAuFlC,OAAO,CAAC,aAAa;YAQP,qBAAqB;YAwDrB,iBAAiB;YAiKjB,OAAO;YAgDP,cAAc;YAwFd,iBAAiB;IAqC/B,OAAO,CAAC,iBAAiB;IA0BzB,OAAO,CAAC,iBAAiB;IA0BzB,OAAO,CAAC,eAAe;IAwCvB,OAAO,CAAC,kBAAkB;IAiC1B,OAAO,CAAC,aAAa;IAoCrB,OAAO,CAAC,0BAA0B;IAgClC,OAAO,CAAC,4BAA4B;YAKtB,oBAAoB;IAsDlC,OAAO,CAAC,gBAAgB;YAiBV,SAAS;YA6CT,kBAAkB;YAqElB,uBAAuB;YAsDvB,iBAAiB;IAqE/B,OAAO,CAAC,qBAAqB;IA8C7B,OAAO,CAAC,uBAAuB;IA4D/B,OAAO,CAAC,wBAAwB;IAkChC,OAAO,CAAC,iBAAiB;YAoDX,mBAAmB;YAoEnB,qBAAqB;IAS7B,OAAO,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;YAS9B,aAAa;YAcb,iBAAiB;YAoBjB,WAAW;YAwBX,eAAe;YAqBf,mBAAmB;YAwBnB,yBAAyB;IA4CvC,OAAO,CAAC,kBAAkB;YAiBZ,gBAAgB;YA6HhB,2BAA2B;YAiE3B,2BAA2B;IAyEnC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IA0BpB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAgEhC"} \ No newline at end of file diff --git a/dist/mcp/server.js b/dist/mcp/server.js index a19190b..83a3533 100644 --- a/dist/mcp/server.js +++ b/dist/mcp/server.js @@ -43,6 +43,7 @@ const types_js_1 = require("@modelcontextprotocol/sdk/types.js"); const fs_1 = require("fs"); const path_1 = __importDefault(require("path")); const tools_1 = require("./tools"); +const ui_1 = require("./ui"); const tools_n8n_manager_1 = require("./tools-n8n-manager"); const tools_n8n_friendly_1 = require("./tools-n8n-friendly"); const workflow_examples_1 = require("./workflow-examples"); @@ -148,8 +149,10 @@ class N8NDocumentationMCPServer { }, { capabilities: { tools: {}, + resources: {}, }, }); + ui_1.UIAppRegistry.load(); this.setupHandlers(); } async close() { @@ -368,6 +371,7 @@ class N8NDocumentationMCPServer { protocolVersion: negotiationResult.version, capabilities: { tools: {}, + resources: {}, }, serverInfo: { name: 'n8n-documentation-mcp', @@ -525,6 +529,10 @@ class N8NDocumentationMCPServer { if (name.startsWith('validate_') && structuredContent !== null) { mcpResponse.structuredContent = structuredContent; } + const uiApp = ui_1.UIAppRegistry.getAppForTool(name); + if (uiApp && uiApp.html) { + mcpResponse._meta = { ui: { app: uiApp.config.uri } }; + } return mcpResponse; } catch (error) { @@ -562,6 +570,39 @@ class N8NDocumentationMCPServer { }; } }); + this.server.setRequestHandler(types_js_1.ListResourcesRequestSchema, async () => { + const apps = ui_1.UIAppRegistry.getAllApps(); + return { + resources: apps + .filter(app => app.html !== null) + .map(app => ({ + uri: app.config.uri, + name: app.config.displayName, + description: app.config.description, + mimeType: app.config.mimeType, + })), + }; + }); + this.server.setRequestHandler(types_js_1.ReadResourceRequestSchema, async (request) => { + const uri = request.params.uri; + const match = uri.match(/^n8n-mcp:\/\/ui\/(.+)$/); + if (!match) { + throw new Error(`Unknown resource URI: ${uri}`); + } + const app = ui_1.UIAppRegistry.getAppById(match[1]); + if (!app || !app.html) { + throw new Error(`UI app not found or not built: ${match[1]}`); + } + return { + contents: [ + { + uri: app.config.uri, + mimeType: app.config.mimeType, + text: app.html, + }, + ], + }; + }); } sanitizeValidationResult(result, toolName) { if (!result || typeof result !== 'object') { diff --git a/dist/mcp/server.js.map b/dist/mcp/server.js.map index 0e21208..26e8227 100644 --- a/dist/mcp/server.js.map +++ b/dist/mcp/server.js.map @@ -1 +1 @@ -{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/package.json b/package.json index 021f219..4e20ab4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "n8n-mcp", - "version": "2.33.6", + "version": "2.34.0", "description": "Integration between n8n workflow automation and Model Context Protocol (MCP)", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -16,6 +16,8 @@ }, "scripts": { "build": "tsc -p tsconfig.build.json", + "build:ui": "cd ui-apps && npm install && npm run build", + "build:all": "npm run build:ui && npm run build", "rebuild": "node dist/scripts/rebuild.js", "rebuild:optimized": "node dist/scripts/rebuild-optimized.js", "validate": "node dist/scripts/validate.js", @@ -123,6 +125,7 @@ "homepage": "https://github.com/czlonkowski/n8n-mcp#readme", "files": [ "dist/**/*", + "ui-apps/dist/**/*", "data/nodes.db", ".env.example", "README.md", diff --git a/src/index.ts b/src/index.ts index 0dd3852..01f43bb 100644 --- a/src/index.ts +++ b/src/index.ts @@ -22,6 +22,10 @@ export type { SessionState } from './types/session-state'; +// UI module exports +export type { UIAppConfig, UIMetadata } from './mcp/ui/types'; +export { UI_APP_CONFIGS } from './mcp/ui/app-configs'; + // Re-export MCP SDK types for convenience export type { Tool, diff --git a/src/mcp/server.ts b/src/mcp/server.ts index 7b31fce..5fb9430 100644 --- a/src/mcp/server.ts +++ b/src/mcp/server.ts @@ -1,13 +1,16 @@ import { Server } from '@modelcontextprotocol/sdk/server/index.js'; import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'; -import { - CallToolRequestSchema, +import { + CallToolRequestSchema, ListToolsRequestSchema, InitializeRequestSchema, + ListResourcesRequestSchema, + ReadResourceRequestSchema, } from '@modelcontextprotocol/sdk/types.js'; import { existsSync, promises as fs } from 'fs'; import path from 'path'; import { n8nDocumentationToolsFinal } from './tools'; +import { UIAppRegistry } from './ui'; import { n8nManagementTools } from './tools-n8n-manager'; import { makeToolsN8nFriendly } from './tools-n8n-friendly'; import { getWorkflowExampleString } from './workflow-examples'; @@ -235,10 +238,12 @@ export class N8NDocumentationMCPServer { { capabilities: { tools: {}, + resources: {}, }, } ); + UIAppRegistry.load(); this.setupHandlers(); } @@ -563,6 +568,7 @@ export class N8NDocumentationMCPServer { protocolVersion: negotiationResult.version, capabilities: { tools: {}, + resources: {}, }, serverInfo: { name: 'n8n-documentation-mcp', @@ -774,7 +780,13 @@ export class N8NDocumentationMCPServer { if (name.startsWith('validate_') && structuredContent !== null) { mcpResponse.structuredContent = structuredContent; } - + + // Inject UI app metadata if available + const uiApp = UIAppRegistry.getAppForTool(name); + if (uiApp && uiApp.html) { + mcpResponse._meta = { ui: { app: uiApp.config.uri } }; + } + return mcpResponse; } catch (error) { logger.error(`Error executing tool ${name}`, error); @@ -826,6 +838,46 @@ export class N8NDocumentationMCPServer { }; } }); + + // Handle ListResources for UI apps + this.server.setRequestHandler(ListResourcesRequestSchema, async () => { + const apps = UIAppRegistry.getAllApps(); + return { + resources: apps + .filter(app => app.html !== null) + .map(app => ({ + uri: app.config.uri, + name: app.config.displayName, + description: app.config.description, + mimeType: app.config.mimeType, + })), + }; + }); + + // Handle ReadResource for UI apps + this.server.setRequestHandler(ReadResourceRequestSchema, async (request) => { + const uri = request.params.uri; + // Parse n8n-mcp://ui/{id} pattern + const match = uri.match(/^n8n-mcp:\/\/ui\/(.+)$/); + if (!match) { + throw new Error(`Unknown resource URI: ${uri}`); + } + + const app = UIAppRegistry.getAppById(match[1]); + if (!app || !app.html) { + throw new Error(`UI app not found or not built: ${match[1]}`); + } + + return { + contents: [ + { + uri: app.config.uri, + mimeType: app.config.mimeType, + text: app.html, + }, + ], + }; + }); } /** diff --git a/src/mcp/ui/app-configs.ts b/src/mcp/ui/app-configs.ts new file mode 100644 index 0000000..dfa2054 --- /dev/null +++ b/src/mcp/ui/app-configs.ts @@ -0,0 +1,32 @@ +import type { UIAppConfig } from './types'; + +export const UI_APP_CONFIGS: UIAppConfig[] = [ + { + id: 'operation-result', + displayName: 'Operation Result', + description: 'Visual summary of workflow operations (create, update, delete, test)', + uri: 'n8n-mcp://ui/operation-result', + mimeType: 'text/html', + toolPatterns: [ + 'n8n_create_workflow', + 'n8n_update_full_workflow', + 'n8n_update_partial_workflow', + 'n8n_delete_workflow', + 'n8n_test_workflow', + 'n8n_autofix_workflow', + 'n8n_deploy_template', + ], + }, + { + id: 'validation-summary', + displayName: 'Validation Summary', + description: 'Visual summary of node and workflow validation results', + uri: 'n8n-mcp://ui/validation-summary', + mimeType: 'text/html', + toolPatterns: [ + 'validate_node', + 'validate_workflow', + 'n8n_validate_workflow', + ], + }, +]; diff --git a/src/mcp/ui/index.ts b/src/mcp/ui/index.ts new file mode 100644 index 0000000..53d8b44 --- /dev/null +++ b/src/mcp/ui/index.ts @@ -0,0 +1,3 @@ +export type { UIAppConfig, UIMetadata, UIAppEntry } from './types'; +export { UI_APP_CONFIGS } from './app-configs'; +export { UIAppRegistry } from './registry'; diff --git a/src/mcp/ui/registry.ts b/src/mcp/ui/registry.ts new file mode 100644 index 0000000..4bab257 --- /dev/null +++ b/src/mcp/ui/registry.ts @@ -0,0 +1,69 @@ +import { existsSync, readFileSync } from 'fs'; +import path from 'path'; +import { logger } from '../../utils/logger'; +import type { UIAppConfig, UIAppEntry } from './types'; +import { UI_APP_CONFIGS } from './app-configs'; + +export class UIAppRegistry { + private static entries: Map = new Map(); + private static toolIndex: Map = new Map(); + private static loaded = false; + + static load(): void { + // Resolve dist directory relative to package root + // In production: package-root/ui-apps/dist/ + // __dirname will be src/mcp/ui or dist/mcp/ui + const packageRoot = path.resolve(__dirname, '..', '..', '..'); + const distDir = path.join(packageRoot, 'ui-apps', 'dist'); + + this.entries.clear(); + this.toolIndex.clear(); + + for (const config of UI_APP_CONFIGS) { + let html: string | null = null; + const htmlPath = path.join(distDir, config.id, 'index.html'); + + if (existsSync(htmlPath)) { + try { + html = readFileSync(htmlPath, 'utf-8'); + logger.info(`Loaded UI app: ${config.id}`); + } catch (err) { + logger.warn(`Failed to read UI app HTML: ${config.id}`, err); + } + } + + const entry: UIAppEntry = { config, html }; + this.entries.set(config.id, entry); + + // Build tool -> entry index + for (const pattern of config.toolPatterns) { + this.toolIndex.set(pattern, entry); + } + } + + this.loaded = true; + logger.info(`UI App Registry loaded: ${this.entries.size} apps, ${this.toolIndex.size} tool mappings`); + } + + static getAppForTool(toolName: string): UIAppEntry | null { + if (!this.loaded) return null; + return this.toolIndex.get(toolName) ?? null; + } + + static getAppById(id: string): UIAppEntry | null { + if (!this.loaded) return null; + return this.entries.get(id) ?? null; + } + + static getAllApps(): UIAppEntry[] { + if (!this.loaded) return []; + return Array.from(this.entries.values()); + } + + /** Reset registry state. Intended for testing only. */ + static reset(): void { + this.entries.clear(); + this.toolIndex.clear(); + this.loaded = false; + } +} diff --git a/src/mcp/ui/types.ts b/src/mcp/ui/types.ts new file mode 100644 index 0000000..f19aa8c --- /dev/null +++ b/src/mcp/ui/types.ts @@ -0,0 +1,23 @@ +/** + * MCP Apps UI type definitions + */ + +export interface UIAppConfig { + id: string; + displayName: string; + description: string; + uri: string; + mimeType: string; + toolPatterns: string[]; +} + +export interface UIMetadata { + ui: { + app: string; + }; +} + +export interface UIAppEntry { + config: UIAppConfig; + html: string | null; +} diff --git a/tests/unit/mcp/ui/app-configs.test.ts b/tests/unit/mcp/ui/app-configs.test.ts new file mode 100644 index 0000000..7bec87f --- /dev/null +++ b/tests/unit/mcp/ui/app-configs.test.ts @@ -0,0 +1,110 @@ +import { describe, it, expect } from 'vitest'; +import { UI_APP_CONFIGS } from '@/mcp/ui/app-configs'; + +describe('UI_APP_CONFIGS', () => { + it('should have all required fields for every config', () => { + for (const config of UI_APP_CONFIGS) { + expect(config.id).toBeDefined(); + expect(typeof config.id).toBe('string'); + expect(config.id.length).toBeGreaterThan(0); + + expect(config.displayName).toBeDefined(); + expect(typeof config.displayName).toBe('string'); + expect(config.displayName.length).toBeGreaterThan(0); + + expect(config.description).toBeDefined(); + expect(typeof config.description).toBe('string'); + expect(config.description.length).toBeGreaterThan(0); + + expect(config.uri).toBeDefined(); + expect(typeof config.uri).toBe('string'); + + expect(config.mimeType).toBeDefined(); + expect(typeof config.mimeType).toBe('string'); + + expect(config.toolPatterns).toBeDefined(); + expect(Array.isArray(config.toolPatterns)).toBe(true); + } + }); + + it('should have URIs following n8n-mcp://ui/{id} pattern', () => { + for (const config of UI_APP_CONFIGS) { + expect(config.uri).toBe(`n8n-mcp://ui/${config.id}`); + } + }); + + it('should have unique IDs', () => { + const ids = UI_APP_CONFIGS.map(c => c.id); + const uniqueIds = new Set(ids); + expect(uniqueIds.size).toBe(ids.length); + }); + + it('should have non-empty toolPatterns arrays', () => { + for (const config of UI_APP_CONFIGS) { + expect(config.toolPatterns.length).toBeGreaterThan(0); + for (const pattern of config.toolPatterns) { + expect(typeof pattern).toBe('string'); + expect(pattern.length).toBeGreaterThan(0); + } + } + }); + + it('should not have duplicate tool patterns across configs', () => { + const allPatterns: string[] = []; + for (const config of UI_APP_CONFIGS) { + allPatterns.push(...config.toolPatterns); + } + const uniquePatterns = new Set(allPatterns); + expect(uniquePatterns.size).toBe(allPatterns.length); + }); + + it('should not have duplicate tool patterns within a single config', () => { + for (const config of UI_APP_CONFIGS) { + const unique = new Set(config.toolPatterns); + expect(unique.size).toBe(config.toolPatterns.length); + } + }); + + it('should have consistent mimeType of text/html', () => { + for (const config of UI_APP_CONFIGS) { + expect(config.mimeType).toBe('text/html'); + } + }); + + it('should have URIs that start with the n8n-mcp://ui/ scheme', () => { + for (const config of UI_APP_CONFIGS) { + expect(config.uri).toMatch(/^n8n-mcp:\/\/ui\//); + } + }); + + // Regression: verify expected configs are present + it('should contain the operation-result config', () => { + const config = UI_APP_CONFIGS.find(c => c.id === 'operation-result'); + expect(config).toBeDefined(); + expect(config!.displayName).toBe('Operation Result'); + expect(config!.toolPatterns).toContain('n8n_create_workflow'); + expect(config!.toolPatterns).toContain('n8n_update_full_workflow'); + expect(config!.toolPatterns).toContain('n8n_delete_workflow'); + expect(config!.toolPatterns).toContain('n8n_test_workflow'); + expect(config!.toolPatterns).toContain('n8n_deploy_template'); + }); + + it('should contain the validation-summary config', () => { + const config = UI_APP_CONFIGS.find(c => c.id === 'validation-summary'); + expect(config).toBeDefined(); + expect(config!.displayName).toBe('Validation Summary'); + expect(config!.toolPatterns).toContain('validate_node'); + expect(config!.toolPatterns).toContain('validate_workflow'); + expect(config!.toolPatterns).toContain('n8n_validate_workflow'); + }); + + it('should have exactly 2 configs', () => { + expect(UI_APP_CONFIGS.length).toBe(2); + }); + + it('should have IDs that are valid URI path segments (no spaces or special chars)', () => { + for (const config of UI_APP_CONFIGS) { + expect(config.id).toMatch(/^[a-z0-9-]+$/); + } + }); +}); diff --git a/tests/unit/mcp/ui/meta-injection.test.ts b/tests/unit/mcp/ui/meta-injection.test.ts new file mode 100644 index 0000000..ea7da96 --- /dev/null +++ b/tests/unit/mcp/ui/meta-injection.test.ts @@ -0,0 +1,214 @@ +import { describe, it, expect, vi, beforeEach } from 'vitest'; +import { UIAppRegistry } from '@/mcp/ui/registry'; + +vi.mock('fs', () => ({ + existsSync: vi.fn(), + readFileSync: vi.fn(), +})); + +import { existsSync, readFileSync } from 'fs'; + +const mockExistsSync = vi.mocked(existsSync); +const mockReadFileSync = vi.mocked(readFileSync); + +describe('UI Meta Injection Logic', () => { + beforeEach(() => { + vi.clearAllMocks(); + UIAppRegistry.reset(); + }); + + describe('when HTML is loaded', () => { + beforeEach(() => { + mockExistsSync.mockReturnValue(true); + mockReadFileSync.mockReturnValue('ui content'); + UIAppRegistry.load(); + }); + + it('should add _meta.ui for matching tools', () => { + const uiApp = UIAppRegistry.getAppForTool('n8n_create_workflow'); + expect(uiApp).not.toBeNull(); + expect(uiApp!.html).not.toBeNull(); + + // Simulate the injection logic from server.ts + const mcpResponse: any = { + content: [{ type: 'text', text: 'result' }], + }; + + if (uiApp && uiApp.html) { + mcpResponse._meta = { ui: { app: uiApp.config.uri } }; + } + + expect(mcpResponse._meta).toBeDefined(); + expect(mcpResponse._meta.ui.app).toBe('n8n-mcp://ui/operation-result'); + }); + + it('should add _meta.ui for validation tools', () => { + const uiApp = UIAppRegistry.getAppForTool('validate_workflow'); + expect(uiApp).not.toBeNull(); + + const mcpResponse: any = { + content: [{ type: 'text', text: 'validation result' }], + }; + + if (uiApp && uiApp.html) { + mcpResponse._meta = { ui: { app: uiApp.config.uri } }; + } + + expect(mcpResponse._meta).toBeDefined(); + expect(mcpResponse._meta.ui.app).toBe('n8n-mcp://ui/validation-summary'); + }); + + it('should NOT add _meta.ui for non-matching tools', () => { + const uiApp = UIAppRegistry.getAppForTool('get_node_info'); + expect(uiApp).toBeNull(); + + const mcpResponse: any = { + content: [{ type: 'text', text: 'node info' }], + }; + + if (uiApp && uiApp.html) { + mcpResponse._meta = { ui: { app: uiApp.config.uri } }; + } + + expect(mcpResponse._meta).toBeUndefined(); + }); + + it('should produce _meta with exact shape { ui: { app: string } }', () => { + const uiApp = UIAppRegistry.getAppForTool('n8n_create_workflow')!; + const meta = { ui: { app: uiApp.config.uri } }; + + expect(meta).toEqual({ + ui: { + app: 'n8n-mcp://ui/operation-result', + }, + }); + expect(Object.keys(meta)).toEqual(['ui']); + expect(Object.keys(meta.ui)).toEqual(['app']); + expect(typeof meta.ui.app).toBe('string'); + }); + + it('should produce _meta.ui.app that matches the config uri', () => { + const uiApp = UIAppRegistry.getAppForTool('validate_node')!; + const meta = { ui: { app: uiApp.config.uri } }; + expect(meta.ui.app).toBe(uiApp.config.uri); + expect(meta.ui.app).toBe('n8n-mcp://ui/validation-summary'); + }); + }); + + describe('when HTML is not loaded', () => { + beforeEach(() => { + mockExistsSync.mockReturnValue(false); + UIAppRegistry.load(); + }); + + it('should NOT add _meta.ui even for matching tools', () => { + const uiApp = UIAppRegistry.getAppForTool('n8n_create_workflow'); + expect(uiApp).not.toBeNull(); + expect(uiApp!.html).toBeNull(); + + const mcpResponse: any = { + content: [{ type: 'text', text: 'result' }], + }; + + if (uiApp && uiApp.html) { + mcpResponse._meta = { ui: { app: uiApp.config.uri } }; + } + + expect(mcpResponse._meta).toBeUndefined(); + }); + + it('should NOT add _meta.ui for validation tools without HTML', () => { + const uiApp = UIAppRegistry.getAppForTool('validate_node'); + expect(uiApp).not.toBeNull(); + expect(uiApp!.html).toBeNull(); + + const mcpResponse: any = { + content: [{ type: 'text', text: 'result' }], + }; + + if (uiApp && uiApp.html) { + mcpResponse._meta = { ui: { app: uiApp.config.uri } }; + } + + expect(mcpResponse._meta).toBeUndefined(); + }); + }); + + describe('when registry has not been loaded at all', () => { + it('should NOT add _meta because getAppForTool returns null', () => { + // Registry never loaded - reset() was called in beforeEach + const uiApp = UIAppRegistry.getAppForTool('n8n_create_workflow'); + expect(uiApp).toBeNull(); + + const mcpResponse: any = { + content: [{ type: 'text', text: 'result' }], + }; + + if (uiApp && uiApp.html) { + mcpResponse._meta = { ui: { app: uiApp.config.uri } }; + } + + expect(mcpResponse._meta).toBeUndefined(); + }); + }); + + describe('coexistence with structuredContent', () => { + beforeEach(() => { + mockExistsSync.mockReturnValue(true); + mockReadFileSync.mockReturnValue('ui'); + UIAppRegistry.load(); + }); + + it('should coexist with structuredContent on the response', () => { + const uiApp = UIAppRegistry.getAppForTool('n8n_create_workflow'); + + const mcpResponse: any = { + content: [{ type: 'text', text: 'result' }], + structuredContent: { workflowId: '123', status: 'created' }, + }; + + if (uiApp && uiApp.html) { + mcpResponse._meta = { ui: { app: uiApp.config.uri } }; + } + + expect(mcpResponse.structuredContent).toBeDefined(); + expect(mcpResponse.structuredContent.workflowId).toBe('123'); + expect(mcpResponse._meta).toBeDefined(); + expect(mcpResponse._meta.ui.app).toBe('n8n-mcp://ui/operation-result'); + }); + + it('should not overwrite existing _meta properties when merging', () => { + const uiApp = UIAppRegistry.getAppForTool('n8n_create_workflow'); + + const mcpResponse: any = { + content: [{ type: 'text', text: 'result' }], + _meta: { existingProp: 'value' }, + }; + + if (uiApp && uiApp.html) { + mcpResponse._meta = { ...mcpResponse._meta, ui: { app: uiApp.config.uri } }; + } + + expect(mcpResponse._meta.existingProp).toBe('value'); + expect(mcpResponse._meta.ui.app).toBe('n8n-mcp://ui/operation-result'); + }); + + it('should work with responses that have both structuredContent and existing _meta', () => { + const uiApp = UIAppRegistry.getAppForTool('validate_workflow'); + + const mcpResponse: any = { + content: [{ type: 'text', text: 'validation ok' }], + structuredContent: { valid: true, errors: [] }, + _meta: { timing: 42 }, + }; + + if (uiApp && uiApp.html) { + mcpResponse._meta = { ...mcpResponse._meta, ui: { app: uiApp.config.uri } }; + } + + expect(mcpResponse.structuredContent.valid).toBe(true); + expect(mcpResponse._meta.timing).toBe(42); + expect(mcpResponse._meta.ui.app).toBe('n8n-mcp://ui/validation-summary'); + }); + }); +}); diff --git a/tests/unit/mcp/ui/registry.test.ts b/tests/unit/mcp/ui/registry.test.ts new file mode 100644 index 0000000..a448261 --- /dev/null +++ b/tests/unit/mcp/ui/registry.test.ts @@ -0,0 +1,305 @@ +import { describe, it, expect, vi, beforeEach } from 'vitest'; +import { UIAppRegistry } from '@/mcp/ui/registry'; +import { UI_APP_CONFIGS } from '@/mcp/ui/app-configs'; + +vi.mock('fs', () => ({ + existsSync: vi.fn(), + readFileSync: vi.fn(), +})); + +import { existsSync, readFileSync } from 'fs'; + +const mockExistsSync = vi.mocked(existsSync); +const mockReadFileSync = vi.mocked(readFileSync); + +describe('UIAppRegistry', () => { + beforeEach(() => { + vi.clearAllMocks(); + UIAppRegistry.reset(); + }); + + describe('load()', () => { + it('should load HTML files when dist directory exists', () => { + mockExistsSync.mockReturnValue(true); + mockReadFileSync.mockReturnValue('test'); + + UIAppRegistry.load(); + + const apps = UIAppRegistry.getAllApps(); + expect(apps.length).toBe(UI_APP_CONFIGS.length); + for (const app of apps) { + expect(app.html).toBe('test'); + } + }); + + it('should handle missing dist directory gracefully', () => { + mockExistsSync.mockReturnValue(false); + + UIAppRegistry.load(); + + const apps = UIAppRegistry.getAllApps(); + expect(apps.length).toBe(UI_APP_CONFIGS.length); + for (const app of apps) { + expect(app.html).toBeNull(); + } + }); + + it('should handle read errors gracefully', () => { + mockExistsSync.mockReturnValue(true); + mockReadFileSync.mockImplementation(() => { + throw new Error('Permission denied'); + }); + + UIAppRegistry.load(); + + const apps = UIAppRegistry.getAllApps(); + expect(apps.length).toBe(UI_APP_CONFIGS.length); + for (const app of apps) { + expect(app.html).toBeNull(); + } + }); + + it('should set loaded flag so getters work', () => { + expect(UIAppRegistry.getAllApps()).toEqual([]); + expect(UIAppRegistry.getAppById('operation-result')).toBeNull(); + expect(UIAppRegistry.getAppForTool('n8n_create_workflow')).toBeNull(); + + mockExistsSync.mockReturnValue(false); + UIAppRegistry.load(); + + expect(UIAppRegistry.getAllApps().length).toBeGreaterThan(0); + }); + + it('should replace previous entries when called twice', () => { + // First load: files exist + mockExistsSync.mockReturnValue(true); + mockReadFileSync.mockReturnValue('first'); + UIAppRegistry.load(); + + expect(UIAppRegistry.getAppById('operation-result')!.html).toBe('first'); + + // Second load: files missing + mockExistsSync.mockReturnValue(false); + UIAppRegistry.load(); + + expect(UIAppRegistry.getAppById('operation-result')!.html).toBeNull(); + }); + + it('should handle empty HTML file content', () => { + mockExistsSync.mockReturnValue(true); + mockReadFileSync.mockReturnValue(''); + + UIAppRegistry.load(); + + const app = UIAppRegistry.getAppById('operation-result'); + expect(app).not.toBeNull(); + // Empty string is still a string, not null + expect(app!.html).toBe(''); + }); + + it('should build the correct number of tool index entries', () => { + mockExistsSync.mockReturnValue(true); + mockReadFileSync.mockReturnValue('app'); + UIAppRegistry.load(); + + // Every tool pattern from every config should be resolvable + for (const config of UI_APP_CONFIGS) { + for (const pattern of config.toolPatterns) { + const entry = UIAppRegistry.getAppForTool(pattern); + expect(entry).not.toBeNull(); + expect(entry!.config.id).toBe(config.id); + } + } + }); + + it('should call existsSync for each config', () => { + mockExistsSync.mockReturnValue(false); + UIAppRegistry.load(); + + expect(mockExistsSync).toHaveBeenCalledTimes(UI_APP_CONFIGS.length); + }); + + it('should only call readFileSync when existsSync returns true', () => { + mockExistsSync.mockReturnValue(false); + UIAppRegistry.load(); + + expect(mockReadFileSync).not.toHaveBeenCalled(); + }); + }); + + describe('getAppForTool()', () => { + it('should return null before load() is called', () => { + const entry = UIAppRegistry.getAppForTool('n8n_create_workflow'); + expect(entry).toBeNull(); + }); + + describe('after loading', () => { + beforeEach(() => { + mockExistsSync.mockReturnValue(true); + mockReadFileSync.mockReturnValue('loaded'); + UIAppRegistry.load(); + }); + + it('should return correct entry for known tool patterns', () => { + const entry = UIAppRegistry.getAppForTool('n8n_create_workflow'); + expect(entry).not.toBeNull(); + expect(entry!.config.id).toBe('operation-result'); + }); + + it('should return correct entry for validation tools', () => { + const entry = UIAppRegistry.getAppForTool('validate_node'); + expect(entry).not.toBeNull(); + expect(entry!.config.id).toBe('validation-summary'); + }); + + it('should return null for unknown tools', () => { + const entry = UIAppRegistry.getAppForTool('unknown_tool'); + expect(entry).toBeNull(); + }); + + it('should return null for empty string tool name', () => { + const entry = UIAppRegistry.getAppForTool(''); + expect(entry).toBeNull(); + }); + + // Regression: verify specific tools ARE mapped so config changes break the test + it('should map n8n_create_workflow to operation-result', () => { + expect(UIAppRegistry.getAppForTool('n8n_create_workflow')!.config.id).toBe('operation-result'); + }); + + it('should map n8n_update_full_workflow to operation-result', () => { + expect(UIAppRegistry.getAppForTool('n8n_update_full_workflow')!.config.id).toBe('operation-result'); + }); + + it('should map n8n_update_partial_workflow to operation-result', () => { + expect(UIAppRegistry.getAppForTool('n8n_update_partial_workflow')!.config.id).toBe('operation-result'); + }); + + it('should map n8n_delete_workflow to operation-result', () => { + expect(UIAppRegistry.getAppForTool('n8n_delete_workflow')!.config.id).toBe('operation-result'); + }); + + it('should map n8n_test_workflow to operation-result', () => { + expect(UIAppRegistry.getAppForTool('n8n_test_workflow')!.config.id).toBe('operation-result'); + }); + + it('should map n8n_autofix_workflow to operation-result', () => { + expect(UIAppRegistry.getAppForTool('n8n_autofix_workflow')!.config.id).toBe('operation-result'); + }); + + it('should map n8n_deploy_template to operation-result', () => { + expect(UIAppRegistry.getAppForTool('n8n_deploy_template')!.config.id).toBe('operation-result'); + }); + + it('should map validate_node to validation-summary', () => { + expect(UIAppRegistry.getAppForTool('validate_node')!.config.id).toBe('validation-summary'); + }); + + it('should map validate_workflow to validation-summary', () => { + expect(UIAppRegistry.getAppForTool('validate_workflow')!.config.id).toBe('validation-summary'); + }); + + it('should map n8n_validate_workflow to validation-summary', () => { + expect(UIAppRegistry.getAppForTool('n8n_validate_workflow')!.config.id).toBe('validation-summary'); + }); + }); + }); + + describe('getAppById()', () => { + it('should return null before load() is called', () => { + const entry = UIAppRegistry.getAppById('operation-result'); + expect(entry).toBeNull(); + }); + + describe('after loading', () => { + beforeEach(() => { + mockExistsSync.mockReturnValue(true); + mockReadFileSync.mockReturnValue('app'); + UIAppRegistry.load(); + }); + + it('should return correct entry for operation-result', () => { + const entry = UIAppRegistry.getAppById('operation-result'); + expect(entry).not.toBeNull(); + expect(entry!.config.displayName).toBe('Operation Result'); + expect(entry!.html).toBe('app'); + }); + + it('should return correct entry for validation-summary', () => { + const entry = UIAppRegistry.getAppById('validation-summary'); + expect(entry).not.toBeNull(); + expect(entry!.config.displayName).toBe('Validation Summary'); + }); + + it('should return null for unknown id', () => { + const entry = UIAppRegistry.getAppById('nonexistent'); + expect(entry).toBeNull(); + }); + + it('should return null for empty string id', () => { + const entry = UIAppRegistry.getAppById(''); + expect(entry).toBeNull(); + }); + }); + }); + + describe('getAllApps()', () => { + it('should return empty array before load() is called', () => { + const apps = UIAppRegistry.getAllApps(); + expect(apps).toEqual([]); + }); + + it('should return all entries after load', () => { + mockExistsSync.mockReturnValue(false); + UIAppRegistry.load(); + + const apps = UIAppRegistry.getAllApps(); + expect(apps.length).toBe(UI_APP_CONFIGS.length); + expect(apps.map(a => a.config.id)).toContain('operation-result'); + expect(apps.map(a => a.config.id)).toContain('validation-summary'); + }); + + it('should include entries with null html when dist is missing', () => { + mockExistsSync.mockReturnValue(false); + UIAppRegistry.load(); + + const apps = UIAppRegistry.getAllApps(); + for (const app of apps) { + expect(app.html).toBeNull(); + } + // Entries are still present even with null html + expect(apps.length).toBe(UI_APP_CONFIGS.length); + }); + + it('should return entries with full config objects', () => { + mockExistsSync.mockReturnValue(false); + UIAppRegistry.load(); + + for (const app of UIAppRegistry.getAllApps()) { + expect(app.config).toBeDefined(); + expect(app.config.id).toBeDefined(); + expect(app.config.displayName).toBeDefined(); + expect(app.config.uri).toBeDefined(); + expect(app.config.mimeType).toBeDefined(); + expect(app.config.toolPatterns).toBeDefined(); + expect(app.config.description).toBeDefined(); + } + }); + }); + + describe('reset()', () => { + it('should clear loaded state so getters return defaults', () => { + mockExistsSync.mockReturnValue(true); + mockReadFileSync.mockReturnValue('x'); + UIAppRegistry.load(); + + expect(UIAppRegistry.getAllApps().length).toBeGreaterThan(0); + + UIAppRegistry.reset(); + + expect(UIAppRegistry.getAllApps()).toEqual([]); + expect(UIAppRegistry.getAppById('operation-result')).toBeNull(); + expect(UIAppRegistry.getAppForTool('n8n_create_workflow')).toBeNull(); + }); + }); +}); diff --git a/ui-apps/package-lock.json b/ui-apps/package-lock.json new file mode 100644 index 0000000..15fc150 --- /dev/null +++ b/ui-apps/package-lock.json @@ -0,0 +1,1911 @@ +{ + "name": "n8n-mcp-ui-apps", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "n8n-mcp-ui-apps", + "version": "1.0.0", + "dependencies": { + "react": "^19.0.0", + "react-dom": "^19.0.0" + }, + "devDependencies": { + "@types/react": "^19.0.0", + "@types/react-dom": "^19.0.0", + "@vitejs/plugin-react": "^4.3.0", + "typescript": "^5.8.0", + "vite": "^6.0.0", + "vite-plugin-singlefile": "^2.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.28.5", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.29.0.tgz", + "integrity": "sha512-T1NCJqT/j9+cn8fvkt7jtwbLBfLC/1y1c7NtCeXFRgzGTsafi68MRv8yzkYSapBnFA6L3U2VSc02ciDzoAJhJg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.29.0.tgz", + "integrity": "sha512-CGOfOJqWjg2qW/Mb6zNsDm+u5vFQ8DxXfbM09z69p5Z6+mE1ikP2jUXw+j42Pf1XTYED2Rni5f95npYeuwMDQA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-compilation-targets": "^7.28.6", + "@babel/helper-module-transforms": "^7.28.6", + "@babel/helpers": "^7.28.6", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/traverse": "^7.29.0", + "@babel/types": "^7.29.0", + "@jridgewell/remapping": "^2.3.5", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.29.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", + "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.29.0", + "@babel/types": "^7.29.0", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.28.6.tgz", + "integrity": "sha512-JYtls3hqi15fcx5GaSNL7SCTJ2MNmjrkHXg4FSpOA/grxK8KwyZ5bubHsCq8FXCkua6xhuaaBit+3b7+VZRfcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.28.6", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", + "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/traverse": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", + "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-imports": "^7.28.6", + "@babel/helper-validator-identifier": "^7.28.5", + "@babel/traverse": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz", + "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.6.tgz", + "integrity": "sha512-xOBvwq86HHdB7WUDTfKfT/Vuxh7gElQ+Sfti2Cy6yIWNW05P8iUslOVcZ4/sKbE+/jQaukQAdz/gf3724kYdqw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/template": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.0.tgz", + "integrity": "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.29.0" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.27.1.tgz", + "integrity": "sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.27.1.tgz", + "integrity": "sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.28.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", + "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.28.6", + "@babel/parser": "^7.28.6", + "@babel/types": "^7.28.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", + "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.29.0", + "@babel/generator": "^7.29.0", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.29.0", + "@babel/template": "^7.28.6", + "@babel/types": "^7.29.0", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", + "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.12.tgz", + "integrity": "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.12.tgz", + "integrity": "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.12.tgz", + "integrity": "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.12.tgz", + "integrity": "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.12.tgz", + "integrity": "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.12.tgz", + "integrity": "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.12.tgz", + "integrity": "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.12.tgz", + "integrity": "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.12.tgz", + "integrity": "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.12.tgz", + "integrity": "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.12.tgz", + "integrity": "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.12.tgz", + "integrity": "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.12.tgz", + "integrity": "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.12.tgz", + "integrity": "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.12.tgz", + "integrity": "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.12.tgz", + "integrity": "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.12.tgz", + "integrity": "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.12.tgz", + "integrity": "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.12.tgz", + "integrity": "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.12.tgz", + "integrity": "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.12.tgz", + "integrity": "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.12.tgz", + "integrity": "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.12.tgz", + "integrity": "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.12.tgz", + "integrity": "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.12.tgz", + "integrity": "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.12.tgz", + "integrity": "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.13", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, + "license": "MIT" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz", + "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.57.1.tgz", + "integrity": "sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.57.1.tgz", + "integrity": "sha512-dQaAddCY9YgkFHZcFNS/606Exo8vcLHwArFZ7vxXq4rigo2bb494/xKMMwRRQW6ug7Js6yXmBZhSBRuBvCCQ3w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.57.1.tgz", + "integrity": "sha512-crNPrwJOrRxagUYeMn/DZwqN88SDmwaJ8Cvi/TN1HnWBU7GwknckyosC2gd0IqYRsHDEnXf328o9/HC6OkPgOg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.57.1.tgz", + "integrity": "sha512-Ji8g8ChVbKrhFtig5QBV7iMaJrGtpHelkB3lsaKzadFBe58gmjfGXAOfI5FV0lYMH8wiqsxKQ1C9B0YTRXVy4w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.57.1.tgz", + "integrity": "sha512-R+/WwhsjmwodAcz65guCGFRkMb4gKWTcIeLy60JJQbXrJ97BOXHxnkPFrP+YwFlaS0m+uWJTstrUA9o+UchFug==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.57.1.tgz", + "integrity": "sha512-IEQTCHeiTOnAUC3IDQdzRAGj3jOAYNr9kBguI7MQAAZK3caezRrg0GxAb6Hchg4lxdZEI5Oq3iov/w/hnFWY9Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.57.1.tgz", + "integrity": "sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.57.1.tgz", + "integrity": "sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.57.1.tgz", + "integrity": "sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.57.1.tgz", + "integrity": "sha512-1a/qhaaOXhqXGpMFMET9VqwZakkljWHLmZOX48R0I/YLbhdxr1m4gtG1Hq7++VhVUmf+L3sTAf9op4JlhQ5u1Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.57.1.tgz", + "integrity": "sha512-QWO6RQTZ/cqYtJMtxhkRkidoNGXc7ERPbZN7dVW5SdURuLeVU7lwKMpo18XdcmpWYd0qsP1bwKPf7DNSUinhvA==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-musl": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.57.1.tgz", + "integrity": "sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.57.1.tgz", + "integrity": "sha512-4BrCgrpZo4hvzMDKRqEaW1zeecScDCR+2nZ86ATLhAoJ5FQ+lbHVD3ttKe74/c7tNT9c6F2viwB3ufwp01Oh2w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-musl": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.57.1.tgz", + "integrity": "sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.57.1.tgz", + "integrity": "sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.57.1.tgz", + "integrity": "sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.57.1.tgz", + "integrity": "sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.57.1.tgz", + "integrity": "sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.57.1.tgz", + "integrity": "sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openbsd-x64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.57.1.tgz", + "integrity": "sha512-H+hXEv9gdVQuDTgnqD+SQffoWoc0Of59AStSzTEj/feWTBAnSfSD3+Dql1ZruJQxmykT/JVY0dE8Ka7z0DH1hw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.57.1.tgz", + "integrity": "sha512-4wYoDpNg6o/oPximyc/NG+mYUejZrCU2q+2w6YZqrAs2UcNUChIZXjtafAiiZSUc7On8v5NyNj34Kzj/Ltk6dQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.57.1.tgz", + "integrity": "sha512-O54mtsV/6LW3P8qdTcamQmuC990HDfR71lo44oZMZlXU4tzLrbvTii87Ni9opq60ds0YzuAlEr/GNwuNluZyMQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.57.1.tgz", + "integrity": "sha512-P3dLS+IerxCT/7D2q2FYcRdWRl22dNbrbBEtxdWhXrfIMPP9lQhb5h4Du04mdl5Woq05jVCDPCMF7Ub0NAjIew==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.57.1.tgz", + "integrity": "sha512-VMBH2eOOaKGtIJYleXsi2B8CPVADrh+TyNxJ4mWPnKfLB/DBUmzW+5m1xUrcwWoMfSLagIRpjUFeW5CO5hyciQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.57.1.tgz", + "integrity": "sha512-mxRFDdHIWRxg3UfIIAwCm6NzvxG0jDX/wBN6KsQFTvKFqqg9vTrWUE68qEjHt19A5wwx5X5aUi2zuZT7YR0jrA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.2" + } + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/react": { + "version": "19.2.13", + "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.13.tgz", + "integrity": "sha512-KkiJeU6VbYbUOp5ITMIc7kBfqlYkKA5KhEHVrGMmUUMt7NeaZg65ojdPk+FtNrBAOXNVM5QM72jnADjM+XVRAQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "csstype": "^3.2.2" + } + }, + "node_modules/@types/react-dom": { + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.2.3.tgz", + "integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@types/react": "^19.2.0" + } + }, + "node_modules/@vitejs/plugin-react": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-4.7.0.tgz", + "integrity": "sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.28.0", + "@babel/plugin-transform-react-jsx-self": "^7.27.1", + "@babel/plugin-transform-react-jsx-source": "^7.27.1", + "@rolldown/pluginutils": "1.0.0-beta.27", + "@types/babel__core": "^7.20.5", + "react-refresh": "^0.17.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0" + } + }, + "node_modules/baseline-browser-mapping": { + "version": "2.9.19", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.19.tgz", + "integrity": "sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "baseline-browser-mapping": "^2.9.0", + "caniuse-lite": "^1.0.30001759", + "electron-to-chromium": "^1.5.263", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.2.0" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001769", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001769.tgz", + "integrity": "sha512-BCfFL1sHijQlBGWBMuJyhZUhzo7wer5sVj9hqekB/7xn0Ypy+pER/edCYQm4exbXj4WiySGp40P8UuTh6w1srg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/electron-to-chromium": { + "version": "1.5.286", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.286.tgz", + "integrity": "sha512-9tfDXhJ4RKFNerfjdCcZfufu49vg620741MNs26a9+bhLThdB+plgMeou98CAaHu/WATj2iHOOHTp1hWtABj2A==", + "dev": true, + "license": "ISC" + }, + "node_modules/esbuild": { + "version": "0.25.12", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.12.tgz", + "integrity": "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.12", + "@esbuild/android-arm": "0.25.12", + "@esbuild/android-arm64": "0.25.12", + "@esbuild/android-x64": "0.25.12", + "@esbuild/darwin-arm64": "0.25.12", + "@esbuild/darwin-x64": "0.25.12", + "@esbuild/freebsd-arm64": "0.25.12", + "@esbuild/freebsd-x64": "0.25.12", + "@esbuild/linux-arm": "0.25.12", + "@esbuild/linux-arm64": "0.25.12", + "@esbuild/linux-ia32": "0.25.12", + "@esbuild/linux-loong64": "0.25.12", + "@esbuild/linux-mips64el": "0.25.12", + "@esbuild/linux-ppc64": "0.25.12", + "@esbuild/linux-riscv64": "0.25.12", + "@esbuild/linux-s390x": "0.25.12", + "@esbuild/linux-x64": "0.25.12", + "@esbuild/netbsd-arm64": "0.25.12", + "@esbuild/netbsd-x64": "0.25.12", + "@esbuild/openbsd-arm64": "0.25.12", + "@esbuild/openbsd-x64": "0.25.12", + "@esbuild/openharmony-arm64": "0.25.12", + "@esbuild/sunos-x64": "0.25.12", + "@esbuild/win32-arm64": "0.25.12", + "@esbuild/win32-ia32": "0.25.12", + "@esbuild/win32-x64": "0.25.12" + } + }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "license": "ISC", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/micromatch/node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-releases": { + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/react": { + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.4.tgz", + "integrity": "sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "19.2.4", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.4.tgz", + "integrity": "sha512-AXJdLo8kgMbimY95O2aKQqsz2iWi9jMgKJhRBAxECE4IFxfcazB2LmzloIoibJI3C12IlY20+KFaLv+71bUJeQ==", + "license": "MIT", + "dependencies": { + "scheduler": "^0.27.0" + }, + "peerDependencies": { + "react": "^19.2.4" + } + }, + "node_modules/react-refresh": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.17.0.tgz", + "integrity": "sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rollup": { + "version": "4.57.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.57.1.tgz", + "integrity": "sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.57.1", + "@rollup/rollup-android-arm64": "4.57.1", + "@rollup/rollup-darwin-arm64": "4.57.1", + "@rollup/rollup-darwin-x64": "4.57.1", + "@rollup/rollup-freebsd-arm64": "4.57.1", + "@rollup/rollup-freebsd-x64": "4.57.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.57.1", + "@rollup/rollup-linux-arm-musleabihf": "4.57.1", + "@rollup/rollup-linux-arm64-gnu": "4.57.1", + "@rollup/rollup-linux-arm64-musl": "4.57.1", + "@rollup/rollup-linux-loong64-gnu": "4.57.1", + "@rollup/rollup-linux-loong64-musl": "4.57.1", + "@rollup/rollup-linux-ppc64-gnu": "4.57.1", + "@rollup/rollup-linux-ppc64-musl": "4.57.1", + "@rollup/rollup-linux-riscv64-gnu": "4.57.1", + "@rollup/rollup-linux-riscv64-musl": "4.57.1", + "@rollup/rollup-linux-s390x-gnu": "4.57.1", + "@rollup/rollup-linux-x64-gnu": "4.57.1", + "@rollup/rollup-linux-x64-musl": "4.57.1", + "@rollup/rollup-openbsd-x64": "4.57.1", + "@rollup/rollup-openharmony-arm64": "4.57.1", + "@rollup/rollup-win32-arm64-msvc": "4.57.1", + "@rollup/rollup-win32-ia32-msvc": "4.57.1", + "@rollup/rollup-win32-x64-gnu": "4.57.1", + "@rollup/rollup-win32-x64-msvc": "4.57.1", + "fsevents": "~2.3.2" + } + }, + "node_modules/scheduler": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/typescript": { + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "escalade": "^3.2.0", + "picocolors": "^1.1.1" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/vite": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.4.1.tgz", + "integrity": "sha512-+Oxm7q9hDoLMyJOYfUYBuHQo+dkAloi33apOPP56pzj+vsdJDzr+j1NISE5pyaAuKL4A3UD34qd0lx5+kfKp2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.25.0", + "fdir": "^6.4.4", + "picomatch": "^4.0.2", + "postcss": "^8.5.3", + "rollup": "^4.34.9", + "tinyglobby": "^0.2.13" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vite-plugin-singlefile": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/vite-plugin-singlefile/-/vite-plugin-singlefile-2.3.0.tgz", + "integrity": "sha512-DAcHzYypM0CasNLSz/WG0VdKOCxGHErfrjOoyIPiNxTPTGmO6rRD/te93n1YL/s+miXq66ipF1brMBikf99c6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">18.0.0" + }, + "peerDependencies": { + "rollup": "^4.44.1", + "vite": "^5.4.11 || ^6.0.0 || ^7.0.0" + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true, + "license": "ISC" + } + } +} diff --git a/ui-apps/package.json b/ui-apps/package.json new file mode 100644 index 0000000..92f61f9 --- /dev/null +++ b/ui-apps/package.json @@ -0,0 +1,25 @@ +{ + "name": "n8n-mcp-ui-apps", + "version": "1.0.0", + "private": true, + "type": "module", + "scripts": { + "dev": "vite", + "build": "APP_NAME=operation-result vite build && APP_NAME=validation-summary vite build", + "build:operation-result": "APP_NAME=operation-result vite build", + "build:validation-summary": "APP_NAME=validation-summary vite build", + "preview": "vite preview" + }, + "dependencies": { + "react": "^19.0.0", + "react-dom": "^19.0.0" + }, + "devDependencies": { + "@types/react": "^19.0.0", + "@types/react-dom": "^19.0.0", + "@vitejs/plugin-react": "^4.3.0", + "typescript": "^5.8.0", + "vite": "^6.0.0", + "vite-plugin-singlefile": "^2.0.0" + } +} diff --git a/ui-apps/src/apps/operation-result/App.tsx b/ui-apps/src/apps/operation-result/App.tsx new file mode 100644 index 0000000..37cba97 --- /dev/null +++ b/ui-apps/src/apps/operation-result/App.tsx @@ -0,0 +1,84 @@ +import React from 'react'; +import '@shared/styles/theme.css'; +import { Card, Badge, Expandable } from '@shared/components'; +import { useToolData } from '@shared/hooks/useToolData'; +import type { OperationResultData } from '@shared/types'; + +export default function App() { + const data = useToolData(); + + if (!data) { + return
Loading...
; + } + + const isSuccess = data.status === 'success'; + + return ( +
+
+ + {isSuccess ? 'Success' : 'Error'} + +

{data.operation}

+
+ + +
+ {data.workflowName &&
Name: {data.workflowName}
} + {data.workflowId &&
ID: {data.workflowId}
} + {data.timestamp && ( +
+ {data.timestamp} +
+ )} +
+
+ + {data.message && ( + +
{data.message}
+
+ )} + + {data.changes && ( + <> + {data.changes.nodesAdded && data.changes.nodesAdded.length > 0 && ( + +
    + {data.changes.nodesAdded.map((node, i) => ( +
  • + + {node} +
  • + ))} +
+
+ )} + + {data.changes.nodesModified && data.changes.nodesModified.length > 0 && ( + +
    + {data.changes.nodesModified.map((node, i) => ( +
  • + ~ {node} +
  • + ))} +
+
+ )} + + {data.changes.nodesRemoved && data.changes.nodesRemoved.length > 0 && ( + +
    + {data.changes.nodesRemoved.map((node, i) => ( +
  • + - {node} +
  • + ))} +
+
+ )} + + )} +
+ ); +} diff --git a/ui-apps/src/apps/operation-result/index.html b/ui-apps/src/apps/operation-result/index.html new file mode 100644 index 0000000..13abfb6 --- /dev/null +++ b/ui-apps/src/apps/operation-result/index.html @@ -0,0 +1,12 @@ + + + + + + Operation Result + + +
+ + + diff --git a/ui-apps/src/apps/operation-result/main.tsx b/ui-apps/src/apps/operation-result/main.tsx new file mode 100644 index 0000000..2fc8d40 --- /dev/null +++ b/ui-apps/src/apps/operation-result/main.tsx @@ -0,0 +1,8 @@ +import React from 'react'; +import { createRoot } from 'react-dom/client'; +import App from './App'; + +const root = document.getElementById('root'); +if (root) { + createRoot(root).render(); +} diff --git a/ui-apps/src/apps/validation-summary/App.tsx b/ui-apps/src/apps/validation-summary/App.tsx new file mode 100644 index 0000000..05b88ab --- /dev/null +++ b/ui-apps/src/apps/validation-summary/App.tsx @@ -0,0 +1,88 @@ +import React from 'react'; +import '@shared/styles/theme.css'; +import { Card, Badge, Expandable } from '@shared/components'; +import { useToolData } from '@shared/hooks/useToolData'; +import type { ValidationSummaryData } from '@shared/types'; + +export default function App() { + const data = useToolData(); + + if (!data) { + return
Loading...
; + } + + return ( +
+
+ + {data.valid ? 'Valid' : 'Invalid'} + + {data.displayName && ( + {data.displayName} + )} +
+ + +
+
+ {data.errorCount} errors +
+
+ {data.warningCount} warnings +
+
+
+ + {data.errors.length > 0 && ( + + {data.errors.map((err, i) => ( +
+
{err.type}
+ {err.property &&
Property: {err.property}
} +
{err.message}
+ {err.fix && ( +
Fix: {err.fix}
+ )} +
+ ))} +
+ )} + + {data.warnings.length > 0 && ( + + {data.warnings.map((warn, i) => ( +
+
{warn.type}
+ {warn.property &&
Property: {warn.property}
} +
{warn.message}
+
+ ))} +
+ )} + + {data.suggestions && data.suggestions.length > 0 && ( + +
    + {data.suggestions.map((suggestion, i) => ( +
  • {suggestion}
  • + ))} +
+
+ )} +
+ ); +} diff --git a/ui-apps/src/apps/validation-summary/index.html b/ui-apps/src/apps/validation-summary/index.html new file mode 100644 index 0000000..99c1b90 --- /dev/null +++ b/ui-apps/src/apps/validation-summary/index.html @@ -0,0 +1,12 @@ + + + + + + Validation Summary + + +
+ + + diff --git a/ui-apps/src/apps/validation-summary/main.tsx b/ui-apps/src/apps/validation-summary/main.tsx new file mode 100644 index 0000000..2fc8d40 --- /dev/null +++ b/ui-apps/src/apps/validation-summary/main.tsx @@ -0,0 +1,8 @@ +import React from 'react'; +import { createRoot } from 'react-dom/client'; +import App from './App'; + +const root = document.getElementById('root'); +if (root) { + createRoot(root).render(); +} diff --git a/ui-apps/src/shared/components/Badge.tsx b/ui-apps/src/shared/components/Badge.tsx new file mode 100644 index 0000000..d2f1e92 --- /dev/null +++ b/ui-apps/src/shared/components/Badge.tsx @@ -0,0 +1,32 @@ +import React from 'react'; + +type BadgeVariant = 'success' | 'warning' | 'error' | 'info'; + +interface BadgeProps { + variant: BadgeVariant; + children: React.ReactNode; +} + +const variantStyles: Record = { + success: { bg: 'var(--n8n-success-light)', color: 'var(--n8n-success)' }, + warning: { bg: 'var(--n8n-warning-light)', color: 'var(--n8n-warning)' }, + error: { bg: 'var(--n8n-error-light)', color: 'var(--n8n-error)' }, + info: { bg: 'var(--n8n-info-light)', color: 'var(--n8n-info)' }, +}; + +export function Badge({ variant, children }: BadgeProps) { + const style = variantStyles[variant]; + return ( + + {children} + + ); +} diff --git a/ui-apps/src/shared/components/Card.tsx b/ui-apps/src/shared/components/Card.tsx new file mode 100644 index 0000000..e62017e --- /dev/null +++ b/ui-apps/src/shared/components/Card.tsx @@ -0,0 +1,25 @@ +import React from 'react'; + +interface CardProps { + title?: string; + children: React.ReactNode; +} + +export function Card({ title, children }: CardProps) { + return ( +
+ {title && ( +

+ {title} +

+ )} + {children} +
+ ); +} diff --git a/ui-apps/src/shared/components/Expandable.tsx b/ui-apps/src/shared/components/Expandable.tsx new file mode 100644 index 0000000..84c3c3e --- /dev/null +++ b/ui-apps/src/shared/components/Expandable.tsx @@ -0,0 +1,36 @@ +import React from 'react'; + +interface ExpandableProps { + title: string; + count?: number; + defaultOpen?: boolean; + children: React.ReactNode; +} + +export function Expandable({ title, count, defaultOpen = false, children }: ExpandableProps) { + return ( +
+ + {title} + {count !== undefined && ( + ({count}) + )} + +
+ {children} +
+
+ ); +} diff --git a/ui-apps/src/shared/components/index.ts b/ui-apps/src/shared/components/index.ts new file mode 100644 index 0000000..0ae1fd9 --- /dev/null +++ b/ui-apps/src/shared/components/index.ts @@ -0,0 +1,3 @@ +export { Card } from './Card'; +export { Badge } from './Badge'; +export { Expandable } from './Expandable'; diff --git a/ui-apps/src/shared/hooks/useToolData.ts b/ui-apps/src/shared/hooks/useToolData.ts new file mode 100644 index 0000000..41ab208 --- /dev/null +++ b/ui-apps/src/shared/hooks/useToolData.ts @@ -0,0 +1,31 @@ +import { useState, useEffect } from 'react'; + +declare global { + interface Window { + __MCP_DATA__?: unknown; + } +} + +export function useToolData(): T | null { + const [data, setData] = useState(null); + + useEffect(() => { + // Try window.__MCP_DATA__ first (injected by host) + if (window.__MCP_DATA__) { + setData(window.__MCP_DATA__ as T); + return; + } + + // Try embedded script tag + const scriptEl = document.getElementById('mcp-data'); + if (scriptEl?.textContent) { + try { + setData(JSON.parse(scriptEl.textContent) as T); + } catch { + // Ignore parse errors + } + } + }, []); + + return data; +} diff --git a/ui-apps/src/shared/index.ts b/ui-apps/src/shared/index.ts new file mode 100644 index 0000000..56423bc --- /dev/null +++ b/ui-apps/src/shared/index.ts @@ -0,0 +1,3 @@ +export { Card, Badge, Expandable } from './components'; +export { useToolData } from './hooks/useToolData'; +export type { OperationResultData, ValidationSummaryData, ValidationError, ValidationWarning } from './types'; diff --git a/ui-apps/src/shared/styles/theme.css b/ui-apps/src/shared/styles/theme.css new file mode 100644 index 0000000..5c3bc95 --- /dev/null +++ b/ui-apps/src/shared/styles/theme.css @@ -0,0 +1,32 @@ +:root { + --n8n-primary: #ff6d5a; + --n8n-primary-light: #ff8a7a; + --n8n-success: #17bf79; + --n8n-success-light: #e8f9f0; + --n8n-warning: #f59e0b; + --n8n-warning-light: #fef3cd; + --n8n-error: #ef4444; + --n8n-error-light: #fee2e2; + --n8n-info: #3b82f6; + --n8n-info-light: #dbeafe; + --n8n-bg: #1a1a2e; + --n8n-bg-card: #252540; + --n8n-text: #e0e0e0; + --n8n-text-muted: #9ca3af; + --n8n-border: #374151; + --n8n-radius: 8px; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; +} + +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + background: var(--n8n-bg); + color: var(--n8n-text); + line-height: 1.5; + padding: 16px; +} diff --git a/ui-apps/src/shared/types.ts b/ui-apps/src/shared/types.ts new file mode 100644 index 0000000..07e1ede --- /dev/null +++ b/ui-apps/src/shared/types.ts @@ -0,0 +1,38 @@ +export interface OperationResultData { + status: 'success' | 'error'; + operation: string; + workflowName?: string; + workflowId?: string; + timestamp?: string; + message?: string; + changes?: { + nodesAdded?: string[]; + nodesModified?: string[]; + nodesRemoved?: string[]; + }; + details?: Record; +} + +export interface ValidationError { + type: string; + property?: string; + message: string; + fix?: string; +} + +export interface ValidationWarning { + type: string; + property?: string; + message: string; +} + +export interface ValidationSummaryData { + valid: boolean; + errorCount: number; + warningCount: number; + errors: ValidationError[]; + warnings: ValidationWarning[]; + suggestions?: string[]; + nodeType?: string; + displayName?: string; +} diff --git a/ui-apps/tsconfig.json b/ui-apps/tsconfig.json new file mode 100644 index 0000000..2b9d3ea --- /dev/null +++ b/ui-apps/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "target": "ES2020", + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "moduleResolution": "bundler", + "jsx": "react-jsx", + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "baseUrl": ".", + "paths": { + "@shared/*": ["src/shared/*"] + } + }, + "include": ["src"] +} diff --git a/ui-apps/vite.config.ts b/ui-apps/vite.config.ts new file mode 100644 index 0000000..5d9dbd8 --- /dev/null +++ b/ui-apps/vite.config.ts @@ -0,0 +1,21 @@ +import { defineConfig } from 'vite'; +import react from '@vitejs/plugin-react'; +import { viteSingleFile } from 'vite-plugin-singlefile'; +import path from 'path'; + +// App name is passed via environment variable for per-app builds +const appName = process.env.APP_NAME || 'operation-result'; + +export default defineConfig({ + plugins: [react(), viteSingleFile()], + resolve: { + alias: { + '@shared': path.resolve(__dirname, 'src/shared'), + }, + }, + root: path.resolve(__dirname, 'src/apps', appName), + build: { + outDir: path.resolve(__dirname, 'dist', appName), + emptyOutDir: true, + }, +});