@jesusacd/mediafire 1.1.0 → 1.3.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.
@@ -52,6 +52,56 @@ export declare class FilesModule {
52
52
  * ```
53
53
  */
54
54
  search(query: string): Promise<SearchResults>;
55
+ /**
56
+ * Búsqueda inteligente que extrae palabras clave únicas del query
57
+ * y filtra los resultados para coincidir con el nombre buscado.
58
+ *
59
+ * La API de MediaFire no maneja bien queries con espacios o caracteres
60
+ * especiales, por lo que este método:
61
+ * 1. Extrae las palabras más únicas/distintivas del query
62
+ * 2. Busca usando esas palabras simples
63
+ * 3. Filtra los resultados para encontrar coincidencias reales
64
+ *
65
+ * @param query - Nombre del archivo o carpeta a buscar
66
+ * @param options - Opciones de búsqueda
67
+ * @returns Resultados filtrados que coinciden con el query
68
+ *
69
+ * @example
70
+ * ```typescript
71
+ * // Buscar con nombre completo
72
+ * const results = await client.files.smartSearch(
73
+ * 'La empresa de sillas (2025) Temporada 1 [1080p] {MAX} WEB-DL'
74
+ * );
75
+ *
76
+ * // Buscar solo carpetas
77
+ * const folders = await client.files.smartSearch('Mi Serie', {
78
+ * filter: 'folders'
79
+ * });
80
+ * ```
81
+ */
82
+ smartSearch(query: string, options?: {
83
+ /** Filtrar por tipo: 'files', 'folders', o 'everything' */
84
+ filter?: 'files' | 'folders' | 'everything';
85
+ /** Si es true, requiere coincidencia exacta del nombre (sin case-sensitive) */
86
+ exactMatch?: boolean;
87
+ }): Promise<SearchResults>;
88
+ /**
89
+ * Extrae las palabras clave más distintivas de un query de búsqueda.
90
+ * Filtra palabras comunes, años, resoluciones, etc.
91
+ */
92
+ private extractSearchKeywords;
93
+ /**
94
+ * Calcula un score de unicidad para una palabra
95
+ */
96
+ private calculateWordScore;
97
+ /**
98
+ * Verifica si un nombre contiene todas las palabras clave
99
+ */
100
+ private matchesAllKeywords;
101
+ /**
102
+ * Ordena los resultados por relevancia respecto al query original
103
+ */
104
+ private sortByRelevance;
55
105
  /**
56
106
  * Set file privacy (public or private)
57
107
  *
@@ -94,5 +144,106 @@ export declare class FilesModule {
94
144
  * ```
95
145
  */
96
146
  makePrivate(quickKey: string): Promise<boolean>;
147
+ /**
148
+ * Copy a file to another folder
149
+ *
150
+ * @param quickKey - File quick key (or comma-separated list)
151
+ * @param folderKey - Destination folder key (default: root)
152
+ * @returns New quick keys of copied files
153
+ *
154
+ * @example
155
+ * ```typescript
156
+ * const newKeys = await client.files.copy('abc123', 'destFolder');
157
+ * ```
158
+ */
159
+ copy(quickKey: string, folderKey?: string): Promise<string[]>;
160
+ /**
161
+ * Delete a file (move to trash)
162
+ *
163
+ * @param quickKey - File quick key (or comma-separated list)
164
+ * @returns True if successful
165
+ *
166
+ * @example
167
+ * ```typescript
168
+ * await client.files.delete('abc123');
169
+ * ```
170
+ */
171
+ delete(quickKey: string): Promise<boolean>;
172
+ /**
173
+ * Move a file to another folder
174
+ *
175
+ * @param quickKey - File quick key (or comma-separated list, max 500)
176
+ * @param folderKey - Destination folder key (default: root)
177
+ * @returns True if successful
178
+ *
179
+ * @example
180
+ * ```typescript
181
+ * await client.files.move('abc123', 'destFolder');
182
+ * ```
183
+ */
184
+ move(quickKey: string, folderKey?: string): Promise<boolean>;
185
+ /**
186
+ * Rename a file
187
+ *
188
+ * @param quickKey - File quick key
189
+ * @param newName - New file name (with extension)
190
+ * @returns True if successful
191
+ *
192
+ * @example
193
+ * ```typescript
194
+ * await client.files.rename('abc123', 'newname.pdf');
195
+ * ```
196
+ */
197
+ rename(quickKey: string, newName: string): Promise<boolean>;
198
+ /**
199
+ * Permanently delete a file (cannot be recovered)
200
+ *
201
+ * @param quickKey - File quick key (or comma-separated list)
202
+ * @returns True if successful
203
+ *
204
+ * @example
205
+ * ```typescript
206
+ * await client.files.purge('abc123');
207
+ * ```
208
+ */
209
+ purge(quickKey: string): Promise<boolean>;
210
+ /**
211
+ * Restore a file from trash
212
+ *
213
+ * @param quickKey - File quick key (or comma-separated list)
214
+ * @returns True if successful
215
+ *
216
+ * @example
217
+ * ```typescript
218
+ * await client.files.restore('abc123');
219
+ * ```
220
+ */
221
+ restore(quickKey: string): Promise<boolean>;
222
+ /**
223
+ * Get file version history
224
+ *
225
+ * @param quickKey - File quick key
226
+ * @returns Array of file versions
227
+ *
228
+ * @example
229
+ * ```typescript
230
+ * const versions = await client.files.getVersions('abc123');
231
+ * ```
232
+ */
233
+ getVersions(quickKey: string): Promise<Array<{
234
+ revision: number;
235
+ date: string;
236
+ }>>;
237
+ /**
238
+ * Get recently modified files
239
+ *
240
+ * @returns Array of recently modified files
241
+ *
242
+ * @example
243
+ * ```typescript
244
+ * const recent = await client.files.getRecentlyModified();
245
+ * ```
246
+ */
247
+ getRecentlyModified(): Promise<FileInfo[]>;
97
248
  }
