@cloudglab/zentao-cli 0.1.4 → 0.1.6

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.
Files changed (44) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/README.md +139 -257
  3. package/dist/api/execution.d.ts +33 -0
  4. package/dist/api/execution.js +363 -0
  5. package/dist/api/execution.js.map +1 -1
  6. package/dist/api/index.js +1 -1
  7. package/dist/api/index.js.map +1 -1
  8. package/dist/api/statistics.d.ts +38 -1
  9. package/dist/api/statistics.js +307 -1
  10. package/dist/api/statistics.js.map +1 -1
  11. package/dist/api/task.js +24 -5
  12. package/dist/api/task.js.map +1 -1
  13. package/dist/cli.js +21 -3
  14. package/dist/cli.js.map +1 -1
  15. package/dist/core/http.d.ts +1 -0
  16. package/dist/core/http.js +26 -0
  17. package/dist/core/http.js.map +1 -1
  18. package/dist/core/roles.js +1 -1
  19. package/dist/core/roles.js.map +1 -1
  20. package/dist/install.d.ts +2 -0
  21. package/dist/install.js +206 -0
  22. package/dist/install.js.map +1 -0
  23. package/dist/tools/execution.js +8 -0
  24. package/dist/tools/execution.js.map +1 -1
  25. package/dist/tools/statistics.js +8 -0
  26. package/dist/tools/statistics.js.map +1 -1
  27. package/dist/version.d.ts +1 -1
  28. package/dist/version.js +1 -1
  29. package/package.json +10 -3
  30. package/skills/zentao-cli/SKILL.md +185 -0
  31. package/skills/zentao-cli/reference/bug.md +93 -0
  32. package/skills/zentao-cli/reference/build.md +21 -0
  33. package/skills/zentao-cli/reference/cli.md +25 -0
  34. package/skills/zentao-cli/reference/execution.md +38 -0
  35. package/skills/zentao-cli/reference/install.md +90 -0
  36. package/skills/zentao-cli/reference/overview.md +24 -0
  37. package/skills/zentao-cli/reference/plan.md +20 -0
  38. package/skills/zentao-cli/reference/product.md +14 -0
  39. package/skills/zentao-cli/reference/project.md +14 -0
  40. package/skills/zentao-cli/reference/statistics.md +30 -0
  41. package/skills/zentao-cli/reference/story.md +22 -0
  42. package/skills/zentao-cli/reference/task.md +21 -0
  43. package/skills/zentao-cli/reference/testcase.md +20 -0
  44. package/skills/zentao-cli/reference/testtask.md +20 -0
@@ -7,6 +7,19 @@ export class ExecutionApi {
7
7
  async getExecutionDetail(executionId) {
8
8
  return this.http.request('GET', `/executions/${executionId}`);
9
9
  }
10
+ async getExecutionDynamic(executionId) {
11
+ const response = await this.http.request('GET', `/executions/${executionId}`, {
12
+ params: { fields: 'dynamics' },
13
+ });
14
+ const dynamics = Array.isArray(response.dynamics) ? response.dynamics : [];
15
+ return {
16
+ source: 'execution-fields-dynamics',
17
+ note: '近似读取:调用禅道 REST GET /executions/{id}?fields=dynamics,仅返回执行详情接口附带的动态摘要;不是旧版 execution-dynamic 页面完整等价实现,暂不支持 today/all/自定义时间范围。',
18
+ executionId,
19
+ total: dynamics.length,
20
+ dynamics,
21
+ };
22
+ }
10
23
  async getProjectExecutions(projectId) {
11
24
  const response = await this.http.request('GET', `/projects/${projectId}/executions`);
12
25
  return toServerListResult(response, ['executions']);
@@ -25,6 +38,56 @@ export class ExecutionApi {
25
38
  });
26
39
  return toServerListResult(response, ['bugs'], params);
27
40
  }
