github-project-manager 0.2.0 → 0.2.1

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 (63) hide show
  1. package/apps/backend/dist/modules/milestone/milestone.controller.d.ts +12 -0
  2. package/apps/backend/dist/modules/milestone/milestone.controller.js +59 -0
  3. package/apps/backend/dist/modules/milestone/milestone.controller.js.map +1 -0
  4. package/apps/backend/dist/modules/milestone/milestone.module.js +7 -2
  5. package/apps/backend/dist/modules/milestone/milestone.module.js.map +1 -1
  6. package/apps/backend/dist/modules/milestone/milestone.service.d.ts +15 -0
  7. package/apps/backend/dist/modules/milestone/milestone.service.js +75 -0
  8. package/apps/backend/dist/modules/milestone/milestone.service.js.map +1 -0
  9. package/apps/backend/dist/modules/project/project.controller.d.ts +1 -0
  10. package/apps/backend/dist/modules/project/project.controller.js +16 -0
  11. package/apps/backend/dist/modules/project/project.controller.js.map +1 -1
  12. package/apps/backend/dist/modules/project/project.entity.d.ts +2 -0
  13. package/apps/backend/dist/modules/project/project.entity.js +10 -0
  14. package/apps/backend/dist/modules/project/project.entity.js.map +1 -1
  15. package/apps/backend/dist/modules/project/project.service.d.ts +1 -0
  16. package/apps/backend/dist/modules/project/project.service.js +3 -0
  17. package/apps/backend/dist/modules/project/project.service.js.map +1 -1
  18. package/apps/backend/dist/modules/sync/github.service.d.ts +18 -0
  19. package/apps/backend/dist/modules/sync/github.service.js +14 -4
  20. package/apps/backend/dist/modules/sync/github.service.js.map +1 -1
  21. package/apps/backend/dist/modules/sync/sync.controller.d.ts +3 -2
  22. package/apps/backend/dist/modules/sync/sync.controller.js +29 -6
  23. package/apps/backend/dist/modules/sync/sync.controller.js.map +1 -1
  24. package/apps/backend/dist/modules/sync/sync.module.js +2 -1
  25. package/apps/backend/dist/modules/sync/sync.module.js.map +1 -1
  26. package/apps/backend/dist/modules/sync/sync.service.d.ts +5 -1
  27. package/apps/backend/dist/modules/sync/sync.service.js +80 -2
  28. package/apps/backend/dist/modules/sync/sync.service.js.map +1 -1
  29. package/apps/backend/dist/modules/task/task.controller.d.ts +6 -6
  30. package/apps/backend/dist/modules/task/task.controller.js +41 -27
  31. package/apps/backend/dist/modules/task/task.controller.js.map +1 -1
  32. package/apps/backend/dist/modules/task/task.entity.d.ts +10 -1
  33. package/apps/backend/dist/modules/task/task.entity.js +27 -0
  34. package/apps/backend/dist/modules/task/task.entity.js.map +1 -1
  35. package/apps/backend/dist/modules/task/task.service.js +2 -2
  36. package/apps/backend/dist/modules/task/task.service.js.map +1 -1
  37. package/apps/cli/dist/commands/hooks.d.ts +11 -0
  38. package/apps/cli/dist/commands/hooks.js +113 -0
  39. package/apps/cli/dist/commands/hooks.js.map +1 -0
  40. package/apps/cli/dist/commands/init.d.ts +4 -1
  41. package/apps/cli/dist/commands/init.js +16 -1
  42. package/apps/cli/dist/commands/init.js.map +1 -1
  43. package/apps/cli/dist/hooks/hook-registry.d.ts +9 -0
  44. package/apps/cli/dist/hooks/hook-registry.js +29 -0
  45. package/apps/cli/dist/hooks/hook-registry.js.map +1 -0
  46. package/apps/cli/dist/index.js +23 -2
  47. package/apps/cli/dist/index.js.map +1 -1
  48. package/apps/cli/dist/utils/settings.d.ts +10 -0
  49. package/apps/cli/dist/utils/settings.js +93 -0
  50. package/apps/cli/dist/utils/settings.js.map +1 -0
  51. package/apps/cli/dist/utils/template.d.ts +1 -0
  52. package/apps/cli/dist/utils/template.js +20 -0
  53. package/apps/cli/dist/utils/template.js.map +1 -0
  54. package/apps/frontend/dist/assets/index-C-VkfAuU.css +1 -0
  55. package/apps/frontend/dist/assets/index-CJ-smTcW.js +92 -0
  56. package/apps/frontend/dist/index.html +2 -2
  57. package/package.json +2 -2
  58. package/templates/claude-settings-hooks.json +35 -0
  59. package/templates/hooks/gpm-commit-linker.sh +72 -0
  60. package/templates/hooks/gpm-response-suggest.sh +63 -0
  61. package/templates/hooks/gpm-session-briefing.sh +104 -0
  62. package/apps/frontend/dist/assets/index-5kQElBCK.css +0 -1
  63. package/apps/frontend/dist/assets/index-DzMlDUgv.js +0 -60
