@marktoflow/integrations 2.0.0-alpha.7 → 2.0.0-alpha.9
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 +738 -9
- package/dist/adapters/claude-agent-hooks.d.ts +176 -0
- package/dist/adapters/claude-agent-hooks.d.ts.map +1 -0
- package/dist/adapters/claude-agent-hooks.js +339 -0
- package/dist/adapters/claude-agent-hooks.js.map +1 -0
- package/dist/adapters/claude-agent-types.d.ts +426 -0
- package/dist/adapters/claude-agent-types.d.ts.map +1 -0
- package/dist/adapters/claude-agent-types.js +62 -0
- package/dist/adapters/claude-agent-types.js.map +1 -0
- package/dist/adapters/claude-agent-workflow.d.ts +393 -0
- package/dist/adapters/claude-agent-workflow.d.ts.map +1 -0
- package/dist/adapters/claude-agent-workflow.js +445 -0
- package/dist/adapters/claude-agent-workflow.js.map +1 -0
- package/dist/adapters/claude-agent.d.ts +171 -0
- package/dist/adapters/claude-agent.d.ts.map +1 -0
- package/dist/adapters/claude-agent.js +468 -0
- package/dist/adapters/claude-agent.js.map +1 -0
- package/dist/adapters/codex-types.d.ts +463 -0
- package/dist/adapters/codex-types.d.ts.map +1 -0
- package/dist/adapters/codex-types.js +53 -0
- package/dist/adapters/codex-types.js.map +1 -0
- package/dist/adapters/codex-workflow.d.ts +414 -0
- package/dist/adapters/codex-workflow.d.ts.map +1 -0
- package/dist/adapters/codex-workflow.js +470 -0
- package/dist/adapters/codex-workflow.js.map +1 -0
- package/dist/adapters/codex.d.ts +136 -0
- package/dist/adapters/codex.d.ts.map +1 -0
- package/dist/adapters/codex.js +390 -0
- package/dist/adapters/codex.js.map +1 -0
- package/dist/adapters/github-copilot-types.d.ts +1012 -0
- package/dist/adapters/github-copilot-types.d.ts.map +1 -0
- package/dist/adapters/github-copilot-types.js +80 -0
- package/dist/adapters/github-copilot-types.js.map +1 -0
- package/dist/adapters/github-copilot-workflow.d.ts +462 -0
- package/dist/adapters/github-copilot-workflow.d.ts.map +1 -0
- package/dist/adapters/github-copilot-workflow.js +473 -0
- package/dist/adapters/github-copilot-workflow.js.map +1 -0
- package/dist/adapters/github-copilot.d.ts +221 -37
- package/dist/adapters/github-copilot.d.ts.map +1 -1
- package/dist/adapters/github-copilot.js +336 -58
- package/dist/adapters/github-copilot.js.map +1 -1
- package/dist/adapters/opencode.d.ts +2 -0
- package/dist/adapters/opencode.d.ts.map +1 -1
- package/dist/adapters/opencode.js +6 -0
- package/dist/adapters/opencode.js.map +1 -1
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +59 -0
- package/dist/index.js.map +1 -1
- package/dist/services/ai-browser.d.ts +112 -0
- package/dist/services/ai-browser.d.ts.map +1 -0
- package/dist/services/ai-browser.js +363 -0
- package/dist/services/ai-browser.js.map +1 -0
- package/dist/services/asana.d.ts +159 -0
- package/dist/services/asana.d.ts.map +1 -0
- package/dist/services/asana.js +196 -0
- package/dist/services/asana.js.map +1 -0
- package/dist/services/aws-s3.d.ts +89 -0
- package/dist/services/aws-s3.d.ts.map +1 -0
- package/dist/services/aws-s3.js +154 -0
- package/dist/services/aws-s3.js.map +1 -0
- package/dist/services/dropbox.d.ts +134 -0
- package/dist/services/dropbox.d.ts.map +1 -0
- package/dist/services/dropbox.js +190 -0
- package/dist/services/dropbox.js.map +1 -0
- package/dist/services/mailchimp.d.ts +169 -0
- package/dist/services/mailchimp.d.ts.map +1 -0
- package/dist/services/mailchimp.js +180 -0
- package/dist/services/mailchimp.js.map +1 -0
- package/dist/services/playwright.d.ts +678 -0
- package/dist/services/playwright.d.ts.map +1 -0
- package/dist/services/playwright.js +1141 -0
- package/dist/services/playwright.js.map +1 -0
- package/dist/services/sendgrid.d.ts +43 -0
- package/dist/services/sendgrid.d.ts.map +1 -0
- package/dist/services/sendgrid.js +87 -0
- package/dist/services/sendgrid.js.map +1 -0
- package/dist/services/shopify.d.ts +160 -0
- package/dist/services/shopify.d.ts.map +1 -0
- package/dist/services/shopify.js +166 -0
- package/dist/services/shopify.js.map +1 -0
- package/dist/services/stripe.d.ts +275 -0
- package/dist/services/stripe.d.ts.map +1 -0
- package/dist/services/stripe.js +229 -0
- package/dist/services/stripe.js.map +1 -0
- package/dist/services/teams.d.ts +224 -0
- package/dist/services/teams.d.ts.map +1 -0
- package/dist/services/teams.js +229 -0
- package/dist/services/teams.js.map +1 -0
- package/dist/services/trello.d.ts +160 -0
- package/dist/services/trello.d.ts.map +1 -0
- package/dist/services/trello.js +194 -0
- package/dist/services/trello.js.map +1 -0
- package/dist/services/twilio.d.ts +126 -0
- package/dist/services/twilio.d.ts.map +1 -0
- package/dist/services/twilio.js +153 -0
- package/dist/services/twilio.js.map +1 -0
- package/dist/services/zendesk.d.ts +134 -0
- package/dist/services/zendesk.d.ts.map +1 -0
- package/dist/services/zendesk.js +148 -0
- package/dist/services/zendesk.js.map +1 -0
- package/package.json +26 -4
- package/dist/claude-code.d.ts +0 -16
- package/dist/claude-code.d.ts.map +0 -1
- package/dist/claude-code.js +0 -56
- package/dist/claude-code.js.map +0 -1
- package/dist/github.d.ts +0 -3
- package/dist/github.d.ts.map +0 -1
- package/dist/github.js +0 -13
- package/dist/github.js.map +0 -1
- package/dist/jira.d.ts +0 -3
- package/dist/jira.d.ts.map +0 -1
- package/dist/jira.js +0 -21
- package/dist/jira.js.map +0 -1
- package/dist/ollama.d.ts +0 -3
- package/dist/ollama.d.ts.map +0 -1
- package/dist/ollama.js +0 -9
- package/dist/ollama.js.map +0 -1
- package/dist/opencode.d.ts +0 -19
- package/dist/opencode.d.ts.map +0 -1
- package/dist/opencode.js +0 -104
- package/dist/opencode.js.map +0 -1
- package/dist/script.d.ts +0 -3
- package/dist/script.d.ts.map +0 -1
- package/dist/script.js +0 -21
- package/dist/script.js.map +0 -1
- package/dist/slack.d.ts +0 -3
- package/dist/slack.d.ts.map +0 -1
- package/dist/slack.js +0 -11
- package/dist/slack.js.map +0 -1
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Trello Integration
|
|
3
|
+
*
|
|
4
|
+
* Visual project management with boards, lists, and cards.
|
|
5
|
+
* API Docs: https://developer.atlassian.com/cloud/trello/rest/
|
|
6
|
+
* SDK: https://github.com/norberteder/trello
|
|
7
|
+
*/
|
|
8
|
+
// @ts-expect-error - trello doesn't have types
|
|
9
|
+
import Trello from 'trello';
|
|
10
|
+
/**
|
|
11
|
+
* Trello client wrapper for workflow integration
|
|
12
|
+
*/
|
|
13
|
+
export class TrelloClient {
|
|
14
|
+
client;
|
|
15
|
+
constructor(client) {
|
|
16
|
+
this.client = client;
|
|
17
|
+
}
|
|
18
|
+
// ==================== Boards ====================
|
|
19
|
+
/**
|
|
20
|
+
* Get board by ID
|
|
21
|
+
*/
|
|
22
|
+
async getBoard(boardId) {
|
|
23
|
+
return await this.client.getBoard(boardId);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Create board
|
|
27
|
+
*/
|
|
28
|
+
async createBoard(board) {
|
|
29
|
+
return await this.client.addBoard(board.name, board.desc, undefined, board.prefs);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Update board
|
|
33
|
+
*/
|
|
34
|
+
async updateBoard(boardId, updates) {
|
|
35
|
+
return await this.client.updateBoard(boardId, updates);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Get lists on board
|
|
39
|
+
*/
|
|
40
|
+
async getListsOnBoard(boardId) {
|
|
41
|
+
return await this.client.getListsOnBoard(boardId);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Get cards on board
|
|
45
|
+
*/
|
|
46
|
+
async getCardsOnBoard(boardId) {
|
|
47
|
+
return await this.client.getCardsOnBoard(boardId);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Get members of board
|
|
51
|
+
*/
|
|
52
|
+
async getBoardMembers(boardId) {
|
|
53
|
+
return await this.client.getBoardMembers(boardId);
|
|
54
|
+
}
|
|
55
|
+
// ==================== Lists ====================
|
|
56
|
+
/**
|
|
57
|
+
* Get list by ID
|
|
58
|
+
*/
|
|
59
|
+
async getList(listId) {
|
|
60
|
+
return await this.client.getListsOnBoard(listId);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Create list
|
|
64
|
+
*/
|
|
65
|
+
async createList(list) {
|
|
66
|
+
return await this.client.addListToBoard(list.idBoard, list.name, list.pos);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Update list
|
|
70
|
+
*/
|
|
71
|
+
async updateList(listId, updates) {
|
|
72
|
+
return await this.client.updateList(listId, updates.name, updates.closed, updates.pos);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Get cards in list
|
|
76
|
+
*/
|
|
77
|
+
async getCardsOnList(listId) {
|
|
78
|
+
return await this.client.getCardsOnList(listId);
|
|
79
|
+
}
|
|
80
|
+
// ==================== Cards ====================
|
|
81
|
+
/**
|
|
82
|
+
* Get card by ID
|
|
83
|
+
*/
|
|
84
|
+
async getCard(cardId) {
|
|
85
|
+
return await this.client.getCard(cardId);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Create card
|
|
89
|
+
*/
|
|
90
|
+
async createCard(card) {
|
|
91
|
+
return await this.client.addCard(card.name, card.desc || '', card.idList, card.pos, card.due, card.idMembers, card.idLabels, card.urlSource);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Update card
|
|
95
|
+
*/
|
|
96
|
+
async updateCard(cardId, updates) {
|
|
97
|
+
return await this.client.updateCard(cardId, updates.name, updates.desc, updates.due, updates.idList);
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Delete card
|
|
101
|
+
*/
|
|
102
|
+
async deleteCard(cardId) {
|
|
103
|
+
return await this.client.deleteCard(cardId);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Add comment to card
|
|
107
|
+
*/
|
|
108
|
+
async addCommentToCard(cardId, comment) {
|
|
109
|
+
return await this.client.addCommentToCard(cardId, comment);
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Add member to card
|
|
113
|
+
*/
|
|
114
|
+
async addMemberToCard(cardId, memberId) {
|
|
115
|
+
return await this.client.addMemberToCard(cardId, memberId);
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Add attachment to card
|
|
119
|
+
*/
|
|
120
|
+
async addAttachmentToCard(cardId, url) {
|
|
121
|
+
return await this.client.addAttachmentToCard(cardId, url);
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Add checklist to card
|
|
125
|
+
*/
|
|
126
|
+
async addChecklistToCard(cardId, name) {
|
|
127
|
+
return await this.client.addChecklistToCard(cardId, name);
|
|
128
|
+
}
|
|
129
|
+
// ==================== Labels ====================
|
|
130
|
+
/**
|
|
131
|
+
* Get labels on board
|
|
132
|
+
*/
|
|
133
|
+
async getLabelsForBoard(boardId) {
|
|
134
|
+
return await this.client.getLabelsForBoard(boardId);
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Create label
|
|
138
|
+
*/
|
|
139
|
+
async createLabel(label) {
|
|
140
|
+
return await this.client.addLabelToBoard(label.idBoard, label.name, label.color);
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Add label to card
|
|
144
|
+
*/
|
|
145
|
+
async addLabelToCard(cardId, labelId) {
|
|
146
|
+
return await this.client.addLabelToCard(cardId, labelId);
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Remove label from card
|
|
150
|
+
*/
|
|
151
|
+
async removeLabelFromCard(cardId, labelId) {
|
|
152
|
+
return await this.client.deleteLabelFromCard(cardId, labelId);
|
|
153
|
+
}
|
|
154
|
+
// ==================== Checklists ====================
|
|
155
|
+
/**
|
|
156
|
+
* Get checklist
|
|
157
|
+
*/
|
|
158
|
+
async getChecklist(checklistId) {
|
|
159
|
+
return await this.client.getChecklist(checklistId);
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Add item to checklist
|
|
163
|
+
*/
|
|
164
|
+
async addItemToChecklist(checklistId, name) {
|
|
165
|
+
return await this.client.addItemToChecklist(checklistId, name);
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Update checklist item
|
|
169
|
+
*/
|
|
170
|
+
async updateChecklistItem(checklistId, itemId, updates) {
|
|
171
|
+
if (updates.state) {
|
|
172
|
+
return await this.client.updateCheckItemOnCard(checklistId, itemId, updates.state);
|
|
173
|
+
}
|
|
174
|
+
// SDK doesn't support name updates directly, would need raw API call
|
|
175
|
+
throw new Error('Updating checklist item name not supported by SDK');
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
export const TrelloInitializer = {
|
|
179
|
+
async initialize(_module, config) {
|
|
180
|
+
const apiKey = config.auth?.['api_key'];
|
|
181
|
+
const token = config.auth?.['token'];
|
|
182
|
+
if (!apiKey || !token) {
|
|
183
|
+
throw new Error('Trello SDK requires auth.api_key and auth.token');
|
|
184
|
+
}
|
|
185
|
+
const client = new Trello(apiKey, token);
|
|
186
|
+
const wrapper = new TrelloClient(client);
|
|
187
|
+
return {
|
|
188
|
+
client: wrapper,
|
|
189
|
+
actions: wrapper,
|
|
190
|
+
rawClient: client,
|
|
191
|
+
};
|
|
192
|
+
},
|
|
193
|
+
};
|
|
194
|
+
//# sourceMappingURL=trello.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trello.js","sourceRoot":"","sources":["../../src/services/trello.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,+CAA+C;AAC/C,OAAO,MAAM,MAAM,QAAQ,CAAC;AA0C5B;;GAEG;AACH,MAAM,OAAO,YAAY;IACH;IAApB,YAAoB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAEtC,mDAAmD;IAEnD;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,OAAe;QAC5B,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,KAAkB;QAClC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACpF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,OAA6B;QAC9D,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,OAAe;QACnC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,OAAe;QACnC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,OAAe;QACnC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IAED,kDAAkD;IAElD;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,MAAc;QAC1B,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,IAAgB;QAC/B,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,MAAc,EAAE,OAAmE;QAClG,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACzF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,MAAc;QACjC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;IAED,kDAAkD;IAElD;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,MAAc;QAC1B,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,IAAgB;QAC/B,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAC9B,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,IAAI,IAAI,EAAE,EACf,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,SAAS,CACf,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,MAAc,EAAE,OAA4B;QAC3D,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACvG,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,MAAc;QAC7B,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,MAAc,EAAE,OAAe;QACpD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,MAAc,EAAE,QAAgB;QACpD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB,CAAC,MAAc,EAAE,GAAW;QACnD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CAAC,MAAc,EAAE,IAAY;QACnD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;IAED,mDAAmD;IAEnD;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,OAAe;QACrC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,KAAkB;QAClC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACnF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,MAAc,EAAE,OAAe;QAClD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB,CAAC,MAAc,EAAE,OAAe;QACvD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChE,CAAC;IAED,uDAAuD;IAEvD;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,WAAmB;QACpC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB,CAAC,WAAmB,EAAE,IAAY;QACxD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IACjE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,mBAAmB,CAAC,WAAmB,EAAE,MAAc,EAAE,OAA6D;QAC1H,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACrF,CAAC;QACD,qEAAqE;QACrE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;CACF;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAmB;IAC/C,KAAK,CAAC,UAAU,CAAC,OAAgB,EAAE,MAAkB;QACnD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,SAAS,CAAuB,CAAC;QAC9D,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,OAAO,CAAuB,CAAC;QAE3D,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACrE,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;QAEzC,OAAO;YACL,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,MAAM;SAClB,CAAC;IACJ,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Twilio Integration
|
|
3
|
+
*
|
|
4
|
+
* Programmable SMS, voice, and video communications.
|
|
5
|
+
* API Docs: https://www.twilio.com/docs/api
|
|
6
|
+
* SDK: https://www.twilio.com/docs/libraries/node
|
|
7
|
+
*/
|
|
8
|
+
import twilio from 'twilio';
|
|
9
|
+
import { SDKInitializer } from '@marktoflow/core';
|
|
10
|
+
export type TwilioClient = twilio.Twilio;
|
|
11
|
+
export interface SendMessageOptions {
|
|
12
|
+
to: string;
|
|
13
|
+
from: string;
|
|
14
|
+
body: string;
|
|
15
|
+
mediaUrl?: string[];
|
|
16
|
+
statusCallback?: string;
|
|
17
|
+
}
|
|
18
|
+
export interface MakeCallOptions {
|
|
19
|
+
to: string;
|
|
20
|
+
from: string;
|
|
21
|
+
url: string;
|
|
22
|
+
method?: 'GET' | 'POST';
|
|
23
|
+
statusCallback?: string;
|
|
24
|
+
statusCallbackMethod?: 'GET' | 'POST';
|
|
25
|
+
}
|
|
26
|
+
export interface SendWhatsAppOptions {
|
|
27
|
+
to: string;
|
|
28
|
+
from: string;
|
|
29
|
+
body: string;
|
|
30
|
+
mediaUrl?: string[];
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Twilio client wrapper for workflow integration
|
|
34
|
+
*/
|
|
35
|
+
export declare class TwilioClientWrapper {
|
|
36
|
+
private client;
|
|
37
|
+
constructor(client: twilio.Twilio);
|
|
38
|
+
/**
|
|
39
|
+
* Send an SMS message
|
|
40
|
+
*/
|
|
41
|
+
sendSMS(options: SendMessageOptions): Promise<import("twilio/lib/rest/api/v2010/account/message.js").MessageInstance>;
|
|
42
|
+
/**
|
|
43
|
+
* Get message by SID
|
|
44
|
+
*/
|
|
45
|
+
getMessage(messageSid: string): Promise<import("twilio/lib/rest/api/v2010/account/message.js").MessageInstance>;
|
|
46
|
+
/**
|
|
47
|
+
* List messages
|
|
48
|
+
*/
|
|
49
|
+
listMessages(options?: {
|
|
50
|
+
to?: string;
|
|
51
|
+
from?: string;
|
|
52
|
+
limit?: number;
|
|
53
|
+
}): Promise<import("twilio/lib/rest/api/v2010/account/message.js").MessageInstance[]>;
|
|
54
|
+
/**
|
|
55
|
+
* Delete a message
|
|
56
|
+
*/
|
|
57
|
+
deleteMessage(messageSid: string): Promise<boolean>;
|
|
58
|
+
/**
|
|
59
|
+
* Make a phone call
|
|
60
|
+
*/
|
|
61
|
+
makeCall(options: MakeCallOptions): Promise<import("twilio/lib/rest/api/v2010/account/call.js").CallInstance>;
|
|
62
|
+
/**
|
|
63
|
+
* Get call by SID
|
|
64
|
+
*/
|
|
65
|
+
getCall(callSid: string): Promise<import("twilio/lib/rest/api/v2010/account/call.js").CallInstance>;
|
|
66
|
+
/**
|
|
67
|
+
* List calls
|
|
68
|
+
*/
|
|
69
|
+
listCalls(options?: {
|
|
70
|
+
to?: string;
|
|
71
|
+
from?: string;
|
|
72
|
+
status?: string;
|
|
73
|
+
limit?: number;
|
|
74
|
+
}): Promise<import("twilio/lib/rest/api/v2010/account/call.js").CallInstance[]>;
|
|
75
|
+
/**
|
|
76
|
+
* Update a call (e.g., hang up)
|
|
77
|
+
*/
|
|
78
|
+
updateCall(callSid: string, options: {
|
|
79
|
+
status?: string;
|
|
80
|
+
url?: string;
|
|
81
|
+
}): Promise<import("twilio/lib/rest/api/v2010/account/call.js").CallInstance>;
|
|
82
|
+
/**
|
|
83
|
+
* Send a WhatsApp message
|
|
84
|
+
*/
|
|
85
|
+
sendWhatsApp(options: SendWhatsAppOptions): Promise<import("twilio/lib/rest/api/v2010/account/message.js").MessageInstance>;
|
|
86
|
+
/**
|
|
87
|
+
* List available phone numbers
|
|
88
|
+
*/
|
|
89
|
+
listAvailablePhoneNumbers(countryCode: string, options?: {
|
|
90
|
+
areaCode?: number;
|
|
91
|
+
contains?: string;
|
|
92
|
+
}): Promise<import("twilio/lib/rest/api/v2010/account/availablePhoneNumberCountry/local.js").LocalInstance[]>;
|
|
93
|
+
/**
|
|
94
|
+
* Purchase a phone number
|
|
95
|
+
*/
|
|
96
|
+
purchasePhoneNumber(phoneNumber: string): Promise<import("twilio/lib/rest/api/v2010/account/incomingPhoneNumber.js").IncomingPhoneNumberInstance>;
|
|
97
|
+
/**
|
|
98
|
+
* List owned phone numbers
|
|
99
|
+
*/
|
|
100
|
+
listPhoneNumbers(options?: {
|
|
101
|
+
phoneNumber?: string;
|
|
102
|
+
limit?: number;
|
|
103
|
+
}): Promise<import("twilio/lib/rest/api/v2010/account/incomingPhoneNumber.js").IncomingPhoneNumberInstance[]>;
|
|
104
|
+
/**
|
|
105
|
+
* Update phone number configuration
|
|
106
|
+
*/
|
|
107
|
+
updatePhoneNumber(phoneNumberSid: string, options: {
|
|
108
|
+
smsUrl?: string;
|
|
109
|
+
voiceUrl?: string;
|
|
110
|
+
friendlyName?: string;
|
|
111
|
+
}): Promise<import("twilio/lib/rest/api/v2010/account/incomingPhoneNumber.js").IncomingPhoneNumberInstance>;
|
|
112
|
+
/**
|
|
113
|
+
* Release a phone number
|
|
114
|
+
*/
|
|
115
|
+
releasePhoneNumber(phoneNumberSid: string): Promise<boolean>;
|
|
116
|
+
/**
|
|
117
|
+
* Send verification code
|
|
118
|
+
*/
|
|
119
|
+
sendVerification(serviceSid: string, to: string, channel?: 'sms' | 'call' | 'email'): Promise<import("twilio/lib/rest/verify/v2/service/verification.js").VerificationInstance>;
|
|
120
|
+
/**
|
|
121
|
+
* Check verification code
|
|
122
|
+
*/
|
|
123
|
+
checkVerification(serviceSid: string, to: string, code: string): Promise<import("twilio/lib/rest/verify/v2/service/verificationCheck.js").VerificationCheckInstance>;
|
|
124
|
+
}
|
|
125
|
+
export declare const TwilioInitializer: SDKInitializer;
|
|
126
|
+
//# sourceMappingURL=twilio.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"twilio.d.ts","sourceRoot":"","sources":["../../src/services/twilio.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Twilio Integration
|
|
3
|
+
*
|
|
4
|
+
* Programmable SMS, voice, and video communications.
|
|
5
|
+
* API Docs: https://www.twilio.com/docs/api
|
|
6
|
+
* SDK: https://www.twilio.com/docs/libraries/node
|
|
7
|
+
*/
|
|
8
|
+
import twilio from 'twilio';
|
|
9
|
+
/**
|
|
10
|
+
* Twilio client wrapper for workflow integration
|
|
11
|
+
*/
|
|
12
|
+
export class TwilioClientWrapper {
|
|
13
|
+
client;
|
|
14
|
+
constructor(client) {
|
|
15
|
+
this.client = client;
|
|
16
|
+
}
|
|
17
|
+
// ==================== SMS ====================
|
|
18
|
+
/**
|
|
19
|
+
* Send an SMS message
|
|
20
|
+
*/
|
|
21
|
+
async sendSMS(options) {
|
|
22
|
+
return await this.client.messages.create({
|
|
23
|
+
to: options.to,
|
|
24
|
+
from: options.from,
|
|
25
|
+
body: options.body,
|
|
26
|
+
mediaUrl: options.mediaUrl,
|
|
27
|
+
statusCallback: options.statusCallback,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Get message by SID
|
|
32
|
+
*/
|
|
33
|
+
async getMessage(messageSid) {
|
|
34
|
+
return await this.client.messages(messageSid).fetch();
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* List messages
|
|
38
|
+
*/
|
|
39
|
+
async listMessages(options) {
|
|
40
|
+
return await this.client.messages.list(options || {});
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Delete a message
|
|
44
|
+
*/
|
|
45
|
+
async deleteMessage(messageSid) {
|
|
46
|
+
return await this.client.messages(messageSid).remove();
|
|
47
|
+
}
|
|
48
|
+
// ==================== Voice ====================
|
|
49
|
+
/**
|
|
50
|
+
* Make a phone call
|
|
51
|
+
*/
|
|
52
|
+
async makeCall(options) {
|
|
53
|
+
return await this.client.calls.create({
|
|
54
|
+
to: options.to,
|
|
55
|
+
from: options.from,
|
|
56
|
+
url: options.url,
|
|
57
|
+
method: options.method,
|
|
58
|
+
statusCallback: options.statusCallback,
|
|
59
|
+
statusCallbackMethod: options.statusCallbackMethod,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Get call by SID
|
|
64
|
+
*/
|
|
65
|
+
async getCall(callSid) {
|
|
66
|
+
return await this.client.calls(callSid).fetch();
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* List calls
|
|
70
|
+
*/
|
|
71
|
+
async listCalls(options) {
|
|
72
|
+
return await this.client.calls.list(options || {});
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Update a call (e.g., hang up)
|
|
76
|
+
*/
|
|
77
|
+
async updateCall(callSid, options) {
|
|
78
|
+
return await this.client.calls(callSid).update(options);
|
|
79
|
+
}
|
|
80
|
+
// ==================== WhatsApp ====================
|
|
81
|
+
/**
|
|
82
|
+
* Send a WhatsApp message
|
|
83
|
+
*/
|
|
84
|
+
async sendWhatsApp(options) {
|
|
85
|
+
return await this.client.messages.create({
|
|
86
|
+
to: options.to,
|
|
87
|
+
from: options.from,
|
|
88
|
+
body: options.body,
|
|
89
|
+
mediaUrl: options.mediaUrl,
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
// ==================== Phone Numbers ====================
|
|
93
|
+
/**
|
|
94
|
+
* List available phone numbers
|
|
95
|
+
*/
|
|
96
|
+
async listAvailablePhoneNumbers(countryCode, options) {
|
|
97
|
+
return await this.client.availablePhoneNumbers(countryCode).local.list(options || {});
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Purchase a phone number
|
|
101
|
+
*/
|
|
102
|
+
async purchasePhoneNumber(phoneNumber) {
|
|
103
|
+
return await this.client.incomingPhoneNumbers.create({ phoneNumber });
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* List owned phone numbers
|
|
107
|
+
*/
|
|
108
|
+
async listPhoneNumbers(options) {
|
|
109
|
+
return await this.client.incomingPhoneNumbers.list(options || {});
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Update phone number configuration
|
|
113
|
+
*/
|
|
114
|
+
async updatePhoneNumber(phoneNumberSid, options) {
|
|
115
|
+
return await this.client.incomingPhoneNumbers(phoneNumberSid).update(options);
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Release a phone number
|
|
119
|
+
*/
|
|
120
|
+
async releasePhoneNumber(phoneNumberSid) {
|
|
121
|
+
return await this.client.incomingPhoneNumbers(phoneNumberSid).remove();
|
|
122
|
+
}
|
|
123
|
+
// ==================== Verify ====================
|
|
124
|
+
/**
|
|
125
|
+
* Send verification code
|
|
126
|
+
*/
|
|
127
|
+
async sendVerification(serviceSid, to, channel = 'sms') {
|
|
128
|
+
return await this.client.verify.v2.services(serviceSid).verifications.create({ to, channel });
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Check verification code
|
|
132
|
+
*/
|
|
133
|
+
async checkVerification(serviceSid, to, code) {
|
|
134
|
+
return await this.client.verify.v2.services(serviceSid).verificationChecks.create({ to, code });
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
export const TwilioInitializer = {
|
|
138
|
+
async initialize(_module, config) {
|
|
139
|
+
const accountSid = config.auth?.['account_sid'];
|
|
140
|
+
const authToken = config.auth?.['auth_token'];
|
|
141
|
+
if (!accountSid || !authToken) {
|
|
142
|
+
throw new Error('Twilio SDK requires auth.account_sid and auth.auth_token');
|
|
143
|
+
}
|
|
144
|
+
const client = twilio(accountSid, authToken);
|
|
145
|
+
const wrapper = new TwilioClientWrapper(client);
|
|
146
|
+
return {
|
|
147
|
+
client: wrapper,
|
|
148
|
+
actions: wrapper,
|
|
149
|
+
rawClient: client,
|
|
150
|
+
};
|
|
151
|
+
},
|
|
152
|
+
};
|
|
153
|
+
//# sourceMappingURL=twilio.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"twilio.js","sourceRoot":"","sources":["../../src/services/twilio.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zendesk Integration
|
|
3
|
+
*
|
|
4
|
+
* Customer support and ticketing platform.
|
|
5
|
+
* API Docs: https://developer.zendesk.com/api-reference/
|
|
6
|
+
* SDK: https://github.com/blakmatrix/node-zendesk
|
|
7
|
+
*/
|
|
8
|
+
import { SDKInitializer } from '@marktoflow/core';
|
|
9
|
+
export interface ZendeskTicket {
|
|
10
|
+
id?: number;
|
|
11
|
+
subject: string;
|
|
12
|
+
comment: {
|
|
13
|
+
body: string;
|
|
14
|
+
html_body?: string;
|
|
15
|
+
public?: boolean;
|
|
16
|
+
};
|
|
17
|
+
requester_id?: number;
|
|
18
|
+
submitter_id?: number;
|
|
19
|
+
assignee_id?: number;
|
|
20
|
+
priority?: 'low' | 'normal' | 'high' | 'urgent';
|
|
21
|
+
status?: 'new' | 'open' | 'pending' | 'hold' | 'solved' | 'closed';
|
|
22
|
+
tags?: string[];
|
|
23
|
+
type?: 'problem' | 'incident' | 'question' | 'task';
|
|
24
|
+
}
|
|
25
|
+
export interface ZendeskUser {
|
|
26
|
+
id?: number;
|
|
27
|
+
name: string;
|
|
28
|
+
email: string;
|
|
29
|
+
phone?: string;
|
|
30
|
+
role?: 'end-user' | 'agent' | 'admin';
|
|
31
|
+
verified?: boolean;
|
|
32
|
+
tags?: string[];
|
|
33
|
+
}
|
|
34
|
+
export interface SearchOptions {
|
|
35
|
+
query: string;
|
|
36
|
+
sort_by?: string;
|
|
37
|
+
sort_order?: 'asc' | 'desc';
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Zendesk client wrapper for workflow integration
|
|
41
|
+
*/
|
|
42
|
+
export declare class ZendeskClient {
|
|
43
|
+
private client;
|
|
44
|
+
constructor(client: any);
|
|
45
|
+
/**
|
|
46
|
+
* List tickets
|
|
47
|
+
*/
|
|
48
|
+
listTickets(options?: {
|
|
49
|
+
per_page?: number;
|
|
50
|
+
page?: number;
|
|
51
|
+
}): Promise<any>;
|
|
52
|
+
/**
|
|
53
|
+
* Get ticket by ID
|
|
54
|
+
*/
|
|
55
|
+
getTicket(ticketId: number): Promise<any>;
|
|
56
|
+
/**
|
|
57
|
+
* Create ticket
|
|
58
|
+
*/
|
|
59
|
+
createTicket(ticket: ZendeskTicket): Promise<any>;
|
|
60
|
+
/**
|
|
61
|
+
* Update ticket
|
|
62
|
+
*/
|
|
63
|
+
updateTicket(ticketId: number, ticket: Partial<ZendeskTicket>): Promise<any>;
|
|
64
|
+
/**
|
|
65
|
+
* Delete ticket
|
|
66
|
+
*/
|
|
67
|
+
deleteTicket(ticketId: number): Promise<any>;
|
|
68
|
+
/**
|
|
69
|
+
* Add comment to ticket
|
|
70
|
+
*/
|
|
71
|
+
addComment(ticketId: number, comment: {
|
|
72
|
+
body: string;
|
|
73
|
+
public?: boolean;
|
|
74
|
+
}): Promise<any>;
|
|
75
|
+
/**
|
|
76
|
+
* List users
|
|
77
|
+
*/
|
|
78
|
+
listUsers(options?: {
|
|
79
|
+
per_page?: number;
|
|
80
|
+
page?: number;
|
|
81
|
+
role?: string;
|
|
82
|
+
}): Promise<any>;
|
|
83
|
+
/**
|
|
84
|
+
* Get user by ID
|
|
85
|
+
*/
|
|
86
|
+
getUser(userId: number): Promise<any>;
|
|
87
|
+
/**
|
|
88
|
+
* Create user
|
|
89
|
+
*/
|
|
90
|
+
createUser(user: ZendeskUser): Promise<any>;
|
|
91
|
+
/**
|
|
92
|
+
* Update user
|
|
93
|
+
*/
|
|
94
|
+
updateUser(userId: number, user: Partial<ZendeskUser>): Promise<any>;
|
|
95
|
+
/**
|
|
96
|
+
* Delete user
|
|
97
|
+
*/
|
|
98
|
+
deleteUser(userId: number): Promise<any>;
|
|
99
|
+
/**
|
|
100
|
+
* Search users
|
|
101
|
+
*/
|
|
102
|
+
searchUsers(query: string): Promise<any>;
|
|
103
|
+
/**
|
|
104
|
+
* Search across Zendesk
|
|
105
|
+
*/
|
|
106
|
+
search(options: SearchOptions): Promise<any>;
|
|
107
|
+
/**
|
|
108
|
+
* List organizations
|
|
109
|
+
*/
|
|
110
|
+
listOrganizations(options?: {
|
|
111
|
+
per_page?: number;
|
|
112
|
+
page?: number;
|
|
113
|
+
}): Promise<any>;
|
|
114
|
+
/**
|
|
115
|
+
* Get organization by ID
|
|
116
|
+
*/
|
|
117
|
+
getOrganization(orgId: number): Promise<any>;
|
|
118
|
+
/**
|
|
119
|
+
* Create organization
|
|
120
|
+
*/
|
|
121
|
+
createOrganization(organization: {
|
|
122
|
+
name: string;
|
|
123
|
+
tags?: string[];
|
|
124
|
+
}): Promise<any>;
|
|
125
|
+
/**
|
|
126
|
+
* Update organization
|
|
127
|
+
*/
|
|
128
|
+
updateOrganization(orgId: number, organization: Partial<{
|
|
129
|
+
name: string;
|
|
130
|
+
tags?: string[];
|
|
131
|
+
}>): Promise<any>;
|
|
132
|
+
}
|
|
133
|
+
export declare const ZendeskInitializer: SDKInitializer;
|
|
134
|
+
//# sourceMappingURL=zendesk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zendesk.d.ts","sourceRoot":"","sources":["../../src/services/zendesk.ts"],"names":[],"mappings":"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"}
|