41
+ async getExecutionDailyBugStats(executionId, input = {}) {
42
+ const bugs = await this.getAllExecutionBugs(executionId);
43
+ const tasks = await this.getAllExecutionTasks(executionId);
44
+ const date = this.resolveStatsDate(input.date);
45
+ const total = bugs.length;
46
+ const reopened = bugs.filter(bug => Number(bug.activatedCount ?? 0) > 0);
47
+ const delayed = bugs.filter(bug => this.isDelayedBug(bug));
48
+ const closed = bugs.filter(bug => this.toString(bug.status) === 'closed');
49
+ const resolved = bugs.filter(bug => this.toString(bug.status) === 'resolved');
50
+ const unresolved = bugs.filter(bug => !['closed', 'resolved'].includes(this.toString(bug.status)));
51
+ const testerNotClosed = resolved.filter(bug => this.isOnOrBefore(this.toDateOnly(bug.resolvedDate), this.formatDate(this.addDays(this.parseDate(date), -1))));
52
+ const devNotResolvedToday = unresolved.filter(bug => this.isOnOrBefore(this.toDateOnly(bug.openedDate), date));
53
+ const userNames = await this.resolveUserNames(bugs.map(bug => this.getBugOwner(bug)));
54
+ const participants = this.buildParticipantBugStats(bugs, total, devNotResolvedToday, userNames);
55
+ const highReopenParticipants = participants.filter(item => item.reopened > 0).map(item => item.displayName);
56
+ const iterationName = input.iterationName ?? `执行 #${executionId}`;
57
+ const result = {
58
+ source: 'execution-bugs-current-state',
59
+ note: '按执行下 Bug 当前字段近似统计:reopen 使用 activatedCount>0;延期处理使用 status=postponed 或 resolution=postponed/delay/delayed;测试未及时关闭Bug使用 resolvedDate 早于统计日且当前仍未关闭;开发今日未及时解决bug使用当前未解决且创建日期不晚于统计日期。',
60
+ executionId,
61
+ iterationName,
62
+ date,
63
+ total,
64
+ delayed: delayed.length,
65
+ reopened: reopened.length,
66
+ reopenedRate: this.percent(reopened.length, total),
67
+ closed: closed.length,
68
+ resolved: resolved.length,
69
+ unresolved: unresolved.length,
70
+ testerNotClosed: testerNotClosed.length,
71
+ devNotResolvedToday: devNotResolvedToday.length,
72
+ participants,
73
+ taskSummary: this.buildTaskSummary(tasks, date),
74
+ severitySummary: this.buildSeveritySummary(bugs),
75
+ details: {
76
+ reopened: this.buildBugDetails(reopened, userNames),
77
+ delayed: this.buildBugDetails(delayed, userNames),
78
+ testerNotClosed: this.buildBugDetails(testerNotClosed, userNames),
79
+ devNotResolvedToday: this.buildBugDetails(devNotResolvedToday, userNames),
80
+ taskFinishedToday: this.buildTaskDetails(tasks.filter(task => this.toDateOnly(task.finishedDate) === date)),
81
+ taskOverdueUnfinished: this.buildTaskDetails(tasks.filter(task => this.isOverdueUnfinishedTask(task, date))),
82
+ taskFromBug: this.buildTaskDetails(tasks.filter(task => Number(task.fromBug ?? 0) > 0)),
83
+ },
84
+ notes: this.buildDailyBugNotes(reopened.length, total, highReopenParticipants),
85
+ };
86
+ return {
87
+ ...result,
88
+ report: this.formatDailyBugStatsReport(result),
89
+ };
90
+ }
28
91
  async updateExecution(executionId, update) {
29
92
  return this.http.request('PUT', `/executions/${executionId}`, { data: update });
30
93
  }
