@sinoia/hubdoc-tools 1.0.4 → 1.2.1

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 (341) hide show
  1. package/README.md +115 -34
  2. package/dist/__tests__/fixtures/plugins/connection-plugin/index.d.ts +15 -0
  3. package/dist/__tests__/fixtures/plugins/connection-plugin/index.d.ts.map +1 -0
  4. package/dist/__tests__/fixtures/plugins/connection-plugin/index.js +37 -0
  5. package/dist/__tests__/fixtures/plugins/connection-plugin/index.js.map +1 -0
  6. package/dist/__tests__/fixtures/plugins/scan-plugin/index.d.ts +15 -0
  7. package/dist/__tests__/fixtures/plugins/scan-plugin/index.d.ts.map +1 -0
  8. package/dist/__tests__/fixtures/plugins/scan-plugin/index.js +54 -0
  9. package/dist/__tests__/fixtures/plugins/scan-plugin/index.js.map +1 -0
  10. package/dist/__tests__/fixtures/plugins/test-plugin/index.d.ts +15 -0
  11. package/dist/__tests__/fixtures/plugins/test-plugin/index.d.ts.map +1 -0
  12. package/dist/__tests__/fixtures/plugins/test-plugin/index.js +34 -0
  13. package/dist/__tests__/fixtures/plugins/test-plugin/index.js.map +1 -0
  14. package/dist/__tests__/fixtures/plugins/workflow-plugin/index.d.ts +16 -0
  15. package/dist/__tests__/fixtures/plugins/workflow-plugin/index.d.ts.map +1 -0
  16. package/dist/__tests__/fixtures/plugins/workflow-plugin/index.js +145 -0
  17. package/dist/__tests__/fixtures/plugins/workflow-plugin/index.js.map +1 -0
  18. package/dist/api/api/authentication-api.d.ts +208 -0
  19. package/dist/api/api/authentication-api.d.ts.map +1 -0
  20. package/dist/api/api/authentication-api.js +385 -0
  21. package/dist/api/api/authentication-api.js.map +1 -0
  22. package/dist/api/api/bulk-uploads-api.d.ts +101 -0
  23. package/dist/api/api/bulk-uploads-api.d.ts.map +1 -0
  24. package/dist/api/api/bulk-uploads-api.js +195 -0
  25. package/dist/api/api/bulk-uploads-api.js.map +1 -0
  26. package/dist/api/api/contacts-api.d.ts +246 -0
  27. package/dist/api/api/contacts-api.d.ts.map +1 -0
  28. package/dist/api/api/contacts-api.js +465 -0
  29. package/dist/api/api/contacts-api.js.map +1 -0
  30. package/dist/api/api/documents-api.d.ts +267 -0
  31. package/dist/api/api/documents-api.d.ts.map +1 -0
  32. package/dist/api/api/documents-api.js +506 -0
  33. package/dist/api/api/documents-api.js.map +1 -0
  34. package/dist/api/api/folders-api.d.ts +255 -0
  35. package/dist/api/api/folders-api.d.ts.map +1 -0
  36. package/dist/api/api/folders-api.js +479 -0
  37. package/dist/api/api/folders-api.js.map +1 -0
  38. package/dist/api/api/groups-api.d.ts +246 -0
  39. package/dist/api/api/groups-api.d.ts.map +1 -0
  40. package/dist/api/api/groups-api.js +465 -0
  41. package/dist/api/api/groups-api.js.map +1 -0
  42. package/dist/api/api/permissions-api.d.ts +246 -0
  43. package/dist/api/api/permissions-api.d.ts.map +1 -0
  44. package/dist/api/api/permissions-api.js +465 -0
  45. package/dist/api/api/permissions-api.js.map +1 -0
  46. package/dist/api/api/workspaces-api.d.ts +213 -0
  47. package/dist/api/api/workspaces-api.d.ts.map +1 -0
  48. package/dist/api/api/workspaces-api.js +424 -0
  49. package/dist/api/api/workspaces-api.js.map +1 -0
  50. package/dist/api/api.d.ts +20 -0
  51. package/dist/api/api.d.ts.map +1 -0
  52. package/dist/api/api.js +38 -0
  53. package/dist/api/api.js.map +1 -0
  54. package/dist/api/base.d.ts +43 -0
  55. package/dist/api/base.d.ts.map +1 -0
  56. package/dist/api/base.js +49 -0
  57. package/dist/api/base.js.map +1 -0
  58. package/dist/api/common.d.ts +29 -0
  59. package/dist/api/common.d.ts.map +1 -0
  60. package/dist/api/common.js +109 -0
  61. package/dist/api/common.js.map +1 -0
  62. package/dist/api/configuration.d.ts +99 -0
  63. package/dist/api/configuration.d.ts.map +1 -0
  64. package/dist/api/configuration.js +49 -0
  65. package/dist/api/configuration.js.map +1 -0
  66. package/dist/api/index.d.ts +15 -0
  67. package/dist/api/index.d.ts.map +1 -0
  68. package/dist/api/index.js +33 -0
  69. package/dist/api/index.js.map +1 -0
  70. package/dist/api/models/api-v1-documents-documents-post-request1.d.ts +34 -0
  71. package/dist/api/models/api-v1-documents-documents-post-request1.d.ts.map +1 -0
  72. package/dist/api/models/api-v1-documents-documents-post-request1.js +16 -0
  73. package/dist/api/models/api-v1-documents-documents-post-request1.js.map +1 -0
  74. package/dist/api/models/api-v1-documents-documents-post201-response.d.ts +17 -0
  75. package/dist/api/models/api-v1-documents-documents-post201-response.d.ts.map +1 -0
  76. package/dist/api/models/api-v1-documents-documents-post201-response.js +16 -0
  77. package/dist/api/models/api-v1-documents-documents-post201-response.js.map +1 -0
  78. package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner-one-of.d.ts +17 -0
  79. package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner-one-of.d.ts.map +1 -0
  80. package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner-one-of.js +16 -0
  81. package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner-one-of.js.map +1 -0
  82. package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner-one-of1.d.ts +17 -0
  83. package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner-one-of1.d.ts.map +1 -0
  84. package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner-one-of1.js +16 -0
  85. package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner-one-of1.js.map +1 -0
  86. package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner.d.ts +18 -0
  87. package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner.d.ts.map +1 -0
  88. package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner.js +16 -0
  89. package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner.js.map +1 -0
  90. package/dist/api/models/api-v1-documents-folders-id-get200-response.d.ts +17 -0
  91. package/dist/api/models/api-v1-documents-folders-id-get200-response.d.ts.map +1 -0
  92. package/dist/api/models/api-v1-documents-folders-id-get200-response.js +16 -0
  93. package/dist/api/models/api-v1-documents-folders-id-get200-response.js.map +1 -0
  94. package/dist/api/models/bulk-upload-mutation.d.ts +34 -0
  95. package/dist/api/models/bulk-upload-mutation.d.ts.map +1 -0
  96. package/dist/api/models/bulk-upload-mutation.js +16 -0
  97. package/dist/api/models/bulk-upload-mutation.js.map +1 -0
  98. package/dist/api/models/bulk-upload.d.ts +91 -0
  99. package/dist/api/models/bulk-upload.d.ts.map +1 -0
  100. package/dist/api/models/bulk-upload.js +23 -0
  101. package/dist/api/models/bulk-upload.js.map +1 -0
  102. package/dist/api/models/contact-mutation.d.ts +30 -0
  103. package/dist/api/models/contact-mutation.d.ts.map +1 -0
  104. package/dist/api/models/contact-mutation.js +16 -0
  105. package/dist/api/models/contact-mutation.js.map +1 -0
  106. package/dist/api/models/contact.d.ts +54 -0
  107. package/dist/api/models/contact.d.ts.map +1 -0
  108. package/dist/api/models/contact.js +16 -0
  109. package/dist/api/models/contact.js.map +1 -0
  110. package/dist/api/models/document-document-type.d.ts +19 -0
  111. package/dist/api/models/document-document-type.d.ts.map +1 -0
  112. package/dist/api/models/document-document-type.js +16 -0
  113. package/dist/api/models/document-document-type.js.map +1 -0
  114. package/dist/api/models/document-domain.d.ts +19 -0
  115. package/dist/api/models/document-domain.d.ts.map +1 -0
  116. package/dist/api/models/document-domain.js +16 -0
  117. package/dist/api/models/document-domain.js.map +1 -0
  118. package/dist/api/models/document-folder.d.ts +19 -0
  119. package/dist/api/models/document-folder.d.ts.map +1 -0
  120. package/dist/api/models/document-folder.js +16 -0
  121. package/dist/api/models/document-folder.js.map +1 -0
  122. package/dist/api/models/document-mutation.d.ts +50 -0
  123. package/dist/api/models/document-mutation.d.ts.map +1 -0
  124. package/dist/api/models/document-mutation.js +16 -0
  125. package/dist/api/models/document-mutation.js.map +1 -0
  126. package/dist/api/models/document.d.ts +73 -0
  127. package/dist/api/models/document.d.ts.map +1 -0
  128. package/dist/api/models/document.js +16 -0
  129. package/dist/api/models/document.js.map +1 -0
  130. package/dist/api/models/folder-mutation.d.ts +38 -0
  131. package/dist/api/models/folder-mutation.d.ts.map +1 -0
  132. package/dist/api/models/folder-mutation.js +16 -0
  133. package/dist/api/models/folder-mutation.js.map +1 -0
  134. package/dist/api/models/folder-parent.d.ts +19 -0
  135. package/dist/api/models/folder-parent.d.ts.map +1 -0
  136. package/dist/api/models/folder-parent.js +16 -0
  137. package/dist/api/models/folder-parent.js.map +1 -0
  138. package/dist/api/models/folder.d.ts +65 -0
  139. package/dist/api/models/folder.d.ts.map +1 -0
  140. package/dist/api/models/folder.js +16 -0
  141. package/dist/api/models/folder.js.map +1 -0
  142. package/dist/api/models/group-mutation.d.ts +26 -0
  143. package/dist/api/models/group-mutation.d.ts.map +1 -0
  144. package/dist/api/models/group-mutation.js +16 -0
  145. package/dist/api/models/group-mutation.js.map +1 -0
  146. package/dist/api/models/group.d.ts +38 -0
  147. package/dist/api/models/group.d.ts.map +1 -0
  148. package/dist/api/models/group.js +16 -0
  149. package/dist/api/models/group.js.map +1 -0
  150. package/dist/api/models/index.d.ts +35 -0
  151. package/dist/api/models/index.d.ts.map +1 -0
  152. package/dist/api/models/index.js +51 -0
  153. package/dist/api/models/index.js.map +1 -0
  154. package/dist/api/models/model-error.d.ts +26 -0
  155. package/dist/api/models/model-error.d.ts.map +1 -0
  156. package/dist/api/models/model-error.js +16 -0
  157. package/dist/api/models/model-error.js.map +1 -0
  158. package/dist/api/models/oauth-revoke-post200-response.d.ts +15 -0
  159. package/dist/api/models/oauth-revoke-post200-response.d.ts.map +1 -0
  160. package/dist/api/models/oauth-revoke-post200-response.js +16 -0
  161. package/dist/api/models/oauth-revoke-post200-response.js.map +1 -0
  162. package/dist/api/models/permission-actor.d.ts +20 -0
  163. package/dist/api/models/permission-actor.d.ts.map +1 -0
  164. package/dist/api/models/permission-actor.js +16 -0
  165. package/dist/api/models/permission-actor.js.map +1 -0
  166. package/dist/api/models/permission-mutation.d.ts +44 -0
  167. package/dist/api/models/permission-mutation.d.ts.map +1 -0
  168. package/dist/api/models/permission-mutation.js +22 -0
  169. package/dist/api/models/permission-mutation.js.map +1 -0
  170. package/dist/api/models/permission-permissible.d.ts +20 -0
  171. package/dist/api/models/permission-permissible.d.ts.map +1 -0
  172. package/dist/api/models/permission-permissible.js +16 -0
  173. package/dist/api/models/permission-permissible.js.map +1 -0
  174. package/dist/api/models/permission.d.ts +60 -0
  175. package/dist/api/models/permission.d.ts.map +1 -0
  176. package/dist/api/models/permission.js +22 -0
  177. package/dist/api/models/permission.js.map +1 -0
  178. package/dist/api/models/token-response.d.ts +41 -0
  179. package/dist/api/models/token-response.d.ts.map +1 -0
  180. package/dist/api/models/token-response.js +16 -0
  181. package/dist/api/models/token-response.js.map +1 -0
  182. package/dist/api/models/user.d.ts +18 -0
  183. package/dist/api/models/user.d.ts.map +1 -0
  184. package/dist/api/models/user.js +16 -0
  185. package/dist/api/models/user.js.map +1 -0
  186. package/dist/api/models/workspace-mutation-settings-validation.d.ts +26 -0
  187. package/dist/api/models/workspace-mutation-settings-validation.d.ts.map +1 -0
  188. package/dist/api/models/workspace-mutation-settings-validation.js +16 -0
  189. package/dist/api/models/workspace-mutation-settings-validation.js.map +1 -0
  190. package/dist/api/models/workspace-mutation-settings.d.ts +60 -0
  191. package/dist/api/models/workspace-mutation-settings.d.ts.map +1 -0
  192. package/dist/api/models/workspace-mutation-settings.js +16 -0
  193. package/dist/api/models/workspace-mutation-settings.js.map +1 -0
  194. package/dist/api/models/workspace-mutation.d.ts +44 -0
  195. package/dist/api/models/workspace-mutation.d.ts.map +1 -0
  196. package/dist/api/models/workspace-mutation.js +16 -0
  197. package/dist/api/models/workspace-mutation.js.map +1 -0
  198. package/dist/api/models/workspace-settings-validation.d.ts +26 -0
  199. package/dist/api/models/workspace-settings-validation.d.ts.map +1 -0
  200. package/dist/api/models/workspace-settings-validation.js +16 -0
  201. package/dist/api/models/workspace-settings-validation.js.map +1 -0
  202. package/dist/api/models/workspace-settings.d.ts +60 -0
  203. package/dist/api/models/workspace-settings.d.ts.map +1 -0
  204. package/dist/api/models/workspace-settings.js +16 -0
  205. package/dist/api/models/workspace-settings.js.map +1 -0
  206. package/dist/api/models/workspace.d.ts +62 -0
  207. package/dist/api/models/workspace.d.ts.map +1 -0
  208. package/dist/api/models/workspace.js +16 -0
  209. package/dist/api/models/workspace.js.map +1 -0
  210. package/dist/cli/handlers/command-handlers.d.ts +29 -0
  211. package/dist/cli/handlers/command-handlers.d.ts.map +1 -0
  212. package/dist/cli/handlers/command-handlers.js +261 -0
  213. package/dist/cli/handlers/command-handlers.js.map +1 -0
  214. package/dist/cli/handlers/engine-handlers.d.ts +15 -0
  215. package/dist/cli/handlers/engine-handlers.d.ts.map +1 -0
  216. package/dist/cli/handlers/engine-handlers.js +174 -0
  217. package/dist/cli/handlers/engine-handlers.js.map +1 -0
  218. package/dist/cli/interactive.d.ts +15 -0
  219. package/dist/cli/interactive.d.ts.map +1 -0
  220. package/dist/cli/interactive.js +234 -0
  221. package/dist/cli/interactive.js.map +1 -0
  222. package/dist/cli.js +31 -740
  223. package/dist/cli.js.map +1 -1
  224. package/dist/commands/export.d.ts +1 -1
  225. package/dist/commands/export.d.ts.map +1 -1
  226. package/dist/commands/export.js +1 -1
  227. package/dist/commands/export.js.map +1 -1
  228. package/dist/commands/import.d.ts.map +1 -1
  229. package/dist/commands/import.js +5 -1
  230. package/dist/commands/import.js.map +1 -1
  231. package/dist/index.d.ts +27 -3
  232. package/dist/index.d.ts.map +1 -1
  233. package/dist/index.js +63 -20
  234. package/dist/index.js.map +1 -1
  235. package/dist/services/hubdoc-api.d.ts +26 -6
  236. package/dist/services/hubdoc-api.d.ts.map +1 -1
  237. package/dist/services/hubdoc-api.js +194 -43
  238. package/dist/services/hubdoc-api.js.map +1 -1
  239. package/dist/services/hubdoc-export.d.ts +1 -1
  240. package/dist/services/hubdoc-export.d.ts.map +1 -1
  241. package/dist/services/hubdoc-export.js +1 -1
  242. package/dist/services/hubdoc-export.js.map +1 -1
  243. package/dist/services/oauth-token-service.d.ts +27 -14
  244. package/dist/services/oauth-token-service.d.ts.map +1 -1
  245. package/dist/services/oauth-token-service.js +147 -80
  246. package/dist/services/oauth-token-service.js.map +1 -1
  247. package/dist/services/plugin-import.d.ts +2 -2
  248. package/dist/services/plugin-import.d.ts.map +1 -1
  249. package/dist/services/plugin-import.js +2 -2
  250. package/dist/services/plugin-import.js.map +1 -1
  251. package/dist/services/plugin-manager.d.ts +6 -1
  252. package/dist/services/plugin-manager.d.ts.map +1 -1
  253. package/dist/services/plugin-manager.js +28 -2
  254. package/dist/services/plugin-manager.js.map +1 -1
  255. package/dist/types/index.d.ts +11 -37
  256. package/dist/types/index.d.ts.map +1 -1
  257. package/dist/utils/config.d.ts +30 -1
  258. package/dist/utils/config.d.ts.map +1 -1
  259. package/dist/utils/config.js +187 -40
  260. package/dist/utils/config.js.map +1 -1
  261. package/dist/utils/csv.d.ts.map +1 -1
  262. package/dist/utils/csv.js +14 -3
  263. package/dist/utils/csv.js.map +1 -1
  264. package/package.json +23 -6
  265. package/.env.example +0 -23
  266. package/BAUTECH_HubDoc_Import.pptx +0 -0
  267. package/CHANGELOG.md +0 -134
  268. package/DEMO-DOCUMENTATION.html +0 -356
  269. package/DEMO-DOCUMENTATION.md +0 -411
  270. package/EXPORT-DOCUMENTATION.md +0 -333
  271. package/HUBDOC-API-V2.md +0 -248
  272. package/INSTALL.md +0 -175
  273. package/PACKAGING.md +0 -206
  274. package/PLUGINS.md +0 -328
  275. package/PRESENTATION-CLIENT.md +0 -100
  276. package/README-hubdoc-tool.md +0 -369
  277. package/README-npm.md +0 -238
  278. package/TESTING.md +0 -129
  279. package/config-examples/README.md +0 -36
  280. package/config-examples/alfresco-config.example.json +0 -8
  281. package/config-examples/azure-blob-config.example.json +0 -7
  282. package/config-examples/box-config.example.json +0 -5
  283. package/config-examples/nuxeo-config.example.json +0 -8
  284. package/config-examples/opentext-config.example.json +0 -7
  285. package/config-examples/s3-config.example.json +0 -8
  286. package/config-examples/sharepoint-config.example.json +0 -7
  287. package/demo/README.md +0 -199
  288. package/demo/demo-script.md +0 -284
  289. package/demo/generate-sample-csv.js +0 -351
  290. package/demo/mapping_bautech_15k.csv +0 -1
  291. package/demo/simulate-import.js +0 -273
  292. package/dist/commands/export-v2.d.ts +0 -45
  293. package/dist/commands/export-v2.d.ts.map +0 -1
  294. package/dist/commands/export-v2.js +0 -369
  295. package/dist/commands/export-v2.js.map +0 -1
  296. package/dist/commands/import-v2.d.ts +0 -32
  297. package/dist/commands/import-v2.d.ts.map +0 -1
  298. package/dist/commands/import-v2.js +0 -331
  299. package/dist/commands/import-v2.js.map +0 -1
  300. package/dist/services/hubdoc-api-v2.d.ts +0 -150
  301. package/dist/services/hubdoc-api-v2.d.ts.map +0 -1
  302. package/dist/services/hubdoc-api-v2.js +0 -418
  303. package/dist/services/hubdoc-api-v2.js.map +0 -1
  304. package/dist/services/hubdoc-client.d.ts +0 -246
  305. package/dist/services/hubdoc-client.d.ts.map +0 -1
  306. package/dist/services/hubdoc-client.js +0 -714
  307. package/dist/services/hubdoc-client.js.map +0 -1
  308. package/dist/services/hubdoc-export-service.d.ts +0 -90
  309. package/dist/services/hubdoc-export-service.d.ts.map +0 -1
  310. package/dist/services/hubdoc-export-service.js +0 -443
  311. package/dist/services/hubdoc-export-service.js.map +0 -1
  312. package/dist/services/hubdoc-export-v2.d.ts +0 -77
  313. package/dist/services/hubdoc-export-v2.d.ts.map +0 -1
  314. package/dist/services/hubdoc-export-v2.js +0 -329
  315. package/dist/services/hubdoc-export-v2.js.map +0 -1
  316. package/dist/services/hubdoc-import-service.d.ts +0 -64
  317. package/dist/services/hubdoc-import-service.d.ts.map +0 -1
  318. package/dist/services/hubdoc-import-service.js +0 -374
  319. package/dist/services/hubdoc-import-service.js.map +0 -1
  320. package/docs/README.md +0 -65
  321. package/docs/connectors/alfresco.md +0 -211
  322. package/docs/connectors/aws-s3.md +0 -187
  323. package/docs/connectors/azure-blob.md +0 -195
  324. package/docs/connectors/box.md +0 -115
  325. package/docs/connectors/nuxeo.md +0 -214
  326. package/docs/connectors/opentext.md +0 -234
  327. package/docs/connectors/sharepoint.md +0 -207
  328. package/documentation.html +0 -273
  329. package/jest.config.js +0 -15
  330. package/plugins/core/README.md +0 -122
  331. package/plugins/core/TESTING.md +0 -155
  332. package/plugins/core/plugin.json +0 -26
  333. package/plugins/dropbox/plugin.json +0 -12
  334. package/plugins/filesystem/plugin.json +0 -12
  335. package/plugins/googledrive/plugin.json +0 -12
  336. package/plugins/onedrive/TESTING.md +0 -197
  337. package/plugins/onedrive/plugin.json +0 -12
  338. package/scripts/build-windows-installer.ps1 +0 -132
  339. package/scripts/build-windows-installer.sh +0 -106
  340. package/scripts/prepare-publish.js +0 -62
  341. package/scripts/restore-package.js +0 -29
