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,5 +1,6 @@
|
|
|
1
1
|
import * as fs from 'fs/promises';
|
|
2
2
|
import * as path from 'path';
|
|
3
|
+
import { VersionUtils } from '@depfixer/shared';
|
|
3
4
|
/**
|
|
4
5
|
* Package.json Service
|
|
5
6
|
* Handles reading, sanitizing, and writing package.json files
|
|
@@ -43,45 +44,292 @@ export class PackageJsonService {
|
|
|
43
44
|
};
|
|
44
45
|
}
|
|
45
46
|
/**
|
|
46
|
-
* Apply
|
|
47
|
+
* Apply surgical fixes to package.json
|
|
48
|
+
* Only modifies version strings, preserves all formatting
|
|
49
|
+
* Creates backup before modifying
|
|
50
|
+
* Also handles package removals (deprecated packages) and engine updates
|
|
47
51
|
*/
|
|
48
|
-
async
|
|
49
|
-
const
|
|
50
|
-
|
|
51
|
-
//
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
52
|
+
async applySurgicalFixes(dir, changes, removals, engines) {
|
|
53
|
+
const filePath = path.join(dir, 'package.json');
|
|
54
|
+
let content = await fs.readFile(filePath, 'utf-8');
|
|
55
|
+
// Create backup first
|
|
56
|
+
const backupPath = path.join(dir, 'package.json.bak');
|
|
57
|
+
await fs.writeFile(backupPath, content, 'utf-8');
|
|
58
|
+
let applied = 0;
|
|
59
|
+
let removed = 0;
|
|
60
|
+
let enginesUpdated = 0;
|
|
61
|
+
// Apply each version change surgically
|
|
62
|
+
for (const change of changes) {
|
|
63
|
+
const section = change.type === 'devDependency' ? 'devDependencies' : 'dependencies';
|
|
64
|
+
const result = this.replaceVersionInSection(content, section, change.package, change.from, change.to);
|
|
65
|
+
if (result.replaced) {
|
|
66
|
+
content = result.content;
|
|
67
|
+
applied++;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
// Apply removals (delete deprecated packages)
|
|
71
|
+
if (removals && removals.length > 0) {
|
|
72
|
+
for (const removal of removals) {
|
|
73
|
+
const section = removal.type === 'devDependency' ? 'devDependencies' : 'dependencies';
|
|
74
|
+
const result = this.removePackageFromSection(content, section, removal.package);
|
|
75
|
+
if (result.removed) {
|
|
76
|
+
content = result.content;
|
|
77
|
+
removed++;
|
|
56
78
|
}
|
|
57
79
|
}
|
|
58
80
|
}
|
|
59
|
-
// Apply
|
|
60
|
-
if (
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
81
|
+
// Apply engine updates (Node.js/npm requirements)
|
|
82
|
+
if (engines && Object.keys(engines).length > 0) {
|
|
83
|
+
const result = this.updateEngines(content, engines);
|
|
84
|
+
content = result.content;
|
|
85
|
+
enginesUpdated = result.updated;
|
|
86
|
+
}
|
|
87
|
+
// Write back modified content
|
|
88
|
+
await fs.writeFile(filePath, content, 'utf-8');
|
|
89
|
+
return { backupPath, applied, removed, enginesUpdated };
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Replace a package version within a specific section of package.json
|
|
93
|
+
* Preserves all formatting and only changes the version string
|
|
94
|
+
*/
|
|
95
|
+
replaceVersionInSection(content, section, packageName, fromVersion, toVersion) {
|
|
96
|
+
// Find the section in the content
|
|
97
|
+
const sectionRegex = new RegExp(`"${section}"\\s*:\\s*\\{`, 'g');
|
|
98
|
+
const sectionMatch = sectionRegex.exec(content);
|
|
99
|
+
if (!sectionMatch) {
|
|
100
|
+
return { content, replaced: false };
|
|
101
|
+
}
|
|
102
|
+
const sectionStart = sectionMatch.index;
|
|
103
|
+
// Find the closing brace for this section (handle nested objects)
|
|
104
|
+
let braceCount = 0;
|
|
105
|
+
let sectionEnd = sectionStart;
|
|
106
|
+
let inSection = false;
|
|
107
|
+
for (let i = sectionStart; i < content.length; i++) {
|
|
108
|
+
if (content[i] === '{') {
|
|
109
|
+
braceCount++;
|
|
110
|
+
inSection = true;
|
|
111
|
+
}
|
|
112
|
+
else if (content[i] === '}') {
|
|
113
|
+
braceCount--;
|
|
114
|
+
if (inSection && braceCount === 0) {
|
|
115
|
+
sectionEnd = i + 1;
|
|
116
|
+
break;
|
|
64
117
|
}
|
|
65
118
|
}
|
|
66
119
|
}
|
|
67
|
-
//
|
|
120
|
+
// Extract the section content
|
|
121
|
+
const sectionContent = content.substring(sectionStart, sectionEnd);
|
|
122
|
+
// Escape special regex characters in package name and version
|
|
123
|
+
const escapedPkgName = packageName.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
124
|
+
const escapedFromVersion = fromVersion.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
125
|
+
// Pattern to match: "package-name": "version" (with flexible whitespace)
|
|
126
|
+
// Captures the package declaration and replaces only the version
|
|
127
|
+
const packagePattern = new RegExp(`("${escapedPkgName}"\\s*:\\s*")${escapedFromVersion}(")`);
|
|
128
|
+
const match = packagePattern.exec(sectionContent);
|
|
129
|
+
if (!match) {
|
|
130
|
+
return { content, replaced: false };
|
|
131
|
+
}
|
|
132
|
+
// Replace the version in the section
|
|
133
|
+
const newSectionContent = sectionContent.replace(packagePattern, `$1${toVersion}$2`);
|
|
134
|
+
// Reconstruct the full content
|
|
135
|
+
const newContent = content.substring(0, sectionStart) + newSectionContent + content.substring(sectionEnd);
|
|
136
|
+
return { content: newContent, replaced: true };
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Remove a package entry from a specific section of package.json
|
|
140
|
+
* Preserves all formatting and removes only the package line
|
|
141
|
+
*/
|
|
142
|
+
removePackageFromSection(content, section, packageName) {
|
|
143
|
+
// Escape special regex characters in package name
|
|
144
|
+
const escapedPkgName = packageName.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
145
|
+
// Split content into lines to work line by line
|
|
146
|
+
const lines = content.split('\n');
|
|
147
|
+
let inSection = false;
|
|
148
|
+
let braceCount = 0;
|
|
149
|
+
let packageLineIndex = -1;
|
|
150
|
+
let hasTrailingComma = false;
|
|
151
|
+
// Find the package line within the section
|
|
152
|
+
for (let i = 0; i < lines.length; i++) {
|
|
153
|
+
const line = lines[i];
|
|
154
|
+
// Check if entering the section
|
|
155
|
+
if (line.includes(`"${section}"`)) {
|
|
156
|
+
inSection = true;
|
|
157
|
+
}
|
|
158
|
+
if (inSection) {
|
|
159
|
+
// Count braces
|
|
160
|
+
braceCount += (line.match(/\{/g) || []).length;
|
|
161
|
+
braceCount -= (line.match(/\}/g) || []).length;
|
|
162
|
+
// Check if this line contains the package
|
|
163
|
+
const packagePattern = new RegExp(`^\\s*"${escapedPkgName}"\\s*:\\s*"[^"]*"\\s*,?\\s*$`);
|
|
164
|
+
if (packagePattern.test(line)) {
|
|
165
|
+
packageLineIndex = i;
|
|
166
|
+
hasTrailingComma = line.trimEnd().endsWith(',');
|
|
167
|
+
break;
|
|
168
|
+
}
|
|
169
|
+
// Exit section if braces are balanced
|
|
170
|
+
if (braceCount === 0 && i > 0) {
|
|
171
|
+
break;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
if (packageLineIndex === -1) {
|
|
176
|
+
return { content, removed: false };
|
|
177
|
+
}
|
|
178
|
+
// Remove the package line
|
|
179
|
+
lines.splice(packageLineIndex, 1);
|
|
180
|
+
// If this line didn't have a trailing comma, check if we need to remove comma from previous line
|
|
181
|
+
if (!hasTrailingComma && packageLineIndex > 0) {
|
|
182
|
+
const prevLine = lines[packageLineIndex - 1];
|
|
183
|
+
// Only remove comma if the previous line has a value (not opening brace)
|
|
184
|
+
if (prevLine.trimEnd().endsWith(',')) {
|
|
185
|
+
lines[packageLineIndex - 1] = prevLine.replace(/,(\s*)$/, '$1');
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
return { content: lines.join('\n'), removed: true };
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Update or add engines section in package.json
|
|
192
|
+
* Preserves formatting when updating existing engines
|
|
193
|
+
* Adds engines section after version field if not present
|
|
194
|
+
*/
|
|
195
|
+
updateEngines(content, engines) {
|
|
196
|
+
let updated = 0;
|
|
197
|
+
let newContent = content;
|
|
198
|
+
// Check if engines section exists
|
|
199
|
+
const enginesRegex = /"engines"\s*:\s*\{/;
|
|
200
|
+
const hasEngines = enginesRegex.test(content);
|
|
201
|
+
if (hasEngines) {
|
|
202
|
+
// Update existing engines section
|
|
203
|
+
// Find the engines section
|
|
204
|
+
const enginesMatch = enginesRegex.exec(content);
|
|
205
|
+
if (enginesMatch) {
|
|
206
|
+
const enginesStart = enginesMatch.index;
|
|
207
|
+
// Find closing brace for engines section
|
|
208
|
+
let braceCount = 0;
|
|
209
|
+
let enginesEnd = enginesStart;
|
|
210
|
+
let inSection = false;
|
|
211
|
+
for (let i = enginesStart; i < content.length; i++) {
|
|
212
|
+
if (content[i] === '{') {
|
|
213
|
+
braceCount++;
|
|
214
|
+
inSection = true;
|
|
215
|
+
}
|
|
216
|
+
else if (content[i] === '}') {
|
|
217
|
+
braceCount--;
|
|
218
|
+
if (inSection && braceCount === 0) {
|
|
219
|
+
enginesEnd = i + 1;
|
|
220
|
+
break;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
// Extract engines section content
|
|
225
|
+
const enginesContent = content.substring(enginesStart, enginesEnd);
|
|
226
|
+
// Update each engine value
|
|
227
|
+
let newEnginesContent = enginesContent;
|
|
228
|
+
for (const [key, value] of Object.entries(engines)) {
|
|
229
|
+
if (!value)
|
|
230
|
+
continue;
|
|
231
|
+
const engineKeyPattern = new RegExp(`("${key}"\\s*:\\s*)"[^"]*"`);
|
|
232
|
+
if (engineKeyPattern.test(newEnginesContent)) {
|
|
233
|
+
// Update existing key
|
|
234
|
+
newEnginesContent = newEnginesContent.replace(engineKeyPattern, `$1"${value}"`);
|
|
235
|
+
updated++;
|
|
236
|
+
}
|
|
237
|
+
else {
|
|
238
|
+
// Add new key to engines section
|
|
239
|
+
// Find position before closing brace
|
|
240
|
+
const closingBraceIndex = newEnginesContent.lastIndexOf('}');
|
|
241
|
+
const beforeBrace = newEnginesContent.substring(0, closingBraceIndex);
|
|
242
|
+
const afterBrace = newEnginesContent.substring(closingBraceIndex);
|
|
243
|
+
// Check if there are existing entries (need comma)
|
|
244
|
+
const hasEntries = /"[^"]+"\s*:\s*"[^"]*"/.test(beforeBrace);
|
|
245
|
+
const indent = ' '; // Standard 2-space indent for nested properties
|
|
246
|
+
if (hasEntries) {
|
|
247
|
+
// Add comma after last entry and new entry
|
|
248
|
+
newEnginesContent = beforeBrace.replace(/(\s*)$/, `,\n${indent}"${key}": "${value}"$1`) + afterBrace;
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
// First entry
|
|
252
|
+
newEnginesContent = beforeBrace + `\n${indent}"${key}": "${value}"\n ` + afterBrace;
|
|
253
|
+
}
|
|
254
|
+
updated++;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
newContent = content.substring(0, enginesStart) + newEnginesContent + content.substring(enginesEnd);
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
else {
|
|
261
|
+
// Add new engines section after "version" field (or after "name" if no version)
|
|
262
|
+
const enginesObj = {};
|
|
263
|
+
for (const [key, value] of Object.entries(engines)) {
|
|
264
|
+
if (value) {
|
|
265
|
+
enginesObj[key] = value;
|
|
266
|
+
updated++;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
if (updated > 0) {
|
|
270
|
+
// Build engines string with proper formatting
|
|
271
|
+
const enginesEntries = Object.entries(enginesObj)
|
|
272
|
+
.map(([k, v]) => ` "${k}": "${v}"`)
|
|
273
|
+
.join(',\n');
|
|
274
|
+
const enginesStr = `"engines": {\n${enginesEntries}\n }`;
|
|
275
|
+
// Find insertion point - after "version" or "name"
|
|
276
|
+
const versionPattern = /"version"\s*:\s*"[^"]*"/;
|
|
277
|
+
const namePattern = /"name"\s*:\s*"[^"]*"/;
|
|
278
|
+
let insertMatch = versionPattern.exec(content);
|
|
279
|
+
if (!insertMatch) {
|
|
280
|
+
insertMatch = namePattern.exec(content);
|
|
281
|
+
}
|
|
282
|
+
if (insertMatch) {
|
|
283
|
+
const insertPoint = insertMatch.index + insertMatch[0].length;
|
|
284
|
+
// Check if there's a comma after
|
|
285
|
+
const afterInsert = content.substring(insertPoint);
|
|
286
|
+
const hasCommaAfter = /^\s*,/.test(afterInsert);
|
|
287
|
+
if (hasCommaAfter) {
|
|
288
|
+
// Insert after the comma
|
|
289
|
+
const commaMatch = /^(\s*,)/.exec(afterInsert);
|
|
290
|
+
if (commaMatch) {
|
|
291
|
+
const afterComma = insertPoint + commaMatch[0].length;
|
|
292
|
+
newContent = content.substring(0, afterComma) + '\n ' + enginesStr + ',' + content.substring(afterComma);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
else {
|
|
296
|
+
// Add comma and insert
|
|
297
|
+
newContent = content.substring(0, insertPoint) + ',\n ' + enginesStr + content.substring(insertPoint);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
return { content: newContent, updated };
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Write a modified package.json to package.json.fixed
|
|
306
|
+
* Preserves original file, allows user to review before applying
|
|
307
|
+
*/
|
|
308
|
+
async writeFixed(dir, packageJson) {
|
|
68
309
|
const fixedPath = path.join(dir, 'package.json.fixed');
|
|
69
|
-
|
|
310
|
+
const content = JSON.stringify(packageJson, null, 2);
|
|
311
|
+
await fs.writeFile(fixedPath, content, 'utf-8');
|
|
70
312
|
return fixedPath;
|
|
71
313
|
}
|
|
72
314
|
/**
|
|
73
315
|
* Get list of changes that would be applied
|
|
316
|
+
* Skips unknown versions and REMOVE versions (matches web algorithm)
|
|
74
317
|
*/
|
|
75
318
|
getChanges(original, solution) {
|
|
76
319
|
const changes = [];
|
|
77
320
|
// Check dependencies
|
|
78
321
|
if (original.dependencies) {
|
|
79
322
|
for (const [pkg, version] of Object.entries(solution.dependencies)) {
|
|
80
|
-
|
|
323
|
+
const versionStr = version;
|
|
324
|
+
// Skip unknown/invalid versions and REMOVE versions (handled separately)
|
|
325
|
+
if (VersionUtils.isUnknownVersion(versionStr) || VersionUtils.isRemoveVersion(versionStr)) {
|
|
326
|
+
continue;
|
|
327
|
+
}
|
|
328
|
+
if (original.dependencies[pkg] && original.dependencies[pkg] !== versionStr) {
|
|
81
329
|
changes.push({
|
|
82
330
|
package: pkg,
|
|
83
331
|
from: original.dependencies[pkg],
|
|
84
|
-
to:
|
|
332
|
+
to: VersionUtils.formatVersion(versionStr),
|
|
85
333
|
type: 'dependency',
|
|
86
334
|
});
|
|
87
335
|
}
|
|
@@ -90,11 +338,16 @@ export class PackageJsonService {
|
|
|
90
338
|
// Check devDependencies
|
|
91
339
|
if (original.devDependencies) {
|
|
92
340
|
for (const [pkg, version] of Object.entries(solution.devDependencies)) {
|
|
93
|
-
|
|
341
|
+
const versionStr = version;
|
|
342
|
+
// Skip unknown/invalid versions and REMOVE versions (handled separately)
|
|
343
|
+
if (VersionUtils.isUnknownVersion(versionStr) || VersionUtils.isRemoveVersion(versionStr)) {
|
|
344
|
+
continue;
|
|
345
|
+
}
|
|
346
|
+
if (original.devDependencies[pkg] && original.devDependencies[pkg] !== versionStr) {
|
|
94
347
|
changes.push({
|
|
95
348
|
package: pkg,
|
|
96
349
|
from: original.devDependencies[pkg],
|
|
97
|
-
to:
|
|
350
|
+
to: VersionUtils.formatVersion(versionStr),
|
|
98
351
|
type: 'devDependency',
|
|
99
352
|
});
|
|
100
353
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-json.js","sourceRoot":"","sources":["../../src/services/package-json.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"package-json.js","sourceRoot":"","sources":["../../src/services/package-json.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Payment Flow Service
|
|
3
|
+
*
|
|
4
|
+
* Handles the payment/credit flow for CLI:
|
|
5
|
+
* - Auth loop (device code login)
|
|
6
|
+
* - Balance checking
|
|
7
|
+
* - Balance polling with timeout
|
|
8
|
+
* - Credit deduction
|
|
9
|
+
*/
|
|
10
|
+
export declare class PaymentFlowService {
|
|
11
|
+
private readonly apiClient;
|
|
12
|
+
private readonly authManager;
|
|
13
|
+
private readonly webUrl;
|
|
14
|
+
constructor();
|
|
15
|
+
/**
|
|
16
|
+
* Run the complete payment flow:
|
|
17
|
+
* 1. Check auth (login if needed)
|
|
18
|
+
* 2. Check balance (wait for top-up if needed)
|
|
19
|
+
* 3. Return user info if ready to proceed
|
|
20
|
+
*/
|
|
21
|
+
ensureReadyToPay(cost: number): Promise<{
|
|
22
|
+
ready: boolean;
|
|
23
|
+
name?: string;
|
|
24
|
+
email?: string;
|
|
25
|
+
credits?: number;
|
|
26
|
+
hasActivePass?: boolean;
|
|
27
|
+
wasAlreadyLoggedIn?: boolean;
|
|
28
|
+
}>;
|
|
29
|
+
/**
|
|
30
|
+
* Ensure user is authenticated
|
|
31
|
+
* Runs device code flow if not logged in
|
|
32
|
+
* Returns user info on success
|
|
33
|
+
*/
|
|
34
|
+
ensureAuthenticated(): Promise<{
|
|
35
|
+
success: boolean;
|
|
36
|
+
email?: string;
|
|
37
|
+
wasAlreadyLoggedIn?: boolean;
|
|
38
|
+
}>;
|
|
39
|
+
/**
|
|
40
|
+
* Prompt user to choose login or register with arrow key selection
|
|
41
|
+
*/
|
|
42
|
+
private promptAuthChoice;
|
|
43
|
+
/**
|
|
44
|
+
* Get current balance info
|
|
45
|
+
*/
|
|
46
|
+
getBalanceInfo(): Promise<{
|
|
47
|
+
credits: number;
|
|
48
|
+
hasActivePass: boolean;
|
|
49
|
+
name?: string;
|
|
50
|
+
email?: string;
|
|
51
|
+
} | null>;
|
|
52
|
+
/**
|
|
53
|
+
* Run device code authentication flow
|
|
54
|
+
* Returns user info on success
|
|
55
|
+
*/
|
|
56
|
+
private runDeviceCodeFlow;
|
|
57
|
+
/**
|
|
58
|
+
* Simple Enter/Esc prompt (Enter = Yes, Esc = No)
|
|
59
|
+
*/
|
|
60
|
+
private promptYesNo;
|
|
61
|
+
/**
|
|
62
|
+
* Ensure user has sufficient credits
|
|
63
|
+
* Opens pricing page and polls if insufficient
|
|
64
|
+
* Note: Credit check UI should be shown before calling this method
|
|
65
|
+
*/
|
|
66
|
+
ensureSufficientBalance(cost: number): Promise<boolean>;
|
|
67
|
+
/**
|
|
68
|
+
* Wait for user to top up their balance
|
|
69
|
+
* Opens pricing page and polls for 5 minutes
|
|
70
|
+
*/
|
|
71
|
+
private waitForTopUp;
|
|
72
|
+
/**
|
|
73
|
+
* Deduct credits for an analysis
|
|
74
|
+
* Returns solution and full analysis data for CLI display
|
|
75
|
+
*/
|
|
76
|
+
deductCredits(analysisId: string, hasActivePass?: boolean): Promise<{
|
|
77
|
+
success: boolean;
|
|
78
|
+
solution?: {
|
|
79
|
+
dependencies: Record<string, string>;
|
|
80
|
+
devDependencies: Record<string, string>;
|
|
81
|
+
removals: Array<{
|
|
82
|
+
package: string;
|
|
83
|
+
reason: string;
|
|
84
|
+
type: 'dependency' | 'devDependency';
|
|
85
|
+
}>;
|
|
86
|
+
engines?: {
|
|
87
|
+
node?: string;
|
|
88
|
+
npm?: string;
|
|
89
|
+
};
|
|
90
|
+
};
|
|
91
|
+
conflicts?: any[];
|
|
92
|
+
missingDependencies?: any[];
|
|
93
|
+
deprecations?: any[];
|
|
94
|
+
healthScore?: number;
|
|
95
|
+
summary?: {
|
|
96
|
+
critical: number;
|
|
97
|
+
high: number;
|
|
98
|
+
medium: number;
|
|
99
|
+
low: number;
|
|
100
|
+
};
|
|
101
|
+
error?: string;
|
|
102
|
+
}>;
|
|
103
|
+
/**
|
|
104
|
+
* Sleep helper
|
|
105
|
+
*/
|
|
106
|
+
private sleep;
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=payment-flow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payment-flow.d.ts","sourceRoot":"","sources":["../../src/services/payment-flow.ts"],"names":[],"mappings":"AASA;;;;;;;;GAQG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;;IAQhC;;;;;OAKG;IACG,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAC5C,KAAK,EAAE,OAAO,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,kBAAkB,CAAC,EAAE,OAAO,CAAC;KAC9B,CAAC;IA0BF;;;;OAIG;IACG,mBAAmB,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,kBAAkB,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAsCxG;;OAEG;YACW,gBAAgB;IAsF9B;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAYlH;;;OAGG;YACW,iBAAiB;IAmG/B;;OAEG;YACW,WAAW;IAuDzB;;;;OAIG;IACG,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA8B7D;;;OAGG;YACW,YAAY;IAqF1B;;;OAGG;IACG,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;QACxE,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,CAAC,EAAE;YACT,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACrC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACxC,QAAQ,EAAE,KAAK,CAAC;gBAAE,OAAO,EAAE,MAAM,CAAC;gBAAC,MAAM,EAAE,MAAM,CAAC;gBAAC,IAAI,EAAE,YAAY,GAAG,eAAe,CAAA;aAAE,CAAC,CAAC;YAC3F,OAAO,CAAC,EAAE;gBAAE,IAAI,CAAC,EAAE,MAAM,CAAC;gBAAC,GAAG,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC;SAC3C,CAAC;QAEF,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC;QAClB,mBAAmB,CAAC,EAAE,GAAG,EAAE,CAAC;QAC5B,YAAY,CAAC,EAAE,GAAG,EAAE,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAA;SAAE,CAAC;QAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IAmCF;;OAEG;IACH,OAAO,CAAC,KAAK;CAGd"}
|