@@ -43,5 +106,305 @@ export class ExecutionApi {
43
106
  async putoffExecution(executionId, payload) {
44
107
  return this.http.request('POST', `/executions/${executionId}/putoff`, { data: payload });
45
108
  }
109
+ async getAllExecutionBugs(executionId) {
110
+ const limit = 100;
111
+ const firstPage = await this.getExecutionBugs(executionId, { page: 1, limit });
112
+ const bugs = [...(firstPage.items ?? [])];
113
+ const totalPages = Math.ceil((firstPage.total ?? bugs.length) / limit);
114
+ for (let page = 2; page <= totalPages; page += 1) {
115
+ const response = await this.getExecutionBugs(executionId, { page, limit });
116
+ bugs.push(...(response.items ?? []));
117
+ }
118
+ return bugs;
119
+ }
120
+ async getAllExecutionTasks(executionId) {
121
+ const limit = 100;
122
+ const firstPage = await this.http.request('GET', `/executions/${executionId}/tasks`, {
123
+ params: { page: 1, limit },
124
+ });
125
+ const tasks = [...(firstPage.tasks ?? [])];
126
+ const totalPages = Math.ceil((firstPage.total ?? tasks.length) / limit);
127
+ for (let page = 2; page <= totalPages; page += 1) {
128
+ const response = await this.http.request('GET', `/executions/${executionId}/tasks`, {
129
+ params: { page, limit },
130
+ });
131
+ tasks.push(...(response.tasks ?? []));
132
+ }
133
+ return tasks;
134
+ }
135
+ buildParticipantBugStats(bugs, total, devNotResolvedToday, userNames) {
136
+ const grouped = new Map();
137
+ for (const bug of bugs) {
138
+ const owner = this.getBugOwner(bug);
139
+ grouped.set(owner, [...(grouped.get(owner) ?? []), bug]);
140
+ }
141
+ return [...grouped.entries()]
142
+ .map(([owner, items]) => {
143
+ const reopened = items.filter(bug => Number(bug.activatedCount ?? 0) > 0).length;
144
+ const notResolved = devNotResolvedToday.filter(bug => this.getBugOwner(bug) === owner).length;
145
+ const ownerName = userNames.get(owner) ?? owner;
146
+ return {
147
+ owner,
148
+ ownerName,
149
+ displayName: ownerName,
150
+ total: items.length,
151
+ totalRate: this.percent(items.length, total),
152
+ reopened,
153
+ reopenedRate: this.percent(reopened, items.length),
154
+ devNotResolvedToday: notResolved,
155
+ };
156
+ })
157
+ .sort((a, b) => b.total - a.total || a.displayName.localeCompare(b.displayName));
158
+ }
159
+ getBugOwner(bug) {
160
+ return this.toString(bug.resolvedBy) || this.toString(bug.assignedTo) || this.toString(bug.openedBy) || '未分配';
161
+ }
162
+ isDelayedBug(bug) {
163
+ const status = this.toString(bug.status).toLowerCase();
164
+ const resolution = this.toString(bug.resolution).toLowerCase();
165
+ return status === 'postponed' || ['postponed', 'delay', 'delayed'].includes(resolution);
166
+ }
167
+ async resolveUserNames(accounts) {
168
+ const uniqueAccounts = [...new Set(accounts.filter(account => account && account !== '未分配'))];
169
+ const entries = await Promise.allSettled(uniqueAccounts.map(async (account) => {
170
+ const user = await this.http.request('GET', `/users/${encodeURIComponent(account)}`);
171
+ return [account, this.toString(user.realname) || this.toString(user.account) || account];
172
+ }));
173
+ const names = new Map();
174
+ for (const entry of entries) {
175
+ if (entry.status === 'fulfilled')
176
+ names.set(entry.value[0], entry.value[1]);
177
+ }
178
+ return names;
179
+ }
180
+ buildDailyBugNotes(reopened, total, highReopenParticipants) {
181
+ const notes = [];
182
+ if (total > 0 && reopened / total > 0.1) {
183
+ notes.push(`迭代reopen率已超限,请迭代同学注意!另外,亲爱的小伙伴,你们也要注意bug修复的质量咯(${highReopenParticipants.join(',')})`);
184
+ }
185
+ return notes;
186
+ }
187
+ buildSeveritySummary(bugs) {
188
+ const grouped = new Map();
189
+ for (const bug of bugs) {
190
+ const severity = this.toString(bug.severity) || '未知';
191
+ grouped.set(severity, (grouped.get(severity) ?? 0) + 1);
192
+ }
193
+ return [...grouped.entries()]
194
+ .map(([severity, count]) => ({ severity, count, rate: this.percent(count, bugs.length) }))
195
+ .sort((a, b) => Number(a.severity) - Number(b.severity));
196
+ }
197
+ buildTaskSummary(tasks, date) {
198
+ const done = tasks.filter(task => ['done', 'closed'].includes(this.toString(task.status)));
199
+ const doing = tasks.filter(task => this.toString(task.status) === 'doing');
200
+ const wait = tasks.filter(task => this.toString(task.status) === 'wait');
201
+ const canceled = tasks.filter(task => ['cancel', 'cancelled'].includes(this.toString(task.status)));
202
+ const finishedToday = tasks.filter(task => this.toDateOnly(task.finishedDate) === date);
203
+ const overdueUnfinished = tasks.filter(task => this.isOverdueUnfinishedTask(task, date));
204
+ const fromBug = tasks.filter(task => Number(task.fromBug ?? 0) > 0);
205
+ const consumed = tasks.reduce((sum, task) => sum + Number(task.consumed ?? 0), 0);
206
+ const estimate = tasks.reduce((sum, task) => sum + Number(task.estimate ?? 0), 0);
207
+ return {
208
+ total: tasks.length,
209
+ done: done.length,
210
+ doing: doing.length,
211
+ wait: wait.length,
212
+ canceled: canceled.length,
213
+ finishedToday: finishedToday.length,
214
+ overdueUnfinished: overdueUnfinished.length,
215
+ fromBug: fromBug.length,
216
+ consumed,
217
+ estimate,
218
+ participants: this.buildTaskParticipantStats(tasks, date),
219
+ };
220
+ }
221
+ buildTaskParticipantStats(tasks, date) {
222
+ const grouped = new Map();
223
+ for (const task of tasks) {
224
+ const owner = this.getTaskOwner(task);
225
+ grouped.set(owner, [...(grouped.get(owner) ?? []), task]);
226
+ }
227
+ return [...grouped.entries()]
228
+ .map(([owner, items]) => ({
229
+ owner,
230
+ total: items.length,
231
+ done: items.filter(task => ['done', 'closed'].includes(this.toString(task.status))).length,
232
+ doing: items.filter(task => this.toString(task.status) === 'doing').length,
233
+ wait: items.filter(task => this.toString(task.status) === 'wait').length,
234
+ finishedToday: items.filter(task => this.toDateOnly(task.finishedDate) === date).length,
235
+ overdueUnfinished: items.filter(task => this.isOverdueUnfinishedTask(task, date)).length,
236
+ }))
237
+ .sort((a, b) => b.total - a.total || a.owner.localeCompare(b.owner));
238
+ }
239
+ buildTaskDetails(tasks) {
240
+ return tasks.map(task => ({
241
+ id: Number(task.id),
242
+ name: this.toString(task.name),
243
+ status: this.toString(task.status),
244
+ owner: this.getTaskOwner(task),
245
+ deadline: this.toDateOnly(task.deadline),
246
+ finishedDate: this.toDateOnly(task.finishedDate),
247
+ consumed: Number(task.consumed ?? 0),
248
+ estimate: Number(task.estimate ?? 0),
249
+ fromBug: Number(task.fromBug ?? 0),
250
+ }));
251
+ }
252
+ getTaskOwner(task) {
253
+ return this.toString(task.finishedBy) || this.toString(task.assignedTo) || this.toString(task.openedBy) || '未分配';
254
+ }
255
+ isOverdueUnfinishedTask(task, date) {
256
+ const status = this.toString(task.status);
257
+ const deadline = this.toDateOnly(task.deadline);
258
+ return !!deadline && deadline <= date && !['done', 'closed', 'cancel', 'cancelled'].includes(status);
259
+ }
260
+ buildBugDetails(bugs, userNames) {
261
+ return bugs.map(bug => {
262
+ const owner = this.getBugOwner(bug);
263
+ return {
264
+ id: Number(bug.id),
265
+ title: this.toString(bug.title),
266
+ status: this.toString(bug.status),
267
+ statusName: this.toString(bug.statusName),
268
+ severity: this.toString(bug.severity),
269
+ pri: this.toString(bug.pri),
270
+ owner,
271
+ ownerName: userNames.get(owner) ?? owner,
272
+ openedDate: this.toDateOnly(bug.openedDate),
273
+ resolvedDate: this.toDateOnly(bug.resolvedDate),
274
+ activatedCount: Number(bug.activatedCount ?? 0),
275
+ activatedDate: this.toDateOnly(bug.activatedDate),
276
+ resolution: this.toString(bug.resolution),
277
+ };
278
+ });
279
+ }
280
+ formatDailyBugStatsReport(result) {
281
+ const severityText = result.severitySummary.map(item => `S${item.severity}:${item.count}(${item.rate})`).join(',') || '无';
282
+ const lines = [
283
+ `${result.iterationName}:`,
284
+ '一、摘要',
285
+ `总bug:${result.total},延期处理:${result.delayed},reopen:${this.formatCountWithRateOrZero(result.reopened, result.reopenedRate)}`,
286
+ `已关闭: ${result.closed},已解决: ${result.resolved},未解决: ${result.unresolved}`,
287
+ `测试未及时关闭Bug:${result.testerNotClosed}`,
288
+ `开发今日未及时解决bug:${result.devNotResolvedToday}`,
289
+ `严重程度分布:${severityText}`,
290
+ '',
291
+ '任务统计:',
292
+ `总任务:${result.taskSummary.total},已完成/关闭:${result.taskSummary.done},进行中:${result.taskSummary.doing},未开始:${result.taskSummary.wait},已取消:${result.taskSummary.canceled}`,
293
+ `今日完成任务:${result.taskSummary.finishedToday},逾期未完成任务:${result.taskSummary.overdueUnfinished},Bug转任务:${result.taskSummary.fromBug}`,
294
+ `任务工时:预计 ${result.taskSummary.estimate}h,已消耗 ${result.taskSummary.consumed}h`,
295
+ '',
296
+ '二、参与人员bug情况',
297
+ ...result.participants.map(item => `${item.displayName}:负责bug:${this.formatCountWithRate(item.total, item.totalRate)},reopen:${item.reopened ? this.formatCountWithRate(item.reopened, item.reopenedRate) : '无'},今日未及时解决bug:${item.devNotResolvedToday || '无'}。${item.devNotResolvedToday ? '需关注未解决项。' : '暂无阻塞。'}`),
298
+ '',
299
+ '参与人员任务情况',
300
+ ...result.taskSummary.participants.map(item => `${item.owner}:总任务:${item.total},完成/关闭:${item.done},进行中:${item.doing},未开始:${item.wait},今日完成:${item.finishedToday},逾期未完成:${item.overdueUnfinished}`),
301
+ '',
302
+ '三、问题明细',
303
+ this.formatBugDetailSection('reopen Bug', result.details.reopened),
304
+ this.formatBugDetailSection('延期处理 Bug', result.details.delayed),
305
+ this.formatBugDetailSection('测试未及时关闭 Bug', result.details.testerNotClosed),
306
+ this.formatBugDetailSection('开发今日未及时解决 Bug', result.details.devNotResolvedToday),
307
+ this.formatTaskDetailSection('今日完成任务', result.details.taskFinishedToday),
308
+ this.formatTaskDetailSection('逾期未完成任务', result.details.taskOverdueUnfinished),
309
+ this.formatTaskDetailSection('Bug 转任务', result.details.taskFromBug),
310
+ '',
311
+ '四、统计口径',
312
+ '1. reopen:activatedCount > 0,当前无法区分是否为本日/本迭代内 reopen。',
313
+ '2. 延期处理:status=postponed 或 resolution=postponed/delay/delayed。',
314
+ '3. 测试未及时关闭:resolvedDate 早于统计日,且当前状态仍为 resolved。',
315
+ '4. 开发今日未及时解决:统计日当天仍非 resolved/closed,且 openedDate 不晚于统计日。',
316
+ '5. 负责人:优先 resolvedBy,其次 assignedTo,再次 openedBy;展示名会通过 /users/{account} 转中文姓名。',
317
+ '6. 任务完成:任务状态为 done/closed;今日完成任务按 finishedDate 等于统计日计算。',
318
+ '7. 逾期未完成任务:deadline 不晚于统计日,且状态不是 done/closed/cancel。',
319
+ '8. Bug 转任务:任务 fromBug > 0;如果同一 Bug 同时出现在 Bug 和任务中,分析时应按同一事项合并看待。',
320
+ ];
321
+ if (result.notes.length > 0) {
322
+ lines.push('', 'NOTE:', ...result.notes.map((note, index) => `${index + 1}. ${note}`));
323
+ }
324
+ return lines.join('\n');
325
+ }
326
+ formatBugDetailSection(title, bugs) {
327
+ if (bugs.length === 0)
328
+ return `${title}:无`;
329
+ const lines = [`${title}:${bugs.length} 个`];
330
+ for (const bug of bugs.slice(0, 10)) {
331
+ lines.push(`- #${bug.id} ${bug.title}(负责人:${bug.ownerName},状态:${bug.statusName || bug.status},S${bug.severity}/P${bug.pri})`);
332
+ }
333
+ if (bugs.length > 10)
334
+ lines.push(`- 还有 ${bugs.length - 10} 个未展开`);
335
+ return lines.join('\n');
336
+ }
337
+ formatTaskDetailSection(title, tasks) {
338
+ if (tasks.length === 0)
339
+ return `${title}:无`;
340
+ const lines = [`${title}:${tasks.length} 个`];
341
+ for (const task of tasks.slice(0, 10)) {
342
+ const fromBug = task.fromBug > 0 ? `,来源Bug:#${task.fromBug}` : '';
343
+ lines.push(`- #${task.id} ${task.name}(负责人:${task.owner},状态:${task.status},截止:${task.deadline ?? '无'}${fromBug})`);
344
+ }
345
+ if (tasks.length > 10)
346
+ lines.push(`- 还有 ${tasks.length - 10} 个未展开`);
347
+ return lines.join('\n');
348
+ }
349
+ formatCountWithRate(count, rate) {
350
+ return count > 0 ? `${count}(${rate})` : '无';
351
+ }
352
+ formatCountWithRateOrZero(count, rate) {
353
+ return count > 0 ? `${count}(${rate})` : '0';
354
+ }
355
+ percent(count, total) {
356
+ if (total <= 0)
357
+ return '0%';
358
+ const value = (count / total) * 100;
359
+ return `${Number(value.toFixed(2))}%`;
360
+ }
361
+ resolveStatsDate(value) {
362
+ if (!value || ['today', '今天', '今日'].includes(value))
363
+ return this.formatDate(new Date());
364
+ if (['yesterday', '昨天', '昨日'].includes(value))
365
+ return this.formatDate(this.addDays(new Date(), -1));
366
+ const parsed = value.match(/^(\d{4})[-/.年](\d{1,2})[-/.月](\d{1,2})日?$/);
367
+ if (!parsed)
368
+ throw new Error(`无法解析统计日期: ${value}`);
369
+ return this.formatDate(new Date(Number(parsed[1]), Number(parsed[2]) - 1, Number(parsed[3])));
370
+ }
371
+ parseDate(value) {
372
+ const [year, month, day] = value.split('-').map(Number);
373
+ return new Date(year, month - 1, day);
374
+ }
375
+ toDateOnly(value) {
376
+ const text = this.toString(value);
377
+ return text ? text.slice(0, 10) : undefined;
378
+ }
379
+ isOnOrBefore(date, target) {
380
+ return !!date && date <= target;
381
+ }
382
+ addDays(date, days) {
383
+ const next = new Date(date);
384
+ next.setDate(next.getDate() + days);
385
+ return next;
386
+ }
387
+ formatDate(date) {
388
+ const year = date.getFullYear();
389
+ const month = String(date.getMonth() + 1).padStart(2, '0');
390
+ const day = String(date.getDate()).padStart(2, '0');
391
+ return `${year}-${month}-${day}`;
392
+ }
393
+ toString(value) {
394
+ if (typeof value === 'string')
395
+ return value;
396
+ if (typeof value === 'number')
397
+ return String(value);
398
+ if (typeof value === 'object' && value !== null) {
399
+ const record = value;
400
+ if (typeof record.realname === 'string')
401
+ return record.realname;
402
+ if (typeof record.account === 'string')
403
+ return record.account;
404
+ if (typeof record.name === 'string')
405
+ return record.name;
406
+ }
407
+ return '';
408
+ }
46
409
  }
