@xbg.solutions/utils-work-mgmt-connector 1.0.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/lib/index.d.ts +13 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +77 -0
- package/lib/index.js.map +1 -0
- package/lib/providers/clickup-provider.d.ts +34 -0
- package/lib/providers/clickup-provider.d.ts.map +1 -0
- package/lib/providers/clickup-provider.js +217 -0
- package/lib/providers/clickup-provider.js.map +1 -0
- package/lib/providers/monday-provider.d.ts +33 -0
- package/lib/providers/monday-provider.d.ts.map +1 -0
- package/lib/providers/monday-provider.js +170 -0
- package/lib/providers/monday-provider.js.map +1 -0
- package/lib/providers/notion-provider.d.ts +98 -0
- package/lib/providers/notion-provider.d.ts.map +1 -0
- package/lib/providers/notion-provider.js +384 -0
- package/lib/providers/notion-provider.js.map +1 -0
- package/lib/types.d.ts +156 -0
- package/lib/types.d.ts.map +1 -0
- package/lib/types.js +7 -0
- package/lib/types.js.map +1 -0
- package/lib/work-mgmt-connector.d.ts +91 -0
- package/lib/work-mgmt-connector.d.ts.map +1 -0
- package/lib/work-mgmt-connector.js +319 -0
- package/lib/work-mgmt-connector.js.map +1 -0
- package/package.json +31 -0
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Notion Provider for Work Management Connector
|
|
3
|
+
* https://developers.notion.com/
|
|
4
|
+
*/
|
|
5
|
+
import { WorkManagementProvider } from '../work-mgmt-connector';
|
|
6
|
+
import { WorkTask, CreateTaskRequest, UpdateTaskRequest, WorkArticle, CreateArticleRequest, UpdateArticleRequest, Workspace, WorkList, WorkComment, CreateCommentRequest, WorkQueryOptions } from '../types';
|
|
7
|
+
export interface NotionProviderConfig {
|
|
8
|
+
apiKey: string;
|
|
9
|
+
}
|
|
10
|
+
export declare class NotionProvider implements WorkManagementProvider {
|
|
11
|
+
private client;
|
|
12
|
+
constructor(config: NotionProviderConfig);
|
|
13
|
+
/**
|
|
14
|
+
* Get task (database item) by ID
|
|
15
|
+
*/
|
|
16
|
+
getTask(taskId: string): Promise<WorkTask>;
|
|
17
|
+
/**
|
|
18
|
+
* Get tasks from database
|
|
19
|
+
*/
|
|
20
|
+
getTasks(listId: string, options?: WorkQueryOptions): Promise<WorkTask[]>;
|
|
21
|
+
/**
|
|
22
|
+
* Create task in database
|
|
23
|
+
*/
|
|
24
|
+
createTask(request: CreateTaskRequest): Promise<WorkTask>;
|
|
25
|
+
/**
|
|
26
|
+
* Update task
|
|
27
|
+
*/
|
|
28
|
+
updateTask(taskId: string, updates: UpdateTaskRequest): Promise<WorkTask>;
|
|
29
|
+
/**
|
|
30
|
+
* Delete task (archive in Notion)
|
|
31
|
+
*/
|
|
32
|
+
deleteTask(taskId: string): Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* Get article (page) by ID
|
|
35
|
+
*/
|
|
36
|
+
getArticle(articleId: string): Promise<WorkArticle>;
|
|
37
|
+
/**
|
|
38
|
+
* Get articles (pages) from parent
|
|
39
|
+
*/
|
|
40
|
+
getArticles(parentId?: string, options?: WorkQueryOptions): Promise<WorkArticle[]>;
|
|
41
|
+
/**
|
|
42
|
+
* Create article (page)
|
|
43
|
+
*/
|
|
44
|
+
createArticle(request: CreateArticleRequest): Promise<WorkArticle>;
|
|
45
|
+
/**
|
|
46
|
+
* Update article
|
|
47
|
+
*/
|
|
48
|
+
updateArticle(articleId: string, updates: UpdateArticleRequest): Promise<WorkArticle>;
|
|
49
|
+
/**
|
|
50
|
+
* Delete article (archive)
|
|
51
|
+
*/
|
|
52
|
+
deleteArticle(articleId: string): Promise<void>;
|
|
53
|
+
/**
|
|
54
|
+
* Get workspaces (limited in Notion API)
|
|
55
|
+
*/
|
|
56
|
+
getWorkspaces(): Promise<Workspace[]>;
|
|
57
|
+
/**
|
|
58
|
+
* Get workspace
|
|
59
|
+
*/
|
|
60
|
+
getWorkspace(workspaceId: string): Promise<Workspace>;
|
|
61
|
+
/**
|
|
62
|
+
* Get lists (databases)
|
|
63
|
+
*/
|
|
64
|
+
getLists(workspaceId: string): Promise<WorkList[]>;
|
|
65
|
+
/**
|
|
66
|
+
* Get list (database)
|
|
67
|
+
*/
|
|
68
|
+
getList(listId: string): Promise<WorkList>;
|
|
69
|
+
/**
|
|
70
|
+
* Get comments
|
|
71
|
+
*/
|
|
72
|
+
getComments(targetId: string): Promise<WorkComment[]>;
|
|
73
|
+
/**
|
|
74
|
+
* Create comment
|
|
75
|
+
*/
|
|
76
|
+
createComment(request: CreateCommentRequest): Promise<WorkComment>;
|
|
77
|
+
/**
|
|
78
|
+
* Helper: Map Notion page to WorkTask
|
|
79
|
+
*/
|
|
80
|
+
private mapNotionPageToTask;
|
|
81
|
+
/**
|
|
82
|
+
* Helper: Map Notion page to WorkArticle
|
|
83
|
+
*/
|
|
84
|
+
private mapNotionPageToArticle;
|
|
85
|
+
/**
|
|
86
|
+
* Helper: Extract title from Notion title array
|
|
87
|
+
*/
|
|
88
|
+
private extractTitle;
|
|
89
|
+
/**
|
|
90
|
+
* Helper: Extract text from Notion rich_text array
|
|
91
|
+
*/
|
|
92
|
+
private extractRichText;
|
|
93
|
+
/**
|
|
94
|
+
* Helper: Extract text from Notion block
|
|
95
|
+
*/
|
|
96
|
+
private extractBlockText;
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=notion-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notion-provider.d.ts","sourceRoot":"","sources":["../../src/providers/notion-provider.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EACL,QAAQ,EACR,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,oBAAoB,EACpB,oBAAoB,EACpB,SAAS,EACT,QAAQ,EACR,WAAW,EACX,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,cAAe,YAAW,sBAAsB;IAC3D,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,oBAAoB;IAIxC;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAShD;;OAEG;IACG,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAa/E;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC;IA6B/D;;OAEG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC;IA+B/E;;OAEG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW/C;;OAEG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAezD;;OAEG;IACG,WAAW,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IA0CxF;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,CAAC;IA4BxE;;OAEG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,CAAC;IAuB3F;;OAEG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWrD;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAM3C;;OAEG;IACG,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAO3D;;OAEG;IACG,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAgBxD;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAYhD;;OAEG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAkB3D;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,WAAW,CAAC;IAqBxE;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAe3B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAW9B;;OAEG;IACH,OAAO,CAAC,YAAY;IAKpB;;OAEG;IACH,OAAO,CAAC,eAAe;IAKvB;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAKzB"}
|
|
@@ -0,0 +1,384 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Notion Provider for Work Management Connector
|
|
4
|
+
* https://developers.notion.com/
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.NotionProvider = void 0;
|
|
8
|
+
const client_1 = require("@notionhq/client");
|
|
9
|
+
class NotionProvider {
|
|
10
|
+
constructor(config) {
|
|
11
|
+
this.client = new client_1.Client({ auth: config.apiKey });
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Get task (database item) by ID
|
|
15
|
+
*/
|
|
16
|
+
async getTask(taskId) {
|
|
17
|
+
try {
|
|
18
|
+
const page = await this.client.pages.retrieve({ page_id: taskId });
|
|
19
|
+
return this.mapNotionPageToTask(page);
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
throw new Error(`Failed to get task: ${error.message}`);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Get tasks from database
|
|
27
|
+
*/
|
|
28
|
+
async getTasks(listId, options) {
|
|
29
|
+
try {
|
|
30
|
+
const response = await this.client.databases.query({
|
|
31
|
+
database_id: listId,
|
|
32
|
+
page_size: (options === null || options === void 0 ? void 0 : options.limit) || 100,
|
|
33
|
+
});
|
|
34
|
+
return response.results.map((page) => this.mapNotionPageToTask(page));
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
throw new Error(`Failed to get tasks: ${error.message}`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Create task in database
|
|
42
|
+
*/
|
|
43
|
+
async createTask(request) {
|
|
44
|
+
try {
|
|
45
|
+
const properties = {
|
|
46
|
+
Name: { title: [{ text: { content: request.title } }] },
|
|
47
|
+
};
|
|
48
|
+
if (request.description) {
|
|
49
|
+
properties.Description = { rich_text: [{ text: { content: request.description } }] };
|
|
50
|
+
}
|
|
51
|
+
if (request.status) {
|
|
52
|
+
properties.Status = { select: { name: request.status } };
|
|
53
|
+
}
|
|
54
|
+
if (request.dueDate) {
|
|
55
|
+
properties['Due Date'] = { date: { start: request.dueDate.toISOString() } };
|
|
56
|
+
}
|
|
57
|
+
const page = await this.client.pages.create({
|
|
58
|
+
parent: { database_id: request.listId },
|
|
59
|
+
properties,
|
|
60
|
+
});
|
|
61
|
+
return this.mapNotionPageToTask(page);
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
throw new Error(`Failed to create task: ${error.message}`);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Update task
|
|
69
|
+
*/
|
|
70
|
+
async updateTask(taskId, updates) {
|
|
71
|
+
try {
|
|
72
|
+
const properties = {};
|
|
73
|
+
if (updates.title) {
|
|
74
|
+
properties.Name = { title: [{ text: { content: updates.title } }] };
|
|
75
|
+
}
|
|
76
|
+
if (updates.description) {
|
|
77
|
+
properties.Description = { rich_text: [{ text: { content: updates.description } }] };
|
|
78
|
+
}
|
|
79
|
+
if (updates.status) {
|
|
80
|
+
properties.Status = { select: { name: updates.status } };
|
|
81
|
+
}
|
|
82
|
+
if (updates.dueDate) {
|
|
83
|
+
properties['Due Date'] = { date: { start: updates.dueDate.toISOString() } };
|
|
84
|
+
}
|
|
85
|
+
const page = await this.client.pages.update({
|
|
86
|
+
page_id: taskId,
|
|
87
|
+
properties,
|
|
88
|
+
});
|
|
89
|
+
return this.mapNotionPageToTask(page);
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
throw new Error(`Failed to update task: ${error.message}`);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Delete task (archive in Notion)
|
|
97
|
+
*/
|
|
98
|
+
async deleteTask(taskId) {
|
|
99
|
+
try {
|
|
100
|
+
await this.client.pages.update({
|
|
101
|
+
page_id: taskId,
|
|
102
|
+
archived: true,
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
throw new Error(`Failed to delete task: ${error.message}`);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Get article (page) by ID
|
|
111
|
+
*/
|
|
112
|
+
async getArticle(articleId) {
|
|
113
|
+
try {
|
|
114
|
+
const page = await this.client.pages.retrieve({ page_id: articleId });
|
|
115
|
+
const blocks = await this.client.blocks.children.list({ block_id: articleId });
|
|
116
|
+
const content = blocks.results
|
|
117
|
+
.map((block) => this.extractBlockText(block))
|
|
118
|
+
.join('\n');
|
|
119
|
+
return this.mapNotionPageToArticle(page, content);
|
|
120
|
+
}
|
|
121
|
+
catch (error) {
|
|
122
|
+
throw new Error(`Failed to get article: ${error.message}`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Get articles (pages) from parent
|
|
127
|
+
*/
|
|
128
|
+
async getArticles(parentId, options) {
|
|
129
|
+
try {
|
|
130
|
+
if (!parentId) {
|
|
131
|
+
// Search all pages
|
|
132
|
+
const response = await this.client.search({
|
|
133
|
+
filter: { property: 'object', value: 'page' },
|
|
134
|
+
page_size: (options === null || options === void 0 ? void 0 : options.limit) || 100,
|
|
135
|
+
});
|
|
136
|
+
return Promise.all(response.results.map(async (page) => {
|
|
137
|
+
const blocks = await this.client.blocks.children.list({ block_id: page.id });
|
|
138
|
+
const content = blocks.results
|
|
139
|
+
.map((block) => this.extractBlockText(block))
|
|
140
|
+
.join('\n');
|
|
141
|
+
return this.mapNotionPageToArticle(page, content);
|
|
142
|
+
}));
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
// Get child pages
|
|
146
|
+
const blocks = await this.client.blocks.children.list({
|
|
147
|
+
block_id: parentId,
|
|
148
|
+
});
|
|
149
|
+
const childPages = blocks.results.filter((block) => block.type === 'child_page');
|
|
150
|
+
return Promise.all(childPages.map(async (child) => {
|
|
151
|
+
const page = await this.client.pages.retrieve({ page_id: child.id });
|
|
152
|
+
const pageBlocks = await this.client.blocks.children.list({ block_id: child.id });
|
|
153
|
+
const content = pageBlocks.results
|
|
154
|
+
.map((block) => this.extractBlockText(block))
|
|
155
|
+
.join('\n');
|
|
156
|
+
return this.mapNotionPageToArticle(page, content);
|
|
157
|
+
}));
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
catch (error) {
|
|
161
|
+
throw new Error(`Failed to get articles: ${error.message}`);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Create article (page)
|
|
166
|
+
*/
|
|
167
|
+
async createArticle(request) {
|
|
168
|
+
try {
|
|
169
|
+
const parent = request.parentId
|
|
170
|
+
? { page_id: request.parentId }
|
|
171
|
+
: { workspace: true };
|
|
172
|
+
const page = await this.client.pages.create({
|
|
173
|
+
parent: parent,
|
|
174
|
+
properties: {
|
|
175
|
+
title: { title: [{ text: { content: request.title } }] },
|
|
176
|
+
},
|
|
177
|
+
children: [
|
|
178
|
+
{
|
|
179
|
+
object: 'block',
|
|
180
|
+
type: 'paragraph',
|
|
181
|
+
paragraph: {
|
|
182
|
+
rich_text: [{ type: 'text', text: { content: request.content } }],
|
|
183
|
+
},
|
|
184
|
+
},
|
|
185
|
+
],
|
|
186
|
+
});
|
|
187
|
+
return this.mapNotionPageToArticle(page, request.content);
|
|
188
|
+
}
|
|
189
|
+
catch (error) {
|
|
190
|
+
throw new Error(`Failed to create article: ${error.message}`);
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Update article
|
|
195
|
+
*/
|
|
196
|
+
async updateArticle(articleId, updates) {
|
|
197
|
+
try {
|
|
198
|
+
if (updates.title) {
|
|
199
|
+
await this.client.pages.update({
|
|
200
|
+
page_id: articleId,
|
|
201
|
+
properties: {
|
|
202
|
+
title: { title: [{ text: { content: updates.title } }] },
|
|
203
|
+
},
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
const page = await this.client.pages.retrieve({ page_id: articleId });
|
|
207
|
+
const blocks = await this.client.blocks.children.list({ block_id: articleId });
|
|
208
|
+
const content = blocks.results
|
|
209
|
+
.map((block) => this.extractBlockText(block))
|
|
210
|
+
.join('\n');
|
|
211
|
+
return this.mapNotionPageToArticle(page, content);
|
|
212
|
+
}
|
|
213
|
+
catch (error) {
|
|
214
|
+
throw new Error(`Failed to update article: ${error.message}`);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* Delete article (archive)
|
|
219
|
+
*/
|
|
220
|
+
async deleteArticle(articleId) {
|
|
221
|
+
try {
|
|
222
|
+
await this.client.pages.update({
|
|
223
|
+
page_id: articleId,
|
|
224
|
+
archived: true,
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
catch (error) {
|
|
228
|
+
throw new Error(`Failed to delete article: ${error.message}`);
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Get workspaces (limited in Notion API)
|
|
233
|
+
*/
|
|
234
|
+
async getWorkspaces() {
|
|
235
|
+
// Notion API doesn't expose workspace list directly
|
|
236
|
+
// Return empty array or implement custom logic
|
|
237
|
+
return [];
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Get workspace
|
|
241
|
+
*/
|
|
242
|
+
async getWorkspace(workspaceId) {
|
|
243
|
+
return {
|
|
244
|
+
id: workspaceId,
|
|
245
|
+
name: 'Notion Workspace',
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Get lists (databases)
|
|
250
|
+
*/
|
|
251
|
+
async getLists(workspaceId) {
|
|
252
|
+
try {
|
|
253
|
+
const response = await this.client.search({
|
|
254
|
+
filter: { property: 'object', value: 'database' },
|
|
255
|
+
});
|
|
256
|
+
return response.results.map((db) => ({
|
|
257
|
+
id: db.id,
|
|
258
|
+
name: this.extractTitle(db.title),
|
|
259
|
+
workspaceId,
|
|
260
|
+
}));
|
|
261
|
+
}
|
|
262
|
+
catch (error) {
|
|
263
|
+
throw new Error(`Failed to get lists: ${error.message}`);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Get list (database)
|
|
268
|
+
*/
|
|
269
|
+
async getList(listId) {
|
|
270
|
+
try {
|
|
271
|
+
const db = await this.client.databases.retrieve({ database_id: listId });
|
|
272
|
+
return {
|
|
273
|
+
id: db.id,
|
|
274
|
+
name: this.extractTitle(db.title),
|
|
275
|
+
};
|
|
276
|
+
}
|
|
277
|
+
catch (error) {
|
|
278
|
+
throw new Error(`Failed to get list: ${error.message}`);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Get comments
|
|
283
|
+
*/
|
|
284
|
+
async getComments(targetId) {
|
|
285
|
+
try {
|
|
286
|
+
const response = await this.client.comments.list({ block_id: targetId });
|
|
287
|
+
return response.results.map((comment) => ({
|
|
288
|
+
id: comment.id,
|
|
289
|
+
text: this.extractRichText(comment.rich_text),
|
|
290
|
+
author: {
|
|
291
|
+
id: comment.created_by.id,
|
|
292
|
+
name: comment.created_by.name || 'Unknown',
|
|
293
|
+
},
|
|
294
|
+
createdAt: new Date(comment.created_time),
|
|
295
|
+
}));
|
|
296
|
+
}
|
|
297
|
+
catch (error) {
|
|
298
|
+
throw new Error(`Failed to get comments: ${error.message}`);
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* Create comment
|
|
303
|
+
*/
|
|
304
|
+
async createComment(request) {
|
|
305
|
+
try {
|
|
306
|
+
const comment = await this.client.comments.create({
|
|
307
|
+
parent: { page_id: request.targetId },
|
|
308
|
+
rich_text: [{ type: 'text', text: { content: request.text } }],
|
|
309
|
+
});
|
|
310
|
+
return {
|
|
311
|
+
id: comment.id,
|
|
312
|
+
text: request.text,
|
|
313
|
+
author: {
|
|
314
|
+
id: comment.created_by.id,
|
|
315
|
+
name: comment.created_by.name || 'Unknown',
|
|
316
|
+
},
|
|
317
|
+
createdAt: new Date(comment.created_time),
|
|
318
|
+
};
|
|
319
|
+
}
|
|
320
|
+
catch (error) {
|
|
321
|
+
throw new Error(`Failed to create comment: ${error.message}`);
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* Helper: Map Notion page to WorkTask
|
|
326
|
+
*/
|
|
327
|
+
mapNotionPageToTask(page) {
|
|
328
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;
|
|
329
|
+
return {
|
|
330
|
+
id: page.id,
|
|
331
|
+
title: this.extractTitle(((_b = (_a = page.properties) === null || _a === void 0 ? void 0 : _a.Name) === null || _b === void 0 ? void 0 : _b.title) || ((_d = (_c = page.properties) === null || _c === void 0 ? void 0 : _c.title) === null || _d === void 0 ? void 0 : _d.title)),
|
|
332
|
+
description: this.extractRichText((_f = (_e = page.properties) === null || _e === void 0 ? void 0 : _e.Description) === null || _f === void 0 ? void 0 : _f.rich_text),
|
|
333
|
+
status: ((_j = (_h = (_g = page.properties) === null || _g === void 0 ? void 0 : _g.Status) === null || _h === void 0 ? void 0 : _h.select) === null || _j === void 0 ? void 0 : _j.name) || 'no status',
|
|
334
|
+
dueDate: ((_m = (_l = (_k = page.properties) === null || _k === void 0 ? void 0 : _k['Due Date']) === null || _l === void 0 ? void 0 : _l.date) === null || _m === void 0 ? void 0 : _m.start)
|
|
335
|
+
? new Date(page.properties['Due Date'].date.start)
|
|
336
|
+
: undefined,
|
|
337
|
+
createdAt: new Date(page.created_time),
|
|
338
|
+
updatedAt: new Date(page.last_edited_time),
|
|
339
|
+
url: page.url,
|
|
340
|
+
};
|
|
341
|
+
}
|
|
342
|
+
/**
|
|
343
|
+
* Helper: Map Notion page to WorkArticle
|
|
344
|
+
*/
|
|
345
|
+
mapNotionPageToArticle(page, content) {
|
|
346
|
+
var _a, _b;
|
|
347
|
+
return {
|
|
348
|
+
id: page.id,
|
|
349
|
+
title: this.extractTitle((_b = (_a = page.properties) === null || _a === void 0 ? void 0 : _a.title) === null || _b === void 0 ? void 0 : _b.title),
|
|
350
|
+
content,
|
|
351
|
+
createdAt: new Date(page.created_time),
|
|
352
|
+
updatedAt: new Date(page.last_edited_time),
|
|
353
|
+
url: page.url,
|
|
354
|
+
};
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* Helper: Extract title from Notion title array
|
|
358
|
+
*/
|
|
359
|
+
extractTitle(titleArray) {
|
|
360
|
+
if (!titleArray || titleArray.length === 0)
|
|
361
|
+
return '';
|
|
362
|
+
return titleArray.map((item) => { var _a; return item.plain_text || ((_a = item.text) === null || _a === void 0 ? void 0 : _a.content) || ''; }).join('');
|
|
363
|
+
}
|
|
364
|
+
/**
|
|
365
|
+
* Helper: Extract text from Notion rich_text array
|
|
366
|
+
*/
|
|
367
|
+
extractRichText(richTextArray) {
|
|
368
|
+
if (!richTextArray || richTextArray.length === 0)
|
|
369
|
+
return '';
|
|
370
|
+
return richTextArray.map((item) => { var _a; return item.plain_text || ((_a = item.text) === null || _a === void 0 ? void 0 : _a.content) || ''; }).join('');
|
|
371
|
+
}
|
|
372
|
+
/**
|
|
373
|
+
* Helper: Extract text from Notion block
|
|
374
|
+
*/
|
|
375
|
+
extractBlockText(block) {
|
|
376
|
+
var _a;
|
|
377
|
+
const type = block.type;
|
|
378
|
+
if (!((_a = block[type]) === null || _a === void 0 ? void 0 : _a.rich_text))
|
|
379
|
+
return '';
|
|
380
|
+
return this.extractRichText(block[type].rich_text);
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
exports.NotionProvider = NotionProvider;
|
|
384
|
+
//# sourceMappingURL=notion-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notion-provider.js","sourceRoot":"","sources":["../../src/providers/notion-provider.ts"],"names":[],"mappings":"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"}
|
package/lib/types.d.ts
ADDED
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Work Management Connector Types
|
|
3
|
+
* Task and article management across platforms
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Task/Item in work management system
|
|
7
|
+
*/
|
|
8
|
+
export interface WorkTask {
|
|
9
|
+
id: string;
|
|
10
|
+
title: string;
|
|
11
|
+
description?: string;
|
|
12
|
+
status: string;
|
|
13
|
+
priority?: 'low' | 'medium' | 'high' | 'urgent';
|
|
14
|
+
assignees?: Array<{
|
|
15
|
+
id: string;
|
|
16
|
+
name: string;
|
|
17
|
+
email?: string;
|
|
18
|
+
}>;
|
|
19
|
+
dueDate?: Date;
|
|
20
|
+
tags?: string[];
|
|
21
|
+
customFields?: Record<string, any>;
|
|
22
|
+
createdAt?: Date;
|
|
23
|
+
updatedAt?: Date;
|
|
24
|
+
url?: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Create task request
|
|
28
|
+
*/
|
|
29
|
+
export interface CreateTaskRequest {
|
|
30
|
+
listId: string;
|
|
31
|
+
title: string;
|
|
32
|
+
description?: string;
|
|
33
|
+
status?: string;
|
|
34
|
+
priority?: 'low' | 'medium' | 'high' | 'urgent';
|
|
35
|
+
assigneeIds?: string[];
|
|
36
|
+
dueDate?: Date;
|
|
37
|
+
tags?: string[];
|
|
38
|
+
customFields?: Record<string, any>;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Update task request
|
|
42
|
+
*/
|
|
43
|
+
export interface UpdateTaskRequest {
|
|
44
|
+
title?: string;
|
|
45
|
+
description?: string;
|
|
46
|
+
status?: string;
|
|
47
|
+
priority?: 'low' | 'medium' | 'high' | 'urgent';
|
|
48
|
+
assigneeIds?: string[];
|
|
49
|
+
dueDate?: Date;
|
|
50
|
+
tags?: string[];
|
|
51
|
+
customFields?: Record<string, any>;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Article/Document/Page
|
|
55
|
+
*/
|
|
56
|
+
export interface WorkArticle {
|
|
57
|
+
id: string;
|
|
58
|
+
title: string;
|
|
59
|
+
content: string;
|
|
60
|
+
author?: {
|
|
61
|
+
id: string;
|
|
62
|
+
name: string;
|
|
63
|
+
};
|
|
64
|
+
status?: 'draft' | 'published' | 'archived';
|
|
65
|
+
tags?: string[];
|
|
66
|
+
createdAt?: Date;
|
|
67
|
+
updatedAt?: Date;
|
|
68
|
+
url?: string;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Create article request
|
|
72
|
+
*/
|
|
73
|
+
export interface CreateArticleRequest {
|
|
74
|
+
parentId?: string;
|
|
75
|
+
title: string;
|
|
76
|
+
content: string;
|
|
77
|
+
status?: 'draft' | 'published';
|
|
78
|
+
tags?: string[];
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Update article request
|
|
82
|
+
*/
|
|
83
|
+
export interface UpdateArticleRequest {
|
|
84
|
+
title?: string;
|
|
85
|
+
content?: string;
|
|
86
|
+
status?: 'draft' | 'published' | 'archived';
|
|
87
|
+
tags?: string[];
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Workspace/Space/Team
|
|
91
|
+
*/
|
|
92
|
+
export interface Workspace {
|
|
93
|
+
id: string;
|
|
94
|
+
name: string;
|
|
95
|
+
description?: string;
|
|
96
|
+
members?: Array<{
|
|
97
|
+
id: string;
|
|
98
|
+
name: string;
|
|
99
|
+
role?: string;
|
|
100
|
+
}>;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* List/Board/Database
|
|
104
|
+
*/
|
|
105
|
+
export interface WorkList {
|
|
106
|
+
id: string;
|
|
107
|
+
name: string;
|
|
108
|
+
workspaceId?: string;
|
|
109
|
+
description?: string;
|
|
110
|
+
taskCount?: number;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Comment on task or article
|
|
114
|
+
*/
|
|
115
|
+
export interface WorkComment {
|
|
116
|
+
id: string;
|
|
117
|
+
text: string;
|
|
118
|
+
author: {
|
|
119
|
+
id: string;
|
|
120
|
+
name: string;
|
|
121
|
+
};
|
|
122
|
+
createdAt: Date;
|
|
123
|
+
updatedAt?: Date;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Create comment request
|
|
127
|
+
*/
|
|
128
|
+
export interface CreateCommentRequest {
|
|
129
|
+
targetId: string;
|
|
130
|
+
text: string;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Query options
|
|
134
|
+
*/
|
|
135
|
+
export interface WorkQueryOptions {
|
|
136
|
+
page?: number;
|
|
137
|
+
limit?: number;
|
|
138
|
+
filters?: Record<string, any>;
|
|
139
|
+
sort?: {
|
|
140
|
+
field: string;
|
|
141
|
+
order: 'asc' | 'desc';
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Response wrapper
|
|
146
|
+
*/
|
|
147
|
+
export interface WorkResponse<T> {
|
|
148
|
+
success: boolean;
|
|
149
|
+
data?: T;
|
|
150
|
+
error?: {
|
|
151
|
+
code: string;
|
|
152
|
+
message: string;
|
|
153
|
+
details?: any;
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/lib/types.js
ADDED
package/lib/types.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
|