@sinoia/hubdoc-tools 1.3.10 → 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 (38) 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/plugins/o365-mail/index.d.ts +26 -0
  10. package/dist/plugins/o365-mail/index.d.ts.map +1 -0
  11. package/dist/plugins/o365-mail/index.js +392 -0
  12. package/dist/plugins/o365-mail/index.js.map +1 -0
  13. package/dist/plugins/o365-mail/plugin.json +8 -0
  14. package/dist/services/hubdoc-api-v2.d.ts +150 -0
  15. package/dist/services/hubdoc-api-v2.d.ts.map +1 -0
  16. package/dist/services/hubdoc-api-v2.js +418 -0
  17. package/dist/services/hubdoc-api-v2.js.map +1 -0
  18. package/dist/services/hubdoc-client.d.ts +246 -0
  19. package/dist/services/hubdoc-client.d.ts.map +1 -0
  20. package/dist/services/hubdoc-client.js +714 -0
  21. package/dist/services/hubdoc-client.js.map +1 -0
  22. package/dist/services/hubdoc-export-service.d.ts +90 -0
  23. package/dist/services/hubdoc-export-service.d.ts.map +1 -0
  24. package/dist/services/hubdoc-export-service.js +443 -0
  25. package/dist/services/hubdoc-export-service.js.map +1 -0
  26. package/dist/services/hubdoc-export-v2.d.ts +77 -0
  27. package/dist/services/hubdoc-export-v2.d.ts.map +1 -0
  28. package/dist/services/hubdoc-export-v2.js +329 -0
  29. package/dist/services/hubdoc-export-v2.js.map +1 -0
  30. package/dist/services/hubdoc-import-service.d.ts +64 -0
  31. package/dist/services/hubdoc-import-service.d.ts.map +1 -0
  32. package/dist/services/hubdoc-import-service.js +374 -0
  33. package/dist/services/hubdoc-import-service.js.map +1 -0
  34. package/dist/test/hubdoc-api-test.d.ts +8 -0
  35. package/dist/test/hubdoc-api-test.d.ts.map +1 -0
  36. package/dist/test/hubdoc-api-test.js +152 -0
  37. package/dist/test/hubdoc-api-test.js.map +1 -0
  38. package/package.json +1 -1
