@sinoia/hubdoc-tools 1.3.4 → 1.3.6

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 +7 -2
  42. package/plugins/aws-s3/index.ts +2 -2
  43. package/plugins/sharepoint/index.ts +1 -1
@@ -0,0 +1,397 @@
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 SharePointPlugin {
10
+ constructor() {
11
+ this.name = 'sharepoint';
12
+ this.version = '1.0.0';
13
+ this.description = 'SharePoint Online 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
+ const siteInfo = await this.getSiteInfo(client, config.siteUrl);
21
+ return !!siteInfo.id;
22
+ }
23
+ catch (error) {
24
+ console.error(`SharePoint connection test failed: ${error.message}`);
25
+ return false;
26
+ }
27
+ }
28
+ async scan(config, options) {
29
+ this.config = config;
30
+ this.apiClient = this.createApiClient(this.config);
31
+ const sources = [];
32
+ const errors = [];
33
+ let totalSize = 0;
34
+ try {
35
+ const limit = this.config.limit || options?.limit;
36
+ console.log(`🔍 Scanning SharePoint site${limit ? ` (limit: ${limit})` : ''}...`);
37
+ // Get site information
38
+ const siteInfo = await this.getSiteInfo(this.apiClient, this.config.siteUrl);
39
+ // Get drive ID (default drive or specified drive)
40
+ const driveId = this.config.driveId || await this.getDefaultDriveId(siteInfo.id);
41
+ // Scan items starting from root or specified folder
42
+ const startingFolderId = this.config.folderId || 'root';
43
+ const items = await this.scanDriveFolder(driveId, startingFolderId, '');
44
+ let processedCount = 0;
45
+ for (const item of items) {
46
+ if (item.file) {
47
+ const source = {
48
+ id: item.id,
49
+ name: item.name,
50
+ path: this.getItemPath(item),
51
+ size: item.size || 0,
52
+ mimeType: item.file.mimeType,
53
+ lastModified: new Date(item.lastModifiedDateTime),
54
+ metadata: {
55
+ sharepointId: item.id,
56
+ driveId: driveId,
57
+ createdAt: item.createdDateTime,
58
+ createdBy: item.createdBy.user.displayName,
59
+ modifiedBy: item.lastModifiedBy.user.displayName,
60
+ webUrl: item.webUrl,
61
+ quickXorHash: item.file.hashes?.quickXorHash,
62
+ sha1Hash: item.file.hashes?.sha1Hash
63
+ }
64
+ };
65
+ // Apply filters
66
+ if (this.shouldIncludeSource(source, options)) {
67
+ sources.push(source);
68
+ totalSize += source.size;
69
+ processedCount++;
70
+ // Check limit
71
+ if (limit && processedCount >= limit) {
72
+ console.log(`📏 Reached limit of ${limit} files`);
73
+ break;
74
+ }
75
+ }
76
+ }
77
+ }
78
+ return {
79
+ sources,
80
+ totalCount: sources.length,
81
+ totalSize,
82
+ errors
83
+ };
84
+ }
85
+ catch (error) {
86
+ return {
87
+ sources: [],
88
+ totalCount: 0,
89
+ totalSize: 0,
90
+ errors: [`SharePoint scan failed: ${error.message}`]
91
+ };
92
+ }
93
+ }
94
+ async scanDriveFolder(driveId, folderId, parentPath) {
95
+ if (!this.apiClient)
96
+ throw new Error('API client not initialized');
97
+ const allItems = [];
98
+ let nextLink = null;
99
+ try {
100
+ do {
101
+ const url = nextLink || `/drives/${driveId}/items/${folderId}/children`;
102
+ const response = await this.apiClient.get(url, {
103
+ params: nextLink ? {} : {
104
+ $expand: 'thumbnails',
105
+ $select: 'id,name,size,lastModifiedDateTime,createdDateTime,file,folder,createdBy,lastModifiedBy,parentReference,webUrl'
106
+ }
107
+ });
108
+ const items = response.data.value || [];
109
+ for (const item of items) {
110
+ const itemPath = parentPath ? `${parentPath}/${item.name}` : item.name;
111
+ if (item.file) {
112
+ // Add path information to the item
113
+ item.fullPath = itemPath;
114
+ allItems.push(item);
115
+ }
116
+ else if (item.folder) {
117
+ // Recursively scan subfolders
118
+ const subItems = await this.scanDriveFolder(driveId, item.id, itemPath);
119
+ allItems.push(...subItems);
120
+ }
121
+ }
122
+ nextLink = response.data['@odata.nextLink'] || null;
123
+ } while (nextLink);
124
+ return allItems;
125
+ }
126
+ catch (error) {
127
+ if (error.response?.status === 404) {
128
+ console.warn(`Warning: Folder not found: ${folderId}`);
129
+ return [];
130
+ }
131
+ throw error;
132
+ }
133
+ }
134
+ async import(config, sources, targetDir, options) {
135
+ this.config = config;
136
+ this.apiClient = this.createApiClient(this.config);
137
+ const results = [];
138
+ const batchSize = options?.batchSize || 5;
139
+ // Process in batches to respect API limits
140
+ for (let i = 0; i < sources.length; i += batchSize) {
141
+ const batch = sources.slice(i, i + batchSize);
142
+ for (const source of batch) {
143
+ const result = await this.importSingle(source, targetDir);
144
+ results.push(result);
145
+ // Small delay to respect rate limits
146
+ await this.sleep(200);
147
+ }
148
+ }
149
+ return results;
150
+ }
151
+ async importSingle(source, targetDir) {
152
+ try {
153
+ if (!this.apiClient)
154
+ throw new Error('API client not initialized');
155
+ const targetPath = path_1.default.join(targetDir, source.path);
156
+ const targetDirectory = path_1.default.dirname(targetPath);
157
+ await fs_extra_1.default.ensureDir(targetDirectory);
158
+ // Get the drive ID from metadata
159
+ const driveId = source.metadata?.driveId;
160
+ if (!driveId) {
161
+ throw new Error('Drive ID not found in source metadata');
162
+ }
163
+ // Download file content from SharePoint
164
+ const response = await this.apiClient.get(`/drives/${driveId}/items/${source.id}/content`, {
165
+ responseType: 'stream'
166
+ });
167
+ const writer = fs_extra_1.default.createWriteStream(targetPath);
168
+ response.data.pipe(writer);
169
+ return new Promise((resolve) => {
170
+ writer.on('finish', () => {
171
+ resolve({
172
+ success: true,
173
+ source,
174
+ localPath: targetPath,
175
+ bytesTransferred: source.size
176
+ });
177
+ });
178
+ writer.on('error', (error) => {
179
+ resolve({
180
+ success: false,
181
+ source,
182
+ error: error.message
183
+ });
184
+ });
185
+ });
186
+ }
187
+ catch (error) {
188
+ return {
189
+ success: false,
190
+ source,
191
+ error: error.message
192
+ };
193
+ }
194
+ }
195
+ async export(config, localSources, options) {
196
+ this.config = config;
197
+ this.apiClient = this.createApiClient(this.config);
198
+ const results = [];
199
+ try {
200
+ // Get site and drive information
201
+ const siteInfo = await this.getSiteInfo(this.apiClient, this.config.siteUrl);
202
+ const driveId = this.config.driveId || await this.getDefaultDriveId(siteInfo.id);
203
+ const rootFolderId = this.config.folderId || 'root';
204
+ for (const source of localSources) {
205
+ try {
206
+ // Determine target folder
207
+ let targetFolderId = rootFolderId;
208
+ if (options?.preserveStructure && source.path.includes('/')) {
209
+ const folderPath = path_1.default.dirname(source.path);
210
+ targetFolderId = await this.createFolderStructure(driveId, folderPath, rootFolderId);
211
+ }
212
+ // Read local file
213
+ const fileContent = await fs_extra_1.default.readFile(source.id);
214
+ // Normalize filename to NFC to handle accented characters consistently across platforms
215
+ const fileName = (options?.preserveStructure ? path_1.default.basename(source.path) : source.name).normalize('NFC');
216
+ // Upload file to SharePoint using simple upload (for files < 4MB)
217
+ // For larger files, we should use resumable upload sessions
218
+ const uploadUrl = `/drives/${driveId}/items/${targetFolderId}:/${fileName}:/content`;
219
+ await this.apiClient.put(uploadUrl, fileContent, {
220
+ headers: {
221
+ 'Content-Type': source.mimeType || 'application/octet-stream'
222
+ }
223
+ });
224
+ const targetPath = options?.preserveStructure ? source.path : source.name;
225
+ results.push({
226
+ success: true,
227
+ targetPath,
228
+ source,
229
+ bytesTransferred: source.size
230
+ });
231
+ }
232
+ catch (error) {
233
+ results.push({
234
+ success: false,
235
+ targetPath: options?.targetPath || '',
236
+ source,
237
+ error: error.message
238
+ });
239
+ }
240
+ }
241
+ }
242
+ catch (error) {
243
+ // If we can't get site/drive info, fail all exports
244
+ for (const source of localSources) {
245
+ results.push({
246
+ success: false,
247
+ targetPath: options?.targetPath || '',
248
+ source,
249
+ error: `Failed to initialize SharePoint connection: ${error.message}`
250
+ });
251
+ }
252
+ }
253
+ return results;
254
+ }
255
+ async getSiteInfo(client, siteUrl) {
256
+ // Extract hostname and site path from URL
257
+ const url = new URL(siteUrl);
258
+ const hostname = url.hostname;
259
+ const sitePath = url.pathname;
260
+ const response = await client.get(`/sites/${hostname}:${sitePath}`);
261
+ return response.data;
262
+ }
263
+ async getDefaultDriveId(siteId) {
264
+ if (!this.apiClient)
265
+ throw new Error('API client not initialized');
266
+ const response = await this.apiClient.get(`/sites/${siteId}/drive`);
267
+ return response.data.id;
268
+ }
269
+ async createFolderStructure(driveId, folderPath, parentId) {
270
+ if (!this.apiClient)
271
+ throw new Error('API client not initialized');
272
+ const parts = folderPath.split('/').filter(part => part.length > 0);
273
+ let currentParentId = parentId;
274
+ for (const folderName of parts) {
275
+ try {
276
+ // Check if folder already exists
277
+ const searchUrl = `/drives/${driveId}/items/${currentParentId}/children`;
278
+ const response = await this.apiClient.get(searchUrl, {
279
+ params: {
280
+ $filter: `name eq '${folderName}' and folder ne null`
281
+ }
282
+ });
283
+ const existingFolder = response.data.value[0];
284
+ if (existingFolder) {
285
+ currentParentId = existingFolder.id;
286
+ }
287
+ else {
288
+ // Create new folder
289
+ const createResponse = await this.apiClient.post(`/drives/${driveId}/items/${currentParentId}/children`, {
290
+ name: folderName,
291
+ folder: {},
292
+ '@microsoft.graph.conflictBehavior': 'rename'
293
+ });
294
+ currentParentId = createResponse.data.id;
295
+ }
296
+ }
297
+ catch (error) {
298
+ throw new Error(`Failed to create folder structure: ${error.message}`);
299
+ }
300
+ }
301
+ return currentParentId;
302
+ }
303
+ getConfigSchema() {
304
+ return {
305
+ type: 'object',
306
+ properties: {
307
+ siteUrl: {
308
+ type: 'string',
309
+ description: 'SharePoint site URL (e.g., https://contoso.sharepoint.com/sites/mysite)',
310
+ required: true
311
+ },
312
+ accessToken: {
313
+ type: 'string',
314
+ description: 'Microsoft Graph API access token with SharePoint permissions',
315
+ required: true
316
+ },
317
+ driveId: {
318
+ type: 'string',
319
+ description: 'Specific drive ID to scan (optional, uses default site drive)',
320
+ required: false
321
+ },
322
+ folderId: {
323
+ type: 'string',
324
+ description: 'Starting folder ID (optional, defaults to drive root)',
325
+ required: false
326
+ },
327
+ limit: {
328
+ type: 'number',
329
+ description: 'Maximum number of documents to scan (useful for testing)',
330
+ required: false
331
+ }
332
+ },
333
+ required: ['siteUrl', 'accessToken']
334
+ };
335
+ }
336
+ async initialize(config) {
337
+ this.config = config;
338
+ if (!this.config.siteUrl || !this.config.accessToken) {
339
+ throw new Error('SharePoint site URL and access token are required');
340
+ }
341
+ this.apiClient = this.createApiClient(this.config);
342
+ }
343
+ async destroy() {
344
+ this.config = undefined;
345
+ this.apiClient = undefined;
346
+ }
347
+ createApiClient(config) {
348
+ return axios_1.default.create({
349
+ baseURL: this.baseUrl,
350
+ headers: {
351
+ 'Authorization': `Bearer ${config.accessToken}`,
352
+ 'Content-Type': 'application/json'
353
+ },
354
+ timeout: 30000
355
+ });
356
+ }
357
+ getItemPath(item) {
358
+ // Use the full path if available from scanning
359
+ if (item.fullPath) {
360
+ return item.fullPath;
361
+ }
362
+ // Construct path from parent reference
363
+ if (item.parentReference?.path) {
364
+ const pathParts = item.parentReference.path
365
+ .split('/root:/')
366
+ .pop()
367
+ ?.split('/') || [];
368
+ pathParts.push(item.name);
369
+ return pathParts.filter(part => part.length > 0).join('/');
370
+ }
371
+ return item.name;
372
+ }
373
+ shouldIncludeSource(source, options) {
374
+ // Apply size filter
375
+ if (options?.filters?.maxSize && source.size > options.filters.maxSize) {
376
+ return false;
377
+ }
378
+ // Apply date range filter
379
+ if (options?.filters?.dateRange) {
380
+ const { from, to } = options.filters.dateRange;
381
+ if (from && source.lastModified < from)
382
+ return false;
383
+ if (to && source.lastModified > to)
384
+ return false;
385
+ }
386
+ // Apply MIME type filter
387
+ if (options?.filters?.mimeTypes && !options.filters.mimeTypes.includes(source.mimeType)) {
388
+ return false;
389
+ }
390
+ return true;
391
+ }
392
+ sleep(ms) {
393
+ return new Promise(resolve => setTimeout(resolve, ms));
394
+ }
395
+ }
396
+ exports.default = SharePointPlugin;
397
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../plugins/sharepoint/index.ts"],"names":[],"mappings":";;;;;AAAA,kDAA6C;AAC7C,wDAA0B;AAC1B,gDAAwB;AAwDxB,MAAqB,gBAAgB;IAArC;QACW,SAAI,GAAG,YAAY,CAAC;QACpB,YAAO,GAAG,OAAO,CAAC;QAClB,gBAAW,GAAG,mCAAmC,CAAC;QAClD,wBAAmB,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAU,CAAC;QAIpD,YAAO,GAAG,kCAAkC,CAAC;IA0bhE,CAAC;IAxbC,KAAK,CAAC,cAAc,CAAC,MAAoB;QACvC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,MAA0B,CAAC,CAAC;YAChE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAG,MAA2B,CAAC,OAAO,CAAC,CAAC;YACtF,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,sCAAsC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACrE,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAoB,EAAE,OAA6B;QAC5D,IAAI,CAAC,MAAM,GAAG,MAA0B,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEnD,MAAM,OAAO,GAAqB,EAAE,CAAC;QACrC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,IAAI,CAAC;YACH,MAAM,KAAK,GAAI,IAAI,CAAC,MAAc,CAAC,KAAK,IAAK,OAAe,EAAE,KAAK,CAAC;YACpE,OAAO,CAAC,GAAG,CAAC,8BAA8B,KAAK,CAAC,CAAC,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YAElF,uBAAuB;YACvB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAE7E,kDAAkD;YAClD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAEjF,oDAAoD;YACpD,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC;YACxD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;YAExE,IAAI,cAAc,GAAG,CAAC,CAAC;YACvB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACd,MAAM,MAAM,GAAmB;wBAC7B,EAAE,EAAE,IAAI,CAAC,EAAE;wBACX,IAAI,EAAE,IAAI,CAAC,IAAI;wBACf,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;wBAC5B,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC;wBACpB,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ;wBAC5B,YAAY,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC;wBACjD,QAAQ,EAAE;4BACR,YAAY,EAAE,IAAI,CAAC,EAAE;4BACrB,OAAO,EAAE,OAAO;4BAChB,SAAS,EAAE,IAAI,CAAC,eAAe;4BAC/B,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW;4BAC1C,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW;4BAChD,MAAM,EAAE,IAAI,CAAC,MAAM;4BACnB,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY;4BAC5C,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ;yBACrC;qBACF,CAAC;oBAEF,gBAAgB;oBAChB,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;wBAC9C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;wBACrB,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC;wBACzB,cAAc,EAAE,CAAC;wBAEjB,cAAc;wBACd,IAAI,KAAK,IAAI,cAAc,IAAI,KAAK,EAAE,CAAC;4BACrC,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,QAAQ,CAAC,CAAC;4BAClD,MAAM;wBACR,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO;gBACL,OAAO;gBACP,UAAU,EAAE,OAAO,CAAC,MAAM;gBAC1B,SAAS;gBACT,MAAM;aACP,CAAC;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE,EAAE;gBACX,UAAU,EAAE,CAAC;gBACb,SAAS,EAAE,CAAC;gBACZ,MAAM,EAAE,CAAC,2BAA2B,KAAK,CAAC,OAAO,EAAE,CAAC;aACrD,CAAC;QACJ,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,OAAe,EAAE,QAAgB,EAAE,UAAkB;QACjF,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAEnE,MAAM,QAAQ,GAA0B,EAAE,CAAC;QAC3C,IAAI,QAAQ,GAAkB,IAAI,CAAC;QAEnC,IAAI,CAAC;YACH,GAAG,CAAC;gBACF,MAAM,GAAG,GAAG,QAAQ,IAAI,WAAW,OAAO,UAAU,QAAQ,WAAW,CAAC;gBACxE,MAAM,QAAQ,GAAQ,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE;oBAClD,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBACtB,OAAO,EAAE,YAAY;wBACrB,OAAO,EAAE,+GAA+G;qBACzH;iBACF,CAAC,CAAC;gBAEH,MAAM,KAAK,GAA0B,QAAQ,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;gBAE/D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;oBAEvE,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;wBACd,mCAAmC;wBAClC,IAAY,CAAC,QAAQ,GAAG,QAAQ,CAAC;wBAClC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACtB,CAAC;yBAAM,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;wBACvB,8BAA8B;wBAC9B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;wBACxE,QAAQ,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;oBAC7B,CAAC;gBACH,CAAC;gBAED,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,IAAI,CAAC;YACtD,CAAC,QAAQ,QAAQ,EAAE;YAEnB,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,KAAK,CAAC,QAAQ,EAAE,MAAM,KAAK,GAAG,EAAE,CAAC;gBACnC,OAAO,CAAC,IAAI,CAAC,8BAA8B,QAAQ,EAAE,CAAC,CAAC;gBACvD,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CACV,MAAoB,EACpB,OAAyB,EACzB,SAAiB,EACjB,OAA6B;QAE7B,IAAI,CAAC,MAAM,GAAG,MAA0B,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEnD,MAAM,OAAO,GAAmB,EAAE,CAAC;QACnC,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,CAAC,CAAC;QAE1C,2CAA2C;QAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,SAAS,EAAE,CAAC;YACnD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC;YAE9C,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE,CAAC;gBAC3B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;gBAC1D,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAErB,qCAAqC;gBACrC,MAAM,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,MAAsB,EAAE,SAAiB;QAClE,IAAI,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAEnE,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YACrD,MAAM,eAAe,GAAG,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAEjD,MAAM,kBAAE,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;YAEpC,iCAAiC;YACjC,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC;YACzC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAC3D,CAAC;YAED,wCAAwC;YACxC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,WAAW,OAAO,UAAU,MAAM,CAAC,EAAE,UAAU,EAAE;gBACzF,YAAY,EAAE,QAAQ;aACvB,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,kBAAE,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;YAChD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAE3B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC7B,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;oBACvB,OAAO,CAAC;wBACN,OAAO,EAAE,IAAI;wBACb,MAAM;wBACN,SAAS,EAAE,UAAU;wBACrB,gBAAgB,EAAE,MAAM,CAAC,IAAI;qBAC9B,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;oBAC3B,OAAO,CAAC;wBACN,OAAO,EAAE,KAAK;wBACd,MAAM;wBACN,KAAK,EAAE,KAAK,CAAC,OAAO;qBACrB,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM;gBACN,KAAK,EAAE,KAAK,CAAC,OAAO;aACrB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CACV,MAAoB,EACpB,YAA8B,EAC9B,OAA6B;QAE7B,IAAI,CAAC,MAAM,GAAG,MAA0B,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEnD,MAAM,OAAO,GAAmB,EAAE,CAAC;QAEnC,IAAI,CAAC;YACH,iCAAiC;YACjC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC7E,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACjF,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC;YAEpD,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;gBAClC,IAAI,CAAC;oBACH,0BAA0B;oBAC1B,IAAI,cAAc,GAAG,YAAY,CAAC;oBAElC,IAAI,OAAO,EAAE,iBAAiB,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC5D,MAAM,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;wBAC7C,cAAc,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;oBACvF,CAAC;oBAED,kBAAkB;oBAClB,MAAM,WAAW,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oBACjD,wFAAwF;oBACxF,MAAM,QAAQ,GAAG,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,cAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;oBAE1G,kEAAkE;oBAClE,4DAA4D;oBAC5D,MAAM,SAAS,GAAG,WAAW,OAAO,UAAU,cAAc,KAAK,QAAQ,WAAW,CAAC;oBAErF,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE;wBAC/C,OAAO,EAAE;4BACP,cAAc,EAAE,MAAM,CAAC,QAAQ,IAAI,0BAA0B;yBAC9D;qBACF,CAAC,CAAC;oBAEH,MAAM,UAAU,GAAG,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC;oBAE1E,OAAO,CAAC,IAAI,CAAC;wBACX,OAAO,EAAE,IAAI;wBACb,UAAU;wBACV,MAAM;wBACN,gBAAgB,EAAE,MAAM,CAAC,IAAI;qBAC9B,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAU,EAAE,CAAC;oBACpB,OAAO,CAAC,IAAI,CAAC;wBACX,OAAO,EAAE,KAAK;wBACd,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,EAAE;wBACrC,MAAM;wBACN,KAAK,EAAE,KAAK,CAAC,OAAO;qBACrB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,oDAAoD;YACpD,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;gBAClC,OAAO,CAAC,IAAI,CAAC;oBACX,OAAO,EAAE,KAAK;oBACd,UAAU,EAAE,OAAO,EAAE,UAAU,IAAI,EAAE;oBACrC,MAAM;oBACN,KAAK,EAAE,+CAA+C,KAAK,CAAC,OAAO,EAAE;iBACtE,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,MAAqB,EAAE,OAAe;QAC9D,0CAA0C;QAC1C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7B,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QAC9B,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QAE9B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,UAAU,QAAQ,IAAI,QAAQ,EAAE,CAAC,CAAC;QACpE,OAAO,QAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,MAAc;QAC5C,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAEnE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,MAAM,QAAQ,CAAC,CAAC;QACpE,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IAC1B,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,OAAe,EAAE,UAAkB,EAAE,QAAgB;QACvF,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAEnE,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACpE,IAAI,eAAe,GAAG,QAAQ,CAAC;QAE/B,KAAK,MAAM,UAAU,IAAI,KAAK,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACH,iCAAiC;gBACjC,MAAM,SAAS,GAAG,WAAW,OAAO,UAAU,eAAe,WAAW,CAAC;gBACzE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE;oBACnD,MAAM,EAAE;wBACN,OAAO,EAAE,YAAY,UAAU,sBAAsB;qBACtD;iBACF,CAAC,CAAC;gBAEH,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAE9C,IAAI,cAAc,EAAE,CAAC;oBACnB,eAAe,GAAG,cAAc,CAAC,EAAE,CAAC;gBACtC,CAAC;qBAAM,CAAC;oBACN,oBAAoB;oBACpB,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,OAAO,UAAU,eAAe,WAAW,EAAE;wBACvG,IAAI,EAAE,UAAU;wBAChB,MAAM,EAAE,EAAE;wBACV,mCAAmC,EAAE,QAAQ;qBAC9C,CAAC,CAAC;oBACH,eAAe,GAAG,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3C,CAAC;YACH,CAAC;YAAC,OAAO,KAAU,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,sCAAsC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACzE,CAAC;QACH,CAAC;QAED,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,eAAe;QACb,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,yEAAyE;oBACtF,QAAQ,EAAE,IAAI;iBACf;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,8DAA8D;oBAC3E,QAAQ,EAAE,IAAI;iBACf;gBACD,OAAO,EAAE;oBACP,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,+DAA+D;oBAC5E,QAAQ,EAAE,KAAK;iBAChB;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,uDAAuD;oBACpE,QAAQ,EAAE,KAAK;iBAChB;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,0DAA0D;oBACvE,QAAQ,EAAE,KAAK;iBAChB;aACF;YACD,QAAQ,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC;SACrC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAoB;QACnC,IAAI,CAAC,MAAM,GAAG,MAA0B,CAAC;QAEzC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YACrD,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACvE,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAEO,eAAe,CAAC,MAAwB;QAC9C,OAAO,eAAK,CAAC,MAAM,CAAC;YAClB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE;gBACP,eAAe,EAAE,UAAU,MAAM,CAAC,WAAW,EAAE;gBAC/C,cAAc,EAAE,kBAAkB;aACnC;YACD,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;IACL,CAAC;IAEO,WAAW,CAAC,IAAyB;QAC3C,+CAA+C;QAC/C,IAAK,IAAY,CAAC,QAAQ,EAAE,CAAC;YAC3B,OAAQ,IAAY,CAAC,QAAQ,CAAC;QAChC,CAAC;QAED,uCAAuC;QACvC,IAAI,IAAI,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;YAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI;iBACxC,KAAK,CAAC,SAAS,CAAC;iBAChB,GAAG,EAAE;gBACN,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAErB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1B,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC7D,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAEO,mBAAmB,CAAC,MAAsB,EAAE,OAA6B;QAC/E,oBAAoB;QACpB,IAAI,OAAO,EAAE,OAAO,EAAE,OAAO,IAAI,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACvE,OAAO,KAAK,CAAC;QACf,CAAC;QAED,0BAA0B;QAC1B,IAAI,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;YAChC,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC;YAC/C,IAAI,IAAI,IAAI,MAAM,CAAC,YAAY,GAAG,IAAI;gBAAE,OAAO,KAAK,CAAC;YACrD,IAAI,EAAE,IAAI,MAAM,CAAC,YAAY,GAAG,EAAE;gBAAE,OAAO,KAAK,CAAC;QACnD,CAAC;QAED,yBAAyB;QACzB,IAAI,OAAO,EAAE,OAAO,EAAE,SAAS,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,KAAK,CAAC,EAAU;QACtB,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IACzD,CAAC;CACF;AAlcD,mCAkcC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sinoia/hubdoc-tools",
3
- "version": "1.3.4",
3
+ "version": "1.3.6",
4
4
  "description": "Professional command-line tool for HubDoc document management and bulk import/export",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -19,12 +19,17 @@
