@hasna/connectors 0.3.16 → 0.4.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.
Files changed (127) hide show
  1. package/bin/index.js +71 -1
  2. package/bin/mcp.js +71 -1
  3. package/bin/serve.js +70 -0
  4. package/connectors/connect-asana/.env.example +11 -0
  5. package/connectors/connect-asana/CLAUDE.md +128 -0
  6. package/connectors/connect-asana/README.md +193 -0
  7. package/connectors/connect-asana/package.json +52 -0
  8. package/connectors/connect-asana/src/api/client.ts +119 -0
  9. package/connectors/connect-asana/src/api/index.ts +319 -0
  10. package/connectors/connect-asana/src/cli/index.ts +731 -0
  11. package/connectors/connect-asana/src/index.ts +19 -0
  12. package/connectors/connect-asana/src/types/index.ts +270 -0
  13. package/connectors/connect-asana/src/utils/config.ts +171 -0
  14. package/connectors/connect-asana/src/utils/output.ts +119 -0
  15. package/connectors/connect-asana/tsconfig.json +16 -0
  16. package/connectors/connect-clickup/.env.example +11 -0
  17. package/connectors/connect-clickup/CLAUDE.md +128 -0
  18. package/connectors/connect-clickup/README.md +193 -0
  19. package/connectors/connect-clickup/package.json +52 -0
  20. package/connectors/connect-clickup/src/api/client.ts +116 -0
  21. package/connectors/connect-clickup/src/api/index.ts +400 -0
  22. package/connectors/connect-clickup/src/cli/index.ts +625 -0
  23. package/connectors/connect-clickup/src/index.ts +19 -0
  24. package/connectors/connect-clickup/src/types/index.ts +591 -0
  25. package/connectors/connect-clickup/src/utils/config.ts +157 -0
  26. package/connectors/connect-clickup/src/utils/output.ts +119 -0
  27. package/connectors/connect-clickup/tsconfig.json +16 -0
  28. package/connectors/connect-confluence/.env.example +11 -0
  29. package/connectors/connect-confluence/CLAUDE.md +272 -0
  30. package/connectors/connect-confluence/README.md +193 -0
  31. package/connectors/connect-confluence/package.json +53 -0
  32. package/connectors/connect-confluence/scripts/release.ts +179 -0
  33. package/connectors/connect-confluence/src/api/client.ts +213 -0
  34. package/connectors/connect-confluence/src/api/example.ts +48 -0
  35. package/connectors/connect-confluence/src/api/index.ts +51 -0
  36. package/connectors/connect-confluence/src/cli/index.ts +254 -0
  37. package/connectors/connect-confluence/src/index.ts +103 -0
  38. package/connectors/connect-confluence/src/types/index.ts +237 -0
  39. package/connectors/connect-confluence/src/utils/auth.ts +274 -0
  40. package/connectors/connect-confluence/src/utils/bulk.ts +212 -0
  41. package/connectors/connect-confluence/src/utils/config.ts +326 -0
  42. package/connectors/connect-confluence/src/utils/output.ts +175 -0
  43. package/connectors/connect-confluence/src/utils/settings.ts +114 -0
  44. package/connectors/connect-confluence/src/utils/storage.ts +198 -0
  45. package/connectors/connect-confluence/tsconfig.json +16 -0
  46. package/connectors/connect-jira/.env.example +11 -0
  47. package/connectors/connect-jira/CLAUDE.md +128 -0
  48. package/connectors/connect-jira/README.md +193 -0
  49. package/connectors/connect-jira/package.json +53 -0
  50. package/connectors/connect-jira/src/api/client.ts +131 -0
  51. package/connectors/connect-jira/src/api/index.ts +266 -0
  52. package/connectors/connect-jira/src/cli/index.ts +653 -0
  53. package/connectors/connect-jira/src/index.ts +23 -0
  54. package/connectors/connect-jira/src/types/index.ts +448 -0
  55. package/connectors/connect-jira/src/utils/config.ts +179 -0
  56. package/connectors/connect-jira/src/utils/output.ts +119 -0
  57. package/connectors/connect-jira/tsconfig.json +16 -0
  58. package/connectors/connect-linear/CLAUDE.md +88 -0
  59. package/connectors/connect-linear/README.md +201 -0
  60. package/connectors/connect-linear/package.json +45 -0
  61. package/connectors/connect-linear/src/api/client.ts +62 -0
  62. package/connectors/connect-linear/src/api/index.ts +46 -0
  63. package/connectors/connect-linear/src/api/issues.ts +247 -0
  64. package/connectors/connect-linear/src/api/projects.ts +179 -0
  65. package/connectors/connect-linear/src/api/teams.ts +125 -0
  66. package/connectors/connect-linear/src/api/users.ts +112 -0
  67. package/connectors/connect-linear/src/cli/index.ts +560 -0
  68. package/connectors/connect-linear/src/index.ts +27 -0
  69. package/connectors/connect-linear/src/types/index.ts +275 -0
  70. package/connectors/connect-linear/src/utils/config.ts +249 -0
  71. package/connectors/connect-linear/src/utils/output.ts +119 -0
  72. package/connectors/connect-linear/tsconfig.json +16 -0
  73. package/connectors/connect-slack/.env.example +7 -0
  74. package/connectors/connect-slack/CLAUDE.md +69 -0
  75. package/connectors/connect-slack/README.md +150 -0
  76. package/connectors/connect-slack/package.json +44 -0
  77. package/connectors/connect-slack/src/api/channels.ts +112 -0
  78. package/connectors/connect-slack/src/api/client.ts +97 -0
  79. package/connectors/connect-slack/src/api/index.ts +42 -0
  80. package/connectors/connect-slack/src/api/messages.ts +127 -0
  81. package/connectors/connect-slack/src/api/users.ts +110 -0
  82. package/connectors/connect-slack/src/cli/index.ts +494 -0
  83. package/connectors/connect-slack/src/index.ts +21 -0
  84. package/connectors/connect-slack/src/types/index.ts +263 -0
  85. package/connectors/connect-slack/src/utils/config.ts +297 -0
  86. package/connectors/connect-slack/src/utils/output.ts +119 -0
  87. package/connectors/connect-slack/tsconfig.json +16 -0
  88. package/connectors/connect-telegram/.env.example +2 -0
  89. package/connectors/connect-telegram/package.json +49 -0
  90. package/connectors/connect-todoist/.env.example +11 -0
  91. package/connectors/connect-todoist/CLAUDE.md +104 -0
  92. package/connectors/connect-todoist/README.md +193 -0
  93. package/connectors/connect-todoist/package.json +52 -0
  94. package/connectors/connect-todoist/src/api/client.ts +117 -0
  95. package/connectors/connect-todoist/src/api/index.ts +188 -0
  96. package/connectors/connect-todoist/src/cli/index.ts +990 -0
  97. package/connectors/connect-todoist/src/index.ts +21 -0
  98. package/connectors/connect-todoist/src/types/index.ts +240 -0
  99. package/connectors/connect-todoist/src/utils/config.ts +157 -0
  100. package/connectors/connect-todoist/src/utils/output.ts +119 -0
  101. package/connectors/connect-todoist/tsconfig.json +16 -0
  102. package/connectors/connect-trello/.env.example +11 -0
  103. package/connectors/connect-trello/CLAUDE.md +128 -0
  104. package/connectors/connect-trello/README.md +193 -0
  105. package/connectors/connect-trello/package.json +53 -0
  106. package/connectors/connect-trello/src/api/client.ts +128 -0
  107. package/connectors/connect-trello/src/api/index.ts +278 -0
  108. package/connectors/connect-trello/src/cli/index.ts +737 -0
  109. package/connectors/connect-trello/src/index.ts +21 -0
  110. package/connectors/connect-trello/src/types/index.ts +314 -0
  111. package/connectors/connect-trello/src/utils/config.ts +182 -0
  112. package/connectors/connect-trello/src/utils/output.ts +119 -0
  113. package/connectors/connect-trello/tsconfig.json +16 -0
  114. package/connectors/connect-whatsapp/.env.example +11 -0
  115. package/connectors/connect-whatsapp/CLAUDE.md +113 -0
  116. package/connectors/connect-whatsapp/README.md +193 -0
  117. package/connectors/connect-whatsapp/package.json +53 -0
  118. package/connectors/connect-whatsapp/src/api/client.ts +133 -0
  119. package/connectors/connect-whatsapp/src/api/index.ts +365 -0
  120. package/connectors/connect-whatsapp/src/cli/index.ts +686 -0
  121. package/connectors/connect-whatsapp/src/index.ts +25 -0
  122. package/connectors/connect-whatsapp/src/types/index.ts +502 -0
  123. package/connectors/connect-whatsapp/src/utils/config.ts +179 -0
  124. package/connectors/connect-whatsapp/src/utils/output.ts +119 -0
  125. package/connectors/connect-whatsapp/tsconfig.json +16 -0
  126. package/dist/index.js +70 -0
  127. package/package.json +1 -1
