depfixer 1.0.0 → 1.1.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/dist/commands/audit.d.ts +19 -0
- package/dist/commands/audit.d.ts.map +1 -0
- package/dist/commands/audit.js +170 -0
- package/dist/commands/audit.js.map +1 -0
- package/dist/commands/fix.d.ts +10 -3
- package/dist/commands/fix.d.ts.map +1 -1
- package/dist/commands/fix.js +407 -41
- package/dist/commands/fix.js.map +1 -1
- package/dist/commands/graph.d.ts +1 -1
- package/dist/commands/graph.d.ts.map +1 -1
- package/dist/commands/graph.js +17 -12
- package/dist/commands/graph.js.map +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +120 -19
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logout.d.ts.map +1 -1
- package/dist/commands/logout.js +6 -0
- package/dist/commands/logout.js.map +1 -1
- package/dist/commands/migrate.d.ts +22 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +874 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/smart.d.ts +23 -0
- package/dist/commands/smart.d.ts.map +1 -0
- package/dist/commands/smart.js +1024 -0
- package/dist/commands/smart.js.map +1 -0
- package/dist/commands/whoami.d.ts +14 -0
- package/dist/commands/whoami.d.ts.map +1 -0
- package/dist/commands/whoami.js +65 -0
- package/dist/commands/whoami.js.map +1 -0
- package/dist/index.js +165 -40
- package/dist/index.js.map +1 -1
- package/dist/services/analytics.d.ts +108 -0
- package/dist/services/analytics.d.ts.map +1 -0
- package/dist/services/analytics.js +305 -0
- package/dist/services/analytics.js.map +1 -0
- package/dist/services/api-client.d.ts +159 -0
- package/dist/services/api-client.d.ts.map +1 -1
- package/dist/services/api-client.js +192 -10
- package/dist/services/api-client.js.map +1 -1
- package/dist/services/auth-manager.d.ts +14 -0
- package/dist/services/auth-manager.d.ts.map +1 -1
- package/dist/services/auth-manager.js +30 -0
- package/dist/services/auth-manager.js.map +1 -1
- package/dist/services/cache-manager.d.ts +62 -22
- package/dist/services/cache-manager.d.ts.map +1 -1
- package/dist/services/cache-manager.js +116 -30
- package/dist/services/cache-manager.js.map +1 -1
- package/dist/services/device-id.d.ts +20 -0
- package/dist/services/device-id.d.ts.map +1 -0
- package/dist/services/device-id.js +70 -0
- package/dist/services/device-id.js.map +1 -0
- package/dist/services/package-json.d.ts +44 -5
- package/dist/services/package-json.d.ts.map +1 -1
- package/dist/services/package-json.js +273 -20
- package/dist/services/package-json.js.map +1 -1
- package/dist/services/payment-flow.d.ts +108 -0
- package/dist/services/payment-flow.d.ts.map +1 -0
- package/dist/services/payment-flow.js +476 -0
- package/dist/services/payment-flow.js.map +1 -0
- package/dist/services/session-manager.d.ts +92 -0
- package/dist/services/session-manager.d.ts.map +1 -0
- package/dist/services/session-manager.js +218 -0
- package/dist/services/session-manager.js.map +1 -0
- package/dist/utils/design-system.d.ts +90 -0
- package/dist/utils/design-system.d.ts.map +1 -0
- package/dist/utils/design-system.js +338 -0
- package/dist/utils/design-system.js.map +1 -0
- package/dist/utils/output.d.ts +48 -1
- package/dist/utils/output.d.ts.map +1 -1
- package/dist/utils/output.js +180 -17
- package/dist/utils/output.js.map +1 -1
- package/dist/utils/print.d.ts +116 -0
- package/dist/utils/print.d.ts.map +1 -0
- package/dist/utils/print.js +190 -0
- package/dist/utils/print.js.map +1 -0
- package/package.json +13 -2
- package/dist/commands/analyze.d.ts +0 -18
- package/dist/commands/analyze.d.ts.map +0 -1
- package/dist/commands/analyze.js +0 -404
- package/dist/commands/analyze.js.map +0 -1
- package/dist/services/gitignore.d.ts +0 -19
- package/dist/services/gitignore.d.ts.map +0 -1
- package/dist/services/gitignore.js +0 -64
- package/dist/services/gitignore.js.map +0 -1
|
@@ -1,15 +1,30 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
2
|
import { AuthManager } from './auth-manager.js';
|
|
3
|
+
import { getDeviceId } from './device-id.js';
|
|
4
|
+
/**
|
|
5
|
+
* Custom error class for network-related errors
|
|
6
|
+
*/
|
|
7
|
+
export class NetworkError extends Error {
|
|
8
|
+
constructor(message) {
|
|
9
|
+
super(message);
|
|
10
|
+
this.name = 'NetworkError';
|
|
11
|
+
}
|
|
12
|
+
}
|
|
3
13
|
/**
|
|
4
14
|
* API Client for communicating with DepFixer server
|
|
5
15
|
*/
|
|
6
16
|
export class ApiClient {
|
|
7
17
|
client;
|
|
8
18
|
authManager;
|
|
19
|
+
debug;
|
|
20
|
+
webUrl;
|
|
9
21
|
constructor() {
|
|
10
22
|
const baseURL = process.env.DEPFIXER_API_URL || 'https://api.depfixer.com/api/v1';
|
|
11
|
-
|
|
12
|
-
|
|
23
|
+
this.webUrl = process.env.DEPFIXER_WEB_URL || 'https://app.depfixer.com';
|
|
24
|
+
// Debug only when explicitly enabled AND in dev env (localhost) - defaults to false
|
|
25
|
+
const isDevEnv = baseURL.includes('localhost') || baseURL.includes('127.0.0.1');
|
|
26
|
+
this.debug = process.env.DEPFIXER_DEBUG === 'true' && isDevEnv;
|
|
27
|
+
if (this.debug)
|
|
13
28
|
console.log('[DEBUG] API baseURL:', baseURL);
|
|
14
29
|
this.client = axios.create({
|
|
15
30
|
baseURL,
|
|
@@ -26,17 +41,17 @@ export class ApiClient {
|
|
|
26
41
|
if (token) {
|
|
27
42
|
config.headers.Authorization = `Bearer ${token}`;
|
|
28
43
|
}
|
|
29
|
-
if (debug)
|
|
44
|
+
if (this.debug)
|
|
30
45
|
console.log('[DEBUG] Request:', config.method?.toUpperCase(), config.url);
|
|
31
46
|
return config;
|
|
32
47
|
});
|
|
33
48
|
// Add response error handler
|
|
34
49
|
this.client.interceptors.response.use((response) => {
|
|
35
|
-
if (debug)
|
|
50
|
+
if (this.debug)
|
|
36
51
|
console.log('[DEBUG] Response:', response.status, JSON.stringify(response.data).slice(0, 200));
|
|
37
52
|
return response;
|
|
38
53
|
}, (error) => {
|
|
39
|
-
if (debug) {
|
|
54
|
+
if (this.debug) {
|
|
40
55
|
console.log('[DEBUG] Error:', error.response?.status, error.message);
|
|
41
56
|
console.log('[DEBUG] Error data:', JSON.stringify(error.response?.data));
|
|
42
57
|
}
|
|
@@ -45,29 +60,60 @@ export class ApiClient {
|
|
|
45
60
|
}
|
|
46
61
|
/**
|
|
47
62
|
* Audit analysis (FREE - no auth required)
|
|
63
|
+
* Includes deviceId for anonymous user tracking
|
|
48
64
|
*/
|
|
49
65
|
async analyzeAudit(packageJson, framework) {
|
|
50
|
-
const
|
|
51
|
-
if (debug) {
|
|
66
|
+
const deviceId = getDeviceId();
|
|
67
|
+
if (this.debug) {
|
|
52
68
|
console.log('[DEBUG] analyzeAudit called');
|
|
53
69
|
console.log('[DEBUG] packageJson keys:', Object.keys(packageJson));
|
|
54
70
|
console.log('[DEBUG] framework:', framework);
|
|
71
|
+
console.log('[DEBUG] deviceId:', deviceId);
|
|
55
72
|
}
|
|
56
73
|
try {
|
|
57
74
|
const response = await this.client.post('/cli/analyze/audit', {
|
|
58
75
|
packageJson,
|
|
59
76
|
framework,
|
|
77
|
+
deviceId,
|
|
60
78
|
});
|
|
61
79
|
return response.data;
|
|
62
80
|
}
|
|
63
81
|
catch (err) {
|
|
64
|
-
if (debug) {
|
|
82
|
+
if (this.debug) {
|
|
65
83
|
console.log('[DEBUG] analyzeAudit error:', err.message);
|
|
66
84
|
console.log('[DEBUG] full error:', JSON.stringify(err.response?.data || err, null, 2));
|
|
67
85
|
}
|
|
68
86
|
throw err;
|
|
69
87
|
}
|
|
70
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* CI analysis (requires API key or JWT auth)
|
|
91
|
+
* Used by GitHub Actions and other CI/CD pipelines
|
|
92
|
+
*/
|
|
93
|
+
async analyzeForCi(packageJson, framework) {
|
|
94
|
+
// Check for auth (API key or JWT)
|
|
95
|
+
const authHeader = await this.authManager.getAuthHeader();
|
|
96
|
+
if (!authHeader) {
|
|
97
|
+
throw new Error('Authentication required for CI mode. Set DEPFIXER_TOKEN environment variable.');
|
|
98
|
+
}
|
|
99
|
+
try {
|
|
100
|
+
const response = await this.client.post('/cli/analyze/ci', {
|
|
101
|
+
packageJson,
|
|
102
|
+
framework,
|
|
103
|
+
}, {
|
|
104
|
+
headers: {
|
|
105
|
+
Authorization: authHeader,
|
|
106
|
+
},
|
|
107
|
+
});
|
|
108
|
+
return response.data;
|
|
109
|
+
}
|
|
110
|
+
catch (error) {
|
|
111
|
+
if (this.isNetworkError(error)) {
|
|
112
|
+
throw new NetworkError('Network error: Unable to connect to DepFixer server.');
|
|
113
|
+
}
|
|
114
|
+
throw error;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
71
117
|
/**
|
|
72
118
|
* Full analysis (PAID - auth required)
|
|
73
119
|
*/
|
|
@@ -125,6 +171,117 @@ export class ApiClient {
|
|
|
125
171
|
const response = await this.client.get(`/analyze/analysis/${analysisId}`);
|
|
126
172
|
return response.data;
|
|
127
173
|
}
|
|
174
|
+
/**
|
|
175
|
+
* Get solution for an analysis (used by fix command)
|
|
176
|
+
* Fetches the solution from server to apply fixes
|
|
177
|
+
*/
|
|
178
|
+
async getSolution(analysisId) {
|
|
179
|
+
if (!await this.authManager.isAuthenticated()) {
|
|
180
|
+
throw new Error('Authentication required. Run `npx depfixer login` first.');
|
|
181
|
+
}
|
|
182
|
+
try {
|
|
183
|
+
const response = await this.client.get(`/cli/analysis/${analysisId}/solution`);
|
|
184
|
+
return response.data;
|
|
185
|
+
}
|
|
186
|
+
catch (error) {
|
|
187
|
+
// Check if it's a network error
|
|
188
|
+
if (this.isNetworkError(error)) {
|
|
189
|
+
throw new NetworkError('Network error: Unable to connect to DepFixer server. Please check your internet connection.');
|
|
190
|
+
}
|
|
191
|
+
throw error;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Get user credit balance
|
|
196
|
+
*/
|
|
197
|
+
async getBalance() {
|
|
198
|
+
if (!await this.authManager.isAuthenticated()) {
|
|
199
|
+
throw new Error('Authentication required. Run `npx depfixer login` first.');
|
|
200
|
+
}
|
|
201
|
+
try {
|
|
202
|
+
const response = await this.client.get('/cli/balance');
|
|
203
|
+
return response.data;
|
|
204
|
+
}
|
|
205
|
+
catch (error) {
|
|
206
|
+
if (this.isNetworkError(error)) {
|
|
207
|
+
throw new NetworkError('Network error: Unable to connect to DepFixer server.');
|
|
208
|
+
}
|
|
209
|
+
throw error;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Execute fix: deduct credits and get solution
|
|
214
|
+
* This is the payment endpoint that deducts credits
|
|
215
|
+
* Returns solution and full analysis data for CLI display
|
|
216
|
+
*/
|
|
217
|
+
async executeFix(analysisId) {
|
|
218
|
+
if (!await this.authManager.isAuthenticated()) {
|
|
219
|
+
throw new Error('Authentication required. Run `npx depfixer login` first.');
|
|
220
|
+
}
|
|
221
|
+
try {
|
|
222
|
+
const response = await this.client.post('/cli/execute-fix', { analysisId });
|
|
223
|
+
return response.data;
|
|
224
|
+
}
|
|
225
|
+
catch (error) {
|
|
226
|
+
if (this.isNetworkError(error)) {
|
|
227
|
+
throw new NetworkError('Network error: Unable to connect to DepFixer server.');
|
|
228
|
+
}
|
|
229
|
+
throw error;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Get analysis payment status
|
|
234
|
+
*/
|
|
235
|
+
async getAnalysisStatus(analysisId) {
|
|
236
|
+
if (!await this.authManager.isAuthenticated()) {
|
|
237
|
+
throw new Error('Authentication required. Run `npx depfixer login` first.');
|
|
238
|
+
}
|
|
239
|
+
try {
|
|
240
|
+
const response = await this.client.get(`/cli/analysis/${analysisId}/status`);
|
|
241
|
+
return response.data;
|
|
242
|
+
}
|
|
243
|
+
catch (error) {
|
|
244
|
+
if (this.isNetworkError(error)) {
|
|
245
|
+
throw new NetworkError('Network error: Unable to connect to DepFixer server.');
|
|
246
|
+
}
|
|
247
|
+
throw error;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Get available framework versions for migration
|
|
252
|
+
* Uses selector format for CLI version picker
|
|
253
|
+
*/
|
|
254
|
+
async getFrameworkVersions(framework, currentVersion) {
|
|
255
|
+
try {
|
|
256
|
+
// Don't use majorOnly to get all available versions
|
|
257
|
+
let url = `/analyze/framework-versions/${framework}?format=selector`;
|
|
258
|
+
if (currentVersion !== undefined) {
|
|
259
|
+
url += `¤tVersion=${currentVersion}`;
|
|
260
|
+
}
|
|
261
|
+
const response = await this.client.get(url);
|
|
262
|
+
return response.data;
|
|
263
|
+
}
|
|
264
|
+
catch (error) {
|
|
265
|
+
if (this.isNetworkError(error)) {
|
|
266
|
+
throw new NetworkError('Network error: Unable to connect to DepFixer server.');
|
|
267
|
+
}
|
|
268
|
+
throw error;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Check if error is a network error
|
|
273
|
+
*/
|
|
274
|
+
isNetworkError(error) {
|
|
275
|
+
if (!error)
|
|
276
|
+
return false;
|
|
277
|
+
const code = error.code;
|
|
278
|
+
return code === 'ECONNREFUSED' ||
|
|
279
|
+
code === 'ENOTFOUND' ||
|
|
280
|
+
code === 'ETIMEDOUT' ||
|
|
281
|
+
code === 'ENETUNREACH' ||
|
|
282
|
+
code === 'ECONNRESET' ||
|
|
283
|
+
code === 'ERR_NETWORK';
|
|
284
|
+
}
|
|
128
285
|
/**
|
|
129
286
|
* Handle API errors
|
|
130
287
|
*/
|
|
@@ -138,10 +295,11 @@ export class ApiClient {
|
|
|
138
295
|
}
|
|
139
296
|
if (status === 403) {
|
|
140
297
|
if (data?.error === 'INSUFFICIENT_CREDITS') {
|
|
141
|
-
throw new Error(
|
|
298
|
+
throw new Error(`Insufficient credits. Purchase more at ${this.webUrl}/dashboard/credits/pricing`);
|
|
142
299
|
}
|
|
143
300
|
if (data?.error === 'RATE_LIMIT_EXCEEDED') {
|
|
144
|
-
|
|
301
|
+
// Use the server's message directly as it already includes the time
|
|
302
|
+
throw new Error(data?.message || 'Rate limit exceeded. Please try again later.');
|
|
145
303
|
}
|
|
146
304
|
throw new Error(data?.message || 'Access forbidden');
|
|
147
305
|
}
|
|
@@ -158,5 +316,29 @@ export class ApiClient {
|
|
|
158
316
|
}
|
|
159
317
|
throw new Error(error.message || 'Unknown error occurred');
|
|
160
318
|
}
|
|
319
|
+
/**
|
|
320
|
+
* Link device analyses to user after login
|
|
321
|
+
* This links all anonymous analyses from this device to the logged-in user
|
|
322
|
+
*/
|
|
323
|
+
async linkDeviceToUser() {
|
|
324
|
+
if (!await this.authManager.isAuthenticated()) {
|
|
325
|
+
throw new Error('Authentication required.');
|
|
326
|
+
}
|
|
327
|
+
try {
|
|
328
|
+
const deviceId = getDeviceId();
|
|
329
|
+
const response = await this.client.post('/cli/link-device', { deviceId });
|
|
330
|
+
return response.data;
|
|
331
|
+
}
|
|
332
|
+
catch (error) {
|
|
333
|
+
if (this.isNetworkError(error)) {
|
|
334
|
+
throw new NetworkError('Network error: Unable to connect to DepFixer server.');
|
|
335
|
+
}
|
|
336
|
+
// Don't throw on link-device errors - it's not critical
|
|
337
|
+
if (this.debug) {
|
|
338
|
+
console.log('[DEBUG] linkDeviceToUser error:', error.message);
|
|
339
|
+
}
|
|
340
|
+
return { success: false, error: error.message };
|
|
341
|
+
}
|
|
342
|
+
}
|
|
161
343
|
}
|
|
162
344
|
//# sourceMappingURL=api-client.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/services/api-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../src/services/api-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,20 @@ export declare class AuthManager {
|
|
|
22
22
|
* Clear stored credentials (logout)
|
|
23
23
|
*/
|
|
24
24
|
clearCredentials(): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
* Get API key from environment (for CI mode)
|
|
27
|
+
* Checks DEPFIXER_TOKEN environment variable
|
|
28
|
+
*/
|
|
29
|
+
getApiKey(): string | null;
|
|
30
|
+
/**
|
|
31
|
+
* Get auth header - prefers API key (CI), falls back to JWT (interactive)
|
|
32
|
+
* Returns null if neither is available
|
|
33
|
+
*/
|
|
34
|
+
getAuthHeader(): Promise<string | null>;
|
|
35
|
+
/**
|
|
36
|
+
* Check if running in CI mode (has DEPFIXER_TOKEN env var)
|
|
37
|
+
*/
|
|
38
|
+
isApiKeyMode(): boolean;
|
|
25
39
|
/**
|
|
26
40
|
* Read credentials from file
|
|
27
41
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-manager.d.ts","sourceRoot":"","sources":["../../src/services/auth-manager.ts"],"names":[],"mappings":"AAUA;;;;GAIG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,eAAe,CAAS;;IAOhC;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAKzC;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAkB9C;;OAEG;IACG,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB7F;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAQvC;;OAEG;YACW,eAAe;CAQ9B"}
|
|
1
|
+
{"version":3,"file":"auth-manager.d.ts","sourceRoot":"","sources":["../../src/services/auth-manager.ts"],"names":[],"mappings":"AAUA;;;;GAIG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,eAAe,CAAS;;IAOhC;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAKzC;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAkB9C;;OAEG;IACG,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB7F;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAQvC;;;OAGG;IACH,SAAS,IAAI,MAAM,GAAG,IAAI;IAI1B;;;OAGG;IACG,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAgB7C;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;OAEG;YACW,eAAe;CAQ9B"}
|
|
@@ -66,6 +66,36 @@ export class AuthManager {
|
|
|
66
66
|
// File might not exist, that's fine
|
|
67
67
|
}
|
|
68
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* Get API key from environment (for CI mode)
|
|
71
|
+
* Checks DEPFIXER_TOKEN environment variable
|
|
72
|
+
*/
|
|
73
|
+
getApiKey() {
|
|
74
|
+
return process.env.DEPFIXER_TOKEN || null;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Get auth header - prefers API key (CI), falls back to JWT (interactive)
|
|
78
|
+
* Returns null if neither is available
|
|
79
|
+
*/
|
|
80
|
+
async getAuthHeader() {
|
|
81
|
+
// 1. Check for API key in env (CI mode)
|
|
82
|
+
const apiKey = this.getApiKey();
|
|
83
|
+
if (apiKey) {
|
|
84
|
+
return `Bearer ${apiKey}`;
|
|
85
|
+
}
|
|
86
|
+
// 2. Fall back to JWT token (interactive mode)
|
|
87
|
+
const token = await this.getAccessToken();
|
|
88
|
+
if (token) {
|
|
89
|
+
return `Bearer ${token}`;
|
|
90
|
+
}
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Check if running in CI mode (has DEPFIXER_TOKEN env var)
|
|
95
|
+
*/
|
|
96
|
+
isApiKeyMode() {
|
|
97
|
+
return !!process.env.DEPFIXER_TOKEN;
|
|
98
|
+
}
|
|
69
99
|
/**
|
|
70
100
|
* Read credentials from file
|
|
71
101
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-manager.js","sourceRoot":"","sources":["../../src/services/auth-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAQzB;;;;GAIG;AACH,MAAM,OAAO,WAAW;IACd,eAAe,CAAS;IAEhC;QACE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;QACzD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;IACpE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe;QACnB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,OAAO,CAAC,CAAC,KAAK,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc;QAClB,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YACjD,IAAI,CAAC,WAAW;gBAAE,OAAO,IAAI,CAAC;YAE9B,mDAAmD;YACnD,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;YAC/B,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,SAAS,GAAG,QAAQ,EAAE,CAAC;gBAClD,yCAAyC;gBACzC,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,WAAW,CAAC,WAAW,CAAC;QACjC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,WAAmB,EAAE,YAAoB,EAAE,SAAiB;QAC3E,MAAM,WAAW,GAAgB;YAC/B,WAAW;YACX,YAAY;YACZ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,GAAG,IAAI;SACzC,CAAC;QAEF,0BAA0B;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC/C,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEzC,qDAAqD;QACrD,MAAM,EAAE,CAAC,SAAS,CAChB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,EACpC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,wBAAwB;SACzC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB;QACpB,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,oCAAoC;QACtC,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,eAAe;QAC3B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;YAC9D,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAgB,CAAC;QACzC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"auth-manager.js","sourceRoot":"","sources":["../../src/services/auth-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,50 +1,90 @@
|
|
|
1
|
-
interface
|
|
1
|
+
interface AnalysisEntry {
|
|
2
|
+
analysisId: string;
|
|
3
|
+
projectName: string;
|
|
4
|
+
packageJsonHash: string;
|
|
2
5
|
timestamp: number;
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
};
|
|
6
|
+
mode: 'full' | 'migrate';
|
|
7
|
+
targetVersion?: string;
|
|
8
|
+
projectPath?: string;
|
|
9
|
+
}
|
|
10
|
+
interface AnalysisHistory {
|
|
11
|
+
entries: AnalysisEntry[];
|
|
10
12
|
}
|
|
11
13
|
/**
|
|
12
14
|
* Cache Manager
|
|
13
|
-
* Handles local caching of analysis
|
|
15
|
+
* Handles local caching of analysis history for the fix command
|
|
14
16
|
*
|
|
15
|
-
* Cache is stored in
|
|
16
|
-
*
|
|
17
|
+
* Cache is stored in ~/.depfixer/projects/{projectHash}/analysis-history.json
|
|
18
|
+
* Stores history of all analyses - solution is fetched from server when fixing
|
|
19
|
+
* Centralized storage (no .depfixer in project directory)
|
|
17
20
|
*/
|
|
18
21
|
export declare class CacheManager {
|
|
19
22
|
private cacheDir;
|
|
20
23
|
private cacheFile;
|
|
24
|
+
private maxEntries;
|
|
25
|
+
private projectDir;
|
|
21
26
|
constructor(projectDir?: string);
|
|
22
27
|
/**
|
|
23
|
-
*
|
|
28
|
+
* Generate a short hash from project path for unique folder name
|
|
29
|
+
*/
|
|
30
|
+
private getProjectHash;
|
|
31
|
+
/**
|
|
32
|
+
* Add analysis to history
|
|
33
|
+
* Stores analysisId, projectName, and hash - no solution content
|
|
34
|
+
*/
|
|
35
|
+
saveAnalysis(packageJsonContent: string, analysisId: string, projectName: string, mode: 'full' | 'migrate', targetVersion?: string): Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* Load analysis history
|
|
38
|
+
*/
|
|
39
|
+
loadHistory(): Promise<AnalysisHistory>;
|
|
40
|
+
/**
|
|
41
|
+
* Get the latest analysis entry
|
|
42
|
+
* Returns null if no history exists
|
|
43
|
+
*/
|
|
44
|
+
getLatestAnalysis(): Promise<AnalysisEntry | null>;
|
|
45
|
+
/**
|
|
46
|
+
* Get analysis by ID
|
|
47
|
+
* Returns null if not found
|
|
24
48
|
*/
|
|
25
|
-
|
|
26
|
-
dependencies: Record<string, string>;
|
|
27
|
-
devDependencies: Record<string, string>;
|
|
28
|
-
}): Promise<void>;
|
|
49
|
+
getAnalysisById(analysisId: string): Promise<AnalysisEntry | null>;
|
|
29
50
|
/**
|
|
30
|
-
*
|
|
31
|
-
* Returns null if no cache exists
|
|
51
|
+
* Get all analyses (for listing)
|
|
32
52
|
*/
|
|
33
|
-
|
|
53
|
+
getAllAnalyses(): Promise<AnalysisEntry[]>;
|
|
34
54
|
/**
|
|
35
55
|
* Verify that package.json hasn't changed since analysis
|
|
36
56
|
*/
|
|
37
|
-
verifyHash(packageJsonContent: string): Promise<boolean>;
|
|
57
|
+
verifyHash(packageJsonContent: string, analysisId?: string): Promise<boolean>;
|
|
38
58
|
/**
|
|
39
59
|
* Get cache file path (for display purposes)
|
|
40
60
|
*/
|
|
41
61
|
getCacheFilePath(): string;
|
|
42
62
|
/**
|
|
43
|
-
* Check if
|
|
63
|
+
* Check if any analysis history exists
|
|
64
|
+
*/
|
|
65
|
+
hasHistory(): Promise<boolean>;
|
|
66
|
+
/**
|
|
67
|
+
* Clear all history
|
|
68
|
+
*/
|
|
69
|
+
clearHistory(): Promise<void>;
|
|
70
|
+
/**
|
|
71
|
+
* @deprecated Use saveAnalysis instead
|
|
72
|
+
*/
|
|
73
|
+
saveCache(packageJsonContent: string, analysisId: string): Promise<void>;
|
|
74
|
+
/**
|
|
75
|
+
* @deprecated Use getLatestAnalysis instead
|
|
76
|
+
*/
|
|
77
|
+
loadCache(): Promise<{
|
|
78
|
+
analysisId: string;
|
|
79
|
+
originalFileHash: string;
|
|
80
|
+
timestamp: number;
|
|
81
|
+
} | null>;
|
|
82
|
+
/**
|
|
83
|
+
* @deprecated Use hasHistory instead
|
|
44
84
|
*/
|
|
45
85
|
cacheExists(): Promise<boolean>;
|
|
46
86
|
/**
|
|
47
|
-
*
|
|
87
|
+
* @deprecated Use clearHistory instead
|
|
48
88
|
*/
|
|
49
89
|
clearCache(): Promise<void>;
|
|
50
90
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache-manager.d.ts","sourceRoot":"","sources":["../../src/services/cache-manager.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cache-manager.d.ts","sourceRoot":"","sources":["../../src/services/cache-manager.ts"],"names":[],"mappings":"AAMA,UAAU,aAAa;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,eAAe;IACvB,OAAO,EAAE,aAAa,EAAE,CAAC;CAC1B;AAED;;;;;;;GAOG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,UAAU,CAAM;IACxB,OAAO,CAAC,UAAU,CAAS;gBAEf,UAAU,GAAE,MAAsB;IAQ9C;;OAEG;IACH,OAAO,CAAC,cAAc;IAMtB;;;OAGG;IACG,YAAY,CAChB,kBAAkB,EAAE,MAAM,EAC1B,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,IAAI,CAAC;IAgChB;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,eAAe,CAAC;IAS7C;;;OAGG;IACG,iBAAiB,IAAI,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAKxD;;;OAGG;IACG,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAKxE;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAKhD;;OAEG;IACG,UAAU,CAAC,kBAAkB,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAWnF;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAI1B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAKpC;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAUnC;;OAEG;IACG,SAAS,CAAC,kBAAkB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAY9E;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,gBAAgB,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAUtG;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAIrC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAGlC"}
|