vigthoria-cli 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/README.md +413 -0
  2. package/dist/commands/auth.d.ts +24 -0
  3. package/dist/commands/auth.d.ts.map +1 -0
  4. package/dist/commands/auth.js +194 -0
  5. package/dist/commands/auth.js.map +1 -0
  6. package/dist/commands/chat.d.ts +64 -0
  7. package/dist/commands/chat.d.ts.map +1 -0
  8. package/dist/commands/chat.js +596 -0
  9. package/dist/commands/chat.js.map +1 -0
  10. package/dist/commands/config.d.ts +25 -0
  11. package/dist/commands/config.d.ts.map +1 -0
  12. package/dist/commands/config.js +291 -0
  13. package/dist/commands/config.js.map +1 -0
  14. package/dist/commands/edit.d.ts +28 -0
  15. package/dist/commands/edit.d.ts.map +1 -0
  16. package/dist/commands/edit.js +257 -0
  17. package/dist/commands/edit.js.map +1 -0
  18. package/dist/commands/explain.d.ts +21 -0
  19. package/dist/commands/explain.d.ts.map +1 -0
  20. package/dist/commands/explain.js +98 -0
  21. package/dist/commands/explain.js.map +1 -0
  22. package/dist/commands/generate.d.ts +25 -0
  23. package/dist/commands/generate.d.ts.map +1 -0
  24. package/dist/commands/generate.js +155 -0
  25. package/dist/commands/generate.js.map +1 -0
  26. package/dist/commands/review.d.ts +24 -0
  27. package/dist/commands/review.d.ts.map +1 -0
  28. package/dist/commands/review.js +153 -0
  29. package/dist/commands/review.js.map +1 -0
  30. package/dist/index.d.ts +16 -0
  31. package/dist/index.d.ts.map +1 -0
  32. package/dist/index.js +205 -0
  33. package/dist/index.js.map +1 -0
  34. package/dist/utils/api.d.ts +88 -0
  35. package/dist/utils/api.d.ts.map +1 -0
  36. package/dist/utils/api.js +431 -0
  37. package/dist/utils/api.js.map +1 -0
  38. package/dist/utils/config.d.ts +57 -0
  39. package/dist/utils/config.d.ts.map +1 -0
  40. package/dist/utils/config.js +167 -0
  41. package/dist/utils/config.js.map +1 -0
  42. package/dist/utils/files.d.ts +31 -0
  43. package/dist/utils/files.d.ts.map +1 -0
  44. package/dist/utils/files.js +217 -0
  45. package/dist/utils/files.js.map +1 -0
  46. package/dist/utils/logger.d.ts +23 -0
  47. package/dist/utils/logger.d.ts.map +1 -0
  48. package/dist/utils/logger.js +104 -0
  49. package/dist/utils/logger.js.map +1 -0
  50. package/dist/utils/session.d.ts +61 -0
  51. package/dist/utils/session.d.ts.map +1 -0
  52. package/dist/utils/session.js +172 -0
  53. package/dist/utils/session.js.map +1 -0
  54. package/dist/utils/tools.d.ts +145 -0
  55. package/dist/utils/tools.d.ts.map +1 -0
  56. package/dist/utils/tools.js +781 -0
  57. package/dist/utils/tools.js.map +1 -0
  58. package/install.sh +248 -0
  59. package/package.json +52 -0
  60. package/src/commands/auth.ts +225 -0
  61. package/src/commands/chat.ts +690 -0
  62. package/src/commands/config.ts +297 -0
  63. package/src/commands/edit.ts +310 -0
  64. package/src/commands/explain.ts +115 -0
  65. package/src/commands/generate.ts +177 -0
  66. package/src/commands/review.ts +186 -0
  67. package/src/index.ts +221 -0
  68. package/src/types/marked-terminal.d.ts +31 -0
  69. package/src/utils/api.ts +531 -0
  70. package/src/utils/config.ts +224 -0
  71. package/src/utils/files.ts +212 -0
  72. package/src/utils/logger.ts +125 -0
  73. package/src/utils/session.ts +167 -0
  74. package/src/utils/tools.ts +933 -0
  75. package/tsconfig.json +20 -0
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+ /**
3
+ * Review Command - Code review with AI
4
+ */
5
+ var __importDefault = (this && this.__importDefault) || function (mod) {
6
+ return (mod && mod.__esModule) ? mod : { "default": mod };
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.ReviewCommand = void 0;
10
+ const chalk_1 = __importDefault(require("chalk"));
11
+ const ora_1 = __importDefault(require("ora"));
12
+ const marked_1 = require("marked");
13
+ const marked_terminal_1 = require("marked-terminal");
14
+ const api_js_1 = require("../utils/api.js");
15
+ const files_js_1 = require("../utils/files.js");
16
+ class ReviewCommand {
17
+ config;
18
+ logger;
19
+ api;
20
+ fileUtils;
21
+ marked;
22
+ constructor(config, logger) {
23
+ this.config = config;
24
+ this.logger = logger;
25
+ this.api = new api_js_1.APIClient(config, logger);
26
+ this.fileUtils = new files_js_1.FileUtils(process.cwd(), config.get('project').ignorePatterns);
27
+ this.marked = new marked_1.Marked();
28
+ this.marked.use((0, marked_terminal_1.markedTerminal)());
29
+ }
30
+ async run(filePath, options) {
31
+ // Check auth
32
+ if (!this.config.isAuthenticated()) {
33
+ this.logger.error('Not authenticated. Run: vigthoria login');
34
+ return;
35
+ }
36
+ // Read file
37
+ const file = this.fileUtils.readFile(filePath);
38
+ if (!file) {
39
+ this.logger.error(`File not found: ${filePath}`);
40
+ return;
41
+ }
42
+ this.logger.section(`Reviewing: ${file.relativePath}`);
43
+ console.log(chalk_1.default.gray(`Language: ${file.language} | Lines: ${file.lines}`));
44
+ console.log();
45
+ const spinner = (0, ora_1.default)({
46
+ text: 'Analyzing code quality...',
47
+ spinner: 'dots',
48
+ }).start();
49
+ try {
50
+ const review = await this.api.reviewCode(file.content, file.language);
51
+ spinner.stop();
52
+ // Format output
53
+ switch (options.format) {
54
+ case 'json':
55
+ console.log(JSON.stringify(review, null, 2));
56
+ break;
57
+ case 'markdown':
58
+ this.printMarkdownReview(review, file.relativePath);
59
+ break;
60
+ case 'text':
61
+ default:
62
+ this.printTextReview(review);
63
+ break;
64
+ }
65
+ }
66
+ catch (error) {
67
+ spinner.stop();
68
+ this.logger.error('Review failed:', error.message);
69
+ }
70
+ }
71
+ printTextReview(review) {
72
+ // Score
73
+ const scoreColor = review.score >= 80 ? chalk_1.default.green : review.score >= 60 ? chalk_1.default.yellow : chalk_1.default.red;
74
+ console.log();
75
+ console.log(chalk_1.default.bold('Quality Score: ') + scoreColor(`${review.score}/100`));
76
+ console.log(this.renderScoreBar(review.score));
77
+ console.log();
78
+ // Issues
79
+ if (review.issues.length > 0) {
80
+ this.logger.section(`Issues (${review.issues.length})`);
81
+ review.issues.forEach((issue, i) => {
82
+ const severityIcon = this.getSeverityIcon(issue.severity);
83
+ const severityColor = this.getSeverityColor(issue.severity);
84
+ console.log(severityColor(`${severityIcon} [${issue.type}]`) +
85
+ chalk_1.default.gray(` Line ${issue.line}:`) +
86
+ ` ${issue.message}`);
87
+ });
88
+ console.log();
89
+ }
90
+ else {
91
+ this.logger.success('No issues found!');
92
+ }
93
+ // Suggestions
94
+ if (review.suggestions.length > 0) {
95
+ this.logger.section('Suggestions');
96
+ review.suggestions.forEach((suggestion, i) => {
97
+ console.log(chalk_1.default.cyan(`${i + 1}.`) + ` ${suggestion}`);
98
+ });
99
+ console.log();
100
+ }
101
+ }
102
+ printMarkdownReview(review, filePath) {
103
+ let markdown = `# Code Review: ${filePath}\n\n`;
104
+ markdown += `## Score: ${review.score}/100\n\n`;
105
+ if (review.issues.length > 0) {
106
+ markdown += `## Issues\n\n`;
107
+ review.issues.forEach(issue => {
108
+ markdown += `- **[${issue.severity.toUpperCase()}]** Line ${issue.line}: ${issue.message} (${issue.type})\n`;
109
+ });
110
+ markdown += '\n';
111
+ }
112
+ if (review.suggestions.length > 0) {
113
+ markdown += `## Suggestions\n\n`;
114
+ review.suggestions.forEach((s, i) => {
115
+ markdown += `${i + 1}. ${s}\n`;
116
+ });
117
+ }
118
+ console.log(this.marked.parse(markdown));
119
+ }
120
+ renderScoreBar(score) {
121
+ const width = 30;
122
+ const filled = Math.round((score / 100) * width);
123
+ const empty = width - filled;
124
+ const color = score >= 80 ? chalk_1.default.green : score >= 60 ? chalk_1.default.yellow : chalk_1.default.red;
125
+ return color('█'.repeat(filled)) + chalk_1.default.gray('░'.repeat(empty));
126
+ }
127
+ getSeverityIcon(severity) {
128
+ switch (severity.toLowerCase()) {
129
+ case 'error':
130
+ return '✗';
131
+ case 'warning':
132
+ return '⚠';
133
+ case 'info':
134
+ return 'ℹ';
135
+ default:
136
+ return '•';
137
+ }
138
+ }
139
+ getSeverityColor(severity) {
140
+ switch (severity.toLowerCase()) {
141
+ case 'error':
142
+ return chalk_1.default.red;
143
+ case 'warning':
144
+ return chalk_1.default.yellow;
145
+ case 'info':
146
+ return chalk_1.default.blue;
147
+ default:
148
+ return chalk_1.default.white;
149
+ }
150
+ }
151
+ }
152
+ exports.ReviewCommand = ReviewCommand;
153
+ //# sourceMappingURL=review.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review.js","sourceRoot":"","sources":["../../src/commands/review.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Vigthoria CLI - AI-Powered Terminal Coding Assistant
4
+ *
5
+ * Usage:
6
+ * vigthoria chat - Start interactive chat
7
+ * vigthoria edit <file> - Edit a file with AI assistance
8
+ * vigthoria generate <desc> - Generate code from description
9
+ * vigthoria explain <file> - Explain code in a file
10
+ * vigthoria fix <file> - Fix issues in a file
11
+ * vigthoria review <file> - Review code quality
12
+ * vigthoria login - Authenticate with Vigthoria
13
+ * vigthoria config - Configure settings
14
+ */
15
+ export {};
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;GAYG"}
package/dist/index.js ADDED
@@ -0,0 +1,205 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /**
4
+ * Vigthoria CLI - AI-Powered Terminal Coding Assistant
5
+ *
6
+ * Usage:
7
+ * vigthoria chat - Start interactive chat
8
+ * vigthoria edit <file> - Edit a file with AI assistance
9
+ * vigthoria generate <desc> - Generate code from description
10
+ * vigthoria explain <file> - Explain code in a file
11
+ * vigthoria fix <file> - Fix issues in a file
12
+ * vigthoria review <file> - Review code quality
13
+ * vigthoria login - Authenticate with Vigthoria
14
+ * vigthoria config - Configure settings
15
+ */
16
+ var __importDefault = (this && this.__importDefault) || function (mod) {
17
+ return (mod && mod.__esModule) ? mod : { "default": mod };
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ const commander_1 = require("commander");
21
+ const chat_js_1 = require("./commands/chat.js");
22
+ const edit_js_1 = require("./commands/edit.js");
23
+ const generate_js_1 = require("./commands/generate.js");
24
+ const explain_js_1 = require("./commands/explain.js");
25
+ const auth_js_1 = require("./commands/auth.js");
26
+ const config_js_1 = require("./commands/config.js");
27
+ const review_js_1 = require("./commands/review.js");
28
+ const config_js_2 = require("./utils/config.js");
29
+ const logger_js_1 = require("./utils/logger.js");
30
+ const chalk_1 = __importDefault(require("chalk"));
31
+ const VERSION = '1.0.0';
32
+ async function main() {
33
+ const program = new commander_1.Command();
34
+ const config = new config_js_2.Config();
35
+ const logger = new logger_js_1.Logger();
36
+ // Banner - Fixed alignment with proper padding
37
+ const boxWidth = 61; // Inner content width
38
+ const titleText = 'VIGTHORIA CLI - AI-Powered Coding Assistant';
39
+ const versionText = `Version ${VERSION}`;
40
+ // Calculate padding for centering
41
+ const titlePad = Math.floor((boxWidth - 4 - titleText.length) / 2);
42
+ const versionPad = Math.floor((boxWidth - 4 - versionText.length) / 2);
43
+ console.log(chalk_1.default.cyan('╔' + '═'.repeat(boxWidth) + '╗'));
44
+ console.log(chalk_1.default.cyan('║' + ' '.repeat(boxWidth) + '║'));
45
+ console.log(chalk_1.default.cyan('║') + ' '.repeat(titlePad) + chalk_1.default.bold.white('VIGTHORIA CLI') + chalk_1.default.cyan(' - AI-Powered Coding Assistant') + ' '.repeat(boxWidth - titlePad - titleText.length) + chalk_1.default.cyan('║'));
46
+ console.log(chalk_1.default.cyan('║') + ' '.repeat(versionPad) + chalk_1.default.gray(versionText) + ' '.repeat(boxWidth - versionPad - versionText.length) + chalk_1.default.cyan('║'));
47
+ console.log(chalk_1.default.cyan('║' + ' '.repeat(boxWidth) + '║'));
48
+ console.log(chalk_1.default.cyan('╚' + '═'.repeat(boxWidth) + '╝'));
49
+ console.log();
50
+ program
51
+ .name('vigthoria')
52
+ .description('AI-powered terminal coding assistant for Vigthoria Coder subscribers')
53
+ .version(VERSION);
54
+ // Chat command - Interactive mode
55
+ program
56
+ .command('chat')
57
+ .alias('c')
58
+ .description('Start interactive chat with Vigthoria AI')
59
+ .option('-m, --model <model>', 'Select AI model (fast, balanced, code, creative)', 'balanced')
60
+ .option('-p, --project <path>', 'Set project context path', process.cwd())
61
+ .option('-a, --agent', 'Enable agentic mode (Claude Code-like autonomous actions)', false)
62
+ .option('-r, --resume', 'Resume last session for this project', false)
63
+ .option('-l, --local', 'Local mode: use Ollama directly without auth', false)
64
+ .option('--auto-approve', 'Auto-approve agent actions (dangerous!)', false)
65
+ .action(async (options) => {
66
+ const chat = new chat_js_1.ChatCommand(config, logger);
67
+ await chat.run({
68
+ model: options.model,
69
+ project: options.project,
70
+ agent: options.agent,
71
+ autoApprove: options.autoApprove,
72
+ resume: options.resume,
73
+ local: options.local,
74
+ });
75
+ });
76
+ // Agent command - Agentic mode (Claude Code-like)
77
+ program
78
+ .command('agent')
79
+ .alias('a')
80
+ .description('Start agentic mode - AI can read/write files, run commands')
81
+ .option('-m, --model <model>', 'Select AI model', 'code')
82
+ .option('-p, --project <path>', 'Set project context path', process.cwd())
83
+ .option('-l, --local', 'Local mode: use Ollama directly without auth', false)
84
+ .option('--auto-approve', 'Auto-approve all actions (dangerous!)', false)
85
+ .action(async (options) => {
86
+ const chat = new chat_js_1.ChatCommand(config, logger);
87
+ await chat.run({
88
+ model: options.model,
89
+ project: options.project,
90
+ agent: true,
91
+ autoApprove: options.autoApprove,
92
+ local: options.local,
93
+ });
94
+ });
95
+ // Edit command - Edit files with AI
96
+ program
97
+ .command('edit <file>')
98
+ .alias('e')
99
+ .description('Edit a file with AI assistance')
100
+ .option('-i, --instruction <text>', 'Editing instruction')
101
+ .option('-m, --model <model>', 'Select AI model', 'code')
102
+ .action(async (file, options) => {
103
+ const edit = new edit_js_1.EditCommand(config, logger);
104
+ await edit.run(file, options);
105
+ });
106
+ // Generate command - Generate code
107
+ program
108
+ .command('generate <description>')
109
+ .alias('g')
110
+ .description('Generate code from description')
111
+ .option('-l, --language <lang>', 'Target language', 'typescript')
112
+ .option('-o, --output <file>', 'Output file path')
113
+ .option('-m, --model <model>', 'Select AI model', 'code')
114
+ .action(async (description, options) => {
115
+ const generate = new generate_js_1.GenerateCommand(config, logger);
116
+ await generate.run(description, options);
117
+ });
118
+ // Explain command - Explain code
119
+ program
120
+ .command('explain <file>')
121
+ .alias('x')
122
+ .description('Explain code in a file')
123
+ .option('-l, --lines <range>', 'Line range (e.g., 1-50)')
124
+ .option('-d, --detail <level>', 'Detail level (brief, normal, detailed)', 'normal')
125
+ .action(async (file, options) => {
126
+ const explain = new explain_js_1.ExplainCommand(config, logger);
127
+ await explain.run(file, options);
128
+ });
129
+ // Fix command - Fix code issues
130
+ program
131
+ .command('fix <file>')
132
+ .alias('f')
133
+ .description('Fix issues in a file')
134
+ .option('-t, --type <type>', 'Fix type (bugs, style, security, performance)', 'bugs')
135
+ .option('--apply', 'Automatically apply fixes', false)
136
+ .action(async (file, options) => {
137
+ const edit = new edit_js_1.EditCommand(config, logger);
138
+ await edit.fix(file, options);
139
+ });
140
+ // Review command - Code review
141
+ program
142
+ .command('review <file>')
143
+ .alias('r')
144
+ .description('Review code quality')
145
+ .option('-f, --format <format>', 'Output format (text, json, markdown)', 'text')
146
+ .action(async (file, options) => {
147
+ const review = new review_js_1.ReviewCommand(config, logger);
148
+ await review.run(file, options);
149
+ });
150
+ // Auth commands
151
+ program
152
+ .command('login')
153
+ .description('Login to Vigthoria Coder')
154
+ .option('-t, --token <token>', 'API token')
155
+ .action(async (options) => {
156
+ const auth = new auth_js_1.AuthCommand(config, logger);
157
+ await auth.login(options);
158
+ });
159
+ program
160
+ .command('logout')
161
+ .description('Logout from Vigthoria Coder')
162
+ .action(async () => {
163
+ const auth = new auth_js_1.AuthCommand(config, logger);
164
+ await auth.logout();
165
+ });
166
+ program
167
+ .command('status')
168
+ .description('Show authentication and subscription status')
169
+ .action(async () => {
170
+ const auth = new auth_js_1.AuthCommand(config, logger);
171
+ await auth.status();
172
+ });
173
+ // Config command
174
+ program
175
+ .command('config')
176
+ .description('Configure Vigthoria CLI settings')
177
+ .option('-s, --set <key=value>', 'Set a configuration value')
178
+ .option('-g, --get <key>', 'Get a configuration value')
179
+ .option('-l, --list', 'List all settings')
180
+ .option('-r, --reset', 'Reset to defaults')
181
+ .action(async (options) => {
182
+ const configCmd = new config_js_1.ConfigCommand(config, logger);
183
+ await configCmd.run(options);
184
+ });
185
+ // Init command - Initialize project
186
+ program
187
+ .command('init')
188
+ .description('Initialize Vigthoria in current project')
189
+ .action(async () => {
190
+ const configCmd = new config_js_1.ConfigCommand(config, logger);
191
+ await configCmd.init();
192
+ });
193
+ // Default to chat if no command
194
+ if (process.argv.length === 2) {
195
+ const chat = new chat_js_1.ChatCommand(config, logger);
196
+ await chat.run({ model: 'code', project: process.cwd() });
197
+ return;
198
+ }
199
+ await program.parseAsync(process.argv);
200
+ }
201
+ main().catch((err) => {
202
+ console.error(chalk_1.default.red('Error:'), err.message);
203
+ process.exit(1);
204
+ });
205
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * API Client for Vigthoria Backend
3
+ * Connects to coder.vigthoria.io API endpoints
4
+ */
5
+ import { Config } from './config.js';
6
+ import { Logger } from './logger.js';
7
+ export interface ChatMessage {
8
+ role: 'user' | 'assistant' | 'system';
9
+ content: string;
10
+ }
11
+ export interface ChatResponse {
12
+ id: string;
13
+ message: string;
14
+ model: string;
15
+ usage?: {
16
+ prompt_tokens: number;
17
+ completion_tokens: number;
18
+ total_tokens: number;
19
+ };
20
+ }
21
+ export interface StreamChunk {
22
+ type: 'content' | 'done' | 'error';
23
+ content?: string;
24
+ error?: string;
25
+ }
26
+ export interface VigthoriUser {
27
+ id: string;
28
+ username: string;
29
+ email: string;
30
+ isAdmin: boolean;
31
+ subscription: {
32
+ plan: string;
33
+ projectLimit: number;
34
+ storageLimit: number;
35
+ viagen6Access: boolean;
36
+ aiModelsLimit: number;
37
+ prioritySupport: boolean;
38
+ teamCollaboration: boolean;
39
+ adminAccess: boolean;
40
+ };
41
+ }
42
+ export declare class APIClient {
43
+ private client;
44
+ private modelRouterClient;
45
+ private config;
46
+ private logger;
47
+ private ws;
48
+ constructor(config: Config, logger: Logger);
49
+ login(email: string, password: string): Promise<boolean>;
50
+ loginWithToken(token: string): Promise<boolean>;
51
+ private refreshToken;
52
+ getSubscriptionStatus(): Promise<void>;
53
+ /**
54
+ * Chat API - Supports multiple inference strategies
55
+ *
56
+ * For authenticated users: Uses Vigthoria Cloud API
57
+ * For local users: Uses local Ollama or Model Router
58
+ */
59
+ chat(messages: ChatMessage[], model: string, useLocal?: boolean): Promise<ChatResponse>;
60
+ private resolveToOllamaModel;
61
+ private formatMessagesForOllama;
62
+ chatStream(messages: ChatMessage[], model: string): AsyncGenerator<StreamChunk>;
63
+ chatWithCallback(messages: ChatMessage[], model: string, onChunk: (chunk: string) => void, onDone: () => void, onError: (error: Error) => void): Promise<void>;
64
+ generateCode(prompt: string, language: string, model: string): Promise<string>;
65
+ explainCode(code: string, language: string): Promise<string>;
66
+ reviewCode(code: string, language: string): Promise<{
67
+ score: number;
68
+ issues: {
69
+ type: string;
70
+ line: number;
71
+ message: string;
72
+ severity: string;
73
+ }[];
74
+ suggestions: string[];
75
+ }>;
76
+ fixCode(code: string, language: string, fixType: string): Promise<{
77
+ fixed: string;
78
+ changes: {
79
+ line: number;
80
+ before: string;
81
+ after: string;
82
+ reason: string;
83
+ }[];
84
+ }>;
85
+ private resolveModelId;
86
+ healthCheck(): Promise<boolean>;
87
+ }
88
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/utils/api.ts"],"names":[],"mappings":"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"}