@sinoia/hubdoc-tools 1.3.8 → 1.4.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 (54) hide show
  1. package/dist/commands/export-v2.d.ts +45 -0
  2. package/dist/commands/export-v2.d.ts.map +1 -0
  3. package/dist/commands/export-v2.js +369 -0
  4. package/dist/commands/export-v2.js.map +1 -0
  5. package/dist/commands/import-v2.d.ts +32 -0
  6. package/dist/commands/import-v2.d.ts.map +1 -0
  7. package/dist/commands/import-v2.js +331 -0
  8. package/dist/commands/import-v2.js.map +1 -0
  9. package/dist/commands/import.d.ts.map +1 -1
  10. package/dist/commands/import.js +10 -2
  11. package/dist/commands/import.js.map +1 -1
  12. package/dist/index.d.ts +1 -1
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js.map +1 -1
  15. package/dist/plugins/alfresco/plugin.json +1 -1
  16. package/dist/plugins/aws-s3/plugin.json +1 -1
  17. package/dist/plugins/azure-blob/plugin.json +1 -1
  18. package/dist/plugins/box/plugin.json +1 -1
  19. package/dist/plugins/core/plugin.json +1 -1
  20. package/dist/plugins/nuxeo/plugin.json +1 -1
  21. package/dist/plugins/o365-mail/index.d.ts +26 -0
  22. package/dist/plugins/o365-mail/index.d.ts.map +1 -0
  23. package/dist/plugins/o365-mail/index.js +392 -0
  24. package/dist/plugins/o365-mail/index.js.map +1 -0
  25. package/dist/plugins/o365-mail/plugin.json +8 -0
  26. package/dist/plugins/opentext/plugin.json +1 -1
  27. package/dist/plugins/sharepoint/plugin.json +1 -1
  28. package/dist/services/hubdoc-api-v2.d.ts +150 -0
  29. package/dist/services/hubdoc-api-v2.d.ts.map +1 -0
  30. package/dist/services/hubdoc-api-v2.js +418 -0
  31. package/dist/services/hubdoc-api-v2.js.map +1 -0
  32. package/dist/services/hubdoc-client.d.ts +246 -0
  33. package/dist/services/hubdoc-client.d.ts.map +1 -0
  34. package/dist/services/hubdoc-client.js +714 -0
  35. package/dist/services/hubdoc-client.js.map +1 -0
  36. package/dist/services/hubdoc-export-service.d.ts +90 -0
  37. package/dist/services/hubdoc-export-service.d.ts.map +1 -0
  38. package/dist/services/hubdoc-export-service.js +443 -0
  39. package/dist/services/hubdoc-export-service.js.map +1 -0
  40. package/dist/services/hubdoc-export-v2.d.ts +77 -0
  41. package/dist/services/hubdoc-export-v2.d.ts.map +1 -0
  42. package/dist/services/hubdoc-export-v2.js +329 -0
  43. package/dist/services/hubdoc-export-v2.js.map +1 -0
  44. package/dist/services/hubdoc-import-service.d.ts +64 -0
  45. package/dist/services/hubdoc-import-service.d.ts.map +1 -0
  46. package/dist/services/hubdoc-import-service.js +374 -0
  47. package/dist/services/hubdoc-import-service.js.map +1 -0
  48. package/dist/test/hubdoc-api-test.d.ts +8 -0
  49. package/dist/test/hubdoc-api-test.d.ts.map +1 -0
  50. package/dist/test/hubdoc-api-test.js +152 -0
  51. package/dist/test/hubdoc-api-test.js.map +1 -0
  52. package/dist/types/index.d.ts +11 -0
  53. package/dist/types/index.d.ts.map +1 -1
  54. package/package.json +1 -1
