boondmanager-mcp-server 1.0.0 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +238 -97
- package/dist/constants.d.ts +34 -6
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +35 -7
- package/dist/constants.js.map +1 -1
- package/dist/index.js +20 -2
- package/dist/index.js.map +1 -1
- package/dist/tools/absences.js +4 -4
- package/dist/tools/absences.js.map +1 -1
- package/dist/tools/accounts.d.ts +3 -0
- package/dist/tools/accounts.d.ts.map +1 -0
- package/dist/tools/accounts.js +40 -0
- package/dist/tools/accounts.js.map +1 -0
- package/dist/tools/agencies.d.ts +3 -0
- package/dist/tools/agencies.d.ts.map +1 -0
- package/dist/tools/agencies.js +40 -0
- package/dist/tools/agencies.js.map +1 -0
- package/dist/tools/application.js +1 -1
- package/dist/tools/application.js.map +1 -1
- package/dist/tools/business-units.d.ts +3 -0
- package/dist/tools/business-units.d.ts.map +1 -0
- package/dist/tools/business-units.js +40 -0
- package/dist/tools/business-units.js.map +1 -0
- package/dist/tools/calendars.d.ts +3 -0
- package/dist/tools/calendars.d.ts.map +1 -0
- package/dist/tools/calendars.js +40 -0
- package/dist/tools/calendars.js.map +1 -0
- package/dist/tools/candidates.d.ts.map +1 -1
- package/dist/tools/candidates.js +18 -7
- package/dist/tools/candidates.js.map +1 -1
- package/dist/tools/companies.d.ts.map +1 -1
- package/dist/tools/companies.js +71 -5
- package/dist/tools/companies.js.map +1 -1
- package/dist/tools/contacts.d.ts.map +1 -1
- package/dist/tools/contacts.js +38 -5
- package/dist/tools/contacts.js.map +1 -1
- package/dist/tools/contracts.d.ts +3 -0
- package/dist/tools/contracts.d.ts.map +1 -0
- package/dist/tools/contracts.js +57 -0
- package/dist/tools/contracts.js.map +1 -0
- package/dist/tools/deliveries.js +1 -1
- package/dist/tools/deliveries.js.map +1 -1
- package/dist/tools/expenses.js +4 -4
- package/dist/tools/expenses.js.map +1 -1
- package/dist/tools/flags.d.ts +3 -0
- package/dist/tools/flags.d.ts.map +1 -0
- package/dist/tools/flags.js +40 -0
- package/dist/tools/flags.js.map +1 -0
- package/dist/tools/index.d.ts +18 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +18 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/logs.d.ts +3 -0
- package/dist/tools/logs.d.ts.map +1 -0
- package/dist/tools/logs.js +40 -0
- package/dist/tools/logs.js.map +1 -0
- package/dist/tools/notifications.d.ts +3 -0
- package/dist/tools/notifications.d.ts.map +1 -0
- package/dist/tools/notifications.js +40 -0
- package/dist/tools/notifications.js.map +1 -0
- package/dist/tools/opportunities.d.ts.map +1 -1
- package/dist/tools/opportunities.js +27 -5
- package/dist/tools/opportunities.js.map +1 -1
- package/dist/tools/planning-absences.d.ts +3 -0
- package/dist/tools/planning-absences.d.ts.map +1 -0
- package/dist/tools/planning-absences.js +24 -0
- package/dist/tools/planning-absences.js.map +1 -0
- package/dist/tools/poles.d.ts +3 -0
- package/dist/tools/poles.d.ts.map +1 -0
- package/dist/tools/poles.js +40 -0
- package/dist/tools/poles.js.map +1 -0
- package/dist/tools/projects.d.ts.map +1 -1
- package/dist/tools/projects.js +48 -15
- package/dist/tools/projects.js.map +1 -1
- package/dist/tools/provider-invoices.d.ts +3 -0
- package/dist/tools/provider-invoices.d.ts.map +1 -0
- package/dist/tools/provider-invoices.js +48 -0
- package/dist/tools/provider-invoices.js.map +1 -0
- package/dist/tools/purchases.d.ts +3 -0
- package/dist/tools/purchases.d.ts.map +1 -0
- package/dist/tools/purchases.js +108 -0
- package/dist/tools/purchases.js.map +1 -0
- package/dist/tools/reporting.d.ts +3 -0
- package/dist/tools/reporting.d.ts.map +1 -0
- package/dist/tools/reporting.js +37 -0
- package/dist/tools/reporting.js.map +1 -0
- package/dist/tools/resources.d.ts.map +1 -1
- package/dist/tools/resources.js +61 -17
- package/dist/tools/resources.js.map +1 -1
- package/dist/tools/roles.d.ts +3 -0
- package/dist/tools/roles.d.ts.map +1 -0
- package/dist/tools/roles.js +40 -0
- package/dist/tools/roles.js.map +1 -0
- package/dist/tools/threads.d.ts +3 -0
- package/dist/tools/threads.d.ts.map +1 -0
- package/dist/tools/threads.js +40 -0
- package/dist/tools/threads.js.map +1 -0
- package/dist/tools/timesheets.js +3 -3
- package/dist/tools/timesheets.js.map +1 -1
- package/dist/tools/todolists.d.ts +3 -0
- package/dist/tools/todolists.d.ts.map +1 -0
- package/dist/tools/todolists.js +40 -0
- package/dist/tools/todolists.js.map +1 -0
- package/dist/tools/validations.d.ts +3 -0
- package/dist/tools/validations.d.ts.map +1 -0
- package/dist/tools/validations.js +40 -0
- package/dist/tools/validations.js.map +1 -0
- package/dist/tools/webhooks.d.ts +3 -0
- package/dist/tools/webhooks.d.ts.map +1 -0
- package/dist/tools/webhooks.js +40 -0
- package/dist/tools/webhooks.js.map +1 -0
- package/package.json +13 -6
package/README.md
CHANGED
|
@@ -4,64 +4,135 @@
|
|
|
4
4
|
[](https://www.npmjs.com/package/boondmanager-mcp-server)
|
|
5
5
|
[](https://opensource.org/licenses/MIT)
|
|
6
6
|
|
|
7
|
-
Serveur MCP (Model Context Protocol) pour l'API BoondManager, permettant
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
|
16
|
-
|
|
17
|
-
| **
|
|
18
|
-
| **
|
|
19
|
-
| **
|
|
20
|
-
| **
|
|
21
|
-
| **
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
|
26
|
-
|
|
27
|
-
| **
|
|
28
|
-
| **
|
|
29
|
-
| **
|
|
30
|
-
| **
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
|
7
|
+
Serveur MCP (Model Context Protocol) pour l'API BoondManager, permettant a Claude (Desktop, Cowork, Code) de rechercher, consulter, creer et modifier des enregistrements dans votre instance BoondManager.
|
|
8
|
+
|
|
9
|
+
**158 outils** couvrant **36 domaines** de l'API BoondManager.
|
|
10
|
+
|
|
11
|
+
## Domaines couverts
|
|
12
|
+
|
|
13
|
+
### CRM & Commercial
|
|
14
|
+
|
|
15
|
+
| Domaine | Outils | Operations |
|
|
16
|
+
|---------|--------|------------|
|
|
17
|
+
| **Candidats** | 10 | CRUD + information, technical-data, administrative, actions, positionings |
|
|
18
|
+
| **Ressources** | 15 | CRUD + information, technical-data, administrative, advantages, actions, positionings, projects, times-reports, expenses-reports, absences-reports |
|
|
19
|
+
| **Contacts** | 11 | CRUD + information, actions, opportunities, projects, orders, invoices |
|
|
20
|
+
| **Societes** | 14 | CRUD + information, contacts, actions, opportunities, projects, orders, invoices, purchases, provider-invoices |
|
|
21
|
+
| **Opportunites** | 10 | CRUD + information, actions, positionings, projects, simulation |
|
|
22
|
+
|
|
23
|
+
### Gestion de projets
|
|
24
|
+
|
|
25
|
+
| Domaine | Outils | Operations |
|
|
26
|
+
|---------|--------|------------|
|
|
27
|
+
| **Projets** | 12 | CRUD + information, actions, simulation, deliveries-groupments, orders, purchases, productivity |
|
|
28
|
+
| **Positionnements** | 4 | search, get, create, delete |
|
|
29
|
+
| **Livraisons / CRA** | 2 | search, get |
|
|
30
|
+
| **Achats / Sous-traitance** | 4 | search, get, create, delete |
|
|
31
|
+
|
|
32
|
+
### Facturation & Finance
|
|
33
|
+
|
|
34
|
+
| Domaine | Outils | Operations |
|
|
35
|
+
|---------|--------|------------|
|
|
36
|
+
| **Factures client** | 5 | CRUD complet |
|
|
37
|
+
| **Factures fournisseur** | 2 | search, get |
|
|
38
|
+
| **Bons de commande** | 5 | CRUD complet |
|
|
39
|
+
| **Paiements** | 2 | search, get |
|
|
40
|
+
| **Notes de frais** | 5 | CRUD complet |
|
|
41
|
+
| **Produits** | 5 | CRUD complet |
|
|
42
|
+
|
|
43
|
+
### RH & Temps
|
|
44
|
+
|
|
45
|
+
| Domaine | Outils | Operations |
|
|
46
|
+
|---------|--------|------------|
|
|
47
|
+
| **Absences** | 5 | CRUD complet |
|
|
48
|
+
| **Planning absences** | 1 | search (vue globale) |
|
|
49
|
+
| **Feuilles de temps** | 3 | search, get, resource timesheets |
|
|
50
|
+
| **Contrats** | 2 | get, create |
|
|
51
|
+
| **Avantages** | 2 | search, get |
|
|
52
|
+
|
|
53
|
+
### Suivi d'activite
|
|
54
|
+
|
|
55
|
+
| Domaine | Outils | Operations |
|
|
56
|
+
|---------|--------|------------|
|
|
57
|
+
| **Actions** | 4 | search, get, create, delete |
|
|
58
|
+
| **Validations** | 2 | search, get |
|
|
59
|
+
| **Todolists** | 2 | search, get |
|
|
60
|
+
|
|
61
|
+
### Reporting
|
|
62
|
+
|
|
63
|
+
| Domaine | Outils | Operations |
|
|
64
|
+
|---------|--------|------------|
|
|
65
|
+
| **Reporting societes** | 1 | search |
|
|
66
|
+
| **Reporting projets** | 1 | search |
|
|
67
|
+
| **Reporting ressources** | 1 | search |
|
|
68
|
+
| **Reporting synthese** | 1 | search |
|
|
69
|
+
| **Reporting plans de production** | 1 | search |
|
|
70
|
+
|
|
71
|
+
### Administration & Configuration
|
|
72
|
+
|
|
73
|
+
| Domaine | Outils | Operations |
|
|
74
|
+
|---------|--------|------------|
|
|
75
|
+
| **Comptes utilisateurs** | 2 | search, get |
|
|
76
|
+
| **Agences** | 2 | search, get |
|
|
77
|
+
| **Business Units** | 2 | search, get |
|
|
78
|
+
| **Poles** | 2 | search, get |
|
|
79
|
+
| **Roles** | 2 | search, get |
|
|
80
|
+
| **Calendriers** | 2 | search, get |
|
|
81
|
+
| **Drapeaux / Etiquettes** | 2 | search, get |
|
|
82
|
+
| **Webhooks** | 2 | search, get |
|
|
83
|
+
| **Logs d'audit** | 2 | search, get |
|
|
84
|
+
| **Notifications** | 2 | search, get |
|
|
85
|
+
| **Fils de discussion** | 2 | search, get |
|
|
86
|
+
| **Application** | 2 | dictionnaire, utilisateur courant |
|
|
87
|
+
|
|
88
|
+
### Detail des onglets par entite
|
|
89
|
+
|
|
90
|
+
Les entites principales disposent d'outils dedies par onglet pour un acces cible :
|
|
91
|
+
|
|
92
|
+
| Entite | Onglets disponibles |
|
|
37
93
|
|--------|-------------------|
|
|
38
|
-
| Candidats | information, technical, actions,
|
|
39
|
-
| Ressources | information, technical,
|
|
40
|
-
| Contacts | information, actions,
|
|
41
|
-
|
|
|
42
|
-
|
|
|
43
|
-
| Projets | information,
|
|
94
|
+
| Candidats | information, technical-data, administrative, actions, positionings |
|
|
95
|
+
| Ressources | information, technical-data, administrative, advantages, actions, positionings, projects, times-reports, expenses-reports, absences-reports |
|
|
96
|
+
| Contacts | information, actions, opportunities, projects, orders, invoices |
|
|
97
|
+
| Societes | information, contacts, actions, opportunities, projects, orders, invoices, purchases, provider-invoices |
|
|
98
|
+
| Opportunites | information, actions, positionings, projects, simulation |
|
|
99
|
+
| Projets | information, actions, simulation, deliveries-groupments, orders, purchases, productivity |
|
|
44
100
|
|
|
45
|
-
##
|
|
101
|
+
## Prerequis
|
|
46
102
|
|
|
47
|
-
- Node.js >=
|
|
48
|
-
- Un compte BoondManager avec
|
|
49
|
-
- L'option "Allow API Rest calls using BasicAuth authentication"
|
|
103
|
+
- Node.js >= 20
|
|
104
|
+
- Un compte BoondManager avec acces API active
|
|
105
|
+
- L'option "Allow API Rest calls using BasicAuth authentication" activee dans la configuration BoondManager (si BasicAuth)
|
|
50
106
|
|
|
51
|
-
##
|
|
107
|
+
## Installation
|
|
108
|
+
|
|
109
|
+
### Via npm (recommande)
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
npx boondmanager-mcp-server
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Ou installation globale :
|
|
52
116
|
|
|
53
117
|
```bash
|
|
54
|
-
|
|
118
|
+
npm install -g boondmanager-mcp-server
|
|
119
|
+
boondmanager-mcp-server
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### Depuis les sources
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
git clone https://github.com/fauguste/boondmanager-mcp-server.git
|
|
55
126
|
cd boondmanager-mcp-server
|
|
56
127
|
npm install
|
|
57
128
|
npm run build
|
|
58
129
|
```
|
|
59
130
|
|
|
60
|
-
##
|
|
131
|
+
## Configuration
|
|
61
132
|
|
|
62
133
|
### Variables d'environnement
|
|
63
134
|
|
|
64
|
-
**Option 1 : BasicAuth (
|
|
135
|
+
**Option 1 : BasicAuth (recommande pour demarrer)**
|
|
65
136
|
```bash
|
|
66
137
|
export BOOND_USER="votre_login"
|
|
67
138
|
export BOOND_PASSWORD="votre_mot_de_passe"
|
|
@@ -72,11 +143,13 @@ export BOOND_PASSWORD="votre_mot_de_passe"
|
|
|
72
143
|
export BOOND_API_TOKEN="votre_token_jwt"
|
|
73
144
|
```
|
|
74
145
|
|
|
75
|
-
**Option 3 : URL
|
|
146
|
+
**Option 3 : URL personnalisee (si instance dediee)**
|
|
76
147
|
```bash
|
|
77
148
|
export BOOND_BASE_URL="https://votre-instance.boondmanager.com/api"
|
|
78
149
|
```
|
|
79
150
|
|
|
151
|
+
Par defaut, l'URL est `https://ui.boondmanager.com/api`.
|
|
152
|
+
|
|
80
153
|
### Configuration Claude Desktop / Cowork
|
|
81
154
|
|
|
82
155
|
Ajoutez dans votre fichier de configuration Claude :
|
|
@@ -84,6 +157,23 @@ Ajoutez dans votre fichier de configuration Claude :
|
|
|
84
157
|
**macOS** : `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
85
158
|
**Windows** : `%APPDATA%\Claude\claude_desktop_config.json`
|
|
86
159
|
|
|
160
|
+
```json
|
|
161
|
+
{
|
|
162
|
+
"mcpServers": {
|
|
163
|
+
"boondmanager": {
|
|
164
|
+
"command": "npx",
|
|
165
|
+
"args": ["-y", "boondmanager-mcp-server"],
|
|
166
|
+
"env": {
|
|
167
|
+
"BOOND_USER": "votre_login",
|
|
168
|
+
"BOOND_PASSWORD": "votre_mot_de_passe"
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
Ou si installe depuis les sources :
|
|
176
|
+
|
|
87
177
|
```json
|
|
88
178
|
{
|
|
89
179
|
"mcpServers": {
|
|
@@ -99,59 +189,99 @@ Ajoutez dans votre fichier de configuration Claude :
|
|
|
99
189
|
}
|
|
100
190
|
```
|
|
101
191
|
|
|
102
|
-
##
|
|
192
|
+
## Exemples d'utilisation
|
|
103
193
|
|
|
104
|
-
Une fois
|
|
194
|
+
Une fois configure, vous pouvez demander a Claude :
|
|
105
195
|
|
|
106
|
-
|
|
107
|
-
- *"
|
|
108
|
-
- *"
|
|
109
|
-
- *"
|
|
110
|
-
- *"
|
|
111
|
-
- *"
|
|
112
|
-
|
|
113
|
-
|
|
196
|
+
**CRM & Commercial**
|
|
197
|
+
- *"Recherche les candidats avec des competences en React a Paris"*
|
|
198
|
+
- *"Montre-moi les details techniques de la ressource #12345"*
|
|
199
|
+
- *"Cree un nouveau contact Jean Dupont chez Acme Corp"*
|
|
200
|
+
- *"Liste toutes les opportunites en cours"*
|
|
201
|
+
- *"Quels sont les positionnements de l'opportunite #20 ?"*
|
|
202
|
+
|
|
203
|
+
**Gestion de projets**
|
|
204
|
+
- *"Cree un projet Mission Alpha pour la societe #42"*
|
|
205
|
+
- *"Affiche le planning du projet #33"*
|
|
206
|
+
- *"Quels sont les bons de commande du projet #55 ?"*
|
|
207
|
+
- *"Affiche la productivite du projet #12"*
|
|
208
|
+
|
|
209
|
+
**Facturation & Finance**
|
|
114
210
|
- *"Recherche les factures en attente de paiement"*
|
|
115
|
-
- *"Liste les
|
|
211
|
+
- *"Liste les factures fournisseur de la societe #100"*
|
|
212
|
+
- *"Affiche les achats du projet #55"*
|
|
213
|
+
|
|
214
|
+
**RH & Temps**
|
|
215
|
+
- *"Affiche les feuilles de temps de la ressource #100 pour mars 2025"*
|
|
216
|
+
- *"Liste les absences prevues ce mois-ci"*
|
|
116
217
|
- *"Affiche les notes de frais de la ressource #200"*
|
|
117
|
-
- *"Quels sont les
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
- *"
|
|
218
|
+
- *"Quels sont les avantages de la ressource #50 ?"*
|
|
219
|
+
|
|
220
|
+
**Suivi d'activite**
|
|
221
|
+
- *"Quelles sont les actions recentes sur le candidat #789 ?"*
|
|
222
|
+
- *"Affiche les validations en attente"*
|
|
223
|
+
- *"Liste les taches de ma todolist"*
|
|
121
224
|
|
|
122
|
-
|
|
225
|
+
**Reporting**
|
|
226
|
+
- *"Affiche le reporting de synthese globale"*
|
|
227
|
+
- *"Quel est le reporting de productivite des ressources ?"*
|
|
228
|
+
|
|
229
|
+
**Administration**
|
|
230
|
+
- *"Recupere le dictionnaire des types d'actions"*
|
|
231
|
+
- *"Liste les agences et business units"*
|
|
232
|
+
- *"Affiche les webhooks configures"*
|
|
233
|
+
|
|
234
|
+
## Architecture
|
|
123
235
|
|
|
124
236
|
```
|
|
125
237
|
boondmanager-mcp-server/
|
|
126
238
|
├── src/
|
|
127
|
-
│ ├── index.ts # Point d'
|
|
128
|
-
│ ├── constants.ts # Configuration
|
|
239
|
+
│ ├── index.ts # Point d'entree MCP (stdio)
|
|
240
|
+
│ ├── constants.ts # Configuration, API paths, onglets
|
|
129
241
|
│ ├── types.ts # Types TypeScript (JSON:API)
|
|
130
242
|
│ ├── services/
|
|
131
243
|
│ │ └── boond-client.ts # Client HTTP API BoondManager
|
|
132
244
|
│ ├── schemas/
|
|
133
|
-
│ │ └── index.ts #
|
|
245
|
+
│ │ └── index.ts # Schemas Zod (validation des entrees)
|
|
134
246
|
│ └── tools/
|
|
135
|
-
│ ├── index.ts #
|
|
136
|
-
│ ├── crud-factory.ts # Factory
|
|
137
|
-
│ ├── candidates.ts #
|
|
138
|
-
│ ├── resources.ts #
|
|
139
|
-
│ ├── contacts.ts #
|
|
140
|
-
│ ├── companies.ts #
|
|
141
|
-
│ ├── opportunities.ts #
|
|
142
|
-
│ ├──
|
|
143
|
-
│ ├──
|
|
144
|
-
│ ├──
|
|
145
|
-
│ ├── invoices.ts #
|
|
146
|
-
│ ├── orders.ts #
|
|
147
|
-
│ ├── deliveries.ts #
|
|
148
|
-
│ ├── absences.ts #
|
|
149
|
-
│ ├── expenses.ts #
|
|
150
|
-
│ ├── products.ts #
|
|
151
|
-
│ ├── positionings.ts #
|
|
152
|
-
│ ├── payments.ts #
|
|
153
|
-
│ ├── advantages.ts #
|
|
154
|
-
│
|
|
247
|
+
│ ├── index.ts # Barrel export de tous les domaines
|
|
248
|
+
│ ├── crud-factory.ts # Factory generique CRUD (DRY)
|
|
249
|
+
│ ├── candidates.ts # 10 outils (CRUD + 5 onglets)
|
|
250
|
+
│ ├── resources.ts # 15 outils (CRUD + 10 onglets)
|
|
251
|
+
│ ├── contacts.ts # 11 outils (CRUD + 6 onglets)
|
|
252
|
+
│ ├── companies.ts # 14 outils (CRUD + 9 onglets)
|
|
253
|
+
│ ├── opportunities.ts # 10 outils (CRUD + 5 onglets)
|
|
254
|
+
│ ├── projects.ts # 12 outils (CRUD + 7 onglets)
|
|
255
|
+
│ ├── actions.ts # 4 outils
|
|
256
|
+
│ ├── timesheets.ts # 3 outils
|
|
257
|
+
│ ├── invoices.ts # 5 outils
|
|
258
|
+
│ ├── orders.ts # 5 outils
|
|
259
|
+
│ ├── deliveries.ts # 2 outils
|
|
260
|
+
│ ├── absences.ts # 5 outils
|
|
261
|
+
│ ├── expenses.ts # 5 outils
|
|
262
|
+
│ ├── products.ts # 5 outils
|
|
263
|
+
│ ├── positionings.ts # 4 outils
|
|
264
|
+
│ ├── payments.ts # 2 outils
|
|
265
|
+
│ ├── advantages.ts # 2 outils
|
|
266
|
+
│ ├── contracts.ts # 2 outils
|
|
267
|
+
│ ├── purchases.ts # 4 outils
|
|
268
|
+
│ ├── provider-invoices.ts # 2 outils
|
|
269
|
+
│ ├── accounts.ts # 2 outils
|
|
270
|
+
│ ├── agencies.ts # 2 outils
|
|
271
|
+
│ ├── business-units.ts # 2 outils
|
|
272
|
+
│ ├── poles.ts # 2 outils
|
|
273
|
+
│ ├── roles.ts # 2 outils
|
|
274
|
+
│ ├── calendars.ts # 2 outils
|
|
275
|
+
│ ├── flags.ts # 2 outils
|
|
276
|
+
│ ├── webhooks.ts # 2 outils
|
|
277
|
+
│ ├── logs.ts # 2 outils
|
|
278
|
+
│ ├── notifications.ts # 2 outils
|
|
279
|
+
│ ├── threads.ts # 2 outils
|
|
280
|
+
│ ├── todolists.ts # 2 outils
|
|
281
|
+
│ ├── validations.ts # 2 outils
|
|
282
|
+
│ ├── reporting.ts # 5 outils
|
|
283
|
+
│ ├── planning-absences.ts # 1 outil
|
|
284
|
+
│ └── application.ts # 2 outils
|
|
155
285
|
├── dist/ # Build JavaScript
|
|
156
286
|
├── .github/ # CI/CD, templates, Dependabot
|
|
157
287
|
├── package.json
|
|
@@ -161,17 +291,18 @@ boondmanager-mcp-server/
|
|
|
161
291
|
└── README.md
|
|
162
292
|
```
|
|
163
293
|
|
|
164
|
-
##
|
|
294
|
+
## Securite
|
|
165
295
|
|
|
166
|
-
- Les credentials ne transitent jamais via le
|
|
167
|
-
- Le serveur tourne en local (stdio), pas de port
|
|
296
|
+
- Les credentials ne transitent jamais via le reseau MCP -- ils sont configures en variables d'environnement locales
|
|
297
|
+
- Le serveur tourne en local (stdio), pas de port reseau expose
|
|
168
298
|
- Compatible avec les exigences ISO 27001
|
|
169
|
-
- L'API BoondManager est
|
|
299
|
+
- L'API BoondManager est hebergee en France et conforme RGPD
|
|
300
|
+
- Authentification par BasicAuth (base64) ou JWT Bearer token
|
|
170
301
|
|
|
171
|
-
##
|
|
302
|
+
## Developpement
|
|
172
303
|
|
|
173
304
|
```bash
|
|
174
|
-
# Mode watch pour le
|
|
305
|
+
# Mode watch pour le developpement
|
|
175
306
|
npm run dev
|
|
176
307
|
|
|
177
308
|
# Build
|
|
@@ -181,21 +312,31 @@ npm run build
|
|
|
181
312
|
npm start
|
|
182
313
|
|
|
183
314
|
# Tests
|
|
184
|
-
npm test
|
|
185
|
-
npm run test:coverage
|
|
315
|
+
npm test # 255 tests
|
|
316
|
+
npm run test:coverage # Avec couverture
|
|
186
317
|
|
|
187
|
-
#
|
|
318
|
+
# Qualite
|
|
188
319
|
npm run lint
|
|
189
320
|
npm run typecheck
|
|
190
321
|
```
|
|
191
322
|
|
|
192
|
-
|
|
323
|
+
### Stack technique
|
|
324
|
+
|
|
325
|
+
- **Runtime** : Node.js >= 20 (ES2022)
|
|
326
|
+
- **Langage** : TypeScript 5.8+ (mode strict)
|
|
327
|
+
- **MCP SDK** : @modelcontextprotocol/sdk 1.12+
|
|
328
|
+
- **Validation** : Zod 4
|
|
329
|
+
- **Tests** : Vitest 4 + couverture V8
|
|
330
|
+
- **Lint** : ESLint 10 + typescript-eslint
|
|
331
|
+
- **Transport** : stdio (pas de port reseau)
|
|
332
|
+
|
|
333
|
+
## Ressources
|
|
193
334
|
|
|
194
335
|
- [Documentation API BoondManager](https://doc.boondmanager.com/api-externe/)
|
|
195
336
|
- [Collection Postman BoondManager](https://www.postman.com/boondmanager)
|
|
196
|
-
- [
|
|
197
|
-
- [pyboondmanager (
|
|
337
|
+
- [Specification MCP](https://modelcontextprotocol.io/)
|
|
338
|
+
- [pyboondmanager (reference Python)](https://github.com/tominardi/pyboondmanager)
|
|
198
339
|
|
|
199
|
-
##
|
|
340
|
+
## Licence
|
|
200
341
|
|
|
201
342
|
MIT - Silamir
|
package/dist/constants.d.ts
CHANGED
|
@@ -13,20 +13,48 @@ export declare const API_PATHS: {
|
|
|
13
13
|
readonly invoices: "/invoices";
|
|
14
14
|
readonly orders: "/orders";
|
|
15
15
|
readonly deliveries: "/deliveries";
|
|
16
|
+
readonly deliveriesGroupments: "/deliveries-groupments";
|
|
16
17
|
readonly absences: "/absences";
|
|
18
|
+
readonly absencesReports: "/absences-reports";
|
|
17
19
|
readonly expenses: "/expenses";
|
|
20
|
+
readonly expensesReports: "/expenses-reports";
|
|
18
21
|
readonly products: "/products";
|
|
19
22
|
readonly positionings: "/positionings";
|
|
20
23
|
readonly payments: "/payments";
|
|
21
24
|
readonly advantages: "/advantages";
|
|
22
25
|
readonly application: "/application";
|
|
26
|
+
readonly timesReports: "/times-reports";
|
|
27
|
+
readonly contracts: "/contracts";
|
|
28
|
+
readonly purchases: "/purchases";
|
|
29
|
+
readonly providerInvoices: "/provider-invoices";
|
|
30
|
+
readonly accounts: "/accounts";
|
|
31
|
+
readonly agencies: "/agencies";
|
|
32
|
+
readonly businessUnits: "/business-units";
|
|
33
|
+
readonly roles: "/roles";
|
|
34
|
+
readonly logs: "/logs";
|
|
35
|
+
readonly notifications: "/notifications";
|
|
36
|
+
readonly threads: "/threads";
|
|
37
|
+
readonly todolists: "/todolists";
|
|
38
|
+
readonly flags: "/flags";
|
|
39
|
+
readonly calendars: "/calendars";
|
|
40
|
+
readonly webhooks: "/webhooks";
|
|
41
|
+
readonly validations: "/validations";
|
|
42
|
+
readonly poles: "/poles";
|
|
43
|
+
readonly planningAbsences: "/planning-absences";
|
|
44
|
+
readonly reportingCompanies: "/reporting-companies";
|
|
45
|
+
readonly reportingProjects: "/reporting-projects";
|
|
46
|
+
readonly reportingResources: "/reporting-resources";
|
|
47
|
+
readonly reportingSynthesis: "/reporting-synthesis";
|
|
48
|
+
readonly reportingProductionPlans: "/reporting-production-plans";
|
|
23
49
|
};
|
|
24
50
|
export declare const ENTITY_TABS: {
|
|
25
|
-
readonly candidates: readonly ["information", "technical", "actions", "
|
|
26
|
-
readonly resources: readonly ["information", "technical", "
|
|
27
|
-
readonly contacts: readonly ["information", "actions", "
|
|
28
|
-
readonly companies: readonly ["information", "actions", "
|
|
29
|
-
readonly opportunities: readonly ["information", "actions", "
|
|
30
|
-
readonly projects: readonly ["information", "
|
|
51
|
+
readonly candidates: readonly ["information", "technical-data", "administrative", "actions", "positionings"];
|
|
52
|
+
readonly resources: readonly ["information", "technical-data", "administrative", "advantages", "actions", "positionings", "projects", "times-reports", "expenses-reports", "absences-reports"];
|
|
53
|
+
readonly contacts: readonly ["information", "actions", "opportunities", "projects", "orders", "invoices"];
|
|
54
|
+
readonly companies: readonly ["information", "contacts", "actions", "opportunities", "projects", "orders", "invoices", "purchases", "provider-invoices"];
|
|
55
|
+
readonly opportunities: readonly ["information", "actions", "positionings", "projects", "simulation"];
|
|
56
|
+
readonly projects: readonly ["information", "actions", "simulation", "deliveries-groupments", "orders", "purchases", "productivity"];
|
|
57
|
+
readonly invoices: readonly ["information", "actions", "billable-items"];
|
|
58
|
+
readonly orders: readonly ["information", "actions", "invoices"];
|
|
31
59
|
};
|
|
32
60
|
//# sourceMappingURL=constants.d.ts.map
|
package/dist/constants.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,gBAAgB,oCAAoC,CAAC;AAClE,eAAO,MAAM,eAAe,QAAQ,CAAC;AACrC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,aAAa,MAAM,CAAC;AAGjC,eAAO,MAAM,SAAS
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,gBAAgB,oCAAoC,CAAC;AAClE,eAAO,MAAM,eAAe,QAAQ,CAAC;AACrC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,eAAO,MAAM,aAAa,MAAM,CAAC;AAGjC,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4CZ,CAAC;AAGX,eAAO,MAAM,WAAW;;;;;;;;;CASd,CAAC"}
|
package/dist/constants.js
CHANGED
|
@@ -15,21 +15,49 @@ export const API_PATHS = {
|
|
|
15
15
|
invoices: "/invoices",
|
|
16
16
|
orders: "/orders",
|
|
17
17
|
deliveries: "/deliveries",
|
|
18
|
+
deliveriesGroupments: "/deliveries-groupments",
|
|
18
19
|
absences: "/absences",
|
|
20
|
+
absencesReports: "/absences-reports",
|
|
19
21
|
expenses: "/expenses",
|
|
22
|
+
expensesReports: "/expenses-reports",
|
|
20
23
|
products: "/products",
|
|
21
24
|
positionings: "/positionings",
|
|
22
25
|
payments: "/payments",
|
|
23
26
|
advantages: "/advantages",
|
|
24
27
|
application: "/application",
|
|
28
|
+
timesReports: "/times-reports",
|
|
29
|
+
contracts: "/contracts",
|
|
30
|
+
purchases: "/purchases",
|
|
31
|
+
providerInvoices: "/provider-invoices",
|
|
32
|
+
accounts: "/accounts",
|
|
33
|
+
agencies: "/agencies",
|
|
34
|
+
businessUnits: "/business-units",
|
|
35
|
+
roles: "/roles",
|
|
36
|
+
logs: "/logs",
|
|
37
|
+
notifications: "/notifications",
|
|
38
|
+
threads: "/threads",
|
|
39
|
+
todolists: "/todolists",
|
|
40
|
+
flags: "/flags",
|
|
41
|
+
calendars: "/calendars",
|
|
42
|
+
webhooks: "/webhooks",
|
|
43
|
+
validations: "/validations",
|
|
44
|
+
poles: "/poles",
|
|
45
|
+
planningAbsences: "/planning-absences",
|
|
46
|
+
reportingCompanies: "/reporting-companies",
|
|
47
|
+
reportingProjects: "/reporting-projects",
|
|
48
|
+
reportingResources: "/reporting-resources",
|
|
49
|
+
reportingSynthesis: "/reporting-synthesis",
|
|
50
|
+
reportingProductionPlans: "/reporting-production-plans",
|
|
25
51
|
};
|
|
26
|
-
// Tab names available on entities
|
|
52
|
+
// Tab names available on entities (matching actual API endpoints)
|
|
27
53
|
export const ENTITY_TABS = {
|
|
28
|
-
candidates: ["information", "technical", "actions", "
|
|
29
|
-
resources: ["information", "technical", "
|
|
30
|
-
contacts: ["information", "actions", "
|
|
31
|
-
companies: ["information", "actions", "
|
|
32
|
-
opportunities: ["information", "actions", "
|
|
33
|
-
projects: ["information", "
|
|
54
|
+
candidates: ["information", "technical-data", "administrative", "actions", "positionings"],
|
|
55
|
+
resources: ["information", "technical-data", "administrative", "advantages", "actions", "positionings", "projects", "times-reports", "expenses-reports", "absences-reports"],
|
|
56
|
+
contacts: ["information", "actions", "opportunities", "projects", "orders", "invoices"],
|
|
57
|
+
companies: ["information", "contacts", "actions", "opportunities", "projects", "orders", "invoices", "purchases", "provider-invoices"],
|
|
58
|
+
opportunities: ["information", "actions", "positionings", "projects", "simulation"],
|
|
59
|
+
projects: ["information", "actions", "simulation", "deliveries-groupments", "orders", "purchases", "productivity"],
|
|
60
|
+
invoices: ["information", "actions", "billable-items"],
|
|
61
|
+
orders: ["information", "actions", "invoices"],
|
|
34
62
|
};
|
|
35
63
|
//# sourceMappingURL=constants.js.map
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,MAAM,CAAC,MAAM,gBAAgB,GAAG,iCAAiC,CAAC;AAClE,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC;AACrC,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AACpC,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAC;AAEjC,YAAY;AACZ,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,UAAU,EAAE,aAAa;IACzB,SAAS,EAAE,YAAY;IACvB,QAAQ,EAAE,WAAW;IACrB,SAAS,EAAE,YAAY;IACvB,aAAa,EAAE,gBAAgB;IAC/B,OAAO,EAAE,UAAU;IACnB,QAAQ,EAAE,WAAW;IACrB,QAAQ,EAAE,WAAW;IACrB,MAAM,EAAE,SAAS;IACjB,UAAU,EAAE,aAAa;IACzB,QAAQ,EAAE,WAAW;IACrB,QAAQ,EAAE,WAAW;IACrB,QAAQ,EAAE,WAAW;IACrB,YAAY,EAAE,eAAe;IAC7B,QAAQ,EAAE,WAAW;IACrB,UAAU,EAAE,aAAa;IACzB,WAAW,EAAE,cAAc;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,MAAM,CAAC,MAAM,gBAAgB,GAAG,iCAAiC,CAAC;AAClE,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,CAAC;AACrC,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AACpC,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAC;AAEjC,YAAY;AACZ,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,UAAU,EAAE,aAAa;IACzB,SAAS,EAAE,YAAY;IACvB,QAAQ,EAAE,WAAW;IACrB,SAAS,EAAE,YAAY;IACvB,aAAa,EAAE,gBAAgB;IAC/B,OAAO,EAAE,UAAU;IACnB,QAAQ,EAAE,WAAW;IACrB,QAAQ,EAAE,WAAW;IACrB,MAAM,EAAE,SAAS;IACjB,UAAU,EAAE,aAAa;IACzB,oBAAoB,EAAE,wBAAwB;IAC9C,QAAQ,EAAE,WAAW;IACrB,eAAe,EAAE,mBAAmB;IACpC,QAAQ,EAAE,WAAW;IACrB,eAAe,EAAE,mBAAmB;IACpC,QAAQ,EAAE,WAAW;IACrB,YAAY,EAAE,eAAe;IAC7B,QAAQ,EAAE,WAAW;IACrB,UAAU,EAAE,aAAa;IACzB,WAAW,EAAE,cAAc;IAC3B,YAAY,EAAE,gBAAgB;IAC9B,SAAS,EAAE,YAAY;IACvB,SAAS,EAAE,YAAY;IACvB,gBAAgB,EAAE,oBAAoB;IACtC,QAAQ,EAAE,WAAW;IACrB,QAAQ,EAAE,WAAW;IACrB,aAAa,EAAE,iBAAiB;IAChC,KAAK,EAAE,QAAQ;IACf,IAAI,EAAE,OAAO;IACb,aAAa,EAAE,gBAAgB;IAC/B,OAAO,EAAE,UAAU;IACnB,SAAS,EAAE,YAAY;IACvB,KAAK,EAAE,QAAQ;IACf,SAAS,EAAE,YAAY;IACvB,QAAQ,EAAE,WAAW;IACrB,WAAW,EAAE,cAAc;IAC3B,KAAK,EAAE,QAAQ;IACf,gBAAgB,EAAE,oBAAoB;IACtC,kBAAkB,EAAE,sBAAsB;IAC1C,iBAAiB,EAAE,qBAAqB;IACxC,kBAAkB,EAAE,sBAAsB;IAC1C,kBAAkB,EAAE,sBAAsB;IAC1C,wBAAwB,EAAE,6BAA6B;CAC/C,CAAC;AAEX,kEAAkE;AAClE,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,UAAU,EAAE,CAAC,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,SAAS,EAAE,cAAc,CAAU;IACnG,SAAS,EAAE,CAAC,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,eAAe,EAAE,kBAAkB,EAAE,kBAAkB,CAAU;IACrL,QAAQ,EAAE,CAAC,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAU;IAChG,SAAS,EAAE,CAAC,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,mBAAmB,CAAU;IAC/I,aAAa,EAAE,CAAC,aAAa,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,CAAU;IAC5F,QAAQ,EAAE,CAAC,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,uBAAuB,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,CAAU;IAC3H,QAAQ,EAAE,CAAC,aAAa,EAAE,SAAS,EAAE,gBAAgB,CAAU;IAC/D,MAAM,EAAE,CAAC,aAAa,EAAE,SAAS,EAAE,UAAU,CAAU;CAC/C,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
3
3
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
4
4
|
import { initClient } from "./services/boond-client.js";
|
|
5
|
-
import { registerCandidateTools, registerResourceTools, registerContactTools, registerCompanyTools, registerOpportunityTools, registerActionTools, registerTimesheetTools, registerProjectTools, registerInvoiceTools, registerOrderTools, registerDeliveryTools, registerAbsenceTools, registerExpenseTools, registerProductTools, registerPositioningTools, registerPaymentTools, registerAdvantageTools, registerApplicationTools, } from "./tools/index.js";
|
|
5
|
+
import { registerCandidateTools, registerResourceTools, registerContactTools, registerCompanyTools, registerOpportunityTools, registerActionTools, registerTimesheetTools, registerProjectTools, registerInvoiceTools, registerOrderTools, registerDeliveryTools, registerAbsenceTools, registerExpenseTools, registerProductTools, registerPositioningTools, registerPaymentTools, registerAdvantageTools, registerApplicationTools, registerContractTools, registerPurchaseTools, registerProviderInvoiceTools, registerAccountTools, registerAgencyTools, registerBusinessUnitTools, registerRoleTools, registerLogTools, registerNotificationTools, registerThreadTools, registerTodolistTools, registerFlagTools, registerCalendarTools, registerWebhookTools, registerValidationTools, registerPoleTools, registerReportingTools, registerPlanningAbsenceTools, } from "./tools/index.js";
|
|
6
6
|
const server = new McpServer({
|
|
7
7
|
name: "boondmanager-mcp-server",
|
|
8
8
|
version: "1.0.0",
|
|
@@ -26,6 +26,24 @@ registerPositioningTools(server);
|
|
|
26
26
|
registerPaymentTools(server);
|
|
27
27
|
registerAdvantageTools(server);
|
|
28
28
|
registerApplicationTools(server);
|
|
29
|
+
registerContractTools(server);
|
|
30
|
+
registerPurchaseTools(server);
|
|
31
|
+
registerProviderInvoiceTools(server);
|
|
32
|
+
registerAccountTools(server);
|
|
33
|
+
registerAgencyTools(server);
|
|
34
|
+
registerBusinessUnitTools(server);
|
|
35
|
+
registerRoleTools(server);
|
|
36
|
+
registerLogTools(server);
|
|
37
|
+
registerNotificationTools(server);
|
|
38
|
+
registerThreadTools(server);
|
|
39
|
+
registerTodolistTools(server);
|
|
40
|
+
registerFlagTools(server);
|
|
41
|
+
registerCalendarTools(server);
|
|
42
|
+
registerWebhookTools(server);
|
|
43
|
+
registerValidationTools(server);
|
|
44
|
+
registerPoleTools(server);
|
|
45
|
+
registerReportingTools(server);
|
|
46
|
+
registerPlanningAbsenceTools(server);
|
|
29
47
|
// Initialize and run
|
|
30
48
|
async function main() {
|
|
31
49
|
try {
|
|
@@ -38,7 +56,7 @@ async function main() {
|
|
|
38
56
|
const transport = new StdioServerTransport();
|
|
39
57
|
await server.connect(transport);
|
|
40
58
|
console.error("🚀 BoondManager MCP Server running (stdio transport)");
|
|
41
|
-
console.error("📦 Domains: candidates, resources, contacts, companies, opportunities, actions, timesheets, projects, invoices, orders, deliveries, absences, expenses, products, positionings, payments, advantages, application");
|
|
59
|
+
console.error("📦 Domains: candidates, resources, contacts, companies, opportunities, actions, timesheets, projects, invoices, orders, deliveries, absences, expenses, products, positionings, payments, advantages, application, contracts, purchases, provider-invoices, accounts, agencies, business-units, roles, logs, notifications, threads, todolists, flags, calendars, webhooks, validations, poles, reporting, planning-absences");
|
|
42
60
|
}
|
|
43
61
|
main().catch((error) => {
|
|
44
62
|
console.error("Fatal error:", error);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,qBAAqB,EACrB,4BAA4B,EAC5B,oBAAoB,EACpB,mBAAmB,EACnB,yBAAyB,EACzB,iBAAiB,EACjB,gBAAgB,EAChB,yBAAyB,EACzB,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,iBAAiB,EACjB,sBAAsB,EACtB,4BAA4B,GAC7B,MAAM,kBAAkB,CAAC;AAE1B,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;IAC3B,IAAI,EAAE,yBAAyB;IAC/B,OAAO,EAAE,OAAO;CACjB,CAAC,CAAC;AAEH,4BAA4B;AAC5B,sBAAsB,CAAC,MAAM,CAAC,CAAC;AAC/B,qBAAqB,CAAC,MAAM,CAAC,CAAC;AAC9B,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAC7B,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAC7B,wBAAwB,CAAC,MAAM,CAAC,CAAC;AACjC,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAC5B,sBAAsB,CAAC,MAAM,CAAC,CAAC;AAC/B,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAC7B,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAC7B,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAC3B,qBAAqB,CAAC,MAAM,CAAC,CAAC;AAC9B,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAC7B,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAC7B,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAC7B,wBAAwB,CAAC,MAAM,CAAC,CAAC;AACjC,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAC7B,sBAAsB,CAAC,MAAM,CAAC,CAAC;AAC/B,wBAAwB,CAAC,MAAM,CAAC,CAAC;AACjC,qBAAqB,CAAC,MAAM,CAAC,CAAC;AAC9B,qBAAqB,CAAC,MAAM,CAAC,CAAC;AAC9B,4BAA4B,CAAC,MAAM,CAAC,CAAC;AACrC,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAC7B,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAC5B,yBAAyB,CAAC,MAAM,CAAC,CAAC;AAClC,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAC1B,gBAAgB,CAAC,MAAM,CAAC,CAAC;AACzB,yBAAyB,CAAC,MAAM,CAAC,CAAC;AAClC,mBAAmB,CAAC,MAAM,CAAC,CAAC;AAC5B,qBAAqB,CAAC,MAAM,CAAC,CAAC;AAC9B,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAC1B,qBAAqB,CAAC,MAAM,CAAC,CAAC;AAC9B,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAC7B,uBAAuB,CAAC,MAAM,CAAC,CAAC;AAChC,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAC1B,sBAAsB,CAAC,MAAM,CAAC,CAAC;AAC/B,4BAA4B,CAAC,MAAM,CAAC,CAAC;AAErC,qBAAqB;AACrB,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC;QACH,UAAU,EAAE,CAAC;IACf,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;QACtE,OAAO,CAAC,KAAK,CAAC,2EAA2E,CAAC,CAAC;IAC7F,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;IACtE,OAAO,CAAC,KAAK,CAAC,8ZAA8Z,CAAC,CAAC;AAChb,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|