@bitwarden/mcp-server 2025.10.1 → 2025.10.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.
- package/README.md +40 -11
- package/dist/handlers/cli.d.ts.map +1 -1
- package/dist/handlers/cli.js +44 -64
- package/dist/handlers/cli.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/tools/api.d.ts +6 -0
- package/dist/tools/api.d.ts.map +1 -1
- package/dist/tools/cli.d.ts +6 -0
- package/dist/tools/cli.d.ts.map +1 -1
- package/dist/utils/api.js +1 -1
- package/dist/utils/cli.d.ts +6 -2
- package/dist/utils/cli.d.ts.map +1 -1
- package/dist/utils/cli.js +40 -17
- package/dist/utils/cli.js.map +1 -1
- package/dist/utils/security.d.ts +20 -5
- package/dist/utils/security.d.ts.map +1 -1
- package/dist/utils/security.js +137 -28
- package/dist/utils/security.js.map +1 -1
- package/package.json +14 -14
package/README.md
CHANGED
|
@@ -7,6 +7,34 @@ A Model Context Protocol (MCP) server that provides AI assistants with secure ac
|
|
|
7
7
|
|
|
8
8
|
[](https://www.npmjs.com/package/@bitwarden/mcp-server)
|
|
9
9
|
|
|
10
|
+
> [!WARNING]
|
|
11
|
+
> This MCP server is designed exclusively for local use and must never be hosted publicly or exposed over a network.
|
|
12
|
+
>
|
|
13
|
+
> When you grant an AI assistant access to this server, you are providing the ability to:
|
|
14
|
+
>
|
|
15
|
+
> - Read vault items including passwords, secure notes, and sensitive data
|
|
16
|
+
> - Create, modify, and delete vault items
|
|
17
|
+
> - Access organization secrets and administrative functions
|
|
18
|
+
> - Expose credentials and vault contents through AI responses
|
|
19
|
+
>
|
|
20
|
+
> **You are responsible for:**
|
|
21
|
+
>
|
|
22
|
+
> - Ensuring this server runs only on your local machine or self-hosted environment
|
|
23
|
+
> - Understanding what data you're exposing to your AI assistant
|
|
24
|
+
> - Being aware that AI responses may inadvertently reveal sensitive information
|
|
25
|
+
> - Using appropriate AI providers (consider self-hosted or local LLMs for sensitive data)
|
|
26
|
+
> - Never sharing configuration files containing session tokens or API credentials
|
|
27
|
+
> - Monitoring logs for unexpected activity
|
|
28
|
+
>
|
|
29
|
+
> **Never:**
|
|
30
|
+
>
|
|
31
|
+
> - Deploy this server to cloud hosting, containers, or public servers
|
|
32
|
+
> - Share your MCP configuration files with others
|
|
33
|
+
> - Use this server over untrusted networks
|
|
34
|
+
> - Grant access to untrusted AI clients or services
|
|
35
|
+
>
|
|
36
|
+
> Use this tool responsibly and at your own risk.
|
|
37
|
+
|
|
10
38
|
## What is MCP?
|
|
11
39
|
|
|
12
40
|
The [Model Context Protocol](https://modelcontextprotocol.io/) is an open standard that enables AI assistants to securely interact with local tools and services. This server exposes Bitwarden's vault management and organization administration capabilities to MCP-compatible AI clients like Claude Desktop.
|
|
@@ -55,6 +83,9 @@ The [Model Context Protocol](https://modelcontextprotocol.io/) is an open standa
|
|
|
55
83
|
|
|
56
84
|
### Configuration
|
|
57
85
|
|
|
86
|
+
> [!WARNING]
|
|
87
|
+
> The configuration files below will contain sensitive credentials that grant access to your Bitwarden vault. Keep these files secure, never commit them to version control, and never share them with others. Ensure your MCP client (e.g., Claude Desktop) is configured to run the server locally only.
|
|
88
|
+
|
|
58
89
|
#### Option 1: Claude Desktop (Recommended)
|
|
59
90
|
|
|
60
91
|
Add to your Claude Desktop configuration file:
|
|
@@ -139,13 +170,14 @@ Any MCP-compatible client can connect to this server via stdio transport. Refer
|
|
|
139
170
|
|
|
140
171
|
### Environment Variables
|
|
141
172
|
|
|
142
|
-
| Variable
|
|
143
|
-
|
|
|
144
|
-
| `BW_SESSION`
|
|
145
|
-
| `BW_CLIENT_ID`
|
|
146
|
-
| `BW_CLIENT_SECRET`
|
|
147
|
-
| `BW_API_BASE_URL`
|
|
148
|
-
| `BW_IDENTITY_URL`
|
|
173
|
+
| Variable | Required For | Description | Default |
|
|
174
|
+
| ------------------------ | --------------- | ------------------------------------------------ | ---------------------------------- |
|
|
175
|
+
| `BW_SESSION` | CLI operations | Session token from `bw unlock --raw` | - |
|
|
176
|
+
| `BW_CLIENT_ID` | API operations | Organization API client ID | - |
|
|
177
|
+
| `BW_CLIENT_SECRET` | API operations | Organization API client secret | - |
|
|
178
|
+
| `BW_API_BASE_URL` | API operations | Bitwarden API base URL | `https://api.bitwarden.com` |
|
|
179
|
+
| `BW_IDENTITY_URL` | API operations | OAuth2 identity server URL | `https://identity.bitwarden.com` |
|
|
180
|
+
| `BW_ALLOWED_DIRECTORIES` | File operations | Comma-separated list of allowed file directories | `os.tmpdir() + '/bitwarden-files'` |
|
|
149
181
|
|
|
150
182
|
**Note:** For self-hosted Bitwarden instances, set `BW_API_BASE_URL` and `BW_IDENTITY_URL` to your server URLs.
|
|
151
183
|
|
|
@@ -266,7 +298,7 @@ export DEBUG=bitwarden:*
|
|
|
266
298
|
export NODE_ENV=development
|
|
267
299
|
```
|
|
268
300
|
|
|
269
|
-
## Security
|
|
301
|
+
## Security Considerations
|
|
270
302
|
|
|
271
303
|
- **Never commit** sensitive credentials (`BW_SESSION`, `BW_CLIENT_ID`, `BW_CLIENT_SECRET`)
|
|
272
304
|
- **Use environment variables** for all sensitive configuration
|
|
@@ -287,7 +319,6 @@ export NODE_ENV=development
|
|
|
287
319
|
```
|
|
288
320
|
|
|
289
321
|
- **Session key is invalid**
|
|
290
|
-
|
|
291
322
|
- Session tokens expire after inactivity
|
|
292
323
|
- Run `bw unlock --raw` to get a fresh token
|
|
293
324
|
- Update your MCP configuration with the new token
|
|
@@ -295,13 +326,11 @@ export NODE_ENV=development
|
|
|
295
326
|
### API Issues
|
|
296
327
|
|
|
297
328
|
- **Invalid client credentials**
|
|
298
|
-
|
|
299
329
|
- Verify `BW_CLIENT_ID` starts with `organization.`
|
|
300
330
|
- Ensure `BW_CLIENT_SECRET` is correct
|
|
301
331
|
- Check that API keys haven't been rotated in the Admin Console
|
|
302
332
|
|
|
303
333
|
- **403 Forbidden**
|
|
304
|
-
|
|
305
334
|
- Verify you have organization owner or admin permissions
|
|
306
335
|
- Some operations require specific roles (e.g., managing members)
|
|
307
336
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/handlers/cli.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/handlers/cli.ts"],"names":[],"mappings":"AAAA;;GAEG;AA0DH,eAAO,MAAM,UAAU;;;;;;EAGrB,CAAC;AAEH,eAAO,MAAM,UAAU;;;;;;EAGrB,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;EAGvB,CAAC;AAEH,eAAO,MAAM,UAAU;;;;;;EAwBrB,CAAC;AAEH,eAAO,MAAM,SAAS;;;;;;EAcpB,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;EAqC1B,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;;EAsF5B,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;EAW9B,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;EA+H1B,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;;EAe5B,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;EAWxB,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;EAYzB,CAAC;AAEF,eAAO,MAAM,yBAAyB;;;;;;EAgCrC,CAAC;AAEF,eAAO,MAAM,uBAAuB;;;;;;EA0DnC,CAAC;AAEF,eAAO,MAAM,yBAAyB;;;;;;EAqBrC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,UAAU;;;;;;EAiBtB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB;;;;;;EAWpC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B;;;;;;EAYvC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,8BAA8B;;;;;;EAW1C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB;;;;;;EAYpC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B;;;;;;EAWvC,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;EAOzB,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;EAwChC,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;EAqChC,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;EAGzB,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;EAOzB,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;EAoD1B,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;;EAO5B,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;;EAOpC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;EAalC,CAAC"}
|
package/dist/handlers/cli.js
CHANGED
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { executeCliCommand } from '../utils/cli.js';
|
|
5
5
|
import { withValidation } from '../utils/validation.js';
|
|
6
|
-
import { buildSafeCommand } from '../utils/security.js';
|
|
7
6
|
import { lockSchema, syncSchema, statusSchema, listSchema, getSchema, generateSchema, createItemSchema, createFolderSchema, editItemSchema, editFolderSchema, deleteSchema, confirmSchema, createOrgCollectionSchema, editOrgCollectionSchema, editItemCollectionsSchema, moveSchema, deviceApprovalListSchema, deviceApprovalApproveSchema, deviceApprovalApproveAllSchema, deviceApprovalDenySchema, deviceApprovalDenyAllSchema, restoreSchema, createTextSendSchema, createFileSendSchema, listSendSchema, getSendSchema, editSendSchema, deleteSendSchema, removeSendPasswordSchema, createAttachmentSchema, } from '../schemas/cli.js';
|
|
8
7
|
function toMcpFormat(response) {
|
|
9
8
|
return {
|
|
@@ -19,15 +18,15 @@ function toMcpFormat(response) {
|
|
|
19
18
|
};
|
|
20
19
|
}
|
|
21
20
|
export const handleLock = withValidation(lockSchema, async () => {
|
|
22
|
-
const response = await executeCliCommand('lock');
|
|
21
|
+
const response = await executeCliCommand('lock', []);
|
|
23
22
|
return toMcpFormat(response);
|
|
24
23
|
});
|
|
25
24
|
export const handleSync = withValidation(syncSchema, async () => {
|
|
26
|
-
const response = await executeCliCommand('sync');
|
|
25
|
+
const response = await executeCliCommand('sync', []);
|
|
27
26
|
return toMcpFormat(response);
|
|
28
27
|
});
|
|
29
28
|
export const handleStatus = withValidation(statusSchema, async () => {
|
|
30
|
-
const response = await executeCliCommand('status');
|
|
29
|
+
const response = await executeCliCommand('status', []);
|
|
31
30
|
return toMcpFormat(response);
|
|
32
31
|
});
|
|
33
32
|
export const handleList = withValidation(listSchema, async (validatedArgs) => {
|
|
@@ -51,8 +50,7 @@ export const handleList = withValidation(listSchema, async (validatedArgs) => {
|
|
|
51
50
|
if (trash) {
|
|
52
51
|
params.push('--trash');
|
|
53
52
|
}
|
|
54
|
-
const
|
|
55
|
-
const response = await executeCliCommand(command);
|
|
53
|
+
const response = await executeCliCommand('list', params);
|
|
56
54
|
return toMcpFormat(response);
|
|
57
55
|
});
|
|
58
56
|
export const handleGet = withValidation(getSchema, async (validatedArgs) => {
|
|
@@ -67,8 +65,7 @@ export const handleGet = withValidation(getSchema, async (validatedArgs) => {
|
|
|
67
65
|
if (output) {
|
|
68
66
|
params.push('--output', output);
|
|
69
67
|
}
|
|
70
|
-
const
|
|
71
|
-
const response = await executeCliCommand(command);
|
|
68
|
+
const response = await executeCliCommand('get', params);
|
|
72
69
|
return toMcpFormat(response);
|
|
73
70
|
});
|
|
74
71
|
export const handleGenerate = withValidation(generateSchema, async (validatedArgs) => {
|
|
@@ -102,8 +99,7 @@ export const handleGenerate = withValidation(generateSchema, async (validatedArg
|
|
|
102
99
|
params.push('--noSpecial');
|
|
103
100
|
}
|
|
104
101
|
}
|
|
105
|
-
const
|
|
106
|
-
const response = await executeCliCommand(command);
|
|
102
|
+
const response = await executeCliCommand('generate', params);
|
|
107
103
|
return toMcpFormat(response);
|
|
108
104
|
});
|
|
109
105
|
export const handleCreateItem = withValidation(createItemSchema, async (validatedArgs) => {
|
|
@@ -200,8 +196,7 @@ export const handleCreateItem = withValidation(createItemSchema, async (validate
|
|
|
200
196
|
}
|
|
201
197
|
const itemJson = JSON.stringify(item);
|
|
202
198
|
const encodedItem = Buffer.from(itemJson).toString('base64');
|
|
203
|
-
const
|
|
204
|
-
const response = await executeCliCommand(command);
|
|
199
|
+
const response = await executeCliCommand('create', ['item', encodedItem]);
|
|
205
200
|
return toMcpFormat(response);
|
|
206
201
|
});
|
|
207
202
|
export const handleCreateFolder = withValidation(createFolderSchema, async (validatedArgs) => {
|
|
@@ -209,15 +204,13 @@ export const handleCreateFolder = withValidation(createFolderSchema, async (vali
|
|
|
209
204
|
const folder = { name };
|
|
210
205
|
const itemJson = JSON.stringify(folder);
|
|
211
206
|
const encodedItem = Buffer.from(itemJson).toString('base64');
|
|
212
|
-
const
|
|
213
|
-
const response = await executeCliCommand(command);
|
|
207
|
+
const response = await executeCliCommand('create', ['folder', encodedItem]);
|
|
214
208
|
return toMcpFormat(response);
|
|
215
209
|
});
|
|
216
210
|
export const handleEditItem = withValidation(editItemSchema, async (validatedArgs) => {
|
|
217
211
|
const { id, name, notes, login, card, identity, secureNote, folderId } = validatedArgs;
|
|
218
212
|
// First, get the existing item
|
|
219
|
-
const
|
|
220
|
-
const getResponse = await executeCliCommand(getCommand);
|
|
213
|
+
const getResponse = await executeCliCommand('get', ['item', id]);
|
|
221
214
|
if (getResponse.errorOutput) {
|
|
222
215
|
return toMcpFormat(getResponse);
|
|
223
216
|
}
|
|
@@ -317,8 +310,11 @@ export const handleEditItem = withValidation(editItemSchema, async (validatedArg
|
|
|
317
310
|
}
|
|
318
311
|
const updatesJson = JSON.stringify(existingItem);
|
|
319
312
|
const encodedUpdates = Buffer.from(updatesJson).toString('base64');
|
|
320
|
-
const
|
|
321
|
-
|
|
313
|
+
const response = await executeCliCommand('edit', [
|
|
314
|
+
'item',
|
|
315
|
+
id,
|
|
316
|
+
encodedUpdates,
|
|
317
|
+
]);
|
|
322
318
|
return toMcpFormat(response);
|
|
323
319
|
}
|
|
324
320
|
catch (error) {
|
|
@@ -333,8 +329,11 @@ export const handleEditFolder = withValidation(editFolderSchema, async (validate
|
|
|
333
329
|
const folder = { name };
|
|
334
330
|
const itemJson = JSON.stringify(folder);
|
|
335
331
|
const encodedItem = Buffer.from(itemJson).toString('base64');
|
|
336
|
-
const
|
|
337
|
-
|
|
332
|
+
const response = await executeCliCommand('edit', [
|
|
333
|
+
'folder',
|
|
334
|
+
id,
|
|
335
|
+
encodedItem,
|
|
336
|
+
]);
|
|
338
337
|
return toMcpFormat(response);
|
|
339
338
|
});
|
|
340
339
|
export const handleDelete = withValidation(deleteSchema, async (validatedArgs) => {
|
|
@@ -343,19 +342,17 @@ export const handleDelete = withValidation(deleteSchema, async (validatedArgs) =
|
|
|
343
342
|
if (permanent) {
|
|
344
343
|
params.push('--permanent');
|
|
345
344
|
}
|
|
346
|
-
const
|
|
347
|
-
const response = await executeCliCommand(command);
|
|
345
|
+
const response = await executeCliCommand('delete', params);
|
|
348
346
|
return toMcpFormat(response);
|
|
349
347
|
});
|
|
350
348
|
export const handleConfirm = withValidation(confirmSchema, async (validatedArgs) => {
|
|
351
349
|
const { organizationId, memberId } = validatedArgs;
|
|
352
|
-
const
|
|
350
|
+
const response = await executeCliCommand('confirm', [
|
|
353
351
|
'org-member',
|
|
354
352
|
memberId,
|
|
355
353
|
'--organizationid',
|
|
356
354
|
organizationId,
|
|
357
355
|
]);
|
|
358
|
-
const response = await executeCliCommand(command);
|
|
359
356
|
return toMcpFormat(response);
|
|
360
357
|
});
|
|
361
358
|
export const handleCreateOrgCollection = withValidation(createOrgCollectionSchema, async (validatedArgs) => {
|
|
@@ -375,25 +372,23 @@ export const handleCreateOrgCollection = withValidation(createOrgCollectionSchem
|
|
|
375
372
|
const collectionJson = JSON.stringify(collection);
|
|
376
373
|
const encodedJson = Buffer.from(collectionJson, 'utf8').toString('base64');
|
|
377
374
|
// Build the command
|
|
378
|
-
const
|
|
375
|
+
const response = await executeCliCommand('create', [
|
|
379
376
|
'org-collection',
|
|
380
377
|
encodedJson,
|
|
381
378
|
'--organizationid',
|
|
382
379
|
organizationId,
|
|
383
380
|
]);
|
|
384
|
-
const response = await executeCliCommand(command);
|
|
385
381
|
return toMcpFormat(response);
|
|
386
382
|
});
|
|
387
383
|
export const handleEditOrgCollection = withValidation(editOrgCollectionSchema, async (validatedArgs) => {
|
|
388
384
|
const { organizationId, collectionId, name, externalId, groups } = validatedArgs;
|
|
389
385
|
// First, get the existing collection
|
|
390
|
-
const
|
|
386
|
+
const getResponse = await executeCliCommand('get', [
|
|
391
387
|
'org-collection',
|
|
392
388
|
collectionId,
|
|
393
389
|
'--organizationid',
|
|
394
390
|
organizationId,
|
|
395
391
|
]);
|
|
396
|
-
const getResponse = await executeCliCommand(getCommand);
|
|
397
392
|
if (getResponse.errorOutput) {
|
|
398
393
|
return toMcpFormat(getResponse);
|
|
399
394
|
}
|
|
@@ -425,14 +420,13 @@ export const handleEditOrgCollection = withValidation(editOrgCollectionSchema, a
|
|
|
425
420
|
const collectionJson = JSON.stringify(collection);
|
|
426
421
|
const encodedJson = Buffer.from(collectionJson, 'utf8').toString('base64');
|
|
427
422
|
// Build the command
|
|
428
|
-
const
|
|
423
|
+
const response = await executeCliCommand('edit', [
|
|
429
424
|
'org-collection',
|
|
430
425
|
collectionId,
|
|
431
426
|
encodedJson,
|
|
432
427
|
'--organizationid',
|
|
433
428
|
organizationId,
|
|
434
429
|
]);
|
|
435
|
-
const response = await executeCliCommand(command);
|
|
436
430
|
return toMcpFormat(response);
|
|
437
431
|
});
|
|
438
432
|
export const handleEditItemCollections = withValidation(editItemCollectionsSchema, async (validatedArgs) => {
|
|
@@ -441,14 +435,13 @@ export const handleEditItemCollections = withValidation(editItemCollectionsSchem
|
|
|
441
435
|
const collectionIdsJson = JSON.stringify(collectionIds);
|
|
442
436
|
const encodedJson = Buffer.from(collectionIdsJson, 'utf8').toString('base64');
|
|
443
437
|
// Build the command
|
|
444
|
-
const
|
|
438
|
+
const response = await executeCliCommand('edit', [
|
|
445
439
|
'item-collections',
|
|
446
440
|
itemId,
|
|
447
441
|
encodedJson,
|
|
448
442
|
'--organizationid',
|
|
449
443
|
organizationId,
|
|
450
444
|
]);
|
|
451
|
-
const response = await executeCliCommand(command);
|
|
452
445
|
return toMcpFormat(response);
|
|
453
446
|
});
|
|
454
447
|
/**
|
|
@@ -462,12 +455,11 @@ export const handleMove = withValidation(moveSchema, async ({ itemId, organizati
|
|
|
462
455
|
const collectionIdsJson = JSON.stringify(collectionIds);
|
|
463
456
|
const encodedJson = Buffer.from(collectionIdsJson, 'utf8').toString('base64');
|
|
464
457
|
// Build the command
|
|
465
|
-
const
|
|
458
|
+
const response = await executeCliCommand('move', [
|
|
466
459
|
itemId,
|
|
467
460
|
organizationId,
|
|
468
461
|
encodedJson,
|
|
469
462
|
]);
|
|
470
|
-
const response = await executeCliCommand(command);
|
|
471
463
|
return toMcpFormat(response);
|
|
472
464
|
});
|
|
473
465
|
/**
|
|
@@ -478,12 +470,11 @@ export const handleMove = withValidation(moveSchema, async ({ itemId, organizati
|
|
|
478
470
|
*/
|
|
479
471
|
export const handleDeviceApprovalList = withValidation(deviceApprovalListSchema, async ({ organizationId }) => {
|
|
480
472
|
// Build the command
|
|
481
|
-
const
|
|
473
|
+
const response = await executeCliCommand('device-approval', [
|
|
482
474
|
'list',
|
|
483
475
|
'--organizationid',
|
|
484
476
|
organizationId,
|
|
485
477
|
]);
|
|
486
|
-
const response = await executeCliCommand(command);
|
|
487
478
|
return toMcpFormat(response);
|
|
488
479
|
});
|
|
489
480
|
/**
|
|
@@ -494,13 +485,12 @@ export const handleDeviceApprovalList = withValidation(deviceApprovalListSchema,
|
|
|
494
485
|
*/
|
|
495
486
|
export const handleDeviceApprovalApprove = withValidation(deviceApprovalApproveSchema, async ({ organizationId, requestId }) => {
|
|
496
487
|
// Build the command
|
|
497
|
-
const
|
|
488
|
+
const response = await executeCliCommand('device-approval', [
|
|
498
489
|
'approve',
|
|
499
490
|
'--organizationid',
|
|
500
491
|
organizationId,
|
|
501
492
|
requestId,
|
|
502
493
|
]);
|
|
503
|
-
const response = await executeCliCommand(command);
|
|
504
494
|
return toMcpFormat(response);
|
|
505
495
|
});
|
|
506
496
|
/**
|
|
@@ -511,12 +501,11 @@ export const handleDeviceApprovalApprove = withValidation(deviceApprovalApproveS
|
|
|
511
501
|
*/
|
|
512
502
|
export const handleDeviceApprovalApproveAll = withValidation(deviceApprovalApproveAllSchema, async ({ organizationId }) => {
|
|
513
503
|
// Build the command
|
|
514
|
-
const
|
|
504
|
+
const response = await executeCliCommand('device-approval', [
|
|
515
505
|
'approve-all',
|
|
516
506
|
'--organizationid',
|
|
517
507
|
organizationId,
|
|
518
508
|
]);
|
|
519
|
-
const response = await executeCliCommand(command);
|
|
520
509
|
return toMcpFormat(response);
|
|
521
510
|
});
|
|
522
511
|
/**
|
|
@@ -527,13 +516,12 @@ export const handleDeviceApprovalApproveAll = withValidation(deviceApprovalAppro
|
|
|
527
516
|
*/
|
|
528
517
|
export const handleDeviceApprovalDeny = withValidation(deviceApprovalDenySchema, async ({ organizationId, requestId }) => {
|
|
529
518
|
// Build the command
|
|
530
|
-
const
|
|
519
|
+
const response = await executeCliCommand('device-approval', [
|
|
531
520
|
'deny',
|
|
532
521
|
'--organizationid',
|
|
533
522
|
organizationId,
|
|
534
523
|
requestId,
|
|
535
524
|
]);
|
|
536
|
-
const response = await executeCliCommand(command);
|
|
537
525
|
return toMcpFormat(response);
|
|
538
526
|
});
|
|
539
527
|
/**
|
|
@@ -544,18 +532,16 @@ export const handleDeviceApprovalDeny = withValidation(deviceApprovalDenySchema,
|
|
|
544
532
|
*/
|
|
545
533
|
export const handleDeviceApprovalDenyAll = withValidation(deviceApprovalDenyAllSchema, async ({ organizationId }) => {
|
|
546
534
|
// Build the command
|
|
547
|
-
const
|
|
535
|
+
const response = await executeCliCommand('device-approval', [
|
|
548
536
|
'deny-all',
|
|
549
537
|
'--organizationid',
|
|
550
538
|
organizationId,
|
|
551
539
|
]);
|
|
552
|
-
const response = await executeCliCommand(command);
|
|
553
540
|
return toMcpFormat(response);
|
|
554
541
|
});
|
|
555
542
|
export const handleRestore = withValidation(restoreSchema, async (validatedArgs) => {
|
|
556
543
|
const { object, id } = validatedArgs;
|
|
557
|
-
const
|
|
558
|
-
const response = await executeCliCommand(command);
|
|
544
|
+
const response = await executeCliCommand('restore', [object, id]);
|
|
559
545
|
return toMcpFormat(response);
|
|
560
546
|
});
|
|
561
547
|
export const handleCreateTextSend = withValidation(createTextSendSchema, async (validatedArgs) => {
|
|
@@ -583,8 +569,7 @@ export const handleCreateTextSend = withValidation(createTextSendSchema, async (
|
|
|
583
569
|
send.expirationDate = expirationDate;
|
|
584
570
|
const sendJson = JSON.stringify(send);
|
|
585
571
|
const encodedSend = Buffer.from(sendJson).toString('base64');
|
|
586
|
-
const
|
|
587
|
-
const response = await executeCliCommand(command);
|
|
572
|
+
const response = await executeCliCommand('send', ['create', encodedSend]);
|
|
588
573
|
return toMcpFormat(response);
|
|
589
574
|
});
|
|
590
575
|
export const handleCreateFileSend = withValidation(createFileSendSchema, async (validatedArgs) => {
|
|
@@ -606,31 +591,27 @@ export const handleCreateFileSend = withValidation(createFileSendSchema, async (
|
|
|
606
591
|
send.expirationDate = expirationDate;
|
|
607
592
|
const sendJson = JSON.stringify(send);
|
|
608
593
|
const encodedSend = Buffer.from(sendJson).toString('base64');
|
|
609
|
-
const
|
|
594
|
+
const response = await executeCliCommand('send', [
|
|
610
595
|
'create',
|
|
611
596
|
encodedSend,
|
|
612
597
|
'--file',
|
|
613
598
|
filePath,
|
|
614
599
|
]);
|
|
615
|
-
const response = await executeCliCommand(command);
|
|
616
600
|
return toMcpFormat(response);
|
|
617
601
|
});
|
|
618
602
|
export const handleListSend = withValidation(listSendSchema, async () => {
|
|
619
|
-
const
|
|
620
|
-
const response = await executeCliCommand(command);
|
|
603
|
+
const response = await executeCliCommand('send', ['list']);
|
|
621
604
|
return toMcpFormat(response);
|
|
622
605
|
});
|
|
623
606
|
export const handleGetSend = withValidation(getSendSchema, async (validatedArgs) => {
|
|
624
607
|
const { id } = validatedArgs;
|
|
625
|
-
const
|
|
626
|
-
const response = await executeCliCommand(command);
|
|
608
|
+
const response = await executeCliCommand('send', ['get', id]);
|
|
627
609
|
return toMcpFormat(response);
|
|
628
610
|
});
|
|
629
611
|
export const handleEditSend = withValidation(editSendSchema, async (validatedArgs) => {
|
|
630
612
|
const { id, name, notes, password, maxAccessCount, expirationDate, deletionDate, disabled, } = validatedArgs;
|
|
631
613
|
// First, get the existing Send
|
|
632
|
-
const
|
|
633
|
-
const getResponse = await executeCliCommand(getCommand);
|
|
614
|
+
const getResponse = await executeCliCommand('send', ['get', id]);
|
|
634
615
|
if (getResponse.errorOutput) {
|
|
635
616
|
return toMcpFormat(getResponse);
|
|
636
617
|
}
|
|
@@ -654,8 +635,10 @@ export const handleEditSend = withValidation(editSendSchema, async (validatedArg
|
|
|
654
635
|
existingSend.disabled = disabled;
|
|
655
636
|
const updatesJson = JSON.stringify(existingSend);
|
|
656
637
|
const encodedUpdates = Buffer.from(updatesJson).toString('base64');
|
|
657
|
-
const
|
|
658
|
-
|
|
638
|
+
const response = await executeCliCommand('send', [
|
|
639
|
+
'edit',
|
|
640
|
+
encodedUpdates,
|
|
641
|
+
]);
|
|
659
642
|
return toMcpFormat(response);
|
|
660
643
|
}
|
|
661
644
|
catch (error) {
|
|
@@ -667,26 +650,23 @@ export const handleEditSend = withValidation(editSendSchema, async (validatedArg
|
|
|
667
650
|
});
|
|
668
651
|
export const handleDeleteSend = withValidation(deleteSendSchema, async (validatedArgs) => {
|
|
669
652
|
const { id } = validatedArgs;
|
|
670
|
-
const
|
|
671
|
-
const response = await executeCliCommand(command);
|
|
653
|
+
const response = await executeCliCommand('send', ['delete', id]);
|
|
672
654
|
return toMcpFormat(response);
|
|
673
655
|
});
|
|
674
656
|
export const handleRemoveSendPassword = withValidation(removeSendPasswordSchema, async (validatedArgs) => {
|
|
675
657
|
const { id } = validatedArgs;
|
|
676
|
-
const
|
|
677
|
-
const response = await executeCliCommand(command);
|
|
658
|
+
const response = await executeCliCommand('send', ['remove-password', id]);
|
|
678
659
|
return toMcpFormat(response);
|
|
679
660
|
});
|
|
680
661
|
export const handleCreateAttachment = withValidation(createAttachmentSchema, async (validatedArgs) => {
|
|
681
662
|
const { filePath, itemId } = validatedArgs;
|
|
682
|
-
const
|
|
663
|
+
const response = await executeCliCommand('create', [
|
|
683
664
|
'attachment',
|
|
684
665
|
'--file',
|
|
685
666
|
filePath,
|
|
686
667
|
'--itemid',
|
|
687
668
|
itemId,
|
|
688
669
|
]);
|
|
689
|
-
const response = await executeCliCommand(command);
|
|
690
670
|
return toMcpFormat(response);
|
|
691
671
|
});
|
|
692
672
|
//# sourceMappingURL=cli.js.map
|
package/dist/handlers/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/handlers/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/handlers/cli.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EACL,UAAU,EACV,UAAU,EACV,YAAY,EACZ,UAAU,EACV,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,yBAAyB,EACzB,uBAAuB,EACvB,yBAAyB,EACzB,UAAU,EACV,wBAAwB,EACxB,2BAA2B,EAC3B,8BAA8B,EAC9B,wBAAwB,EACxB,2BAA2B,EAC3B,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAQ3B,SAAS,WAAW,CAAC,QAAqB;IACxC,OAAO;QACL,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;QAC5C,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EACF,QAAQ,CAAC,MAAM;oBACf,QAAQ,CAAC,WAAW;oBACpB,8BAA8B;aACjC;SACF;KACF,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;IAC9D,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACrD,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;IAC9D,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACrD,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE;IAClE,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACvD,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE;IAC3E,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,GACxE,aAAa,CAAC;IAChB,MAAM,MAAM,GAAa,CAAC,IAAI,CAAC,CAAC;IAChC,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,YAAY,EAAE,CAAC;QACjB,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;IAC9C,CAAC;IACD,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACzB,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzD,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG,cAAc,CAAC,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE;IACzE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC;IACrE,MAAM,MAAM,GAAa,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACtC,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,cAAc,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAClC,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACxD,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,CAC1C,cAAc,EACd,KAAK,EAAE,aAAa,EAAE,EAAE;IACtB,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,IAAI,aAAa,CAAC,UAAU,EAAE,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5B,IAAI,aAAa,CAAC,KAAK,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,aAAa,CAAC,SAAS,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,aAAa,CAAC,UAAU,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,aAAa,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,aAAa,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,aAAa,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YACnC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7B,CAAC;QACD,IAAI,aAAa,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YACpC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC7D,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,cAAc,CAC5C,gBAAgB,EAChB,KAAK,EAAE,aAAa,EAAE,EAAE;IACtB,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,GACtE,aAAa,CAAC;IAEhB,2CAA2C;IAC3C,MAAM,IAAI,GAAkB;QAC1B,IAAI;QACJ,IAAI;KACL,CAAC;IAEF,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,4CAA4C;IAC5C,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,EAAE,CAAC;QACxB,aAAa;QACb,MAAM,SAAS,GAA2B,EAAE,CAAC;QAC7C,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS;YAAE,SAAS,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QACtE,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS;YAAE,SAAS,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QACtE,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;YAAE,SAAS,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QAC1D,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;YAAE,SAAS,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QAC1D,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;IACzB,CAAC;SAAM,IAAI,IAAI,KAAK,CAAC,IAAI,UAAU,EAAE,CAAC;QACpC,mBAAmB;QACnB,MAAM,cAAc,GAAgC,EAAE,CAAC;QACvD,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS;YAAE,cAAc,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;QACzE,IAAI,CAAC,UAAU,GAAG,cAAc,CAAC;IACnC,CAAC;SAAM,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;QAC9B,YAAY;QACZ,MAAM,QAAQ,GAA0B,EAAE,CAAC;QAC3C,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS;YACnC,QAAQ,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAChD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;YAAE,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC7D,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;YAAE,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAC1D,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;YAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACnE,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;YAAE,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAChE,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;YAAE,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvD,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;IACvB,CAAC;SAAM,IAAI,IAAI,KAAK,CAAC,IAAI,QAAQ,EAAE,CAAC;QAClC,gBAAgB;QAChB,MAAM,YAAY,GAA8B,EAAE,CAAC;QACnD,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS;YAAE,YAAY,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QACtE,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS;YAClC,YAAY,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QAC9C,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS;YACnC,YAAY,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;QAChD,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS;YACjC,YAAY,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAC5C,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS;YACjC,YAAY,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAC5C,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS;YACjC,YAAY,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAC5C,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS;YACjC,YAAY,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAC5C,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS;YAAE,YAAY,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;QACnE,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS;YAAE,YAAY,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QACtE,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS;YACnC,YAAY,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;QAChD,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS;YAChC,YAAY,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;QAC1C,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS;YAChC,YAAY,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;QAC1C,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS;YAAE,YAAY,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QACtE,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS;YAAE,YAAY,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QACtE,IAAI,QAAQ,CAAC,GAAG,KAAK,SAAS;YAAE,YAAY,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;QAChE,IAAI,QAAQ,CAAC,QAAQ,KAAK,SAAS;YACjC,YAAY,CAAC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC;QAC5C,IAAI,QAAQ,CAAC,cAAc,KAAK,SAAS;YACvC,YAAY,CAAC,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC;QACxD,IAAI,QAAQ,CAAC,aAAa,KAAK,SAAS;YACtC,YAAY,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC;QACtD,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC;IAC/B,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;IAC1E,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,cAAc,CAC9C,kBAAkB,EAClB,KAAK,EAAE,aAAa,EAAE,EAAE;IACtB,MAAM,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC;IAE/B,MAAM,MAAM,GAAoB,EAAE,IAAI,EAAE,CAAC;IACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;IAC5E,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,CAC1C,cAAc,EACd,KAAK,EAAE,aAAa,EAAE,EAAE;IACtB,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,GACpE,aAAa,CAAC;IAEhB,+BAA+B;IAC/B,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;IAEjE,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;QAC5B,OAAO,WAAW,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,CAAC;QACH,6CAA6C;QAC7C,MAAM,YAAY,GAAkB,IAAI,CAAC,KAAK,CAC5C,WAAW,CAAC,MAAM,IAAI,IAAI,CAC3B,CAAC;QAEF,4CAA4C;QAC5C,IAAI,IAAI,KAAK,SAAS;YAAE,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC;QACjD,IAAI,KAAK,KAAK,SAAS;YAAE,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC;QACpD,IAAI,QAAQ,KAAK,SAAS;YAAE,YAAY,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAE7D,4BAA4B;QAC5B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,kDAAkD;YAClD,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC;YAC9C,MAAM,YAAY,GAA2B;gBAC3C,GAAG,YAAY;gBACf,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACjE,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACjE,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;gBACrD,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;aACtD,CAAC;YACF,YAAY,CAAC,KAAK,GAAG,YAAY,CAAC;QACpC,CAAC;QAED,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,gDAAgD;YAChD,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,IAAI,EAAE,CAAC;YAC5C,MAAM,WAAW,GAA0B;gBACzC,GAAG,WAAW;gBACd,GAAG,CAAC,IAAI,CAAC,cAAc,KAAK,SAAS,IAAI;oBACvC,cAAc,EAAE,IAAI,CAAC,cAAc;iBACpC,CAAC;gBACF,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;gBACzD,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;gBACtD,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC/D,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC5D,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;aACpD,CAAC;YACF,YAAY,CAAC,IAAI,GAAG,WAAW,CAAC;QAClC,CAAC;QAED,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,wDAAwD;YACxD,MAAM,eAAe,GAAG,YAAY,CAAC,QAAQ,IAAI,EAAE,CAAC;YACpD,MAAM,eAAe,GAA8B;gBACjD,GAAG,eAAe;gBAClB,GAAG,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAC9D,GAAG,CAAC,QAAQ,CAAC,SAAS,KAAK,SAAS,IAAI;oBACtC,SAAS,EAAE,QAAQ,CAAC,SAAS;iBAC9B,CAAC;gBACF,GAAG,CAAC,QAAQ,CAAC,UAAU,KAAK,SAAS,IAAI;oBACvC,UAAU,EAAE,QAAQ,CAAC,UAAU;iBAChC,CAAC;gBACF,GAAG,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS,IAAI;oBACrC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;iBAC5B,CAAC;gBACF,GAAG,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS,IAAI;oBACrC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;iBAC5B,CAAC;gBACF,GAAG,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS,IAAI;oBACrC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;iBAC5B,CAAC;gBACF,GAAG,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS,IAAI;oBACrC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;iBAC5B,CAAC;gBACF,GAAG,CAAC,QAAQ,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAC3D,GAAG,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAC9D,GAAG,CAAC,QAAQ,CAAC,UAAU,KAAK,SAAS,IAAI;oBACvC,UAAU,EAAE,QAAQ,CAAC,UAAU;iBAChC,CAAC;gBACF,GAAG,CAAC,QAAQ,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACpE,GAAG,CAAC,QAAQ,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACpE,GAAG,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAC9D,GAAG,CAAC,QAAQ,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;gBAC9D,GAAG,CAAC,QAAQ,CAAC,GAAG,KAAK,SAAS,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC;gBACxD,GAAG,CAAC,QAAQ,CAAC,QAAQ,KAAK,SAAS,IAAI;oBACrC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;iBAC5B,CAAC;gBACF,GAAG,CAAC,QAAQ,CAAC,cAAc,KAAK,SAAS,IAAI;oBAC3C,cAAc,EAAE,QAAQ,CAAC,cAAc;iBACxC,CAAC;gBACF,GAAG,CAAC,QAAQ,CAAC,aAAa,KAAK,SAAS,IAAI;oBAC1C,aAAa,EAAE,QAAQ,CAAC,aAAa;iBACtC,CAAC;aACH,CAAC;YACF,YAAY,CAAC,QAAQ,GAAG,eAAe,CAAC;QAC1C,CAAC;QAED,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,8DAA8D;YAC9D,MAAM,iBAAiB,GAAG,YAAY,CAAC,UAAU,IAAI,EAAE,CAAC;YACxD,MAAM,iBAAiB,GAAgC;gBACrD,GAAG,iBAAiB;gBACpB,GAAG,CAAC,UAAU,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,CAAC;aAChE,CAAC;YACF,YAAY,CAAC,UAAU,GAAG,iBAAiB,CAAC;QAC9C,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACjD,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACnE,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE;YAC/C,MAAM;YACN,EAAE;YACF,cAAc;SACf,CAAC,CAAC;QACH,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,aAAa,GAAgB;YACjC,WAAW,EAAE,kCAAkC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;SACxG,CAAC;QACF,OAAO,WAAW,CAAC,aAAa,CAAC,CAAC;IACpC,CAAC;AACH,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,cAAc,CAC5C,gBAAgB,EAChB,KAAK,EAAE,aAAa,EAAE,EAAE;IACtB,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC;IAEnC,MAAM,MAAM,GAAoB,EAAE,IAAI,EAAE,CAAC;IACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE;QAC/C,QAAQ;QACR,EAAE;QACF,WAAW;KACZ,CAAC,CAAC;IACH,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CACxC,YAAY,EACZ,KAAK,EAAE,aAAa,EAAE,EAAE;IACtB,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,aAAa,CAAC;IAChD,MAAM,MAAM,GAAa,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACtC,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC7B,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC3D,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,cAAc,CACzC,aAAa,EACb,KAAK,EAAE,aAAa,EAAE,EAAE;IACtB,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,GAAG,aAAa,CAAC;IACnD,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,SAAS,EAAE;QAClD,YAAY;QACZ,QAAQ;QACR,kBAAkB;QAClB,cAAc;KACf,CAAC,CAAC;IACH,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,cAAc,CACrD,yBAAyB,EACzB,KAAK,EAAE,aAAa,EAAE,EAAE;IACtB,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC;IAEnE,8BAA8B;IAC9B,MAAM,UAAU,GAA4B;QAC1C,cAAc;QACd,IAAI;KACL,CAAC;IAEF,IAAI,UAAU,EAAE,CAAC;QACf,UAAU,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC;IACxC,CAAC;IAED,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,UAAU,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;IAChC,CAAC;IAED,4BAA4B;IAC5B,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAClD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAE3E,oBAAoB;IACpB,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,QAAQ,EAAE;QACjD,gBAAgB;QAChB,WAAW;QACX,kBAAkB;QAClB,cAAc;KACf,CAAC,CAAC;IACH,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAG,cAAc,CACnD,uBAAuB,EACvB,KAAK,EAAE,aAAa,EAAE,EAAE;IACtB,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,GAC9D,aAAa,CAAC;IAEhB,qCAAqC;IACrC,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC,KAAK,EAAE;QACjD,gBAAgB;QAChB,YAAY;QACZ,kBAAkB;QAClB,cAAc;KACf,CAAC,CAAC;IAEH,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;QAC5B,OAAO,WAAW,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;IAED,gCAAgC;IAChC,IAAI,UAAmC,CAAC;IACxC,IAAI,CAAC;QACH,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,aAAa,GAAgB;YACjC,MAAM,EAAE,EAAE;YACV,WAAW,EAAE,0CAA0C;SACxD,CAAC;QACF,OAAO,WAAW,CAAC,aAAa,CAAC,CAAC;IACpC,CAAC;IAED,yBAAyB;IACzB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,UAAU,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAC5B,CAAC;IACD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,UAAU,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC;IACxC,CAAC;IACD,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,UAAU,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;IAChC,CAAC;IAED,+BAA+B;IAC/B,UAAU,CAAC,gBAAgB,CAAC,GAAG,cAAc,CAAC;IAE9C,4BAA4B;IAC5B,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAClD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAE3E,oBAAoB;IACpB,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE;QAC/C,gBAAgB;QAChB,YAAY;QACZ,WAAW;QACX,kBAAkB;QAClB,cAAc;KACf,CAAC,CAAC;IACH,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,cAAc,CACrD,yBAAyB,EACzB,KAAK,EAAE,aAAa,EAAE,EAAE;IACtB,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,GAAG,aAAa,CAAC;IAEhE,0CAA0C;IAC1C,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,QAAQ,CACjE,QAAQ,CACT,CAAC;IAEF,oBAAoB;IACpB,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE;QAC/C,kBAAkB;QAClB,MAAM;QACN,WAAW;QACX,kBAAkB;QAClB,cAAc;KACf,CAAC,CAAC;IACH,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC,CACF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,cAAc,CACtC,UAAU,EACV,KAAK,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,EAAE,EAAE;IAClD,0CAA0C;IAC1C,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,QAAQ,CACjE,QAAQ,CACT,CAAC;IAEF,oBAAoB;IACpB,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE;QAC/C,MAAM;QACN,cAAc;QACd,WAAW;KACZ,CAAC,CAAC;IACH,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC,CACF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,cAAc,CACpD,wBAAwB,EACxB,KAAK,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE;IAC3B,oBAAoB;IACpB,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,iBAAiB,EAAE;QAC1D,MAAM;QACN,kBAAkB;QAClB,cAAc;KACf,CAAC,CAAC;IACH,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC,CACF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,cAAc,CACvD,2BAA2B,EAC3B,KAAK,EAAE,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,EAAE;IACtC,oBAAoB;IACpB,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,iBAAiB,EAAE;QAC1D,SAAS;QACT,kBAAkB;QAClB,cAAc;QACd,SAAS;KACV,CAAC,CAAC;IACH,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC,CACF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,cAAc,CAC1D,8BAA8B,EAC9B,KAAK,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE;IAC3B,oBAAoB;IACpB,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,iBAAiB,EAAE;QAC1D,aAAa;QACb,kBAAkB;QAClB,cAAc;KACf,CAAC,CAAC;IACH,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC,CACF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,cAAc,CACpD,wBAAwB,EACxB,KAAK,EAAE,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,EAAE;IACtC,oBAAoB;IACpB,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,iBAAiB,EAAE;QAC1D,MAAM;QACN,kBAAkB;QAClB,cAAc;QACd,SAAS;KACV,CAAC,CAAC;IACH,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC,CACF,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,cAAc,CACvD,2BAA2B,EAC3B,KAAK,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE;IAC3B,oBAAoB;IACpB,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,iBAAiB,EAAE;QAC1D,UAAU;QACV,kBAAkB;QAClB,cAAc;KACf,CAAC,CAAC;IACH,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,cAAc,CACzC,aAAa,EACb,KAAK,EAAE,aAAa,EAAE,EAAE;IACtB,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,aAAa,CAAC;IACrC,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;IAClE,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,cAAc,CAChD,oBAAoB,EACpB,KAAK,EAAE,aAAa,EAAE,EAAE;IACtB,MAAM,EACJ,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,KAAK,EACL,QAAQ,EACR,cAAc,EACd,cAAc,EACd,YAAY,EACZ,QAAQ,GACT,GAAG,aAAa,CAAC;IAElB,wBAAwB;IACxB,MAAM,IAAI,GAAkB;QAC1B,IAAI,EAAE,CAAC,EAAE,YAAY;QACrB,IAAI;QACJ,IAAI,EAAE;YACJ,IAAI;SACL;QACD,QAAQ;QACR,YAAY;KACb,CAAC;IAEF,IAAI,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IAC5B,CAAC;IAED,IAAI,KAAK;QAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IAC9B,IAAI,QAAQ;QAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACvC,IAAI,cAAc;QAAE,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACzD,IAAI,cAAc;QAAE,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IAEzD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;IAC1E,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,cAAc,CAChD,oBAAoB,EACpB,KAAK,EAAE,aAAa,EAAE,EAAE;IACtB,MAAM,EACJ,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,cAAc,EACd,cAAc,EACd,YAAY,EACZ,QAAQ,GACT,GAAG,aAAa,CAAC;IAElB,wBAAwB;IACxB,MAAM,IAAI,GAAkB;QAC1B,IAAI,EAAE,CAAC,EAAE,YAAY;QACrB,IAAI;QACJ,QAAQ;QACR,YAAY;KACb,CAAC;IAEF,IAAI,KAAK;QAAE,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IAC9B,IAAI,QAAQ;QAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACvC,IAAI,cAAc;QAAE,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACzD,IAAI,cAAc;QAAE,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IAEzD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE;QAC/C,QAAQ;QACR,WAAW;QACX,QAAQ;QACR,QAAQ;KACT,CAAC,CAAC;IACH,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,CAAC,cAAc,EAAE,KAAK,IAAI,EAAE;IACtE,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3D,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,cAAc,CACzC,aAAa,EACb,KAAK,EAAE,aAAa,EAAE,EAAE;IACtB,MAAM,EAAE,EAAE,EAAE,GAAG,aAAa,CAAC;IAC7B,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;IAC9D,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,cAAc,CAC1C,cAAc,EACd,KAAK,EAAE,aAAa,EAAE,EAAE;IACtB,MAAM,EACJ,EAAE,EACF,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,cAAc,EACd,cAAc,EACd,YAAY,EACZ,QAAQ,GACT,GAAG,aAAa,CAAC;IAElB,+BAA+B;IAC/B,MAAM,WAAW,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;IAEjE,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;QAC5B,OAAO,WAAW,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,CAAC;QACH,0BAA0B;QAC1B,MAAM,YAAY,GAAkB,IAAI,CAAC,KAAK,CAC5C,WAAW,CAAC,MAAM,IAAI,IAAI,CAC3B,CAAC;QAEF,yBAAyB;QACzB,IAAI,IAAI,KAAK,SAAS;YAAE,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC;QACjD,IAAI,KAAK,KAAK,SAAS;YAAE,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC;QACpD,IAAI,QAAQ,KAAK,SAAS;YAAE,YAAY,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC7D,IAAI,cAAc,KAAK,SAAS;YAC9B,YAAY,CAAC,cAAc,GAAG,cAAc,CAAC;QAC/C,IAAI,cAAc,KAAK,SAAS;YAC9B,YAAY,CAAC,cAAc,GAAG,cAAc,CAAC;QAC/C,IAAI,YAAY,KAAK,SAAS;YAAE,YAAY,CAAC,YAAY,GAAG,YAAY,CAAC;QACzE,IAAI,QAAQ,KAAK,SAAS;YAAE,YAAY,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAE7D,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;QACjD,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACnE,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE;YAC/C,MAAM;YACN,cAAc;SACf,CAAC,CAAC;QACH,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,aAAa,GAAgB;YACjC,WAAW,EAAE,kCAAkC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;SACxG,CAAC;QACF,OAAO,WAAW,CAAC,aAAa,CAAC,CAAC;IACpC,CAAC;AACH,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,cAAc,CAC5C,gBAAgB,EAChB,KAAK,EAAE,aAAa,EAAE,EAAE;IACtB,MAAM,EAAE,EAAE,EAAE,GAAG,aAAa,CAAC;IAC7B,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC;IACjE,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,cAAc,CACpD,wBAAwB,EACxB,KAAK,EAAE,aAAa,EAAE,EAAE;IACtB,MAAM,EAAE,EAAE,EAAE,GAAG,aAAa,CAAC;IAC7B,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1E,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,cAAc,CAClD,sBAAsB,EACtB,KAAK,EAAE,aAAa,EAAE,EAAE;IACtB,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC;IAC3C,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,QAAQ,EAAE;QACjD,YAAY;QACZ,QAAQ;QACR,QAAQ;QACR,UAAU;QACV,MAAM;KACP,CAAC,CAAC;IACH,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;AAC/B,CAAC,CACF,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -24,7 +24,7 @@ import { handleListOrgCollections, handleGetOrgCollection, handleUpdateOrgCollec
|
|
|
24
24
|
async function runServer() {
|
|
25
25
|
const server = new Server({
|
|
26
26
|
name: 'Bitwarden MCP Server',
|
|
27
|
-
version: '2025.10.
|
|
27
|
+
version: '2025.10.3',
|
|
28
28
|
}, {
|
|
29
29
|
capabilities: {
|
|
30
30
|
tools: {},
|
package/dist/tools/api.d.ts
CHANGED
|
@@ -60,5 +60,11 @@ export declare const organizationApiTools: {
|
|
|
60
60
|
_meta?: {
|
|
61
61
|
[x: string]: unknown;
|
|
62
62
|
} | undefined;
|
|
63
|
+
icons?: {
|
|
64
|
+
[x: string]: unknown;
|
|
65
|
+
src: string;
|
|
66
|
+
mimeType?: string | undefined;
|
|
67
|
+
sizes?: string[] | undefined;
|
|
68
|
+
}[] | undefined;
|
|
63
69
|
}[];
|
|
64
70
|
//# sourceMappingURL=api.d.ts.map
|
package/dist/tools/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/tools/api.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAG/D,eAAO,MAAM,sBAAsB,EAAE,IAQpC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,IAalC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,IAkDrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,IAarC,CAAC;AAGF,eAAO,MAAM,kBAAkB,EAAE,IAQhC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,IAa9B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,IA8EjC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,IA6EjC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,IAajC,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,IAQ/B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,IAc7B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,IA6ChC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,IA+ChC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,IAahC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,IAcpC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,IAcpC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,IAsBvC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,IAcnC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,IAoBvC,CAAC;AAGF,eAAO,MAAM,mBAAmB,EAAE,IAQjC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,IAgB9B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,IAwBjC,CAAC;AAGF,eAAO,MAAM,gBAAgB,EAAE,IAyC9B,CAAC;AAGF,eAAO,MAAM,sBAAsB,EAAE,IAQpC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,IAkDvC,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,IA0EzC,CAAC;AAGF,eAAO,MAAM,oBAAoB
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/tools/api.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAG/D,eAAO,MAAM,sBAAsB,EAAE,IAQpC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,IAalC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,IAkDrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,IAarC,CAAC;AAGF,eAAO,MAAM,kBAAkB,EAAE,IAQhC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,IAa9B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,IA8EjC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,IA6EjC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,IAajC,CAAC;AAGF,eAAO,MAAM,iBAAiB,EAAE,IAQ/B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,IAc7B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,IA6ChC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,IA+ChC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,IAahC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,IAcpC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,IAcpC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,IAsBvC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,IAcnC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,IAoBvC,CAAC;AAGF,eAAO,MAAM,mBAAmB,EAAE,IAQjC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,IAgB9B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,IAwBjC,CAAC;AAGF,eAAO,MAAM,gBAAgB,EAAE,IAyC9B,CAAC;AAGF,eAAO,MAAM,sBAAsB,EAAE,IAQpC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,IAkDvC,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,IA0EzC,CAAC;AAGF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkChC,CAAC"}
|
package/dist/tools/cli.d.ts
CHANGED
|
@@ -64,5 +64,11 @@ export declare const cliTools: {
|
|
|
64
64
|
_meta?: {
|
|
65
65
|
[x: string]: unknown;
|
|
66
66
|
} | undefined;
|
|
67
|
+
icons?: {
|
|
68
|
+
[x: string]: unknown;
|
|
69
|
+
src: string;
|
|
70
|
+
mimeType?: string | undefined;
|
|
71
|
+
sizes?: string[] | undefined;
|
|
72
|
+
}[] | undefined;
|
|
67
73
|
}[];
|
|
68
74
|
//# sourceMappingURL=cli.d.ts.map
|
package/dist/tools/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/tools/cli.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE/D,eAAO,MAAM,QAAQ,EAAE,IAOtB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,IAOtB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,IAOxB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,IAkDtB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,IA8CrB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,IA8C1B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,IA2L5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,IAa9B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,IAuL1B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,IAiB5B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,IAsBxB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,IAkBzB,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,IA2CrC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,IA+CnC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,IAwBrC,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,IA0BtB,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,IAapC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,IAiBvC,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,IAa1C,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,IAiBpC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,IAavC,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,IAkBzB,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,IAyChC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,IAqChC,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,IAO1B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,IAazB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,IAyC1B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,IAa5B,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,IAapC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,IAiBlC,CAAC;AAGF,eAAO,MAAM,QAAQ
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/tools/cli.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE/D,eAAO,MAAM,QAAQ,EAAE,IAOtB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,IAOtB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,IAOxB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,IAkDtB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,IA8CrB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,IA8C1B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,IA2L5B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,IAa9B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,IAuL1B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,IAiB5B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,IAsBxB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,IAkBzB,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,IA2CrC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,IA+CnC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,IAwBrC,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,IA0BtB,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,IAapC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,IAiBvC,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,IAa1C,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,IAiBpC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,IAavC,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,IAkBzB,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,IAyChC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,IAqChC,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,IAO1B,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,IAazB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,IAyC1B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,IAa5B,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,IAapC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,IAiBlC,CAAC;AAGF,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BpB,CAAC"}
|
package/dist/utils/api.js
CHANGED
|
@@ -62,7 +62,7 @@ export async function buildSafeApiRequest(endpoint, method, data) {
|
|
|
62
62
|
headers: {
|
|
63
63
|
Authorization: `Bearer ${token}`,
|
|
64
64
|
'Content-Type': 'application/json',
|
|
65
|
-
'User-Agent': 'Bitwarden-MCP-Server/2025.10.
|
|
65
|
+
'User-Agent': 'Bitwarden-MCP-Server/2025.10.3',
|
|
66
66
|
},
|
|
67
67
|
};
|
|
68
68
|
if (sanitizedData && (upperMethod === 'POST' || upperMethod === 'PUT')) {
|
package/dist/utils/cli.d.ts
CHANGED
|
@@ -3,7 +3,11 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import type { CliResponse } from './types.js';
|
|
5
5
|
/**
|
|
6
|
-
* Executes a Bitwarden CLI command safely
|
|
6
|
+
* Executes a Bitwarden CLI command safely using spawn() to prevent command injection
|
|
7
|
+
* Internally calls buildSafeCommand() to validate and sanitize inputs
|
|
8
|
+
* @param baseCommand - The base Bitwarden command (e.g., 'list', 'get', 'create')
|
|
9
|
+
* @param parameters - Array of command parameters (will be validated)
|
|
10
|
+
* @returns Promise resolving to CLI response with output or error
|
|
7
11
|
*/
|
|
8
|
-
export declare function executeCliCommand(
|
|
12
|
+
export declare function executeCliCommand(baseCommand: string, parameters?: readonly string[]): Promise<CliResponse>;
|
|
9
13
|
//# sourceMappingURL=cli.d.ts.map
|
package/dist/utils/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/utils/cli.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/utils/cli.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,UAAU,GAAE,SAAS,MAAM,EAAO,GACjC,OAAO,CAAC,WAAW,CAAC,CAsDtB"}
|
package/dist/utils/cli.js
CHANGED
|
@@ -1,31 +1,54 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* CLI command execution utilities
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { sanitizeInput, isValidBitwardenCommand } from './security.js';
|
|
7
|
-
const execPromise = promisify(exec);
|
|
4
|
+
import { spawn } from 'child_process';
|
|
5
|
+
import { buildSafeCommand, isValidBitwardenCommand } from './security.js';
|
|
8
6
|
/**
|
|
9
|
-
* Executes a Bitwarden CLI command safely
|
|
7
|
+
* Executes a Bitwarden CLI command safely using spawn() to prevent command injection
|
|
8
|
+
* Internally calls buildSafeCommand() to validate and sanitize inputs
|
|
9
|
+
* @param baseCommand - The base Bitwarden command (e.g., 'list', 'get', 'create')
|
|
10
|
+
* @param parameters - Array of command parameters (will be validated)
|
|
11
|
+
* @returns Promise resolving to CLI response with output or error
|
|
10
12
|
*/
|
|
11
|
-
export async function executeCliCommand(
|
|
13
|
+
export async function executeCliCommand(baseCommand, parameters = []) {
|
|
12
14
|
try {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
+
// Build safe command array (validates and sanitizes inputs)
|
|
16
|
+
const [command, ...args] = buildSafeCommand(baseCommand, parameters);
|
|
17
|
+
// Validate the base command against allowlist
|
|
18
|
+
if (!isValidBitwardenCommand(command)) {
|
|
15
19
|
return {
|
|
16
20
|
errorOutput: 'Invalid or unsafe command. Only Bitwarden CLI commands are allowed.',
|
|
17
21
|
};
|
|
18
22
|
}
|
|
19
|
-
//
|
|
20
|
-
|
|
21
|
-
|
|
23
|
+
// Use spawn with array of arguments to avoid shell interpretation
|
|
24
|
+
return new Promise((resolve) => {
|
|
25
|
+
const child = spawn('bw', [command, ...args], {
|
|
26
|
+
env: process.env,
|
|
27
|
+
shell: false, // Explicitly disable shell to prevent injection
|
|
28
|
+
});
|
|
29
|
+
let stdout = '';
|
|
30
|
+
let stderr = '';
|
|
31
|
+
child.stdout.on('data', (data) => {
|
|
32
|
+
stdout += data.toString();
|
|
33
|
+
});
|
|
34
|
+
child.stderr.on('data', (data) => {
|
|
35
|
+
stderr += data.toString();
|
|
36
|
+
});
|
|
37
|
+
child.on('error', (error) => {
|
|
38
|
+
resolve({
|
|
39
|
+
errorOutput: `Failed to execute command: ${error.message}`,
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
child.on('close', (code) => {
|
|
43
|
+
const result = {};
|
|
44
|
+
if (stdout)
|
|
45
|
+
result.output = stdout.trim();
|
|
46
|
+
if (stderr || code !== 0)
|
|
47
|
+
result.errorOutput =
|
|
48
|
+
stderr.trim() || `Command exited with code ${code}`;
|
|
49
|
+
resolve(result);
|
|
50
|
+
});
|
|
22
51
|
});
|
|
23
|
-
const result = {};
|
|
24
|
-
if (stdout)
|
|
25
|
-
result.output = stdout;
|
|
26
|
-
if (stderr)
|
|
27
|
-
result.errorOutput = stderr;
|
|
28
|
-
return result;
|
|
29
52
|
}
|
|
30
53
|
catch (error) {
|
|
31
54
|
const errorMessage = error instanceof Error ? error.message : 'Unknown error occurred';
|
package/dist/utils/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/utils/cli.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/utils/cli.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAG1E;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,WAAmB,EACnB,aAAgC,EAAE;IAElC,IAAI,CAAC;QACH,4DAA4D;QAC5D,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,gBAAgB,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QAErE,8CAA8C;QAC9C,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,EAAE,CAAC;YACtC,OAAO;gBACL,WAAW,EACT,qEAAqE;aAC/D,CAAC;QACb,CAAC;QAED,kEAAkE;QAClE,OAAO,IAAI,OAAO,CAAc,CAAC,OAAO,EAAE,EAAE;YAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,EAAE;gBAC5C,GAAG,EAAE,OAAO,CAAC,GAAG;gBAChB,KAAK,EAAE,KAAK,EAAE,gDAAgD;aAC/D,CAAC,CAAC;YAEH,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,MAAM,GAAG,EAAE,CAAC;YAEhB,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;gBACvC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;gBACvC,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC5B,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;gBACjC,OAAO,CAAC;oBACN,WAAW,EAAE,8BAA8B,KAAK,CAAC,OAAO,EAAE;iBAC3D,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAY,EAAE,EAAE;gBACjC,MAAM,MAAM,GAAgB,EAAE,CAAC;gBAC/B,IAAI,MAAM;oBAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC1C,IAAI,MAAM,IAAI,IAAI,KAAK,CAAC;oBACtB,MAAM,CAAC,WAAW;wBAChB,MAAM,CAAC,IAAI,EAAE,IAAI,4BAA4B,IAAI,EAAE,CAAC;gBACxD,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,MAAM,YAAY,GAChB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAC;QAEpE,OAAO;YACL,WAAW,EAAE,YAAY;SACjB,CAAC;IACb,CAAC;AACH,CAAC"}
|
package/dist/utils/security.d.ts
CHANGED
|
@@ -6,13 +6,15 @@
|
|
|
6
6
|
*/
|
|
7
7
|
export declare function sanitizeInput(input: string): string;
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
9
|
+
* Validates a parameter to ensure it doesn't contain dangerous patterns
|
|
10
|
+
* Used as an additional safety check before passing to spawn()
|
|
10
11
|
*/
|
|
11
|
-
export declare function
|
|
12
|
+
export declare function validateParameter(value: string): boolean;
|
|
12
13
|
/**
|
|
13
|
-
* Builds a safe Bitwarden CLI command
|
|
14
|
+
* Builds a safe Bitwarden CLI command array for use with spawn()
|
|
15
|
+
* Returns an array of [baseCommand, ...parameters] for safe execution
|
|
14
16
|
*/
|
|
15
|
-
export declare function buildSafeCommand(baseCommand: string, parameters?: readonly string[]): string;
|
|
17
|
+
export declare function buildSafeCommand(baseCommand: string, parameters?: readonly string[]): readonly [string, ...string[]];
|
|
16
18
|
/**
|
|
17
19
|
* Validates that a command is safe and contains only allowed Bitwarden CLI commands
|
|
18
20
|
*/
|
|
@@ -27,7 +29,20 @@ export declare function validateApiEndpoint(endpoint: string): boolean;
|
|
|
27
29
|
export declare function sanitizeApiParameters(params: unknown): unknown;
|
|
28
30
|
/**
|
|
29
31
|
* Validates file paths to prevent path traversal attacks
|
|
30
|
-
*
|
|
32
|
+
* Uses allowlist-based validation with comprehensive security checks
|
|
33
|
+
*
|
|
34
|
+
* Security measures:
|
|
35
|
+
* - URL decoding (iterative to handle double encoding)
|
|
36
|
+
* - Unicode normalization (NFC form)
|
|
37
|
+
* - Path resolution to canonical form
|
|
38
|
+
* - Allowlist-based directory validation
|
|
39
|
+
* - Protection against all known bypass techniques
|
|
40
|
+
*
|
|
41
|
+
* Configuration:
|
|
42
|
+
* Set BW_ALLOWED_DIRECTORIES environment variable to a comma-separated list
|
|
43
|
+
* of allowed directories. If not set, defaults to system temp directory.
|
|
44
|
+
*
|
|
45
|
+
* Example: BW_ALLOWED_DIRECTORIES=/tmp/bitwarden,/home/user/downloads
|
|
31
46
|
*/
|
|
32
47
|
export declare function validateFilePath(filePath: string): boolean;
|
|
33
48
|
//# sourceMappingURL=security.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/utils/security.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/utils/security.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAsBnD;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAgBxD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,MAAM,EACnB,UAAU,GAAE,SAAS,MAAM,EAAO,GACjC,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAWhC;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAkChE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAqC7D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAyB9D;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CA0H1D"}
|
package/dist/utils/security.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Security utilities for input sanitization and validation
|
|
3
3
|
*/
|
|
4
|
+
import path from 'path';
|
|
5
|
+
import os from 'os';
|
|
4
6
|
/**
|
|
5
7
|
* Sanitizes a string to prevent command injection by removing dangerous characters
|
|
6
8
|
*/
|
|
@@ -25,22 +27,36 @@ export function sanitizeInput(input) {
|
|
|
25
27
|
.trim());
|
|
26
28
|
}
|
|
27
29
|
/**
|
|
28
|
-
*
|
|
30
|
+
* Validates a parameter to ensure it doesn't contain dangerous patterns
|
|
31
|
+
* Used as an additional safety check before passing to spawn()
|
|
29
32
|
*/
|
|
30
|
-
export function
|
|
33
|
+
export function validateParameter(value) {
|
|
31
34
|
if (typeof value !== 'string') {
|
|
32
|
-
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
// Reject parameters with null bytes
|
|
38
|
+
if (value.includes('\0')) {
|
|
39
|
+
return false;
|
|
33
40
|
}
|
|
34
|
-
//
|
|
35
|
-
|
|
41
|
+
// Reject parameters with newlines/carriage returns
|
|
42
|
+
if (/[\r\n]/.test(value)) {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
return true;
|
|
36
46
|
}
|
|
37
47
|
/**
|
|
38
|
-
* Builds a safe Bitwarden CLI command
|
|
48
|
+
* Builds a safe Bitwarden CLI command array for use with spawn()
|
|
49
|
+
* Returns an array of [baseCommand, ...parameters] for safe execution
|
|
39
50
|
*/
|
|
40
51
|
export function buildSafeCommand(baseCommand, parameters = []) {
|
|
41
52
|
const sanitizedBase = sanitizeInput(baseCommand);
|
|
42
|
-
|
|
43
|
-
|
|
53
|
+
// Validate all parameters
|
|
54
|
+
for (const param of parameters) {
|
|
55
|
+
if (!validateParameter(param)) {
|
|
56
|
+
throw new Error(`Invalid parameter detected: ${param}`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
return [sanitizedBase, ...parameters];
|
|
44
60
|
}
|
|
45
61
|
/**
|
|
46
62
|
* Validates that a command is safe and contains only allowed Bitwarden CLI commands
|
|
@@ -136,33 +152,126 @@ export function sanitizeApiParameters(params) {
|
|
|
136
152
|
}
|
|
137
153
|
/**
|
|
138
154
|
* Validates file paths to prevent path traversal attacks
|
|
139
|
-
*
|
|
155
|
+
* Uses allowlist-based validation with comprehensive security checks
|
|
156
|
+
*
|
|
157
|
+
* Security measures:
|
|
158
|
+
* - URL decoding (iterative to handle double encoding)
|
|
159
|
+
* - Unicode normalization (NFC form)
|
|
160
|
+
* - Path resolution to canonical form
|
|
161
|
+
* - Allowlist-based directory validation
|
|
162
|
+
* - Protection against all known bypass techniques
|
|
163
|
+
*
|
|
164
|
+
* Configuration:
|
|
165
|
+
* Set BW_ALLOWED_DIRECTORIES environment variable to a comma-separated list
|
|
166
|
+
* of allowed directories. If not set, defaults to system temp directory.
|
|
167
|
+
*
|
|
168
|
+
* Example: BW_ALLOWED_DIRECTORIES=/tmp/bitwarden,/home/user/downloads
|
|
140
169
|
*/
|
|
141
170
|
export function validateFilePath(filePath) {
|
|
142
171
|
if (typeof filePath !== 'string' || filePath.length === 0) {
|
|
143
172
|
return false;
|
|
144
173
|
}
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
174
|
+
try {
|
|
175
|
+
// Step 1: Reject null bytes immediately
|
|
176
|
+
if (filePath.includes('\0')) {
|
|
177
|
+
return false;
|
|
178
|
+
}
|
|
179
|
+
// Step 2: Reject URL protocols (file://, http://, etc.)
|
|
180
|
+
// But allow Windows drive letters (C:, D:, etc.) which are single letters
|
|
181
|
+
if (/^[a-zA-Z][a-zA-Z0-9+.-]+:/.test(filePath) &&
|
|
182
|
+
!/^[a-zA-Z]:[\\/]/.test(filePath)) {
|
|
183
|
+
return false;
|
|
184
|
+
}
|
|
185
|
+
// Step 3: Reject UNC paths (both \\ and single \ at start on Windows)
|
|
186
|
+
if (filePath.startsWith('\\\\') || /^\\[^\\]/.test(filePath)) {
|
|
187
|
+
return false;
|
|
188
|
+
}
|
|
189
|
+
// Step 4: Iterative URL decoding to handle double/triple encoding
|
|
190
|
+
let decodedPath = filePath;
|
|
191
|
+
let previousPath = '';
|
|
192
|
+
let iterations = 0;
|
|
193
|
+
const maxIterations = 5; // Prevent infinite loops
|
|
194
|
+
while (decodedPath !== previousPath && iterations < maxIterations) {
|
|
195
|
+
previousPath = decodedPath;
|
|
196
|
+
try {
|
|
197
|
+
decodedPath = decodeURIComponent(decodedPath);
|
|
198
|
+
}
|
|
199
|
+
catch {
|
|
200
|
+
// Invalid encoding, reject
|
|
201
|
+
return false;
|
|
202
|
+
}
|
|
203
|
+
iterations++;
|
|
204
|
+
}
|
|
205
|
+
// Step 5: Unicode normalization to canonical form (NFC)
|
|
206
|
+
// This converts fullwidth characters and other Unicode variants to standard form
|
|
207
|
+
const normalizedPath = decodedPath.normalize('NFC');
|
|
208
|
+
// Step 6: Check for dangerous patterns after decoding/normalization
|
|
209
|
+
// This catches encoded traversal sequences like %2e%2e%2f
|
|
210
|
+
const dangerousPatterns = [
|
|
211
|
+
/\.\.\//, // ../
|
|
212
|
+
/\.\.\\/, // ..\
|
|
213
|
+
/\.\.$/, // .. at end
|
|
214
|
+
/^\.\.$/, // exactly ..
|
|
215
|
+
/\/\.\./, // /..
|
|
216
|
+
/\\\.\./, // \..
|
|
217
|
+
/\.\s+\./, // . . (spaces between dots)
|
|
218
|
+
];
|
|
219
|
+
if (dangerousPatterns.some((pattern) => pattern.test(normalizedPath))) {
|
|
220
|
+
return false;
|
|
221
|
+
}
|
|
222
|
+
// Step 7: Check for Unicode lookalikes and alternative slashes
|
|
223
|
+
// Reject fullwidth characters and alternative slash characters
|
|
224
|
+
const unicodeLookalikes = [
|
|
225
|
+
'\uFF0E', // FULLWIDTH FULL STOP (.)
|
|
226
|
+
'\u2215', // DIVISION SLASH (∕)
|
|
227
|
+
'\u2216', // SET MINUS (∖)
|
|
228
|
+
'\u2044', // FRACTION SLASH (⁄)
|
|
229
|
+
'\u29F8', // BIG SOLIDUS (⧸)
|
|
230
|
+
'\uFF0F', // FULLWIDTH SOLIDUS (/)
|
|
231
|
+
'\uFF3C', // FULLWIDTH REVERSE SOLIDUS (\)
|
|
232
|
+
];
|
|
233
|
+
if (unicodeLookalikes.some((char) => normalizedPath.includes(char))) {
|
|
234
|
+
return false;
|
|
235
|
+
}
|
|
236
|
+
// Step 8: Resolve to absolute canonical path
|
|
237
|
+
const resolvedPath = path.resolve(normalizedPath);
|
|
238
|
+
// Step 9: Get allowed directories from environment variable
|
|
239
|
+
const allowedDirsEnv = process.env['BW_ALLOWED_DIRECTORIES'];
|
|
240
|
+
let allowedDirectories;
|
|
241
|
+
if (allowedDirsEnv && allowedDirsEnv.trim()) {
|
|
242
|
+
// Parse comma-separated list and resolve each to absolute path
|
|
243
|
+
allowedDirectories = allowedDirsEnv
|
|
244
|
+
.split(',')
|
|
245
|
+
.map((dir) => dir.trim())
|
|
246
|
+
.filter((dir) => dir.length > 0)
|
|
247
|
+
.map((dir) => path.resolve(dir));
|
|
248
|
+
}
|
|
249
|
+
else {
|
|
250
|
+
// Default to system temp directory if no whitelist configured
|
|
251
|
+
const defaultDir = path.join(os.tmpdir(), 'bitwarden-files');
|
|
252
|
+
allowedDirectories = [defaultDir];
|
|
253
|
+
}
|
|
254
|
+
// Step 10: Verify resolved path starts with one of the allowed directories
|
|
255
|
+
const isAllowed = allowedDirectories.some((allowedDir) => {
|
|
256
|
+
// Ensure both paths end with separator for accurate comparison
|
|
257
|
+
const normalizedAllowedDir = allowedDir.endsWith(path.sep)
|
|
258
|
+
? allowedDir
|
|
259
|
+
: allowedDir + path.sep;
|
|
260
|
+
const normalizedResolvedPath = resolvedPath + path.sep;
|
|
261
|
+
// On Windows, paths are case-insensitive
|
|
262
|
+
const isWindows = process.platform === 'win32';
|
|
263
|
+
if (isWindows) {
|
|
264
|
+
return normalizedResolvedPath
|
|
265
|
+
.toLowerCase()
|
|
266
|
+
.startsWith(normalizedAllowedDir.toLowerCase());
|
|
267
|
+
}
|
|
268
|
+
return normalizedResolvedPath.startsWith(normalizedAllowedDir);
|
|
269
|
+
});
|
|
270
|
+
return isAllowed;
|
|
160
271
|
}
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
if (filePath.startsWith('\\\\')) {
|
|
272
|
+
catch {
|
|
273
|
+
// Any error in validation should result in rejection
|
|
164
274
|
return false;
|
|
165
275
|
}
|
|
166
|
-
return true;
|
|
167
276
|
}
|
|
168
277
|
//# sourceMappingURL=security.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/utils/security.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,SAAS,CAAC,wBAAwB,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,CACL,KAAK;QACH,oBAAoB;SACnB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;QACnB,0CAA0C;SACzC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC;QACnC,iDAAiD;SAChD,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;QACpB,uCAAuC;SACtC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;QACvB,wBAAwB;SACvB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;QACpB,2BAA2B;SAC1B,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;QACrB,kBAAkB;SACjB,IAAI,EAAE,CACV,CAAC;AACJ,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/utils/security.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "@bitwarden/mcp-server",
|
|
4
|
-
"version": "2025.10.
|
|
4
|
+
"version": "2025.10.3",
|
|
5
5
|
"description": "Bitwarden MCP Server",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -14,26 +14,26 @@
|
|
|
14
14
|
},
|
|
15
15
|
"homepage": "https://bitwarden.com",
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@modelcontextprotocol/sdk": "1.
|
|
17
|
+
"@modelcontextprotocol/sdk": "1.19.1",
|
|
18
18
|
"shx": "0.4.0",
|
|
19
|
-
"zod": "4.
|
|
19
|
+
"zod": "4.1.11"
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
|
-
"@eslint/js": "9.
|
|
23
|
-
"@jest/globals": "30.0
|
|
24
|
-
"@modelcontextprotocol/inspector": "0.
|
|
22
|
+
"@eslint/js": "9.37.0",
|
|
23
|
+
"@jest/globals": "30.2.0",
|
|
24
|
+
"@modelcontextprotocol/inspector": "0.17.0",
|
|
25
25
|
"@types/jest": "30.0.0",
|
|
26
|
-
"@types/node": "22.
|
|
27
|
-
"eslint": "9.
|
|
28
|
-
"globals": "16.
|
|
26
|
+
"@types/node": "22.18.8",
|
|
27
|
+
"eslint": "9.37.0",
|
|
28
|
+
"globals": "16.4.0",
|
|
29
29
|
"husky": "9.1.7",
|
|
30
|
-
"jest": "30.0
|
|
30
|
+
"jest": "30.2.0",
|
|
31
31
|
"jest-junit": "16.0.0",
|
|
32
|
-
"lint-staged": "16.
|
|
32
|
+
"lint-staged": "16.2.3",
|
|
33
33
|
"prettier": "3.6.2",
|
|
34
|
-
"ts-jest": "29.4.
|
|
35
|
-
"typescript": "5.9.
|
|
36
|
-
"typescript-eslint": "8.
|
|
34
|
+
"ts-jest": "29.4.4",
|
|
35
|
+
"typescript": "5.9.3",
|
|
36
|
+
"typescript-eslint": "8.45.0"
|
|
37
37
|
},
|
|
38
38
|
"bin": {
|
|
39
39
|
"mcp-server-bitwarden": "dist/index.js"
|