@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,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Asana Integration
|
|
3
|
+
*
|
|
4
|
+
* Project and task management platform.
|
|
5
|
+
* API Docs: https://developers.asana.com/docs
|
|
6
|
+
* SDK: https://github.com/Asana/node-asana
|
|
7
|
+
*/
|
|
8
|
+
import asana from 'asana';
|
|
9
|
+
import { SDKInitializer } from '@marktoflow/core';
|
|
10
|
+
export interface AsanaTask {
|
|
11
|
+
gid?: string;
|
|
12
|
+
name: string;
|
|
13
|
+
notes?: string;
|
|
14
|
+
assignee?: string;
|
|
15
|
+
due_on?: string;
|
|
16
|
+
due_at?: string;
|
|
17
|
+
completed?: boolean;
|
|
18
|
+
projects?: string[];
|
|
19
|
+
tags?: string[];
|
|
20
|
+
workspace?: string;
|
|
21
|
+
}
|
|
22
|
+
export interface AsanaProject {
|
|
23
|
+
gid?: string;
|
|
24
|
+
name: string;
|
|
25
|
+
notes?: string;
|
|
26
|
+
workspace?: string;
|
|
27
|
+
team?: string;
|
|
28
|
+
archived?: boolean;
|
|
29
|
+
public?: boolean;
|
|
30
|
+
color?: string;
|
|
31
|
+
}
|
|
32
|
+
export interface AsanaSection {
|
|
33
|
+
gid?: string;
|
|
34
|
+
name: string;
|
|
35
|
+
project: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Asana client wrapper for workflow integration
|
|
39
|
+
*/
|
|
40
|
+
export declare class AsanaClient {
|
|
41
|
+
private client;
|
|
42
|
+
constructor(client: asana.Client);
|
|
43
|
+
/**
|
|
44
|
+
* Get task by ID
|
|
45
|
+
*/
|
|
46
|
+
getTask(taskGid: string): Promise<any>;
|
|
47
|
+
/**
|
|
48
|
+
* Create task
|
|
49
|
+
*/
|
|
50
|
+
createTask(task: AsanaTask): Promise<any>;
|
|
51
|
+
/**
|
|
52
|
+
* Update task
|
|
53
|
+
*/
|
|
54
|
+
updateTask(taskGid: string, task: Partial<AsanaTask>): Promise<any>;
|
|
55
|
+
/**
|
|
56
|
+
* Delete task
|
|
57
|
+
*/
|
|
58
|
+
deleteTask(taskGid: string): Promise<any>;
|
|
59
|
+
/**
|
|
60
|
+
* Get tasks in project
|
|
61
|
+
*/
|
|
62
|
+
getTasksInProject(projectGid: string, options?: {
|
|
63
|
+
opt_fields?: string;
|
|
64
|
+
}): Promise<any>;
|
|
65
|
+
/**
|
|
66
|
+
* Get tasks for user
|
|
67
|
+
*/
|
|
68
|
+
getTasksForUser(userGid: string, workspace: string, options?: {
|
|
69
|
+
opt_fields?: string;
|
|
70
|
+
}): Promise<any>;
|
|
71
|
+
/**
|
|
72
|
+
* Add comment to task
|
|
73
|
+
*/
|
|
74
|
+
addComment(taskGid: string, text: string): Promise<any>;
|
|
75
|
+
/**
|
|
76
|
+
* Get project by ID
|
|
77
|
+
*/
|
|
78
|
+
getProject(projectGid: string): Promise<any>;
|
|
79
|
+
/**
|
|
80
|
+
* Create project
|
|
81
|
+
*/
|
|
82
|
+
createProject(project: AsanaProject): Promise<any>;
|
|
83
|
+
/**
|
|
84
|
+
* Update project
|
|
85
|
+
*/
|
|
86
|
+
updateProject(projectGid: string, project: Partial<AsanaProject>): Promise<any>;
|
|
87
|
+
/**
|
|
88
|
+
* Delete project
|
|
89
|
+
*/
|
|
90
|
+
deleteProject(projectGid: string): Promise<any>;
|
|
91
|
+
/**
|
|
92
|
+
* Get projects in workspace
|
|
93
|
+
*/
|
|
94
|
+
getProjectsInWorkspace(workspaceGid: string, options?: {
|
|
95
|
+
opt_fields?: string;
|
|
96
|
+
archived?: boolean;
|
|
97
|
+
}): Promise<any>;
|
|
98
|
+
/**
|
|
99
|
+
* Get projects in team
|
|
100
|
+
*/
|
|
101
|
+
getProjectsInTeam(teamGid: string, options?: {
|
|
102
|
+
opt_fields?: string;
|
|
103
|
+
archived?: boolean;
|
|
104
|
+
}): Promise<any>;
|
|
105
|
+
/**
|
|
106
|
+
* Get sections in project
|
|
107
|
+
*/
|
|
108
|
+
getSectionsInProject(projectGid: string): Promise<any>;
|
|
109
|
+
/**
|
|
110
|
+
* Create section
|
|
111
|
+
*/
|
|
112
|
+
createSection(section: AsanaSection): Promise<any>;
|
|
113
|
+
/**
|
|
114
|
+
* Update section
|
|
115
|
+
*/
|
|
116
|
+
updateSection(sectionGid: string, name: string): Promise<any>;
|
|
117
|
+
/**
|
|
118
|
+
* Delete section
|
|
119
|
+
*/
|
|
120
|
+
deleteSection(sectionGid: string): Promise<any>;
|
|
121
|
+
/**
|
|
122
|
+
* Add task to section
|
|
123
|
+
*/
|
|
124
|
+
addTaskToSection(sectionGid: string, taskGid: string): Promise<any>;
|
|
125
|
+
/**
|
|
126
|
+
* Get workspaces
|
|
127
|
+
*/
|
|
128
|
+
getWorkspaces(): Promise<any>;
|
|
129
|
+
/**
|
|
130
|
+
* Get workspace by ID
|
|
131
|
+
*/
|
|
132
|
+
getWorkspace(workspaceGid: string): Promise<any>;
|
|
133
|
+
/**
|
|
134
|
+
* Get current user
|
|
135
|
+
*/
|
|
136
|
+
getCurrentUser(): Promise<any>;
|
|
137
|
+
/**
|
|
138
|
+
* Get user by ID
|
|
139
|
+
*/
|
|
140
|
+
getUser(userGid: string): Promise<any>;
|
|
141
|
+
/**
|
|
142
|
+
* Get users in workspace
|
|
143
|
+
*/
|
|
144
|
+
getUsersInWorkspace(workspaceGid: string): Promise<any>;
|
|
145
|
+
/**
|
|
146
|
+
* Get tag by ID
|
|
147
|
+
*/
|
|
148
|
+
getTag(tagGid: string): Promise<any>;
|
|
149
|
+
/**
|
|
150
|
+
* Create tag
|
|
151
|
+
*/
|
|
152
|
+
createTag(workspace: string, name: string, color?: string): Promise<any>;
|
|
153
|
+
/**
|
|
154
|
+
* Get tags in workspace
|
|
155
|
+
*/
|
|
156
|
+
getTagsInWorkspace(workspaceGid: string): Promise<any>;
|
|
157
|
+
}
|
|
158
|
+
export declare const AsanaInitializer: SDKInitializer;
|
|
159
|
+
//# sourceMappingURL=asana.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asana.d.ts","sourceRoot":"","sources":["../../src/services/asana.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Asana Integration
|
|
3
|
+
*
|
|
4
|
+
* Project and task management platform.
|
|
5
|
+
* API Docs: https://developers.asana.com/docs
|
|
6
|
+
* SDK: https://github.com/Asana/node-asana
|
|
7
|
+
*/
|
|
8
|
+
// @ts-expect-error - asana doesn't have types
|
|
9
|
+
import asana from 'asana';
|
|
10
|
+
/**
|
|
11
|
+
* Asana client wrapper for workflow integration
|
|
12
|
+
*/
|
|
13
|
+
export class AsanaClient {
|
|
14
|
+
client;
|
|
15
|
+
constructor(client) {
|
|
16
|
+
this.client = client;
|
|
17
|
+
}
|
|
18
|
+
// ==================== Tasks ====================
|
|
19
|
+
/**
|
|
20
|
+
* Get task by ID
|
|
21
|
+
*/
|
|
22
|
+
async getTask(taskGid) {
|
|
23
|
+
return await this.client.tasks.getTask(taskGid);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Create task
|
|
27
|
+
*/
|
|
28
|
+
async createTask(task) {
|
|
29
|
+
return await this.client.tasks.createTask(task);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Update task
|
|
33
|
+
*/
|
|
34
|
+
async updateTask(taskGid, task) {
|
|
35
|
+
return await this.client.tasks.updateTask(taskGid, task);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Delete task
|
|
39
|
+
*/
|
|
40
|
+
async deleteTask(taskGid) {
|
|
41
|
+
return await this.client.tasks.deleteTask(taskGid);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Get tasks in project
|
|
45
|
+
*/
|
|
46
|
+
async getTasksInProject(projectGid, options) {
|
|
47
|
+
return await this.client.tasks.getTasksForProject(projectGid, options);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Get tasks for user
|
|
51
|
+
*/
|
|
52
|
+
async getTasksForUser(userGid, workspace, options) {
|
|
53
|
+
return await this.client.tasks.getTasksForUserTaskList(userGid, { workspace, ...options });
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Add comment to task
|
|
57
|
+
*/
|
|
58
|
+
async addComment(taskGid, text) {
|
|
59
|
+
return await this.client.tasks.addComment(taskGid, { text });
|
|
60
|
+
}
|
|
61
|
+
// ==================== Projects ====================
|
|
62
|
+
/**
|
|
63
|
+
* Get project by ID
|
|
64
|
+
*/
|
|
65
|
+
async getProject(projectGid) {
|
|
66
|
+
return await this.client.projects.getProject(projectGid);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Create project
|
|
70
|
+
*/
|
|
71
|
+
async createProject(project) {
|
|
72
|
+
return await this.client.projects.createProject(project);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Update project
|
|
76
|
+
*/
|
|
77
|
+
async updateProject(projectGid, project) {
|
|
78
|
+
return await this.client.projects.updateProject(projectGid, project);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Delete project
|
|
82
|
+
*/
|
|
83
|
+
async deleteProject(projectGid) {
|
|
84
|
+
return await this.client.projects.deleteProject(projectGid);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Get projects in workspace
|
|
88
|
+
*/
|
|
89
|
+
async getProjectsInWorkspace(workspaceGid, options) {
|
|
90
|
+
return await this.client.projects.getProjects({ workspace: workspaceGid, ...options });
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Get projects in team
|
|
94
|
+
*/
|
|
95
|
+
async getProjectsInTeam(teamGid, options) {
|
|
96
|
+
return await this.client.projects.getProjectsForTeam(teamGid, options);
|
|
97
|
+
}
|
|
98
|
+
// ==================== Sections ====================
|
|
99
|
+
/**
|
|
100
|
+
* Get sections in project
|
|
101
|
+
*/
|
|
102
|
+
async getSectionsInProject(projectGid) {
|
|
103
|
+
return await this.client.sections.getSectionsForProject(projectGid);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Create section
|
|
107
|
+
*/
|
|
108
|
+
async createSection(section) {
|
|
109
|
+
return await this.client.sections.createSectionForProject(section.project, { name: section.name });
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Update section
|
|
113
|
+
*/
|
|
114
|
+
async updateSection(sectionGid, name) {
|
|
115
|
+
return await this.client.sections.updateSection(sectionGid, { name });
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Delete section
|
|
119
|
+
*/
|
|
120
|
+
async deleteSection(sectionGid) {
|
|
121
|
+
return await this.client.sections.deleteSection(sectionGid);
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Add task to section
|
|
125
|
+
*/
|
|
126
|
+
async addTaskToSection(sectionGid, taskGid) {
|
|
127
|
+
return await this.client.sections.addTaskForSection(sectionGid, { task: taskGid });
|
|
128
|
+
}
|
|
129
|
+
// ==================== Workspaces ====================
|
|
130
|
+
/**
|
|
131
|
+
* Get workspaces
|
|
132
|
+
*/
|
|
133
|
+
async getWorkspaces() {
|
|
134
|
+
return await this.client.workspaces.getWorkspaces();
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Get workspace by ID
|
|
138
|
+
*/
|
|
139
|
+
async getWorkspace(workspaceGid) {
|
|
140
|
+
return await this.client.workspaces.getWorkspace(workspaceGid);
|
|
141
|
+
}
|
|
142
|
+
// ==================== Users ====================
|
|
143
|
+
/**
|
|
144
|
+
* Get current user
|
|
145
|
+
*/
|
|
146
|
+
async getCurrentUser() {
|
|
147
|
+
return await this.client.users.getUser('me');
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Get user by ID
|
|
151
|
+
*/
|
|
152
|
+
async getUser(userGid) {
|
|
153
|
+
return await this.client.users.getUser(userGid);
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Get users in workspace
|
|
157
|
+
*/
|
|
158
|
+
async getUsersInWorkspace(workspaceGid) {
|
|
159
|
+
return await this.client.users.getUsersForWorkspace(workspaceGid);
|
|
160
|
+
}
|
|
161
|
+
// ==================== Tags ====================
|
|
162
|
+
/**
|
|
163
|
+
* Get tag by ID
|
|
164
|
+
*/
|
|
165
|
+
async getTag(tagGid) {
|
|
166
|
+
return await this.client.tags.getTag(tagGid);
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Create tag
|
|
170
|
+
*/
|
|
171
|
+
async createTag(workspace, name, color) {
|
|
172
|
+
return await this.client.tags.createTag({ workspace, name, color });
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Get tags in workspace
|
|
176
|
+
*/
|
|
177
|
+
async getTagsInWorkspace(workspaceGid) {
|
|
178
|
+
return await this.client.tags.getTagsForWorkspace(workspaceGid);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
export const AsanaInitializer = {
|
|
182
|
+
async initialize(_module, config) {
|
|
183
|
+
const accessToken = config.auth?.['access_token'];
|
|
184
|
+
if (!accessToken) {
|
|
185
|
+
throw new Error('Asana SDK requires auth.access_token');
|
|
186
|
+
}
|
|
187
|
+
const client = asana.Client ? asana.Client.create().useAccessToken(accessToken) : asana.default?.Client?.create().useAccessToken(accessToken);
|
|
188
|
+
const wrapper = new AsanaClient(client);
|
|
189
|
+
return {
|
|
190
|
+
client: wrapper,
|
|
191
|
+
actions: wrapper,
|
|
192
|
+
rawClient: client,
|
|
193
|
+
};
|
|
194
|
+
},
|
|
195
|
+
};
|
|
196
|
+
//# sourceMappingURL=asana.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asana.js","sourceRoot":"","sources":["../../src/services/asana.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AWS S3 Integration
|
|
3
|
+
*
|
|
4
|
+
* Amazon Simple Storage Service - scalable object storage.
|
|
5
|
+
* API Docs: https://docs.aws.amazon.com/AmazonS3/latest/API/Welcome.html
|
|
6
|
+
* SDK: https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-s3/
|
|
7
|
+
*/
|
|
8
|
+
import { S3Client } from '@aws-sdk/client-s3';
|
|
9
|
+
import { SDKInitializer } from '@marktoflow/core';
|
|
10
|
+
export interface UploadObjectOptions {
|
|
11
|
+
bucket: string;
|
|
12
|
+
key: string;
|
|
13
|
+
body: string | Buffer | Uint8Array;
|
|
14
|
+
contentType?: string;
|
|
15
|
+
metadata?: Record<string, string>;
|
|
16
|
+
acl?: 'private' | 'public-read' | 'public-read-write' | 'authenticated-read';
|
|
17
|
+
}
|
|
18
|
+
export interface GetObjectOptions {
|
|
19
|
+
bucket: string;
|
|
20
|
+
key: string;
|
|
21
|
+
range?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface DeleteObjectOptions {
|
|
24
|
+
bucket: string;
|
|
25
|
+
key: string;
|
|
26
|
+
}
|
|
27
|
+
export interface ListObjectsOptions {
|
|
28
|
+
bucket: string;
|
|
29
|
+
prefix?: string;
|
|
30
|
+
maxKeys?: number;
|
|
31
|
+
continuationToken?: string;
|
|
32
|
+
}
|
|
33
|
+
export interface CopyObjectOptions {
|
|
34
|
+
sourceBucket: string;
|
|
35
|
+
sourceKey: string;
|
|
36
|
+
destinationBucket: string;
|
|
37
|
+
destinationKey: string;
|
|
38
|
+
metadata?: Record<string, string>;
|
|
39
|
+
acl?: 'private' | 'public-read' | 'public-read-write' | 'authenticated-read';
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* AWS S3 client wrapper for workflow integration
|
|
43
|
+
*/
|
|
44
|
+
export declare class AWSS3Client {
|
|
45
|
+
private client;
|
|
46
|
+
constructor(client: S3Client);
|
|
47
|
+
/**
|
|
48
|
+
* Upload object to S3
|
|
49
|
+
*/
|
|
50
|
+
uploadObject(options: UploadObjectOptions): Promise<import("@aws-sdk/client-s3").PutObjectCommandOutput>;
|
|
51
|
+
/**
|
|
52
|
+
* Get object from S3
|
|
53
|
+
*/
|
|
54
|
+
getObject(options: GetObjectOptions): Promise<import("@aws-sdk/client-s3").GetObjectCommandOutput>;
|
|
55
|
+
/**
|
|
56
|
+
* Delete object from S3
|
|
57
|
+
*/
|
|
58
|
+
deleteObject(options: DeleteObjectOptions): Promise<import("@aws-sdk/client-s3").DeleteObjectCommandOutput>;
|
|
59
|
+
/**
|
|
60
|
+
* List objects in bucket
|
|
61
|
+
*/
|
|
62
|
+
listObjects(options: ListObjectsOptions): Promise<import("@aws-sdk/client-s3").ListObjectsV2CommandOutput>;
|
|
63
|
+
/**
|
|
64
|
+
* Copy object
|
|
65
|
+
*/
|
|
66
|
+
copyObject(options: CopyObjectOptions): Promise<import("@aws-sdk/client-s3").CopyObjectCommandOutput>;
|
|
67
|
+
/**
|
|
68
|
+
* Get object metadata
|
|
69
|
+
*/
|
|
70
|
+
getObjectMetadata(bucket: string, key: string): Promise<import("@aws-sdk/client-s3").HeadObjectCommandOutput>;
|
|
71
|
+
/**
|
|
72
|
+
* Create bucket
|
|
73
|
+
*/
|
|
74
|
+
createBucket(bucket: string, region?: string): Promise<import("@aws-sdk/client-s3").CreateBucketCommandOutput>;
|
|
75
|
+
/**
|
|
76
|
+
* Delete bucket
|
|
77
|
+
*/
|
|
78
|
+
deleteBucket(bucket: string): Promise<import("@aws-sdk/client-s3").DeleteBucketCommandOutput>;
|
|
79
|
+
/**
|
|
80
|
+
* List buckets
|
|
81
|
+
*/
|
|
82
|
+
listBuckets(): Promise<import("@aws-sdk/client-s3").ListBucketsCommandOutput>;
|
|
83
|
+
/**
|
|
84
|
+
* Get bucket location
|
|
85
|
+
*/
|
|
86
|
+
getBucketLocation(bucket: string): Promise<import("@aws-sdk/client-s3").GetBucketLocationCommandOutput>;
|
|
87
|
+
}
|
|
88
|
+
export declare const AWSS3Initializer: SDKInitializer;
|
|
89
|
+
//# sourceMappingURL=aws-s3.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aws-s3.d.ts","sourceRoot":"","sources":["../../src/services/aws-s3.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,QAAQ,EAgBT,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAc,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE9D,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,GAAG,CAAC,EAAE,SAAS,GAAG,aAAa,GAAG,mBAAmB,GAAG,oBAAoB,CAAC;CAC9E;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,GAAG,CAAC,EAAE,SAAS,GAAG,aAAa,GAAG,mBAAmB,GAAG,oBAAoB,CAAC;CAC9E;AAED;;GAEG;AACH,qBAAa,WAAW;IACV,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,QAAQ;IAIpC;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,mBAAmB;IAc/C;;OAEG;IACG,SAAS,CAAC,OAAO,EAAE,gBAAgB;IAWzC;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,mBAAmB;IAU/C;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,kBAAkB;IAY7C;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,iBAAiB;IAc3C;;OAEG;IACG,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAWnD;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IASlD;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM;IAQjC;;OAEG;IACG,WAAW;IAKjB;;OAEG;IACG,iBAAiB,CAAC,MAAM,EAAE,MAAM;CAOvC;AAED,eAAO,MAAM,gBAAgB,EAAE,cA0B9B,CAAC"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AWS S3 Integration
|
|
3
|
+
*
|
|
4
|
+
* Amazon Simple Storage Service - scalable object storage.
|
|
5
|
+
* API Docs: https://docs.aws.amazon.com/AmazonS3/latest/API/Welcome.html
|
|
6
|
+
* SDK: https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-s3/
|
|
7
|
+
*/
|
|
8
|
+
import { S3Client, PutObjectCommand, GetObjectCommand, DeleteObjectCommand, ListObjectsV2Command, CopyObjectCommand, HeadObjectCommand, CreateBucketCommand, DeleteBucketCommand, ListBucketsCommand, GetBucketLocationCommand, } from '@aws-sdk/client-s3';
|
|
9
|
+
/**
|
|
10
|
+
* AWS S3 client wrapper for workflow integration
|
|
11
|
+
*/
|
|
12
|
+
export class AWSS3Client {
|
|
13
|
+
client;
|
|
14
|
+
constructor(client) {
|
|
15
|
+
this.client = client;
|
|
16
|
+
}
|
|
17
|
+
// ==================== Objects ====================
|
|
18
|
+
/**
|
|
19
|
+
* Upload object to S3
|
|
20
|
+
*/
|
|
21
|
+
async uploadObject(options) {
|
|
22
|
+
const input = {
|
|
23
|
+
Bucket: options.bucket,
|
|
24
|
+
Key: options.key,
|
|
25
|
+
Body: options.body,
|
|
26
|
+
ContentType: options.contentType,
|
|
27
|
+
Metadata: options.metadata,
|
|
28
|
+
ACL: options.acl,
|
|
29
|
+
};
|
|
30
|
+
const command = new PutObjectCommand(input);
|
|
31
|
+
return await this.client.send(command);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Get object from S3
|
|
35
|
+
*/
|
|
36
|
+
async getObject(options) {
|
|
37
|
+
const input = {
|
|
38
|
+
Bucket: options.bucket,
|
|
39
|
+
Key: options.key,
|
|
40
|
+
Range: options.range,
|
|
41
|
+
};
|
|
42
|
+
const command = new GetObjectCommand(input);
|
|
43
|
+
return await this.client.send(command);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Delete object from S3
|
|
47
|
+
*/
|
|
48
|
+
async deleteObject(options) {
|
|
49
|
+
const input = {
|
|
50
|
+
Bucket: options.bucket,
|
|
51
|
+
Key: options.key,
|
|
52
|
+
};
|
|
53
|
+
const command = new DeleteObjectCommand(input);
|
|
54
|
+
return await this.client.send(command);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* List objects in bucket
|
|
58
|
+
*/
|
|
59
|
+
async listObjects(options) {
|
|
60
|
+
const input = {
|
|
61
|
+
Bucket: options.bucket,
|
|
62
|
+
Prefix: options.prefix,
|
|
63
|
+
MaxKeys: options.maxKeys,
|
|
64
|
+
ContinuationToken: options.continuationToken,
|
|
65
|
+
};
|
|
66
|
+
const command = new ListObjectsV2Command(input);
|
|
67
|
+
return await this.client.send(command);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Copy object
|
|
71
|
+
*/
|
|
72
|
+
async copyObject(options) {
|
|
73
|
+
const input = {
|
|
74
|
+
Bucket: options.destinationBucket,
|
|
75
|
+
Key: options.destinationKey,
|
|
76
|
+
CopySource: `${options.sourceBucket}/${options.sourceKey}`,
|
|
77
|
+
Metadata: options.metadata,
|
|
78
|
+
ACL: options.acl,
|
|
79
|
+
MetadataDirective: options.metadata ? 'REPLACE' : undefined,
|
|
80
|
+
};
|
|
81
|
+
const command = new CopyObjectCommand(input);
|
|
82
|
+
return await this.client.send(command);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Get object metadata
|
|
86
|
+
*/
|
|
87
|
+
async getObjectMetadata(bucket, key) {
|
|
88
|
+
const command = new HeadObjectCommand({
|
|
89
|
+
Bucket: bucket,
|
|
90
|
+
Key: key,
|
|
91
|
+
});
|
|
92
|
+
return await this.client.send(command);
|
|
93
|
+
}
|
|
94
|
+
// ==================== Buckets ====================
|
|
95
|
+
/**
|
|
96
|
+
* Create bucket
|
|
97
|
+
*/
|
|
98
|
+
async createBucket(bucket, region) {
|
|
99
|
+
const command = new CreateBucketCommand({
|
|
100
|
+
Bucket: bucket,
|
|
101
|
+
CreateBucketConfiguration: region ? { LocationConstraint: region } : undefined,
|
|
102
|
+
});
|
|
103
|
+
return await this.client.send(command);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Delete bucket
|
|
107
|
+
*/
|
|
108
|
+
async deleteBucket(bucket) {
|
|
109
|
+
const command = new DeleteBucketCommand({
|
|
110
|
+
Bucket: bucket,
|
|
111
|
+
});
|
|
112
|
+
return await this.client.send(command);
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* List buckets
|
|
116
|
+
*/
|
|
117
|
+
async listBuckets() {
|
|
118
|
+
const command = new ListBucketsCommand({});
|
|
119
|
+
return await this.client.send(command);
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Get bucket location
|
|
123
|
+
*/
|
|
124
|
+
async getBucketLocation(bucket) {
|
|
125
|
+
const command = new GetBucketLocationCommand({
|
|
126
|
+
Bucket: bucket,
|
|
127
|
+
});
|
|
128
|
+
return await this.client.send(command);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
export const AWSS3Initializer = {
|
|
132
|
+
async initialize(_module, config) {
|
|
133
|
+
const region = config.auth?.['region'];
|
|
134
|
+
const accessKeyId = config.auth?.['access_key_id'];
|
|
135
|
+
const secretAccessKey = config.auth?.['secret_access_key'];
|
|
136
|
+
if (!region || !accessKeyId || !secretAccessKey) {
|
|
137
|
+
throw new Error('AWS S3 SDK requires auth.region, auth.access_key_id, and auth.secret_access_key');
|
|
138
|
+
}
|
|
139
|
+
const client = new S3Client({
|
|
140
|
+
region,
|
|
141
|
+
credentials: {
|
|
142
|
+
accessKeyId,
|
|
143
|
+
secretAccessKey,
|
|
144
|
+
},
|
|
145
|
+
});
|
|
146
|
+
const wrapper = new AWSS3Client(client);
|
|
147
|
+
return {
|
|
148
|
+
client: wrapper,
|
|
149
|
+
actions: wrapper,
|
|
150
|
+
rawClient: client,
|
|
151
|
+
};
|
|
152
|
+
},
|
|
153
|
+
};
|
|
154
|
+
//# sourceMappingURL=aws-s3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aws-s3.js","sourceRoot":"","sources":["../../src/services/aws-s3.ts"],"names":[],"mappings":"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"}
|