@devflow-tools/server 0.15.0 → 0.16.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 (119) hide show
  1. package/README.md +3 -3
  2. package/bin/devflow-server.js +2 -0
  3. package/dist/app.module.d.ts.map +1 -1
  4. package/dist/app.module.js +4 -0
  5. package/dist/app.module.js.map +1 -1
  6. package/dist/auth/api-key.guard.d.ts.map +1 -1
  7. package/dist/auth/api-key.guard.js +11 -5
  8. package/dist/auth/api-key.guard.js.map +1 -1
  9. package/dist/benchmark/benchmark.controller.d.ts +7 -5
  10. package/dist/benchmark/benchmark.controller.d.ts.map +1 -1
  11. package/dist/benchmark/benchmark.controller.js +43 -4
  12. package/dist/benchmark/benchmark.controller.js.map +1 -1
  13. package/dist/benchmark/benchmark.service.d.ts +7 -9
  14. package/dist/benchmark/benchmark.service.d.ts.map +1 -1
  15. package/dist/benchmark/benchmark.service.js +27 -39
  16. package/dist/benchmark/benchmark.service.js.map +1 -1
  17. package/dist/common/dto.d.ts +0 -4
  18. package/dist/common/dto.d.ts.map +1 -1
  19. package/dist/common/http-exception.filter.d.ts.map +1 -1
  20. package/dist/common/http-exception.filter.js +4 -0
  21. package/dist/common/http-exception.filter.js.map +1 -1
  22. package/dist/context/context.controller.d.ts +2 -2
  23. package/dist/context/context.controller.d.ts.map +1 -1
  24. package/dist/context/context.controller.js +3 -0
  25. package/dist/context/context.controller.js.map +1 -1
  26. package/dist/context/context.controller.spec.js +2 -0
  27. package/dist/context/context.controller.spec.js.map +1 -1
  28. package/dist/context/context.service.d.ts +6 -13
  29. package/dist/context/context.service.d.ts.map +1 -1
  30. package/dist/context/context.service.js +30 -13
  31. package/dist/context/context.service.js.map +1 -1
  32. package/dist/database/database.module.d.ts.map +1 -1
  33. package/dist/database/database.module.js +2 -7
  34. package/dist/database/database.module.js.map +1 -1
  35. package/dist/governance/governance.controller.d.ts +16 -0
  36. package/dist/governance/governance.controller.d.ts.map +1 -0
  37. package/dist/governance/governance.controller.js +76 -0
  38. package/dist/governance/governance.controller.js.map +1 -0
  39. package/dist/governance/governance.module.d.ts +3 -0
  40. package/dist/governance/governance.module.d.ts.map +1 -0
  41. package/dist/governance/governance.module.js +16 -0
  42. package/dist/governance/governance.module.js.map +1 -0
  43. package/dist/governance/governance.service.d.ts +19 -0
  44. package/dist/governance/governance.service.d.ts.map +1 -0
  45. package/dist/governance/governance.service.js +169 -0
  46. package/dist/governance/governance.service.js.map +1 -0
  47. package/dist/knowledge/knowledge.controller.d.ts +6 -0
  48. package/dist/knowledge/knowledge.controller.d.ts.map +1 -1
  49. package/dist/knowledge/knowledge.controller.js +14 -0
  50. package/dist/knowledge/knowledge.controller.js.map +1 -1
  51. package/dist/knowledge/knowledge.service.d.ts +3 -1
  52. package/dist/knowledge/knowledge.service.d.ts.map +1 -1
  53. package/dist/knowledge/knowledge.service.js +7 -1
  54. package/dist/knowledge/knowledge.service.js.map +1 -1
  55. package/dist/live/live.controller.d.ts +5 -0
  56. package/dist/live/live.controller.d.ts.map +1 -0
  57. package/dist/live/live.controller.js +52 -0
  58. package/dist/live/live.controller.js.map +1 -0
  59. package/dist/live/live.controller.spec.d.ts +2 -0
  60. package/dist/live/live.controller.spec.d.ts.map +1 -0
  61. package/dist/live/live.controller.spec.js +25 -0
  62. package/dist/live/live.controller.spec.js.map +1 -0
  63. package/dist/live/live.module.d.ts +3 -0
  64. package/dist/live/live.module.d.ts.map +1 -0
  65. package/dist/live/live.module.js +15 -0
  66. package/dist/live/live.module.js.map +1 -0
  67. package/dist/main.d.ts.map +1 -1
  68. package/dist/main.js +25 -3
  69. package/dist/main.js.map +1 -1
  70. package/dist/memory/memory.controller.d.ts +13 -28
  71. package/dist/memory/memory.controller.d.ts.map +1 -1
  72. package/dist/memory/memory.controller.js +85 -24
  73. package/dist/memory/memory.controller.js.map +1 -1
  74. package/dist/memory/memory.service.d.ts +8 -32
  75. package/dist/memory/memory.service.d.ts.map +1 -1
  76. package/dist/memory/memory.service.js +41 -45
  77. package/dist/memory/memory.service.js.map +1 -1
  78. package/dist/projects/projects.controller.d.ts +9 -2
  79. package/dist/projects/projects.controller.d.ts.map +1 -1
  80. package/dist/projects/projects.controller.js +42 -10
  81. package/dist/projects/projects.controller.js.map +1 -1
  82. package/dist/projects/projects.controller.spec.js +59 -16
  83. package/dist/projects/projects.controller.spec.js.map +1 -1
  84. package/dist/projects/projects.module.d.ts.map +1 -1
  85. package/dist/projects/projects.module.js +10 -2
  86. package/dist/projects/projects.module.js.map +1 -1
  87. package/dist/projects/projects.service.d.ts +7 -39
  88. package/dist/projects/projects.service.d.ts.map +1 -1
  89. package/dist/projects/projects.service.js +39 -19
  90. package/dist/projects/projects.service.js.map +1 -1
  91. package/dist/projects/projects.service.spec.d.ts +2 -0
  92. package/dist/projects/projects.service.spec.d.ts.map +1 -0
  93. package/dist/projects/projects.service.spec.js +99 -0
  94. package/dist/projects/projects.service.spec.js.map +1 -0
  95. package/dist/retrieval-contract.spec.d.ts +2 -0
  96. package/dist/retrieval-contract.spec.d.ts.map +1 -0
  97. package/dist/retrieval-contract.spec.js +53 -0
  98. package/dist/retrieval-contract.spec.js.map +1 -0
  99. package/dist/telemetry/telemetry.controller.d.ts +1 -5
  100. package/dist/telemetry/telemetry.controller.d.ts.map +1 -1
  101. package/dist/telemetry/telemetry.controller.js +3 -14
  102. package/dist/telemetry/telemetry.controller.js.map +1 -1
  103. package/dist/telemetry/telemetry.controller.spec.js +8 -2
  104. package/dist/telemetry/telemetry.controller.spec.js.map +1 -1
  105. package/dist/telemetry/telemetry.service.d.ts +1 -0
  106. package/dist/telemetry/telemetry.service.d.ts.map +1 -1
  107. package/dist/telemetry/telemetry.service.js +17 -48
  108. package/dist/telemetry/telemetry.service.js.map +1 -1
  109. package/dist/workflow/workflow.controller.d.ts +6 -0
  110. package/dist/workflow/workflow.controller.d.ts.map +1 -1
  111. package/dist/workflow/workflow.service.d.ts +6 -0
  112. package/dist/workflow/workflow.service.d.ts.map +1 -1
  113. package/dist/workflow/workflow.service.js +13 -5
  114. package/dist/workflow/workflow.service.js.map +1 -1
  115. package/package.json +16 -12
  116. package/dist/common/root-path.decorator.d.ts +0 -2
  117. package/dist/common/root-path.decorator.d.ts.map +0 -1
  118. package/dist/common/root-path.decorator.js +0 -6
  119. package/dist/common/root-path.decorator.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"memory.service.js","sourceRoot":"","sources":["../../src/memory/memory.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory.service.js","sourceRoot":"","sources":["../../src/memory/memory.service.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,17 @@
1
1
  import { ProjectsService, ProjectDto, OnboardingPackResponse } from "./projects.service.js";
2
+ interface HeaderResponse {
3
+ header(name: string, value: string): unknown;
4
+ }
2
5
  export declare class ProjectsController {
3
6
  private readonly service;
4
7
  constructor(service: ProjectsService);
5
8
  list(): Promise<ProjectDto[]>;
6
- getOnboardingPackByRoot(rootPath: string): Promise<OnboardingPackResponse | null>;
9
+ getOnboardingPackByRoot(rootPath?: string, xProject?: string): Promise<OnboardingPackResponse>;
10
+ refreshOnboardingPack(body: {
11
+ rootPath?: string;
12
+ }, xProject?: string): Promise<OnboardingPackResponse>;
7
13
  getById(id: string): Promise<ProjectDto>;
8
- getOnboardingPack(id: string): Promise<OnboardingPackResponse>;
14
+ getOnboardingPack(id: string, response: HeaderResponse): Promise<never>;
9
15
  create(body: {
10
16
  name: string;
11
17
  rootPath: string;
@@ -29,4 +35,5 @@ export declare class ProjectsController {
29
35
  }>;
30
36
  delete(id: string): Promise<void>;
31
37
  }
38
+ export {};
32
39
  //# sourceMappingURL=projects.controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"projects.controller.d.ts","sourceRoot":"","sources":["../../src/projects/projects.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAG5F,qBACa,kBAAkB;IACQ,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,eAAe;IAGxE,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAG7B,uBAAuB,CAAoB,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;IAQpG,OAAO,CAAc,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAGrD,iBAAiB,CAAc,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAM3E,MAAM,CAAS,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IAG/F,OAAO,CAAS,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAM1E,aAAa,CAAS,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAMhF,SAAS,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAKjD,UAAU,IAAI,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,CAAC;IAMtC,MAAM,CAAc,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CACrD"}
1
+ {"version":3,"file":"projects.controller.d.ts","sourceRoot":"","sources":["../../src/projects/projects.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAG5F,UAAU,cAAc;IACtB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC9C;AAED,qBACa,kBAAkB;IACQ,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,eAAe;IAGxE,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAG7B,uBAAuB,CACR,QAAQ,CAAC,EAAE,MAAM,EACN,QAAQ,CAAC,EAAE,MAAM,GAC9C,OAAO,CAAC,sBAAsB,CAAC;IAU5B,qBAAqB,CACjB,IAAI,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EACL,QAAQ,CAAC,EAAE,MAAM,GAC9C,OAAO,CAAC,sBAAsB,CAAC;IAU5B,OAAO,CAAc,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAGrD,iBAAiB,CACR,EAAE,EAAE,MAAM,EACK,QAAQ,EAAE,cAAc,GACnD,OAAO,CAAC,KAAK,CAAC;IAkBX,MAAM,CAAS,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IAG/F,OAAO,CAAS,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAM1E,aAAa,CAAS,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAMhF,SAAS,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAKjD,UAAU,IAAI,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAA;KAAE,CAAC;IAMtC,MAAM,CAAc,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CACrD"}
@@ -10,7 +10,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  var __param = (this && this.__param) || function (paramIndex, decorator) {
11
11
  return function (target, key) { decorator(target, key, paramIndex); }
12
12
  };
13
- import { Controller, Get, Post, Delete, Param, Body, Query, Inject, BadRequestException } from "@nestjs/common";
13
+ import { Controller, Get, Post, Delete, Param, Body, Query, Headers, Inject, BadRequestException, GoneException, Res } from "@nestjs/common";
14
14
  import { ProjectsService } from "./projects.service.js";
15
15
  import { ErrorCode } from "../common/error-codes.js";
16
16
  let ProjectsController = class ProjectsController {
@@ -18,16 +18,38 @@ let ProjectsController = class ProjectsController {
18
18
  this.service = service;
19
19
  }
20
20
  async list() { return this.service.list(); }
21
- async getOnboardingPackByRoot(rootPath) {
22
- if (!rootPath) {
23
- throw new BadRequestException({ error: { code: ErrorCode.BAD_REQUEST, message: "rootPath is required", details: {} } });
21
+ async getOnboardingPackByRoot(rootPath, xProject) {
22
+ const resolved = [rootPath, xProject, this.service.getActiveProjectRoot()]
23
+ .find(candidate => candidate?.trim());
24
+ if (!resolved) {
25
+ throw new BadRequestException({ error: { code: ErrorCode.BAD_REQUEST, message: "rootPath required", details: {} } });
24
26
  }
25
- return this.service.getOnboardingPackByRoot(rootPath);
27
+ return this.service.getOnboardingPack(resolved);
28
+ }
29
+ async refreshOnboardingPack(body, xProject) {
30
+ const resolved = [body.rootPath, xProject, this.service.getActiveProjectRoot()]
31
+ .find(candidate => candidate?.trim());
32
+ if (!resolved) {
33
+ throw new BadRequestException({ error: { code: ErrorCode.BAD_REQUEST, message: "rootPath required", details: {} } });
34
+ }
35
+ return this.service.refreshOnboardingPack(resolved);
26
36
  }
27
37
  async getById(id) { return this.service.getById(id); }
28
- async getOnboardingPack(id) {
29
- const project = await this.service.getById(id);
30
- return this.service.getOnboardingPack(project.rootPath);
38
+ async getOnboardingPack(id, response) {
39
+ try {
40
+ const project = await this.service.getById(id);
41
+ response.header("Location", `/api/projects/onboarding-pack?rootPath=${encodeURIComponent(project.rootPath)}`);
42
+ }
43
+ catch {
44
+ // An unknown legacy ID still receives migration guidance without a Location.
45
+ }
46
+ const replacement = "GET /api/projects/onboarding-pack?rootPath=<path>";
47
+ const message = `GET /api/projects/${id}/onboarding-pack is gone. Use GET /api/projects/onboarding-pack?rootPath=<path>.`;
48
+ throw new GoneException({
49
+ error: { code: "GONE", message, details: { replacement } },
50
+ message,
51
+ replacement,
52
+ });
31
53
  }
32
54
  async create(body) { return this.service.create(body); }
33
55
  async connect(body) {
@@ -56,10 +78,19 @@ __decorate([
56
78
  __decorate([
57
79
  Get("onboarding-pack"),
58
80
  __param(0, Query("rootPath")),
81
+ __param(1, Headers("x-devflow-project")),
59
82
  __metadata("design:type", Function),
60
- __metadata("design:paramtypes", [String]),
83
+ __metadata("design:paramtypes", [String, String]),
61
84
  __metadata("design:returntype", Promise)
62
85
  ], ProjectsController.prototype, "getOnboardingPackByRoot", null);
86
+ __decorate([
87
+ Post("onboarding-pack/refresh"),
88
+ __param(0, Body()),
89
+ __param(1, Headers("x-devflow-project")),
90
+ __metadata("design:type", Function),
91
+ __metadata("design:paramtypes", [Object, String]),
92
+ __metadata("design:returntype", Promise)
93
+ ], ProjectsController.prototype, "refreshOnboardingPack", null);
63
94
  __decorate([
64
95
  Get(":id"),
65
96
  __param(0, Param("id")),
@@ -70,8 +101,9 @@ __decorate([
70
101
  __decorate([
71
102
  Get(":id/onboarding-pack"),
72
103
  __param(0, Param("id")),
104
+ __param(1, Res({ passthrough: true })),
73
105
  __metadata("design:type", Function),
74
- __metadata("design:paramtypes", [String]),
106
+ __metadata("design:paramtypes", [String, Object]),
75
107
  __metadata("design:returntype", Promise)
76
108
  ], ProjectsController.prototype, "getOnboardingPack", null);
77
109
  __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"projects.controller.js","sourceRoot":"","sources":["../../src/projects/projects.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projects.controller.js","sourceRoot":"","sources":["../../src/projects/projects.controller.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { describe, it, expect, beforeEach, vi } from 'vitest';
2
2
  import { Test } from '@nestjs/testing';
3
- import { BadRequestException } from '@nestjs/common';
3
+ import { BadRequestException, GoneException } from '@nestjs/common';
4
4
  import { ProjectsController } from './projects.controller.js';
5
5
  import { ProjectsService } from './projects.service.js';
6
6
  describe('ProjectsController', () => {
@@ -17,7 +17,8 @@ describe('ProjectsController', () => {
17
17
  getOnboardingPack: vi.fn().mockResolvedValue({
18
18
  projectName: 'test',
19
19
  createdAt: new Date().toISOString(),
20
- root: '/test/project',
20
+ rootPath: '/test/project',
21
+ projectHash: '0123456789abcdef',
21
22
  stats: { files: 1, symbols: 1, graphNodes: 1 },
22
23
  stack: { languages: [], frameworks: [], buildTools: [], testTools: [] },
23
24
  keyModules: [],
@@ -28,7 +29,7 @@ describe('ProjectsController', () => {
28
29
  recommendedWorkflows: [],
29
30
  recommendedQueries: [],
30
31
  }),
31
- getOnboardingPackByRoot: vi.fn().mockResolvedValue(null),
32
+ refreshOnboardingPack: vi.fn().mockResolvedValue({ projectName: 'refreshed' }),
32
33
  create: vi.fn().mockResolvedValue({
33
34
  id: 'proj_1',
34
35
  name: 'test',
@@ -41,6 +42,13 @@ describe('ProjectsController', () => {
41
42
  };
42
43
  beforeEach(async () => {
43
44
  vi.clearAllMocks();
45
+ mockService.getActiveProjectRoot.mockReturnValue('/test/project');
46
+ mockService.getById.mockResolvedValue({
47
+ id: 'proj_1',
48
+ name: 'test',
49
+ rootPath: '/test/project with spaces',
50
+ createdAt: Date.now(),
51
+ });
44
52
  const module = await Test.createTestingModule({
45
53
  controllers: [ProjectsController],
46
54
  providers: [
@@ -56,25 +64,60 @@ describe('ProjectsController', () => {
56
64
  it('should be defined', () => {
57
65
  expect(controller).toBeDefined();
58
66
  });
59
- describe('GET /projects/onboarding-pack (by rootPath)', () => {
60
- it('should query by rootPath', async () => {
67
+ describe('GET /projects/onboarding-pack', () => {
68
+ it('prefers query rootPath over header and active project', async () => {
61
69
  const rootPath = '/test/project';
62
- mockService.getOnboardingPackByRoot.mockResolvedValue({
70
+ mockService.getOnboardingPack.mockResolvedValue({
63
71
  projectName: 'test',
64
72
  });
65
- const result = await controller.getOnboardingPackByRoot(rootPath);
66
- expect(service.getOnboardingPackByRoot).toHaveBeenCalledWith(rootPath);
73
+ const result = await controller.getOnboardingPackByRoot(rootPath, '/header/project');
74
+ expect(service.getOnboardingPack).toHaveBeenCalledWith(rootPath);
67
75
  expect(result).toEqual({ projectName: 'test' });
68
76
  });
69
- it('should throw BadRequestException when rootPath is missing', async () => {
70
- await expect(controller.getOnboardingPackByRoot('')).rejects.toThrow(BadRequestException);
71
- expect(service.getOnboardingPackByRoot).not.toHaveBeenCalled();
77
+ it('falls back to x-devflow-project header', async () => {
78
+ await controller.getOnboardingPackByRoot(undefined, '/header/project');
79
+ expect(service.getOnboardingPack).toHaveBeenCalledWith('/header/project');
80
+ });
81
+ it('falls back to the active project root', async () => {
82
+ await controller.getOnboardingPackByRoot(undefined, undefined);
83
+ expect(service.getOnboardingPack).toHaveBeenCalledWith('/test/project');
84
+ });
85
+ it('throws BadRequestException when no rootPath can be resolved', async () => {
86
+ mockService.getActiveProjectRoot.mockReturnValue(null);
87
+ await expect(controller.getOnboardingPackByRoot(undefined, undefined)).rejects.toThrow(BadRequestException);
88
+ expect(service.getOnboardingPack).not.toHaveBeenCalled();
89
+ });
90
+ });
91
+ describe('GET /projects/:id/onboarding-pack', () => {
92
+ it('returns 410 Gone with replacement guidance and Location for a resolvable project', async () => {
93
+ const response = { header: vi.fn() };
94
+ let error;
95
+ try {
96
+ await controller.getOnboardingPack('proj_1', response);
97
+ }
98
+ catch (caught) {
99
+ error = caught;
100
+ }
101
+ expect(error).toBeInstanceOf(GoneException);
102
+ expect(error?.getStatus()).toBe(410);
103
+ expect(error?.getResponse()).toMatchObject({
104
+ message: expect.stringContaining('Use GET /api/projects/onboarding-pack?rootPath='),
105
+ replacement: 'GET /api/projects/onboarding-pack?rootPath=<path>',
106
+ });
107
+ expect(response.header).toHaveBeenCalledWith('Location', '/api/projects/onboarding-pack?rootPath=%2Ftest%2Fproject%20with%20spaces');
108
+ expect(service.getOnboardingPack).not.toHaveBeenCalled();
109
+ });
110
+ });
111
+ describe('POST /projects/onboarding-pack/refresh', () => {
112
+ it('rebuilds by explicit rootPath', async () => {
113
+ const result = await controller.refreshOnboardingPack({ rootPath: '/fresh/project' }, '/header/project');
114
+ expect(service.refreshOnboardingPack).toHaveBeenCalledWith('/fresh/project');
115
+ expect(result).toEqual({ projectName: 'refreshed' });
72
116
  });
73
- it('should return null when onboarding pack does not exist', async () => {
74
- mockService.getOnboardingPackByRoot.mockResolvedValue(null);
75
- const result = await controller.getOnboardingPackByRoot('/empty/project');
76
- expect(service.getOnboardingPackByRoot).toHaveBeenCalledWith('/empty/project');
77
- expect(result).toBeNull();
117
+ it('rejects refresh when no project root can be resolved', async () => {
118
+ mockService.getActiveProjectRoot.mockReturnValue(null);
119
+ await expect(controller.refreshOnboardingPack({}, undefined)).rejects.toThrow(BadRequestException);
120
+ expect(service.refreshOnboardingPack).not.toHaveBeenCalled();
78
121
  });
79
122
  });
80
123
  });
@@ -1 +1 @@
1
- {"version":3,"file":"projects.controller.spec.js","sourceRoot":"","sources":["../../src/projects/projects.controller.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projects.controller.spec.js","sourceRoot":"","sources":["../../src/projects/projects.controller.spec.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"projects.module.d.ts","sourceRoot":"","sources":["../../src/projects/projects.module.ts"],"names":[],"mappings":"AAIA,qBACa,cAAc;CAAG"}
1
+ {"version":3,"file":"projects.module.d.ts","sourceRoot":"","sources":["../../src/projects/projects.module.ts"],"names":[],"mappings":"AAKA,qBAQa,cAAc;CAAG"}
@@ -5,12 +5,20 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
7
  import { Module } from "@nestjs/common";
8
- import { ProjectsService } from "./projects.service.js";
8
+ import { OnboardingPackBuilder } from "@devflow-tools/context-engine";
9
+ import { ONBOARDING_PACK_BUILDER, ProjectsService } from "./projects.service.js";
9
10
  import { ProjectsController } from "./projects.controller.js";
10
11
  let ProjectsModule = class ProjectsModule {
11
12
  };
12
13
  ProjectsModule = __decorate([
13
- Module({ controllers: [ProjectsController], providers: [ProjectsService], exports: [ProjectsService] })
14
+ Module({
15
+ controllers: [ProjectsController],
16
+ providers: [
17
+ ProjectsService,
18
+ { provide: ONBOARDING_PACK_BUILDER, useFactory: () => new OnboardingPackBuilder() },
19
+ ],
20
+ exports: [ProjectsService],
21
+ })
14
22
  ], ProjectsModule);
15
23
  export { ProjectsModule };
16
24
  //# sourceMappingURL=projects.module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"projects.module.js","sourceRoot":"","sources":["../../src/projects/projects.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAGvD,IAAM,cAAc,GAApB,MAAM,cAAc;CAAG,CAAA;AAAjB,cAAc;IAD1B,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC,kBAAkB,CAAC,EAAE,SAAS,EAAE,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC;GAC3F,cAAc,CAAG"}
1
+ {"version":3,"file":"projects.module.js","sourceRoot":"","sources":["../../src/projects/projects.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAUvD,IAAM,cAAc,GAApB,MAAM,cAAc;CAAG,CAAA;AAAjB,cAAc;IAR1B,MAAM,CAAC;QACN,WAAW,EAAE,CAAC,kBAAkB,CAAC;QACjC,SAAS,EAAE;YACT,eAAe;YACf,EAAE,OAAO,EAAE,uBAAuB,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,qBAAqB,EAAE,EAAE;SACpF;QACD,OAAO,EAAE,CAAC,eAAe,CAAC;KAC3B,CAAC;GACW,cAAc,CAAG"}
@@ -1,5 +1,8 @@
1
1
  import { OnModuleInit } from "@nestjs/common";
2
2
  import { DevFlowDatabase } from "@devflow-tools/database";
3
+ import { OnboardingPackBuilder } from "@devflow-tools/context-engine";
4
+ import type { OnboardingPack } from "@devflow-tools/context-engine";
5
+ export declare const ONBOARDING_PACK_BUILDER = "ONBOARDING_PACK_BUILDER";
3
6
  export interface ProjectDto {
4
7
  id: string;
5
8
  name: string;
@@ -7,48 +10,13 @@ export interface ProjectDto {
7
10
  stack?: string[];
8
11
  createdAt: number;
9
12
  }
10
- export interface OnboardingPackResponse {
11
- projectName: string;
12
- createdAt: string;
13
- root: string;
14
- stats: {
15
- files: number;
16
- symbols: number;
17
- graphNodes: number;
18
- };
19
- stack: {
20
- languages: string[];
21
- frameworks: string[];
22
- buildTools: string[];
23
- testTools: string[];
24
- };
25
- keyModules: Array<{
26
- name: string;
27
- paths: string[];
28
- reason: string;
29
- }>;
30
- keyFiles: Array<{
31
- path: string;
32
- reason: string;
33
- }>;
34
- keySymbols: Array<{
35
- name: string;
36
- file: string;
37
- kind: string;
38
- }>;
39
- architectureLayers: Array<{
40
- name: string;
41
- files: number;
42
- }>;
43
- recommendedPlugins: string[];
44
- recommendedWorkflows: string[];
45
- recommendedQueries: string[];
46
- }
13
+ export type OnboardingPackResponse = OnboardingPack;
47
14
  export declare class ProjectsService implements OnModuleInit {
48
15
  private readonly database?;
49
16
  private projects;
50
17
  private activeProjectRoot;
51
- constructor(database?: DevFlowDatabase | undefined);
18
+ private readonly onboardingPackBuilder;
19
+ constructor(database?: DevFlowDatabase | undefined, onboardingPackBuilder?: OnboardingPackBuilder);
52
20
  onModuleInit(): void;
53
21
  setActiveProject(rootPath: string): void;
54
22
  disconnectProject(): void;
@@ -62,6 +30,6 @@ export declare class ProjectsService implements OnModuleInit {
62
30
  }): Promise<ProjectDto>;
63
31
  delete(id: string): Promise<void>;
64
32
  getOnboardingPack(rootPath: string): Promise<OnboardingPackResponse>;
65
- getOnboardingPackByRoot(rootPath: string): Promise<OnboardingPackResponse | null>;
33
+ refreshOnboardingPack(rootPath: string): Promise<OnboardingPackResponse>;
66
34
  }
67
35
  //# sourceMappingURL=projects.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"projects.service.d.ts","sourceRoot":"","sources":["../../src/projects/projects.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmD,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAI/F,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,EAAE,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAChG,UAAU,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrE,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClD,UAAU,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAChE,kBAAkB,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3D,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,kBAAkB,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED,qBACa,eAAgB,YAAW,YAAY;IAKhB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAJ5D,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,iBAAiB,CAA2D;gBAGjC,QAAQ,CAAC,EAAE,eAAe,YAAA;IAG7E,YAAY,IAAI,IAAI;IAUpB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAOxC,iBAAiB,IAAI,IAAI;IAOzB,oBAAoB,IAAI,MAAM,GAAG,IAAI;IAI/B,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAI7B,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAMxC,MAAM,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IAUxF,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKjC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAUpE,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;CAWxF"}
1
+ {"version":3,"file":"projects.service.d.ts","sourceRoot":"","sources":["../../src/projects/projects.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,YAAY,EAEb,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAA4B,MAAM,+BAA+B,CAAC;AAChG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAIpE,eAAO,MAAM,uBAAuB,4BAA4B,CAAC;AAEjE,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,sBAAsB,GAAG,cAAc,CAAC;AAEpD,qBACa,eAAgB,YAAW,YAAY;IAMhB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAL5D,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,iBAAiB,CAA2D;IACpF,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAuC;gBAG1B,QAAQ,CAAC,EAAE,eAAe,YAAA,EAC9B,qBAAqB,CAAC,EAAE,qBAAqB;IAK5F,YAAY,IAAI,IAAI;IAUpB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAOxC,iBAAiB,IAAI,IAAI;IAOzB,oBAAoB,IAAI,MAAM,GAAG,IAAI;IAI/B,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAI7B,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAMxC,MAAM,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IAUxF,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKjC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAWpE,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAuB/E"}
@@ -10,16 +10,19 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  var __param = (this && this.__param) || function (paramIndex, decorator) {
11
11
  return function (target, key) { decorator(target, key, paramIndex); }
12
12
  };
13
- import { Injectable, NotFoundException, Inject, Optional } from "@nestjs/common";
14
- import { readFileSync, existsSync } from "fs";
15
- import { join } from "path";
13
+ import { BadRequestException, Injectable, Inject, InternalServerErrorException, NotFoundException, Optional, } from "@nestjs/common";
16
14
  import { ErrorCode } from "../common/error-codes.js";
17
15
  import { DevFlowDatabase } from "@devflow-tools/database";
16
+ import { OnboardingPackBuilder, OnboardingPackBuildError } from "@devflow-tools/context-engine";
17
+ import { existsSync, readFileSync } from "node:fs";
18
+ import { join } from "node:path";
19
+ export const ONBOARDING_PACK_BUILDER = "ONBOARDING_PACK_BUILDER";
18
20
  let ProjectsService = class ProjectsService {
19
- constructor(database) {
21
+ constructor(database, onboardingPackBuilder) {
20
22
  this.database = database;
21
23
  this.projects = new Map();
22
24
  this.activeProjectRoot = process.env.DEVFLOW_PROJECT_ROOT ?? null;
25
+ this.onboardingPackBuilder = onboardingPackBuilder ?? new OnboardingPackBuilder();
23
26
  }
24
27
  onModuleInit() {
25
28
  // Restore persisted activeProjectRoot from SQLite on startup (unless env override is set)
@@ -69,24 +72,38 @@ let ProjectsService = class ProjectsService {
69
72
  this.projects.delete(id);
70
73
  }
71
74
  async getOnboardingPack(rootPath) {
72
- const packPath = join(rootPath, ".devflow", "onboarding-pack.json");
73
- if (!existsSync(packPath)) {
74
- throw new NotFoundException({
75
- error: { code: ErrorCode.PROJECT_NOT_FOUND, message: "Onboarding pack not found. Run `devflow init` first.", details: {} },
76
- });
75
+ const persistedPath = join(rootPath, ".devflow", "onboarding-pack.json");
76
+ if (existsSync(persistedPath)) {
77
+ try {
78
+ const persisted = JSON.parse(readFileSync(persistedPath, "utf8"));
79
+ if (persisted.rootPath && persisted.projectHash)
80
+ return persisted;
81
+ }
82
+ catch { /* invalid persisted data is rebuilt below */ }
77
83
  }
78
- return JSON.parse(readFileSync(packPath, "utf-8"));
84
+ return this.refreshOnboardingPack(rootPath);
79
85
  }
80
- async getOnboardingPackByRoot(rootPath) {
81
- const packPath = join(rootPath, ".devflow", "onboarding-pack.json");
86
+ async refreshOnboardingPack(rootPath) {
82
87
  try {
83
- if (!existsSync(packPath)) {
84
- return null;
85
- }
86
- return JSON.parse(readFileSync(packPath, "utf-8"));
88
+ return await this.onboardingPackBuilder.build(rootPath);
87
89
  }
88
- catch {
89
- return null;
90
+ catch (error) {
91
+ if (!(error instanceof OnboardingPackBuildError))
92
+ throw error;
93
+ const details = { rootPath: error.rootPath ?? rootPath };
94
+ const response = (code) => ({
95
+ error: { code, message: error.message, details },
96
+ });
97
+ switch (error.code) {
98
+ case "ROOT_NOT_FOUND":
99
+ throw new NotFoundException(response(ErrorCode.PROJECT_NOT_FOUND));
100
+ case "ROOT_PATH_REQUIRED":
101
+ case "ROOT_NOT_DIRECTORY":
102
+ case "CODEGRAPH_NOT_INITIALIZED":
103
+ throw new BadRequestException(response(ErrorCode.BAD_REQUEST));
104
+ case "PERSISTENCE_FAILED":
105
+ throw new InternalServerErrorException(response(ErrorCode.INTERNAL_ERROR));
106
+ }
90
107
  }
91
108
  }
92
109
  };
@@ -94,7 +111,10 @@ ProjectsService = __decorate([
94
111
  Injectable(),
95
112
  __param(0, Optional()),
96
113
  __param(0, Inject('DATABASE')),
97
- __metadata("design:paramtypes", [DevFlowDatabase])
114
+ __param(1, Optional()),
115
+ __param(1, Inject(ONBOARDING_PACK_BUILDER)),
116
+ __metadata("design:paramtypes", [DevFlowDatabase,
117
+ OnboardingPackBuilder])
98
118
  ], ProjectsService);
99
119
  export { ProjectsService };
100
120
  //# sourceMappingURL=projects.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"projects.service.js","sourceRoot":"","sources":["../../src/projects/projects.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projects.service.js","sourceRoot":"","sources":["../../src/projects/projects.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,MAAM,EACN,4BAA4B,EAC5B,iBAAiB,EAEjB,QAAQ,GACT,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AAEhG,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,MAAM,CAAC,MAAM,uBAAuB,GAAG,yBAAyB,CAAC;AAa1D,IAAM,eAAe,GAArB,MAAM,eAAe;IAK1B,YACkC,QAA2C,EAC9B,qBAA6C;QADzC,aAAQ,GAAR,QAAQ,CAAkB;QALrE,aAAQ,GAAG,IAAI,GAAG,EAAsB,CAAC;QACzC,sBAAiB,GAAkB,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,IAAI,CAAC;QAOlF,IAAI,CAAC,qBAAqB,GAAG,qBAAqB,IAAI,IAAI,qBAAqB,EAAE,CAAC;IACpF,CAAC;IAED,YAAY;QACV,0FAA0F;QAC1F,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACvD,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;YAChE,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;YACrC,CAAC;QACH,CAAC;IACH,CAAC;IAED,gBAAgB,CAAC,QAAgB;QAC/B,IAAI,CAAC,iBAAiB,GAAG,QAAQ,CAAC;QAClC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,iBAAiB;QACf,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAC9B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,oBAAoB;QAClB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,IAAI;QACR,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,EAAU;QACtB,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChC,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,iBAAiB,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,iBAAiB,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QACzI,OAAO,CAAC,CAAC;IACX,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAA2D;QACtE,MAAM,EAAE,GAAG,QAAQ,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAC1E,MAAM,OAAO,GAAe,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAC1H,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC5B,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,MAAM,IAAI,iBAAiB,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,iBAAiB,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;QAC7J,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,QAAgB;QACtC,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,sBAAsB,CAAC,CAAC;QACzE,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAmB,CAAC;gBACpF,IAAI,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,WAAW;oBAAE,OAAO,SAAS,CAAC;YACpE,CAAC;YAAC,MAAM,CAAC,CAAC,6CAA6C,CAAC,CAAC;QAC3D,CAAC;QACD,OAAO,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,qBAAqB,CAAC,QAAgB;QAC1C,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,CAAC,KAAK,YAAY,wBAAwB,CAAC;gBAAE,MAAM,KAAK,CAAC;YAE9D,MAAM,OAAO,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,QAAQ,EAAE,CAAC;YACzD,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC;gBAClC,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE;aACjD,CAAC,CAAC;YAEH,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;gBACnB,KAAK,gBAAgB;oBACnB,MAAM,IAAI,iBAAiB,CAAC,QAAQ,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC;gBACrE,KAAK,oBAAoB,CAAC;gBAC1B,KAAK,oBAAoB,CAAC;gBAC1B,KAAK,2BAA2B;oBAC9B,MAAM,IAAI,mBAAmB,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;gBACjE,KAAK,oBAAoB;oBACvB,MAAM,IAAI,4BAA4B,CAAC,QAAQ,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC;IACH,CAAC;CACF,CAAA;AAnGY,eAAe;IAD3B,UAAU,EAAE;IAOR,WAAA,QAAQ,EAAE,CAAA;IAAE,WAAA,MAAM,CAAC,UAAU,CAAC,CAAA;IAC9B,WAAA,QAAQ,EAAE,CAAA;IAAE,WAAA,MAAM,CAAC,uBAAuB,CAAC,CAAA;qCADgB,eAAe;QACN,qBAAqB;GAPjF,eAAe,CAmG3B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=projects.service.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.service.spec.d.ts","sourceRoot":"","sources":["../../src/projects/projects.service.spec.ts"],"names":[],"mappings":""}