@jhl8041/dooray-mcp 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.local.json +9 -0
- package/.serena/project.yml +84 -0
- package/CLAUDE.md +119 -0
- package/README.md +82 -0
- package/dist/api/client.d.ts +70 -0
- package/dist/api/client.d.ts.map +1 -0
- package/dist/api/client.js +186 -0
- package/dist/api/client.js.map +1 -0
- package/dist/api/common.d.ts +14 -0
- package/dist/api/common.d.ts.map +1 -0
- package/dist/api/common.js +25 -0
- package/dist/api/common.js.map +1 -0
- package/dist/api/projects.d.ts +83 -0
- package/dist/api/projects.d.ts.map +1 -0
- package/dist/api/projects.js +300 -0
- package/dist/api/projects.js.map +1 -0
- package/dist/api/wiki.d.ts +38 -0
- package/dist/api/wiki.d.ts.map +1 -0
- package/dist/api/wiki.js +95 -0
- package/dist/api/wiki.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +227 -0
- package/dist/index.js.map +1 -0
- package/dist/tools/common/get-my-member-info.d.ts +29 -0
- package/dist/tools/common/get-my-member-info.d.ts.map +1 -0
- package/dist/tools/common/get-my-member-info.js +95 -0
- package/dist/tools/common/get-my-member-info.js.map +1 -0
- package/dist/tools/projects/create-task-comment.d.ts +92 -0
- package/dist/tools/projects/create-task-comment.d.ts.map +1 -0
- package/dist/tools/projects/create-task-comment.js +171 -0
- package/dist/tools/projects/create-task-comment.js.map +1 -0
- package/dist/tools/projects/create-task.d.ts +191 -0
- package/dist/tools/projects/create-task.d.ts.map +1 -0
- package/dist/tools/projects/create-task.js +217 -0
- package/dist/tools/projects/create-task.js.map +1 -0
- package/dist/tools/projects/get-milestone-list.d.ts +49 -0
- package/dist/tools/projects/get-milestone-list.d.ts.map +1 -0
- package/dist/tools/projects/get-milestone-list.js +112 -0
- package/dist/tools/projects/get-milestone-list.js.map +1 -0
- package/dist/tools/projects/get-project-list.d.ts +50 -0
- package/dist/tools/projects/get-project-list.d.ts.map +1 -0
- package/dist/tools/projects/get-project-list.js +113 -0
- package/dist/tools/projects/get-project-list.js.map +1 -0
- package/dist/tools/projects/get-project-member-group-list.d.ts +55 -0
- package/dist/tools/projects/get-project-member-group-list.d.ts.map +1 -0
- package/dist/tools/projects/get-project-member-group-list.js +127 -0
- package/dist/tools/projects/get-project-member-group-list.js.map +1 -0
- package/dist/tools/projects/get-project-member-list.d.ts +66 -0
- package/dist/tools/projects/get-project-member-list.d.ts.map +1 -0
- package/dist/tools/projects/get-project-member-list.js +159 -0
- package/dist/tools/projects/get-project-member-list.js.map +1 -0
- package/dist/tools/projects/get-project-template-list.d.ts +55 -0
- package/dist/tools/projects/get-project-template-list.d.ts.map +1 -0
- package/dist/tools/projects/get-project-template-list.js +127 -0
- package/dist/tools/projects/get-project-template-list.js.map +1 -0
- package/dist/tools/projects/get-project-template.d.ts +48 -0
- package/dist/tools/projects/get-project-template.d.ts.map +1 -0
- package/dist/tools/projects/get-project-template.js +132 -0
- package/dist/tools/projects/get-project-template.js.map +1 -0
- package/dist/tools/projects/get-project-workflow-list.d.ts +41 -0
- package/dist/tools/projects/get-project-workflow-list.d.ts.map +1 -0
- package/dist/tools/projects/get-project-workflow-list.js +107 -0
- package/dist/tools/projects/get-project-workflow-list.js.map +1 -0
- package/dist/tools/projects/get-project.d.ts +41 -0
- package/dist/tools/projects/get-project.d.ts.map +1 -0
- package/dist/tools/projects/get-project.js +110 -0
- package/dist/tools/projects/get-project.js.map +1 -0
- package/dist/tools/projects/get-tag-list.d.ts +55 -0
- package/dist/tools/projects/get-tag-list.d.ts.map +1 -0
- package/dist/tools/projects/get-tag-list.js +145 -0
- package/dist/tools/projects/get-tag-list.js.map +1 -0
- package/dist/tools/projects/get-task-comment-list.d.ts +63 -0
- package/dist/tools/projects/get-task-comment-list.d.ts.map +1 -0
- package/dist/tools/projects/get-task-comment-list.js +136 -0
- package/dist/tools/projects/get-task-comment-list.js.map +1 -0
- package/dist/tools/projects/get-task-list.d.ts +184 -0
- package/dist/tools/projects/get-task-list.d.ts.map +1 -0
- package/dist/tools/projects/get-task-list.js +257 -0
- package/dist/tools/projects/get-task-list.js.map +1 -0
- package/dist/tools/projects/get-task.d.ts +48 -0
- package/dist/tools/projects/get-task.d.ts.map +1 -0
- package/dist/tools/projects/get-task.js +130 -0
- package/dist/tools/projects/get-task.js.map +1 -0
- package/dist/tools/projects/update-task-comment.d.ts +92 -0
- package/dist/tools/projects/update-task-comment.d.ts.map +1 -0
- package/dist/tools/projects/update-task-comment.js +176 -0
- package/dist/tools/projects/update-task-comment.js.map +1 -0
- package/dist/tools/projects/update-task.d.ts +196 -0
- package/dist/tools/projects/update-task.d.ts.map +1 -0
- package/dist/tools/projects/update-task.js +227 -0
- package/dist/tools/projects/update-task.js.map +1 -0
- package/dist/tools/wiki/create-wiki-page.d.ts +89 -0
- package/dist/tools/wiki/create-wiki-page.d.ts.map +1 -0
- package/dist/tools/wiki/create-wiki-page.js +142 -0
- package/dist/tools/wiki/create-wiki-page.js.map +1 -0
- package/dist/tools/wiki/get-wiki-list.d.ts +58 -0
- package/dist/tools/wiki/get-wiki-list.d.ts.map +1 -0
- package/dist/tools/wiki/get-wiki-list.js +118 -0
- package/dist/tools/wiki/get-wiki-list.js.map +1 -0
- package/dist/tools/wiki/get-wiki-page-list.d.ts +65 -0
- package/dist/tools/wiki/get-wiki-page-list.d.ts.map +1 -0
- package/dist/tools/wiki/get-wiki-page-list.js +125 -0
- package/dist/tools/wiki/get-wiki-page-list.js.map +1 -0
- package/dist/tools/wiki/get-wiki-page.d.ts +48 -0
- package/dist/tools/wiki/get-wiki-page.d.ts.map +1 -0
- package/dist/tools/wiki/get-wiki-page.js +100 -0
- package/dist/tools/wiki/get-wiki-page.js.map +1 -0
- package/dist/tools/wiki/update-wiki-page.d.ts +89 -0
- package/dist/tools/wiki/update-wiki-page.d.ts.map +1 -0
- package/dist/tools/wiki/update-wiki-page.js +140 -0
- package/dist/tools/wiki/update-wiki-page.js.map +1 -0
- package/dist/types/config.d.ts +18 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +6 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/dooray-api.d.ts +387 -0
- package/dist/types/dooray-api.d.ts.map +1 -0
- package/dist/types/dooray-api.js +7 -0
- package/dist/types/dooray-api.js.map +1 -0
- package/dist/utils/errors.d.ts +28 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +60 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/logger.d.ts +22 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +50 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/member-transform.d.ts +20 -0
- package/dist/utils/member-transform.d.ts.map +1 -0
- package/dist/utils/member-transform.js +48 -0
- package/dist/utils/member-transform.js.map +1 -0
- package/dist/utils/response-filters.d.ts +121 -0
- package/dist/utils/response-filters.d.ts.map +1 -0
- package/dist/utils/response-filters.js +166 -0
- package/dist/utils/response-filters.js.map +1 -0
- package/dooray-mcp.iml +8 -0
- package/package.json +54 -0
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Response Filtering Utilities
|
|
3
|
+
* Functions to filter API responses to return only essential fields
|
|
4
|
+
* This reduces token usage when returning list responses to LLMs
|
|
5
|
+
*/
|
|
6
|
+
import { Task, Project, Milestone, Tag, Workflow, ProjectTemplate, ProjectMemberGroup, TaskComment, PaginatedResponse } from '../types/dooray-api.js';
|
|
7
|
+
/**
|
|
8
|
+
* Filter Task object to return only essential fields for list display
|
|
9
|
+
*/
|
|
10
|
+
export declare function filterTaskForList(task: Task): {
|
|
11
|
+
id: string;
|
|
12
|
+
number: number;
|
|
13
|
+
subject: string;
|
|
14
|
+
workflowClass: string;
|
|
15
|
+
priority: "highest" | "high" | "normal" | "low" | "lowest" | "none";
|
|
16
|
+
milestone: {
|
|
17
|
+
id: string;
|
|
18
|
+
name: string;
|
|
19
|
+
} | undefined;
|
|
20
|
+
tags: {
|
|
21
|
+
id: string;
|
|
22
|
+
name?: string;
|
|
23
|
+
}[] | undefined;
|
|
24
|
+
createdAt: string;
|
|
25
|
+
updatedAt: string;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Filter Project object to return only essential fields for list display
|
|
29
|
+
*/
|
|
30
|
+
export declare function filterProjectForList(project: Project): {
|
|
31
|
+
id: string;
|
|
32
|
+
name: string;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Filter Milestone object to return only essential fields for list display
|
|
36
|
+
*/
|
|
37
|
+
export declare function filterMilestoneForList(milestone: Milestone): {
|
|
38
|
+
id: string;
|
|
39
|
+
name: string;
|
|
40
|
+
status: "open" | "closed";
|
|
41
|
+
startedAt: string | undefined;
|
|
42
|
+
endedAt: string | undefined;
|
|
43
|
+
createdAt: string;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Filter Tag object to return only essential fields for list display
|
|
47
|
+
*/
|
|
48
|
+
export declare function filterTagForList(tag: Tag): {
|
|
49
|
+
id: string;
|
|
50
|
+
name: string;
|
|
51
|
+
tagGroup: {
|
|
52
|
+
id: string;
|
|
53
|
+
name: string;
|
|
54
|
+
mandatory?: boolean;
|
|
55
|
+
selectOne?: boolean;
|
|
56
|
+
} | undefined;
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Group tags by their tagGroup for more organized display
|
|
60
|
+
* Returns tagGroups with their associated tags nested inside
|
|
61
|
+
* Tags without a tagGroup are placed in an "Ungrouped" category
|
|
62
|
+
*/
|
|
63
|
+
export declare function groupTagsByTagGroup(tags: Tag[]): {
|
|
64
|
+
tagGroups: {
|
|
65
|
+
id: string | null;
|
|
66
|
+
name: string;
|
|
67
|
+
mandatory: boolean;
|
|
68
|
+
selectOne: boolean;
|
|
69
|
+
tags: Array<{
|
|
70
|
+
id: string;
|
|
71
|
+
name: string;
|
|
72
|
+
}>;
|
|
73
|
+
}[];
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Filter Workflow object to return only essential fields for list display
|
|
77
|
+
* Returns: id, name, order, class
|
|
78
|
+
* Excludes: names array (localized names), projectId
|
|
79
|
+
*/
|
|
80
|
+
export declare function filterWorkflowForList(workflow: Workflow): {
|
|
81
|
+
id: string;
|
|
82
|
+
name: string;
|
|
83
|
+
order: number;
|
|
84
|
+
class: "closed" | "backlog" | "registered" | "working";
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* Filter ProjectTemplate object to return only essential fields for list display
|
|
88
|
+
*/
|
|
89
|
+
export declare function filterTemplateForList(template: ProjectTemplate): {
|
|
90
|
+
id: string;
|
|
91
|
+
templateName: string;
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* Filter ProjectMemberGroup object to return only essential fields for list display
|
|
95
|
+
*/
|
|
96
|
+
export declare function filterMemberGroupForList(group: ProjectMemberGroup): {
|
|
97
|
+
id: string;
|
|
98
|
+
name: string;
|
|
99
|
+
};
|
|
100
|
+
/**
|
|
101
|
+
* Filter TaskComment object to return only essential fields
|
|
102
|
+
* Returns: id, creator, body
|
|
103
|
+
* Excludes: type, subtype, createdAt, modifiedAt, mailUsers, post
|
|
104
|
+
*/
|
|
105
|
+
export declare function filterTaskCommentForList(comment: TaskComment): {
|
|
106
|
+
id: string;
|
|
107
|
+
creator: import("../types/dooray-api.js").TaskCommentCreator;
|
|
108
|
+
body: {
|
|
109
|
+
mimeType: string;
|
|
110
|
+
content: string;
|
|
111
|
+
};
|
|
112
|
+
};
|
|
113
|
+
/**
|
|
114
|
+
* Filter paginated response by applying a filter function to each item in data array
|
|
115
|
+
* Preserves pagination metadata (totalCount)
|
|
116
|
+
*/
|
|
117
|
+
export declare function filterPaginatedResponse<T, F>(response: PaginatedResponse<T>, filterFn: (item: T) => F): {
|
|
118
|
+
totalCount: number;
|
|
119
|
+
data: F[];
|
|
120
|
+
};
|
|
121
|
+
//# sourceMappingURL=response-filters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response-filters.d.ts","sourceRoot":"","sources":["../../src/utils/response-filters.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,eAAe,EAAE,kBAAkB,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEtJ;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI;;;;;;;;;;;;;;;;EAY3C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO;;;EAKpD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,SAAS;;;;;;;EAS1D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG;;;;;;;;;EAMxC;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,GAAG,EAAE;;YAGvC,MAAM,GAAG,IAAI;cACX,MAAM;mBACD,OAAO;mBACP,OAAO;cACZ,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;;EA6C5C;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,QAAQ;;;;;EAOvD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,eAAe;;;EAK9D;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,kBAAkB;;;EAKjE;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,WAAW;;;;;;;EAM5D;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,CAAC,EAC1C,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAC9B,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GACvB;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,CAAC,EAAE,CAAA;CAAE,CAKnC"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Response Filtering Utilities
|
|
4
|
+
* Functions to filter API responses to return only essential fields
|
|
5
|
+
* This reduces token usage when returning list responses to LLMs
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.filterTaskForList = filterTaskForList;
|
|
9
|
+
exports.filterProjectForList = filterProjectForList;
|
|
10
|
+
exports.filterMilestoneForList = filterMilestoneForList;
|
|
11
|
+
exports.filterTagForList = filterTagForList;
|
|
12
|
+
exports.groupTagsByTagGroup = groupTagsByTagGroup;
|
|
13
|
+
exports.filterWorkflowForList = filterWorkflowForList;
|
|
14
|
+
exports.filterTemplateForList = filterTemplateForList;
|
|
15
|
+
exports.filterMemberGroupForList = filterMemberGroupForList;
|
|
16
|
+
exports.filterTaskCommentForList = filterTaskCommentForList;
|
|
17
|
+
exports.filterPaginatedResponse = filterPaginatedResponse;
|
|
18
|
+
/**
|
|
19
|
+
* Filter Task object to return only essential fields for list display
|
|
20
|
+
*/
|
|
21
|
+
function filterTaskForList(task) {
|
|
22
|
+
return {
|
|
23
|
+
id: task.id,
|
|
24
|
+
number: task.number,
|
|
25
|
+
subject: task.subject,
|
|
26
|
+
workflowClass: task.workflowClass,
|
|
27
|
+
priority: task.priority,
|
|
28
|
+
milestone: task.milestone,
|
|
29
|
+
tags: task.tags,
|
|
30
|
+
createdAt: task.createdAt,
|
|
31
|
+
updatedAt: task.updatedAt,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Filter Project object to return only essential fields for list display
|
|
36
|
+
*/
|
|
37
|
+
function filterProjectForList(project) {
|
|
38
|
+
return {
|
|
39
|
+
id: project.id,
|
|
40
|
+
name: project.code, // 'code' field is actually the project name
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Filter Milestone object to return only essential fields for list display
|
|
45
|
+
*/
|
|
46
|
+
function filterMilestoneForList(milestone) {
|
|
47
|
+
return {
|
|
48
|
+
id: milestone.id,
|
|
49
|
+
name: milestone.name,
|
|
50
|
+
status: milestone.status,
|
|
51
|
+
startedAt: milestone.startedAt,
|
|
52
|
+
endedAt: milestone.endedAt,
|
|
53
|
+
createdAt: milestone.createdAt,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Filter Tag object to return only essential fields for list display
|
|
58
|
+
*/
|
|
59
|
+
function filterTagForList(tag) {
|
|
60
|
+
return {
|
|
61
|
+
id: tag.id,
|
|
62
|
+
name: tag.name,
|
|
63
|
+
tagGroup: tag.tagGroup,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Group tags by their tagGroup for more organized display
|
|
68
|
+
* Returns tagGroups with their associated tags nested inside
|
|
69
|
+
* Tags without a tagGroup are placed in an "Ungrouped" category
|
|
70
|
+
*/
|
|
71
|
+
function groupTagsByTagGroup(tags) {
|
|
72
|
+
// Group tags by tagGroup.id
|
|
73
|
+
const groupMap = new Map();
|
|
74
|
+
for (const tag of tags) {
|
|
75
|
+
if (tag.tagGroup) {
|
|
76
|
+
const groupId = tag.tagGroup.id;
|
|
77
|
+
if (!groupMap.has(groupId)) {
|
|
78
|
+
groupMap.set(groupId, {
|
|
79
|
+
id: groupId,
|
|
80
|
+
name: tag.tagGroup.name,
|
|
81
|
+
mandatory: tag.tagGroup.mandatory || false,
|
|
82
|
+
selectOne: tag.tagGroup.selectOne || false,
|
|
83
|
+
tags: [],
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
groupMap.get(groupId).tags.push({
|
|
87
|
+
id: tag.id,
|
|
88
|
+
name: tag.name,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
// Handle tags without tagGroup
|
|
93
|
+
const ungroupedKey = '__ungrouped__';
|
|
94
|
+
if (!groupMap.has(ungroupedKey)) {
|
|
95
|
+
groupMap.set(ungroupedKey, {
|
|
96
|
+
id: null,
|
|
97
|
+
name: 'Ungrouped',
|
|
98
|
+
mandatory: false,
|
|
99
|
+
selectOne: false,
|
|
100
|
+
tags: [],
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
groupMap.get(ungroupedKey).tags.push({
|
|
104
|
+
id: tag.id,
|
|
105
|
+
name: tag.name,
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return {
|
|
110
|
+
tagGroups: Array.from(groupMap.values()),
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Filter Workflow object to return only essential fields for list display
|
|
115
|
+
* Returns: id, name, order, class
|
|
116
|
+
* Excludes: names array (localized names), projectId
|
|
117
|
+
*/
|
|
118
|
+
function filterWorkflowForList(workflow) {
|
|
119
|
+
return {
|
|
120
|
+
id: workflow.id,
|
|
121
|
+
name: workflow.name,
|
|
122
|
+
order: workflow.order,
|
|
123
|
+
class: workflow.class,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Filter ProjectTemplate object to return only essential fields for list display
|
|
128
|
+
*/
|
|
129
|
+
function filterTemplateForList(template) {
|
|
130
|
+
return {
|
|
131
|
+
id: template.id,
|
|
132
|
+
templateName: template.templateName,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Filter ProjectMemberGroup object to return only essential fields for list display
|
|
137
|
+
*/
|
|
138
|
+
function filterMemberGroupForList(group) {
|
|
139
|
+
return {
|
|
140
|
+
id: group.id,
|
|
141
|
+
name: group.code,
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Filter TaskComment object to return only essential fields
|
|
146
|
+
* Returns: id, creator, body
|
|
147
|
+
* Excludes: type, subtype, createdAt, modifiedAt, mailUsers, post
|
|
148
|
+
*/
|
|
149
|
+
function filterTaskCommentForList(comment) {
|
|
150
|
+
return {
|
|
151
|
+
id: comment.id,
|
|
152
|
+
creator: comment.creator,
|
|
153
|
+
body: comment.body,
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Filter paginated response by applying a filter function to each item in data array
|
|
158
|
+
* Preserves pagination metadata (totalCount)
|
|
159
|
+
*/
|
|
160
|
+
function filterPaginatedResponse(response, filterFn) {
|
|
161
|
+
return {
|
|
162
|
+
totalCount: response.totalCount,
|
|
163
|
+
data: (response.data || []).map(filterFn),
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=response-filters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response-filters.js","sourceRoot":"","sources":["../../src/utils/response-filters.ts"],"names":[],"mappings":"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"}
|
package/dooray-mcp.iml
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<module type="GENERAL_MODULE" version="4">
|
|
3
|
+
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
|
4
|
+
<exclude-output />
|
|
5
|
+
<content url="file://$MODULE_DIR$" />
|
|
6
|
+
<orderEntry type="sourceFolder" forTests="false" />
|
|
7
|
+
</component>
|
|
8
|
+
</module>
|
package/package.json
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@jhl8041/dooray-mcp",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "MCP server for Dooray",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"bin": {
|
|
8
|
+
"dooray-mcp": "dist/index.js"
|
|
9
|
+
},
|
|
10
|
+
"scripts": {
|
|
11
|
+
"build": "tsc",
|
|
12
|
+
"dev": "tsx src/index.ts",
|
|
13
|
+
"prepare": "npm run build",
|
|
14
|
+
"watch": "tsc --watch"
|
|
15
|
+
},
|
|
16
|
+
"keywords": [
|
|
17
|
+
"dooray-mcp",
|
|
18
|
+
"dooray mcp",
|
|
19
|
+
"dooray",
|
|
20
|
+
"mcp",
|
|
21
|
+
"model-context-protocol",
|
|
22
|
+
"nhn",
|
|
23
|
+
"nhn cloud",
|
|
24
|
+
"ai",
|
|
25
|
+
"llm"
|
|
26
|
+
],
|
|
27
|
+
"author": "Jae Hyung Lee",
|
|
28
|
+
"license": "MIT",
|
|
29
|
+
"publishConfig": {
|
|
30
|
+
"access": "public"
|
|
31
|
+
},
|
|
32
|
+
"repository": {
|
|
33
|
+
"type": "git",
|
|
34
|
+
"url": "https://github.com/jhl8041/dooray-mcp.git"
|
|
35
|
+
},
|
|
36
|
+
"bugs": {
|
|
37
|
+
"url": "https://github.com/jhl8041/dooray-mcp/issues"
|
|
38
|
+
},
|
|
39
|
+
"homepage": "https://github.com/jhl8041/dooray-mcp#readme",
|
|
40
|
+
"dependencies": {
|
|
41
|
+
"@modelcontextprotocol/sdk": "^1.0.4",
|
|
42
|
+
"axios": "^1.7.9",
|
|
43
|
+
"dotenv": "^16.4.7",
|
|
44
|
+
"zod": "^3.24.1"
|
|
45
|
+
},
|
|
46
|
+
"devDependencies": {
|
|
47
|
+
"@types/node": "^22.10.2",
|
|
48
|
+
"tsx": "^4.19.2",
|
|
49
|
+
"typescript": "^5.7.2"
|
|
50
|
+
},
|
|
51
|
+
"engines": {
|
|
52
|
+
"node": ">=18.0.0"
|
|
53
|
+
}
|
|
54
|
+
}
|