@devflow-tools/server 0.6.1 → 0.7.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.
- package/README.md +1 -1
- package/dist/app.module.d.ts.map +1 -1
- package/dist/app.module.js +10 -0
- package/dist/app.module.js.map +1 -1
- package/dist/benchmark/benchmark.controller.d.ts +18 -4
- package/dist/benchmark/benchmark.controller.d.ts.map +1 -1
- package/dist/benchmark/benchmark.controller.js +20 -12
- package/dist/benchmark/benchmark.controller.js.map +1 -1
- package/dist/benchmark/benchmark.service.d.ts +23 -5
- package/dist/benchmark/benchmark.service.d.ts.map +1 -1
- package/dist/benchmark/benchmark.service.js +82 -19
- package/dist/benchmark/benchmark.service.js.map +1 -1
- package/dist/context/context.controller.d.ts +4 -0
- package/dist/context/context.controller.d.ts.map +1 -1
- package/dist/context/context.controller.js +6 -1
- package/dist/context/context.controller.js.map +1 -1
- package/dist/context/context.controller.spec.d.ts +2 -0
- package/dist/context/context.controller.spec.d.ts.map +1 -0
- package/dist/context/context.controller.spec.js +191 -0
- package/dist/context/context.controller.spec.js.map +1 -0
- package/dist/context/context.module.d.ts.map +1 -1
- package/dist/context/context.module.js +2 -1
- package/dist/context/context.module.js.map +1 -1
- package/dist/context/context.service.d.ts +18 -1
- package/dist/context/context.service.d.ts.map +1 -1
- package/dist/context/context.service.js +35 -4
- package/dist/context/context.service.js.map +1 -1
- package/dist/data/data.controller.d.ts +19 -0
- package/dist/data/data.controller.d.ts.map +1 -0
- package/dist/data/data.controller.js +78 -0
- package/dist/data/data.controller.js.map +1 -0
- package/dist/data/data.controller.spec.d.ts +2 -0
- package/dist/data/data.controller.spec.d.ts.map +1 -0
- package/dist/data/data.controller.spec.js +85 -0
- package/dist/data/data.controller.spec.js.map +1 -0
- package/dist/data/data.module.d.ts +3 -0
- package/dist/data/data.module.d.ts.map +1 -0
- package/dist/data/data.module.js +22 -0
- package/dist/data/data.module.js.map +1 -0
- package/dist/data/data.service.d.ts +54 -0
- package/dist/data/data.service.d.ts.map +1 -0
- package/dist/data/data.service.js +99 -0
- package/dist/data/data.service.js.map +1 -0
- package/dist/data/data.service.spec.d.ts +2 -0
- package/dist/data/data.service.spec.d.ts.map +1 -0
- package/dist/data/data.service.spec.js +148 -0
- package/dist/data/data.service.spec.js.map +1 -0
- package/dist/main.js +1 -1
- package/dist/main.js.map +1 -1
- package/dist/projects/projects.controller.d.ts +1 -0
- package/dist/projects/projects.controller.d.ts.map +1 -1
- package/dist/projects/projects.controller.js +14 -1
- package/dist/projects/projects.controller.js.map +1 -1
- package/dist/projects/projects.controller.spec.d.ts +2 -0
- package/dist/projects/projects.controller.spec.d.ts.map +1 -0
- package/dist/projects/projects.controller.spec.js +81 -0
- package/dist/projects/projects.controller.spec.js.map +1 -0
- package/dist/projects/projects.service.d.ts +1 -0
- package/dist/projects/projects.service.d.ts.map +1 -1
- package/dist/projects/projects.service.js +12 -0
- package/dist/projects/projects.service.js.map +1 -1
- package/dist/registry/registry.controller.d.ts +1 -0
- package/dist/registry/registry.controller.d.ts.map +1 -1
- package/dist/registry/registry.controller.js +10 -0
- package/dist/registry/registry.controller.js.map +1 -1
- package/dist/registry/registry.module.d.ts.map +1 -1
- package/dist/registry/registry.module.js +2 -1
- package/dist/registry/registry.module.js.map +1 -1
- package/dist/registry/registry.service.d.ts +12 -2
- package/dist/registry/registry.service.d.ts.map +1 -1
- package/dist/registry/registry.service.js +87 -6
- package/dist/registry/registry.service.js.map +1 -1
- package/dist/telemetry/telemetry.controller.d.ts.map +1 -1
- package/dist/telemetry/telemetry.controller.js +9 -5
- package/dist/telemetry/telemetry.controller.js.map +1 -1
- package/dist/telemetry/telemetry.service.d.ts +56 -2
- package/dist/telemetry/telemetry.service.d.ts.map +1 -1
- package/dist/telemetry/telemetry.service.js +217 -3
- package/dist/telemetry/telemetry.service.js.map +1 -1
- package/dist/workflow/workflow.service.d.ts +3 -1
- package/dist/workflow/workflow.service.d.ts.map +1 -1
- package/dist/workflow/workflow.service.js +18 -0
- package/dist/workflow/workflow.service.js.map +1 -1
- package/package.json +11 -10
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { describe, it, expect, beforeEach, vi } from 'vitest';
|
|
2
|
+
import { DataService } from './data.service.js';
|
|
3
|
+
describe('DataService', () => {
|
|
4
|
+
let service;
|
|
5
|
+
let mockTelemetry;
|
|
6
|
+
beforeEach(() => {
|
|
7
|
+
mockTelemetry = {
|
|
8
|
+
recordEvent: vi.fn(),
|
|
9
|
+
getStats: vi.fn(),
|
|
10
|
+
};
|
|
11
|
+
service = new DataService(mockTelemetry);
|
|
12
|
+
});
|
|
13
|
+
it('should be defined', () => {
|
|
14
|
+
expect(service).toBeDefined();
|
|
15
|
+
});
|
|
16
|
+
describe('recordTelemetryEvent', () => {
|
|
17
|
+
it('should record telemetry event via TelemetryService', async () => {
|
|
18
|
+
const event = {
|
|
19
|
+
toolName: 'react_review_hooks',
|
|
20
|
+
args: { query: 'test' },
|
|
21
|
+
durationMs: 1000,
|
|
22
|
+
success: true,
|
|
23
|
+
pluginName: 'react',
|
|
24
|
+
metadata: { projectRoot: '/test' },
|
|
25
|
+
};
|
|
26
|
+
await service.recordTelemetryEvent(event);
|
|
27
|
+
expect(mockTelemetry.recordEvent).toHaveBeenCalledWith(expect.objectContaining({
|
|
28
|
+
kind: 'tool_use',
|
|
29
|
+
data: expect.objectContaining({
|
|
30
|
+
toolName: 'react_review_hooks',
|
|
31
|
+
}),
|
|
32
|
+
}));
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
describe('getProjectStats', () => {
|
|
36
|
+
it('should return null for unknown project', async () => {
|
|
37
|
+
await expect(service.getProjectStats('/unknown')).resolves.toBeNull();
|
|
38
|
+
});
|
|
39
|
+
it('should return stats after update', async () => {
|
|
40
|
+
await service.updateProjectStats('/test', { totalRuns: 5, successfulRuns: 4 });
|
|
41
|
+
const stats = await service.getProjectStats('/test');
|
|
42
|
+
expect(stats).toMatchObject({
|
|
43
|
+
projectRoot: '/test',
|
|
44
|
+
totalRuns: 5,
|
|
45
|
+
successfulRuns: 4,
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
describe('updateProjectStats', () => {
|
|
50
|
+
it('should create stats for new project', async () => {
|
|
51
|
+
const stats = await service.updateProjectStats('/new', { totalRuns: 1 });
|
|
52
|
+
expect(stats.projectRoot).toBe('/new');
|
|
53
|
+
expect(stats.totalRuns).toBe(1);
|
|
54
|
+
expect(stats.lastActiveAt).toBeGreaterThan(0);
|
|
55
|
+
});
|
|
56
|
+
it('should merge with existing stats', async () => {
|
|
57
|
+
await service.updateProjectStats('/p', { totalRuns: 1, successfulRuns: 1 });
|
|
58
|
+
const updated = await service.updateProjectStats('/p', { totalRuns: 2 });
|
|
59
|
+
expect(updated.totalRuns).toBe(2);
|
|
60
|
+
expect(updated.successfulRuns).toBe(1);
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
describe('recordBenchmarkResult', () => {
|
|
64
|
+
it('should store benchmark results', () => {
|
|
65
|
+
const result = {
|
|
66
|
+
scenarioId: 'scenario-1',
|
|
67
|
+
mode: 'devflow',
|
|
68
|
+
prepTimeMs: 100,
|
|
69
|
+
tokenCount: 500,
|
|
70
|
+
firstPassSuccess: true,
|
|
71
|
+
reworkCount: 0,
|
|
72
|
+
durationMs: 2000,
|
|
73
|
+
timestamp: Date.now(),
|
|
74
|
+
};
|
|
75
|
+
service.recordBenchmarkResult(result);
|
|
76
|
+
expect(service.getBenchmarkResults()).toContainEqual(result);
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
describe('getBenchmarkResults', () => {
|
|
80
|
+
it('should return all results when no projectRoot filter', () => {
|
|
81
|
+
service.recordBenchmarkResult({
|
|
82
|
+
scenarioId: 's1',
|
|
83
|
+
mode: 'baseline',
|
|
84
|
+
prepTimeMs: 50,
|
|
85
|
+
tokenCount: 300,
|
|
86
|
+
firstPassSuccess: false,
|
|
87
|
+
reworkCount: 1,
|
|
88
|
+
durationMs: 3000,
|
|
89
|
+
timestamp: Date.now(),
|
|
90
|
+
});
|
|
91
|
+
expect(service.getBenchmarkResults().length).toBe(1);
|
|
92
|
+
});
|
|
93
|
+
it('should filter by projectRoot via scenarioId -> projectStats mapping', async () => {
|
|
94
|
+
await service.updateProjectStats('/test', { totalRuns: 1 });
|
|
95
|
+
const matchingResult = {
|
|
96
|
+
scenarioId: '/test',
|
|
97
|
+
mode: 'devflow',
|
|
98
|
+
prepTimeMs: 100,
|
|
99
|
+
tokenCount: 500,
|
|
100
|
+
firstPassSuccess: true,
|
|
101
|
+
reworkCount: 0,
|
|
102
|
+
durationMs: 2000,
|
|
103
|
+
timestamp: Date.now(),
|
|
104
|
+
};
|
|
105
|
+
const nonMatchingResult = {
|
|
106
|
+
scenarioId: '/other',
|
|
107
|
+
mode: 'baseline',
|
|
108
|
+
prepTimeMs: 50,
|
|
109
|
+
tokenCount: 300,
|
|
110
|
+
firstPassSuccess: false,
|
|
111
|
+
reworkCount: 1,
|
|
112
|
+
durationMs: 3000,
|
|
113
|
+
timestamp: Date.now(),
|
|
114
|
+
};
|
|
115
|
+
service.recordBenchmarkResult(matchingResult);
|
|
116
|
+
service.recordBenchmarkResult(nonMatchingResult);
|
|
117
|
+
const filtered = service.getBenchmarkResults('/test');
|
|
118
|
+
expect(filtered).toHaveLength(1);
|
|
119
|
+
expect(filtered[0]).toEqual(matchingResult);
|
|
120
|
+
});
|
|
121
|
+
it('should return empty array when scenarioId has no matching projectStats (fragile pre-stats case)', () => {
|
|
122
|
+
service.recordBenchmarkResult({
|
|
123
|
+
scenarioId: '/no-stats',
|
|
124
|
+
mode: 'devflow',
|
|
125
|
+
prepTimeMs: 100,
|
|
126
|
+
tokenCount: 500,
|
|
127
|
+
firstPassSuccess: true,
|
|
128
|
+
reworkCount: 0,
|
|
129
|
+
durationMs: 2000,
|
|
130
|
+
timestamp: Date.now(),
|
|
131
|
+
});
|
|
132
|
+
// scenarioId has no entry in projectStats, so lookup returns undefined -> not equal to '/test'
|
|
133
|
+
const filtered = service.getBenchmarkResults('/test');
|
|
134
|
+
expect(filtered).toEqual([]);
|
|
135
|
+
});
|
|
136
|
+
});
|
|
137
|
+
describe('getPluginEffectiveness', () => {
|
|
138
|
+
it('should return an empty array (stub)', async () => {
|
|
139
|
+
const result = await service.getPluginEffectiveness();
|
|
140
|
+
expect(result).toEqual([]);
|
|
141
|
+
});
|
|
142
|
+
it('should return an empty array when called with a plugin name (stub)', async () => {
|
|
143
|
+
const result = await service.getPluginEffectiveness('react');
|
|
144
|
+
expect(result).toEqual([]);
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
});
|
|
148
|
+
//# sourceMappingURL=data.service.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data.service.spec.js","sourceRoot":"","sources":["../../src/data/data.service.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,IAAI,OAAoB,CAAC;IACzB,IAAI,aAA4F,CAAC;IAEjG,UAAU,CAAC,GAAG,EAAE;QACd,aAAa,GAAG;YACd,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE;YACpB,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE;SAClB,CAAC;QACF,OAAO,GAAG,IAAI,WAAW,CAAC,aAA4C,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC3B,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;YAClE,MAAM,KAAK,GAAG;gBACZ,QAAQ,EAAE,oBAAoB;gBAC9B,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;gBACvB,UAAU,EAAE,IAAI;gBAChB,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,OAAO;gBACnB,QAAQ,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE;aACnC,CAAC;YAEF,MAAM,OAAO,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAE1C,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,oBAAoB,CACpD,MAAM,CAAC,gBAAgB,CAAC;gBACtB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,MAAM,CAAC,gBAAgB,CAAC;oBAC5B,QAAQ,EAAE,oBAAoB;iBAC/B,CAAC;aACH,CAAC,CACH,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACtD,MAAM,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACxE,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;YAChD,MAAM,OAAO,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC;YAC/E,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YACrD,MAAM,CAAC,KAAK,CAAC,CAAC,aAAa,CAAC;gBAC1B,WAAW,EAAE,OAAO;gBACpB,SAAS,EAAE,CAAC;gBACZ,cAAc,EAAE,CAAC;aAClB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAClC,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACnD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,kBAAkB,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;YACzE,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;YAChD,MAAM,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5E,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;YACzE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACrC,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,MAAM,MAAM,GAAG;gBACb,UAAU,EAAE,YAAY;gBACxB,IAAI,EAAE,SAAkB;gBACxB,UAAU,EAAE,GAAG;gBACf,UAAU,EAAE,GAAG;gBACf,gBAAgB,EAAE,IAAI;gBACtB,WAAW,EAAE,CAAC;gBACd,UAAU,EAAE,IAAI;gBAChB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC;YACF,OAAO,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;YACtC,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;QACnC,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC9D,OAAO,CAAC,qBAAqB,CAAC;gBAC5B,UAAU,EAAE,IAAI;gBAChB,IAAI,EAAE,UAAU;gBAChB,UAAU,EAAE,EAAE;gBACd,UAAU,EAAE,GAAG;gBACf,gBAAgB,EAAE,KAAK;gBACvB,WAAW,EAAE,CAAC;gBACd,UAAU,EAAE,IAAI;gBAChB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC,CAAC;YACH,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;YACnF,MAAM,OAAO,CAAC,kBAAkB,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5D,MAAM,cAAc,GAAG;gBACrB,UAAU,EAAE,OAAO;gBACnB,IAAI,EAAE,SAAkB;gBACxB,UAAU,EAAE,GAAG;gBACf,UAAU,EAAE,GAAG;gBACf,gBAAgB,EAAE,IAAI;gBACtB,WAAW,EAAE,CAAC;gBACd,UAAU,EAAE,IAAI;gBAChB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC;YACF,MAAM,iBAAiB,GAAG;gBACxB,UAAU,EAAE,QAAQ;gBACpB,IAAI,EAAE,UAAmB;gBACzB,UAAU,EAAE,EAAE;gBACd,UAAU,EAAE,GAAG;gBACf,gBAAgB,EAAE,KAAK;gBACvB,WAAW,EAAE,CAAC;gBACd,UAAU,EAAE,IAAI;gBAChB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC;YACF,OAAO,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC;YAC9C,OAAO,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,CAAC;YAEjD,MAAM,QAAQ,GAAG,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iGAAiG,EAAE,GAAG,EAAE;YACzG,OAAO,CAAC,qBAAqB,CAAC;gBAC5B,UAAU,EAAE,WAAW;gBACvB,IAAI,EAAE,SAAkB;gBACxB,UAAU,EAAE,GAAG;gBACf,UAAU,EAAE,GAAG;gBACf,gBAAgB,EAAE,IAAI;gBACtB,WAAW,EAAE,CAAC;gBACd,UAAU,EAAE,IAAI;gBAChB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC,CAAC;YAEH,+FAA+F;YAC/F,MAAM,QAAQ,GAAG,OAAO,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;QACtC,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACnD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,sBAAsB,EAAE,CAAC;YACtD,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oEAAoE,EAAE,KAAK,IAAI,EAAE;YAClF,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;YAC7D,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/main.js
CHANGED
|
@@ -8,7 +8,7 @@ export async function bootstrap() {
|
|
|
8
8
|
app.setGlobalPrefix("api");
|
|
9
9
|
app.useGlobalFilters(new HttpExceptionFilter());
|
|
10
10
|
app.enableCors({ origin: true, credentials: true });
|
|
11
|
-
await app.listen({ port:
|
|
11
|
+
await app.listen({ port: 13337, host: "0.0.0.0" });
|
|
12
12
|
return app;
|
|
13
13
|
}
|
|
14
14
|
if (process.argv[1]?.endsWith("main.js") ||
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EACL,cAAc,GAEf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,MAAM,CAClC,SAAS,EACT,IAAI,cAAc,EAAE,CACrB,CAAC;IACF,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC3B,GAAG,CAAC,gBAAgB,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC;IAChD,GAAG,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EACL,cAAc,GAEf,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAExE,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,MAAM,CAClC,SAAS,EACT,IAAI,cAAc,EAAE,CACrB,CAAC;IACF,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC3B,GAAG,CAAC,gBAAgB,CAAC,IAAI,mBAAmB,EAAE,CAAC,CAAC;IAChD,GAAG,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IACnD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,IACE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC;IACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,EACpC,CAAC;IACD,SAAS,EAAE,CAAC;AACd,CAAC"}
|
|
@@ -3,6 +3,7 @@ export declare class ProjectsController {
|
|
|
3
3
|
private readonly service;
|
|
4
4
|
constructor(service: ProjectsService);
|
|
5
5
|
list(): Promise<ProjectDto[]>;
|
|
6
|
+
getOnboardingPackByRoot(rootPath: string): Promise<OnboardingPackResponse | null>;
|
|
6
7
|
getById(id: string): Promise<ProjectDto>;
|
|
7
8
|
getOnboardingPack(id: string): Promise<OnboardingPackResponse>;
|
|
8
9
|
create(body: {
|
|
@@ -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;AAE5F,qBACa,kBAAkB;IACQ,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,eAAe;IAGxE,IAAI,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAG7B,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,SAAS,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAKjD,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;AAE5F,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,SAAS,IAAI,OAAO,CAAC;QAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAKjD,MAAM,CAAc,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CACrD"}
|
|
@@ -10,13 +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 { Controller, Get, Post, Delete, Param, Body, Inject } from "@nestjs/common";
|
|
13
|
+
import { Controller, Get, Post, Delete, Param, Body, Query, Inject, BadRequestException } from "@nestjs/common";
|
|
14
14
|
import { ProjectsService } from "./projects.service.js";
|
|
15
15
|
let ProjectsController = class ProjectsController {
|
|
16
16
|
constructor(service) {
|
|
17
17
|
this.service = service;
|
|
18
18
|
}
|
|
19
19
|
async list() { return this.service.list(); }
|
|
20
|
+
async getOnboardingPackByRoot(rootPath) {
|
|
21
|
+
if (!rootPath) {
|
|
22
|
+
throw new BadRequestException("rootPath is required");
|
|
23
|
+
}
|
|
24
|
+
return this.service.getOnboardingPackByRoot(rootPath);
|
|
25
|
+
}
|
|
20
26
|
async getById(id) { return this.service.getById(id); }
|
|
21
27
|
async getOnboardingPack(id) {
|
|
22
28
|
const project = await this.service.getById(id);
|
|
@@ -38,6 +44,13 @@ __decorate([
|
|
|
38
44
|
__metadata("design:paramtypes", []),
|
|
39
45
|
__metadata("design:returntype", Promise)
|
|
40
46
|
], ProjectsController.prototype, "list", null);
|
|
47
|
+
__decorate([
|
|
48
|
+
Get("onboarding-pack"),
|
|
49
|
+
__param(0, Query("rootPath")),
|
|
50
|
+
__metadata("design:type", Function),
|
|
51
|
+
__metadata("design:paramtypes", [String]),
|
|
52
|
+
__metadata("design:returntype", Promise)
|
|
53
|
+
], ProjectsController.prototype, "getOnboardingPackByRoot", null);
|
|
41
54
|
__decorate([
|
|
42
55
|
Get(":id"),
|
|
43
56
|
__param(0, Param("id")),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projects.controller.js","sourceRoot":"","sources":["../../src/projects/projects.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"projects.controller.js","sourceRoot":"","sources":["../../src/projects/projects.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAChH,OAAO,EAAE,eAAe,EAAsC,MAAM,uBAAuB,CAAC;AAGrF,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAC7B,YAAsD,OAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;IAAG,CAAC;IAG5E,AAAN,KAAK,CAAC,IAAI,KAA4B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAG7D,AAAN,KAAK,CAAC,uBAAuB,CAAoB,QAAgB;QAC/D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,mBAAmB,CAAC,sBAAsB,CAAC,CAAC;QACxD,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IACxD,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAAc,EAAU,IAAyB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAG1F,AAAN,KAAK,CAAC,iBAAiB,CAAc,EAAU;QAC7C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1D,CAAC;IAGK,AAAN,KAAK,CAAC,MAAM,CAAS,IAA0D,IAAyB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAGrI,AAAN,KAAK,CAAC,OAAO,CAAS,IAA0B;QAC9C,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7C,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;IACrC,CAAC;IAGK,AAAN,KAAK,CAAC,SAAS;QACb,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC;IAC3D,CAAC;IAGK,AAAN,KAAK,CAAC,MAAM,CAAc,EAAU,IAAmB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CACzF,CAAA;AAnCO;IADL,GAAG,EAAE;;;;8CAC6D;AAG7D;IADL,GAAG,CAAC,iBAAiB,CAAC;IACQ,WAAA,KAAK,CAAC,UAAU,CAAC,CAAA;;;;iEAK/C;AAGK;IADL,GAAG,CAAC,KAAK,CAAC;IACI,WAAA,KAAK,CAAC,IAAI,CAAC,CAAA;;;;iDAAsE;AAG1F;IADL,GAAG,CAAC,qBAAqB,CAAC;IACF,WAAA,KAAK,CAAC,IAAI,CAAC,CAAA;;;;2DAGnC;AAGK;IADL,IAAI,EAAE;IACO,WAAA,IAAI,EAAE,CAAA;;;;gDAAuH;AAGrI;IADL,IAAI,CAAC,SAAS,CAAC;IACD,WAAA,IAAI,EAAE,CAAA;;;;iDAGpB;AAGK;IADL,GAAG,CAAC,QAAQ,CAAC;;;;mDAGb;AAGK;IADL,MAAM,CAAC,KAAK,CAAC;IACA,WAAA,KAAK,CAAC,IAAI,CAAC,CAAA;;;;gDAA+D;AAtC7E,kBAAkB;IAD9B,UAAU,CAAC,UAAU,CAAC;IAER,WAAA,MAAM,CAAC,eAAe,CAAC,CAAA;qCAA2B,eAAe;GADnE,kBAAkB,CAuC9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projects.controller.spec.d.ts","sourceRoot":"","sources":["../../src/projects/projects.controller.spec.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { describe, it, expect, beforeEach, vi } from 'vitest';
|
|
2
|
+
import { Test } from '@nestjs/testing';
|
|
3
|
+
import { BadRequestException } from '@nestjs/common';
|
|
4
|
+
import { ProjectsController } from './projects.controller.js';
|
|
5
|
+
import { ProjectsService } from './projects.service.js';
|
|
6
|
+
describe('ProjectsController', () => {
|
|
7
|
+
let controller;
|
|
8
|
+
let service;
|
|
9
|
+
const mockService = {
|
|
10
|
+
list: vi.fn().mockResolvedValue([]),
|
|
11
|
+
getById: vi.fn().mockResolvedValue({
|
|
12
|
+
id: 'proj_1',
|
|
13
|
+
name: 'test',
|
|
14
|
+
rootPath: '/test/project',
|
|
15
|
+
createdAt: Date.now(),
|
|
16
|
+
}),
|
|
17
|
+
getOnboardingPack: vi.fn().mockResolvedValue({
|
|
18
|
+
projectName: 'test',
|
|
19
|
+
createdAt: new Date().toISOString(),
|
|
20
|
+
root: '/test/project',
|
|
21
|
+
stats: { files: 1, symbols: 1, graphNodes: 1 },
|
|
22
|
+
stack: { languages: [], frameworks: [], buildTools: [], testTools: [] },
|
|
23
|
+
keyModules: [],
|
|
24
|
+
keyFiles: [],
|
|
25
|
+
keySymbols: [],
|
|
26
|
+
architectureLayers: [],
|
|
27
|
+
recommendedPlugins: [],
|
|
28
|
+
recommendedWorkflows: [],
|
|
29
|
+
recommendedQueries: [],
|
|
30
|
+
}),
|
|
31
|
+
getOnboardingPackByRoot: vi.fn().mockResolvedValue(null),
|
|
32
|
+
create: vi.fn().mockResolvedValue({
|
|
33
|
+
id: 'proj_1',
|
|
34
|
+
name: 'test',
|
|
35
|
+
rootPath: '/test/project',
|
|
36
|
+
createdAt: Date.now(),
|
|
37
|
+
}),
|
|
38
|
+
setActiveProject: vi.fn(),
|
|
39
|
+
getActiveProjectRoot: vi.fn().mockReturnValue('/test/project'),
|
|
40
|
+
delete: vi.fn().mockResolvedValue(undefined),
|
|
41
|
+
};
|
|
42
|
+
beforeEach(async () => {
|
|
43
|
+
vi.clearAllMocks();
|
|
44
|
+
const module = await Test.createTestingModule({
|
|
45
|
+
controllers: [ProjectsController],
|
|
46
|
+
providers: [
|
|
47
|
+
{
|
|
48
|
+
provide: ProjectsService,
|
|
49
|
+
useValue: mockService,
|
|
50
|
+
},
|
|
51
|
+
],
|
|
52
|
+
}).compile();
|
|
53
|
+
controller = module.get(ProjectsController);
|
|
54
|
+
service = module.get(ProjectsService);
|
|
55
|
+
});
|
|
56
|
+
it('should be defined', () => {
|
|
57
|
+
expect(controller).toBeDefined();
|
|
58
|
+
});
|
|
59
|
+
describe('GET /projects/onboarding-pack (by rootPath)', () => {
|
|
60
|
+
it('should query by rootPath', async () => {
|
|
61
|
+
const rootPath = '/test/project';
|
|
62
|
+
mockService.getOnboardingPackByRoot.mockResolvedValue({
|
|
63
|
+
projectName: 'test',
|
|
64
|
+
});
|
|
65
|
+
const result = await controller.getOnboardingPackByRoot(rootPath);
|
|
66
|
+
expect(service.getOnboardingPackByRoot).toHaveBeenCalledWith(rootPath);
|
|
67
|
+
expect(result).toEqual({ projectName: 'test' });
|
|
68
|
+
});
|
|
69
|
+
it('should throw BadRequestException when rootPath is missing', async () => {
|
|
70
|
+
await expect(controller.getOnboardingPackByRoot('')).rejects.toThrow(BadRequestException);
|
|
71
|
+
expect(service.getOnboardingPackByRoot).not.toHaveBeenCalled();
|
|
72
|
+
});
|
|
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();
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
//# sourceMappingURL=projects.controller.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projects.controller.spec.js","sourceRoot":"","sources":["../../src/projects/projects.controller.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -56,5 +56,6 @@ export declare class ProjectsService {
|
|
|
56
56
|
}): Promise<ProjectDto>;
|
|
57
57
|
delete(id: string): Promise<void>;
|
|
58
58
|
getOnboardingPack(rootPath: string): Promise<OnboardingPackResponse>;
|
|
59
|
+
getOnboardingPackByRoot(rootPath: string): Promise<OnboardingPackResponse | null>;
|
|
59
60
|
}
|
|
60
61
|
//# 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":"AAKA,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,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,iBAAiB,CAA2D;IAEpF,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIxC,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;
|
|
1
|
+
{"version":3,"file":"projects.service.d.ts","sourceRoot":"","sources":["../../src/projects/projects.service.ts"],"names":[],"mappings":"AAKA,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,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,iBAAiB,CAA2D;IAEpF,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIxC,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"}
|
|
@@ -51,6 +51,18 @@ let ProjectsService = class ProjectsService {
|
|
|
51
51
|
}
|
|
52
52
|
return JSON.parse(readFileSync(packPath, "utf-8"));
|
|
53
53
|
}
|
|
54
|
+
async getOnboardingPackByRoot(rootPath) {
|
|
55
|
+
const packPath = join(rootPath, ".devflow", "onboarding-pack.json");
|
|
56
|
+
try {
|
|
57
|
+
if (!existsSync(packPath)) {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
return JSON.parse(readFileSync(packPath, "utf-8"));
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
54
66
|
};
|
|
55
67
|
ProjectsService = __decorate([
|
|
56
68
|
Injectable()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projects.service.js","sourceRoot":"","sources":["../../src/projects/projects.service.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AA0B9C,IAAM,eAAe,GAArB,MAAM,eAAe;IAArB;QACG,aAAQ,GAAG,IAAI,GAAG,EAAsB,CAAC;QACzC,sBAAiB,GAAkB,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"projects.service.js","sourceRoot":"","sources":["../../src/projects/projects.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ export declare class RegistryController {
|
|
|
3
3
|
private readonly service;
|
|
4
4
|
constructor(service: RegistryService);
|
|
5
5
|
list(search?: string, tag?: string): Promise<import("./registry.service.js").PluginMeta[]>;
|
|
6
|
+
getPluginEffectiveness(rootPath?: string): Promise<import("@devflow-tools/sdk").PluginEffectivenessSummary[]>;
|
|
6
7
|
getByName(name: string): Promise<import("./registry.service.js").PluginMeta>;
|
|
7
8
|
publish(body: {
|
|
8
9
|
npmPackage: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.controller.d.ts","sourceRoot":"","sources":["../../src/registry/registry.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,qBACa,kBAAkB;IACQ,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,eAAe;IAGxE,IAAI,CAAkB,MAAM,CAAC,EAAE,MAAM,EAAgB,GAAG,CAAC,EAAE,MAAM;IAKjE,SAAS,CAAgB,IAAI,EAAE,MAAM;IAKrC,OAAO,CAAS,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE;IAKnG,OAAO,CAAS,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EAAgC,QAAQ,CAAC,EAAE,MAAM;;;;IAK1G,SAAS,CAAgB,IAAI,EAAE,MAAM,EAAU,IAAI,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EAAgC,QAAQ,CAAC,EAAE,MAAM;;;;CAGlI"}
|
|
1
|
+
{"version":3,"file":"registry.controller.d.ts","sourceRoot":"","sources":["../../src/registry/registry.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,qBACa,kBAAkB;IACQ,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,eAAe;IAGxE,IAAI,CAAkB,MAAM,CAAC,EAAE,MAAM,EAAgB,GAAG,CAAC,EAAE,MAAM;IAKjE,sBAAsB,CAAoB,QAAQ,CAAC,EAAE,MAAM;IAK3D,SAAS,CAAgB,IAAI,EAAE,MAAM;IAKrC,OAAO,CAAS,IAAI,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE;IAKnG,OAAO,CAAS,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EAAgC,QAAQ,CAAC,EAAE,MAAM;;;;IAK1G,SAAS,CAAgB,IAAI,EAAE,MAAM,EAAU,IAAI,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EAAgC,QAAQ,CAAC,EAAE,MAAM;;;;CAGlI"}
|
|
@@ -19,6 +19,9 @@ let RegistryController = class RegistryController {
|
|
|
19
19
|
async list(search, tag) {
|
|
20
20
|
return this.service.list(search, tag);
|
|
21
21
|
}
|
|
22
|
+
async getPluginEffectiveness(rootPath) {
|
|
23
|
+
return this.service.getPluginEffectiveness(rootPath);
|
|
24
|
+
}
|
|
22
25
|
async getByName(name) {
|
|
23
26
|
return this.service.getByName(name);
|
|
24
27
|
}
|
|
@@ -40,6 +43,13 @@ __decorate([
|
|
|
40
43
|
__metadata("design:paramtypes", [String, String]),
|
|
41
44
|
__metadata("design:returntype", Promise)
|
|
42
45
|
], RegistryController.prototype, "list", null);
|
|
46
|
+
__decorate([
|
|
47
|
+
Get("plugins/effectiveness"),
|
|
48
|
+
__param(0, Query("rootPath")),
|
|
49
|
+
__metadata("design:type", Function),
|
|
50
|
+
__metadata("design:paramtypes", [String]),
|
|
51
|
+
__metadata("design:returntype", Promise)
|
|
52
|
+
], RegistryController.prototype, "getPluginEffectiveness", null);
|
|
43
53
|
__decorate([
|
|
44
54
|
Get("plugins/:name"),
|
|
45
55
|
__param(0, Param("name")),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.controller.js","sourceRoot":"","sources":["../../src/registry/registry.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGjD,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAC7B,YAAsD,OAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;IAAG,CAAC;IAG5E,AAAN,KAAK,CAAC,IAAI,CAAkB,MAAe,EAAgB,GAAY;QACrE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxC,CAAC;IAGK,AAAN,KAAK,CAAC,SAAS,CAAgB,IAAY;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAAS,IAAmF;QACvG,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAAS,IAAyC,EAAgC,QAAiB;QAC9G,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC;IACpE,CAAC;IAGK,AAAN,KAAK,CAAC,SAAS,CAAgB,IAAY,EAAU,IAA2B,EAAgC,QAAiB;QAC/H,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC;IACjE,CAAC;CACF,CAAA;
|
|
1
|
+
{"version":3,"file":"registry.controller.js","sourceRoot":"","sources":["../../src/registry/registry.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGjD,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAC7B,YAAsD,OAAwB;QAAxB,YAAO,GAAP,OAAO,CAAiB;IAAG,CAAC;IAG5E,AAAN,KAAK,CAAC,IAAI,CAAkB,MAAe,EAAgB,GAAY;QACrE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxC,CAAC;IAGK,AAAN,KAAK,CAAC,sBAAsB,CAAoB,QAAiB;QAC/D,OAAO,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IACvD,CAAC;IAGK,AAAN,KAAK,CAAC,SAAS,CAAgB,IAAY;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAAS,IAAmF;QACvG,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAGK,AAAN,KAAK,CAAC,OAAO,CAAS,IAAyC,EAAgC,QAAiB;QAC9G,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC;IACpE,CAAC;IAGK,AAAN,KAAK,CAAC,SAAS,CAAgB,IAAY,EAAU,IAA2B,EAAgC,QAAiB;QAC/H,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC;IACjE,CAAC;CACF,CAAA;AA5BO;IADL,GAAG,CAAC,SAAS,CAAC;IACH,WAAA,KAAK,CAAC,QAAQ,CAAC,CAAA;IAAmB,WAAA,KAAK,CAAC,KAAK,CAAC,CAAA;;;;8CAEzD;AAGK;IADL,GAAG,CAAC,uBAAuB,CAAC;IACC,WAAA,KAAK,CAAC,UAAU,CAAC,CAAA;;;;gEAE9C;AAGK;IADL,GAAG,CAAC,eAAe,CAAC;IACJ,WAAA,KAAK,CAAC,MAAM,CAAC,CAAA;;;;mDAE7B;AAGK;IADL,IAAI,CAAC,SAAS,CAAC;IACD,WAAA,IAAI,EAAE,CAAA;;;;iDAEpB;AAGK;IADL,IAAI,CAAC,iBAAiB,CAAC;IACT,WAAA,IAAI,EAAE,CAAA;IAA6C,WAAA,OAAO,CAAC,mBAAmB,CAAC,CAAA;;;;iDAE7F;AAGK;IADL,IAAI,CAAC,yBAAyB,CAAC;IACf,WAAA,KAAK,CAAC,MAAM,CAAC,CAAA;IAAgB,WAAA,IAAI,EAAE,CAAA;IAA+B,WAAA,OAAO,CAAC,mBAAmB,CAAC,CAAA;;;;mDAE9G;AA/BU,kBAAkB;IAD9B,UAAU,CAAC,UAAU,CAAC;IAER,WAAA,MAAM,CAAC,eAAe,CAAC,CAAA;qCAA2B,eAAe;GADnE,kBAAkB,CAgC9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.module.d.ts","sourceRoot":"","sources":["../../src/registry/registry.module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"registry.module.d.ts","sourceRoot":"","sources":["../../src/registry/registry.module.ts"],"names":[],"mappings":"AAKA,qBACa,cAAc;CAAG"}
|
|
@@ -7,10 +7,11 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
import { Module } from "@nestjs/common";
|
|
8
8
|
import { RegistryService } from "./registry.service.js";
|
|
9
9
|
import { RegistryController } from "./registry.controller.js";
|
|
10
|
+
import { TelemetryModule } from "../telemetry/telemetry.module.js";
|
|
10
11
|
let RegistryModule = class RegistryModule {
|
|
11
12
|
};
|
|
12
13
|
RegistryModule = __decorate([
|
|
13
|
-
Module({ controllers: [RegistryController], providers: [RegistryService], exports: [RegistryService] })
|
|
14
|
+
Module({ imports: [TelemetryModule], controllers: [RegistryController], providers: [RegistryService], exports: [RegistryService] })
|
|
14
15
|
], RegistryModule);
|
|
15
16
|
export { RegistryModule };
|
|
16
17
|
//# sourceMappingURL=registry.module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.module.js","sourceRoot":"","sources":["../../src/registry/registry.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;
|
|
1
|
+
{"version":3,"file":"registry.module.js","sourceRoot":"","sources":["../../src/registry/registry.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;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAG5D,IAAM,cAAc,GAApB,MAAM,cAAc;CAAG,CAAA;AAAjB,cAAc;IAD1B,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,WAAW,EAAE,CAAC,kBAAkB,CAAC,EAAE,SAAS,EAAE,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC;GACvH,cAAc,CAAG"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { TelemetryService } from "../telemetry/telemetry.service.js";
|
|
2
|
+
import type { PluginEffectivenessSummary } from "@devflow-tools/sdk";
|
|
1
3
|
export interface PluginMeta {
|
|
2
4
|
name: string;
|
|
3
5
|
npmPackage: string;
|
|
@@ -7,7 +9,10 @@ export interface PluginMeta {
|
|
|
7
9
|
createdAt: number;
|
|
8
10
|
}
|
|
9
11
|
export declare class RegistryService {
|
|
12
|
+
private readonly telemetryService;
|
|
10
13
|
private plugins;
|
|
14
|
+
private installRecords;
|
|
15
|
+
constructor(telemetryService: TelemetryService);
|
|
11
16
|
list(search?: string, tag?: string): Promise<PluginMeta[]>;
|
|
12
17
|
getByName(name: string): Promise<PluginMeta>;
|
|
13
18
|
publish(input: {
|
|
@@ -16,13 +21,18 @@ export declare class RegistryService {
|
|
|
16
21
|
description: string;
|
|
17
22
|
tags?: string[];
|
|
18
23
|
}): Promise<PluginMeta>;
|
|
19
|
-
install(name: string,
|
|
24
|
+
install(name: string, rootPath?: string): Promise<{
|
|
20
25
|
ok: boolean;
|
|
21
26
|
name: string;
|
|
22
27
|
}>;
|
|
23
|
-
uninstall(name: string,
|
|
28
|
+
uninstall(name: string, rootPath?: string): Promise<{
|
|
24
29
|
ok: boolean;
|
|
25
30
|
name: string;
|
|
26
31
|
}>;
|
|
32
|
+
recordPluginInstall(pluginName: string, projectRoot: string): Promise<void>;
|
|
33
|
+
recordPluginUninstall(pluginName: string, projectRoot: string): Promise<void>;
|
|
34
|
+
listInstalledProjects(pluginName: string): Promise<string[]>;
|
|
35
|
+
buildPluginEffectiveness(pluginName: string): Promise<PluginEffectivenessSummary>;
|
|
36
|
+
getPluginEffectiveness(projectRoot?: string): Promise<PluginEffectivenessSummary[]>;
|
|
27
37
|
}
|
|
28
38
|
//# sourceMappingURL=registry.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.service.d.ts","sourceRoot":"","sources":["../../src/registry/registry.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"registry.service.d.ts","sourceRoot":"","sources":["../../src/registry/registry.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAErE,OAAO,KAAK,EAAE,0BAA0B,EAA6C,MAAM,oBAAoB,CAAC;AAEhH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,qBACa,eAAe;IAIY,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAHvE,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,cAAc,CAA6B;gBAEI,gBAAgB,EAAE,gBAAgB;IAEnF,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAY1D,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAM5C,OAAO,CAAC,KAAK,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IAclH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAiBhF,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IASlF,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB3E,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU7E,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAM5D,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAiCjF,sBAAsB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,EAAE,CAAC;CAc1F"}
|