@quantabit/project-sdk 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/LICENSE +21 -0
- package/README.md +48 -0
- package/dist/index.cjs +220 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.esm.js +203 -0
- package/dist/index.esm.js.map +1 -0
- package/package.json +80 -0
- package/types/index.d.ts +13 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 QuantaBit Team
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# @quantabit/project-sdk
|
|
2
|
+
|
|
3
|
+
> QuantaBit Project SDK - Project creation, management, collaboration, and milestone tracking
|
|
4
|
+
|
|
5
|
+
## 📦 Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @quantabit/project-sdk
|
|
9
|
+
# or
|
|
10
|
+
yarn add @quantabit/project-sdk
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## 🚀 Quick Start
|
|
14
|
+
|
|
15
|
+
```javascript
|
|
16
|
+
import { projectApi } from "@quantabit/project-sdk";
|
|
17
|
+
|
|
18
|
+
// Configure API base URL
|
|
19
|
+
// Uses /api/v1/project by default
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Dependencies
|
|
23
|
+
|
|
24
|
+
This SDK depends on `@quantabit/sdk-config` for unified configuration management.
|
|
25
|
+
Make sure to initialize the configuration at application startup:
|
|
26
|
+
|
|
27
|
+
```javascript
|
|
28
|
+
import { initConfig } from '@quantabit/sdk-config';
|
|
29
|
+
|
|
30
|
+
initConfig({
|
|
31
|
+
apiBaseUrl: 'https://your-api-domain.com/api/v1',
|
|
32
|
+
});
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## 📄 License
|
|
36
|
+
|
|
37
|
+
MIT © QuantaBit
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## 🌐 Brand & Links
|
|
44
|
+
- Official Mainnet: [QuantaBit Chain](https://qbitchain.io/)
|
|
45
|
+
- Developer Platform: [Developer Platform](https://developer.quantabit.io/)
|
|
46
|
+
- Open Platform: [Open Platform](https://open.quantabit.io/)
|
|
47
|
+
- Payment Platform: [Pay Platform](https://pay.qbitwallet.io/)
|
|
48
|
+
- Feedback: [Feedback](https://xwin.live/qbit)
|
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var sdkConfig = require('@quantabit/sdk-config');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* QuantaBit Project SDK - API Client
|
|
7
|
+
* 项目管理、看板协作及里程碑追踪服务接口
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
class ProjectApiClient extends sdkConfig.BaseApiClient {
|
|
11
|
+
constructor(config = {}) {
|
|
12
|
+
super('/project', config);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// ============ 项目管理 ============
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* 获取项目列表
|
|
19
|
+
* @param {Object} params - 查询参数 (状态、标签、分页等)
|
|
20
|
+
*/
|
|
21
|
+
async getProjects(params = {}) {
|
|
22
|
+
return this.get('/projects', params);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* 获取项目详情
|
|
27
|
+
* @param {string} projectId - 项目 ID
|
|
28
|
+
*/
|
|
29
|
+
async getProject(projectId) {
|
|
30
|
+
return this.get(`/projects/${projectId}`);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* 创建项目
|
|
35
|
+
* @param {Object} projectData - 项目数据 (名称、描述、所有者等)
|
|
36
|
+
*/
|
|
37
|
+
async createProject(projectData) {
|
|
38
|
+
return this.post('/projects', projectData);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* 更新项目信息
|
|
43
|
+
* @param {string} projectId - 项目 ID
|
|
44
|
+
* @param {Object} updates - 更新数据
|
|
45
|
+
*/
|
|
46
|
+
async updateProject(projectId, updates) {
|
|
47
|
+
return this.put(`/projects/${projectId}`, updates);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// ============ 任务管理 ============
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* 获取任务列表
|
|
54
|
+
* @param {string} projectId - 项目 ID
|
|
55
|
+
* @param {Object} params - 查询参数
|
|
56
|
+
*/
|
|
57
|
+
async getTasks(projectId, params = {}) {
|
|
58
|
+
return this.get(`/projects/${projectId}/tasks`, params);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* 创建任务
|
|
63
|
+
* @param {string} projectId - 项目 ID
|
|
64
|
+
* @param {Object} taskData - 任务数据
|
|
65
|
+
*/
|
|
66
|
+
async createTask(projectId, taskData) {
|
|
67
|
+
return this.post(`/projects/${projectId}/tasks`, taskData);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* 更新任务状态或详情
|
|
72
|
+
* @param {string} projectId - 项目 ID
|
|
73
|
+
* @param {string} taskId - 任务 ID
|
|
74
|
+
* @param {Object} updates - 更新字段
|
|
75
|
+
*/
|
|
76
|
+
async updateTask(projectId, taskId, updates) {
|
|
77
|
+
return this.put(`/projects/${projectId}/tasks/${taskId}`, updates);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// ============ 里程碑管理 ============
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* 获取项目里程碑
|
|
84
|
+
* @param {string} projectId - 项目 ID
|
|
85
|
+
*/
|
|
86
|
+
async getMilestones(projectId) {
|
|
87
|
+
return this.get(`/projects/${projectId}/milestones`);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* 创建里程碑
|
|
92
|
+
* @param {string} projectId - 项目 ID
|
|
93
|
+
* @param {Object} milestoneData - 里程碑数据 (名称、截止日期、描述)
|
|
94
|
+
*/
|
|
95
|
+
async createMilestone(projectId, milestoneData) {
|
|
96
|
+
return this.post(`/projects/${projectId}/milestones`, milestoneData);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
const projectApi = new ProjectApiClient();
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* QuantaBit Project SDK - i18n support
|
|
103
|
+
*/
|
|
104
|
+
|
|
105
|
+
const messages = {
|
|
106
|
+
en: {
|
|
107
|
+
project: 'Project',
|
|
108
|
+
task: 'Task',
|
|
109
|
+
milestone: 'Milestone',
|
|
110
|
+
board: 'Kanban Board',
|
|
111
|
+
gantt: 'Gantt Chart',
|
|
112
|
+
assignee: 'Assignee',
|
|
113
|
+
status: 'Status',
|
|
114
|
+
todo: 'To Do',
|
|
115
|
+
inProgress: 'In Progress',
|
|
116
|
+
completed: 'Completed',
|
|
117
|
+
createProject: 'Create Project',
|
|
118
|
+
createTask: 'Create Task',
|
|
119
|
+
createMilestone: 'Create Milestone',
|
|
120
|
+
projectCreated: 'Project created successfully',
|
|
121
|
+
taskCreated: 'Task created successfully'
|
|
122
|
+
},
|
|
123
|
+
zh: {
|
|
124
|
+
project: '项目',
|
|
125
|
+
task: '任务',
|
|
126
|
+
milestone: '里程碑',
|
|
127
|
+
board: '看板协作',
|
|
128
|
+
gantt: '甘特图',
|
|
129
|
+
assignee: '负责人',
|
|
130
|
+
status: '状态',
|
|
131
|
+
todo: '待办',
|
|
132
|
+
inProgress: '进行中',
|
|
133
|
+
completed: '已完成',
|
|
134
|
+
createProject: '创建项目',
|
|
135
|
+
createTask: '创建任务',
|
|
136
|
+
createMilestone: '创建里程碑',
|
|
137
|
+
projectCreated: '项目创建成功',
|
|
138
|
+
taskCreated: '任务创建成功'
|
|
139
|
+
},
|
|
140
|
+
ja: {
|
|
141
|
+
project: 'プロジェクト',
|
|
142
|
+
task: 'タスク',
|
|
143
|
+
milestone: 'マイルストーン',
|
|
144
|
+
board: 'かんばんボード',
|
|
145
|
+
gantt: 'ガントチャート',
|
|
146
|
+
assignee: '担当者',
|
|
147
|
+
status: 'ステータス',
|
|
148
|
+
todo: '未着手',
|
|
149
|
+
inProgress: '進行中',
|
|
150
|
+
completed: '完了',
|
|
151
|
+
createProject: 'プロジェクト作成',
|
|
152
|
+
createTask: 'タスク作成',
|
|
153
|
+
createMilestone: 'マイルストーン作成',
|
|
154
|
+
projectCreated: 'プロジェクトが正常に作成されました',
|
|
155
|
+
taskCreated: 'タスクが正常に作成されました'
|
|
156
|
+
},
|
|
157
|
+
ko: {
|
|
158
|
+
project: '프로젝트',
|
|
159
|
+
task: '작업',
|
|
160
|
+
milestone: '마일스톤',
|
|
161
|
+
board: '칸반 보드',
|
|
162
|
+
gantt: '간트 차트',
|
|
163
|
+
assignee: '담당자',
|
|
164
|
+
status: '상태',
|
|
165
|
+
todo: '할 일',
|
|
166
|
+
inProgress: '진행 중',
|
|
167
|
+
completed: '완료됨',
|
|
168
|
+
createProject: '프로젝트 생성',
|
|
169
|
+
createTask: '작업 생성',
|
|
170
|
+
createMilestone: '마일스톤 생성',
|
|
171
|
+
projectCreated: '프로젝트가 성공적으로 생성되었습니다',
|
|
172
|
+
taskCreated: '작업이 성공적으로 생성되었습니다'
|
|
173
|
+
}
|
|
174
|
+
};
|
|
175
|
+
const SUPPORTED_LANGUAGES = ['en', 'zh', 'ja', 'ko'];
|
|
176
|
+
let currentLanguage = 'en';
|
|
177
|
+
function setLanguage(lang) {
|
|
178
|
+
if (SUPPORTED_LANGUAGES.includes(lang)) currentLanguage = lang;
|
|
179
|
+
}
|
|
180
|
+
function getLanguage() {
|
|
181
|
+
return currentLanguage;
|
|
182
|
+
}
|
|
183
|
+
function t(key) {
|
|
184
|
+
return (messages[currentLanguage] || messages.en)[key] || key;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* @quantabit/project-sdk
|
|
189
|
+
* QuantaBit Project SDK - Project creation, management, collaboration, and milestone tracking
|
|
190
|
+
*/
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
// Convenience API exports
|
|
194
|
+
const getProjects = (...args) => projectApi.getProjects(...args);
|
|
195
|
+
const getProject = (...args) => projectApi.getProject(...args);
|
|
196
|
+
const createProject = (...args) => projectApi.createProject(...args);
|
|
197
|
+
const updateProject = (...args) => projectApi.updateProject(...args);
|
|
198
|
+
const getTasks = (...args) => projectApi.getTasks(...args);
|
|
199
|
+
const createTask = (...args) => projectApi.createTask(...args);
|
|
200
|
+
const updateTask = (...args) => projectApi.updateTask(...args);
|
|
201
|
+
const getMilestones = (...args) => projectApi.getMilestones(...args);
|
|
202
|
+
const createMilestone = (...args) => projectApi.createMilestone(...args);
|
|
203
|
+
|
|
204
|
+
exports.ProjectApiClient = ProjectApiClient;
|
|
205
|
+
exports.SUPPORTED_LANGUAGES = SUPPORTED_LANGUAGES;
|
|
206
|
+
exports.createMilestone = createMilestone;
|
|
207
|
+
exports.createProject = createProject;
|
|
208
|
+
exports.createTask = createTask;
|
|
209
|
+
exports.getLanguage = getLanguage;
|
|
210
|
+
exports.getMilestones = getMilestones;
|
|
211
|
+
exports.getProject = getProject;
|
|
212
|
+
exports.getProjects = getProjects;
|
|
213
|
+
exports.getTasks = getTasks;
|
|
214
|
+
exports.messages = messages;
|
|
215
|
+
exports.projectApi = projectApi;
|
|
216
|
+
exports.setLanguage = setLanguage;
|
|
217
|
+
exports.t = t;
|
|
218
|
+
exports.updateProject = updateProject;
|
|
219
|
+
exports.updateTask = updateTask;
|
|
220
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/services/projectApi.js","../src/i18n/index.js","../src/index.js"],"sourcesContent":["/**\n * QuantaBit Project SDK - API Client\n * 项目管理、看板协作及里程碑追踪服务接口\n */\n\nimport { BaseApiClient } from '@quantabit/sdk-config';\n\nexport class ProjectApiClient extends BaseApiClient {\n constructor(config = {}) {\n super('/project', config);\n }\n\n // ============ 项目管理 ============\n\n /**\n * 获取项目列表\n * @param {Object} params - 查询参数 (状态、标签、分页等)\n */\n async getProjects(params = {}) {\n return this.get('/projects', params);\n }\n\n /**\n * 获取项目详情\n * @param {string} projectId - 项目 ID\n */\n async getProject(projectId) {\n return this.get(`/projects/${projectId}`);\n }\n\n /**\n * 创建项目\n * @param {Object} projectData - 项目数据 (名称、描述、所有者等)\n */\n async createProject(projectData) {\n return this.post('/projects', projectData);\n }\n\n /**\n * 更新项目信息\n * @param {string} projectId - 项目 ID\n * @param {Object} updates - 更新数据\n */\n async updateProject(projectId, updates) {\n return this.put(`/projects/${projectId}`, updates);\n }\n\n // ============ 任务管理 ============\n\n /**\n * 获取任务列表\n * @param {string} projectId - 项目 ID\n * @param {Object} params - 查询参数\n */\n async getTasks(projectId, params = {}) {\n return this.get(`/projects/${projectId}/tasks`, params);\n }\n\n /**\n * 创建任务\n * @param {string} projectId - 项目 ID\n * @param {Object} taskData - 任务数据\n */\n async createTask(projectId, taskData) {\n return this.post(`/projects/${projectId}/tasks`, taskData);\n }\n\n /**\n * 更新任务状态或详情\n * @param {string} projectId - 项目 ID\n * @param {string} taskId - 任务 ID\n * @param {Object} updates - 更新字段\n */\n async updateTask(projectId, taskId, updates) {\n return this.put(`/projects/${projectId}/tasks/${taskId}`, updates);\n }\n\n // ============ 里程碑管理 ============\n\n /**\n * 获取项目里程碑\n * @param {string} projectId - 项目 ID\n */\n async getMilestones(projectId) {\n return this.get(`/projects/${projectId}/milestones`);\n }\n\n /**\n * 创建里程碑\n * @param {string} projectId - 项目 ID\n * @param {Object} milestoneData - 里程碑数据 (名称、截止日期、描述)\n */\n async createMilestone(projectId, milestoneData) {\n return this.post(`/projects/${projectId}/milestones`, milestoneData);\n }\n}\n\nexport const projectApi = new ProjectApiClient();\nexport default projectApi;\n","/**\n * QuantaBit Project SDK - i18n support\n */\n\nconst messages = {\n en: {\n project: 'Project',\n task: 'Task',\n milestone: 'Milestone',\n board: 'Kanban Board',\n gantt: 'Gantt Chart',\n assignee: 'Assignee',\n status: 'Status',\n todo: 'To Do',\n inProgress: 'In Progress',\n completed: 'Completed',\n createProject: 'Create Project',\n createTask: 'Create Task',\n createMilestone: 'Create Milestone',\n projectCreated: 'Project created successfully',\n taskCreated: 'Task created successfully'\n },\n zh: {\n project: '项目',\n task: '任务',\n milestone: '里程碑',\n board: '看板协作',\n gantt: '甘特图',\n assignee: '负责人',\n status: '状态',\n todo: '待办',\n inProgress: '进行中',\n completed: '已完成',\n createProject: '创建项目',\n createTask: '创建任务',\n createMilestone: '创建里程碑',\n projectCreated: '项目创建成功',\n taskCreated: '任务创建成功'\n },\n ja: {\n project: 'プロジェクト',\n task: 'タスク',\n milestone: 'マイルストーン',\n board: 'かんばんボード',\n gantt: 'ガントチャート',\n assignee: '担当者',\n status: 'ステータス',\n todo: '未着手',\n inProgress: '進行中',\n completed: '完了',\n createProject: 'プロジェクト作成',\n createTask: 'タスク作成',\n createMilestone: 'マイルストーン作成',\n projectCreated: 'プロジェクトが正常に作成されました',\n taskCreated: 'タスクが正常に作成されました'\n },\n ko: {\n project: '프로젝트',\n task: '작업',\n milestone: '마일스톤',\n board: '칸반 보드',\n gantt: '간트 차트',\n assignee: '담당자',\n status: '상태',\n todo: '할 일',\n inProgress: '진행 중',\n completed: '완료됨',\n createProject: '프로젝트 생성',\n createTask: '작업 생성',\n createMilestone: '마일스톤 생성',\n projectCreated: '프로젝트가 성공적으로 생성되었습니다',\n taskCreated: '작업이 성공적으로 생성되었습니다'\n }\n};\n\nconst SUPPORTED_LANGUAGES = ['en', 'zh', 'ja', 'ko'];\nlet currentLanguage = 'en';\n\nexport function setLanguage(lang) {\n if (SUPPORTED_LANGUAGES.includes(lang)) currentLanguage = lang;\n}\n\nexport function getLanguage() {\n return currentLanguage;\n}\n\nexport function t(key) {\n return (messages[currentLanguage] || messages.en)[key] || key;\n}\n\nexport { messages, SUPPORTED_LANGUAGES };\n","/**\n * @quantabit/project-sdk\n * QuantaBit Project SDK - Project creation, management, collaboration, and milestone tracking\n */\n\nimport { projectApi, ProjectApiClient } from './services/projectApi';\nimport { messages, SUPPORTED_LANGUAGES, setLanguage, getLanguage, t } from './i18n';\n\nexport {\n projectApi,\n ProjectApiClient,\n messages,\n SUPPORTED_LANGUAGES,\n setLanguage,\n getLanguage,\n t\n};\n\n// Convenience API exports\nexport const getProjects = (...args) => projectApi.getProjects(...args);\nexport const getProject = (...args) => projectApi.getProject(...args);\nexport const createProject = (...args) => projectApi.createProject(...args);\nexport const updateProject = (...args) => projectApi.updateProject(...args);\nexport const getTasks = (...args) => projectApi.getTasks(...args);\nexport const createTask = (...args) => projectApi.createTask(...args);\nexport const updateTask = (...args) => projectApi.updateTask(...args);\nexport const getMilestones = (...args) => projectApi.getMilestones(...args);\nexport const createMilestone = (...args) => projectApi.createMilestone(...args);\n"],"names":["ProjectApiClient","BaseApiClient","constructor","config","getProjects","params","get","getProject","projectId","createProject","projectData","post","updateProject","updates","put","getTasks","createTask","taskData","updateTask","taskId","getMilestones","createMilestone","milestoneData","projectApi","messages","en","project","task","milestone","board","gantt","assignee","status","todo","inProgress","completed","projectCreated","taskCreated","zh","ja","ko","SUPPORTED_LANGUAGES","currentLanguage","setLanguage","lang","includes","getLanguage","t","key","args"],"mappings":"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"}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import { BaseApiClient } from '@quantabit/sdk-config';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* QuantaBit Project SDK - API Client
|
|
5
|
+
* 项目管理、看板协作及里程碑追踪服务接口
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
class ProjectApiClient extends BaseApiClient {
|
|
9
|
+
constructor(config = {}) {
|
|
10
|
+
super('/project', config);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
// ============ 项目管理 ============
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* 获取项目列表
|
|
17
|
+
* @param {Object} params - 查询参数 (状态、标签、分页等)
|
|
18
|
+
*/
|
|
19
|
+
async getProjects(params = {}) {
|
|
20
|
+
return this.get('/projects', params);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* 获取项目详情
|
|
25
|
+
* @param {string} projectId - 项目 ID
|
|
26
|
+
*/
|
|
27
|
+
async getProject(projectId) {
|
|
28
|
+
return this.get(`/projects/${projectId}`);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* 创建项目
|
|
33
|
+
* @param {Object} projectData - 项目数据 (名称、描述、所有者等)
|
|
34
|
+
*/
|
|
35
|
+
async createProject(projectData) {
|
|
36
|
+
return this.post('/projects', projectData);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* 更新项目信息
|
|
41
|
+
* @param {string} projectId - 项目 ID
|
|
42
|
+
* @param {Object} updates - 更新数据
|
|
43
|
+
*/
|
|
44
|
+
async updateProject(projectId, updates) {
|
|
45
|
+
return this.put(`/projects/${projectId}`, updates);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// ============ 任务管理 ============
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* 获取任务列表
|
|
52
|
+
* @param {string} projectId - 项目 ID
|
|
53
|
+
* @param {Object} params - 查询参数
|
|
54
|
+
*/
|
|
55
|
+
async getTasks(projectId, params = {}) {
|
|
56
|
+
return this.get(`/projects/${projectId}/tasks`, params);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* 创建任务
|
|
61
|
+
* @param {string} projectId - 项目 ID
|
|
62
|
+
* @param {Object} taskData - 任务数据
|
|
63
|
+
*/
|
|
64
|
+
async createTask(projectId, taskData) {
|
|
65
|
+
return this.post(`/projects/${projectId}/tasks`, taskData);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* 更新任务状态或详情
|
|
70
|
+
* @param {string} projectId - 项目 ID
|
|
71
|
+
* @param {string} taskId - 任务 ID
|
|
72
|
+
* @param {Object} updates - 更新字段
|
|
73
|
+
*/
|
|
74
|
+
async updateTask(projectId, taskId, updates) {
|
|
75
|
+
return this.put(`/projects/${projectId}/tasks/${taskId}`, updates);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
// ============ 里程碑管理 ============
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* 获取项目里程碑
|
|
82
|
+
* @param {string} projectId - 项目 ID
|
|
83
|
+
*/
|
|
84
|
+
async getMilestones(projectId) {
|
|
85
|
+
return this.get(`/projects/${projectId}/milestones`);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* 创建里程碑
|
|
90
|
+
* @param {string} projectId - 项目 ID
|
|
91
|
+
* @param {Object} milestoneData - 里程碑数据 (名称、截止日期、描述)
|
|
92
|
+
*/
|
|
93
|
+
async createMilestone(projectId, milestoneData) {
|
|
94
|
+
return this.post(`/projects/${projectId}/milestones`, milestoneData);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
const projectApi = new ProjectApiClient();
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* QuantaBit Project SDK - i18n support
|
|
101
|
+
*/
|
|
102
|
+
|
|
103
|
+
const messages = {
|
|
104
|
+
en: {
|
|
105
|
+
project: 'Project',
|
|
106
|
+
task: 'Task',
|
|
107
|
+
milestone: 'Milestone',
|
|
108
|
+
board: 'Kanban Board',
|
|
109
|
+
gantt: 'Gantt Chart',
|
|
110
|
+
assignee: 'Assignee',
|
|
111
|
+
status: 'Status',
|
|
112
|
+
todo: 'To Do',
|
|
113
|
+
inProgress: 'In Progress',
|
|
114
|
+
completed: 'Completed',
|
|
115
|
+
createProject: 'Create Project',
|
|
116
|
+
createTask: 'Create Task',
|
|
117
|
+
createMilestone: 'Create Milestone',
|
|
118
|
+
projectCreated: 'Project created successfully',
|
|
119
|
+
taskCreated: 'Task created successfully'
|
|
120
|
+
},
|
|
121
|
+
zh: {
|
|
122
|
+
project: '项目',
|
|
123
|
+
task: '任务',
|
|
124
|
+
milestone: '里程碑',
|
|
125
|
+
board: '看板协作',
|
|
126
|
+
gantt: '甘特图',
|
|
127
|
+
assignee: '负责人',
|
|
128
|
+
status: '状态',
|
|
129
|
+
todo: '待办',
|
|
130
|
+
inProgress: '进行中',
|
|
131
|
+
completed: '已完成',
|
|
132
|
+
createProject: '创建项目',
|
|
133
|
+
createTask: '创建任务',
|
|
134
|
+
createMilestone: '创建里程碑',
|
|
135
|
+
projectCreated: '项目创建成功',
|
|
136
|
+
taskCreated: '任务创建成功'
|
|
137
|
+
},
|
|
138
|
+
ja: {
|
|
139
|
+
project: 'プロジェクト',
|
|
140
|
+
task: 'タスク',
|
|
141
|
+
milestone: 'マイルストーン',
|
|
142
|
+
board: 'かんばんボード',
|
|
143
|
+
gantt: 'ガントチャート',
|
|
144
|
+
assignee: '担当者',
|
|
145
|
+
status: 'ステータス',
|
|
146
|
+
todo: '未着手',
|
|
147
|
+
inProgress: '進行中',
|
|
148
|
+
completed: '完了',
|
|
149
|
+
createProject: 'プロジェクト作成',
|
|
150
|
+
createTask: 'タスク作成',
|
|
151
|
+
createMilestone: 'マイルストーン作成',
|
|
152
|
+
projectCreated: 'プロジェクトが正常に作成されました',
|
|
153
|
+
taskCreated: 'タスクが正常に作成されました'
|
|
154
|
+
},
|
|
155
|
+
ko: {
|
|
156
|
+
project: '프로젝트',
|
|
157
|
+
task: '작업',
|
|
158
|
+
milestone: '마일스톤',
|
|
159
|
+
board: '칸반 보드',
|
|
160
|
+
gantt: '간트 차트',
|
|
161
|
+
assignee: '담당자',
|
|
162
|
+
status: '상태',
|
|
163
|
+
todo: '할 일',
|
|
164
|
+
inProgress: '진행 중',
|
|
165
|
+
completed: '완료됨',
|
|
166
|
+
createProject: '프로젝트 생성',
|
|
167
|
+
createTask: '작업 생성',
|
|
168
|
+
createMilestone: '마일스톤 생성',
|
|
169
|
+
projectCreated: '프로젝트가 성공적으로 생성되었습니다',
|
|
170
|
+
taskCreated: '작업이 성공적으로 생성되었습니다'
|
|
171
|
+
}
|
|
172
|
+
};
|
|
173
|
+
const SUPPORTED_LANGUAGES = ['en', 'zh', 'ja', 'ko'];
|
|
174
|
+
let currentLanguage = 'en';
|
|
175
|
+
function setLanguage(lang) {
|
|
176
|
+
if (SUPPORTED_LANGUAGES.includes(lang)) currentLanguage = lang;
|
|
177
|
+
}
|
|
178
|
+
function getLanguage() {
|
|
179
|
+
return currentLanguage;
|
|
180
|
+
}
|
|
181
|
+
function t(key) {
|
|
182
|
+
return (messages[currentLanguage] || messages.en)[key] || key;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* @quantabit/project-sdk
|
|
187
|
+
* QuantaBit Project SDK - Project creation, management, collaboration, and milestone tracking
|
|
188
|
+
*/
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
// Convenience API exports
|
|
192
|
+
const getProjects = (...args) => projectApi.getProjects(...args);
|
|
193
|
+
const getProject = (...args) => projectApi.getProject(...args);
|
|
194
|
+
const createProject = (...args) => projectApi.createProject(...args);
|
|
195
|
+
const updateProject = (...args) => projectApi.updateProject(...args);
|
|
196
|
+
const getTasks = (...args) => projectApi.getTasks(...args);
|
|
197
|
+
const createTask = (...args) => projectApi.createTask(...args);
|
|
198
|
+
const updateTask = (...args) => projectApi.updateTask(...args);
|
|
199
|
+
const getMilestones = (...args) => projectApi.getMilestones(...args);
|
|
200
|
+
const createMilestone = (...args) => projectApi.createMilestone(...args);
|
|
201
|
+
|
|
202
|
+
export { ProjectApiClient, SUPPORTED_LANGUAGES, createMilestone, createProject, createTask, getLanguage, getMilestones, getProject, getProjects, getTasks, messages, projectApi, setLanguage, t, updateProject, updateTask };
|
|
203
|
+
//# sourceMappingURL=index.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/services/projectApi.js","../src/i18n/index.js","../src/index.js"],"sourcesContent":["/**\n * QuantaBit Project SDK - API Client\n * 项目管理、看板协作及里程碑追踪服务接口\n */\n\nimport { BaseApiClient } from '@quantabit/sdk-config';\n\nexport class ProjectApiClient extends BaseApiClient {\n constructor(config = {}) {\n super('/project', config);\n }\n\n // ============ 项目管理 ============\n\n /**\n * 获取项目列表\n * @param {Object} params - 查询参数 (状态、标签、分页等)\n */\n async getProjects(params = {}) {\n return this.get('/projects', params);\n }\n\n /**\n * 获取项目详情\n * @param {string} projectId - 项目 ID\n */\n async getProject(projectId) {\n return this.get(`/projects/${projectId}`);\n }\n\n /**\n * 创建项目\n * @param {Object} projectData - 项目数据 (名称、描述、所有者等)\n */\n async createProject(projectData) {\n return this.post('/projects', projectData);\n }\n\n /**\n * 更新项目信息\n * @param {string} projectId - 项目 ID\n * @param {Object} updates - 更新数据\n */\n async updateProject(projectId, updates) {\n return this.put(`/projects/${projectId}`, updates);\n }\n\n // ============ 任务管理 ============\n\n /**\n * 获取任务列表\n * @param {string} projectId - 项目 ID\n * @param {Object} params - 查询参数\n */\n async getTasks(projectId, params = {}) {\n return this.get(`/projects/${projectId}/tasks`, params);\n }\n\n /**\n * 创建任务\n * @param {string} projectId - 项目 ID\n * @param {Object} taskData - 任务数据\n */\n async createTask(projectId, taskData) {\n return this.post(`/projects/${projectId}/tasks`, taskData);\n }\n\n /**\n * 更新任务状态或详情\n * @param {string} projectId - 项目 ID\n * @param {string} taskId - 任务 ID\n * @param {Object} updates - 更新字段\n */\n async updateTask(projectId, taskId, updates) {\n return this.put(`/projects/${projectId}/tasks/${taskId}`, updates);\n }\n\n // ============ 里程碑管理 ============\n\n /**\n * 获取项目里程碑\n * @param {string} projectId - 项目 ID\n */\n async getMilestones(projectId) {\n return this.get(`/projects/${projectId}/milestones`);\n }\n\n /**\n * 创建里程碑\n * @param {string} projectId - 项目 ID\n * @param {Object} milestoneData - 里程碑数据 (名称、截止日期、描述)\n */\n async createMilestone(projectId, milestoneData) {\n return this.post(`/projects/${projectId}/milestones`, milestoneData);\n }\n}\n\nexport const projectApi = new ProjectApiClient();\nexport default projectApi;\n","/**\n * QuantaBit Project SDK - i18n support\n */\n\nconst messages = {\n en: {\n project: 'Project',\n task: 'Task',\n milestone: 'Milestone',\n board: 'Kanban Board',\n gantt: 'Gantt Chart',\n assignee: 'Assignee',\n status: 'Status',\n todo: 'To Do',\n inProgress: 'In Progress',\n completed: 'Completed',\n createProject: 'Create Project',\n createTask: 'Create Task',\n createMilestone: 'Create Milestone',\n projectCreated: 'Project created successfully',\n taskCreated: 'Task created successfully'\n },\n zh: {\n project: '项目',\n task: '任务',\n milestone: '里程碑',\n board: '看板协作',\n gantt: '甘特图',\n assignee: '负责人',\n status: '状态',\n todo: '待办',\n inProgress: '进行中',\n completed: '已完成',\n createProject: '创建项目',\n createTask: '创建任务',\n createMilestone: '创建里程碑',\n projectCreated: '项目创建成功',\n taskCreated: '任务创建成功'\n },\n ja: {\n project: 'プロジェクト',\n task: 'タスク',\n milestone: 'マイルストーン',\n board: 'かんばんボード',\n gantt: 'ガントチャート',\n assignee: '担当者',\n status: 'ステータス',\n todo: '未着手',\n inProgress: '進行中',\n completed: '完了',\n createProject: 'プロジェクト作成',\n createTask: 'タスク作成',\n createMilestone: 'マイルストーン作成',\n projectCreated: 'プロジェクトが正常に作成されました',\n taskCreated: 'タスクが正常に作成されました'\n },\n ko: {\n project: '프로젝트',\n task: '작업',\n milestone: '마일스톤',\n board: '칸반 보드',\n gantt: '간트 차트',\n assignee: '담당자',\n status: '상태',\n todo: '할 일',\n inProgress: '진행 중',\n completed: '완료됨',\n createProject: '프로젝트 생성',\n createTask: '작업 생성',\n createMilestone: '마일스톤 생성',\n projectCreated: '프로젝트가 성공적으로 생성되었습니다',\n taskCreated: '작업이 성공적으로 생성되었습니다'\n }\n};\n\nconst SUPPORTED_LANGUAGES = ['en', 'zh', 'ja', 'ko'];\nlet currentLanguage = 'en';\n\nexport function setLanguage(lang) {\n if (SUPPORTED_LANGUAGES.includes(lang)) currentLanguage = lang;\n}\n\nexport function getLanguage() {\n return currentLanguage;\n}\n\nexport function t(key) {\n return (messages[currentLanguage] || messages.en)[key] || key;\n}\n\nexport { messages, SUPPORTED_LANGUAGES };\n","/**\n * @quantabit/project-sdk\n * QuantaBit Project SDK - Project creation, management, collaboration, and milestone tracking\n */\n\nimport { projectApi, ProjectApiClient } from './services/projectApi';\nimport { messages, SUPPORTED_LANGUAGES, setLanguage, getLanguage, t } from './i18n';\n\nexport {\n projectApi,\n ProjectApiClient,\n messages,\n SUPPORTED_LANGUAGES,\n setLanguage,\n getLanguage,\n t\n};\n\n// Convenience API exports\nexport const getProjects = (...args) => projectApi.getProjects(...args);\nexport const getProject = (...args) => projectApi.getProject(...args);\nexport const createProject = (...args) => projectApi.createProject(...args);\nexport const updateProject = (...args) => projectApi.updateProject(...args);\nexport const getTasks = (...args) => projectApi.getTasks(...args);\nexport const createTask = (...args) => projectApi.createTask(...args);\nexport const updateTask = (...args) => projectApi.updateTask(...args);\nexport const getMilestones = (...args) => projectApi.getMilestones(...args);\nexport const createMilestone = (...args) => projectApi.createMilestone(...args);\n"],"names":["ProjectApiClient","BaseApiClient","constructor","config","getProjects","params","get","getProject","projectId","createProject","projectData","post","updateProject","updates","put","getTasks","createTask","taskData","updateTask","taskId","getMilestones","createMilestone","milestoneData","projectApi","messages","en","project","task","milestone","board","gantt","assignee","status","todo","inProgress","completed","projectCreated","taskCreated","zh","ja","ko","SUPPORTED_LANGUAGES","currentLanguage","setLanguage","lang","includes","getLanguage","t","key","args"],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@quantabit/project-sdk",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "QuantaBit Project SDK - Project creation, management, collaboration, and milestone tracking",
|
|
6
|
+
"main": "dist/index.cjs",
|
|
7
|
+
"module": "dist/index.esm.js",
|
|
8
|
+
"types": "types/index.d.ts",
|
|
9
|
+
"files": [
|
|
10
|
+
"dist",
|
|
11
|
+
"README.md",
|
|
12
|
+
"LICENSE",
|
|
13
|
+
"types"
|
|
14
|
+
],
|
|
15
|
+
"exports": {
|
|
16
|
+
".": {
|
|
17
|
+
"import": "./dist/index.esm.js",
|
|
18
|
+
"require": "./dist/index.cjs",
|
|
19
|
+
"types": "./dist/index.d.ts"
|
|
20
|
+
},
|
|
21
|
+
"./styles": "./dist/styles.css",
|
|
22
|
+
"./styles.css": "./dist/styles.css"
|
|
23
|
+
},
|
|
24
|
+
"scripts": {
|
|
25
|
+
"build": "rollup -c",
|
|
26
|
+
"dev": "rollup -c -w",
|
|
27
|
+
"clean": "rm -rf dist",
|
|
28
|
+
"prepublishOnly": "npm run clean && npm run build",
|
|
29
|
+
"test": "jest --passWithNoTests"
|
|
30
|
+
},
|
|
31
|
+
"peerDependencies": {
|
|
32
|
+
"react": ">=17.0.0",
|
|
33
|
+
"react-dom": ">=17.0.0"
|
|
34
|
+
},
|
|
35
|
+
"devDependencies": {
|
|
36
|
+
"@babel/core": "^7.23.0",
|
|
37
|
+
"@babel/preset-react": "^7.23.0",
|
|
38
|
+
"@rollup/plugin-babel": "^6.0.0",
|
|
39
|
+
"@rollup/plugin-commonjs": "^25.0.0",
|
|
40
|
+
"@rollup/plugin-node-resolve": "^15.0.0",
|
|
41
|
+
"rollup": "^4.0.0",
|
|
42
|
+
"rollup-plugin-postcss": "^4.0.0"
|
|
43
|
+
},
|
|
44
|
+
"keywords": [
|
|
45
|
+
"project",
|
|
46
|
+
"management",
|
|
47
|
+
"collaboration",
|
|
48
|
+
"quantabit"
|
|
49
|
+
],
|
|
50
|
+
"author": "QuantaBit Team",
|
|
51
|
+
"license": "MIT",
|
|
52
|
+
"publishConfig": {
|
|
53
|
+
"access": "public",
|
|
54
|
+
"registry": "https://registry.npmjs.org"
|
|
55
|
+
},
|
|
56
|
+
"dependencies": {
|
|
57
|
+
"@quantabit/sdk-config": "^1.0.6"
|
|
58
|
+
},
|
|
59
|
+
"repository": {
|
|
60
|
+
"type": "git",
|
|
61
|
+
"url": "https://github.com/quantabit-chain/qbit-sdk.git",
|
|
62
|
+
"directory": "packages/project-sdk"
|
|
63
|
+
},
|
|
64
|
+
"homepage": "https://github.com/quantabit-chain/qbit-sdk/tree/main/packages/project-sdk#readme",
|
|
65
|
+
"bugs": {
|
|
66
|
+
"url": "https://github.com/quantabit-chain/qbit-sdk/issues"
|
|
67
|
+
},
|
|
68
|
+
"engines": {
|
|
69
|
+
"node": ">=18.0.0"
|
|
70
|
+
},
|
|
71
|
+
"sideEffects": false,
|
|
72
|
+
"qbit": {
|
|
73
|
+
"privacy": {
|
|
74
|
+
"level": "functional",
|
|
75
|
+
"dataCollection": "Feature-related data for personalization. Requires user consent.",
|
|
76
|
+
"gdprCompliant": true,
|
|
77
|
+
"ccpaCompliant": true
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
package/types/index.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @quantabit/project-sdk TypeScript Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* Auto-generated type stubs. Enhance with specific types as the SDK matures.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { FC, ReactNode } from 'react';
|
|
8
|
+
|
|
9
|
+
// ============ Functions & Utilities ============
|
|
10
|
+
|
|
11
|
+
export declare function projectApi(...args: any[]): any;
|
|
12
|
+
export declare const SUPPORTED_LANGUAGES: string[];
|
|
13
|
+
|