converteverything-mcp 1.2.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.
package/dist/client.js ADDED
@@ -0,0 +1,594 @@
1
+ "use strict";
2
+ /**
3
+ * ConvertEverything API Client
4
+ *
5
+ * Secure client for interacting with the ConvertEverything.io public API.
6
+ * Only uses documented public endpoints - no internal/admin access.
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
21
+ }) : function(o, v) {
22
+ o["default"] = v;
23
+ });
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.ConvertEverythingClient = void 0;
43
+ const fs = __importStar(require("fs"));
44
+ const path = __importStar(require("path"));
45
+ const types_js_1 = require("./types.js");
46
+ // Package version for User-Agent
47
+ const CLIENT_VERSION = "1.2.0";
48
+ // Retry configuration
49
+ const DEFAULT_MAX_RETRIES = 3;
50
+ const DEFAULT_RETRY_DELAY = 1000; // 1 second
51
+ const RETRYABLE_STATUS_CODES = [408, 429, 500, 502, 503, 504];
52
+ // Cache configuration
53
+ const FORMAT_CACHE_TTL = 3600000; // 1 hour
54
+ class ConvertEverythingClient {
55
+ apiKey;
56
+ baseUrl;
57
+ timeout;
58
+ userAgent;
59
+ maxRetries;
60
+ formatCache = null;
61
+ constructor(config) {
62
+ if (!config.apiKey) {
63
+ throw new Error("API key is required");
64
+ }
65
+ // Validate API key format (should be ce_ prefix)
66
+ if (!config.apiKey.startsWith("ce_")) {
67
+ throw new Error("Invalid API key format. Keys should start with 'ce_'. " +
68
+ "Get your API key at https://converteverything.io/api-keys");
69
+ }
70
+ this.apiKey = config.apiKey;
71
+ this.baseUrl = this.sanitizeUrl(config.baseUrl || types_js_1.DEFAULT_BASE_URL);
72
+ this.timeout = config.timeout || types_js_1.DEFAULT_TIMEOUT;
73
+ this.userAgent = `converteverything-mcp/${CLIENT_VERSION} (Node.js)`;
74
+ this.maxRetries = DEFAULT_MAX_RETRIES;
75
+ }
76
+ /**
77
+ * Generate a unique correlation ID for request tracing
78
+ */
79
+ generateCorrelationId() {
80
+ return `mcp-${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;
81
+ }
82
+ /**
83
+ * Calculate exponential backoff delay
84
+ */
85
+ getRetryDelay(attempt, retryAfter) {
86
+ if (retryAfter) {
87
+ return retryAfter * 1000; // Convert seconds to ms
88
+ }
89
+ // Exponential backoff: 1s, 2s, 4s, etc.
90
+ return DEFAULT_RETRY_DELAY * Math.pow(2, attempt);
91
+ }
92
+ /**
93
+ * Sleep for specified milliseconds
94
+ */
95
+ sleep(ms) {
96
+ return new Promise((resolve) => setTimeout(resolve, ms));
97
+ }
98
+ /**
99
+ * Execute fetch with timeout and abort controller
100
+ */
101
+ async fetchWithTimeout(url, options = {}) {
102
+ const controller = new AbortController();
103
+ const timeoutId = setTimeout(() => controller.abort(), this.timeout);
104
+ try {
105
+ return await fetch(url, {
106
+ ...options,
107
+ signal: controller.signal,
108
+ });
109
+ }
110
+ finally {
111
+ clearTimeout(timeoutId);
112
+ }
113
+ }
114
+ /**
115
+ * Execute fetch with retry logic and rate limit handling
116
+ */
117
+ async fetchWithRetry(url, options = {}, correlationId) {
118
+ let lastError = null;
119
+ for (let attempt = 0; attempt <= this.maxRetries; attempt++) {
120
+ try {
121
+ const response = await this.fetchWithTimeout(url, {
122
+ ...options,
123
+ headers: {
124
+ ...options.headers,
125
+ "X-Correlation-ID": correlationId,
126
+ },
127
+ });
128
+ // Handle rate limiting (429)
129
+ if (response.status === 429) {
130
+ const retryAfter = parseInt(response.headers.get("Retry-After") || "0", 10);
131
+ if (attempt < this.maxRetries) {
132
+ const delay = this.getRetryDelay(attempt, retryAfter || undefined);
133
+ await this.sleep(delay);
134
+ continue;
135
+ }
136
+ throw new Error(`Rate limit exceeded. Please wait ${retryAfter || 60} seconds before retrying.`);
137
+ }
138
+ // Retry on transient errors
139
+ if (RETRYABLE_STATUS_CODES.includes(response.status) && attempt < this.maxRetries) {
140
+ const delay = this.getRetryDelay(attempt);
141
+ await this.sleep(delay);
142
+ continue;
143
+ }
144
+ return response;
145
+ }
146
+ catch (error) {
147
+ lastError = error instanceof Error ? error : new Error(String(error));
148
+ // Retry on network errors
149
+ if (attempt < this.maxRetries && lastError.name !== "AbortError") {
150
+ const delay = this.getRetryDelay(attempt);
151
+ await this.sleep(delay);
152
+ continue;
153
+ }
154
+ }
155
+ }
156
+ throw lastError || new Error("Request failed after retries");
157
+ }
158
+ /**
159
+ * Sanitize and validate the base URL
160
+ */
161
+ sanitizeUrl(url) {
162
+ // Remove trailing slashes
163
+ let sanitized = url.replace(/\/+$/, "");
164
+ // Ensure HTTPS (upgrade HTTP to HTTPS for security)
165
+ if (sanitized.startsWith("http://") && !sanitized.includes("localhost")) {
166
+ sanitized = sanitized.replace("http://", "https://");
167
+ }
168
+ // Basic URL validation
169
+ try {
170
+ new URL(sanitized);
171
+ }
172
+ catch {
173
+ throw new Error(`Invalid base URL: ${url}`);
174
+ }
175
+ return sanitized;
176
+ }
177
+ /**
178
+ * Make an authenticated API request with retry and correlation ID
179
+ */
180
+ async request(endpoint, options = {}) {
181
+ const url = `${this.baseUrl}/api${endpoint}`;
182
+ const correlationId = this.generateCorrelationId();
183
+ const response = await this.fetchWithRetry(url, {
184
+ ...options,
185
+ headers: {
186
+ Authorization: `Bearer ${this.apiKey}`,
187
+ "User-Agent": this.userAgent,
188
+ ...options.headers,
189
+ },
190
+ }, correlationId);
191
+ if (!response.ok) {
192
+ let errorMessage = `API error: ${response.status} ${response.statusText}`;
193
+ try {
194
+ const errorData = (await response.json());
195
+ if (errorData.detail) {
196
+ errorMessage = errorData.detail;
197
+ }
198
+ }
199
+ catch {
200
+ // Use default error message
201
+ }
202
+ errorMessage += ` (correlation-id: ${correlationId})`;
203
+ throw new Error(errorMessage);
204
+ }
205
+ return (await response.json());
206
+ }
207
+ /**
208
+ * Get list of supported conversion formats (cached for 1 hour)
209
+ */
210
+ async getSupportedFormats(skipCache = false) {
211
+ // Return cached data if valid
212
+ if (!skipCache && this.formatCache) {
213
+ const age = Date.now() - this.formatCache.timestamp;
214
+ if (age < FORMAT_CACHE_TTL) {
215
+ return this.formatCache.data;
216
+ }
217
+ }
218
+ // Fetch fresh data
219
+ const data = await this.request("/convert/formats");
220
+ // Update cache
221
+ this.formatCache = {
222
+ data,
223
+ timestamp: Date.now(),
224
+ };
225
+ return data;
226
+ }
227
+ /**
228
+ * Clear the format cache
229
+ */
230
+ clearFormatCache() {
231
+ this.formatCache = null;
232
+ }
233
+ /**
234
+ * Get current API usage and limits
235
+ */
236
+ async getUsage() {
237
+ return this.request("/user/usage");
238
+ }
239
+ /**
240
+ * Get status of a conversion
241
+ */
242
+ async getConversionStatus(conversionId) {
243
+ // Validate conversion ID format (should be UUID)
244
+ if (!this.isValidUuid(conversionId)) {
245
+ throw new Error("Invalid conversion ID format");
246
+ }
247
+ return this.request(`/convert/${conversionId}`);
248
+ }
249
+ /**
250
+ * Validate file path for security
251
+ */
252
+ validateFilePath(filePath) {
253
+ // Resolve to absolute path
254
+ const absolutePath = path.resolve(filePath);
255
+ // Check for null bytes (path injection)
256
+ if (absolutePath.includes("\0")) {
257
+ throw new Error("Invalid file path: contains null bytes");
258
+ }
259
+ // Check file exists
260
+ if (!fs.existsSync(absolutePath)) {
261
+ throw new Error(`File not found: ${filePath}`);
262
+ }
263
+ const stats = fs.statSync(absolutePath);
264
+ if (!stats.isFile()) {
265
+ throw new Error(`Path is not a file: ${filePath}`);
266
+ }
267
+ // Resolve symlinks and verify the real path
268
+ const realPath = fs.realpathSync(absolutePath);
269
+ // Security: Ensure no directory traversal beyond file system root
270
+ // The realPath should be a valid absolute path without any traversal sequences
271
+ if (realPath.includes("..") || !path.isAbsolute(realPath)) {
272
+ throw new Error("Invalid file path: potential directory traversal");
273
+ }
274
+ return realPath;
275
+ }
276
+ /**
277
+ * Convert a file from a local path
278
+ */
279
+ async convertFile(filePath, targetFormat, options) {
280
+ // Validate and get the real path
281
+ const realPath = this.validateFilePath(filePath);
282
+ // Validate target format
283
+ const normalizedFormat = targetFormat.toLowerCase().replace(/^\./, "");
284
+ if (!(0, types_js_1.isFormatSupported)(normalizedFormat)) {
285
+ throw new Error(`Unsupported target format: ${targetFormat}. ` +
286
+ "Use get_supported_formats to see available formats.");
287
+ }
288
+ // Read file
289
+ const fileBuffer = fs.readFileSync(realPath);
290
+ const fileName = path.basename(realPath);
291
+ return this.convertFileBuffer(fileBuffer, fileName, normalizedFormat, options);
292
+ }
293
+ /**
294
+ * Convert a file from a buffer/base64 data
295
+ */
296
+ async convertFileBuffer(data, fileName, targetFormat, options) {
297
+ // Handle base64 input
298
+ let buffer;
299
+ if (typeof data === "string") {
300
+ // Remove data URL prefix if present
301
+ const base64Data = data.replace(/^data:[^;]+;base64,/, "");
302
+ buffer = Buffer.from(base64Data, "base64");
303
+ }
304
+ else {
305
+ buffer = data;
306
+ }
307
+ // Validate file size (max 10GB, but API will enforce actual tier limits)
308
+ const maxSize = 10 * 1024 * 1024 * 1024; // 10GB
309
+ if (buffer.length > maxSize) {
310
+ throw new Error("File too large. Maximum size is 10GB.");
311
+ }
312
+ // Validate target format
313
+ const normalizedFormat = targetFormat.toLowerCase().replace(/^\./, "");
314
+ if (!(0, types_js_1.isFormatSupported)(normalizedFormat)) {
315
+ throw new Error(`Unsupported target format: ${targetFormat}. ` +
316
+ "Use get_supported_formats to see available formats.");
317
+ }
318
+ // Sanitize filename
319
+ const sanitizedName = this.sanitizeFilename(fileName);
320
+ // Build form data
321
+ const formData = new FormData();
322
+ const blob = new Blob([buffer]);
323
+ formData.append("file", blob, sanitizedName);
324
+ formData.append("output_format", normalizedFormat);
325
+ // Add conversion options
326
+ if (options && Object.keys(options).length > 0) {
327
+ formData.append("options", JSON.stringify(options));
328
+ }
329
+ return this.request("/convert", {
330
+ method: "POST",
331
+ body: formData,
332
+ });
333
+ }
334
+ /**
335
+ * Download a converted file
336
+ */
337
+ async downloadFile(conversionId) {
338
+ // Validate conversion ID
339
+ if (!this.isValidUuid(conversionId)) {
340
+ throw new Error("Invalid conversion ID format");
341
+ }
342
+ // First get the conversion status to get the download URL
343
+ const status = await this.getConversionStatus(conversionId);
344
+ if (status.status !== "completed") {
345
+ throw new Error(`Conversion is not complete. Status: ${status.status}` +
346
+ (status.error_message ? `. Error: ${status.error_message}` : ""));
347
+ }
348
+ if (!status.download_url) {
349
+ throw new Error("Download URL not available");
350
+ }
351
+ // Check if download has expired
352
+ if (status.download_expires_at) {
353
+ const expiresAt = new Date(status.download_expires_at);
354
+ if (expiresAt < new Date()) {
355
+ throw new Error("Download link has expired");
356
+ }
357
+ }
358
+ // Download the file
359
+ const response = await this.fetchWithTimeout(status.download_url, {
360
+ headers: { "User-Agent": this.userAgent },
361
+ });
362
+ if (!response.ok) {
363
+ throw new Error(`Download failed: ${response.status} ${response.statusText}`);
364
+ }
365
+ const arrayBuffer = await response.arrayBuffer();
366
+ const buffer = Buffer.from(arrayBuffer);
367
+ // Get filename from Content-Disposition header or construct from conversion info
368
+ let filename = `converted.${status.target_format}`;
369
+ const contentDisposition = response.headers.get("Content-Disposition");
370
+ if (contentDisposition) {
371
+ const match = contentDisposition.match(/filename="?([^";\n]+)"?/);
372
+ if (match) {
373
+ filename = match[1];
374
+ }
375
+ }
376
+ else if (status.original_filename) {
377
+ const baseName = status.original_filename.replace(/\.[^.]+$/, "");
378
+ filename = `${baseName}.${status.target_format}`;
379
+ }
380
+ const contentType = response.headers.get("Content-Type") || "application/octet-stream";
381
+ return { data: buffer, filename, contentType };
382
+ }
383
+ /**
384
+ * Wait for a conversion to complete
385
+ */
386
+ async waitForConversion(conversionId, options = {}) {
387
+ const pollInterval = options.pollInterval || 2000;
388
+ const timeout = options.timeout || 300000;
389
+ const startTime = Date.now();
390
+ if (!this.isValidUuid(conversionId)) {
391
+ throw new Error("Invalid conversion ID format");
392
+ }
393
+ while (true) {
394
+ const status = await this.getConversionStatus(conversionId);
395
+ if (status.status === "completed" || status.status === "failed") {
396
+ return status;
397
+ }
398
+ if (Date.now() - startTime > timeout) {
399
+ throw new Error(`Conversion timed out after ${timeout / 1000}s. ` +
400
+ `Current status: ${status.status}`);
401
+ }
402
+ // Wait before next poll
403
+ await new Promise((resolve) => setTimeout(resolve, pollInterval));
404
+ }
405
+ }
406
+ /**
407
+ * List recent conversions
408
+ */
409
+ async listConversions(page = 1, perPage = 10) {
410
+ if (page < 1)
411
+ page = 1;
412
+ if (perPage < 1)
413
+ perPage = 1;
414
+ if (perPage > 100)
415
+ perPage = 100;
416
+ // Convert page/perPage to skip/limit for backend API
417
+ const skip = (page - 1) * perPage;
418
+ const limit = perPage;
419
+ return this.request(`/convert/list?skip=${skip}&limit=${limit}`);
420
+ }
421
+ /**
422
+ * Cancel/delete an in-progress or completed conversion
423
+ */
424
+ async cancelConversion(conversionId) {
425
+ if (!this.isValidUuid(conversionId)) {
426
+ throw new Error("Invalid conversion ID format");
427
+ }
428
+ // First check the conversion status
429
+ const status = await this.getConversionStatus(conversionId);
430
+ if (status.status === "processing") {
431
+ // Note: Currently the API doesn't support cancelling in-progress conversions
432
+ // It only supports deleting completed/failed conversions
433
+ return {
434
+ success: false,
435
+ message: "Cannot cancel in-progress conversion. Please wait for it to complete or fail.",
436
+ };
437
+ }
438
+ try {
439
+ await this.request(`/convert/${conversionId}`, {
440
+ method: "DELETE",
441
+ });
442
+ return { success: true, message: "Conversion deleted successfully" };
443
+ }
444
+ catch (error) {
445
+ const message = error instanceof Error ? error.message : String(error);
446
+ return { success: false, message };
447
+ }
448
+ }
449
+ /**
450
+ * Get file information/metadata
451
+ */
452
+ async getFileInfo(filePath) {
453
+ const realPath = this.validateFilePath(filePath);
454
+ const stats = fs.statSync(realPath);
455
+ const filename = path.basename(realPath);
456
+ const ext = path.extname(filename).toLowerCase().replace(".", "");
457
+ // Mime type mapping for common formats
458
+ const mimeTypes = {
459
+ // Audio
460
+ mp3: "audio/mpeg", wav: "audio/wav", flac: "audio/flac", aac: "audio/aac",
461
+ ogg: "audio/ogg", m4a: "audio/mp4", wma: "audio/x-ms-wma",
462
+ // Video
463
+ mp4: "video/mp4", avi: "video/x-msvideo", mkv: "video/x-matroska",
464
+ mov: "video/quicktime", webm: "video/webm", wmv: "video/x-ms-wmv",
465
+ // Image
466
+ jpg: "image/jpeg", jpeg: "image/jpeg", png: "image/png", gif: "image/gif",
467
+ webp: "image/webp", bmp: "image/bmp", svg: "image/svg+xml", ico: "image/x-icon",
468
+ heic: "image/heic", tiff: "image/tiff", tif: "image/tiff",
469
+ // Document
470
+ pdf: "application/pdf", docx: "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
471
+ doc: "application/msword", xlsx: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
472
+ xls: "application/vnd.ms-excel", txt: "text/plain", html: "text/html", md: "text/markdown",
473
+ // Data
474
+ json: "application/json", csv: "text/csv", xml: "application/xml", yaml: "application/x-yaml",
475
+ };
476
+ return {
477
+ filename,
478
+ size: stats.size,
479
+ format: ext,
480
+ mimeType: mimeTypes[ext] || "application/octet-stream",
481
+ };
482
+ }
483
+ /**
484
+ * Estimate output file size based on conversion options
485
+ */
486
+ estimateOutputSize(inputSize, sourceFormat, targetFormat, options) {
487
+ const src = sourceFormat.toLowerCase();
488
+ const tgt = targetFormat.toLowerCase();
489
+ // Base ratio estimates (these are rough approximations)
490
+ let ratio = 1.0;
491
+ let confidence = "medium";
492
+ let notes = "";
493
+ // Audio conversions
494
+ if (["mp3", "aac", "ogg", "opus"].includes(tgt)) {
495
+ if (["wav", "flac", "aiff"].includes(src)) {
496
+ // Lossless to lossy: significant compression
497
+ const bitrate = options?.bitrate || "192k";
498
+ const kbps = parseInt(bitrate.replace("k", ""), 10) || 192;
499
+ ratio = kbps / 1400; // WAV is roughly 1400 kbps for CD quality
500
+ confidence = "high";
501
+ notes = `Based on ${bitrate} bitrate`;
502
+ }
503
+ }
504
+ else if (["wav", "flac"].includes(tgt)) {
505
+ if (["mp3", "aac", "ogg"].includes(src)) {
506
+ ratio = src === "mp3" ? 8 : 6; // Lossy to lossless: expansion
507
+ confidence = "medium";
508
+ notes = "Expanding lossy to lossless format";
509
+ }
510
+ }
511
+ // Video conversions
512
+ if (["mp4", "webm", "mkv"].includes(tgt)) {
513
+ const crf = options?.crf;
514
+ if (crf !== undefined) {
515
+ // CRF affects file size significantly
516
+ ratio = crf < 20 ? 1.5 : crf > 28 ? 0.5 : 1.0;
517
+ confidence = "medium";
518
+ notes = `CRF ${crf}: ${crf < 20 ? "high quality, larger file" : crf > 28 ? "lower quality, smaller file" : "balanced"}`;
519
+ }
520
+ }
521
+ // Image conversions
522
+ if (["jpg", "jpeg", "webp"].includes(tgt)) {
523
+ const quality = options?.quality || 85;
524
+ if (["png", "bmp", "tiff"].includes(src)) {
525
+ ratio = 0.1 + (quality / 100) * 0.3; // PNG to JPG: significant compression
526
+ confidence = "high";
527
+ notes = `Quality ${quality}%`;
528
+ }
529
+ }
530
+ else if (tgt === "png") {
531
+ if (["jpg", "jpeg", "webp"].includes(src)) {
532
+ ratio = 3; // JPG to PNG: expansion
533
+ confidence = "medium";
534
+ notes = "Lossless format, larger file expected";
535
+ }
536
+ }
537
+ // Document conversions
538
+ if (tgt === "pdf" && ["docx", "doc", "pptx"].includes(src)) {
539
+ ratio = 0.8; // Usually slightly smaller
540
+ confidence = "low";
541
+ notes = "Depends heavily on document content";
542
+ }
543
+ const estimatedSize = Math.round(inputSize * ratio);
544
+ return { estimatedSize, confidence, notes };
545
+ }
546
+ /**
547
+ * Retry a failed conversion with optional new options
548
+ */
549
+ async retryConversion(conversionId, newOptions) {
550
+ if (!this.isValidUuid(conversionId)) {
551
+ throw new Error("Invalid conversion ID format");
552
+ }
553
+ // Get original conversion details
554
+ const original = await this.getConversionStatus(conversionId);
555
+ if (original.status !== "failed") {
556
+ throw new Error(`Can only retry failed conversions. Current status: ${original.status}`);
557
+ }
558
+ // For retry, we need the original file which may no longer be available
559
+ // This would typically need a server-side retry endpoint
560
+ // For now, provide guidance
561
+ throw new Error(`To retry conversion ${conversionId}, please re-upload the original file ` +
562
+ `(${original.original_filename}) and convert to ${original.target_format} again. ` +
563
+ `Original error: ${original.error_message || "Unknown"}`);
564
+ }
565
+ /**
566
+ * Validate UUID format
567
+ */
568
+ isValidUuid(id) {
569
+ const uuidRegex = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
570
+ return uuidRegex.test(id);
571
+ }
572
+ /**
573
+ * Sanitize filename to prevent issues
574
+ */
575
+ sanitizeFilename(filename) {
576
+ // Remove path components
577
+ let name = path.basename(filename);
578
+ // Remove null bytes and other dangerous characters
579
+ name = name.replace(/[\x00-\x1f\x80-\x9f]/g, "");
580
+ // Limit length
581
+ if (name.length > 255) {
582
+ const ext = path.extname(name);
583
+ const base = path.basename(name, ext);
584
+ name = base.substring(0, 255 - ext.length) + ext;
585
+ }
586
+ // Fallback for empty name
587
+ if (!name || name === ".") {
588
+ name = "file";
589
+ }
590
+ return name;
591
+ }
592
+ }
593
+ exports.ConvertEverythingClient = ConvertEverythingClient;
594
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * ConvertEverything MCP Server
4
+ *
5
+ * An MCP server that enables AI assistants to convert files between 93+ formats
6
+ * using the ConvertEverything.io API.
7
+ *
8
+ * Security: This server only uses the public API with user-provided API keys.
9
+ * No internal endpoints, secrets, or admin functionality is exposed.
10
+ */
11
+ export {};
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;GAQG"}