@@ -0,0 +1,45 @@
1
+ import { ExportOptions } from '../types/export';
2
+ import { HubDocConfig } from '../types';
3
+ export declare class ExportCommandV2 {
4
+ private exportService;
5
+ private csvManager;
6
+ constructor(config: HubDocConfig);
7
+ execute(options: ExportOptions): Promise<void>;
8
+ /**
9
+ * Execute scan mode - generate export mapping
10
+ */
11
+ private executeScan;
12
+ /**
13
+ * Execute export mode - download documents
14
+ */
15
+ private executeExport;
16
+ /**
17
+ * Execute search-based scan
18
+ */
19
+ private executeSearchBasedScan;
20
+ /**
21
+ * Get interactive scan configuration
22
+ */
23
+ private getInteractiveScanConfig;
24
+ /**
25
+ * Show export preview
26
+ */
27
+ private showExportPreview;
28
+ /**
29
+ * Show scan summary
30
+ */
31
+ private showScanSummary;
32
+ /**
33
+ * Show export summary
34
+ */
35
+ private showExportSummary;
36
+ /**
37
+ * Show created directory structure
38
+ */
39
+ private showCreatedStructure;
40
+ /**
41
+ * Format file size for display
42
+ */
43
+ private formatFileSize;
44
+ }
45
+ //# sourceMappingURL=export-v2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export-v2.d.ts","sourceRoot":"","sources":["../../src/commands/export-v2.ts"],"names":[],"mappings":"AAMA,OAAO,EAA+B,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,qBAAa,eAAe;IAC1B,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,UAAU,CAAmB;gBAEzB,MAAM,EAAE,YAAY;IAK1B,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BpD;;OAEG;YACW,WAAW;IA0DzB;;OAEG;YACW,aAAa;IA8E3B;;OAEG;YACW,sBAAsB;IAmCpC;;OAEG;YACW,wBAAwB;IAsBtC;;OAEG;YACW,iBAAiB;IA2C/B;;OAEG;IACH,OAAO,CAAC,eAAe;IA4CvB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAsCzB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA2B5B;;OAEG;IACH,OAAO,CAAC,cAAc;CAYvB"}
@@ -0,0 +1,369 @@
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.ExportCommandV2 = void 0;
7
+ const path_1 = __importDefault(require("path"));
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const ora_1 = __importDefault(require("ora"));
10
+ const inquirer_1 = __importDefault(require("inquirer"));
11
+ const hubdoc_export_v2_1 = require("../services/hubdoc-export-v2");
12
+ const export_csv_1 = require("../utils/export-csv");
13
+ class ExportCommandV2 {
14
+ constructor(config) {
15
+ this.exportService = new hubdoc_export_v2_1.HubDocExportServiceV2(config);
16
+ this.csvManager = new export_csv_1.ExportCsvManager();
17
+ }
18
+ async execute(options) {
19
+ const spinner = (0, ora_1.default)('Starting export process...').start();
20
+ try {
21
+ // Test API connection first
22
+ const isConnected = await this.exportService.testConnection();
23
+ if (!isConnected) {
24
+ spinner.fail('Failed to connect to HubDoc API');
25
+ return;
26
+ }
27
+ spinner.succeed('Connected to HubDoc API');
28
+ if (options.mode === 'scan') {
29
+ await this.executeScan(options);
30
+ }
31
+ else if (options.mode === 'export') {
32
+ await this.executeExport(options);
33
+ }
34
+ else {
35
+ throw new Error('Invalid export mode. Use "scan" or "export".');
36
+ }
37
+ }
38
+ catch (error) {
39
+ spinner.fail(`Export failed: ${error.message}`);
40
+ throw error;
41
+ }
42
+ }
43
+ /**
44
+ * Execute scan mode - generate export mapping
45
+ */
46
+ async executeScan(options) {
47
+ console.log(chalk_1.default.blue('šŸ” Scanning HubDoc for documents...'));
48
+ // Show scan configuration
49
+ if (options.projectFilter) {
50
+ console.log(chalk_1.default.gray(` šŸ“ Workspace filter: ${options.projectFilter}`));
51
+ }
52
+ if (options.domainFilter) {
53
+ console.log(chalk_1.default.gray(` šŸ·ļø Folder filter: ${options.domainFilter}`));
54
+ }
55
+ // Interactive scan configuration
56
+ if (options.interactive) {
57
+ const scanConfig = await this.getInteractiveScanConfig();
58
+ options.projectFilter = scanConfig.workspaceFilter || options.projectFilter;
59
+ options.domainFilter = scanConfig.folderFilter || options.domainFilter;
60
+ }
61
+ // Show export statistics first
62
+ const stats = await this.exportService.getExportStats();
63
+ console.log(chalk_1.default.blue('\nšŸ“Š HubDoc Content Overview:'));
64
+ console.log(chalk_1.default.cyan(` šŸ“ Workspaces: ${stats.totalWorkspaces}`));
65
+ console.log(chalk_1.default.cyan(` šŸ“‚ Folders: ${stats.totalFolders}`));
66
+ console.log(chalk_1.default.cyan(` šŸ“„ Documents: ${stats.totalFiles}`));
67
+ console.log(chalk_1.default.cyan(` šŸ’¾ Total size: ${this.formatFileSize(stats.totalSize)}`));
68
+ // Generate export mapping
69
+ const mappings = await this.exportService.generateExportMapping(options.projectFilter, options.domainFilter);
70
+ if (mappings.length === 0) {
71
+ console.log(chalk_1.default.yellow('āš ļø No documents found matching the criteria'));
72
+ if (options.interactive) {
73
+ const { trySearch } = await inquirer_1.default.prompt([{
74
+ type: 'confirm',
75
+ name: 'trySearch',
76
+ message: 'Would you like to try a search-based export instead?',
77
+ default: false
78
+ }]);
79
+ if (trySearch) {
80
+ await this.executeSearchBasedScan(options);
81
+ }
82
+ }
83
+ return;
84
+ }
85
+ // Save to CSV
86
+ const outputPath = options.mappingFile || 'export-mapping.csv';
87
+ await this.csvManager.generateExportMapping(mappings, outputPath);
88
+ // Show detailed scan summary
89
+ this.showScanSummary(mappings, outputPath);
90
+ }
91
+ /**
92
+ * Execute export mode - download documents
93
+ */
94
+ async executeExport(options) {
95
+ if (!options.mappingFile) {
96
+ throw new Error('Mapping file is required for export mode. Use --mapping option or run scan first.');
97
+ }
98
+ console.log(chalk_1.default.blue(`šŸ“„ Loading export mapping from: ${options.mappingFile}`));
99
+ // Read mappings from CSV
100
+ const mappings = await this.csvManager.readExportMapping(options.mappingFile);
101
+ if (mappings.length === 0) {
102
+ console.log(chalk_1.default.yellow('āš ļø No documents to export'));
103
+ return;
104
+ }
105
+ console.log(chalk_1.default.blue(`šŸ“¦ Found ${mappings.length} documents to export`));
106
+ // Validate export paths
107
+ const { valid, invalid } = await this.csvManager.validateExportPaths(mappings);
108
+ if (invalid.length > 0) {
109
+ console.log(chalk_1.default.yellow(`āš ļø Found ${invalid.length} documents with invalid paths:`));
110
+ invalid.slice(0, 5).forEach(mapping => {
111
+ console.log(chalk_1.default.red(` āŒ ${mapping.documentName}: ${mapping.targetPath || 'No target path'}`));
112
+ });
113
+ if (invalid.length > 5) {
114
+ console.log(chalk_1.default.gray(` ... and ${invalid.length - 5} more`));
115
+ }
116
+ if (options.interactive) {
117
+ const { proceed } = await inquirer_1.default.prompt([{
118
+ type: 'confirm',
119
+ name: 'proceed',
120
+ message: 'Continue with valid documents only?',
121
+ default: true
122
+ }]);
123
+ if (!proceed) {
124
+ console.log(chalk_1.default.gray('Export cancelled'));
125
+ return;
126
+ }
127
+ }
128
+ }
129
+ if (valid.length === 0) {
130
+ console.log(chalk_1.default.red('āŒ No valid documents to export'));
131
+ return;
132
+ }
133
+ // Show export preview
134
+ await this.showExportPreview(valid, options);
135
+ // Confirm export if interactive
136
+ if (options.interactive) {
137
+ const { confirm } = await inquirer_1.default.prompt([{
138
+ type: 'confirm',
139
+ name: 'confirm',
140
+ message: `Proceed with exporting ${valid.length} documents?`,
141
+ default: true
142
+ }]);
143
+ if (!confirm) {
144
+ console.log(chalk_1.default.gray('Export cancelled'));
145
+ return;
146
+ }
147
+ }
148
+ // Execute export
149
+ const outputDir = options.outputDir || './export';
150
+ console.log(chalk_1.default.blue(`\nšŸš€ Starting export to: ${path_1.default.resolve(outputDir)}`));
151
+ const results = await this.exportService.exportDocuments(valid, outputDir);
152
+ // Show final summary
153
+ this.showExportSummary(results, outputDir);
154
+ }
155
+ /**
156
+ * Execute search-based scan
157
+ */
158
+ async executeSearchBasedScan(options) {
159
+ const { query, fileType, limit } = await inquirer_1.default.prompt([
160
+ {
161
+ type: 'input',
162
+ name: 'query',
163
+ message: 'Enter search query:',
164
+ validate: (input) => input.trim().length > 0 || 'Query cannot be empty'
165
+ },
166
+ {
167
+ type: 'input',
168
+ name: 'fileType',
169
+ message: 'File type filter (optional):',
170
+ default: ''
171
+ },
172
+ {
173
+ type: 'number',
174
+ name: 'limit',
175
+ message: 'Maximum results:',
176
+ default: 1000
177
+ }
178
+ ]);
179
+ const mappings = await this.exportService.searchDocuments(query, {
180
+ workspace: options.projectFilter,
181
+ fileType: fileType || undefined,
182
+ limit: limit || 1000
183
+ });
184
+ if (mappings.length > 0) {
185
+ const outputPath = options.mappingFile || 'search-export-mapping.csv';
186
+ await this.csvManager.generateExportMapping(mappings, outputPath);
187
+ this.showScanSummary(mappings, outputPath);
188
+ }
189
+ }
190
+ /**
191
+ * Get interactive scan configuration
192
+ */
193
+ async getInteractiveScanConfig() {
194
+ console.log(chalk_1.default.blue('\nšŸ”§ Export Scan Configuration'));
195
+ return await inquirer_1.default.prompt([
196
+ {
197
+ type: 'input',
198
+ name: 'workspaceFilter',
199
+ message: 'Workspace name filter (partial match, optional):',
200
+ default: ''
201
+ },
202
+ {
203
+ type: 'input',
204
+ name: 'folderFilter',
205
+ message: 'Folder name filter (partial match, optional):',
206
+ default: ''
207
+ }
208
+ ]);
209
+ }
210
+ /**
211
+ * Show export preview
212
+ */
213
+ async showExportPreview(mappings, options) {
214
+ console.log(chalk_1.default.bold('\nšŸ“‹ Export Preview'));
215
+ console.log(chalk_1.default.blue(`šŸ“„ Documents to export: ${mappings.length}`));
216
+ console.log(chalk_1.default.blue(`šŸ“ Output directory: ${path_1.default.resolve(options.outputDir || './export')}`));
217
+ // Group by target folder
218
+ const folderGroups = mappings.reduce((groups, mapping) => {
219
+ const folder = path_1.default.dirname(mapping.targetPath || 'Root');
220
+ if (!groups[folder])
221
+ groups[folder] = [];
222
+ groups[folder].push(mapping);
223
+ return groups;
224
+ }, {});
225
+ console.log(chalk_1.default.blue('\nšŸ“‚ Directory structure to be created:'));
226
+ Object.entries(folderGroups)
227
+ .sort(([a], [b]) => a.localeCompare(b))
228
+ .slice(0, 10)
229
+ .forEach(([folder, items]) => {
230
+ console.log(chalk_1.default.cyan(` šŸ“‚ ${folder === '.' ? 'Root' : folder} (${items.length} files)`));
231
+ });
232
+ if (Object.keys(folderGroups).length > 10) {
233
+ console.log(chalk_1.default.gray(` ... and ${Object.keys(folderGroups).length - 10} more folders`));
234
+ }
235
+ // Show workspace distribution
236
+ const workspaceGroups = mappings.reduce((groups, mapping) => {
237
+ const workspace = mapping.projects[0]?.projectName || 'Unknown';
238
+ if (!groups[workspace])
239
+ groups[workspace] = 0;
240
+ groups[workspace]++;
241
+ return groups;
242
+ }, {});
243
+ if (Object.keys(workspaceGroups).length > 1) {
244
+ console.log(chalk_1.default.blue('\nšŸ“ Documents by workspace:'));
245
+ Object.entries(workspaceGroups)
246
+ .sort(([, a], [, b]) => b - a)
247
+ .forEach(([workspace, count]) => {
248
+ console.log(chalk_1.default.cyan(` • ${workspace}: ${count} documents`));
249
+ });
250
+ }
251
+ }
252
+ /**
253
+ * Show scan summary
254
+ */
255
+ showScanSummary(mappings, outputPath) {
256
+ const projectCounts = {};
257
+ mappings.forEach(mapping => {
258
+ mapping.projects.forEach(project => {
259
+ projectCounts[project.projectName] = (projectCounts[project.projectName] || 0) + 1;
260
+ });
261
+ });
262
+ console.log('\n' + chalk_1.default.bold('šŸ“Š Scan Summary'));
263
+ console.log(chalk_1.default.blue(`šŸ“„ Total documents found: ${mappings.length}`));
264
+ if (Object.keys(projectCounts).length > 0) {
265
+ console.log('\n' + chalk_1.default.bold('šŸ“ Documents by workspace:'));
266
+ Object.entries(projectCounts)
267
+ .sort(([, a], [, b]) => b - a)
268
+ .forEach(([project, count]) => {
269
+ console.log(chalk_1.default.cyan(` • ${project}: ${count} documents`));
270
+ });
271
+ }
272
+ // Show file type distribution
273
+ const fileTypes = mappings.reduce((types, mapping) => {
274
+ const ext = path_1.default.extname(mapping.documentName).toLowerCase() || 'no extension';
275
+ if (!types[ext])
276
+ types[ext] = 0;
277
+ types[ext]++;
278
+ return types;
279
+ }, {});
280
+ console.log('\n' + chalk_1.default.bold('šŸ“‹ File types:'));
281
+ Object.entries(fileTypes)
282
+ .sort(([, a], [, b]) => b - a)
283
+ .slice(0, 10)
284
+ .forEach(([ext, count]) => {
285
+ console.log(chalk_1.default.cyan(` • ${ext}: ${count} files`));
286
+ });
287
+ console.log('\n' + chalk_1.default.green('āœ… Export mapping generated successfully'));
288
+ console.log(chalk_1.default.blue(`šŸ“„ File: ${outputPath}`));
289
+ console.log(chalk_1.default.gray(' šŸ“ Edit the CSV file to customize target paths'));
290
+ console.log(chalk_1.default.gray(' šŸš€ Run export mode to download documents'));
291
+ console.log(chalk_1.default.gray(` Example: hubdoc-tool export --mapping ${outputPath}`));
292
+ }
293
+ /**
294
+ * Show export summary
295
+ */
296
+ showExportSummary(results, outputDir) {
297
+ const successful = results.filter(r => r.success);
298
+ const failed = results.filter(r => !r.success);
299
+ console.log('\n' + chalk_1.default.bold('šŸ“Š Export Summary'));
300
+ console.log(chalk_1.default.green(`āœ… Successfully exported: ${successful.length} documents`));
301
+ console.log(chalk_1.default.blue(`šŸ“ Export directory: ${path_1.default.resolve(outputDir)}`));
302
+ if (failed.length > 0) {
303
+ console.log(chalk_1.default.red(`āŒ Failed exports: ${failed.length}`));
304
+ // Show error breakdown
305
+ const errorTypes = failed.reduce((types, result) => {
306
+ const error = result.error || 'Unknown error';
307
+ const errorType = error.includes('not found') ? 'Not found' :
308
+ error.includes('permission') ? 'Permission denied' :
309
+ error.includes('network') ? 'Network error' :
310
+ 'Other error';
311
+ if (!types[errorType])
312
+ types[errorType] = 0;
313
+ types[errorType]++;
314
+ return types;
315
+ }, {});
316
+ console.log(chalk_1.default.red('\nāŒ Error breakdown:'));
317
+ Object.entries(errorTypes).forEach(([errorType, count]) => {
318
+ console.log(chalk_1.default.red(` • ${errorType}: ${count} files`));
319
+ });
320
+ }
321
+ // Show directory structure created
322
+ this.showCreatedStructure(successful, outputDir);
323
+ // Show success rate and performance
324
+ const successRate = ((successful.length / results.length) * 100).toFixed(1);
325
+ const rateColor = parseFloat(successRate) >= 95 ? 'green' : parseFloat(successRate) >= 80 ? 'yellow' : 'red';
326
+ console.log(chalk_1.default[rateColor](`\nšŸ“Š Success rate: ${successRate}%`));
327
+ }
328
+ /**
329
+ * Show created directory structure
330
+ */
331
+ showCreatedStructure(results, baseDir) {
332
+ const directories = new Set();
333
+ results.forEach(result => {
334
+ if (result.success && result.exportedPath) {
335
+ const dir = path_1.default.dirname(path_1.default.relative(baseDir, result.exportedPath));
336
+ if (dir && dir !== '.') {
337
+ directories.add(dir);
338
+ }
339
+ }
340
+ });
341
+ if (directories.size > 0) {
342
+ console.log('\n' + chalk_1.default.bold('šŸ“ Directory structure created:'));
343
+ Array.from(directories)
344
+ .sort()
345
+ .slice(0, 15) // Show first 15 directories
346
+ .forEach(dir => {
347
+ console.log(chalk_1.default.cyan(` šŸ“‚ ${dir}`));
348
+ });
349
+ if (directories.size > 15) {
350
+ console.log(chalk_1.default.gray(` ... and ${directories.size - 15} more directories`));
351
+ }
352
+ }
353
+ }
354
+ /**
355
+ * Format file size for display
356
+ */
357
+ formatFileSize(bytes) {
358
+ const units = ['B', 'KB', 'MB', 'GB', 'TB'];
359
+ let size = bytes;
360
+ let unitIndex = 0;
361
+ while (size >= 1024 && unitIndex < units.length - 1) {
362
+ size /= 1024;
363
+ unitIndex++;
364
+ }
365
+ return `${size.toFixed(1)} ${units[unitIndex]}`;
366
+ }
367
+ }
368
+ exports.ExportCommandV2 = ExportCommandV2;
369
+ //# sourceMappingURL=export-v2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export-v2.js","sourceRoot":"","sources":["../../src/commands/export-v2.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ import { ImportOptions, HubDocConfig } from '../types';
2
+ export declare class ImportCommandV2 {
3
+ private apiService;
4
+ private csvManager;
5
+ constructor(config: HubDocConfig);
6
+ execute(options: ImportOptions): Promise<void>;
7
+ /**
8
+ * Create direct mappings from source directory
9
+ */
10
+ private createDirectMappings;
11
+ /**
12
+ * Interactive setup for direct import mode
13
+ */
14
+ private interactiveDirectSetup;
15
+ /**
16
+ * Validate mappings before import
17
+ */
18
+ private validateMappings;
19
+ /**
20
+ * Show import summary before execution
21
+ */
22
+ private showImportSummary;
23
+ /**
24
+ * Show final import results
25
+ */
26
+ private showImportResults;
27
+ /**
28
+ * Format file size for display
29
+ */
30
+ private formatFileSize;
31
+ }
32
+ //# sourceMappingURL=import-v2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-v2.d.ts","sourceRoot":"","sources":["../../src/commands/import-v2.ts"],"names":[],"mappings":"AAOA,OAAO,EAAiC,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAEtF,qBAAa,eAAe;IAC1B,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,UAAU,CAAa;gBAEnB,MAAM,EAAE,YAAY;IAK1B,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IA2FpD;;OAEG;YACW,oBAAoB;IAmBlC;;OAEG;YACW,sBAAsB;IAgCpC;;OAEG;YACW,gBAAgB;IAsC9B;;OAEG;YACW,iBAAiB;IAwD/B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAoDzB;;OAEG;IACH,OAAO,CAAC,cAAc;CAYvB"}