98
249
  //# sourceMappingURL=files.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/modules/files.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAW,eAAe,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAe,aAAa,EAAE,MAAM,UAAU,CAAC;AAG/E;;GAEG;AACH,qBAAa,WAAW;IACV,OAAO,CAAC,UAAU;gBAAV,UAAU,EAAE,MAAM,eAAe,GAAG,IAAI;IAE5D;;;;;;;;;;;;OAYG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAqDlD;;;;;;;;;;;;OAYG;IACG,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA2BxD;;;;;;;;;;;;;OAaG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA+DnD;;;;;;;;;;;;;;;;OAgBG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;IAkBnF;;;;;;;;;;OAUG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIpD;;;;;;;;;;OAUG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAGtD"}
1
+ {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/modules/files.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAW,eAAe,EAAE,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAe,aAAa,EAAE,MAAM,UAAU,CAAC;AAG/E;;GAEG;AACH,qBAAa,WAAW;IACV,OAAO,CAAC,UAAU;gBAAV,UAAU,EAAE,MAAM,eAAe,GAAG,IAAI;IAE5D;;;;;;;;;;;;OAYG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAqDlD;;;;;;;;;;;;OAYG;IACG,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA2BxD;;;;;;;;;;;;;OAaG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA+DnD;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACG,WAAW,CACf,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;QACP,2DAA2D;QAC3D,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,YAAY,CAAC;QAC5C,+EAA+E;QAC/E,UAAU,CAAC,EAAE,OAAO,CAAC;KACjB,GACL,OAAO,CAAC,aAAa,CAAC;IAoGzB;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAkE7B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAoB1B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAe1B;;OAEG;IACH,OAAO,CAAC,eAAe;IAyBvB;;;;;;;;;;;;;;;;OAgBG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;IAkBnF;;;;;;;;;;OAUG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIpD;;;;;;;;;;OAUG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIrD;;;;;;;;;;;OAWG;IACG,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAkBnE;;;;;;;;;;OAUG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAahD;;;;;;;;;;;OAWG;IACG,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAclE;;;;;;;;;;;OAWG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAcjE;;;;;;;;;;OAUG;IACG,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAa/C;;;;;;;;;;OAUG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAajD;;;;;;;;;;OAUG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAuBvF;;;;;;;;;OASG;IACG,mBAAmB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;CA0BjD"}
@@ -139,6 +139,228 @@ class FilesModule {
139
139
  total: items.length
140
140
  };
141
141
  }