@@ -0,0 +1,591 @@
1
+ // ClickUp Connector Types
2
+ // Workspaces, spaces, folders, lists, and tasks management
3
+
4
+ // ============================================
5
+ // Configuration
6
+ // ============================================
7
+
8
+ export interface ClickUpConfig {
9
+ apiKey: string;
10
+ baseUrl?: string;
11
+ }
12
+
13
+ // ============================================
14
+ // Common Types
15
+ // ============================================
16
+
17
+ export type OutputFormat = 'json' | 'pretty';
18
+
19
+ // ============================================
20
+ // User Types
21
+ // ============================================
22
+
23
+ export interface User {
24
+ id: number;
25
+ username: string;
26
+ email: string;
27
+ color: string;
28
+ profilePicture?: string;
29
+ initials: string;
30
+ role?: number;
31
+ custom_role?: string | null;
32
+ last_active?: string;
33
+ date_joined?: string;
34
+ date_invited?: string;
35
+ }
36
+
37
+ export interface Member {
38
+ user: User;
39
+ invited_by?: User;
40
+ }
41
+
42
+ // ============================================
43
+ // Workspace (Team) Types
44
+ // ============================================
45
+
46
+ export interface Workspace {
47
+ id: string;
48
+ name: string;
49
+ color: string;
50
+ avatar?: string;
51
+ members: Member[];
52
+ }
53
+
54
+ // ============================================
55
+ // Space Types
56
+ // ============================================
57
+
58
+ export interface Space {
59
+ id: string;
60
+ name: string;
61
+ private: boolean;
62
+ color?: string;
63
+ avatar?: string;
64
+ admin_can_manage?: boolean;
65
+ statuses: Status[];
66
+ multiple_assignees: boolean;
67
+ features?: SpaceFeatures;
68
+ archived: boolean;
69
+ }
70
+
71
+ export interface SpaceFeatures {
72
+ due_dates?: {
73
+ enabled: boolean;
74
+ start_date: boolean;
75
+ remap_due_dates: boolean;
76
+ remap_closed_due_date: boolean;
77
+ };
78
+ time_tracking?: {
79
+ enabled: boolean;
80
+ };
81
+ tags?: {
82
+ enabled: boolean;
83
+ };
84
+ time_estimates?: {
85
+ enabled: boolean;
86
+ };
87
+ checklists?: {
88
+ enabled: boolean;
89
+ };
90
+ custom_fields?: {
91
+ enabled: boolean;
92
+ };
93
+ remap_dependencies?: {
94
+ enabled: boolean;
95
+ };
96
+ dependency_warning?: {
97
+ enabled: boolean;
98
+ };
99
+ portfolios?: {
100
+ enabled: boolean;
101
+ };
102
+ }
103
+
104
+ export interface CreateSpaceInput {
105
+ name: string;
106
+ multiple_assignees?: boolean;
107
+ features?: SpaceFeatures;
108
+ }
109
+
110
+ // ============================================
111
+ // Folder Types
112
+ // ============================================
113
+
114
+ export interface Folder {
115
+ id: string;
116
+ name: string;
117
+ orderindex: number;
118
+ override_statuses: boolean;
119
+ hidden: boolean;
120
+ space: {
121
+ id: string;
122
+ name: string;
123
+ access?: boolean;
124
+ };
125
+ task_count?: string;
126
+ archived: boolean;
127
+ statuses?: Status[];
128
+ lists?: List[];
129
+ permission_level?: string;
130
+ }
131
+
132
+ export interface CreateFolderInput {
133
+ name: string;
134
+ }
135
+
136
+ // ============================================
137
+ // List Types
138
+ // ============================================
139
+
140
+ export interface List {
141
+ id: string;
142
+ name: string;
143
+ orderindex: number;
144
+ content?: string;
145
+ status?: {
146
+ status: string;
147
+ color: string;
148
+ hide_label: boolean;
149
+ };
150
+ priority?: {
151
+ priority: string;
152
+ color: string;
153
+ };
154
+ assignee?: User;
155
+ task_count?: number;
156
+ due_date?: string;
157
+ start_date?: string;
158
+ folder: {
159
+ id: string;
160
+ name: string;
161
+ hidden: boolean;
162
+ access?: boolean;
163
+ };
164
+ space: {
165
+ id: string;
166
+ name: string;
167
+ access?: boolean;
168
+ };
169
+ archived: boolean;
170
+ override_statuses: boolean;
171
+ statuses?: Status[];
172
+ permission_level?: string;
173
+ }
174
+
175
+ export interface CreateListInput {
176
+ name: string;
177
+ content?: string;
178
+ due_date?: number;
179
+ due_date_time?: boolean;
180
+ priority?: number;
181
+ assignee?: number;
182
+ status?: string;
183
+ }
184
+
185
+ // ============================================
186
+ // Task Types
187
+ // ============================================
188
+
189
+ export interface Task {
190
+ id: string;
191
+ custom_id?: string;
192
+ name: string;
193
+ text_content?: string;
194
+ description?: string;
195
+ status: Status;
196
+ orderindex: string;
197
+ date_created: string;
198
+ date_updated: string;
199
+ date_closed?: string;
200
+ date_done?: string;
201
+ archived: boolean;
202
+ creator: User;
203
+ assignees: User[];
204
+ watchers?: User[];
205
+ checklists?: Checklist[];
206
+ tags: Tag[];
207
+ parent?: string;
208
+ priority?: Priority;
209
+ due_date?: string;
210
+ start_date?: string;
211
+ points?: number;
212
+ time_estimate?: number;
213
+ time_spent?: number;
214
+ custom_fields?: CustomField[];
215
+ dependencies?: Dependency[];
216
+ linked_tasks?: LinkedTask[];
217
+ team_id: string;
218
+ url: string;
219
+ permission_level?: string;
220
+ list: {
221
+ id: string;
222
+ name: string;
223
+ access?: boolean;
224
+ };
225
+ project?: {
226
+ id: string;
227
+ name: string;
228
+ hidden: boolean;
229
+ access?: boolean;
230
+ };
231
+ folder: {
232
+ id: string;
233
+ name: string;
234
+ hidden: boolean;
235
+ access?: boolean;
236
+ };
237
+ space: {
238
+ id: string;
239
+ };
240
+ attachments?: Attachment[];
241
+ }
242
+
243
+ export interface CreateTaskInput {
244
+ name: string;
245
+ description?: string;
246
+ assignees?: number[];
247
+ tags?: string[];
248
+ status?: string;
249
+ priority?: number;
250
+ due_date?: number;
251
+ due_date_time?: boolean;
252
+ time_estimate?: number;
253
+ start_date?: number;
254
+ start_date_time?: boolean;
255
+ notify_all?: boolean;
256
+ parent?: string;
257
+ links_to?: string;
258
+ check_required_custom_fields?: boolean;
259
+ custom_fields?: Array<{
260
+ id: string;
261
+ value: unknown;
262
+ }>;
263
+ }
264
+
265
+ export interface UpdateTaskInput {
266
+ name?: string;
267
+ description?: string;
268
+ assignees?: {
269
+ add?: number[];
270
+ rem?: number[];
271
+ };
272
+ status?: string;
273
+ priority?: number;
274
+ due_date?: number;
275
+ due_date_time?: boolean;
276
+ time_estimate?: number;
277
+ start_date?: number;
278
+ start_date_time?: boolean;
279
+ archived?: boolean;
280
+ parent?: string;
281
+ }
282
+
283
+ export interface TasksResponse {
284
+ tasks: Task[];
285
+ last_page?: boolean;
286
+ }
287
+
288
+ // ============================================
289
+ // Status Types
290
+ // ============================================
291
+
292
+ export interface Status {
293
+ id?: string;
294
+ status: string;
295
+ type: string;
296
+ orderindex: number;
297
+ color: string;
298
+ }
299
+
300
+ // ============================================
301
+ // Priority Types
302
+ // ============================================
303
+
304
+ export interface Priority {
305
+ id?: string;
306
+ priority: string;
307
+ color: string;
308
+ orderindex: string;
309
+ }
310
+
311
+ // ============================================
312
+ // Tag Types
313
+ // ============================================
314
+
315
+ export interface Tag {
316
+ name: string;
317
+ tag_fg: string;
318
+ tag_bg: string;
319
+ creator?: number;
320
+ }
321
+
322
+ // ============================================
323
+ // Checklist Types
324
+ // ============================================
325
+
326
+ export interface Checklist {
327
+ id: string;
328
+ task_id: string;
329
+ name: string;
330
+ date_created: string;
331
+ orderindex: number;
332
+ creator: number;
333
+ resolved: number;
334
+ unresolved: number;
335
+ items: ChecklistItem[];
336
+ }
337
+
338
+ export interface ChecklistItem {
339
+ id: string;
340
+ name: string;
341
+ orderindex: number;
342
+ assignee?: User;
343
+ group_assignee?: unknown;
344
+ resolved: boolean;
345
+ parent?: string;
346
+ date_created: string;
347
+ children?: ChecklistItem[];
348
+ }
349
+
350
+ export interface CreateChecklistInput {
351
+ name: string;
352
+ }
353
+
354
+ export interface CreateChecklistItemInput {
355
+ name: string;
356
+ assignee?: number;
357
+ }
358
+
359
+ // ============================================
360
+ // Custom Field Types
361
+ // ============================================
362
+
363
+ export interface CustomField {
364
+ id: string;
365
+ name: string;
366
+ type: string;
367
+ type_config?: Record<string, unknown>;
368
+ date_created: string;
369
+ hide_from_guests: boolean;
370
+ value?: unknown;
371
+ required?: boolean;
372
+ }
373
+
374
+ // ============================================
375
+ // Dependency Types
376
+ // ============================================
377
+
378
+ export interface Dependency {
379
+ task_id: string;
380
+ depends_on: string;
381
+ type: number;
382
+ date_created: string;
383
+ userid: string;
384
+ workspace_id?: string;
385
+ }
386
+
387
+ export interface LinkedTask {
388
+ task_id: string;
389
+ link_id: string;
390
+ date_created: string;
391
+ userid: string;
392
+ }
393
+
394
+ // ============================================
395
+ // Attachment Types
396
+ // ============================================
397
+
398
+ export interface Attachment {
399
+ id: string;
400
+ date: string;
401
+ title: string;
402
+ type: number;
403
+ source: number;
404
+ version: number;
405
+ extension: string;
406
+ thumbnail_small?: string;
407
+ thumbnail_medium?: string;
408
+ thumbnail_large?: string;
409
+ is_folder?: boolean;
410
+ mimetype?: string;
411
+ hidden?: boolean;
412
+ parent_id?: string;
413
+ size?: number;
414
+ total_comments?: number;
415
+ resolved_comments?: number;
416
+ user?: User;
417
+ deleted?: boolean;
418
+ orientation?: string;
419
+ url?: string;
420
+ parent_comment_type?: string;
421
+ parent_comment_parent?: string;
422
+ email_data?: unknown;
423
+ url_w_query?: string;
424
+ url_w_host?: string;
425
+ }
426
+
427
+ // ============================================
428
+ // Comment Types
429
+ // ============================================
430
+
431
+ export interface Comment {
432
+ id: string;
433
+ comment: CommentContent[];
434
+ comment_text: string;
435
+ user: User;
436
+ resolved: boolean;
437
+ assignee?: User;
438
+ assigned_by?: User;
439
+ reactions?: Reaction[];
440
+ date: string;
441
+ }
442
+
443
+ export interface CommentContent {
444
+ text?: string;
445
+ attributes?: Record<string, unknown>;
446
+ }
447
+
448
+ export interface Reaction {
449
+ reaction: string;
450
+ date: string;
451
+ user: User;
452
+ }
453
+
454
+ export interface CreateCommentInput {
455
+ comment_text: string;
456
+ assignee?: number;
457
+ notify_all?: boolean;
458
+ }
459
+
460
+ // ============================================
461
+ // Time Entry Types
462
+ // ============================================
463
+
464
+ export interface TimeEntry {
465
+ id: string;
466
+ task: {
467
+ id: string;
468
+ name: string;
469
+ status: Status;
470
+ custom_type?: unknown;
471
+ };
472
+ wid: string;
473
+ user: User;
474
+ billable: boolean;
475
+ start: string;
476
+ end?: string;
477
+ duration: string;
478
+ description?: string;
479
+ tags?: Tag[];
480
+ source?: string;
481
+ at?: string;
482
+ task_location?: {
483
+ list_id: string;
484
+ folder_id: string;
485
+ space_id: string;
486
+ list_name?: string;
487
+ folder_name?: string;
488
+ space_name?: string;
489
+ };
490
+ task_url?: string;
491
+ }
492
+
493
+ // ============================================
494
+ // Goal Types
495
+ // ============================================
496
+
497
+ export interface Goal {
498
+ id: string;
499
+ pretty_id: string;
500
+ name: string;
501
+ team_id: string;
502
+ date_created: string;
503
+ start_date?: string;
504
+ due_date?: string;
505
+ description?: string;
506
+ private: boolean;
507
+ archived: boolean;
508
+ creator: number;
509
+ color: string;
510
+ pretty_url: string;
511
+ multiple_owners: boolean;
512
+ folder_id?: string;
513
+ members: Member[];
514
+ owners: User[];
515
+ key_results?: KeyResult[];
516
+ percent_completed: number;
517
+ history?: unknown[];
518
+ reactions?: Reaction[];
519
+ }
520
+
521
+ export interface KeyResult {
522
+ id: string;
523
+ goal_id: string;
524
+ name: string;
525
+ creator: number;
526
+ type: string;
527
+ date_created: string;
528
+ goal_pretty_id: string;
529
+ percent_completed: number;
530
+ completed: boolean;
531
+ task_ids?: string[];
532
+ subcategory_ids?: string[];
533
+ owners: User[];
534
+ steps_start?: number;
535
+ steps_end?: number;
536
+ steps_current?: number;
537
+ unit?: string;
538
+ last_action?: unknown;
539
+ }
540
+
541
+ // ============================================
542
+ // Webhook Types
543
+ // ============================================
544
+
545
+ export interface Webhook {
546
+ id: string;
547
+ userid: number;
548
+ team_id: number;
549
+ endpoint: string;
550
+ client_id?: string;
551
+ events: string[];
552
+ task_id?: string;
553
+ list_id?: string;
554
+ folder_id?: string;
555
+ space_id?: string;
556
+ health: {
557
+ status: string;
558
+ fail_count: number;
559
+ };
560
+ secret?: string;
561
+ }
562
+
563
+ export interface CreateWebhookInput {
564
+ endpoint: string;
565
+ events: string[];
566
+ task_id?: string;
567
+ list_id?: string;
568
+ folder_id?: string;
569
+ space_id?: string;
570
+ }
571
+
572
+ // ============================================
573
+ // API Error Types
574
+ // ============================================
575
+
576
+ export interface ClickUpError {
577
+ err: string;
578
+ ECODE: string;
579
+ }
580
+
581
+ export class ClickUpApiError extends Error {
582
+ public readonly statusCode: number;
583
+ public readonly ecode?: string;
584
+
585
+ constructor(message: string, statusCode: number, ecode?: string) {
586
+ super(message);
587
+ this.name = 'ClickUpApiError';
588
+ this.statusCode = statusCode;
589
+ this.ecode = ecode;
590
+ }
591
+ }