@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,77 @@
1
+ import { HubDocConfig } from '../types';
2
+ import { ExportMapping, ExportResult } from '../types/export';
3
+ export interface HubDocExportDocument {
4
+ id: string;
5
+ name: string;
6
+ size: number;
7
+ mime_type: string;
8
+ folder_path: string;
9
+ workspace_name?: string;
10
+ download_url: string;
11
+ metadata?: Record<string, any>;
12
+ created_at: string;
13
+ updated_at: string;
14
+ }
15
+ export declare class HubDocExportServiceV2 {
16
+ private apiService;
17
+ private config;
18
+ constructor(config: HubDocConfig);
19
+ /**
20
+ * Test API connection
21
+ */
22
+ testConnection(): Promise<boolean>;
23
+ /**
24
+ * Generate export mapping from HubDoc documents
25
+ */
26
+ generateExportMapping(workspaceFilter?: string, folderFilter?: string): Promise<ExportMapping[]>;
27
+ /**
28
+ * Export documents based on mapping
29
+ */
30
+ exportDocuments(mappings: ExportMapping[], outputDir: string): Promise<ExportResult[]>;
31
+ /**
32
+ * Export a single document
33
+ */
34
+ private exportSingleDocument;
35
+ /**
36
+ * Download document from HubDoc
37
+ */
38
+ private downloadDocument;
39
+ /**
40
+ * Get files in a specific folder
41
+ */
42
+ private getFilesInFolder;
43
+ /**
44
+ * Build full folder path from folder hierarchy
45
+ */
46
+ private buildFolderPath;
47
+ /**
48
+ * Generate default target path for export
49
+ */
50
+ private generateDefaultTargetPath;
51
+ /**
52
+ * Sanitize path for file system compatibility
53
+ */
54
+ private sanitizePath;
55
+ /**
56
+ * Search documents across HubDoc
57
+ */
58
+ searchDocuments(query: string, options?: {
59
+ workspace?: string;
60
+ fileType?: string;
61
+ limit?: number;
62
+ }): Promise<ExportMapping[]>;
63
+ /**
64
+ * Get export statistics
65
+ */
66
+ getExportStats(): Promise<{
67
+ totalWorkspaces: number;
68
+ totalFolders: number;
69
+ totalFiles: number;
70
+ totalSize: number;
71
+ }>;
72
+ /**
73
+ * Sleep utility for rate limiting
74
+ */
75
+ private sleep;
76
+ }
77
+ //# sourceMappingURL=hubdoc-export-v2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hubdoc-export-v2.d.ts","sourceRoot":"","sources":["../../src/services/hubdoc-export-v2.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG9D,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,qBAAqB;IAChC,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,EAAE,YAAY;IAKhC;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAIxC;;OAEG;IACG,qBAAqB,CACzB,eAAe,CAAC,EAAE,MAAM,EACxB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,aAAa,EAAE,CAAC;IAgE3B;;OAEG;IACG,eAAe,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAwD5F;;OAEG;YACW,oBAAoB;IAmClC;;OAEG;YACW,gBAAgB;IAgC9B;;OAEG;YACW,gBAAgB;IAoB9B;;OAEG;IACH,OAAO,CAAC,eAAe;IAkBvB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAQjC;;OAEG;IACH,OAAO,CAAC,YAAY;IAOpB;;OAEG;IACG,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAgD5B;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC;QAC9B,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAoCF;;OAEG;IACH,OAAO,CAAC,KAAK;CAGd"}
@@ -0,0 +1,329 @@
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
+ exports.HubDocExportServiceV2 = void 0;
7
+ const axios_1 = __importDefault(require("axios"));
8
+ const fs_extra_1 = __importDefault(require("fs-extra"));
9
+ const path_1 = __importDefault(require("path"));
10
+ const chalk_1 = __importDefault(require("chalk"));
11
+ const hubdoc_api_v2_1 = require("./hubdoc-api-v2");
12
+ class HubDocExportServiceV2 {
13
+ constructor(config) {
14
+ this.config = config;
15
+ this.apiService = new hubdoc_api_v2_1.HubDocApiServiceV2(config);
16
+ }
17
+ /**
18
+ * Test API connection
19
+ */
20
+ async testConnection() {
21
+ return this.apiService.testConnection();
22
+ }
23
+ /**
24
+ * Generate export mapping from HubDoc documents
25
+ */
26
+ async generateExportMapping(workspaceFilter, folderFilter) {
27
+ console.log(chalk_1.default.blue('🔍 Scanning HubDoc documents...'));
28
+ const mappings = [];
29
+ try {
30
+ // Get all workspaces or filter by name
31
+ const workspaces = await this.apiService.getWorkspaces();
32
+ const targetWorkspaces = workspaceFilter
33
+ ? workspaces.filter(w => w.name.includes(workspaceFilter))
34
+ : workspaces;
35
+ console.log(chalk_1.default.gray(` Found ${targetWorkspaces.length} workspace(s) to scan`));
36
+ for (const workspace of targetWorkspaces) {
37
+ console.log(chalk_1.default.blue(` 📁 Scanning workspace: ${workspace.name}`));
38
+ // Get folders in workspace
39
+ const folders = await this.apiService.getFolders(workspace.id);
40
+ // Build folder hierarchy for better path resolution
41
+ const folderMap = new Map();
42
+ folders.forEach(folder => folderMap.set(folder.id, folder));
43
+ for (const folder of folders) {
44
+ // Skip if folder filter is specified and doesn't match
45
+ if (folderFilter && !folder.name.includes(folderFilter)) {
46
+ continue;
47
+ }
48
+ // Get files in this folder
49
+ const files = await this.getFilesInFolder(folder.id);
50
+ for (const file of files) {
51
+ const folderPath = this.buildFolderPath(folder, folderMap);
52
+ const projectLocation = {
53
+ projectName: workspace.name,
54
+ folderPath: folderPath,
55
+ fullPath: `${workspace.name}/${folderPath}`
56
+ };
57
+ const mapping = {
58
+ documentId: file.id,
59
+ documentName: file.name,
60
+ projects: [projectLocation],
61
+ downloadUrl: file.download_url || `/files/${file.id}/download`,
62
+ targetPath: this.generateDefaultTargetPath(workspace.name, folderPath),
63
+ metadata: file.metadata
64
+ };
65
+ mappings.push(mapping);
66
+ }
67
+ }
68
+ }
69
+ console.log(chalk_1.default.green(`✅ Found ${mappings.length} documents to export`));
70
+ return mappings;
71
+ }
72
+ catch (error) {
73
+ console.error(chalk_1.default.red(`❌ Failed to generate export mapping: ${error.message}`));
74
+ throw error;
75
+ }
76
+ }
77
+ /**
78
+ * Export documents based on mapping
79
+ */
80
+ async exportDocuments(mappings, outputDir) {
81
+ const results = [];
82
+ console.log(chalk_1.default.blue(`📦 Starting export of ${mappings.length} documents`));
83
+ console.log(chalk_1.default.gray(` Output directory: ${path_1.default.resolve(outputDir)}`));
84
+ // Ensure output directory exists
85
+ await fs_extra_1.default.ensureDir(outputDir);
86
+ let successCount = 0;
87
+ let failureCount = 0;
88
+ for (let i = 0; i < mappings.length; i++) {
89
+ const mapping = mappings[i];
90
+ try {
91
+ const result = await this.exportSingleDocument(mapping, outputDir);
92
+ results.push(result);
93
+ if (result.success) {
94
+ successCount++;
95
+ }
96
+ else {
97
+ failureCount++;
98
+ }
99
+ // Progress update
100
+ if ((i + 1) % 10 === 0) {
101
+ console.log(chalk_1.default.blue(`📊 Progress: ${i + 1}/${mappings.length} processed`));
102
+ }
103
+ }
104
+ catch (error) {
105
+ failureCount++;
106
+ results.push({
107
+ success: false,
108
+ documentId: mapping.documentId,
109
+ documentName: mapping.documentName,
110
+ exportedPath: '',
111
+ error: error.message
112
+ });
113
+ console.error(chalk_1.default.red(`❌ Export failed for ${mapping.documentName}: ${error.message}`));
114
+ }
115
+ // Small delay to avoid overwhelming the API
116
+ await this.sleep(50);
117
+ }
118
+ console.log(chalk_1.default.bold('\n📊 Export Summary'));
119
+ console.log(chalk_1.default.green(`✅ Successfully exported: ${successCount} documents`));
120
+ if (failureCount > 0) {
121
+ console.log(chalk_1.default.red(`❌ Failed exports: ${failureCount}`));
122
+ }
123
+ return results;
124
+ }
125
+ /**
126
+ * Export a single document
127
+ */
128
+ async exportSingleDocument(mapping, baseOutputDir) {
129
+ try {
130
+ // Determine target path
131
+ const targetPath = mapping.targetPath || this.generateDefaultTargetPath(mapping.projects[0]?.projectName || 'Unknown', mapping.projects[0]?.folderPath || 'Documents');
132
+ const fullExportPath = path_1.default.join(baseOutputDir, targetPath, mapping.documentName);
133
+ const exportDir = path_1.default.dirname(fullExportPath);
134
+ // Ensure target directory exists
135
+ await fs_extra_1.default.ensureDir(exportDir);
136
+ // Download file
137
+ await this.downloadDocument(mapping.documentId, mapping.downloadUrl, fullExportPath);
138
+ return {
139
+ success: true,
140
+ documentId: mapping.documentId,
141
+ documentName: mapping.documentName,
142
+ exportedPath: fullExportPath
143
+ };
144
+ }
145
+ catch (error) {
146
+ return {
147
+ success: false,
148
+ documentId: mapping.documentId,
149
+ documentName: mapping.documentName,
150
+ exportedPath: '',
151
+ error: error.message
152
+ };
153
+ }
154
+ }
155
+ /**
156
+ * Download document from HubDoc
157
+ */
158
+ async downloadDocument(documentId, downloadUrl, targetPath) {
159
+ try {
160
+ // Construct full URL if relative
161
+ const fullUrl = downloadUrl.startsWith('http')
162
+ ? downloadUrl
163
+ : `${this.config.apiUrl}${downloadUrl}`;
164
+ const response = await axios_1.default.get(fullUrl, {
165
+ headers: {
166
+ 'Authorization': `Bearer ${this.config.token}`
167
+ },
168
+ responseType: 'stream',
169
+ timeout: 60000 // 60 seconds timeout for large files
170
+ });
171
+ const writer = fs_extra_1.default.createWriteStream(targetPath);
172
+ response.data.pipe(writer);
173
+ return new Promise((resolve, reject) => {
174
+ writer.on('finish', () => {
175
+ resolve();
176
+ });
177
+ writer.on('error', (error) => {
178
+ reject(error);
179
+ });
180
+ });
181
+ }
182
+ catch (error) {
183
+ throw new Error(`Download failed for document ${documentId}: ${error.message}`);
184
+ }
185
+ }
186
+ /**
187
+ * Get files in a specific folder
188
+ */
189
+ async getFilesInFolder(folderId) {
190
+ try {
191
+ // Use the folder contents endpoint
192
+ const response = await axios_1.default.get(`${this.config.apiUrl}/folders/${folderId}/contents`, {
193
+ headers: {
194
+ 'Authorization': `Bearer ${this.config.token}`,
195
+ 'Accept': 'application/json'
196
+ }
197
+ });
198
+ // Filter to only return files (not subfolders)
199
+ const contents = response.data.data || response.data;
200
+ return contents.filter((item) => item.type === 'file' || !item.hasOwnProperty('type'));
201
+ }
202
+ catch (error) {
203
+ console.warn(chalk_1.default.yellow(`Warning: Could not get contents of folder ${folderId}: ${error.message}`));
204
+ return [];
205
+ }
206
+ }
207
+ /**
208
+ * Build full folder path from folder hierarchy
209
+ */
210
+ buildFolderPath(folder, folderMap) {
211
+ const pathParts = [];
212
+ let currentFolder = folder;
213
+ // Walk up the parent hierarchy
214
+ while (currentFolder) {
215
+ pathParts.unshift(currentFolder.name);
216
+ if (currentFolder.parent_id) {
217
+ currentFolder = folderMap.get(currentFolder.parent_id);
218
+ }
219
+ else {
220
+ currentFolder = undefined;
221
+ }
222
+ }
223
+ return pathParts.join('/');
224
+ }
225
+ /**
226
+ * Generate default target path for export
227
+ */
228
+ generateDefaultTargetPath(workspaceName, folderPath) {
229
+ // Clean up path components
230
+ const cleanWorkspace = this.sanitizePath(workspaceName);
231
+ const cleanFolder = this.sanitizePath(folderPath);
232
+ return cleanFolder ? `${cleanWorkspace}/${cleanFolder}` : cleanWorkspace;
233
+ }
234
+ /**
235
+ * Sanitize path for file system compatibility
236
+ */
237
+ sanitizePath(pathComponent) {
238
+ return pathComponent
239
+ .replace(/[<>:"/\\|?*]/g, '_') // Replace invalid filename characters
240
+ .replace(/\s+/g, ' ') // Normalize whitespace
241
+ .trim();
242
+ }
243
+ /**
244
+ * Search documents across HubDoc
245
+ */
246
+ async searchDocuments(query, options) {
247
+ try {
248
+ console.log(chalk_1.default.blue(`🔍 Searching for: "${query}"`));
249
+ const searchResults = await this.apiService.search(query, 'file');
250
+ const files = searchResults.data || searchResults;
251
+ const mappings = [];
252
+ for (const file of files) {
253
+ // Apply filters if specified
254
+ if (options?.workspace && file.workspace_name !== options.workspace) {
255
+ continue;
256
+ }
257
+ if (options?.fileType && !file.name.toLowerCase().includes(options.fileType.toLowerCase())) {
258
+ continue;
259
+ }
260
+ const projectLocation = {
261
+ projectName: file.workspace_name || 'Unknown',
262
+ folderPath: file.folder_path || 'Documents',
263
+ fullPath: `${file.workspace_name || 'Unknown'}/${file.folder_path || 'Documents'}`
264
+ };
265
+ mappings.push({
266
+ documentId: file.id,
267
+ documentName: file.name,
268
+ projects: [projectLocation],
269
+ downloadUrl: file.download_url || `/files/${file.id}/download`,
270
+ targetPath: this.generateDefaultTargetPath(projectLocation.projectName, projectLocation.folderPath),
271
+ metadata: file.metadata
272
+ });
273
+ // Respect limit if specified
274
+ if (options?.limit && mappings.length >= options.limit) {
275
+ break;
276
+ }
277
+ }
278
+ console.log(chalk_1.default.green(`✅ Found ${mappings.length} matching documents`));
279
+ return mappings;
280
+ }
281
+ catch (error) {
282
+ console.error(chalk_1.default.red(`❌ Search failed: ${error.message}`));
283
+ return [];
284
+ }
285
+ }
286
+ /**
287
+ * Get export statistics
288
+ */
289
+ async getExportStats() {
290
+ try {
291
+ const workspaces = await this.apiService.getWorkspaces();
292
+ let totalFolders = 0;
293
+ let totalFiles = 0;
294
+ let totalSize = 0;
295
+ for (const workspace of workspaces) {
296
+ const folders = await this.apiService.getFolders(workspace.id);
297
+ totalFolders += folders.length;
298
+ for (const folder of folders) {
299
+ const files = await this.getFilesInFolder(folder.id);
300
+ totalFiles += files.length;
301
+ totalSize += files.reduce((sum, file) => sum + (file.size || 0), 0);
302
+ }
303
+ }
304
+ return {
305
+ totalWorkspaces: workspaces.length,
306
+ totalFolders,
307
+ totalFiles,
308
+ totalSize
309
+ };
310
+ }
311
+ catch (error) {
312
+ console.error(chalk_1.default.red(`❌ Failed to get export stats: ${error.message}`));
313
+ return {
314
+ totalWorkspaces: 0,
315
+ totalFolders: 0,
316
+ totalFiles: 0,
317
+ totalSize: 0
318
+ };
319
+ }
320
+ }
321
+ /**
322
+ * Sleep utility for rate limiting
323
+ */
324
+ sleep(ms) {
325
+ return new Promise(resolve => setTimeout(resolve, ms));
326
+ }
327
+ }
328
+ exports.HubDocExportServiceV2 = HubDocExportServiceV2;
329
+ //# sourceMappingURL=hubdoc-export-v2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hubdoc-export-v2.js","sourceRoot":"","sources":["../../src/services/hubdoc-export-v2.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ import { ImportResult } from './hubdoc-client';
2
+ import { DocumentMapping, HubDocConfig } from '../types';
3
+ export interface ImportOptions {
4
+ mappingFile: string;
5
+ baseDir?: string;
6
+ concurrency?: number;
7
+ dryRun?: boolean;
8
+ validateOnly?: boolean;
9
+ batchSize?: number;
10
+ domain?: string;
11
+ interactive?: boolean;
12
+ }
13
+ export interface ValidationResult {
14
+ valid: boolean;
15
+ errors: string[];
16
+ warnings: string[];
17
+ mappingCount: number;
18
+ }
19
+ export interface ImportSummary {
20
+ total: number;
21
+ successful: number;
22
+ failed: number;
23
+ skipped: number;
24
+ results: ImportResult[];
25
+ duration: number;
26
+ mappingFile?: string;
27
+ }
28
+ /**
29
+ * Service for importing documents to HubDoc using CSV mapping files
30
+ */
31
+ export declare class HubDocImportService {
32
+ private client;
33
+ private config;
34
+ constructor(config: HubDocConfig);
35
+ /**
36
+ * Test connection to HubDoc API
37
+ */
38
+ testConnection(): Promise<boolean>;
39
+ /**
40
+ * Parse CSV mapping file into DocumentMapping objects
41
+ */
42
+ parseMappingFile(filePath: string, baseDir?: string): Promise<DocumentMapping[]>;
43
+ /**
44
+ * Parse CSV row into DocumentMapping object
45
+ */
46
+ private parseRowToMapping;
47
+ /**
48
+ * Validate mapping file and mappings
49
+ */
50
+ validateMappings(mappings: DocumentMapping[]): Promise<ValidationResult>;
51
+ /**
52
+ * Import documents using mappings
53
+ */
54
+ importDocuments(mappings: DocumentMapping[], options?: Partial<ImportOptions>): Promise<ImportSummary>;
55
+ /**
56
+ * Bulk import with CSV file
57
+ */
58
+ bulkImportFromCsv(options: ImportOptions): Promise<ImportSummary>;
59
+ /**
60
+ * Print import summary
61
+ */
62
+ private printImportSummary;
63
+ }
64
+ //# sourceMappingURL=hubdoc-import-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hubdoc-import-service.d.ts","sourceRoot":"","sources":["../../src/services/hubdoc-import-service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgB,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAIzD,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,EAAE,YAAY;IAKhC;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAIxC;;OAEG;IACG,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAqCtF;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAuFzB;;OAEG;IACG,gBAAgB,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA4E9E;;OAEG;IACG,eAAe,CAAC,QAAQ,EAAE,eAAe,EAAE,EAAE,OAAO,GAAE,OAAO,CAAC,aAAa,CAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA+FhH;;OAEG;IACG,iBAAiB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAiDvE;;OAEG;IACH,OAAO,CAAC,kBAAkB;CAmC3B"}