142
+ /**
143
+ * Búsqueda inteligente que extrae palabras clave únicas del query
144
+ * y filtra los resultados para coincidir con el nombre buscado.
145
+ *
146
+ * La API de MediaFire no maneja bien queries con espacios o caracteres
147
+ * especiales, por lo que este método:
148
+ * 1. Extrae las palabras más únicas/distintivas del query
149
+ * 2. Busca usando esas palabras simples
150
+ * 3. Filtra los resultados para encontrar coincidencias reales
151
+ *
152
+ * @param query - Nombre del archivo o carpeta a buscar
153
+ * @param options - Opciones de búsqueda
154
+ * @returns Resultados filtrados que coinciden con el query
155
+ *
156
+ * @example
157
+ * ```typescript
158
+ * // Buscar con nombre completo
159
+ * const results = await client.files.smartSearch(
160
+ * 'La empresa de sillas (2025) Temporada 1 [1080p] {MAX} WEB-DL'
161
+ * );
162
+ *
163
+ * // Buscar solo carpetas
164
+ * const folders = await client.files.smartSearch('Mi Serie', {
165
+ * filter: 'folders'
166
+ * });
167
+ * ```
168
+ */
169
+ async smartSearch(query, options = {}) {
170
+ const session = this.getSession();
171
+ if (!session) {
172
+ throw new Error('Not authenticated. Please call login() first.');
173
+ }
174
+ const { filter = 'everything', exactMatch = false } = options;
175
+ // Extraer palabras clave del query
176
+ const keywords = this.extractSearchKeywords(query);
177
+ if (keywords.length === 0) {
178
+ return { query, items: [], total: 0 };
179
+ }
180
+ // Usar la palabra más única/distintiva para la búsqueda API
181
+ const searchTerm = keywords[0];
182
+ const response = await (0, api_1.apiCall)('folder/search', {
183
+ search_text: searchTerm,
184
+ filter: 'everything'
185
+ }, session);
186
+ const results = response.results || [];
187
+ // Convertir y filtrar resultados
188
+ let items = results.map(item => {
189
+ if (item.type === 'folder') {
190
+ return {
191
+ id: item.folderkey || '',
192
+ folderKey: item.folderkey || '',
193
+ name: item.name || '',
194
+ created: undefined,
195
+ fileCount: 0,
196
+ folderCount: 0,
197
+ parentFolderKey: item.parent_folderkey,
198
+ parentName: item.parent_name,
199
+ isFolder: true
200
+ };
201
+ }
202
+ else {
203
+ const size = parseInt(item.size || '0', 10);
204
+ return {
205
+ id: item.quickkey || '',
206
+ quickKey: item.quickkey || '',
207
+ name: item.filename || item.name || '',
208
+ size,
209
+ sizeFormatted: (0, utils_1.formatBytes)(size),
210
+ mimeType: item.mimetype,
211
+ parentFolderKey: item.parent_folderkey,
212
+ parentName: item.parent_name,
213
+ isFolder: false
214
+ };
215
+ }
216
+ });
217
+ // Filtrar por tipo si es necesario
218
+ if (filter === 'files') {
219
+ items = items.filter(item => !item.isFolder);
220
+ }
221
+ else if (filter === 'folders') {
222
+ items = items.filter(item => item.isFolder);
223
+ }
224
+ // Filtrar por coincidencia con el query original
225
+ if (exactMatch) {
226
+ // Coincidencia exacta (case-insensitive)
227
+ const queryLower = query.toLowerCase().trim();
228
+ items = items.filter(item => item.name.toLowerCase().trim() === queryLower);
229
+ }
230
+ else {
231
+ // Verificar que todas las palabras clave estén en el nombre
232
+ items = items.filter(item => this.matchesAllKeywords(item.name, keywords));
233
+ }
234
+ // Ordenar por relevancia (coincidencia más cercana primero)
235
+ items = this.sortByRelevance(items, query);
236
+ return {
237
+ query,
238
+ items,
239
+ total: items.length
240
+ };
241
+ }
242
+ /**
243
+ * Extrae las palabras clave más distintivas de un query de búsqueda.
244
+ * Filtra palabras comunes, años, resoluciones, etc.
245
+ */
246
+ extractSearchKeywords(query) {
247
+ // Palabras comunes a ignorar (stop words y términos técnicos genéricos)
248
+ const stopWords = new Set([
249
+ // Resoluciones y calidad
250
+ '1080p', '720p', '480p', '2160p', '4k', 'full', 'hd', 'uhd',
251
+ 'web', 'dl', 'webrip', 'bluray', 'brrip', 'bdrip', 'bdremux', 'remux',
252
+ 'hdr', 'hdr10', 'dv', 'dolby', 'vision', 'x264', 'x265', 'hevc', 'avc',
253
+ // Plataformas
254
+ 'netflix', 'ntfx', 'amazon', 'amnz', 'hbo', 'max', 'disney', 'dsny',
255
+ 'apple', 'aptv', 'paramount', 'prmnt', 'peacock', 'hulu', 'vix',
256
+ 'mgm', 'mgm+', 'booh', 'booh!',
257
+ // Idiomas
258
+ 'latino', 'español', 'castellano', 'ingles', 'inglés', 'subtitulado',
259
+ 'dual', 'multi', 'español', 'portugués', 'ruso',
260
+ // Términos comunes
261
+ 'temporada', 'temp', 'season', 'capitulo', 'cap', 'episode', 'ep',
262
+ 'vip', 'hdlatino', 'us', 'com', 'www',
263
+ // Artículos y preposiciones
264
+ 'el', 'la', 'los', 'las', 'un', 'una', 'de', 'del', 'en', 'con', 'por',
265
+ 'para', 'the', 'a', 'an', 'of', 'in', 'on', 'at', 'to', 'for', 'and', 'or'
266
+ ]);
267
+ // Limpiar el query: remover caracteres especiales excepto letras, números y espacios
268
+ let cleaned = query
269
+ .replace(/[\[\]{}()]/g, ' ') // Remover brackets
270
+ .replace(/[^\w\sáéíóúñü-]/gi, ' ') // Mantener solo alfanuméricos y acentos
271
+ .toLowerCase();
272
+ // Dividir en palabras
273
+ const words = cleaned.split(/\s+/).filter(word => word.length > 0);
274
+ // Filtrar palabras
275
+ const filtered = words.filter(word => {
276
+ // Ignorar palabras muy cortas
277
+ if (word.length < 3)
278
+ return false;
279
+ // Ignorar stop words
280
+ if (stopWords.has(word))
281
+ return false;
282
+ // Ignorar años (1900-2099)
283
+ if (/^(19|20)\d{2}$/.test(word))
284
+ return false;
285
+ // Ignorar números puros
286
+ if (/^\d+$/.test(word))
287
+ return false;
288
+ // Ignorar códigos de episodio (S01E01, etc.)
289
+ if (/^s\d+e?\d*$/i.test(word))
290
+ return false;
291
+ return true;
292
+ });
293
+ // Ordenar por unicidad (palabras menos comunes primero)
294
+ // Priorizar palabras más largas y con caracteres especiales
295
+ const scored = filtered.map(word => ({
296
+ word,
297
+ score: this.calculateWordScore(word, filtered)
298
+ }));
299
+ scored.sort((a, b) => b.score - a.score);
300
+ // Retornar palabras únicas
301
+ const unique = [...new Set(scored.map(s => s.word))];
302
+ return unique.slice(0, 5); // Máximo 5 palabras clave
303
+ }
304
+ /**
305
+ * Calcula un score de unicidad para una palabra
306
+ */
307
+ calculateWordScore(word, allWords) {
308
+ let score = 0;
309
+ // Palabras más largas son más únicas
310
+ score += word.length * 2;
311
+ // Palabras con caracteres especiales/acentos son más distintivas
312
+ if (/[áéíóúñü]/.test(word))
313
+ score += 5;
314
+ // Palabras que aparecen una sola vez son más únicas
315
+ const count = allWords.filter(w => w === word).length;
316
+ if (count === 1)
317
+ score += 10;
318
+ // Penalizar palabras muy comunes en nombres de archivos
319
+ const commonWords = ['serie', 'movie', 'film', 'show', 'video'];
320
+ if (commonWords.includes(word))
321
+ score -= 5;
322
+ return score;
323
+ }
324
+ /**
325
+ * Verifica si un nombre contiene todas las palabras clave
326
+ */
327
+ matchesAllKeywords(name, keywords) {
328
+ const nameLower = name.toLowerCase();
329
+ // Verificar que al menos la primera palabra clave (la más única) esté presente
330
+ if (keywords.length > 0 && !nameLower.includes(keywords[0])) {
331
+ return false;
332
+ }
333
+ // Para una coincidencia más flexible, verificar que al menos 60% de las palabras estén
334
+ const matchCount = keywords.filter(kw => nameLower.includes(kw)).length;
335
+ const matchRatio = matchCount / keywords.length;
336
+ return matchRatio >= 0.6;
337
+ }
338
+ /**
339
+ * Ordena los resultados por relevancia respecto al query original
340
+ */
341
+ sortByRelevance(items, query) {
342
+ const queryLower = query.toLowerCase();
343
+ return items.sort((a, b) => {
344
+ const aName = a.name.toLowerCase();
345
+ const bName = b.name.toLowerCase();
346
+ // Coincidencia exacta primero
347
+ if (aName === queryLower && bName !== queryLower)
348
+ return -1;
349
+ if (bName === queryLower && aName !== queryLower)
350
+ return 1;
351
+ // Luego, contiene el query completo
352
+ const aContains = aName.includes(queryLower);
353
+ const bContains = bName.includes(queryLower);
354
+ if (aContains && !bContains)
355
+ return -1;
356
+ if (bContains && !aContains)
357
+ return 1;
358
+ // Luego, por similitud de longitud
359
+ const aDiff = Math.abs(a.name.length - query.length);
360
+ const bDiff = Math.abs(b.name.length - query.length);
361
+ return aDiff - bDiff;
362
+ });
363
+ }
142
364
  /**
143
365
  * Set file privacy (public or private)
144
366
  *
@@ -195,6 +417,191 @@ class FilesModule {
195
417
  async makePrivate(quickKey) {
196
418
  return this.setPrivacy(quickKey, 'private');
197
419
  }
420
+ /**
421
+ * Copy a file to another folder
422
+ *
423
+ * @param quickKey - File quick key (or comma-separated list)
424
+ * @param folderKey - Destination folder key (default: root)
425
+ * @returns New quick keys of copied files
426
+ *
427
+ * @example
428
+ * ```typescript
429
+ * const newKeys = await client.files.copy('abc123', 'destFolder');
430
+ * ```
431
+ */
432
+ async copy(quickKey, folderKey) {
433
+ const session = this.getSession();
434
+ if (!session) {
435
+ throw new Error('Not authenticated. Please call login() first.');
436
+ }
437
+ const response = await (0, api_1.apiCall)('file/copy', {
438
+ quick_key: quickKey,
439
+ folder_key: folderKey || 'myfiles'
440
+ }, session);
441
+ return response.new_quickkeys || [];
442
+ }
443
+ /**
444
+ * Delete a file (move to trash)
445
+ *
446
+ * @param quickKey - File quick key (or comma-separated list)
447
+ * @returns True if successful
448
+ *
449
+ * @example
450
+ * ```typescript
451
+ * await client.files.delete('abc123');
452
+ * ```
453
+ */
454
+ async delete(quickKey) {
455
+ const session = this.getSession();
456
+ if (!session) {
457
+ throw new Error('Not authenticated. Please call login() first.');
458
+ }
459
+ await (0, api_1.apiCall)('file/delete', {
460
+ quick_key: quickKey
461
+ }, session);
462
+ return true;
463
+ }
464
+ /**
465
+ * Move a file to another folder
466
+ *
467
+ * @param quickKey - File quick key (or comma-separated list, max 500)
468
+ * @param folderKey - Destination folder key (default: root)
469
+ * @returns True if successful
470
+ *
471
+ * @example
472
+ * ```typescript
473
+ * await client.files.move('abc123', 'destFolder');
474
+ * ```
475
+ */
476
+ async move(quickKey, folderKey) {
477
+ const session = this.getSession();
478
+ if (!session) {
479
+ throw new Error('Not authenticated. Please call login() first.');
480
+ }
481
+ await (0, api_1.apiCall)('file/move', {
482
+ quick_key: quickKey,
483
+ folder_key: folderKey || 'myfiles'
484
+ }, session);
485
+ return true;
486
+ }
487
+ /**
488
+ * Rename a file
489
+ *
490
+ * @param quickKey - File quick key
491
+ * @param newName - New file name (with extension)
492
+ * @returns True if successful
493
+ *
494
+ * @example
495
+ * ```typescript
496
+ * await client.files.rename('abc123', 'newname.pdf');
497
+ * ```
498
+ */
499
+ async rename(quickKey, newName) {
500
+ const session = this.getSession();
501
+ if (!session) {
502
+ throw new Error('Not authenticated. Please call login() first.');
503
+ }
504
+ await (0, api_1.apiCall)('file/update', {
505
+ quick_key: quickKey,
506
+ filename: newName
507
+ }, session);
508
+ return true;
509
+ }
510
+ /**
511
+ * Permanently delete a file (cannot be recovered)
512
+ *
513
+ * @param quickKey - File quick key (or comma-separated list)
514
+ * @returns True if successful
515
+ *
516
+ * @example
517
+ * ```typescript
518
+ * await client.files.purge('abc123');
519
+ * ```
520
+ */
521
+ async purge(quickKey) {
522
+ const session = this.getSession();
523
+ if (!session) {
524
+ throw new Error('Not authenticated. Please call login() first.');
525
+ }
526
+ await (0, api_1.apiCall)('file/purge', {
527
+ quick_key: quickKey
528
+ }, session);
529
+ return true;
530
+ }
531
+ /**
532
+ * Restore a file from trash
533
+ *
534
+ * @param quickKey - File quick key (or comma-separated list)
535
+ * @returns True if successful
536
+ *
537
+ * @example
538
+ * ```typescript
539
+ * await client.files.restore('abc123');
540
+ * ```
541
+ */
542
+ async restore(quickKey) {
543
+ const session = this.getSession();
544
+ if (!session) {
545
+ throw new Error('Not authenticated. Please call login() first.');
546
+ }
547
+ await (0, api_1.apiCall)('file/restore', {
548
+ quick_key: quickKey
549
+ }, session);
550
+ return true;
551
+ }
552
+ /**
553
+ * Get file version history
554
+ *
555
+ * @param quickKey - File quick key
556
+ * @returns Array of file versions
557
+ *
558
+ * @example
559
+ * ```typescript
560
+ * const versions = await client.files.getVersions('abc123');
561
+ * ```
562
+ */
563
+ async getVersions(quickKey) {
564
+ const session = this.getSession();
565
+ if (!session) {
566
+ throw new Error('Not authenticated. Please call login() first.');
567
+ }
568
+ const response = await (0, api_1.apiCall)('file/get_versions', {
569
+ quick_key: quickKey
570
+ }, session);
571
+ return (response.file_versions || []).map(v => ({
572
+ revision: parseInt(v.revision, 10),
573
+ date: v.date
574
+ }));
575
+ }
576
+ /**
577
+ * Get recently modified files
578
+ *
579
+ * @returns Array of recently modified files
580
+ *
581
+ * @example
582
+ * ```typescript
583
+ * const recent = await client.files.getRecentlyModified();
584
+ * ```
585
+ */
586
+ async getRecentlyModified() {
587
+ const session = this.getSession();
588
+ if (!session) {
589
+ throw new Error('Not authenticated. Please call login() first.');
590
+ }
591
+ const response = await (0, api_1.apiCall)('file/recently_modified', {}, session);
592
+ const files = [];
593
+ const quickKeys = response.quickkeys || [];
594
+ for (const qk of quickKeys.slice(0, 10)) {
595
+ try {
596
+ const info = await this.getInfo(qk);
597
+ files.push(info);
598
+ }
599
+ catch {
600
+ // Skip files that can't be retrieved
601
+ }
602
+ }
603
+ return files;
604
+ }
198
605
  }
199
606
  exports.FilesModule = FilesModule;
200
607
  //# sourceMappingURL=files.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/modules/files.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/modules/files.ts"],"names":[],"mappings":"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"}