@delorenj/mcp-server-trello 0.3.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +276 -44
- package/build/evals/evals.d.ts +1 -1
- package/build/evals/evals.js +37 -15
- package/build/evals/evals.js.map +1 -1
- package/build/get-card-implementation.d.ts +122 -0
- package/build/get-card-implementation.js +225 -0
- package/build/get-card-implementation.js.map +1 -0
- package/build/index.js +1 -500
- package/build/index.js.map +1 -1
- package/build/rate-limiter.js +1 -1
- package/build/rate-limiter.js.map +1 -1
- package/build/trello-client.d.ts +19 -12
- package/build/trello-client.js +223 -21
- package/build/trello-client.js.map +1 -1
- package/build/types.d.ts +115 -1
- package/build/validators.d.ts +22 -0
- package/build/validators.js +46 -1
- package/build/validators.js.map +1 -1
- package/package.json +5 -2
package/build/trello-client.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { TrelloConfig, TrelloCard, TrelloList, TrelloAction, TrelloAttachment, TrelloBoard, TrelloWorkspace } from './types.js';
|
|
1
|
+
import { TrelloConfig, TrelloCard, TrelloList, TrelloAction, TrelloAttachment, TrelloBoard, TrelloWorkspace, EnhancedTrelloCard } from './types.js';
|
|
2
2
|
export declare class TrelloClient {
|
|
3
3
|
private config;
|
|
4
4
|
private axiosInstance;
|
|
5
5
|
private rateLimiter;
|
|
6
|
+
private defaultBoardId?;
|
|
6
7
|
private activeConfig;
|
|
7
8
|
constructor(config: TrelloConfig);
|
|
8
9
|
/**
|
|
@@ -16,7 +17,7 @@ export declare class TrelloClient {
|
|
|
16
17
|
/**
|
|
17
18
|
* Get the current active board ID
|
|
18
19
|
*/
|
|
19
|
-
get activeBoardId(): string;
|
|
20
|
+
get activeBoardId(): string | undefined;
|
|
20
21
|
/**
|
|
21
22
|
* Get the current active workspace ID
|
|
22
23
|
*/
|
|
@@ -50,27 +51,33 @@ export declare class TrelloClient {
|
|
|
50
51
|
* List boards in a specific workspace
|
|
51
52
|
*/
|
|
52
53
|
listBoardsInWorkspace(workspaceId: string): Promise<TrelloBoard[]>;
|
|
53
|
-
getCardsByList(listId: string): Promise<TrelloCard[]>;
|
|
54
|
-
getLists(): Promise<TrelloList[]>;
|
|
55
|
-
getRecentActivity(limit?: number): Promise<TrelloAction[]>;
|
|
56
|
-
addCard(params: {
|
|
54
|
+
getCardsByList(boardId: string | undefined, listId: string): Promise<TrelloCard[]>;
|
|
55
|
+
getLists(boardId?: string): Promise<TrelloList[]>;
|
|
56
|
+
getRecentActivity(boardId?: string, limit?: number): Promise<TrelloAction[]>;
|
|
57
|
+
addCard(boardId: string | undefined, params: {
|
|
57
58
|
listId: string;
|
|
58
59
|
name: string;
|
|
59
60
|
description?: string;
|
|
60
61
|
dueDate?: string;
|
|
62
|
+
start?: string;
|
|
61
63
|
labels?: string[];
|
|
62
64
|
}): Promise<TrelloCard>;
|
|
63
|
-
updateCard(params: {
|
|
65
|
+
updateCard(boardId: string | undefined, params: {
|
|
64
66
|
cardId: string;
|
|
65
67
|
name?: string;
|
|
66
68
|
description?: string;
|
|
67
69
|
dueDate?: string;
|
|
70
|
+
start?: string;
|
|
71
|
+
dueComplete?: boolean;
|
|
68
72
|
labels?: string[];
|
|
69
73
|
}): Promise<TrelloCard>;
|
|
70
|
-
archiveCard(cardId: string): Promise<TrelloCard>;
|
|
71
|
-
moveCard(cardId: string, listId: string): Promise<TrelloCard>;
|
|
72
|
-
addList(name: string): Promise<TrelloList>;
|
|
73
|
-
archiveList(listId: string): Promise<TrelloList>;
|
|
74
|
+
archiveCard(boardId: string | undefined, cardId: string): Promise<TrelloCard>;
|
|
75
|
+
moveCard(boardId: string | undefined, cardId: string, listId: string): Promise<TrelloCard>;
|
|
76
|
+
addList(boardId: string | undefined, name: string): Promise<TrelloList>;
|
|
77
|
+
archiveList(boardId: string | undefined, listId: string): Promise<TrelloList>;
|
|
74
78
|
getMyCards(): Promise<TrelloCard[]>;
|
|
75
|
-
attachImageToCard(cardId: string, imageUrl: string, name?: string): Promise<TrelloAttachment>;
|
|
79
|
+
attachImageToCard(boardId: string | undefined, cardId: string, imageUrl: string, name?: string): Promise<TrelloAttachment>;
|
|
80
|
+
getCard(cardId: string, includeMarkdown?: boolean): Promise<EnhancedTrelloCard | string>;
|
|
81
|
+
private formatCardAsMarkdown;
|
|
82
|
+
private formatFileSize;
|
|
76
83
|
}
|
package/build/trello-client.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
2
|
import { createTrelloRateLimiters } from './rate-limiter.js';
|
|
3
|
+
import { McpError, ErrorCode } from '@modelcontextprotocol/sdk/types.js';
|
|
3
4
|
import * as fs from 'fs/promises';
|
|
4
5
|
import * as path from 'path';
|
|
5
6
|
// Path for storing active board/workspace configuration
|
|
@@ -8,7 +9,16 @@ const CONFIG_FILE = path.join(CONFIG_DIR, 'config.json');
|
|
|
8
9
|
export class TrelloClient {
|
|
9
10
|
constructor(config) {
|
|
10
11
|
this.config = config;
|
|
12
|
+
this.defaultBoardId = config.defaultBoardId;
|
|
11
13
|
this.activeConfig = { ...config };
|
|
14
|
+
// If boardId is provided in config, use it as the active board
|
|
15
|
+
if (config.boardId && !this.activeConfig.boardId) {
|
|
16
|
+
this.activeConfig.boardId = config.boardId;
|
|
17
|
+
}
|
|
18
|
+
// If defaultBoardId is provided but boardId is not, use defaultBoardId
|
|
19
|
+
if (this.defaultBoardId && !this.activeConfig.boardId) {
|
|
20
|
+
this.activeConfig.boardId = this.defaultBoardId;
|
|
21
|
+
}
|
|
12
22
|
this.axiosInstance = axios.create({
|
|
13
23
|
baseURL: 'https://api.trello.com/1',
|
|
14
24
|
params: {
|
|
@@ -38,7 +48,6 @@ export class TrelloClient {
|
|
|
38
48
|
if (savedConfig.workspaceId) {
|
|
39
49
|
this.activeConfig.workspaceId = savedConfig.workspaceId;
|
|
40
50
|
}
|
|
41
|
-
console.log(`Loaded configuration: Board ID ${this.activeConfig.boardId}, Workspace ID ${this.activeConfig.workspaceId || 'not set'}`);
|
|
42
51
|
}
|
|
43
52
|
catch (error) {
|
|
44
53
|
// File might not exist yet, that's okay
|
|
@@ -60,7 +69,7 @@ export class TrelloClient {
|
|
|
60
69
|
await fs.writeFile(CONFIG_FILE, JSON.stringify(configToSave, null, 2));
|
|
61
70
|
}
|
|
62
71
|
catch (error) {
|
|
63
|
-
|
|
72
|
+
// Failed to save configuration
|
|
64
73
|
throw new Error('Failed to save configuration');
|
|
65
74
|
}
|
|
66
75
|
}
|
|
@@ -96,20 +105,25 @@ export class TrelloClient {
|
|
|
96
105
|
await this.saveConfig();
|
|
97
106
|
return workspace;
|
|
98
107
|
}
|
|
99
|
-
async handleRequest(
|
|
108
|
+
async handleRequest(requestFn) {
|
|
100
109
|
try {
|
|
101
|
-
return await
|
|
110
|
+
return await requestFn();
|
|
102
111
|
}
|
|
103
112
|
catch (error) {
|
|
104
113
|
if (axios.isAxiosError(error)) {
|
|
105
114
|
if (error.response?.status === 429) {
|
|
106
115
|
// Rate limit exceeded, wait and retry
|
|
107
116
|
await new Promise(resolve => setTimeout(resolve, 1000));
|
|
108
|
-
return this.handleRequest(
|
|
117
|
+
return this.handleRequest(requestFn);
|
|
109
118
|
}
|
|
110
|
-
|
|
119
|
+
// Trello API Error
|
|
120
|
+
// Customize error handling based on Trello's error structure if needed
|
|
121
|
+
throw new McpError(ErrorCode.InternalError, `Trello API Error: ${error.response?.status} ${error.message}`, error.response?.data);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
// Unexpected Error
|
|
125
|
+
throw new McpError(ErrorCode.InternalError, 'An unexpected error occurred');
|
|
111
126
|
}
|
|
112
|
-
throw error;
|
|
113
127
|
}
|
|
114
128
|
}
|
|
115
129
|
/**
|
|
@@ -157,50 +171,61 @@ export class TrelloClient {
|
|
|
157
171
|
return response.data;
|
|
158
172
|
});
|
|
159
173
|
}
|
|
160
|
-
async getCardsByList(listId) {
|
|
174
|
+
async getCardsByList(boardId, listId) {
|
|
161
175
|
return this.handleRequest(async () => {
|
|
162
176
|
const response = await this.axiosInstance.get(`/lists/${listId}/cards`);
|
|
163
177
|
return response.data;
|
|
164
178
|
});
|
|
165
179
|
}
|
|
166
|
-
async getLists() {
|
|
180
|
+
async getLists(boardId) {
|
|
181
|
+
const effectiveBoardId = boardId || this.activeConfig.boardId || this.defaultBoardId;
|
|
182
|
+
if (!effectiveBoardId) {
|
|
183
|
+
throw new McpError(ErrorCode.InvalidParams, 'boardId is required when no default board is configured');
|
|
184
|
+
}
|
|
167
185
|
return this.handleRequest(async () => {
|
|
168
|
-
const response = await this.axiosInstance.get(`/boards/${
|
|
186
|
+
const response = await this.axiosInstance.get(`/boards/${effectiveBoardId}/lists`);
|
|
169
187
|
return response.data;
|
|
170
188
|
});
|
|
171
189
|
}
|
|
172
|
-
async getRecentActivity(limit = 10) {
|
|
190
|
+
async getRecentActivity(boardId, limit = 10) {
|
|
191
|
+
const effectiveBoardId = boardId || this.activeConfig.boardId || this.defaultBoardId;
|
|
192
|
+
if (!effectiveBoardId) {
|
|
193
|
+
throw new McpError(ErrorCode.InvalidParams, 'boardId is required when no default board is configured');
|
|
194
|
+
}
|
|
173
195
|
return this.handleRequest(async () => {
|
|
174
|
-
const response = await this.axiosInstance.get(`/boards/${
|
|
196
|
+
const response = await this.axiosInstance.get(`/boards/${effectiveBoardId}/actions`, {
|
|
175
197
|
params: { limit },
|
|
176
198
|
});
|
|
177
199
|
return response.data;
|
|
178
200
|
});
|
|
179
201
|
}
|
|
180
|
-
async addCard(params) {
|
|
202
|
+
async addCard(boardId, params) {
|
|
181
203
|
return this.handleRequest(async () => {
|
|
182
204
|
const response = await this.axiosInstance.post('/cards', {
|
|
183
205
|
idList: params.listId,
|
|
184
206
|
name: params.name,
|
|
185
207
|
desc: params.description,
|
|
186
208
|
due: params.dueDate,
|
|
209
|
+
start: params.start,
|
|
187
210
|
idLabels: params.labels,
|
|
188
211
|
});
|
|
189
212
|
return response.data;
|
|
190
213
|
});
|
|
191
214
|
}
|
|
192
|
-
async updateCard(params) {
|
|
215
|
+
async updateCard(boardId, params) {
|
|
193
216
|
return this.handleRequest(async () => {
|
|
194
217
|
const response = await this.axiosInstance.put(`/cards/${params.cardId}`, {
|
|
195
218
|
name: params.name,
|
|
196
219
|
desc: params.description,
|
|
197
220
|
due: params.dueDate,
|
|
221
|
+
start: params.start,
|
|
222
|
+
dueComplete: params.dueComplete,
|
|
198
223
|
idLabels: params.labels,
|
|
199
224
|
});
|
|
200
225
|
return response.data;
|
|
201
226
|
});
|
|
202
227
|
}
|
|
203
|
-
async archiveCard(cardId) {
|
|
228
|
+
async archiveCard(boardId, cardId) {
|
|
204
229
|
return this.handleRequest(async () => {
|
|
205
230
|
const response = await this.axiosInstance.put(`/cards/${cardId}`, {
|
|
206
231
|
closed: true,
|
|
@@ -208,24 +233,30 @@ export class TrelloClient {
|
|
|
208
233
|
return response.data;
|
|
209
234
|
});
|
|
210
235
|
}
|
|
211
|
-
async moveCard(cardId, listId) {
|
|
236
|
+
async moveCard(boardId, cardId, listId) {
|
|
237
|
+
const effectiveBoardId = boardId || this.defaultBoardId;
|
|
212
238
|
return this.handleRequest(async () => {
|
|
213
239
|
const response = await this.axiosInstance.put(`/cards/${cardId}`, {
|
|
214
240
|
idList: listId,
|
|
241
|
+
...(effectiveBoardId && { idBoard: effectiveBoardId }),
|
|
215
242
|
});
|
|
216
243
|
return response.data;
|
|
217
244
|
});
|
|
218
245
|
}
|
|
219
|
-
async addList(name) {
|
|
246
|
+
async addList(boardId, name) {
|
|
247
|
+
const effectiveBoardId = boardId || this.activeConfig.boardId || this.defaultBoardId;
|
|
248
|
+
if (!effectiveBoardId) {
|
|
249
|
+
throw new McpError(ErrorCode.InvalidParams, 'boardId is required when no default board is configured');
|
|
250
|
+
}
|
|
220
251
|
return this.handleRequest(async () => {
|
|
221
252
|
const response = await this.axiosInstance.post('/lists', {
|
|
222
253
|
name,
|
|
223
|
-
idBoard:
|
|
254
|
+
idBoard: effectiveBoardId,
|
|
224
255
|
});
|
|
225
256
|
return response.data;
|
|
226
257
|
});
|
|
227
258
|
}
|
|
228
|
-
async archiveList(listId) {
|
|
259
|
+
async archiveList(boardId, listId) {
|
|
229
260
|
return this.handleRequest(async () => {
|
|
230
261
|
const response = await this.axiosInstance.put(`/lists/${listId}/closed`, {
|
|
231
262
|
value: true,
|
|
@@ -239,9 +270,8 @@ export class TrelloClient {
|
|
|
239
270
|
return response.data;
|
|
240
271
|
});
|
|
241
272
|
}
|
|
242
|
-
async attachImageToCard(cardId, imageUrl, name) {
|
|
273
|
+
async attachImageToCard(boardId, cardId, imageUrl, name) {
|
|
243
274
|
return this.handleRequest(async () => {
|
|
244
|
-
// Attaching an image directly from URL without downloading it
|
|
245
275
|
const response = await this.axiosInstance.post(`/cards/${cardId}/attachments`, {
|
|
246
276
|
url: imageUrl,
|
|
247
277
|
name: name || 'Image Attachment',
|
|
@@ -249,5 +279,177 @@ export class TrelloClient {
|
|
|
249
279
|
return response.data;
|
|
250
280
|
});
|
|
251
281
|
}
|
|
282
|
+
async getCard(cardId, includeMarkdown = false) {
|
|
283
|
+
return this.handleRequest(async () => {
|
|
284
|
+
const response = await this.axiosInstance.get(`/cards/${cardId}`, {
|
|
285
|
+
params: {
|
|
286
|
+
attachments: true,
|
|
287
|
+
checklists: 'all',
|
|
288
|
+
checkItemStates: true,
|
|
289
|
+
members: true,
|
|
290
|
+
membersVoted: true,
|
|
291
|
+
labels: true,
|
|
292
|
+
actions: 'commentCard',
|
|
293
|
+
actions_limit: 100,
|
|
294
|
+
fields: 'all',
|
|
295
|
+
customFieldItems: true,
|
|
296
|
+
list: true,
|
|
297
|
+
board: true,
|
|
298
|
+
stickers: true,
|
|
299
|
+
pluginData: true,
|
|
300
|
+
},
|
|
301
|
+
});
|
|
302
|
+
const cardData = response.data;
|
|
303
|
+
if (includeMarkdown) {
|
|
304
|
+
return this.formatCardAsMarkdown(cardData);
|
|
305
|
+
}
|
|
306
|
+
return cardData;
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
formatCardAsMarkdown(card) {
|
|
310
|
+
let markdown = '';
|
|
311
|
+
// Title and basic info
|
|
312
|
+
markdown += `# ${card.name}\n\n`;
|
|
313
|
+
// Board and List context
|
|
314
|
+
if (card.board && card.list) {
|
|
315
|
+
markdown += `📍 **Board**: [${card.board.name}](${card.board.url}) > **List**: ${card.list.name}\n\n`;
|
|
316
|
+
}
|
|
317
|
+
// Labels
|
|
318
|
+
if (card.labels && card.labels.length > 0) {
|
|
319
|
+
markdown += `## 🏷️ Labels\n`;
|
|
320
|
+
card.labels.forEach(label => {
|
|
321
|
+
markdown += `- \`${label.color}\` ${label.name || '(no name)'}\n`;
|
|
322
|
+
});
|
|
323
|
+
markdown += '\n';
|
|
324
|
+
}
|
|
325
|
+
// Due date
|
|
326
|
+
if (card.due) {
|
|
327
|
+
const dueDate = new Date(card.due);
|
|
328
|
+
const status = card.dueComplete ? '✅ Complete' : '⏰ Due';
|
|
329
|
+
markdown += `## 📅 Due Date\n${status}: ${dueDate.toLocaleString()}\n\n`;
|
|
330
|
+
}
|
|
331
|
+
// Members
|
|
332
|
+
if (card.members && card.members.length > 0) {
|
|
333
|
+
markdown += `## 👥 Members\n`;
|
|
334
|
+
card.members.forEach(member => {
|
|
335
|
+
markdown += `- @${member.username} (${member.fullName})\n`;
|
|
336
|
+
});
|
|
337
|
+
markdown += '\n';
|
|
338
|
+
}
|
|
339
|
+
// Description
|
|
340
|
+
if (card.desc) {
|
|
341
|
+
markdown += `## 📝 Description\n`;
|
|
342
|
+
markdown += `${card.desc}\n\n`;
|
|
343
|
+
// Parse for inline images (Trello uses markdown-like syntax)
|
|
344
|
+
// Look for patterns like 
|
|
345
|
+
const imageRegex = /!\[([^\]]*)\]\(([^)]+)\)/g;
|
|
346
|
+
const images = card.desc.match(imageRegex);
|
|
347
|
+
if (images) {
|
|
348
|
+
markdown += `### Inline Images in Description\n`;
|
|
349
|
+
images.forEach((img, index) => {
|
|
350
|
+
const match = img.match(/!\[([^\]]*)\]\(([^)]+)\)/);
|
|
351
|
+
if (match) {
|
|
352
|
+
markdown += `${index + 1}. ${match[1] || 'Image'}: ${match[2]}\n`;
|
|
353
|
+
}
|
|
354
|
+
});
|
|
355
|
+
markdown += '\n';
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
// Checklists
|
|
359
|
+
if (card.checklists && card.checklists.length > 0) {
|
|
360
|
+
markdown += `## ✅ Checklists\n`;
|
|
361
|
+
card.checklists.forEach(checklist => {
|
|
362
|
+
const completed = checklist.checkItems.filter(item => item.state === 'complete').length;
|
|
363
|
+
const total = checklist.checkItems.length;
|
|
364
|
+
markdown += `### ${checklist.name} (${completed}/${total})\n`;
|
|
365
|
+
// Sort by position
|
|
366
|
+
const sortedItems = [...checklist.checkItems].sort((a, b) => a.pos - b.pos);
|
|
367
|
+
sortedItems.forEach(item => {
|
|
368
|
+
const checkbox = item.state === 'complete' ? '[x]' : '[ ]';
|
|
369
|
+
markdown += `- ${checkbox} ${item.name}`;
|
|
370
|
+
if (item.due) {
|
|
371
|
+
const itemDue = new Date(item.due);
|
|
372
|
+
markdown += ` (Due: ${itemDue.toLocaleDateString()})`;
|
|
373
|
+
}
|
|
374
|
+
if (item.idMember) {
|
|
375
|
+
const member = card.members?.find(m => m.id === item.idMember);
|
|
376
|
+
if (member) {
|
|
377
|
+
markdown += ` - @${member.username}`;
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
markdown += '\n';
|
|
381
|
+
});
|
|
382
|
+
markdown += '\n';
|
|
383
|
+
});
|
|
384
|
+
}
|
|
385
|
+
// Attachments
|
|
386
|
+
if (card.attachments && card.attachments.length > 0) {
|
|
387
|
+
markdown += `## 📎 Attachments (${card.attachments.length})\n`;
|
|
388
|
+
card.attachments.forEach((attachment, index) => {
|
|
389
|
+
markdown += `### ${index + 1}. ${attachment.name}\n`;
|
|
390
|
+
markdown += `- **URL**: ${attachment.url}\n`;
|
|
391
|
+
if (attachment.fileName) {
|
|
392
|
+
markdown += `- **File**: ${attachment.fileName}`;
|
|
393
|
+
if (attachment.bytes) {
|
|
394
|
+
const size = this.formatFileSize(attachment.bytes);
|
|
395
|
+
markdown += ` (${size})`;
|
|
396
|
+
}
|
|
397
|
+
markdown += '\n';
|
|
398
|
+
}
|
|
399
|
+
if (attachment.mimeType) {
|
|
400
|
+
markdown += `- **Type**: ${attachment.mimeType}\n`;
|
|
401
|
+
}
|
|
402
|
+
markdown += `- **Added**: ${new Date(attachment.date).toLocaleString()}\n`;
|
|
403
|
+
// Image preview
|
|
404
|
+
if (attachment.previews && attachment.previews.length > 0) {
|
|
405
|
+
const preview = attachment.previews[0];
|
|
406
|
+
markdown += `- **Preview**: \n`;
|
|
407
|
+
}
|
|
408
|
+
markdown += '\n';
|
|
409
|
+
});
|
|
410
|
+
}
|
|
411
|
+
// Comments
|
|
412
|
+
if (card.comments && card.comments.length > 0) {
|
|
413
|
+
markdown += `## 💬 Comments (${card.comments.length})\n`;
|
|
414
|
+
card.comments.forEach(comment => {
|
|
415
|
+
const date = new Date(comment.date);
|
|
416
|
+
markdown += `### ${comment.memberCreator.fullName} (@${comment.memberCreator.username}) - ${date.toLocaleString()}\n`;
|
|
417
|
+
markdown += `${comment.data.text}\n\n`;
|
|
418
|
+
});
|
|
419
|
+
}
|
|
420
|
+
// Statistics
|
|
421
|
+
if (card.badges) {
|
|
422
|
+
markdown += `## 📊 Statistics\n`;
|
|
423
|
+
if (card.badges.checkItems > 0) {
|
|
424
|
+
markdown += `- **Checklist Items**: ${card.badges.checkItemsChecked}/${card.badges.checkItems} completed\n`;
|
|
425
|
+
}
|
|
426
|
+
if (card.badges.comments > 0) {
|
|
427
|
+
markdown += `- **Comments**: ${card.badges.comments}\n`;
|
|
428
|
+
}
|
|
429
|
+
if (card.badges.attachments > 0) {
|
|
430
|
+
markdown += `- **Attachments**: ${card.badges.attachments}\n`;
|
|
431
|
+
}
|
|
432
|
+
if (card.badges.votes > 0) {
|
|
433
|
+
markdown += `- **Votes**: ${card.badges.votes}\n`;
|
|
434
|
+
}
|
|
435
|
+
markdown += '\n';
|
|
436
|
+
}
|
|
437
|
+
// Links
|
|
438
|
+
markdown += `## 🔗 Links\n`;
|
|
439
|
+
markdown += `- **Card URL**: ${card.url}\n`;
|
|
440
|
+
markdown += `- **Short URL**: ${card.shortUrl}\n\n`;
|
|
441
|
+
// Metadata
|
|
442
|
+
markdown += `---\n`;
|
|
443
|
+
markdown += `*Last Activity: ${new Date(card.dateLastActivity).toLocaleString()}*\n`;
|
|
444
|
+
markdown += `*Card ID: ${card.id}*\n`;
|
|
445
|
+
return markdown;
|
|
446
|
+
}
|
|
447
|
+
formatFileSize(bytes) {
|
|
448
|
+
const sizes = ['Bytes', 'KB', 'MB', 'GB'];
|
|
449
|
+
if (bytes === 0)
|
|
450
|
+
return '0 Bytes';
|
|
451
|
+
const i = Math.floor(Math.log(bytes) / Math.log(1024));
|
|
452
|
+
return Math.round((bytes / Math.pow(1024, i)) * 100) / 100 + ' ' + sizes[i];
|
|
453
|
+
}
|
|
252
454
|
}
|
|
253
455
|
//# sourceMappingURL=trello-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trello-client.js","sourceRoot":"","sources":["../src/trello-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"trello-client.js","sourceRoot":"","sources":["../src/trello-client.ts"],"names":[],"mappings":"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"}
|
package/build/types.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
export interface TrelloConfig {
|
|
2
2
|
apiKey: string;
|
|
3
3
|
token: string;
|
|
4
|
-
|
|
4
|
+
defaultBoardId?: string;
|
|
5
|
+
boardId?: string;
|
|
5
6
|
workspaceId?: string;
|
|
6
7
|
}
|
|
7
8
|
export interface TrelloBoard {
|
|
@@ -92,6 +93,119 @@ export interface TrelloAttachment {
|
|
|
92
93
|
}>;
|
|
93
94
|
isUpload: boolean;
|
|
94
95
|
}
|
|
96
|
+
export interface TrelloCheckItem {
|
|
97
|
+
id: string;
|
|
98
|
+
name: string;
|
|
99
|
+
state: 'complete' | 'incomplete';
|
|
100
|
+
pos: number;
|
|
101
|
+
due?: string | null;
|
|
102
|
+
dueReminder?: number | null;
|
|
103
|
+
idMember?: string | null;
|
|
104
|
+
}
|
|
105
|
+
export interface TrelloChecklist {
|
|
106
|
+
id: string;
|
|
107
|
+
name: string;
|
|
108
|
+
idCard: string;
|
|
109
|
+
pos: number;
|
|
110
|
+
checkItems: TrelloCheckItem[];
|
|
111
|
+
}
|
|
112
|
+
export interface TrelloLabelDetails {
|
|
113
|
+
id: string;
|
|
114
|
+
idBoard: string;
|
|
115
|
+
name: string;
|
|
116
|
+
color: string;
|
|
117
|
+
}
|
|
118
|
+
export interface TrelloComment {
|
|
119
|
+
id: string;
|
|
120
|
+
date: string;
|
|
121
|
+
data: {
|
|
122
|
+
text: string;
|
|
123
|
+
card?: {
|
|
124
|
+
id: string;
|
|
125
|
+
name: string;
|
|
126
|
+
};
|
|
127
|
+
};
|
|
128
|
+
memberCreator: {
|
|
129
|
+
id: string;
|
|
130
|
+
fullName: string;
|
|
131
|
+
username: string;
|
|
132
|
+
avatarUrl?: string;
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
export interface TrelloCustomField {
|
|
136
|
+
id: string;
|
|
137
|
+
name: string;
|
|
138
|
+
type: string;
|
|
139
|
+
value?: any;
|
|
140
|
+
}
|
|
141
|
+
export interface TrelloBadges {
|
|
142
|
+
attachmentsByType?: {
|
|
143
|
+
trello?: {
|
|
144
|
+
board: number;
|
|
145
|
+
card: number;
|
|
146
|
+
};
|
|
147
|
+
};
|
|
148
|
+
location: boolean;
|
|
149
|
+
votes: number;
|
|
150
|
+
viewingMemberVoted: boolean;
|
|
151
|
+
subscribed: boolean;
|
|
152
|
+
fogbugz: string;
|
|
153
|
+
checkItems: number;
|
|
154
|
+
checkItemsChecked: number;
|
|
155
|
+
checkItemsEarliestDue?: string | null;
|
|
156
|
+
comments: number;
|
|
157
|
+
attachments: number;
|
|
158
|
+
description: boolean;
|
|
159
|
+
due?: string | null;
|
|
160
|
+
dueComplete: boolean;
|
|
161
|
+
start?: string | null;
|
|
162
|
+
}
|
|
163
|
+
export interface TrelloCover {
|
|
164
|
+
idAttachment?: string | null;
|
|
165
|
+
color?: string | null;
|
|
166
|
+
idUploadedBackground?: string | null;
|
|
167
|
+
size: 'normal' | 'full';
|
|
168
|
+
brightness: 'light' | 'dark';
|
|
169
|
+
isTemplate: boolean;
|
|
170
|
+
}
|
|
171
|
+
export interface EnhancedTrelloCard {
|
|
172
|
+
id: string;
|
|
173
|
+
name: string;
|
|
174
|
+
desc: string;
|
|
175
|
+
descData?: {
|
|
176
|
+
emoji?: Record<string, any>;
|
|
177
|
+
};
|
|
178
|
+
due: string | null;
|
|
179
|
+
dueComplete: boolean;
|
|
180
|
+
dueReminder: number | null;
|
|
181
|
+
start: string | null;
|
|
182
|
+
idList: string;
|
|
183
|
+
idBoard: string;
|
|
184
|
+
closed: boolean;
|
|
185
|
+
url: string;
|
|
186
|
+
shortUrl: string;
|
|
187
|
+
dateLastActivity: string;
|
|
188
|
+
pos: number;
|
|
189
|
+
labels: TrelloLabelDetails[];
|
|
190
|
+
idLabels: string[];
|
|
191
|
+
attachments: TrelloAttachment[];
|
|
192
|
+
checklists: TrelloChecklist[];
|
|
193
|
+
members: TrelloMember[];
|
|
194
|
+
idMembers: string[];
|
|
195
|
+
comments: TrelloComment[];
|
|
196
|
+
customFieldItems?: TrelloCustomField[];
|
|
197
|
+
badges: TrelloBadges;
|
|
198
|
+
cover: TrelloCover;
|
|
199
|
+
list?: {
|
|
200
|
+
id: string;
|
|
201
|
+
name: string;
|
|
202
|
+
};
|
|
203
|
+
board?: {
|
|
204
|
+
id: string;
|
|
205
|
+
name: string;
|
|
206
|
+
url: string;
|
|
207
|
+
};
|
|
208
|
+
}
|
|
95
209
|
export interface RateLimiter {
|
|
96
210
|
canMakeRequest(): boolean;
|
|
97
211
|
waitForAvailableToken(): Promise<void>;
|
package/build/validators.d.ts
CHANGED
|
@@ -4,40 +4,58 @@ export declare function validateNumber(value: unknown, field: string): number;
|
|
|
4
4
|
export declare function validateOptionalNumber(value: unknown): number | undefined;
|
|
5
5
|
export declare function validateStringArray(value: unknown): string[];
|
|
6
6
|
export declare function validateOptionalStringArray(value: unknown): string[] | undefined;
|
|
7
|
+
export declare function validateBoolean(value: unknown, field: string): boolean;
|
|
8
|
+
export declare function validateOptionalBoolean(value: unknown): boolean | undefined;
|
|
9
|
+
export declare function validateOptionalDateString(value: unknown): string | undefined;
|
|
7
10
|
export declare function validateGetCardsListRequest(args: Record<string, unknown>): {
|
|
11
|
+
boardId?: string;
|
|
8
12
|
listId: string;
|
|
9
13
|
};
|
|
14
|
+
export declare function validateGetListsRequest(args: Record<string, unknown>): {
|
|
15
|
+
boardId?: string;
|
|
16
|
+
};
|
|
10
17
|
export declare function validateGetRecentActivityRequest(args: Record<string, unknown>): {
|
|
18
|
+
boardId?: string;
|
|
11
19
|
limit?: number;
|
|
12
20
|
};
|
|
13
21
|
export declare function validateAddCardRequest(args: Record<string, unknown>): {
|
|
22
|
+
boardId?: string;
|
|
14
23
|
listId: string;
|
|
15
24
|
name: string;
|
|
16
25
|
description?: string;
|
|
17
26
|
dueDate?: string;
|
|
27
|
+
start?: string;
|
|
18
28
|
labels?: string[];
|
|
19
29
|
};
|
|
20
30
|
export declare function validateUpdateCardRequest(args: Record<string, unknown>): {
|
|
31
|
+
boardId?: string;
|
|
21
32
|
cardId: string;
|
|
22
33
|
name?: string;
|
|
23
34
|
description?: string;
|
|
24
35
|
dueDate?: string;
|
|
36
|
+
start?: string;
|
|
37
|
+
dueComplete?: boolean;
|
|
25
38
|
labels?: string[];
|
|
26
39
|
};
|
|
27
40
|
export declare function validateArchiveCardRequest(args: Record<string, unknown>): {
|
|
41
|
+
boardId?: string;
|
|
28
42
|
cardId: string;
|
|
29
43
|
};
|
|
30
44
|
export declare function validateAddListRequest(args: Record<string, unknown>): {
|
|
45
|
+
boardId?: string;
|
|
31
46
|
name: string;
|
|
32
47
|
};
|
|
33
48
|
export declare function validateArchiveListRequest(args: Record<string, unknown>): {
|
|
49
|
+
boardId?: string;
|
|
34
50
|
listId: string;
|
|
35
51
|
};
|
|
36
52
|
export declare function validateMoveCardRequest(args: Record<string, unknown>): {
|
|
53
|
+
boardId?: string;
|
|
37
54
|
cardId: string;
|
|
38
55
|
listId: string;
|
|
39
56
|
};
|
|
40
57
|
export declare function validateAttachImageRequest(args: Record<string, unknown>): {
|
|
58
|
+
boardId?: string;
|
|
41
59
|
cardId: string;
|
|
42
60
|
imageUrl: string;
|
|
43
61
|
name?: string;
|
|
@@ -51,3 +69,7 @@ export declare function validateSetActiveWorkspaceRequest(args: Record<string, u
|
|
|
51
69
|
export declare function validateListBoardsInWorkspaceRequest(args: Record<string, unknown>): {
|
|
52
70
|
workspaceId: string;
|
|
53
71
|
};
|
|
72
|
+
export declare function validateGetCardRequest(args: Record<string, unknown>): {
|
|
73
|
+
cardId: string;
|
|
74
|
+
includeMarkdown?: boolean;
|
|
75
|
+
};
|