@supersoniks/concorde 3.3.2 → 3.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,68 +0,0 @@
1
- {
2
- "mcpServers": {
3
- "concorde": {
4
- "command": "python3",
5
- "args": ["/usr2/sites/concorde/concorde-mcp-server.py"],
6
- "env": {
7
- "PYTHONPATH": "/usr2/sites/concorde"
8
- }
9
- }
10
- },
11
- "concorde": {
12
- "description": "Serveur MCP pour le framework Concorde",
13
- "version": "1.0.0",
14
- "capabilities": [
15
- "search_component",
16
- "get_component_info",
17
- "generate_component_code",
18
- "get_form_example",
19
- "get_theme_info",
20
- "get_icons_list"
21
- ],
22
- "examples": {
23
- "search": "Recherche un composant par nom ou fonctionnalité",
24
- "generate_button": "Génère un bouton avec des propriétés spécifiques",
25
- "create_form": "Crée un formulaire complet avec validation",
26
- "theme_info": "Obtient des informations sur les thèmes disponibles",
27
- "icon_list": "Liste toutes les icônes disponibles"
28
- },
29
- "components": {
30
- "ui": [
31
- "button",
32
- "input",
33
- "select",
34
- "checkbox",
35
- "radio",
36
- "textarea",
37
- "modal",
38
- "alert",
39
- "badge",
40
- "card",
41
- "table",
42
- "icon",
43
- "image",
44
- "link",
45
- "loader",
46
- "progress",
47
- "tooltip",
48
- "pop",
49
- "divider",
50
- "group"
51
- ],
52
- "functional": [
53
- "fetch",
54
- "list",
55
- "router",
56
- "states",
57
- "submit",
58
- "subscriber",
59
- "value",
60
- "if",
61
- "sdui",
62
- "queue",
63
- "mix",
64
- "translation"
65
- ]
66
- }
67
- }
68
- }
@@ -1,74 +0,0 @@
1
- {
2
- "mcpServers": {
3
- "concorde": {
4
- "command": "node",
5
- "args": ["/usr2/sites/concorde/mcp-server/concorde-mcp-server.js"],
6
- "env": {
7
- "NODE_PATH": "/usr2/sites/concorde"
8
- }
9
- }
10
- },
11
- "concorde": {
12
- "description": "Serveur MCP pour le framework Concorde (Version Node.js)",
13
- "version": "1.0.0",
14
- "runtime": "nodejs",
15
- "capabilities": [
16
- "search_component",
17
- "get_component_info",
18
- "generate_component_code",
19
- "get_form_example",
20
- "get_theme_info",
21
- "get_icons_list"
22
- ],
23
- "examples": {
24
- "search": "Recherche un composant par nom ou fonctionnalité",
25
- "generate_button": "Génère un bouton avec des propriétés spécifiques",
26
- "create_form": "Crée un formulaire complet avec validation",
27
- "theme_info": "Obtient des informations sur les thèmes disponibles",
28
- "icon_list": "Liste toutes les icônes disponibles"
29
- },
30
- "components": {
31
- "ui": [
32
- "button",
33
- "input",
34
- "select",
35
- "checkbox",
36
- "radio",
37
- "textarea",
38
- "modal",
39
- "alert",
40
- "badge",
41
- "card",
42
- "table",
43
- "icon",
44
- "image",
45
- "link",
46
- "loader",
47
- "progress",
48
- "tooltip",
49
- "pop",
50
- "divider",
51
- "group"
52
- ],
53
- "functional": [
54
- "fetch",
55
- "list",
56
- "router",
57
- "states",
58
- "submit",
59
- "subscriber",
60
- "value",
61
- "if",
62
- "sdui",
63
- "queue",
64
- "mix",
65
- "translation"
66
- ]
67
- },
68
- "performance": {
69
- "startup_time": "~1-2 secondes",
70
- "memory_usage": "~30-50 MB",
71
- "response_time": "<50ms pour la plupart des requêtes"
72
- }
73
- }
74
- }
@@ -1,11 +0,0 @@
1
- {
2
- "mcpServers": {
3
- "concorde": {
4
- "command": "python3",
5
- "args": ["/usr2/sites/concorde/mcp-server/concorde-mcp-server.py"],
6
- "env": {
7
- "PYTHONPATH": "/usr2/sites/concorde"
8
- }
9
- }
10
- }
11
- }
@@ -1,104 +0,0 @@
1
- #!/bin/bash
2
-
3
- # Script d'installation du serveur MCP Concorde (Version Node.js)
4
- # Usage: ./install-mcp-nodejs.sh
5
-
6
- set -e
7
-
8
- echo "🚀 Installation du serveur MCP Concorde (Node.js)..."
9
-
10
- # Vérifier que Node.js est installé
11
- if ! command -v node &> /dev/null; then
12
- echo "❌ Node.js n'est pas installé. Veuillez l'installer d'abord."
13
- echo " Visitez https://nodejs.org/ pour télécharger Node.js"
14
- exit 1
15
- fi
16
-
17
- # Vérifier la version de Node.js (minimum 18.0.0)
18
- NODE_VERSION=$(node -v | cut -d'v' -f2)
19
- REQUIRED_VERSION="18.0.0"
20
-
21
- if ! node -e "
22
- const current = process.version.slice(1).split('.').map(Number);
23
- const required = '$REQUIRED_VERSION'.split('.').map(Number);
24
- if (current[0] < required[0] || (current[0] === required[0] && current[1] < required[1])) {
25
- process.exit(1);
26
- }
27
- " 2>/dev/null; then
28
- echo "❌ Node.js version $NODE_VERSION détectée. Version minimum requise: $REQUIRED_VERSION"
29
- echo " Veuillez mettre à jour Node.js"
30
- exit 1
31
- fi
32
-
33
- echo "✅ Node.js version $NODE_VERSION détectée"
34
-
35
- # Vérifier que npm est installé
36
- if ! command -v npm &> /dev/null; then
37
- echo "❌ npm n'est pas installé. Veuillez l'installer d'abord."
38
- exit 1
39
- fi
40
-
41
- # Installer les dépendances
42
- echo "📦 Installation des dépendances Node.js..."
43
- if [ -f "package-mcp.json" ]; then
44
- cp package-mcp.json package.json
45
- npm install
46
- echo "✅ Dépendances installées"
47
- else
48
- echo "❌ Fichier package-mcp.json non trouvé"
49
- exit 1
50
- fi
51
-
52
- # Rendre les scripts exécutables
53
- chmod +x concorde-mcp-server.js
54
- chmod +x test-mcp.js
55
-
56
- # Créer un lien symbolique pour faciliter l'accès
57
- if [ ! -L /usr/local/bin/concorde-mcp-nodejs ]; then
58
- echo "🔗 Création du lien symbolique..."
59
- sudo ln -sf "$(pwd)/concorde-mcp-server.js" /usr/local/bin/concorde-mcp-nodejs
60
- fi
61
-
62
- # Tester l'installation
63
- echo "🧪 Test de l'installation..."
64
- if node test-mcp.js; then
65
- echo "✅ Test réussi !"
66
- else
67
- echo "❌ Test échoué"
68
- exit 1
69
- fi
70
-
71
- # Afficher la configuration pour Cursor
72
- echo ""
73
- echo "✅ Installation terminée !"
74
- echo ""
75
- echo "📋 Configuration pour Cursor :"
76
- echo "Ajoutez ceci dans vos paramètres Cursor (settings.json) :"
77
- echo ""
78
- cat << 'EOF'
79
- {
80
- "mcpServers": {
81
- "concorde": {
82
- "command": "node",
83
- "args": ["/usr2/sites/concorde/mcp-server/concorde-mcp-server.js"],
84
- "env": {
85
- "NODE_PATH": "/usr2/sites/concorde"
86
- }
87
- }
88
- }
89
- }
90
- EOF
91
- echo ""
92
- echo "🔄 Redémarrez Cursor pour que la configuration soit prise en compte."
93
- echo ""
94
- echo "🧪 Test du serveur :"
95
- echo "Vous pouvez tester le serveur avec :"
96
- echo " node test-mcp.js"
97
- echo " concorde-mcp-nodejs --help"
98
- echo ""
99
- echo "📚 Documentation complète dans README-MCP.md"
100
- echo ""
101
- echo "🔧 Commandes disponibles :"
102
- echo " npm start - Démarrer le serveur"
103
- echo " npm test - Tester le serveur"
104
- echo " npm run dev - Démarrer en mode debug"
@@ -1,62 +0,0 @@
1
- #!/bin/bash
2
-
3
- # Script d'installation du serveur MCP Concorde
4
- # Usage: ./install-mcp.sh
5
-
6
- set -e
7
-
8
- echo "🚀 Installation du serveur MCP Concorde..."
9
-
10
- # Vérifier que Python 3 est installé
11
- if ! command -v python3 &> /dev/null; then
12
- echo "❌ Python 3 n'est pas installé. Veuillez l'installer d'abord."
13
- exit 1
14
- fi
15
-
16
- # Vérifier que pip est installé
17
- if ! command -v pip3 &> /dev/null; then
18
- echo "❌ pip3 n'est pas installé. Veuillez l'installer d'abord."
19
- exit 1
20
- fi
21
-
22
- # Installer les dépendances Python
23
- echo "📦 Installation des dépendances Python..."
24
- pip3 install mcp
25
-
26
- # Rendre le script MCP exécutable
27
- chmod +x concorde-mcp-server.py
28
-
29
- # Créer un lien symbolique pour faciliter l'accès
30
- if [ ! -L /usr/local/bin/concorde-mcp ]; then
31
- echo "🔗 Création du lien symbolique..."
32
- sudo ln -sf "$(pwd)/concorde-mcp-server.py" /usr/local/bin/concorde-mcp
33
- fi
34
-
35
- # Afficher la configuration pour Cursor
36
- echo ""
37
- echo "✅ Installation terminée !"
38
- echo ""
39
- echo "📋 Configuration pour Cursor :"
40
- echo "Ajoutez ceci dans vos paramètres Cursor (settings.json) :"
41
- echo ""
42
- cat << 'EOF'
43
- {
44
- "mcpServers": {
45
- "concorde": {
46
- "command": "python3",
47
- "args": ["/usr2/sites/concorde/mcp-server/concorde-mcp-server.py"],
48
- "env": {
49
- "PYTHONPATH": "/usr2/sites/concorde"
50
- }
51
- }
52
- }
53
- }
54
- EOF
55
- echo ""
56
- echo "🔄 Redémarrez Cursor pour que la configuration soit prise en compte."
57
- echo ""
58
- echo "🧪 Test du serveur :"
59
- echo "Vous pouvez tester le serveur avec :"
60
- echo " concorde-mcp --help"
61
- echo ""
62
- echo "📚 Documentation complète dans README-MCP.md"
@@ -1,147 +0,0 @@
1
- {
2
- "name": "concorde-mcp-server",
3
- "version": "1.0.0",
4
- "lockfileVersion": 3,
5
- "requires": true,
6
- "packages": {
7
- "": {
8
- "name": "concorde-mcp-server",
9
- "version": "1.0.0",
10
- "license": "MIT",
11
- "dependencies": {
12
- "@modelcontextprotocol/sdk": "^0.5.0"
13
- },
14
- "bin": {
15
- "concorde-mcp": "concorde-mcp-server.js"
16
- },
17
- "engines": {
18
- "node": ">=18.0.0"
19
- }
20
- },
21
- "node_modules/@modelcontextprotocol/sdk": {
22
- "version": "0.5.0",
23
- "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-0.5.0.tgz",
24
- "integrity": "sha512-RXgulUX6ewvxjAG0kOpLMEdXXWkzWgaoCGaA2CwNW7cQCIphjpJhjpHSiaPdVCnisjRF/0Cm9KWHUuIoeiAblQ==",
25
- "dependencies": {
26
- "content-type": "^1.0.5",
27
- "raw-body": "^3.0.0",
28
- "zod": "^3.23.8"
29
- }
30
- },
31
- "node_modules/bytes": {
32
- "version": "3.1.2",
33
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
34
- "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
35
- "engines": {
36
- "node": ">= 0.8"
37
- }
38
- },
39
- "node_modules/content-type": {
40
- "version": "1.0.5",
41
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
42
- "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
43
- "engines": {
44
- "node": ">= 0.6"
45
- }
46
- },
47
- "node_modules/depd": {
48
- "version": "2.0.0",
49
- "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
50
- "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
51
- "engines": {
52
- "node": ">= 0.8"
53
- }
54
- },
55
- "node_modules/http-errors": {
56
- "version": "2.0.0",
57
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
58
- "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
59
- "dependencies": {
60
- "depd": "2.0.0",
61
- "inherits": "2.0.4",
62
- "setprototypeof": "1.2.0",
63
- "statuses": "2.0.1",
64
- "toidentifier": "1.0.1"
65
- },
66
- "engines": {
67
- "node": ">= 0.8"
68
- }
69
- },
70
- "node_modules/iconv-lite": {
71
- "version": "0.7.0",
72
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.0.tgz",
73
- "integrity": "sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==",
74
- "dependencies": {
75
- "safer-buffer": ">= 2.1.2 < 3.0.0"
76
- },
77
- "engines": {
78
- "node": ">=0.10.0"
79
- },
80
- "funding": {
81
- "type": "opencollective",
82
- "url": "https://opencollective.com/express"
83
- }
84
- },
85
- "node_modules/inherits": {
86
- "version": "2.0.4",
87
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
88
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
89
- },
90
- "node_modules/raw-body": {
91
- "version": "3.0.1",
92
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.1.tgz",
93
- "integrity": "sha512-9G8cA+tuMS75+6G/TzW8OtLzmBDMo8p1JRxN5AZ+LAp8uxGA8V8GZm4GQ4/N5QNQEnLmg6SS7wyuSmbKepiKqA==",
94
- "dependencies": {
95
- "bytes": "3.1.2",
96
- "http-errors": "2.0.0",
97
- "iconv-lite": "0.7.0",
98
- "unpipe": "1.0.0"
99
- },
100
- "engines": {
101
- "node": ">= 0.10"
102
- }
103
- },
104
- "node_modules/safer-buffer": {
105
- "version": "2.1.2",
106
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
107
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
108
- },
109
- "node_modules/setprototypeof": {
110
- "version": "1.2.0",
111
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
112
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
113
- },
114
- "node_modules/statuses": {
115
- "version": "2.0.1",
116
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
117
- "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
118
- "engines": {
119
- "node": ">= 0.8"
120
- }
121
- },
122
- "node_modules/toidentifier": {
123
- "version": "1.0.1",
124
- "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
125
- "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
126
- "engines": {
127
- "node": ">=0.6"
128
- }
129
- },
130
- "node_modules/unpipe": {
131
- "version": "1.0.0",
132
- "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
133
- "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
134
- "engines": {
135
- "node": ">= 0.8"
136
- }
137
- },
138
- "node_modules/zod": {
139
- "version": "3.25.76",
140
- "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz",
141
- "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==",
142
- "funding": {
143
- "url": "https://github.com/sponsors/colinhacks"
144
- }
145
- }
146
- }
147
- }
@@ -1,40 +0,0 @@
1
- {
2
- "name": "concorde-mcp-server",
3
- "version": "1.0.0",
4
- "description": "Serveur MCP pour le framework Concorde - Permet à l'IA de Cursor d'accéder facilement à toute la documentation et au code de Concorde",
5
- "main": "concorde-mcp-server.js",
6
- "type": "module",
7
- "bin": {
8
- "concorde-mcp": "./concorde-mcp-server.js"
9
- },
10
- "scripts": {
11
- "start": "node concorde-mcp-server.js",
12
- "test": "node test-mcp.js",
13
- "dev": "node --inspect concorde-mcp-server.js"
14
- },
15
- "keywords": [
16
- "mcp",
17
- "concorde",
18
- "cursor",
19
- "ai",
20
- "web-components",
21
- "lit-element",
22
- "framework"
23
- ],
24
- "author": "Concorde Framework Team",
25
- "license": "MIT",
26
- "dependencies": {
27
- "@modelcontextprotocol/sdk": "^0.5.0"
28
- },
29
- "engines": {
30
- "node": ">=18.0.0"
31
- },
32
- "repository": {
33
- "type": "git",
34
- "url": "https://github.com/supersoniks/concorde"
35
- },
36
- "bugs": {
37
- "url": "https://github.com/supersoniks/concorde/issues"
38
- },
39
- "homepage": "https://github.com/supersoniks/concorde#readme"
40
- }
@@ -1,40 +0,0 @@
1
- {
2
- "name": "concorde-mcp-server",
3
- "version": "1.0.0",
4
- "description": "Serveur MCP pour le framework Concorde - Permet à l'IA de Cursor d'accéder facilement à toute la documentation et au code de Concorde",
5
- "main": "concorde-mcp-server.js",
6
- "type": "module",
7
- "bin": {
8
- "concorde-mcp": "./concorde-mcp-server.js"
9
- },
10
- "scripts": {
11
- "start": "node concorde-mcp-server.js",
12
- "test": "node test-mcp.js",
13
- "dev": "node --inspect concorde-mcp-server.js"
14
- },
15
- "keywords": [
16
- "mcp",
17
- "concorde",
18
- "cursor",
19
- "ai",
20
- "web-components",
21
- "lit-element",
22
- "framework"
23
- ],
24
- "author": "Concorde Framework Team",
25
- "license": "MIT",
26
- "dependencies": {
27
- "@modelcontextprotocol/sdk": "^0.5.0"
28
- },
29
- "engines": {
30
- "node": ">=18.0.0"
31
- },
32
- "repository": {
33
- "type": "git",
34
- "url": "https://github.com/supersoniks/concorde"
35
- },
36
- "bugs": {
37
- "url": "https://github.com/supersoniks/concorde/issues"
38
- },
39
- "homepage": "https://github.com/supersoniks/concorde#readme"
40
- }
@@ -1,107 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- /**
4
- * Script de test pour le serveur MCP Concorde (Version Node.js)
5
- */
6
-
7
- import { ConcordeMCPServer } from './concorde-mcp-server.js';
8
-
9
- async function testServer() {
10
- console.log('🧪 Test du serveur MCP Concorde (Node.js)...');
11
-
12
- const server = new ConcordeMCPServer();
13
- await server.initialize();
14
-
15
- // Test 1: Vérifier que les composants sont chargés
16
- console.log(`\n📦 Composants chargés: ${server.components.size}`);
17
- let count = 0;
18
- for (const [name, comp] of server.components) {
19
- if (count < 5) {
20
- console.log(` - ${comp.tagName} (${comp.category})`);
21
- count++;
22
- }
23
- }
24
-
25
- // Test 2: Recherche de composant
26
- console.log('\n🔍 Test de recherche...');
27
- const searchResult = await server.searchComponent('button');
28
- console.log(`Résultat recherche 'button': ${searchResult.content[0].text.length} caractères`);
29
-
30
- // Test 3: Informations sur un composant
31
- console.log('\n📋 Test d\'informations composant...');
32
- if (server.components.has('button')) {
33
- const infoResult = await server.getComponentInfo('button');
34
- console.log(`Info composant 'button': ${infoResult.content[0].text.length} caractères`);
35
- }
36
-
37
- // Test 4: Génération de code
38
- console.log('\n💻 Test de génération de code...');
39
- if (server.components.has('button')) {
40
- const codeResult = await server.generateComponentCode(
41
- 'button',
42
- { type: 'primary', size: 'lg' },
43
- 'Test'
44
- );
45
- console.log(`Code généré: ${codeResult.content[0].text}`);
46
- }
47
-
48
- // Test 5: Exemple de formulaire
49
- console.log('\n📝 Test d\'exemple de formulaire...');
50
- const formResult = await server.getFormExample([
51
- { name: 'email', type: 'email', label: 'Email', required: true },
52
- { name: 'password', type: 'password', label: 'Mot de passe', required: true }
53
- ]);
54
- console.log(`Formulaire généré: ${formResult.content[0].text.length} caractères`);
55
-
56
- // Test 6: Informations sur le thème
57
- console.log('\n🎨 Test d\'informations thème...');
58
- const themeResult = await server.getThemeInfo('light');
59
- console.log(`Info thème: ${themeResult.content[0].text.length} caractères`);
60
-
61
- // Test 7: Liste des icônes
62
- console.log('\n🔤 Test de liste d\'icônes...');
63
- const iconsResult = await server.getIconsList('core');
64
- console.log(`Liste icônes: ${iconsResult.content[0].text.length} caractères`);
65
-
66
- console.log('\n✅ Tous les tests sont passés avec succès !');
67
-
68
- // Statistiques
69
- let uiCount = 0;
70
- let functionalCount = 0;
71
-
72
- for (const comp of server.components.values()) {
73
- if (comp.category === 'ui') uiCount++;
74
- else if (comp.category === 'functional') functionalCount++;
75
- }
76
-
77
- console.log(`\n📊 Statistiques:`);
78
- console.log(` - Composants UI: ${uiCount}`);
79
- console.log(` - Composants fonctionnels: ${functionalCount}`);
80
- console.log(` - Documentation chargée: ${server.documentation.size} sections`);
81
-
82
- // Test des ressources
83
- console.log('\n📚 Test des ressources...');
84
- const uiExamples = server.generateUIExamples();
85
- const functionalExamples = server.generateFunctionalExamples();
86
- console.log(` - Exemples UI: ${uiExamples.length} caractères`);
87
- console.log(` - Exemples fonctionnels: ${functionalExamples.length} caractères`);
88
- }
89
-
90
- // Gestion des erreurs
91
- process.on('uncaughtException', (error) => {
92
- console.error('❌ Erreur non capturée:', error);
93
- process.exit(1);
94
- });
95
-
96
- process.on('unhandledRejection', (reason, promise) => {
97
- console.error('❌ Promesse rejetée non gérée:', reason);
98
- process.exit(1);
99
- });
100
-
101
- // Exécution du test
102
- testServer().catch((error) => {
103
- console.error('❌ Erreur lors du test:', error);
104
- process.exit(1);
105
- });
106
-
107
- export { testServer };