@@ -0,0 +1,174 @@
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.handleFilesystemEngine = handleFilesystemEngine;
7
+ exports.handlePluginEngine = handlePluginEngine;
8
+ exports.handleEngineOperation = handleEngineOperation;
9
+ const chalk_1 = __importDefault(require("chalk"));
10
+ const inquirer_1 = __importDefault(require("inquirer"));
11
+ const path_1 = __importDefault(require("path"));
12
+ const fs_extra_1 = __importDefault(require("fs-extra"));
13
+ const config_1 = require("../../utils/config");
14
+ const import_1 = require("../../commands/import");
15
+ const plugin_import_1 = require("../../services/plugin-import");
16
+ /**
17
+ * Handle filesystem engine operations
18
+ */
19
+ async function handleFilesystemEngine(options, configManager, logger) {
20
+ logger.startOperation('filesystem', 'import');
21
+ // Handle filesystem engine (existing direct import logic)
22
+ let sourceDir = options.source || process.cwd();
23
+ if (!sourceDir) {
24
+ const dirAnswer = await inquirer_1.default.prompt([
25
+ {
26
+ type: 'input',
27
+ name: 'sourceDir',
28
+ message: 'Enter source directory path:',
29
+ default: process.cwd(),
30
+ validate: async (input) => {
31
+ const resolvedPath = path_1.default.resolve(input);
32
+ if (!await fs_extra_1.default.pathExists(resolvedPath)) {
33
+ return `Directory not found: ${input}`;
34
+ }
35
+ return true;
36
+ }
37
+ }
38
+ ]);
39
+ sourceDir = dirAnswer.sourceDir;
40
+ }
41
+ const resolvedDir = path_1.default.resolve(sourceDir);
42
+ if (!await fs_extra_1.default.pathExists(resolvedDir)) {
43
+ throw new Error(`Directory not found: ${sourceDir}`);
44
+ }
45
+ logger.log('INFO', 'SCAN', 'filesystem', `Scanning directory: ${resolvedDir}`);
46
+ // Load or create HubDoc configuration with automatic token management
47
+ logger.log('INFO', 'INIT', 'filesystem', 'Loading HubDoc configuration');
48
+ const config = await configManager.ensureValidConfig();
49
+ logger.log('INFO', 'INIT', 'filesystem', 'HubDoc configuration loaded');
50
+ logger.startImport('filesystem', 1); // We don't know count yet for filesystem
51
+ // Execute filesystem import
52
+ const importOptions = {
53
+ mode: 'direct',
54
+ sourceDir: resolvedDir,
55
+ interactive: true
56
+ };
57
+ const importCommand = new import_1.ImportCommand(config);
58
+ await importCommand.execute(importOptions);
59
+ logger.log('SUCCESS', 'IMPORT', 'filesystem', 'Filesystem import completed');
60
+ }
61
+ /**
62
+ * Handle plugin-based engine operations (OneDrive, Google Drive, S3, etc.)
63
+ */
64
+ async function handlePluginEngine(engine, options, configManager, logger) {
65
+ logger.startOperation(engine, 'scan');
66
+ // Load configuration
67
+ const config = await configManager.loadConfig();
68
+ if (!config) {
69
+ console.log(chalk_1.default.yellow('⚙️ Configuration required. Please run: hubdoc-tool config'));
70
+ process.exit(1);
71
+ }
72
+ logger.log('INFO', 'INIT', engine, 'Initializing plugin service');
73
+ const pluginService = new plugin_import_1.PluginImportService(config);
74
+ await pluginService.initialize();
75
+ const pluginManager = pluginService.getPluginManager();
76
+ // Check if plugin exists
77
+ const availablePlugin = pluginManager.getPlugin(engine);
78
+ if (!availablePlugin) {
79
+ throw new Error(`Plugin not found: ${engine}`);
80
+ }
81
+ // Check for existing connections
82
+ const connections = pluginManager.getConnections().filter(conn => conn.type === engine);
83
+ let connectionId;
84
+ if (connections.length === 0) {
85
+ console.log(chalk_1.default.yellow(`⚙️ No ${engine} connection found. Creating one...`));
86
+ logger.log('INFO', 'INIT', engine, 'Creating new connection');
87
+ // Interactive connection setup
88
+ const schema = availablePlugin.plugin.getConfigSchema();
89
+ const connectionConfig = {};
90
+ for (const [key, prop] of Object.entries(schema.properties || {})) {
91
+ if (schema.required?.includes(key)) {
92
+ const propObj = prop;
93
+ const answer = await inquirer_1.default.prompt([{
94
+ type: propObj.type === 'number' ? 'number' : 'input',
95
+ name: key,
96
+ message: `Enter ${propObj.description || key}:`,
97
+ validate: (input) => {
98
+ if (propObj.type === 'number') {
99
+ return !isNaN(input) || 'Must be a number';
100
+ }
101
+ return input?.toString().trim().length > 0 || 'This field is required';
102
+ }
103
+ }]);
104
+ connectionConfig[key] = answer[key];
105
+ }
106
+ }
107
+ // Add limit if provided
108
+ if (options.limit) {
109
+ connectionConfig.limit = parseInt(options.limit);
110
+ }
111
+ // Create connection
112
+ connectionId = `conn_${engine}_${Date.now()}`;
113
+ const connectionName = `${engine}-connection`;
114
+ await pluginManager.createConnection(connectionId, connectionName, engine, connectionConfig);
115
+ console.log(chalk_1.default.green(`✅ Connection created: ${connectionName}`));
116
+ logger.log('SUCCESS', 'INIT', engine, `Connection created: ${connectionName}`);
117
+ }
118
+ else {
119
+ connectionId = connections[0].id;
120
+ console.log(chalk_1.default.green(`✅ Using existing connection: ${connections[0].name}`));
121
+ logger.log('INFO', 'INIT', engine, `Using existing connection: ${connections[0].name}`);
122
+ }
123
+ // Generate mapping and import
124
+ const mappingFile = `${engine}-mapping.csv`;
125
+ const scanOptions = {};
126
+ if (options.limit) {
127
+ scanOptions.limit = parseInt(options.limit);
128
+ }
129
+ if (options.concurrentJobs) {
130
+ scanOptions.concurrent = parseInt(options.concurrentJobs);
131
+ }
132
+ logger.startScan(engine, scanOptions);
133
+ console.log(chalk_1.default.blue(`🔍 Scanning ${engine} documents...`));
134
+ const scanStart = Date.now();
135
+ await pluginService.generatePluginMapping(connectionId, mappingFile, scanOptions);
136
+ const scanDuration = Date.now() - scanStart;
137
+ logger.completeScan(engine, {
138
+ documentsFound: 0, // TODO: Get actual count from plugin service
139
+ totalSize: 0, // TODO: Get actual size from plugin service
140
+ duration: scanDuration
141
+ });
142
+ logger.startImport(engine, 0); // TODO: Get document count
143
+ console.log(chalk_1.default.blue(`📥 Importing documents from ${engine}...`));
144
+ await pluginService.importFromPluginMapping(mappingFile);
145
+ logger.log('SUCCESS', 'IMPORT', engine, `Import completed from ${engine} engine`);
146
+ console.log(chalk_1.default.green(`✅ Import completed from ${engine} engine!`));
147
+ }
148
+ /**
149
+ * Route to appropriate engine handler
150
+ */
151
+ async function handleEngineOperation(engine, options, logger) {
152
+ const configManager = new config_1.ConfigManager();
153
+ switch (engine) {
154
+ case 'filesystem':
155
+ await handleFilesystemEngine(options, configManager, logger);
156
+ break;
157
+ case 'onedrive':
158
+ case 'googledrive':
159
+ case 'dropbox':
160
+ case 'core':
161
+ case 'box':
162
+ case 's3':
163
+ case 'azure-blob':
164
+ case 'alfresco':
165
+ case 'sharepoint':
166
+ case 'nuxeo':
167
+ case 'opentext':
168
+ await handlePluginEngine(engine, options, configManager, logger);
169
+ break;
170
+ default:
171
+ throw new Error(`Unsupported engine: ${engine}`);
172
+ }
173
+ }
174
+ //# sourceMappingURL=engine-handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine-handlers.js","sourceRoot":"","sources":["../../../src/cli/handlers/engine-handlers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { ImportOptions } from '../types';
2
+ import { ExportOptions } from '../types/export';
3
+ /**
4
+ * Run interactive mode for import command
5
+ */
6
+ export declare function runInteractiveImportMode(): Promise<ImportOptions>;
7
+ /**
8
+ * Run interactive mode for export command
9
+ */
10
+ export declare function runInteractiveExportMode(): Promise<ExportOptions>;
11
+ /**
12
+ * Run interactive engine selection
13
+ */
14
+ export declare function runEngineSelection(forceInteractive?: boolean): Promise<string>;
15
+ //# sourceMappingURL=interactive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactive.d.ts","sourceRoot":"","sources":["../../src/cli/interactive.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD;;GAEG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,aAAa,CAAC,CA0FvE;AAED;;GAEG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,aAAa,CAAC,CAoGvE;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,gBAAgB,GAAE,OAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAkC3F"}
@@ -0,0 +1,234 @@
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.runInteractiveImportMode = runInteractiveImportMode;
7
+ exports.runInteractiveExportMode = runInteractiveExportMode;
8
+ exports.runEngineSelection = runEngineSelection;
9
+ const inquirer_1 = __importDefault(require("inquirer"));
10
+ const chalk_1 = __importDefault(require("chalk"));
11
+ const path_1 = __importDefault(require("path"));
12
+ const fs_extra_1 = __importDefault(require("fs-extra"));
13
+ /**
14
+ * Run interactive mode for import command
15
+ */
16
+ async function runInteractiveImportMode() {
17
+ console.log(chalk_1.default.blue('🚀 HubDoc Import Wizard'));
18
+ const questions = [
19
+ {
20
+ type: 'list',
21
+ name: 'mode',
22
+ message: 'Select import mode:',
23
+ choices: [
24
+ {
25
+ name: 'Direct Import - Import all files from a directory',
26
+ value: 'direct'
27
+ },
28
+ {
29
+ name: 'Mapping Import - Use a CSV mapping file',
30
+ value: 'mapping'
31
+ }
32
+ ]
33
+ }
34
+ ];
35
+ const answers = await inquirer_1.default.prompt(questions);
36
+ if (answers.mode === 'direct') {
37
+ const dirQuestion = await inquirer_1.default.prompt([
38
+ {
39
+ type: 'input',
40
+ name: 'sourceDir',
41
+ message: 'Enter source directory path:',
42
+ default: process.cwd(),
43
+ validate: async (input) => {
44
+ const resolvedPath = path_1.default.resolve(input);
45
+ if (!await fs_extra_1.default.pathExists(resolvedPath)) {
46
+ return `Directory not found: ${input}`;
47
+ }
48
+ return true;
49
+ }
50
+ }
51
+ ]);
52
+ const concurrentQuestion = await inquirer_1.default.prompt([
53
+ {
54
+ type: 'number',
55
+ name: 'concurrentJobs',
56
+ message: 'Number of concurrent import jobs:',
57
+ default: 1,
58
+ validate: (input) => input > 0 && input <= 10 || 'Must be between 1 and 10'
59
+ }
60
+ ]);
61
+ return {
62
+ mode: 'direct',
63
+ sourceDir: path_1.default.resolve(dirQuestion.sourceDir),
64
+ concurrentJobs: concurrentQuestion.concurrentJobs,
65
+ interactive: true
66
+ };
67
+ }
68
+ else {
69
+ const mappingQuestion = await inquirer_1.default.prompt([
70
+ {
71
+ type: 'input',
72
+ name: 'mappingFile',
73
+ message: 'Enter CSV mapping file path:',
74
+ default: 'mapping.csv',
75
+ validate: async (input) => {
76
+ const resolvedPath = path_1.default.resolve(input);
77
+ if (!await fs_extra_1.default.pathExists(resolvedPath)) {
78
+ return `Mapping file not found: ${input}`;
79
+ }
80
+ return true;
81
+ }
82
+ }
83
+ ]);
84
+ const concurrentQuestion = await inquirer_1.default.prompt([
85
+ {
86
+ type: 'number',
87
+ name: 'concurrentJobs',
88
+ message: 'Number of concurrent import jobs:',
89
+ default: 1,
90
+ validate: (input) => input > 0 && input <= 10 || 'Must be between 1 and 10'
91
+ }
92
+ ]);
93
+ return {
94
+ mode: 'mapping',
95
+ mappingFile: path_1.default.resolve(mappingQuestion.mappingFile),
96
+ concurrentJobs: concurrentQuestion.concurrentJobs,
97
+ interactive: true
98
+ };
99
+ }
100
+ }
101
+ /**
102
+ * Run interactive mode for export command
103
+ */
104
+ async function runInteractiveExportMode() {
105
+ console.log(chalk_1.default.blue('📦 HubDoc Export Wizard'));
106
+ const questions = [
107
+ {
108
+ type: 'list',
109
+ name: 'mode',
110
+ message: 'Select export mode:',
111
+ choices: [
112
+ {
113
+ name: 'Scan Mode - Generate export mapping file',
114
+ value: 'scan'
115
+ },
116
+ {
117
+ name: 'Export Mode - Download documents using mapping file',
118
+ value: 'export'
119
+ }
120
+ ]
121
+ }
122
+ ];
123
+ const answers = await inquirer_1.default.prompt(questions);
124
+ if (answers.mode === 'scan') {
125
+ const scanQuestions = await inquirer_1.default.prompt([
126
+ {
127
+ type: 'input',
128
+ name: 'projectFilter',
129
+ message: 'Filter by project name (optional):',
130
+ default: ''
131
+ },
132
+ {
133
+ type: 'input',
134
+ name: 'domainFilter',
135
+ message: 'Filter by domain (optional):',
136
+ default: ''
137
+ },
138
+ {
139
+ type: 'input',
140
+ name: 'mappingFile',
141
+ message: 'Output mapping file:',
142
+ default: 'export-mapping.csv'
143
+ }
144
+ ]);
145
+ return {
146
+ mode: 'scan',
147
+ projectFilter: scanQuestions.projectFilter || undefined,
148
+ domainFilter: scanQuestions.domainFilter || undefined,
149
+ mappingFile: scanQuestions.mappingFile,
150
+ interactive: true
151
+ };
152
+ }
153
+ else {
154
+ const exportQuestions = await inquirer_1.default.prompt([
155
+ {
156
+ type: 'input',
157
+ name: 'mappingFile',
158
+ message: 'Export mapping file:',
159
+ default: 'export-mapping.csv',
160
+ validate: async (input) => {
161
+ const resolvedPath = path_1.default.resolve(input);
162
+ if (!await fs_extra_1.default.pathExists(resolvedPath)) {
163
+ return `Mapping file not found: ${input}`;
164
+ }
165
+ return true;
166
+ }
167
+ },
168
+ {
169
+ type: 'input',
170
+ name: 'outputDir',
171
+ message: 'Output directory:',
172
+ default: './export'
173
+ },
174
+ {
175
+ type: 'confirm',
176
+ name: 'generateXmlMetadata',
177
+ message: 'Generate XML metadata files (*_metadata.xml)?',
178
+ default: false
179
+ }
180
+ ]);
181
+ const concurrentQuestion = await inquirer_1.default.prompt([
182
+ {
183
+ type: 'number',
184
+ name: 'concurrentJobs',
185
+ message: 'Number of concurrent export jobs:',
186
+ default: 1,
187
+ validate: (input) => input > 0 && input <= 10 || 'Must be between 1 and 10'
188
+ }
189
+ ]);
190
+ return {
191
+ mode: 'export',
192
+ mappingFile: path_1.default.resolve(exportQuestions.mappingFile),
193
+ outputDir: exportQuestions.outputDir,
194
+ concurrentJobs: concurrentQuestion.concurrentJobs,
195
+ generateXmlMetadata: exportQuestions.generateXmlMetadata,
196
+ interactive: true
197
+ };
198
+ }
199
+ }
200
+ /**
201
+ * Run interactive engine selection
202
+ */
203
+ async function runEngineSelection(forceInteractive = false) {
204
+ if (!forceInteractive) {
205
+ console.log(chalk_1.default.gray('Using filesystem engine by default. Use --interactive to select engine.'));
206
+ return 'filesystem';
207
+ }
208
+ console.log(chalk_1.default.blue('🔧 Engine Selection'));
209
+ const engineChoices = [
210
+ { name: 'Filesystem - Import local files and directories', value: 'filesystem' },
211
+ { name: 'Core - Import from Core document management system', value: 'core' },
212
+ { name: 'OneDrive - Import from Microsoft OneDrive', value: 'onedrive' },
213
+ { name: 'Google Drive - Import from Google Drive', value: 'googledrive' },
214
+ { name: 'Dropbox - Import from Dropbox', value: 'dropbox' },
215
+ { name: 'Box - Import from Box Cloud Storage', value: 'box' },
216
+ { name: 'AWS S3 - Import from Amazon S3', value: 's3' },
217
+ { name: 'Azure Blob - Import from Azure Blob Storage', value: 'azure-blob' },
218
+ { name: 'Alfresco - Import from Alfresco ECM', value: 'alfresco' },
219
+ { name: 'SharePoint - Import from SharePoint Online', value: 'sharepoint' },
220
+ { name: 'Nuxeo - Import from Nuxeo Platform', value: 'nuxeo' },
221
+ { name: 'OpenText - Import from OpenText Content Server', value: 'opentext' }
222
+ ];
223
+ const answer = await inquirer_1.default.prompt([
224
+ {
225
+ type: 'list',
226
+ name: 'engine',
227
+ message: 'Select document source engine:',
228
+ choices: engineChoices,
229
+ default: 'filesystem'
230
+ }
231
+ ]);
232
+ return answer.engine;
233
+ }
234
+ //# sourceMappingURL=interactive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interactive.js","sourceRoot":"","sources":["../../src/cli/interactive.ts"],"names":[],"mappings":"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"}