@sinoia/hubdoc-tools 1.3.4 → 1.3.5

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 (43) hide show
  1. package/dist/plugins/alfresco/index.d.ts +26 -0
  2. package/dist/plugins/alfresco/index.d.ts.map +1 -0
  3. package/dist/plugins/alfresco/index.js +405 -0
  4. package/dist/plugins/alfresco/index.js.map +1 -0
  5. package/dist/plugins/aws-s3/index.d.ts +23 -0
  6. package/dist/plugins/aws-s3/index.d.ts.map +1 -0
  7. package/dist/plugins/aws-s3/index.js +383 -0
  8. package/dist/plugins/aws-s3/index.js.map +1 -0
  9. package/dist/plugins/azure-blob/index.d.ts +23 -0
  10. package/dist/plugins/azure-blob/index.d.ts.map +1 -0
  11. package/dist/plugins/azure-blob/index.js +340 -0
  12. package/dist/plugins/azure-blob/index.js.map +1 -0
  13. package/dist/plugins/box/index.d.ts +26 -0
  14. package/dist/plugins/box/index.d.ts.map +1 -0
  15. package/dist/plugins/box/index.js +387 -0
  16. package/dist/plugins/box/index.js.map +1 -0
  17. package/dist/plugins/dropbox/index.d.ts +27 -0
  18. package/dist/plugins/dropbox/index.d.ts.map +1 -0
  19. package/dist/plugins/dropbox/index.js +375 -0
  20. package/dist/plugins/dropbox/index.js.map +1 -0
  21. package/dist/plugins/googledrive/index.d.ts +27 -0
  22. package/dist/plugins/googledrive/index.d.ts.map +1 -0
  23. package/dist/plugins/googledrive/index.js +383 -0
  24. package/dist/plugins/googledrive/index.js.map +1 -0
  25. package/dist/plugins/nuxeo/index.d.ts +24 -0
  26. package/dist/plugins/nuxeo/index.d.ts.map +1 -0
  27. package/dist/plugins/nuxeo/index.js +405 -0
  28. package/dist/plugins/nuxeo/index.js.map +1 -0
  29. package/dist/plugins/onedrive/index.d.ts +25 -0
  30. package/dist/plugins/onedrive/index.d.ts.map +1 -0
  31. package/dist/plugins/onedrive/index.js +362 -0
  32. package/dist/plugins/onedrive/index.js.map +1 -0
  33. package/dist/plugins/opentext/index.d.ts +26 -0
  34. package/dist/plugins/opentext/index.d.ts.map +1 -0
  35. package/dist/plugins/opentext/index.js +440 -0
  36. package/dist/plugins/opentext/index.js.map +1 -0
  37. package/dist/plugins/sharepoint/index.d.ts +27 -0
  38. package/dist/plugins/sharepoint/index.d.ts.map +1 -0
  39. package/dist/plugins/sharepoint/index.js +397 -0
  40. package/dist/plugins/sharepoint/index.js.map +1 -0
  41. package/package.json +6 -1
  42. package/plugins/aws-s3/index.ts +2 -2
  43. package/plugins/sharepoint/index.ts +1 -1