@@ -17,20 +17,58 @@ const common_1 = require("@nestjs/common");
17
17
  const typeorm_1 = require("@nestjs/typeorm");
18
18
  const typeorm_2 = require("typeorm");
19
19
  const task_entity_1 = require("../task/task.entity");
20
+ const milestone_entity_1 = require("../milestone/milestone.entity");
20
21
  const sync_log_entity_1 = require("./sync-log.entity");
21
22
  const github_service_1 = require("./github.service");
22
23
  const project_service_1 = require("../project/project.service");
23
24
  let SyncService = class SyncService {
24
25
  taskRepo;
25
26
  syncLogRepo;
27
+ milestoneRepo;
26
28
  githubService;
27
29
  projectService;
28
- constructor(taskRepo, syncLogRepo, githubService, projectService) {
30
+ constructor(taskRepo, syncLogRepo, milestoneRepo, githubService, projectService) {
29
31
  this.taskRepo = taskRepo;
30
32
  this.syncLogRepo = syncLogRepo;
33
+ this.milestoneRepo = milestoneRepo;
31
34
  this.githubService = githubService;
32
35
  this.projectService = projectService;
33
36
  }
37
+ async batchUpsertMilestones(projectId, items) {
38
+ const ghMilestones = new Map();
39
+ for (const item of items) {
40
+ if (item.milestone) {
41
+ ghMilestones.set(item.milestone.id, item.milestone);
42
+ }
43
+ }
44
+ const result = new Map();
45
+ if (ghMilestones.size === 0)
46
+ return result;
47
+ const existing = await this.milestoneRepo.findBy({ projectId });
48
+ const existingMap = new Map(existing.map((m) => [m.githubMilestoneId, m]));
49
+ for (const [ghId, gh] of ghMilestones) {
50
+ let milestone = existingMap.get(ghId);
51
+ if (milestone) {
52
+ milestone.title = gh.title;
53
+ milestone.description = gh.description ?? '';
54
+ milestone.dueDate = gh.dueOn ? new Date(gh.dueOn) : null;
55
+ milestone.state = gh.state;
56
+ }
57
+ else {
58
+ milestone = this.milestoneRepo.create({
59
+ githubMilestoneId: ghId,
60
+ projectId,
61
+ title: gh.title,
62
+ description: gh.description ?? '',
63
+ dueDate: gh.dueOn ? new Date(gh.dueOn) : undefined,
64
+ state: gh.state,
65
+ });
66
+ }
67
+ const saved = await this.milestoneRepo.save(milestone);
68
+ result.set(ghId, saved.id);
69
+ }
70
+ return result;
71
+ }
34
72
  async pullSync(projectDbId) {
35
73
  const project = await this.projectService.findById(projectDbId);
36
74
  if (!project)
@@ -48,6 +86,7 @@ let SyncService = class SyncService {
48
86
  let created = 0;
49
87
  let updated = 0;
50
88
  const remoteItemIds = [];
89
+ const milestoneMap = await this.batchUpsertMilestones(project.id, items.filter((i) => i.content).map((i) => ({ milestone: i.content.milestone })));
51
90
  for (const item of items) {
52
91
  if (!item.content)
53
92
  continue;
@@ -58,7 +97,18 @@ let SyncService = class SyncService {
58
97
  : 'ISSUE';
59
98
  const statusField = item.fieldValues.nodes.find((fv) => fv.field?.name === 'Status' && fv.name);
60
99
  const status = statusField?.name || 'No Status';
61
- const assignees = item.content.assignees?.nodes.map((a) => a.login) || [];
100
+ const assignees = item.content.assignees?.nodes.map((a) => ({
101
+ login: a.login,
102
+ avatarUrl: a.avatarUrl,
103
+ })) || [];
104
+ const authorLogin = item.content.author?.login ?? null;
105
+ const authorAvatarUrl = item.content.author?.avatarUrl ?? null;
106
+ const branch = contentType === 'PULL_REQUEST'
107
+ ? item.content.headRefName ?? null
108
+ : item.content.linkedBranches?.nodes?.[0]?.ref?.name ?? null;
109
+ const milestoneId = item.content.milestone
110
+ ? milestoneMap.get(item.content.milestone.id) ?? null
111
+ : null;
62
112
  remoteItemIds.push(item.id);
63
113
  const existing = await this.taskRepo.findOneBy({
64
114
  githubItemId: item.id,
@@ -70,6 +120,10 @@ let SyncService = class SyncService {
70
120
  existing.status = status;
71
121
  existing.contentType = contentType;
72
122
  existing.assignees = assignees;
123
+ existing.branch = branch;
124
+ existing.authorLogin = authorLogin;
125
+ existing.authorAvatarUrl = authorAvatarUrl;
126
+ existing.milestoneId = milestoneId;
73
127
  existing.githubUpdatedAt = item.content.updatedAt ? new Date(item.content.updatedAt) : existing.githubUpdatedAt;
74
128
  existing.syncedAt = new Date();
75
129
  existing.isDirty = false;
@@ -86,6 +140,10 @@ let SyncService = class SyncService {
86
140
  task.body = item.content.body;
87
141
  task.status = status;
88
142
  task.assignees = assignees;
143
+ task.branch = branch;
144
+ task.authorLogin = authorLogin;
145
+ task.authorAvatarUrl = authorAvatarUrl;
146
+ task.milestoneId = milestoneId;
89
147
  if (item.content.updatedAt) {
90
148
  task.githubCreatedAt = new Date(item.content.updatedAt);
91
149
  task.githubUpdatedAt = new Date(item.content.updatedAt);
@@ -165,6 +223,24 @@ let SyncService = class SyncService {
165
223
  task.syncedAt = new Date();
166
224
  return this.taskRepo.save(task);
167
225
  }
226
+ async getStatusOptions(projectDbId, force = false) {
227
+ const project = await this.projectService.findById(projectDbId);
228
+ if (!project)
229
+ throw new common_1.NotFoundException(`Project #${projectDbId} not found`);
230
+ const ONE_DAY = 24 * 60 * 60 * 1000;
231
+ const isFresh = project.statusOptions?.length
232
+ && project.statusOptionsFetchedAt
233
+ && Date.now() - new Date(project.statusOptionsFetchedAt).getTime() < ONE_DAY;
234
+ if (!force && isFresh) {
235
+ return project.statusOptions;
236
+ }
237
+ const { statusOptions } = await this.githubService.getProjectFields(project.owner, project.ownerType, project.projectNumber);
238
+ const names = statusOptions.map((o) => o.name);
239
+ project.statusOptions = names;
240
+ project.statusOptionsFetchedAt = new Date();
241
+ await this.projectService.save(project);
242
+ return names;
243
+ }
168
244
  async deleteTaskOnGitHub(projectDbId, taskId) {
169
245
  const project = await this.projectService.findById(projectDbId);
170
246
  if (!project)
@@ -185,7 +261,9 @@ exports.SyncService = SyncService = __decorate([
185
261
  (0, common_1.Injectable)(),
186
262
  __param(0, (0, typeorm_1.InjectRepository)(task_entity_1.Task)),
187
263
  __param(1, (0, typeorm_1.InjectRepository)(sync_log_entity_1.SyncLog)),
264
+ __param(2, (0, typeorm_1.InjectRepository)(milestone_entity_1.Milestone)),
188
265
  __metadata("design:paramtypes", [typeorm_2.Repository,
266
+ typeorm_2.Repository,
189
267
  typeorm_2.Repository,
190
268
  github_service_1.GitHubService,
191
269
  project_service_1.ProjectService])
@@ -1 +1 @@
1
- {"version":3,"file":"sync.service.js","sourceRoot":"","sources":["../../../src/modules/sync/sync.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.service.js","sourceRoot":"","sources":["../../../src/modules/sync/sync.service.ts"],"names":[],"mappings":"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"}
@@ -5,19 +5,19 @@ export declare class TaskController {
5
5
  private readonly taskService;
6
6
  private readonly syncService;
7
7
  constructor(taskService: TaskService, syncService: SyncService);
8
- private getProject;
9
- findAll(req: Request): Promise<import("./task.entity").Task[]>;
10
- findOne(id: number, req: Request): Promise<import("./task.entity").Task>;
8
+ private getProjectId;
9
+ findAll(req: Request, projectId?: string): Promise<import("./task.entity").Task[]>;
10
+ findOne(id: number, projectId: string | undefined, req: Request): Promise<import("./task.entity").Task>;
11
11
  create(body: {
12
12
  title: string;
13
13
  body?: string;
14
- }, req: Request): Promise<import("./task.entity").Task>;
14
+ }, projectId: string | undefined, req: Request): Promise<import("./task.entity").Task>;
15
15
  update(id: number, body: Partial<{
16
16
  title: string;
17
17
  body: string;
18
18
  status: string;
19
- }>, req: Request): Promise<import("./task.entity").Task>;
20
- delete(id: number, req: Request): Promise<{
19
+ }>, projectId: string | undefined, req: Request): Promise<import("./task.entity").Task>;
20
+ delete(id: number, projectId: string | undefined, req: Request): Promise<{
21
21
  deleted: boolean;
22
22
  }>;
23
23
  }
@@ -23,40 +23,49 @@ let TaskController = class TaskController {
23
23
  this.taskService = taskService;
24
24
  this.syncService = syncService;
25
25
  }
26
- getProject(req) {
27
- return req.project;
26
+ getProjectId(req, queryProjectId) {
27
+ const project = req.project;
28
+ if (project?.id)
29
+ return project.id;
30
+ if (queryProjectId) {
31
+ const parsed = Number(queryProjectId);
32
+ if (Number.isNaN(parsed))
33
+ throw new common_1.BadRequestException('projectId must be a number');
34
+ return parsed;
35
+ }
36
+ throw new common_1.BadRequestException('projectId is required');
28
37
  }
29
- async findAll(req) {
30
- const project = this.getProject(req);
31
- return this.taskService.findAll(project.id);
38
+ async findAll(req, projectId) {
39
+ const resolvedProjectId = this.getProjectId(req, projectId);
40
+ return this.taskService.findAll(resolvedProjectId);
32
41
  }
33
- async findOne(id, req) {
34
- const project = this.getProject(req);
35
- const task = await this.taskService.findById(id, project.id);
42
+ async findOne(id, projectId, req) {
43
+ const resolvedProjectId = this.getProjectId(req, projectId);
44
+ const task = await this.taskService.findById(id, resolvedProjectId);
36
45
  if (!task)
37
46
  throw new common_1.NotFoundException(`Task #${id} not found`);
38
47
  return task;
39
48
  }
40
- async create(body, req) {
41
- const project = this.getProject(req);
42
- return this.syncService.createTaskOnGitHub(project.id, body.title, body.body);
49
+ async create(body, projectId, req) {
50
+ const resolvedProjectId = this.getProjectId(req, projectId);
51
+ return this.syncService.createTaskOnGitHub(resolvedProjectId, body.title, body.body);
43
52
  }
44
- async update(id, body, req) {
45
- const project = this.getProject(req);
53
+ async update(id, body, projectId, req) {
54
+ const resolvedProjectId = this.getProjectId(req, projectId);
46
55
  if (body.status) {
47
- const task = await this.syncService.updateTaskStatusOnGitHub(project.id, id, body.status);
56
+ const task = await this.syncService.updateTaskStatusOnGitHub(resolvedProjectId, id, body.status);
48
57
  if (!task)
49
58
  throw new common_1.NotFoundException(`Task #${id} not found`);
50
59
  return task;
51
60
  }
52
- const task = await this.taskService.update(id, project.id, body);
61
+ const task = await this.taskService.update(id, resolvedProjectId, body);
53
62
  if (!task)
54
63
  throw new common_1.NotFoundException(`Task #${id} not found`);
55
64
  return task;
56
65
  }
57
- async delete(id, req) {
58
- const project = this.getProject(req);
59
- const deleted = await this.syncService.deleteTaskOnGitHub(project.id, id);
66
+ async delete(id, projectId, req) {
67
+ const resolvedProjectId = this.getProjectId(req, projectId);
68
+ const deleted = await this.syncService.deleteTaskOnGitHub(resolvedProjectId, id);
60
69
  if (!deleted)
61
70
  throw new common_1.NotFoundException(`Task #${id} not found`);
62
71
  return { deleted: true };
@@ -66,41 +75,46 @@ exports.TaskController = TaskController;
66
75
  __decorate([
67
76
  (0, common_1.Get)(),
68
77
  __param(0, (0, common_1.Req)()),
78
+ __param(1, (0, common_1.Query)('projectId')),
69
79
  __metadata("design:type", Function),
70
- __metadata("design:paramtypes", [Object]),
80
+ __metadata("design:paramtypes", [Object, String]),
71
81
  __metadata("design:returntype", Promise)
72
82
  ], TaskController.prototype, "findAll", null);
73
83
  __decorate([
74
84
  (0, common_1.Get)(':id'),
75
85
  __param(0, (0, common_1.Param)('id', common_1.ParseIntPipe)),
76
- __param(1, (0, common_1.Req)()),
86
+ __param(1, (0, common_1.Query)('projectId')),
87
+ __param(2, (0, common_1.Req)()),
77
88
  __metadata("design:type", Function),
78
- __metadata("design:paramtypes", [Number, Object]),
89
+ __metadata("design:paramtypes", [Number, Object, Object]),
79
90
  __metadata("design:returntype", Promise)
80
91
  ], TaskController.prototype, "findOne", null);
81
92
  __decorate([
82
93
  (0, common_1.Post)(),
83
94
  __param(0, (0, common_1.Body)()),
84
- __param(1, (0, common_1.Req)()),
95
+ __param(1, (0, common_1.Query)('projectId')),
96
+ __param(2, (0, common_1.Req)()),
85
97
  __metadata("design:type", Function),
86
- __metadata("design:paramtypes", [Object, Object]),
98
+ __metadata("design:paramtypes", [Object, Object, Object]),
87
99
  __metadata("design:returntype", Promise)
88
100
  ], TaskController.prototype, "create", null);
89
101
  __decorate([
90
102
  (0, common_1.Patch)(':id'),
91
103
  __param(0, (0, common_1.Param)('id', common_1.ParseIntPipe)),
92
104
  __param(1, (0, common_1.Body)()),
93
- __param(2, (0, common_1.Req)()),
105
+ __param(2, (0, common_1.Query)('projectId')),
106
+ __param(3, (0, common_1.Req)()),
94
107
  __metadata("design:type", Function),
95
- __metadata("design:paramtypes", [Number, Object, Object]),
108
+ __metadata("design:paramtypes", [Number, Object, Object, Object]),
96
109
  __metadata("design:returntype", Promise)
97
110
  ], TaskController.prototype, "update", null);
98
111
  __decorate([
99
112
  (0, common_1.Delete)(':id'),
100
113
  __param(0, (0, common_1.Param)('id', common_1.ParseIntPipe)),
101
- __param(1, (0, common_1.Req)()),
114
+ __param(1, (0, common_1.Query)('projectId')),
115
+ __param(2, (0, common_1.Req)()),
102
116
  __metadata("design:type", Function),
103
- __metadata("design:paramtypes", [Number, Object]),
117
+ __metadata("design:paramtypes", [Number, Object, Object]),
104
118
  __metadata("design:returntype", Promise)
105
119
  ], TaskController.prototype, "delete", null);
106
120
  exports.TaskController = TaskController = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"task.controller.js","sourceRoot":"","sources":["../../../src/modules/task/task.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task.controller.js","sourceRoot":"","sources":["../../../src/modules/task/task.controller.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { Project } from '../project/project.entity';
2
2
  import { Label } from '../label/label.entity';
3
+ import { Milestone } from '../milestone/milestone.entity';
3
4
  export declare class Task {
4
5
  id: number;
5
6
  projectId: number;
@@ -10,7 +11,10 @@ export declare class Task {
10
11
  title: string;
11
12
  body: string;
12
13
  status: string;
13
- assignees: string[];
14
+ assignees: Array<{
15
+ login: string;
16
+ avatarUrl: string;
17
+ }>;
14
18
  priority: string;
15
19
  createdAt: Date;
16
20
  updatedAt: Date;
@@ -18,5 +22,10 @@ export declare class Task {
18
22
  githubUpdatedAt: Date;
19
23
  syncedAt: Date;
20
24
  isDirty: boolean;
25
+ branch: string | null;
26
+ authorLogin: string | null;
27
+ authorAvatarUrl: string | null;
28
+ milestoneId: number | null;
29
+ milestone: Milestone;
21
30
  labels: Label[];
22
31
  }
@@ -13,6 +13,7 @@ exports.Task = void 0;
13
13
  const typeorm_1 = require("typeorm");
14
14
  const project_entity_1 = require("../project/project.entity");
15
15
  const label_entity_1 = require("../label/label.entity");
16
+ const milestone_entity_1 = require("../milestone/milestone.entity");
16
17
  let Task = class Task {
17
18
  id;
18
19
  projectId;
@@ -31,6 +32,11 @@ let Task = class Task {
31
32
  githubUpdatedAt;
32
33
  syncedAt;
33
34
  isDirty;
35
+ branch;
36
+ authorLogin;
37
+ authorAvatarUrl;
38
+ milestoneId;
39
+ milestone;
34
40
  labels;
35
41
  };
36
42
  exports.Task = Task;
@@ -103,6 +109,27 @@ __decorate([
103
109
  (0, typeorm_1.Column)({ name: 'is_dirty', default: false }),
104
110
  __metadata("design:type", Boolean)
105
111
  ], Task.prototype, "isDirty", void 0);
112
+ __decorate([
113
+ (0, typeorm_1.Column)({ type: 'varchar', nullable: true }),
114
+ __metadata("design:type", Object)
115
+ ], Task.prototype, "branch", void 0);
116
+ __decorate([
117
+ (0, typeorm_1.Column)({ name: 'author_login', type: 'varchar', nullable: true }),
118
+ __metadata("design:type", Object)
119
+ ], Task.prototype, "authorLogin", void 0);
120
+ __decorate([
121
+ (0, typeorm_1.Column)({ name: 'author_avatar_url', type: 'varchar', nullable: true }),
122
+ __metadata("design:type", Object)
123
+ ], Task.prototype, "authorAvatarUrl", void 0);
124
+ __decorate([
125
+ (0, typeorm_1.Column)({ name: 'milestone_id', nullable: true }),
126
+ __metadata("design:type", Object)
127
+ ], Task.prototype, "milestoneId", void 0);
128
+ __decorate([
129
+ (0, typeorm_1.ManyToOne)(() => milestone_entity_1.Milestone, { nullable: true }),
130
+ (0, typeorm_1.JoinColumn)({ name: 'milestone_id' }),
131
+ __metadata("design:type", milestone_entity_1.Milestone)
132
+ ], Task.prototype, "milestone", void 0);
106
133
  __decorate([
107
134
  (0, typeorm_1.ManyToMany)(() => label_entity_1.Label),
108
135
  (0, typeorm_1.JoinTable)({
@@ -1 +1 @@
1
- {"version":3,"file":"task.entity.js","sourceRoot":"","sources":["../../../src/modules/task/task.entity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task.entity.js","sourceRoot":"","sources":["../../../src/modules/task/task.entity.ts"],"names":[],"mappings":"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"}
@@ -25,14 +25,14 @@ let TaskService = class TaskService {
25
25
  async findAll(projectId) {
26
26
  return this.taskRepo.find({
27
27
  where: { projectId },
28
- relations: ['labels'],
28
+ relations: ['labels', 'milestone'],
29
29
  order: { createdAt: 'DESC' },
30
30
  });
31
31
  }
32
32
  async findById(id, projectId) {
33
33
  return this.taskRepo.findOne({
34
34
  where: { id, projectId },
35
- relations: ['labels'],
35
+ relations: ['labels', 'milestone'],
36
36
  });
37
37
  }
38
38
  async create(projectId, data) {
@@ -1 +1 @@
1
- {"version":3,"file":"task.service.js","sourceRoot":"","sources":["../../../src/modules/task/task.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6CAAmD;AACnD,qCAAqC;AACrC,+CAAqC;AAG9B,IAAM,WAAW,GAAjB,MAAM,WAAW;IAGH;IAFnB,YAEmB,QAA0B;QAA1B,aAAQ,GAAR,QAAQ,CAAkB;IAC1C,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,SAAiB;QAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACxB,KAAK,EAAE,EAAE,SAAS,EAAE;YACpB,SAAS,EAAE,CAAC,QAAQ,CAAC;YACrB,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAAU,EAAE,SAAiB;QAC1C,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC3B,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;YACxB,SAAS,EAAE,CAAC,QAAQ,CAAC;SACtB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,SAAiB,EAAE,IAAmB;QACjD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,SAAiB,EAAE,IAAmB;QAC7D,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1E,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,SAAiB;QACxC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;CACF,CAAA;AAnCY,kCAAW;sBAAX,WAAW;IADvB,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,0BAAgB,EAAC,kBAAI,CAAC,CAAA;qCACI,oBAAU;GAH5B,WAAW,CAmCvB"}
1
+ {"version":3,"file":"task.service.js","sourceRoot":"","sources":["../../../src/modules/task/task.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6CAAmD;AACnD,qCAAqC;AACrC,+CAAqC;AAG9B,IAAM,WAAW,GAAjB,MAAM,WAAW;IAGH;IAFnB,YAEmB,QAA0B;QAA1B,aAAQ,GAAR,QAAQ,CAAkB;IAC1C,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,SAAiB;QAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACxB,KAAK,EAAE,EAAE,SAAS,EAAE;YACpB,SAAS,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC;YAClC,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;SAC7B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAAU,EAAE,SAAiB;QAC1C,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC3B,KAAK,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;YACxB,SAAS,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC;SACnC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,SAAiB,EAAE,IAAmB;QACjD,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QACzE,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,SAAiB,EAAE,IAAmB;QAC7D,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1E,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,SAAiB;QACxC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;QAC7D,OAAO,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACpC,CAAC;CACF,CAAA;AAnCY,kCAAW;sBAAX,WAAW;IADvB,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,0BAAgB,EAAC,kBAAI,CAAC,CAAA;qCACI,oBAAU;GAH5B,WAAW,CAmCvB"}
@@ -0,0 +1,11 @@
1
+ import { HookDefinition } from '../hooks/hook-registry';
2
+ export interface InstallResult {
3
+ filesInstalled: number;
4
+ settingsChanged: boolean;
5
+ }
6
+ export declare function installHookFiles(hooks: HookDefinition[], options?: {
7
+ silent?: boolean;
8
+ }): InstallResult;
9
+ export declare function runHooksList(): void;
10
+ export declare function runHooksInstall(name?: string): void;
11
+ export declare function runHooksRemove(name?: string): void;
@@ -0,0 +1,113 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.installHookFiles = installHookFiles;
4
+ exports.runHooksList = runHooksList;
5
+ exports.runHooksInstall = runHooksInstall;
6
+ exports.runHooksRemove = runHooksRemove;
7
+ const fs_1 = require("fs");
8
+ const path_1 = require("path");
9
+ const hook_registry_1 = require("../hooks/hook-registry");
10
+ const settings_1 = require("../utils/settings");
11
+ const template_1 = require("../utils/template");
12
+ function installHookFiles(hooks, options = {}) {
13
+ const cwd = process.cwd();
14
+ const hooksDir = (0, path_1.join)(cwd, '.claude', 'hooks');
15
+ const settingsPath = (0, path_1.join)(cwd, '.claude', 'settings.json');
16
+ const templateDir = (0, template_1.findTemplateDir)();
17
+ if (!templateDir) {
18
+ if (!options.silent) {
19
+ console.error('✗ 템플릿 디렉토리를 찾을 수 없습니다.');
20
+ }
21
+ return { filesInstalled: 0, settingsChanged: false };
22
+ }
23
+ (0, fs_1.mkdirSync)(hooksDir, { recursive: true });
24
+ let installed = 0;
25
+ for (const hook of hooks) {
26
+ const dest = (0, path_1.join)(hooksDir, hook.fileName);
27
+ if ((0, fs_1.existsSync)(dest)) {
28
+ if (!options.silent) {
29
+ console.log(` - ${hook.name}: 이미 존재 (건너뜀)`);
30
+ }
31
+ continue;
32
+ }
33
+ const src = (0, path_1.join)(templateDir, 'hooks', hook.fileName);
34
+ if (!(0, fs_1.existsSync)(src)) {
35
+ if (!options.silent) {
36
+ console.log(` ⚠ ${hook.name}: 템플릿 없음`);
37
+ }
38
+ continue;
39
+ }
40
+ (0, fs_1.copyFileSync)(src, dest);
41
+ (0, fs_1.chmodSync)(dest, 0o755);
42
+ if (!options.silent) {
43
+ console.log(` ✓ ${hook.name} 설치됨`);
44
+ }
45
+ installed++;
46
+ }
47
+ const settingsChanged = (0, settings_1.mergeHookSettings)(settingsPath, hooks);
48
+ if (settingsChanged && !options.silent) {
49
+ console.log('✓ settings.json에 hooks 등록 완료');
50
+ }
51
+ return { filesInstalled: installed, settingsChanged };
52
+ }
53
+ function runHooksList() {
54
+ const cwd = process.cwd();
55
+ const hooksDir = (0, path_1.join)(cwd, '.claude', 'hooks');
56
+ const settingsPath = (0, path_1.join)(cwd, '.claude', 'settings.json');
57
+ const hooks = (0, settings_1.getInstalledHooks)(hooksDir, settingsPath, hook_registry_1.HOOK_REGISTRY);
58
+ console.log('GPM Claude Code Hooks:\n');
59
+ for (const hook of hooks) {
60
+ const installed = hook.fileInstalled && hook.settingsRegistered;
61
+ const icon = installed ? '✓' : '✗';
62
+ console.log(` ${icon} ${hook.name} — ${hook.description}`);
63
+ if (!installed) {
64
+ if (!hook.fileInstalled)
65
+ console.log(` 파일 없음: .claude/hooks/`);
66
+ if (!hook.settingsRegistered)
67
+ console.log(` 설정 없음: .claude/settings.json`);
68
+ }
69
+ }
70
+ }
71
+ function runHooksInstall(name) {
72
+ const hooks = name
73
+ ? [(0, hook_registry_1.findHookByName)(name)].filter(Boolean)
74
+ : hook_registry_1.HOOK_REGISTRY;
75
+ if (name && hooks.length === 0) {
76
+ console.error(`✗ '${name}' hook을 찾을 수 없습니다.`);
77
+ console.log(`사용 가능: ${hook_registry_1.HOOK_REGISTRY.map((h) => h.name).join(', ')}`);
78
+ process.exit(1);
79
+ }
80
+ const result = installHookFiles(hooks);
81
+ if (result.filesInstalled === 0 && !result.settingsChanged) {
82
+ console.log('모든 hooks가 이미 설치되어 있습니다.');
83
+ }
84
+ }
85
+ function runHooksRemove(name) {
86
+ const cwd = process.cwd();
87
+ const hooksDir = (0, path_1.join)(cwd, '.claude', 'hooks');
88
+ const settingsPath = (0, path_1.join)(cwd, '.claude', 'settings.json');
89
+ const hooks = name
90
+ ? [(0, hook_registry_1.findHookByName)(name)].filter(Boolean)
91
+ : hook_registry_1.HOOK_REGISTRY;
92
+ if (name && hooks.length === 0) {
93
+ console.error(`✗ '${name}' hook을 찾을 수 없습니다.`);
94
+ process.exit(1);
95
+ }
96
+ let removed = 0;
97
+ for (const hook of hooks) {
98
+ const filePath = (0, path_1.join)(hooksDir, hook.fileName);
99
+ if ((0, fs_1.existsSync)(filePath)) {
100
+ (0, fs_1.unlinkSync)(filePath);
101
+ console.log(` ✓ ${hook.name} 제거됨`);
102
+ removed++;
103
+ }
104
+ }
105
+ const unregistered = (0, settings_1.removeHookSettings)(settingsPath, hooks);
106
+ if (unregistered) {
107
+ console.log('✓ settings.json에서 hooks 제거 완료');
108
+ }
109
+ if (removed === 0 && !unregistered) {
110
+ console.log('제거할 hooks가 없습니다.');
111
+ }
112
+ }
113
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/commands/hooks.ts"],"names":[],"mappings":"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"}
@@ -10,5 +10,8 @@ interface RepoInfo {
10
10
  repo: string;
11
11
  }
12
12
  export declare function getRepoFromGitRemote(cwd: string): RepoInfo | null;
13
- export declare function runInit(): Promise<void>;
13
+ interface InitOptions {
14
+ hooks?: boolean;
15
+ }
16
+ export declare function runInit(options?: InitOptions): Promise<void>;
14
17
  export {};