19
19
  "require": "./dist/index.js",
20
20
  "import": "./dist/index.js"
21
21
  },
22
+ "./plugins/*": {
23
+ "types": "./dist/plugins/*/index.d.ts",
24
+ "require": "./dist/plugins/*/index.js",
25
+ "import": "./dist/plugins/*/index.js"
26
+ },
22
27
  "./package.json": "./package.json"
23
28
  },
24
29
  "scripts": {
25
30
  "build": "npm run build:main && npm run build:plugins",
26
31
  "build:main": "tsc --project tsconfig.main.json && tsc-alias",
27
- "build:plugins": "tsc --project tsconfig.plugins.json && npm run copy:plugin-manifests",
32
+ "build:plugins": "tsc --project tsconfig.plugins.json && tsc-alias && npm run copy:plugin-manifests",
28
33
  "copy:plugin-manifests": "for dir in plugins/*/; do name=$(basename \"$dir\"); [ -f \"$dir/plugin.json\" ] && mkdir -p \"dist/plugins/$name\" && cp \"$dir/plugin.json\" \"dist/plugins/$name/\" || true; done",
29
34
  "dev": "ts-node -r tsconfig-paths/register src/cli.ts",
30
35
  "start": "node dist/cli.js",
@@ -191,12 +191,12 @@ export default class S3Plugin implements DocumentSourcePlugin {
191
191
  return pump();
192
192
  };
193
193
  await pump();
194
- } else if (typeof response.Body.pipe === 'function') {
194
+ } else if (typeof (response.Body as any).pipe === 'function') {
195
195
  // Node.js stream
196
196
  (response.Body as any).pipe(writer);
197
197
  } else {
198
198
  // Buffer or Uint8Array
199
- writer.write(response.Body as Buffer);
199
+ writer.write(response.Body as any);
200
200
  writer.end();
201
201
  }
202
202
 
@@ -161,7 +161,7 @@ export default class SharePointPlugin implements DocumentSourcePlugin {
161
161
  try {
162
162
  do {
163
163
  const url = nextLink || `/drives/${driveId}/items/${folderId}/children`;
164
- const response = await this.apiClient.get(url, {
164
+ const response: any = await this.apiClient.get(url, {
165
165
  params: nextLink ? {} : {
166
166
  $expand: 'thumbnails',
167
167
  $select: 'id,name,size,lastModifiedDateTime,createdDateTime,file,folder,createdBy,lastModifiedBy,parentReference,webUrl'