47
410
  //# sourceMappingURL=execution.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"execution.js","sourceRoot":"","sources":["../../src/api/execution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"execution.js","sourceRoot":"","sources":["../../src/api/execution.ts"],"names":[],"mappings":"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"}
package/dist/api/index.js CHANGED
@@ -26,7 +26,7 @@ export class ZentaoApi {
26
26
  this.execution = new ExecutionApi(this.http);
27
27
  this.comment = new CommentApi(this.http);
28
28
  this.user = new UserApi(this.http);
29
- this.statistics = new StatisticsApi(this.task, this.bug);
29
+ this.statistics = new StatisticsApi(this.task, this.bug, this.http);
30
30
  this.relation = new RelationApi(this.bug, this.story);
31
31
  this.developmentContext = new DevelopmentContextApi(this.bug, this.story, this.relation);
32
32
  this.product = new ProductApi(this.http);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnD,MAAM,OAAO,SAAS;IAqBpB,YAAY,MAAoB;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;QACzD,IAAI,CAAC,QAAQ,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACtD,IAAI,CAAC,kBAAkB,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzF,IAAI,CAAC,OAAO,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,QAAQ,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;CACF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnD,MAAM,OAAO,SAAS;IAqBpB,YAAY,MAAoB;QAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,GAAG,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACpE,IAAI,CAAC,QAAQ,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACtD,IAAI,CAAC,kBAAkB,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzF,IAAI,CAAC,OAAO,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,QAAQ,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC9B,CAAC;CACF"}
@@ -1,13 +1,50 @@
1
1
  import type { BugApi } from './bug.js';
2
2
  import type { TaskApi } from './task.js';
3
+ import type { ZentaoHttpClient } from '../core/http.js';
3
4
  export declare class StatisticsApi {
4
5
  private readonly taskApi;
5
6
  private readonly bugApi;
6
- constructor(taskApi: TaskApi, bugApi: BugApi);
7
+ private readonly http;
8
+ constructor(taskApi: TaskApi, bugApi: BugApi, http: ZentaoHttpClient);
7
9
  getMyTaskStatistics(): Promise<unknown>;
8
10
  getMyBugStatistics(productId?: number): Promise<unknown>;
11
+ getMyWeeklyActivity(input: ActivityQueryInput): Promise<unknown>;
9
12
  private getAllMyBugs;
10
13
  private getAllMyTasks;
11
14
  private pickTasks;
12
15
  private pickBugs;
16
+ private getUserDynamic;
17
+ private resolveActivityRange;
18
+ private parseNaturalDateRange;
19
+ private rangeForWeek;
20
+ private rangeForRecentDays;
21
+ private rangeForPeriodDay;
22
+ private withLegacyAnchor;
23
+ private normalizeDateRange;
24
+ private parseDate;
25
+ private makeDate;
26
+ private isInDateRange;
27
+ private addDays;
28
+ private startOfDay;
29
+ private formatDate;
30
+ private findUserId;
31
+ private extractActions;
32
+ private parsePossiblyJsonString;
33
+ private collectRecords;
34
+ private normalizeAction;
35
+ private findRelatedBugId;
36
+ private isFlowAction;
37
+ private pickActivityItems;
38
+ private groupDaily;
39
+ private buildDedupedWorkItems;
40
+ private asString;
13
41
  }
42
+ interface ActivityQueryInput {
43
+ account: string;
44
+ week?: 'last' | 'this';
45
+ dateRange?: string;
46
+ startDate?: string;
47
+ endDate?: string;
48
+ days?: number;
49
+ }
50
+ export {};