@@ -0,0 +1,362 @@
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
+ class OneDrivePlugin {
10
+ constructor() {
11
+ this.name = 'onedrive';
12
+ this.version = '1.0.0';
13
+ this.description = 'Microsoft OneDrive/SharePoint document source';
14
+ this.supportedOperations = ['import', 'export', 'both'];
15
+ this.baseUrl = 'https://graph.microsoft.com/v1.0';
16
+ }
17
+ async testConnection(config) {
18
+ try {
19
+ const client = this.createApiClient(config);
20
+ // Try simpler endpoint first
21
+ const response = await client.get('/me');
22
+ return response.status === 200;
23
+ }
24
+ catch (error) {
25
+ console.error(`OneDrive connection test failed: ${error.message}`);
26
+ if (error.response?.data) {
27
+ console.error('API Response:', error.response.data);
28
+ }
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
+ console.log(`🔍 Scanning OneDrive documents${limit ? ` (limit: ${limit})` : ''}...`);
41
+ const rootPath = this.config.rootPath || '/';
42
+ const items = await this.scanFolder(rootPath, options);
43
+ let processedCount = 0;
44
+ for (const item of items) {
45
+ if (item.file) { // Only process files, not folders
46
+ const source = {
47
+ id: item.id,
48
+ name: item.name,
49
+ path: this.getRelativePath(item),
50
+ size: item.size || 0,
51
+ mimeType: item.file.mimeType,
52
+ lastModified: new Date(item.lastModifiedDateTime),
53
+ metadata: {
54
+ oneDriveId: item.id,
55
+ downloadUrl: item['@microsoft.graph.downloadUrl'],
56
+ parentPath: item.parentReference?.path
57
+ }
58
+ };
59
+ // Apply filters
60
+ if (this.shouldIncludeSource(source, options)) {
61
+ sources.push(source);
62
+ totalSize += source.size;
63
+ processedCount++;
64
+ // Check limit
65
+ if (limit && processedCount >= limit) {
66
+ console.log(`📏 Reached limit of ${limit} files`);
67
+ break;
68
+ }
69
+ }
70
+ }
71
+ }
72
+ return {
73
+ sources,
74
+ totalCount: sources.length,
75
+ totalSize,
76
+ errors
77
+ };
78
+ }
79
+ catch (error) {
80
+ return {
81
+ sources: [],
82
+ totalCount: 0,
83
+ totalSize: 0,
84
+ errors: [`OneDrive scan failed: ${error.message}`]
85
+ };
86
+ }
87
+ }
88
+ async scanFolder(folderPath, options) {
89
+ if (!this.apiClient)
90
+ throw new Error('API client not initialized');
91
+ const items = [];
92
+ let nextLink;
93
+ do {
94
+ try {
95
+ // Handle root path correctly
96
+ let url;
97
+ if (nextLink) {
98
+ url = nextLink;
99
+ }
100
+ else if (!folderPath || folderPath === '/') {
101
+ url = '/me/drive/root/children';
102
+ }
103
+ else {
104
+ url = `/me/drive/root:${folderPath}:/children`;
105
+ }
106
+ const response = await this.apiClient.get(url);
107
+ const folderItems = response.data.value;
108
+ items.push(...folderItems);
109
+ // Recursively scan subfolders
110
+ for (const item of folderItems) {
111
+ if (item.folder && item.folder.childCount > 0) {
112
+ const subPath = `${folderPath}/${item.name}`;
113
+ const subItems = await this.scanFolder(subPath, options);
114
+ items.push(...subItems);
115
+ }
116
+ }
117
+ nextLink = response.data['@odata.nextLink'];
118
+ }
119
+ catch (error) {
120
+ console.warn(`Warning: Failed to scan folder ${folderPath}: ${error.message}`);
121
+ break;
122
+ }
123
+ } while (nextLink);
124
+ return items;
125
+ }
126
+ async import(config, sources, targetDir, options) {
127
+ this.config = config;
128
+ this.apiClient = this.createApiClient(this.config);
129
+ const results = [];
130
+ const batchSize = options?.batchSize || 5; // OneDrive has rate limits
131
+ // Process in batches to respect API limits
132
+ for (let i = 0; i < sources.length; i += batchSize) {
133
+ const batch = sources.slice(i, i + batchSize);
134
+ for (const source of batch) {
135
+ const result = await this.importSingle(source, targetDir);
136
+ results.push(result);
137
+ // Small delay to respect rate limits
138
+ await this.sleep(100);
139
+ }
140
+ }
141
+ return results;
142
+ }
143
+ async importSingle(source, targetDir) {
144
+ try {
145
+ if (!this.apiClient)
146
+ throw new Error('API client not initialized');
147
+ // Get download URL if not in metadata
148
+ let downloadUrl = source.metadata?.downloadUrl;
149
+ if (!downloadUrl) {
150
+ const response = await this.apiClient.get(`/me/drive/items/${source.id}`);
151
+ downloadUrl = response.data['@microsoft.graph.downloadUrl'];
152
+ }
153
+ if (!downloadUrl) {
154
+ throw new Error('No download URL available');
155
+ }
156
+ // Download file
157
+ const response = await axios_1.default.get(downloadUrl, {
158
+ responseType: 'stream'
159
+ });
160
+ const targetPath = path_1.default.join(targetDir, source.path);
161
+ const targetDirectory = path_1.default.dirname(targetPath);
162
+ await fs_extra_1.default.ensureDir(targetDirectory);
163
+ const writer = fs_extra_1.default.createWriteStream(targetPath);
164
+ response.data.pipe(writer);
165
+ return new Promise((resolve) => {
166
+ writer.on('finish', () => {
167
+ resolve({
168
+ success: true,
169
+ source,
170
+ localPath: targetPath,
171
+ bytesTransferred: source.size
172
+ });
173
+ });
174
+ writer.on('error', (error) => {
175
+ resolve({
176
+ success: false,
177
+ source,
178
+ error: error.message
179
+ });
180
+ });
181
+ });
182
+ }
183
+ catch (error) {
184
+ return {
185
+ success: false,
186
+ source,
187
+ error: error.message
188
+ };
189
+ }
190
+ }
191
+ async export(config, localSources, options) {
192
+ this.config = config;
193
+ this.apiClient = this.createApiClient(this.config);
194
+ const results = [];
195
+ for (const source of localSources) {
196
+ try {
197
+ const targetPath = options?.preserveStructure
198
+ ? `${options.targetPath}/${source.path}`
199
+ : `${options?.targetPath || ''}/${source.name}`;
200
+ // Create folder structure if needed
201
+ const folderPath = path_1.default.dirname(targetPath);
202
+ if (folderPath && folderPath !== '.') {
203
+ await this.createFolderStructure(folderPath);
204
+ }
205
+ // Upload file
206
+ const fileContent = await fs_extra_1.default.readFile(source.id);
207
+ const uploadUrl = `/me/drive/root:${targetPath}:/content`;
208
+ await this.apiClient.put(uploadUrl, fileContent, {
209
+ headers: {
210
+ 'Content-Type': source.mimeType
211
+ }
212
+ });
213
+ results.push({
214
+ success: true,
215
+ targetPath,
216
+ source,
217
+ bytesTransferred: source.size
218
+ });
219
+ }
220
+ catch (error) {
221
+ results.push({
222
+ success: false,
223
+ targetPath: options?.targetPath || '',
224
+ source,
225
+ error: error.message
226
+ });
227
+ }
228
+ }
229
+ return results;
230
+ }
231
+ async createFolderStructure(folderPath) {
232
+ if (!this.apiClient)
233
+ throw new Error('API client not initialized');
234
+ const parts = folderPath.split('/').filter(part => part.length > 0);
235
+ let currentPath = '';
236
+ for (const part of parts) {
237
+ currentPath += `/${part}`;
238
+ try {
239
+ // Try to get the folder
240
+ await this.apiClient.get(`/me/drive/root:${currentPath}`);
241
+ }
242
+ catch (error) {
243
+ if (error.response?.status === 404) {
244
+ // Folder doesn't exist, create it
245
+ const parentPath = path_1.default.dirname(currentPath) || '/';
246
+ await this.apiClient.post(`/me/drive/root:${parentPath}:/children`, {
247
+ name: part,
248
+ folder: {}
249
+ });
250
+ }
251
+ }
252
+ }
253
+ }
254
+ getConfigSchema() {
255
+ return {
256
+ type: 'object',
257
+ properties: {
258
+ clientId: {
259
+ type: 'string',
260
+ description: 'Azure App Client ID (can be dummy when using accessToken)',
261
+ required: false
262
+ },
263
+ clientSecret: {
264
+ type: 'string',
265
+ description: 'Azure App Client Secret (can be dummy when using accessToken)',
266
+ required: false
267
+ },
268
+ tenantId: {
269
+ type: 'string',
270
+ description: 'Azure Tenant ID (can be dummy when using accessToken)',
271
+ required: false
272
+ },
273
+ accessToken: {
274
+ type: 'string',
275
+ description: 'OAuth2 Access Token (required - get with az account get-access-token)',
276
+ required: true
277
+ },
278
+ refreshToken: {
279
+ type: 'string',
280
+ description: 'OAuth2 Refresh Token (will be obtained automatically)',
281
+ required: false
282
+ },
283
+ rootPath: {
284
+ type: 'string',
285
+ description: 'Root path to scan (e.g., /Documents)',
286
+ default: '/'
287
+ },
288
+ limit: {
289
+ type: 'number',
290
+ description: 'Maximum number of documents to scan (useful for testing)',
291
+ required: false
292
+ }
293
+ },
294
+ required: ['accessToken']
295
+ };
296
+ }
297
+ async initialize(config) {
298
+ this.config = config;
299
+ // If no access token, we need to authenticate
300
+ if (!this.config.accessToken) {
301
+ console.log('â„šī¸ OneDrive authentication required. Please obtain an access token first.');
302
+ console.log('💡 You can use Azure CLI: az account get-access-token --resource https://graph.microsoft.com/');
303
+ throw new Error('OneDrive authentication required. Please provide an access token.');
304
+ }
305
+ // Set default values for required fields if not provided
306
+ if (!this.config.clientId)
307
+ this.config.clientId = 'dummy';
308
+ if (!this.config.clientSecret)
309
+ this.config.clientSecret = 'dummy';
310
+ if (!this.config.tenantId)
311
+ this.config.tenantId = 'dummy';
312
+ this.apiClient = this.createApiClient(this.config);
313
+ }
314
+ async destroy() {
315
+ this.config = undefined;
316
+ this.apiClient = undefined;
317
+ }
318
+ createApiClient(config) {
319
+ return axios_1.default.create({
320
+ baseURL: this.baseUrl,
321
+ headers: {
322
+ 'Authorization': `Bearer ${config.accessToken}`,
323
+ 'Content-Type': 'application/json'
324
+ },
325
+ timeout: 30000
326
+ });
327
+ }
328
+ getRelativePath(item) {
329
+ if (!item.parentReference?.path) {
330
+ return item.name;
331
+ }
332
+ // Remove the root drive path
333
+ const parentPath = item.parentReference.path
334
+ .replace(/^\/drive\/root:?/, '')
335
+ .replace(/^\//, '');
336
+ return parentPath ? `${parentPath}/${item.name}` : item.name;
337
+ }
338
+ shouldIncludeSource(source, options) {
339
+ // Apply size filter
340
+ if (options?.filters?.maxSize && source.size > options.filters.maxSize) {
341
+ return false;
342
+ }
343
+ // Apply date range filter
344
+ if (options?.filters?.dateRange) {
345
+ const { from, to } = options.filters.dateRange;
346
+ if (from && source.lastModified < from)
347
+ return false;
348
+ if (to && source.lastModified > to)
349
+ return false;
350
+ }
351
+ // Apply MIME type filter
352
+ if (options?.filters?.mimeTypes && !options.filters.mimeTypes.includes(source.mimeType)) {
353
+ return false;
354
+ }
355
+ return true;
356
+ }
357
+ sleep(ms) {
358
+ return new Promise(resolve => setTimeout(resolve, ms));
359
+ }
360
+ }
361
+ exports.default = OneDrivePlugin;
362
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../plugins/onedrive/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { DocumentSourcePlugin, DocumentSource, PluginConfig, ScanResult, PluginImportOptions, PluginExportOptions, ImportResult, ExportResult } from '../../src/types/plugins';
2
+ export default class OpenTextPlugin implements DocumentSourcePlugin {
3
+ readonly name = "opentext";
4
+ readonly version = "1.0.0";
5
+ readonly description = "OpenText Content Server document source";
6
+ readonly supportedOperations: readonly ["import", "export", "both"];
7
+ private config?;
8
+ private apiClient?;
9
+ private authToken?;
10
+ testConnection(config: PluginConfig): Promise<boolean>;
11
+ scan(config: PluginConfig, options?: PluginImportOptions): Promise<ScanResult>;
12
+ private scanNode;
13
+ import(config: PluginConfig, sources: DocumentSource[], targetDir: string, options?: PluginImportOptions): Promise<ImportResult[]>;
14
+ private importSingle;
15
+ export?(config: PluginConfig, localSources: DocumentSource[], options?: PluginExportOptions): Promise<ExportResult[]>;
16
+ private createFolderStructure;
17
+ private getNodePath;
18
+ getConfigSchema(): Record<string, any>;
19
+ initialize(config: PluginConfig): Promise<void>;
20
+ destroy(): Promise<void>;
21
+ private createApiClient;
22
+ private getMimeType;
23
+ private shouldIncludeSource;
24
+ private sleep;
25
+ }
26
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../plugins/opentext/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,YAAY,EACZ,UAAU,EACV,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACb,MAAM,yBAAyB,CAAC;AAiCjC,MAAM,CAAC,OAAO,OAAO,cAAe,YAAW,oBAAoB;IACjE,QAAQ,CAAC,IAAI,cAAc;IAC3B,QAAQ,CAAC,OAAO,WAAW;IAC3B,QAAQ,CAAC,WAAW,6CAA6C;IACjE,QAAQ,CAAC,mBAAmB,wCAAyC;IAErE,OAAO,CAAC,MAAM,CAAC,CAAiB;IAChC,OAAO,CAAC,SAAS,CAAC,CAAgB;IAClC,OAAO,CAAC,SAAS,CAAC,CAAS;IAErB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAWtD,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;YAwEtE,QAAQ;IAsDhB,MAAM,CACV,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,cAAc,EAAE,EACzB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,YAAY,EAAE,CAAC;YAuBZ,YAAY;IA4CpB,MAAM,CAAC,CACX,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,cAAc,EAAE,EAC9B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,YAAY,EAAE,CAAC;YA0DZ,qBAAqB;YAsCrB,WAAW;IA0BzB,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IA2ChC,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB/C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;YAehB,eAAe;IA2B7B,OAAO,CAAC,WAAW;IAwBnB,OAAO,CAAC,mBAAmB;IAqB3B,OAAO,CAAC,KAAK;CAGd"}