@@ -0,0 +1,392 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const axios_1 = __importDefault(require("axios"));
7
+ const fs_extra_1 = __importDefault(require("fs-extra"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const concurrent_processor_1 = require("../../src/utils/concurrent-processor");
10
+ class O365MailPlugin {
11
+ constructor() {
12
+ this.name = 'o365-mail';
13
+ this.version = '1.0.0';
14
+ this.description = 'Microsoft 365 Mail via Microsoft Graph API';
15
+ this.supportedOperations = ['import'];
16
+ this.baseUrl = 'https://graph.microsoft.com/v1.0';
17
+ }
18
+ async testConnection(config) {
19
+ try {
20
+ const client = this.createApiClient(config);
21
+ const mailboxConfig = config;
22
+ const mailboxPath = mailboxConfig.mailbox || 'me';
23
+ // Test connection by fetching user info
24
+ const response = await client.get(`/users/${mailboxPath}`);
25
+ return response.status === 200;
26
+ }
27
+ catch (error) {
28
+ console.error(`O365 Mail connection test failed: ${error.message}`);
29
+ return false;
30
+ }
31
+ }
32
+ async scan(config, options) {
33
+ this.config = config;
34
+ this.apiClient = this.createApiClient(this.config);
35
+ const sources = [];
36
+ const errors = [];
37
+ let totalSize = 0;
38
+ try {
39
+ const limit = this.config.limit || options?.limit;
40
+ const mailboxPath = this.config.mailbox || 'me';
41
+ const folderId = this.config.folderId || 'inbox';
42
+ console.log(`🔍 Scanning O365 Mail folder${limit ? ` (limit: ${limit})` : ''}...`);
43
+ // Scan messages with pagination
44
+ let nextLink = null;
45
+ let processedCount = 0;
46
+ const pageSize = limit && limit < 50 ? limit : 50;
47
+ do {
48
+ try {
49
+ const url = nextLink || `/users/${mailboxPath}/mailFolders/${folderId}/messages`;
50
+ const response = await this.apiClient.get(url, {
51
+ params: nextLink ? {} : {
52
+ $top: pageSize,
53
+ $select: 'id,subject,bodyPreview,from,toRecipients,receivedDateTime,sentDateTime,hasAttachments,importance,isRead,categories,internetMessageId,conversationId',
54
+ $orderby: 'receivedDateTime DESC'
55
+ }
56
+ });
57
+ const messages = response.data.value || [];
58
+ console.log(`📧 Processing ${messages.length} messages...`);
59
+ for (const message of messages) {
60
+ // Create a document source for the email itself
61
+ const emailSource = await this.createEmailSource(message, mailboxPath);
62
+ if (this.shouldIncludeSource(emailSource, options)) {
63
+ sources.push(emailSource);
64
+ totalSize += emailSource.size;
65
+ processedCount++;
66
+ }
67
+ // If attachments are enabled, also create sources for attachments
68
+ if (this.config.includeAttachments && message.hasAttachments) {
69
+ const attachmentSources = await this.scanAttachments(message, mailboxPath);
70
+ for (const attachmentSource of attachmentSources) {
71
+ if (this.shouldIncludeSource(attachmentSource, options)) {
72
+ sources.push(attachmentSource);
73
+ totalSize += attachmentSource.size;
74
+ processedCount++;
75
+ }
76
+ }
77
+ }
78
+ // Check limit
79
+ if (limit && processedCount >= limit) {
80
+ console.log(`📏 Reached limit of ${limit} items`);
81
+ break;
82
+ }
83
+ }
84
+ nextLink = response.data['@odata.nextLink'] || null;
85
+ // Respect API rate limits
86
+ await this.sleep(200);
87
+ }
88
+ catch (pageError) {
89
+ console.warn(`⚠️ Warning: Failed to fetch messages: ${pageError.message}`);
90
+ errors.push(`Failed to fetch messages: ${pageError.message}`);
91
+ break;
92
+ }
93
+ if (limit && processedCount >= limit) {
94
+ break;
95
+ }
96
+ } while (nextLink);
97
+ console.log(`✅ Scan completed: ${sources.length} items found (emails + attachments)`);
98
+ return {
99
+ sources,
100
+ totalCount: sources.length,
101
+ totalSize,
102
+ errors
103
+ };
104
+ }
105
+ catch (error) {
106
+ return {
107
+ sources: [],
108
+ totalCount: 0,
109
+ totalSize: 0,
110
+ errors: [`O365 Mail scan failed: ${error.message}`]
111
+ };
112
+ }
113
+ }
114
+ async createEmailSource(message, mailboxPath) {
115
+ // Estimate email size (body + metadata)
116
+ const bodySize = message.bodyPreview?.length || 0;
117
+ const estimatedSize = bodySize + 2000; // Add overhead for metadata
118
+ // Create a clean filename from subject
119
+ const cleanSubject = this.sanitizeFilename(message.subject || 'No Subject');
120
+ const dateStr = new Date(message.receivedDateTime).toISOString().split('T')[0];
121
+ const fileName = `${dateStr}_${cleanSubject}.eml`;
122
+ return {
123
+ id: message.id,
124
+ name: fileName,
125
+ path: `emails/${dateStr}/${fileName}`,
126
+ size: estimatedSize,
127
+ mimeType: 'message/rfc822',
128
+ lastModified: new Date(message.receivedDateTime),
129
+ metadata: {
130
+ messageId: message.id,
131
+ subject: message.subject,
132
+ from: message.from.emailAddress.address,
133
+ fromName: message.from.emailAddress.name,
134
+ to: message.toRecipients.map(r => r.emailAddress.address).join(', '),
135
+ cc: message.ccRecipients?.map(r => r.emailAddress.address).join(', '),
136
+ receivedDateTime: message.receivedDateTime,
137
+ sentDateTime: message.sentDateTime,
138
+ hasAttachments: message.hasAttachments,
139
+ importance: message.importance,
140
+ isRead: message.isRead,
141
+ categories: message.categories,
142
+ internetMessageId: message.internetMessageId,
143
+ conversationId: message.conversationId,
144
+ type: 'email'
145
+ }
146
+ };
147
+ }
148
+ async scanAttachments(message, mailboxPath) {
149
+ if (!this.apiClient)
150
+ return [];
151
+ try {
152
+ const response = await this.apiClient.get(`/users/${mailboxPath}/messages/${message.id}/attachments`, {
153
+ params: {
154
+ $select: 'id,name,contentType,size,isInline,lastModifiedDateTime'
155
+ }
156
+ });
157
+ const attachments = response.data.value || [];
158
+ const sources = [];
159
+ for (const attachment of attachments) {
160
+ // Skip inline attachments (embedded images, etc.) if desired
161
+ if (attachment.isInline)
162
+ continue;
163
+ const dateStr = new Date(message.receivedDateTime).toISOString().split('T')[0];
164
+ const cleanSubject = this.sanitizeFilename(message.subject || 'No Subject');
165
+ sources.push({
166
+ id: `${message.id}:${attachment.id}`,
167
+ name: attachment.name,
168
+ path: `attachments/${dateStr}/${cleanSubject}/${attachment.name}`,
169
+ size: attachment.size,
170
+ mimeType: attachment.contentType || 'application/octet-stream',
171
+ lastModified: new Date(attachment.lastModifiedDateTime || message.receivedDateTime),
172
+ metadata: {
173
+ messageId: message.id,
174
+ attachmentId: attachment.id,
175
+ parentSubject: message.subject,
176
+ from: message.from.emailAddress.address,
177
+ receivedDateTime: message.receivedDateTime,
178
+ isInline: attachment.isInline,
179
+ type: 'attachment'
180
+ }
181
+ });
182
+ }
183
+ return sources;
184
+ }
185
+ catch (error) {
186
+ console.warn(`⚠️ Warning: Failed to fetch attachments for message ${message.id}: ${error.message}`);
187
+ return [];
188
+ }
189
+ }
190
+ async import(config, sources, targetDir, options) {
191
+ this.config = config;
192
+ this.apiClient = this.createApiClient(this.config);
193
+ const concurrency = options?.concurrent || 1;
194
+ const mailboxPath = this.config.mailbox || 'me';
195
+ console.log(`📥 Starting concurrent import of ${sources.length} items from O365 Mail (${concurrency} jobs)`);
196
+ // Use concurrent processor
197
+ const processingResult = await concurrent_processor_1.ConcurrentProcessor.processWithProgress(sources, async (source, index) => {
198
+ const result = await this.importSingle(source, targetDir, mailboxPath);
199
+ // Rate limiting delay
200
+ if (concurrency > 1) {
201
+ await this.sleep(100);
202
+ }
203
+ return result;
204
+ }, {
205
+ concurrency,
206
+ operation: 'Import from O365 Mail',
207
+ itemName: 'items'
208
+ });
209
+ // Filter valid results and handle errors
210
+ const validResults = processingResult.results.filter(r => r !== undefined);
211
+ const errorResults = processingResult.errors.map(({ item, error }) => ({
212
+ success: false,
213
+ source: item,
214
+ error: error.message
215
+ }));
216
+ return [...validResults, ...errorResults];
217
+ }
218
+ async importSingle(source, targetDir, mailboxPath) {
219
+ try {
220
+ if (!this.apiClient)
221
+ throw new Error('API client not initialized');
222
+ const targetPath = path_1.default.join(targetDir, source.path);
223
+ const targetDirectory = path_1.default.dirname(targetPath);
224
+ await fs_extra_1.default.ensureDir(targetDirectory);
225
+ if (source.metadata?.type === 'email') {
226
+ // Download email content
227
+ return await this.importEmail(source, targetPath, mailboxPath);
228
+ }
229
+ else if (source.metadata?.type === 'attachment') {
230
+ // Download attachment
231
+ return await this.importAttachment(source, targetPath, mailboxPath);
232
+ }
233
+ else {
234
+ throw new Error('Unknown source type');
235
+ }
236
+ }
237
+ catch (error) {
238
+ console.error(`❌ Failed to import ${source.name}: ${error.message}`);
239
+ return {
240
+ success: false,
241
+ source,
242
+ error: error.message
243
+ };
244
+ }
245
+ }
246
+ async importEmail(source, targetPath, mailboxPath) {
247
+ try {
248
+ // Fetch full email content in MIME format
249
+ const response = await this.apiClient.get(`/users/${mailboxPath}/messages/${source.id}/$value`, {
250
+ responseType: 'arraybuffer',
251
+ headers: {
252
+ 'Accept': 'message/rfc822'
253
+ }
254
+ });
255
+ // Write email to file
256
+ await fs_extra_1.default.writeFile(targetPath, response.data);
257
+ const stats = await fs_extra_1.default.stat(targetPath);
258
+ console.log(`✅ Imported email: ${source.name} (${stats.size} bytes)`);
259
+ return {
260
+ success: true,
261
+ source,
262
+ localPath: targetPath,
263
+ bytesTransferred: stats.size
264
+ };
265
+ }
266
+ catch (error) {
267
+ throw new Error(`Failed to import email: ${error.message}`);
268
+ }
269
+ }
270
+ async importAttachment(source, targetPath, mailboxPath) {
271
+ try {
272
+ // Extract messageId and attachmentId
273
+ const [messageId, attachmentId] = source.id.split(':');
274
+ // Fetch attachment content
275
+ const response = await this.apiClient.get(`/users/${mailboxPath}/messages/${messageId}/attachments/${attachmentId}`, {
276
+ params: {
277
+ $select: 'contentBytes'
278
+ }
279
+ });
280
+ const attachment = response.data;
281
+ // Decode base64 content and write to file
282
+ if (attachment.contentBytes) {
283
+ const buffer = Buffer.from(attachment.contentBytes, 'base64');
284
+ await fs_extra_1.default.writeFile(targetPath, buffer);
285
+ const stats = await fs_extra_1.default.stat(targetPath);
286
+ console.log(`✅ Imported attachment: ${source.name} (${stats.size} bytes)`);
287
+ return {
288
+ success: true,
289
+ source,
290
+ localPath: targetPath,
291
+ bytesTransferred: stats.size
292
+ };
293
+ }
294
+ else {
295
+ throw new Error('Attachment content not available');
296
+ }
297
+ }
298
+ catch (error) {
299
+ throw new Error(`Failed to import attachment: ${error.message}`);
300
+ }
301
+ }
302
+ getConfigSchema() {
303
+ return {
304
+ type: 'object',
305
+ properties: {
306
+ accessToken: {
307
+ type: 'string',
308
+ description: 'Microsoft Graph API access token with Mail.Read permissions',
309
+ required: true
310
+ },
311
+ mailbox: {
312
+ type: 'string',
313
+ description: 'Email address or "me" for current user (default: me)',
314
+ required: false
315
+ },
316
+ folderId: {
317
+ type: 'string',
318
+ description: 'Mail folder ID or name (default: inbox). Common values: inbox, sentitems, drafts, deleteditems',
319
+ required: false
320
+ },
321
+ includeAttachments: {
322
+ type: 'boolean',
323
+ description: 'Whether to include email attachments (default: true)',
324
+ required: false
325
+ },
326
+ limit: {
327
+ type: 'number',
328
+ description: 'Maximum number of items to scan (useful for testing)',
329
+ required: false
330
+ }
331
+ },
332
+ required: ['accessToken']
333
+ };
334
+ }
335
+ async initialize(config) {
336
+ this.config = config;
337
+ if (!this.config.accessToken) {
338
+ throw new Error('O365 Mail plugin requires accessToken');
339
+ }
340
+ // Set default values
341
+ if (this.config.includeAttachments === undefined) {
342
+ this.config.includeAttachments = true;
343
+ }
344
+ this.apiClient = this.createApiClient(this.config);
345
+ console.log('✅ O365 Mail plugin initialized successfully');
346
+ }
347
+ async destroy() {
348
+ this.config = undefined;
349
+ this.apiClient = undefined;
350
+ }
351
+ createApiClient(config) {
352
+ return axios_1.default.create({
353
+ baseURL: this.baseUrl,
354
+ headers: {
355
+ 'Authorization': `Bearer ${config.accessToken}`,
356
+ 'Content-Type': 'application/json'
357
+ },
358
+ timeout: 60000 // Longer timeout for email downloads
359
+ });
360
+ }
361
+ sanitizeFilename(filename) {
362
+ // Remove or replace invalid filesystem characters
363
+ return filename
364
+ .replace(/[<>:"/\\|?*\x00-\x1F]/g, '_')
365
+ .replace(/\s+/g, '_')
366
+ .substring(0, 100); // Limit length
367
+ }
368
+ shouldIncludeSource(source, options) {
369
+ // Apply size filter
370
+ if (options?.filters?.maxSize && source.size > options.filters.maxSize) {
371
+ return false;
372
+ }
373
+ // Apply date range filter
374
+ if (options?.filters?.dateRange) {
375
+ const { from, to } = options.filters.dateRange;
376
+ if (from && source.lastModified < from)
377
+ return false;
378
+ if (to && source.lastModified > to)
379
+ return false;
380
+ }
381
+ // Apply MIME type filter
382
+ if (options?.filters?.mimeTypes && !options.filters.mimeTypes.includes(source.mimeType)) {
383
+ return false;
384
+ }
385
+ return true;
386
+ }
387
+ sleep(ms) {
388
+ return new Promise(resolve => setTimeout(resolve, ms));
389
+ }
390
+ }
391
+ exports.default = O365MailPlugin;
392
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../plugins/o365-mail/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "o365-mail",
3
+ "version": "1.0.0",
4
+ "description": "Microsoft 365 Mail connector via Microsoft Graph API",
5
+ "author": "Hubdoc Tools",
6
+ "main": "index.ts",
7
+ "hubdocToolVersion": "1.0.0"
8
+ }
@@ -3,7 +3,7 @@
3
3
  "version": "1.0.0",
4
4
  "description": "OpenText document source plugin",
5
5
  "author": "HubDoc Tools",
6
- "main": "index.ts",
6
+ "main": "index.js",
7
7
  "hubdocToolVersion": "^1.0.0",
8
8
  "dependencies": {
9
9
  "axios": "^1.5.0",
@@ -3,7 +3,7 @@
3
3
  "version": "1.0.0",
4
4
  "description": "SharePoint document source plugin",
5
5
  "author": "HubDoc Tools",
6
- "main": "index.ts",
6
+ "main": "index.js",
7
7
  "hubdocToolVersion": "^1.0.0",
8
8
  "dependencies": {
9
9
  "@pnp/sp": "^3.0.0",
@@ -0,0 +1,150 @@
1
+ import { HubDocConfig, DocumentMapping, ImportResult } from '../types';
2
+ export interface HubDocWorkspace {
3
+ id: string;
4
+ name: string;
5
+ description?: string;
6
+ permissions: {
7
+ level: 'read' | 'write' | 'admin';
8
+ users: string[];
9
+ groups: string[];
10
+ }[];
11
+ metadata?: Record<string, any>;
12
+ created_at: string;
13
+ updated_at: string;
14
+ }
15
+ export interface HubDocFile {
16
+ id: string;
17
+ name: string;
18
+ size: number;
19
+ mime_type: string;
20
+ folder_id?: string;
21
+ workspace_id?: string;
22
+ version: number;
23
+ metadata?: Record<string, any>;
24
+ permissions: {
25
+ level: 'read' | 'write' | 'admin';
26
+ users: string[];
27
+ groups: string[];
28
+ }[];
29
+ created_at: string;
30
+ updated_at: string;
31
+ download_url?: string;
32
+ }
33
+ export interface HubDocFolderV2 {
34
+ id: string;
35
+ name: string;
36
+ parent_id?: string;
37
+ workspace_id?: string;
38
+ permissions: {
39
+ level: 'read' | 'write' | 'admin';
40
+ users: string[];
41
+ groups: string[];
42
+ }[];
43
+ metadata?: Record<string, any>;
44
+ created_at: string;
45
+ updated_at: string;
46
+ }
47
+ export interface CreateWorkspaceRequest {
48
+ name: string;
49
+ description?: string;
50
+ permissions?: {
51
+ level: 'read' | 'write' | 'admin';
52
+ users?: string[];
53
+ groups?: string[];
54
+ }[];
55
+ metadata?: Record<string, any>;
56
+ }
57
+ export interface CreateFolderRequest {
58
+ name: string;
59
+ parent_id?: string;
60
+ workspace_id?: string;
61
+ permissions?: {
62
+ level: 'read' | 'write' | 'admin';
63
+ users?: string[];
64
+ groups?: string[];
65
+ }[];
66
+ metadata?: Record<string, any>;
67
+ }
68
+ export interface UploadFileRequest {
69
+ folder_id?: string;
70
+ workspace_id?: string;
71
+ permissions?: {
72
+ level: 'read' | 'write' | 'admin';
73
+ users?: string[];
74
+ groups?: string[];
75
+ }[];
76
+ metadata?: Record<string, any>;
77
+ }
78
+ export declare class HubDocApiServiceV2 {
79
+ private client;
80
+ private config;
81
+ constructor(config: HubDocConfig);
82
+ /**
83
+ * Test API connection
84
+ */
85
+ testConnection(): Promise<boolean>;
86
+ /**
87
+ * Login and get JWT token
88
+ */
89
+ login(email: string, password: string): Promise<string>;
90
+ /**
91
+ * Get all workspaces
92
+ */
93
+ getWorkspaces(): Promise<HubDocWorkspace[]>;
94
+ /**
95
+ * Create a new workspace
96
+ */
97
+ createWorkspace(request: CreateWorkspaceRequest): Promise<HubDocWorkspace>;
98
+ /**
99
+ * Find workspace by name
100
+ */
101
+ findWorkspace(name: string): Promise<HubDocWorkspace | null>;
102
+ /**
103
+ * Find or create workspace
104
+ */
105
+ findOrCreateWorkspace(name: string, permissions?: DocumentMapping['permissions']): Promise<HubDocWorkspace>;
106
+ /**
107
+ * Get folders in workspace
108
+ */
109
+ getFolders(workspaceId?: string): Promise<HubDocFolderV2[]>;
110
+ /**
111
+ * Create a new folder
112
+ */
113
+ createFolder(request: CreateFolderRequest): Promise<HubDocFolderV2>;
114
+ /**
115
+ * Find or create folder hierarchy
116
+ */
117
+ findOrCreateFolderPath(folderPath: string, workspaceId?: string, permissions?: DocumentMapping['permissions']): Promise<HubDocFolderV2>;
118
+ /**
119
+ * Upload a file
120
+ */
121
+ uploadFile(filePath: string, request: UploadFileRequest): Promise<HubDocFile>;
122
+ /**
123
+ * Import document using mapping
124
+ */
125
+ importDocument(mapping: DocumentMapping): Promise<ImportResult>;
126
+ /**
127
+ * Bulk import documents
128
+ */
129
+ bulkImport(mappings: DocumentMapping[], options?: {
130
+ batchSize?: number;
131
+ concurrent?: boolean;
132
+ }): Promise<ImportResult[]>;
133
+ /**
134
+ * Search files and folders
135
+ */
136
+ search(query: string, type?: 'file' | 'folder' | 'workspace'): Promise<any>;
137
+ /**
138
+ * Convert DocumentMapping permissions to HubDoc API format
139
+ */
140
+ private convertPermissions;
141
+ /**
142
+ * Get MIME type from file extension
143
+ */
144
+ private getMimeType;
145
+ /**
146
+ * Format file size for display
147
+ */
148
+ private formatFileSize;
149
+ }
150
+ //# sourceMappingURL=hubdoc-api-v2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hubdoc-api-v2.d.ts","sourceRoot":"","sources":["../../src/services/hubdoc-api-v2.ts"],"names":[],"mappings":"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"}