@sinoia/hubdoc-tools 1.4.0 → 1.5.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 (510) hide show
  1. package/README.md +147 -243
  2. package/cli.js +89268 -0
  3. package/docs/llm-usage.md +314 -0
  4. package/package.json +29 -100
  5. package/LICENSE +0 -21
  6. package/dist/__tests__/fixtures/plugins/connection-plugin/index.d.ts +0 -15
  7. package/dist/__tests__/fixtures/plugins/connection-plugin/index.d.ts.map +0 -1
  8. package/dist/__tests__/fixtures/plugins/connection-plugin/index.js +0 -37
  9. package/dist/__tests__/fixtures/plugins/connection-plugin/index.js.map +0 -1
  10. package/dist/__tests__/fixtures/plugins/scan-plugin/index.d.ts +0 -15
  11. package/dist/__tests__/fixtures/plugins/scan-plugin/index.d.ts.map +0 -1
  12. package/dist/__tests__/fixtures/plugins/scan-plugin/index.js +0 -54
  13. package/dist/__tests__/fixtures/plugins/scan-plugin/index.js.map +0 -1
  14. package/dist/__tests__/fixtures/plugins/test-plugin/index.d.ts +0 -15
  15. package/dist/__tests__/fixtures/plugins/test-plugin/index.d.ts.map +0 -1
  16. package/dist/__tests__/fixtures/plugins/test-plugin/index.js +0 -34
  17. package/dist/__tests__/fixtures/plugins/test-plugin/index.js.map +0 -1
  18. package/dist/__tests__/fixtures/plugins/workflow-plugin/index.d.ts +0 -16
  19. package/dist/__tests__/fixtures/plugins/workflow-plugin/index.d.ts.map +0 -1
  20. package/dist/__tests__/fixtures/plugins/workflow-plugin/index.js +0 -145
  21. package/dist/__tests__/fixtures/plugins/workflow-plugin/index.js.map +0 -1
  22. package/dist/api/api/authentication-api.d.ts +0 -208
  23. package/dist/api/api/authentication-api.d.ts.map +0 -1
  24. package/dist/api/api/authentication-api.js +0 -385
  25. package/dist/api/api/authentication-api.js.map +0 -1
  26. package/dist/api/api/bulk-uploads-api.d.ts +0 -101
  27. package/dist/api/api/bulk-uploads-api.d.ts.map +0 -1
  28. package/dist/api/api/bulk-uploads-api.js +0 -195
  29. package/dist/api/api/bulk-uploads-api.js.map +0 -1
  30. package/dist/api/api/chunked-uploads-api.d.ts +0 -214
  31. package/dist/api/api/chunked-uploads-api.d.ts.map +0 -1
  32. package/dist/api/api/chunked-uploads-api.js +0 -420
  33. package/dist/api/api/chunked-uploads-api.js.map +0 -1
  34. package/dist/api/api/contacts-api.d.ts +0 -246
  35. package/dist/api/api/contacts-api.d.ts.map +0 -1
  36. package/dist/api/api/contacts-api.js +0 -465
  37. package/dist/api/api/contacts-api.js.map +0 -1
  38. package/dist/api/api/documents-api.d.ts +0 -267
  39. package/dist/api/api/documents-api.d.ts.map +0 -1
  40. package/dist/api/api/documents-api.js +0 -506
  41. package/dist/api/api/documents-api.js.map +0 -1
  42. package/dist/api/api/folders-api.d.ts +0 -255
  43. package/dist/api/api/folders-api.d.ts.map +0 -1
  44. package/dist/api/api/folders-api.js +0 -479
  45. package/dist/api/api/folders-api.js.map +0 -1
  46. package/dist/api/api/groups-api.d.ts +0 -246
  47. package/dist/api/api/groups-api.d.ts.map +0 -1
  48. package/dist/api/api/groups-api.js +0 -465
  49. package/dist/api/api/groups-api.js.map +0 -1
  50. package/dist/api/api/permissions-api.d.ts +0 -246
  51. package/dist/api/api/permissions-api.d.ts.map +0 -1
  52. package/dist/api/api/permissions-api.js +0 -465
  53. package/dist/api/api/permissions-api.js.map +0 -1
  54. package/dist/api/api/users-api.d.ts +0 -246
  55. package/dist/api/api/users-api.d.ts.map +0 -1
  56. package/dist/api/api/users-api.js +0 -465
  57. package/dist/api/api/users-api.js.map +0 -1
  58. package/dist/api/api/workspaces-api.d.ts +0 -213
  59. package/dist/api/api/workspaces-api.d.ts.map +0 -1
  60. package/dist/api/api/workspaces-api.js +0 -424
  61. package/dist/api/api/workspaces-api.js.map +0 -1
  62. package/dist/api/api.d.ts +0 -22
  63. package/dist/api/api.d.ts.map +0 -1
  64. package/dist/api/api.js +0 -40
  65. package/dist/api/api.js.map +0 -1
  66. package/dist/api/base.d.ts +0 -43
  67. package/dist/api/base.d.ts.map +0 -1
  68. package/dist/api/base.js +0 -49
  69. package/dist/api/base.js.map +0 -1
  70. package/dist/api/common.d.ts +0 -29
  71. package/dist/api/common.d.ts.map +0 -1
  72. package/dist/api/common.js +0 -109
  73. package/dist/api/common.js.map +0 -1
  74. package/dist/api/configuration.d.ts +0 -99
  75. package/dist/api/configuration.d.ts.map +0 -1
  76. package/dist/api/configuration.js +0 -49
  77. package/dist/api/configuration.js.map +0 -1
  78. package/dist/api/index.d.ts +0 -15
  79. package/dist/api/index.d.ts.map +0 -1
  80. package/dist/api/index.js +0 -33
  81. package/dist/api/index.js.map +0 -1
  82. package/dist/api/models/api-v1-documents-chunked-uploads-id-cancel-delete200-response-data.d.ts +0 -19
  83. package/dist/api/models/api-v1-documents-chunked-uploads-id-cancel-delete200-response-data.d.ts.map +0 -1
  84. package/dist/api/models/api-v1-documents-chunked-uploads-id-cancel-delete200-response-data.js +0 -20
  85. package/dist/api/models/api-v1-documents-chunked-uploads-id-cancel-delete200-response-data.js.map +0 -1
  86. package/dist/api/models/api-v1-documents-chunked-uploads-id-cancel-delete200-response.d.ts +0 -17
  87. package/dist/api/models/api-v1-documents-chunked-uploads-id-cancel-delete200-response.d.ts.map +0 -1
  88. package/dist/api/models/api-v1-documents-chunked-uploads-id-cancel-delete200-response.js +0 -16
  89. package/dist/api/models/api-v1-documents-chunked-uploads-id-cancel-delete200-response.js.map +0 -1
  90. package/dist/api/models/api-v1-documents-chunked-uploads-id-cancel-delete422-response.d.ts +0 -16
  91. package/dist/api/models/api-v1-documents-chunked-uploads-id-cancel-delete422-response.d.ts.map +0 -1
  92. package/dist/api/models/api-v1-documents-chunked-uploads-id-cancel-delete422-response.js +0 -16
  93. package/dist/api/models/api-v1-documents-chunked-uploads-id-cancel-delete422-response.js.map +0 -1
  94. package/dist/api/models/api-v1-documents-chunked-uploads-id-chunks-chunk-number-patch200-response.d.ts +0 -17
  95. package/dist/api/models/api-v1-documents-chunked-uploads-id-chunks-chunk-number-patch200-response.d.ts.map +0 -1
  96. package/dist/api/models/api-v1-documents-chunked-uploads-id-chunks-chunk-number-patch200-response.js +0 -16
  97. package/dist/api/models/api-v1-documents-chunked-uploads-id-chunks-chunk-number-patch200-response.js.map +0 -1
  98. package/dist/api/models/api-v1-documents-chunked-uploads-id-chunks-chunk-number-patch400-response.d.ts +0 -16
  99. package/dist/api/models/api-v1-documents-chunked-uploads-id-chunks-chunk-number-patch400-response.d.ts.map +0 -1
  100. package/dist/api/models/api-v1-documents-chunked-uploads-id-chunks-chunk-number-patch400-response.js +0 -16
  101. package/dist/api/models/api-v1-documents-chunked-uploads-id-chunks-chunk-number-patch400-response.js.map +0 -1
  102. package/dist/api/models/api-v1-documents-chunked-uploads-id-chunks-chunk-number-patch410-response.d.ts +0 -16
  103. package/dist/api/models/api-v1-documents-chunked-uploads-id-chunks-chunk-number-patch410-response.d.ts.map +0 -1
  104. package/dist/api/models/api-v1-documents-chunked-uploads-id-chunks-chunk-number-patch410-response.js +0 -16
  105. package/dist/api/models/api-v1-documents-chunked-uploads-id-chunks-chunk-number-patch410-response.js.map +0 -1
  106. package/dist/api/models/api-v1-documents-chunked-uploads-id-chunks-chunk-number-patch422-response.d.ts +0 -16
  107. package/dist/api/models/api-v1-documents-chunked-uploads-id-chunks-chunk-number-patch422-response.d.ts.map +0 -1
  108. package/dist/api/models/api-v1-documents-chunked-uploads-id-chunks-chunk-number-patch422-response.js +0 -16
  109. package/dist/api/models/api-v1-documents-chunked-uploads-id-chunks-chunk-number-patch422-response.js.map +0 -1
  110. package/dist/api/models/api-v1-documents-chunked-uploads-id-complete-post200-response.d.ts +0 -17
  111. package/dist/api/models/api-v1-documents-chunked-uploads-id-complete-post200-response.d.ts.map +0 -1
  112. package/dist/api/models/api-v1-documents-chunked-uploads-id-complete-post200-response.js +0 -16
  113. package/dist/api/models/api-v1-documents-chunked-uploads-id-complete-post200-response.js.map +0 -1
  114. package/dist/api/models/api-v1-documents-chunked-uploads-id-complete-post422-response.d.ts +0 -16
  115. package/dist/api/models/api-v1-documents-chunked-uploads-id-complete-post422-response.d.ts.map +0 -1
  116. package/dist/api/models/api-v1-documents-chunked-uploads-id-complete-post422-response.js +0 -16
  117. package/dist/api/models/api-v1-documents-chunked-uploads-id-complete-post422-response.js.map +0 -1
  118. package/dist/api/models/api-v1-documents-chunked-uploads-id-status-get200-response.d.ts +0 -17
  119. package/dist/api/models/api-v1-documents-chunked-uploads-id-status-get200-response.d.ts.map +0 -1
  120. package/dist/api/models/api-v1-documents-chunked-uploads-id-status-get200-response.js +0 -16
  121. package/dist/api/models/api-v1-documents-chunked-uploads-id-status-get200-response.js.map +0 -1
  122. package/dist/api/models/api-v1-documents-chunked-uploads-id-status-get404-response.d.ts +0 -16
  123. package/dist/api/models/api-v1-documents-chunked-uploads-id-status-get404-response.d.ts.map +0 -1
  124. package/dist/api/models/api-v1-documents-chunked-uploads-id-status-get404-response.js +0 -16
  125. package/dist/api/models/api-v1-documents-chunked-uploads-id-status-get404-response.js.map +0 -1
  126. package/dist/api/models/api-v1-documents-chunked-uploads-post201-response.d.ts +0 -17
  127. package/dist/api/models/api-v1-documents-chunked-uploads-post201-response.d.ts.map +0 -1
  128. package/dist/api/models/api-v1-documents-chunked-uploads-post201-response.js +0 -16
  129. package/dist/api/models/api-v1-documents-chunked-uploads-post201-response.js.map +0 -1
  130. package/dist/api/models/api-v1-documents-documents-post-request1.d.ts +0 -34
  131. package/dist/api/models/api-v1-documents-documents-post-request1.d.ts.map +0 -1
  132. package/dist/api/models/api-v1-documents-documents-post-request1.js +0 -16
  133. package/dist/api/models/api-v1-documents-documents-post-request1.js.map +0 -1
  134. package/dist/api/models/api-v1-documents-documents-post201-response.d.ts +0 -17
  135. package/dist/api/models/api-v1-documents-documents-post201-response.d.ts.map +0 -1
  136. package/dist/api/models/api-v1-documents-documents-post201-response.js +0 -16
  137. package/dist/api/models/api-v1-documents-documents-post201-response.js.map +0 -1
  138. package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner-one-of.d.ts +0 -17
  139. package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner-one-of.d.ts.map +0 -1
  140. package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner-one-of.js +0 -16
  141. package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner-one-of.js.map +0 -1
  142. package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner-one-of1.d.ts +0 -17
  143. package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner-one-of1.d.ts.map +0 -1
  144. package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner-one-of1.js +0 -16
  145. package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner-one-of1.js.map +0 -1
  146. package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner.d.ts +0 -18
  147. package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner.d.ts.map +0 -1
  148. package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner.js +0 -16
  149. package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner.js.map +0 -1
  150. package/dist/api/models/api-v1-documents-folders-id-get200-response.d.ts +0 -17
  151. package/dist/api/models/api-v1-documents-folders-id-get200-response.d.ts.map +0 -1
  152. package/dist/api/models/api-v1-documents-folders-id-get200-response.js +0 -16
  153. package/dist/api/models/api-v1-documents-folders-id-get200-response.js.map +0 -1
  154. package/dist/api/models/bulk-upload-mutation.d.ts +0 -34
  155. package/dist/api/models/bulk-upload-mutation.d.ts.map +0 -1
  156. package/dist/api/models/bulk-upload-mutation.js +0 -16
  157. package/dist/api/models/bulk-upload-mutation.js.map +0 -1
  158. package/dist/api/models/bulk-upload.d.ts +0 -91
  159. package/dist/api/models/bulk-upload.d.ts.map +0 -1
  160. package/dist/api/models/bulk-upload.js +0 -23
  161. package/dist/api/models/bulk-upload.js.map +0 -1
  162. package/dist/api/models/chunked-upload-chunk-response.d.ts +0 -46
  163. package/dist/api/models/chunked-upload-chunk-response.d.ts.map +0 -1
  164. package/dist/api/models/chunked-upload-chunk-response.js +0 -21
  165. package/dist/api/models/chunked-upload-chunk-response.js.map +0 -1
  166. package/dist/api/models/chunked-upload-complete-request.d.ts +0 -21
  167. package/dist/api/models/chunked-upload-complete-request.d.ts.map +0 -1
  168. package/dist/api/models/chunked-upload-complete-request.js +0 -16
  169. package/dist/api/models/chunked-upload-complete-request.js.map +0 -1
  170. package/dist/api/models/chunked-upload-complete-response.d.ts +0 -37
  171. package/dist/api/models/chunked-upload-complete-response.d.ts.map +0 -1
  172. package/dist/api/models/chunked-upload-complete-response.js +0 -20
  173. package/dist/api/models/chunked-upload-complete-response.js.map +0 -1
  174. package/dist/api/models/chunked-upload-mutation.d.ts +0 -47
  175. package/dist/api/models/chunked-upload-mutation.d.ts.map +0 -1
  176. package/dist/api/models/chunked-upload-mutation.js +0 -16
  177. package/dist/api/models/chunked-upload-mutation.js.map +0 -1
  178. package/dist/api/models/chunked-upload-session-response.d.ts +0 -33
  179. package/dist/api/models/chunked-upload-session-response.d.ts.map +0 -1
  180. package/dist/api/models/chunked-upload-session-response.js +0 -16
  181. package/dist/api/models/chunked-upload-session-response.js.map +0 -1
  182. package/dist/api/models/chunked-upload-status-response.d.ts +0 -54
  183. package/dist/api/models/chunked-upload-status-response.d.ts.map +0 -1
  184. package/dist/api/models/chunked-upload-status-response.js +0 -25
  185. package/dist/api/models/chunked-upload-status-response.js.map +0 -1
  186. package/dist/api/models/chunked-upload.d.ts +0 -98
  187. package/dist/api/models/chunked-upload.d.ts.map +0 -1
  188. package/dist/api/models/chunked-upload.js +0 -25
  189. package/dist/api/models/chunked-upload.js.map +0 -1
  190. package/dist/api/models/contact-mutation.d.ts +0 -30
  191. package/dist/api/models/contact-mutation.d.ts.map +0 -1
  192. package/dist/api/models/contact-mutation.js +0 -16
  193. package/dist/api/models/contact-mutation.js.map +0 -1
  194. package/dist/api/models/contact.d.ts +0 -54
  195. package/dist/api/models/contact.d.ts.map +0 -1
  196. package/dist/api/models/contact.js +0 -16
  197. package/dist/api/models/contact.js.map +0 -1
  198. package/dist/api/models/document-document-type.d.ts +0 -19
  199. package/dist/api/models/document-document-type.d.ts.map +0 -1
  200. package/dist/api/models/document-document-type.js +0 -16
  201. package/dist/api/models/document-document-type.js.map +0 -1
  202. package/dist/api/models/document-domain.d.ts +0 -19
  203. package/dist/api/models/document-domain.d.ts.map +0 -1
  204. package/dist/api/models/document-domain.js +0 -16
  205. package/dist/api/models/document-domain.js.map +0 -1
  206. package/dist/api/models/document-folder.d.ts +0 -19
  207. package/dist/api/models/document-folder.d.ts.map +0 -1
  208. package/dist/api/models/document-folder.js +0 -16
  209. package/dist/api/models/document-folder.js.map +0 -1
  210. package/dist/api/models/document-mutation.d.ts +0 -50
  211. package/dist/api/models/document-mutation.d.ts.map +0 -1
  212. package/dist/api/models/document-mutation.js +0 -16
  213. package/dist/api/models/document-mutation.js.map +0 -1
  214. package/dist/api/models/document.d.ts +0 -73
  215. package/dist/api/models/document.d.ts.map +0 -1
  216. package/dist/api/models/document.js +0 -16
  217. package/dist/api/models/document.js.map +0 -1
  218. package/dist/api/models/folder-mutation.d.ts +0 -38
  219. package/dist/api/models/folder-mutation.d.ts.map +0 -1
  220. package/dist/api/models/folder-mutation.js +0 -16
  221. package/dist/api/models/folder-mutation.js.map +0 -1
  222. package/dist/api/models/folder-parent.d.ts +0 -19
  223. package/dist/api/models/folder-parent.d.ts.map +0 -1
  224. package/dist/api/models/folder-parent.js +0 -16
  225. package/dist/api/models/folder-parent.js.map +0 -1
  226. package/dist/api/models/folder.d.ts +0 -65
  227. package/dist/api/models/folder.d.ts.map +0 -1
  228. package/dist/api/models/folder.js +0 -16
  229. package/dist/api/models/folder.js.map +0 -1
  230. package/dist/api/models/group-mutation.d.ts +0 -26
  231. package/dist/api/models/group-mutation.d.ts.map +0 -1
  232. package/dist/api/models/group-mutation.js +0 -16
  233. package/dist/api/models/group-mutation.js.map +0 -1
  234. package/dist/api/models/group.d.ts +0 -38
  235. package/dist/api/models/group.d.ts.map +0 -1
  236. package/dist/api/models/group.js +0 -16
  237. package/dist/api/models/group.js.map +0 -1
  238. package/dist/api/models/index.d.ts +0 -55
  239. package/dist/api/models/index.d.ts.map +0 -1
  240. package/dist/api/models/index.js +0 -71
  241. package/dist/api/models/index.js.map +0 -1
  242. package/dist/api/models/model-error.d.ts +0 -26
  243. package/dist/api/models/model-error.d.ts.map +0 -1
  244. package/dist/api/models/model-error.js +0 -16
  245. package/dist/api/models/model-error.js.map +0 -1
  246. package/dist/api/models/oauth-revoke-post200-response.d.ts +0 -15
  247. package/dist/api/models/oauth-revoke-post200-response.d.ts.map +0 -1
  248. package/dist/api/models/oauth-revoke-post200-response.js +0 -16
  249. package/dist/api/models/oauth-revoke-post200-response.js.map +0 -1
  250. package/dist/api/models/permission-actor.d.ts +0 -20
  251. package/dist/api/models/permission-actor.d.ts.map +0 -1
  252. package/dist/api/models/permission-actor.js +0 -16
  253. package/dist/api/models/permission-actor.js.map +0 -1
  254. package/dist/api/models/permission-mutation.d.ts +0 -44
  255. package/dist/api/models/permission-mutation.d.ts.map +0 -1
  256. package/dist/api/models/permission-mutation.js +0 -22
  257. package/dist/api/models/permission-mutation.js.map +0 -1
  258. package/dist/api/models/permission-permissible.d.ts +0 -20
  259. package/dist/api/models/permission-permissible.d.ts.map +0 -1
  260. package/dist/api/models/permission-permissible.js +0 -16
  261. package/dist/api/models/permission-permissible.js.map +0 -1
  262. package/dist/api/models/permission.d.ts +0 -60
  263. package/dist/api/models/permission.d.ts.map +0 -1
  264. package/dist/api/models/permission.js +0 -22
  265. package/dist/api/models/permission.js.map +0 -1
  266. package/dist/api/models/token-response.d.ts +0 -41
  267. package/dist/api/models/token-response.d.ts.map +0 -1
  268. package/dist/api/models/token-response.js +0 -16
  269. package/dist/api/models/token-response.js.map +0 -1
  270. package/dist/api/models/user-mutation.d.ts +0 -45
  271. package/dist/api/models/user-mutation.d.ts.map +0 -1
  272. package/dist/api/models/user-mutation.js +0 -23
  273. package/dist/api/models/user-mutation.js.map +0 -1
  274. package/dist/api/models/user.d.ts +0 -61
  275. package/dist/api/models/user.d.ts.map +0 -1
  276. package/dist/api/models/user.js +0 -23
  277. package/dist/api/models/user.js.map +0 -1
  278. package/dist/api/models/workspace-mutation-settings-validation.d.ts +0 -26
  279. package/dist/api/models/workspace-mutation-settings-validation.d.ts.map +0 -1
  280. package/dist/api/models/workspace-mutation-settings-validation.js +0 -16
  281. package/dist/api/models/workspace-mutation-settings-validation.js.map +0 -1
  282. package/dist/api/models/workspace-mutation-settings.d.ts +0 -60
  283. package/dist/api/models/workspace-mutation-settings.d.ts.map +0 -1
  284. package/dist/api/models/workspace-mutation-settings.js +0 -16
  285. package/dist/api/models/workspace-mutation-settings.js.map +0 -1
  286. package/dist/api/models/workspace-mutation.d.ts +0 -44
  287. package/dist/api/models/workspace-mutation.d.ts.map +0 -1
  288. package/dist/api/models/workspace-mutation.js +0 -16
  289. package/dist/api/models/workspace-mutation.js.map +0 -1
  290. package/dist/api/models/workspace-settings-validation.d.ts +0 -26
  291. package/dist/api/models/workspace-settings-validation.d.ts.map +0 -1
  292. package/dist/api/models/workspace-settings-validation.js +0 -16
  293. package/dist/api/models/workspace-settings-validation.js.map +0 -1
  294. package/dist/api/models/workspace-settings.d.ts +0 -60
  295. package/dist/api/models/workspace-settings.d.ts.map +0 -1
  296. package/dist/api/models/workspace-settings.js +0 -16
  297. package/dist/api/models/workspace-settings.js.map +0 -1
  298. package/dist/api/models/workspace.d.ts +0 -62
  299. package/dist/api/models/workspace.d.ts.map +0 -1
  300. package/dist/api/models/workspace.js +0 -16
  301. package/dist/api/models/workspace.js.map +0 -1
  302. package/dist/api-client.d.ts +0 -19
  303. package/dist/api-client.d.ts.map +0 -1
  304. package/dist/api-client.js +0 -43
  305. package/dist/api-client.js.map +0 -1
  306. package/dist/cli/handlers/command-handlers.d.ts +0 -29
  307. package/dist/cli/handlers/command-handlers.d.ts.map +0 -1
  308. package/dist/cli/handlers/command-handlers.js +0 -261
  309. package/dist/cli/handlers/command-handlers.js.map +0 -1
  310. package/dist/cli/handlers/engine-handlers.d.ts +0 -15
  311. package/dist/cli/handlers/engine-handlers.d.ts.map +0 -1
  312. package/dist/cli/handlers/engine-handlers.js +0 -174
  313. package/dist/cli/handlers/engine-handlers.js.map +0 -1
  314. package/dist/cli/interactive.d.ts +0 -15
  315. package/dist/cli/interactive.d.ts.map +0 -1
  316. package/dist/cli/interactive.js +0 -234
  317. package/dist/cli/interactive.js.map +0 -1
  318. package/dist/cli.d.ts +0 -3
  319. package/dist/cli.d.ts.map +0 -1
  320. package/dist/cli.js +0 -203
  321. package/dist/cli.js.map +0 -1
  322. package/dist/commands/export-v2.d.ts +0 -45
  323. package/dist/commands/export-v2.d.ts.map +0 -1
  324. package/dist/commands/export-v2.js +0 -369
  325. package/dist/commands/export-v2.js.map +0 -1
  326. package/dist/commands/export.d.ts +0 -15
  327. package/dist/commands/export.d.ts.map +0 -1
  328. package/dist/commands/export.js +0 -188
  329. package/dist/commands/export.js.map +0 -1
  330. package/dist/commands/import-v2.d.ts +0 -32
  331. package/dist/commands/import-v2.d.ts.map +0 -1
  332. package/dist/commands/import-v2.js +0 -331
  333. package/dist/commands/import-v2.js.map +0 -1
  334. package/dist/commands/import.d.ts +0 -32
  335. package/dist/commands/import.d.ts.map +0 -1
  336. package/dist/commands/import.js +0 -315
  337. package/dist/commands/import.js.map +0 -1
  338. package/dist/index.d.ts +0 -31
  339. package/dist/index.d.ts.map +0 -1
  340. package/dist/index.js +0 -72
  341. package/dist/index.js.map +0 -1
  342. package/dist/plugins/alfresco/index.d.ts +0 -26
  343. package/dist/plugins/alfresco/index.d.ts.map +0 -1
  344. package/dist/plugins/alfresco/index.js +0 -405
  345. package/dist/plugins/alfresco/index.js.map +0 -1
  346. package/dist/plugins/alfresco/plugin.json +0 -12
  347. package/dist/plugins/aws-s3/index.d.ts +0 -23
  348. package/dist/plugins/aws-s3/index.d.ts.map +0 -1
  349. package/dist/plugins/aws-s3/index.js +0 -383
  350. package/dist/plugins/aws-s3/index.js.map +0 -1
  351. package/dist/plugins/aws-s3/plugin.json +0 -12
  352. package/dist/plugins/azure-blob/index.d.ts +0 -23
  353. package/dist/plugins/azure-blob/index.d.ts.map +0 -1
  354. package/dist/plugins/azure-blob/index.js +0 -340
  355. package/dist/plugins/azure-blob/index.js.map +0 -1
  356. package/dist/plugins/azure-blob/plugin.json +0 -12
  357. package/dist/plugins/box/index.d.ts +0 -26
  358. package/dist/plugins/box/index.d.ts.map +0 -1
  359. package/dist/plugins/box/index.js +0 -387
  360. package/dist/plugins/box/index.js.map +0 -1
  361. package/dist/plugins/box/plugin.json +0 -12
  362. package/dist/plugins/core/index.d.ts +0 -25
  363. package/dist/plugins/core/index.d.ts.map +0 -1
  364. package/dist/plugins/core/index.js +0 -400
  365. package/dist/plugins/core/index.js.map +0 -1
  366. package/dist/plugins/core/plugin.json +0 -26
  367. package/dist/plugins/dropbox/index.d.ts +0 -27
  368. package/dist/plugins/dropbox/index.d.ts.map +0 -1
  369. package/dist/plugins/dropbox/index.js +0 -375
  370. package/dist/plugins/dropbox/index.js.map +0 -1
  371. package/dist/plugins/dropbox/plugin.json +0 -12
  372. package/dist/plugins/filesystem/index.d.ts +0 -22
  373. package/dist/plugins/filesystem/index.d.ts.map +0 -1
  374. package/dist/plugins/filesystem/index.js +0 -306
  375. package/dist/plugins/filesystem/index.js.map +0 -1
  376. package/dist/plugins/filesystem/plugin.json +0 -12
  377. package/dist/plugins/googledrive/index.d.ts +0 -27
  378. package/dist/plugins/googledrive/index.d.ts.map +0 -1
  379. package/dist/plugins/googledrive/index.js +0 -383
  380. package/dist/plugins/googledrive/index.js.map +0 -1
  381. package/dist/plugins/googledrive/plugin.json +0 -12
  382. package/dist/plugins/nuxeo/index.d.ts +0 -24
  383. package/dist/plugins/nuxeo/index.d.ts.map +0 -1
  384. package/dist/plugins/nuxeo/index.js +0 -405
  385. package/dist/plugins/nuxeo/index.js.map +0 -1
  386. package/dist/plugins/nuxeo/plugin.json +0 -12
  387. package/dist/plugins/o365-mail/index.d.ts +0 -26
  388. package/dist/plugins/o365-mail/index.d.ts.map +0 -1
  389. package/dist/plugins/o365-mail/index.js +0 -392
  390. package/dist/plugins/o365-mail/index.js.map +0 -1
  391. package/dist/plugins/o365-mail/plugin.json +0 -8
  392. package/dist/plugins/onedrive/index.d.ts +0 -25
  393. package/dist/plugins/onedrive/index.d.ts.map +0 -1
  394. package/dist/plugins/onedrive/index.js +0 -362
  395. package/dist/plugins/onedrive/index.js.map +0 -1
  396. package/dist/plugins/onedrive/plugin.json +0 -12
  397. package/dist/plugins/opentext/index.d.ts +0 -26
  398. package/dist/plugins/opentext/index.d.ts.map +0 -1
  399. package/dist/plugins/opentext/index.js +0 -440
  400. package/dist/plugins/opentext/index.js.map +0 -1
  401. package/dist/plugins/opentext/plugin.json +0 -12
  402. package/dist/plugins/sharepoint/index.d.ts +0 -27
  403. package/dist/plugins/sharepoint/index.d.ts.map +0 -1
  404. package/dist/plugins/sharepoint/index.js +0 -397
  405. package/dist/plugins/sharepoint/index.js.map +0 -1
  406. package/dist/plugins/sharepoint/plugin.json +0 -12
  407. package/dist/services/chunked-uploader.d.ts +0 -83
  408. package/dist/services/chunked-uploader.d.ts.map +0 -1
  409. package/dist/services/chunked-uploader.js +0 -321
  410. package/dist/services/chunked-uploader.js.map +0 -1
  411. package/dist/services/hubdoc-api-v2.d.ts +0 -150
  412. package/dist/services/hubdoc-api-v2.d.ts.map +0 -1
  413. package/dist/services/hubdoc-api-v2.js +0 -418
  414. package/dist/services/hubdoc-api-v2.js.map +0 -1
  415. package/dist/services/hubdoc-api.d.ts +0 -43
  416. package/dist/services/hubdoc-api.d.ts.map +0 -1
  417. package/dist/services/hubdoc-api.js +0 -382
  418. package/dist/services/hubdoc-api.js.map +0 -1
  419. package/dist/services/hubdoc-client.d.ts +0 -246
  420. package/dist/services/hubdoc-client.d.ts.map +0 -1
  421. package/dist/services/hubdoc-client.js +0 -714
  422. package/dist/services/hubdoc-client.js.map +0 -1
  423. package/dist/services/hubdoc-export-service.d.ts +0 -90
  424. package/dist/services/hubdoc-export-service.d.ts.map +0 -1
  425. package/dist/services/hubdoc-export-service.js +0 -443
  426. package/dist/services/hubdoc-export-service.js.map +0 -1
  427. package/dist/services/hubdoc-export-v2.d.ts +0 -77
  428. package/dist/services/hubdoc-export-v2.d.ts.map +0 -1
  429. package/dist/services/hubdoc-export-v2.js +0 -329
  430. package/dist/services/hubdoc-export-v2.js.map +0 -1
  431. package/dist/services/hubdoc-export.d.ts +0 -17
  432. package/dist/services/hubdoc-export.d.ts.map +0 -1
  433. package/dist/services/hubdoc-export.js +0 -196
  434. package/dist/services/hubdoc-export.js.map +0 -1
  435. package/dist/services/hubdoc-import-service.d.ts +0 -64
  436. package/dist/services/hubdoc-import-service.d.ts.map +0 -1
  437. package/dist/services/hubdoc-import-service.js +0 -374
  438. package/dist/services/hubdoc-import-service.js.map +0 -1
  439. package/dist/services/oauth-token-service.d.ts +0 -74
  440. package/dist/services/oauth-token-service.d.ts.map +0 -1
  441. package/dist/services/oauth-token-service.js +0 -344
  442. package/dist/services/oauth-token-service.js.map +0 -1
  443. package/dist/services/permission-manager.d.ts +0 -42
  444. package/dist/services/permission-manager.d.ts.map +0 -1
  445. package/dist/services/permission-manager.js +0 -187
  446. package/dist/services/permission-manager.js.map +0 -1
  447. package/dist/services/plugin-import.d.ts +0 -64
  448. package/dist/services/plugin-import.d.ts.map +0 -1
  449. package/dist/services/plugin-import.js +0 -284
  450. package/dist/services/plugin-import.js.map +0 -1
  451. package/dist/services/plugin-manager.d.ts +0 -73
  452. package/dist/services/plugin-manager.d.ts.map +0 -1
  453. package/dist/services/plugin-manager.js +0 -306
  454. package/dist/services/plugin-manager.js.map +0 -1
  455. package/dist/src/types/plugins.d.ts +0 -111
  456. package/dist/src/types/plugins.d.ts.map +0 -1
  457. package/dist/src/types/plugins.js +0 -3
  458. package/dist/src/types/plugins.js.map +0 -1
  459. package/dist/src/utils/concurrent-processor.d.ts +0 -63
  460. package/dist/src/utils/concurrent-processor.d.ts.map +0 -1
  461. package/dist/src/utils/concurrent-processor.js +0 -240
  462. package/dist/src/utils/concurrent-processor.js.map +0 -1
  463. package/dist/src/utils/xml-metadata.d.ts +0 -47
  464. package/dist/src/utils/xml-metadata.d.ts.map +0 -1
  465. package/dist/src/utils/xml-metadata.js +0 -200
  466. package/dist/src/utils/xml-metadata.js.map +0 -1
  467. package/dist/test/hubdoc-api-test.d.ts +0 -8
  468. package/dist/test/hubdoc-api-test.d.ts.map +0 -1
  469. package/dist/test/hubdoc-api-test.js +0 -152
  470. package/dist/test/hubdoc-api-test.js.map +0 -1
  471. package/dist/types/export.d.ts +0 -44
  472. package/dist/types/export.d.ts.map +0 -1
  473. package/dist/types/export.js +0 -3
  474. package/dist/types/export.js.map +0 -1
  475. package/dist/types/index.d.ts +0 -77
  476. package/dist/types/index.d.ts.map +0 -1
  477. package/dist/types/index.js +0 -3
  478. package/dist/types/index.js.map +0 -1
  479. package/dist/types/plugins.d.ts +0 -111
  480. package/dist/types/plugins.d.ts.map +0 -1
  481. package/dist/types/plugins.js +0 -3
  482. package/dist/types/plugins.js.map +0 -1
  483. package/dist/utils/concurrent-processor.d.ts +0 -63
  484. package/dist/utils/concurrent-processor.d.ts.map +0 -1
  485. package/dist/utils/concurrent-processor.js +0 -240
  486. package/dist/utils/concurrent-processor.js.map +0 -1
  487. package/dist/utils/config.d.ts +0 -40
  488. package/dist/utils/config.d.ts.map +0 -1
  489. package/dist/utils/config.js +0 -249
  490. package/dist/utils/config.js.map +0 -1
  491. package/dist/utils/csv.d.ts +0 -90
  492. package/dist/utils/csv.d.ts.map +0 -1
  493. package/dist/utils/csv.js +0 -564
  494. package/dist/utils/csv.js.map +0 -1
  495. package/dist/utils/export-csv.d.ts +0 -14
  496. package/dist/utils/export-csv.d.ts.map +0 -1
  497. package/dist/utils/export-csv.js +0 -129
  498. package/dist/utils/export-csv.js.map +0 -1
  499. package/dist/utils/operation-logger.d.ts +0 -110
  500. package/dist/utils/operation-logger.d.ts.map +0 -1
  501. package/dist/utils/operation-logger.js +0 -226
  502. package/dist/utils/operation-logger.js.map +0 -1
  503. package/dist/utils/xml-metadata-generator.d.ts +0 -50
  504. package/dist/utils/xml-metadata-generator.d.ts.map +0 -1
  505. package/dist/utils/xml-metadata-generator.js +0 -162
  506. package/dist/utils/xml-metadata-generator.js.map +0 -1
  507. package/dist/utils/xml-metadata.d.ts +0 -47
  508. package/dist/utils/xml-metadata.d.ts.map +0 -1
  509. package/dist/utils/xml-metadata.js +0 -200
  510. package/dist/utils/xml-metadata.js.map +0 -1
@@ -1,714 +0,0 @@
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.HubDocClient = void 0;
7
- const axios_1 = __importDefault(require("axios"));
8
- const form_data_1 = __importDefault(require("form-data"));
9
- const fs_extra_1 = __importDefault(require("fs-extra"));
10
- const path_1 = __importDefault(require("path"));
11
- const chalk_1 = __importDefault(require("chalk"));
12
- /**
13
- * Complete HubDoc API Client with workspaces, folders, files, and pagination support
14
- */
15
- class HubDocClient {
16
- constructor(config) {
17
- this.config = config;
18
- const headers = {
19
- 'Accept': 'application/json'
20
- };
21
- // Set authentication headers based on auth type
22
- if (config.authType === 'oauth2' && config.clientId && config.clientSecret) {
23
- // OAuth2 Client Credentials
24
- const credentials = Buffer.from(`${config.clientId}:${config.clientSecret}`).toString('base64');
25
- headers['Authorization'] = `Basic ${credentials}`;
26
- }
27
- else if (config.token) {
28
- // Bearer token
29
- headers['Authorization'] = `Bearer ${config.token}`;
30
- }
31
- this.client = axios_1.default.create({
32
- baseURL: config.apiUrl,
33
- headers,
34
- timeout: 60000
35
- });
36
- // Request interceptor for debugging
37
- this.client.interceptors.request.use(request => {
38
- console.log(chalk_1.default.gray(`🔗 ${request.method?.toUpperCase()} ${request.url}`));
39
- return request;
40
- });
41
- // Response interceptor for error handling
42
- this.client.interceptors.response.use(response => response, error => {
43
- if (error.response) {
44
- console.error(chalk_1.default.red(`❌ API Error ${error.response.status}: ${error.response.data?.message || error.message}`));
45
- }
46
- else {
47
- console.error(chalk_1.default.red(`❌ Network Error: ${error.message}`));
48
- }
49
- return Promise.reject(error);
50
- });
51
- }
52
- /**
53
- * Test API connection and authentication
54
- */
55
- async testConnection() {
56
- try {
57
- const response = await this.client.get('/auth/me');
58
- console.log(chalk_1.default.green(`✅ Connected as: ${response.data.email || response.data.username || 'User'}`));
59
- return true;
60
- }
61
- catch (error) {
62
- console.error(chalk_1.default.red('❌ API connection failed:'), error.message);
63
- return false;
64
- }
65
- }
66
- /**
67
- * Login and get JWT token
68
- */
69
- async login(email, password) {
70
- try {
71
- const response = await axios_1.default.post(`${this.config.apiUrl}/auth/login`, {
72
- email,
73
- password
74
- });
75
- const token = response.data.token || response.data.access_token;
76
- if (!token) {
77
- throw new Error('No token received from login response');
78
- }
79
- // Update client headers with new token
80
- this.client.defaults.headers['Authorization'] = `Bearer ${token}`;
81
- console.log(chalk_1.default.green('✅ Login successful'));
82
- return token;
83
- }
84
- catch (error) {
85
- throw new Error(`Login failed: ${error.response?.data?.message || error.message}`);
86
- }
87
- }
88
- /**
89
- * OAuth2 Client Credentials flow
90
- */
91
- async authenticateOAuth2() {
92
- if (!this.config.clientId || !this.config.clientSecret) {
93
- throw new Error('OAuth2 credentials not provided');
94
- }
95
- try {
96
- const credentials = Buffer.from(`${this.config.clientId}:${this.config.clientSecret}`).toString('base64');
97
- const response = await axios_1.default.post(`${this.config.apiUrl}/oauth/token`, {
98
- grant_type: 'client_credentials'
99
- }, {
100
- headers: {
101
- 'Authorization': `Basic ${credentials}`,
102
- 'Content-Type': 'application/x-www-form-urlencoded'
103
- }
104
- });
105
- const token = response.data.access_token;
106
- if (!token) {
107
- throw new Error('No access token received from OAuth2 response');
108
- }
109
- // Update client headers with new token
110
- this.client.defaults.headers['Authorization'] = `Bearer ${token}`;
111
- console.log(chalk_1.default.green('✅ OAuth2 authentication successful'));
112
- return token;
113
- }
114
- catch (error) {
115
- throw new Error(`OAuth2 authentication failed: ${error.response?.data?.error_description || error.response?.data?.message || error.message}`);
116
- }
117
- }
118
- // ==================== WORKSPACES API ====================
119
- /**
120
- * Get all workspaces with pagination support
121
- */
122
- async getWorkspaces(params) {
123
- try {
124
- const queryParams = {};
125
- if (params?.page)
126
- queryParams.page = params.page;
127
- if (params?.limit)
128
- queryParams.limit = params.limit;
129
- if (params?.sort)
130
- queryParams.sort = params.sort;
131
- if (params?.order)
132
- queryParams.order = params.order;
133
- if (params?.domain)
134
- queryParams.domain = params.domain;
135
- const response = await this.client.get('/workspaces', { params: queryParams });
136
- return this.formatPaginatedResponse(response);
137
- }
138
- catch (error) {
139
- throw new Error(`Failed to fetch workspaces: ${error.message}`);
140
- }
141
- }
142
- /**
143
- * Get all workspaces (paginated iterator)
144
- */
145
- async getAllWorkspaces(domain) {
146
- const allWorkspaces = [];
147
- let currentPage = 1;
148
- let hasMore = true;
149
- while (hasMore) {
150
- const response = await this.getWorkspaces({
151
- page: currentPage,
152
- limit: 100,
153
- domain
154
- });
155
- allWorkspaces.push(...response.data);
156
- hasMore = response.pagination.has_next;
157
- currentPage++;
158
- console.log(chalk_1.default.gray(`📄 Loaded ${allWorkspaces.length} workspaces...`));
159
- }
160
- return allWorkspaces;
161
- }
162
- /**
163
- * Create a new workspace
164
- */
165
- async createWorkspace(request) {
166
- try {
167
- const response = await this.client.post('/workspaces', request);
168
- console.log(chalk_1.default.blue(`🏢 Created workspace: ${request.name}`));
169
- return response.data;
170
- }
171
- catch (error) {
172
- throw new Error(`Failed to create workspace "${request.name}": ${error.message}`);
173
- }
174
- }
175
- /**
176
- * Get workspace by ID
177
- */
178
- async getWorkspace(id) {
179
- try {
180
- const response = await this.client.get(`/workspaces/${id}`);
181
- return response.data;
182
- }
183
- catch (error) {
184
- throw new Error(`Failed to fetch workspace ${id}: ${error.message}`);
185
- }
186
- }
187
- /**
188
- * Find workspace by name and optionally domain
189
- */
190
- async findWorkspace(name, domain) {
191
- const workspaces = await this.getAllWorkspaces(domain);
192
- return workspaces.find(w => w.name === name && (!domain || w.domain === domain)) || null;
193
- }
194
- /**
195
- * Find or create workspace
196
- */
197
- async findOrCreateWorkspace(name, domain, permissions) {
198
- let workspace = await this.findWorkspace(name, domain);
199
- if (!workspace) {
200
- const request = {
201
- name,
202
- description: `Auto-created workspace for: ${name}`,
203
- domain
204
- };
205
- if (permissions) {
206
- request.permissions = this.convertPermissions(permissions);
207
- }
208
- workspace = await this.createWorkspace(request);
209
- }
210
- return workspace;
211
- }
212
- // ==================== FOLDERS API ====================
213
- /**
214
- * Get folders with pagination support
215
- */
216
- async getFolders(params) {
217
- try {
218
- const queryParams = {};
219
- if (params?.page)
220
- queryParams.page = params.page;
221
- if (params?.limit)
222
- queryParams.limit = params.limit;
223
- if (params?.sort)
224
- queryParams.sort = params.sort;
225
- if (params?.order)
226
- queryParams.order = params.order;
227
- if (params?.workspace_id)
228
- queryParams.workspace_id = params.workspace_id;
229
- if (params?.parent_id)
230
- queryParams.parent_id = params.parent_id;
231
- if (params?.domain)
232
- queryParams.domain = params.domain;
233
- const response = await this.client.get('/folders', { params: queryParams });
234
- return this.formatPaginatedResponse(response);
235
- }
236
- catch (error) {
237
- throw new Error(`Failed to fetch folders: ${error.message}`);
238
- }
239
- }
240
- /**
241
- * Get all folders (paginated iterator)
242
- */
243
- async getAllFolders(workspaceId, domain) {
244
- const allFolders = [];
245
- let currentPage = 1;
246
- let hasMore = true;
247
- while (hasMore) {
248
- const response = await this.getFolders({
249
- page: currentPage,
250
- limit: 100,
251
- workspace_id: workspaceId,
252
- domain
253
- });
254
- allFolders.push(...response.data);
255
- hasMore = response.pagination.has_next;
256
- currentPage++;
257
- console.log(chalk_1.default.gray(`📁 Loaded ${allFolders.length} folders...`));
258
- }
259
- return allFolders;
260
- }
261
- /**
262
- * Create a new folder
263
- */
264
- async createFolder(request) {
265
- try {
266
- const response = await this.client.post('/folders', request);
267
- console.log(chalk_1.default.blue(`📁 Created folder: ${request.name}`));
268
- return response.data;
269
- }
270
- catch (error) {
271
- throw new Error(`Failed to create folder "${request.name}": ${error.message}`);
272
- }
273
- }
274
- /**
275
- * Get folder by ID
276
- */
277
- async getFolder(id) {
278
- try {
279
- const response = await this.client.get(`/folders/${id}`);
280
- return response.data;
281
- }
282
- catch (error) {
283
- throw new Error(`Failed to fetch folder ${id}: ${error.message}`);
284
- }
285
- }
286
- /**
287
- * Find or create folder hierarchy
288
- */
289
- async findOrCreateFolderPath(folderPath, workspaceId, domain, permissions) {
290
- const pathParts = folderPath.split('/').filter(part => part.trim().length > 0);
291
- let parentId;
292
- let currentFolder;
293
- for (const folderName of pathParts) {
294
- const folders = await this.getAllFolders(workspaceId, domain);
295
- // Find existing folder
296
- currentFolder = folders.find(f => f.name === folderName &&
297
- f.parent_id === parentId &&
298
- (!workspaceId || f.workspace_id === workspaceId) &&
299
- (!domain || f.domain === domain));
300
- if (!currentFolder) {
301
- // Create new folder
302
- const request = {
303
- name: folderName,
304
- parent_id: parentId,
305
- workspace_id: workspaceId,
306
- domain
307
- };
308
- if (permissions) {
309
- request.permissions = this.convertPermissions(permissions);
310
- }
311
- currentFolder = await this.createFolder(request);
312
- }
313
- parentId = currentFolder.id;
314
- }
315
- if (!currentFolder) {
316
- throw new Error(`Failed to create folder path: ${folderPath}`);
317
- }
318
- return currentFolder;
319
- }
320
- // ==================== FILES API ====================
321
- /**
322
- * Get files with pagination support
323
- */
324
- async getFiles(params) {
325
- try {
326
- const queryParams = {};
327
- if (params?.page)
328
- queryParams.page = params.page;
329
- if (params?.limit)
330
- queryParams.limit = params.limit;
331
- if (params?.sort)
332
- queryParams.sort = params.sort;
333
- if (params?.order)
334
- queryParams.order = params.order;
335
- if (params?.folder_id)
336
- queryParams.folder_id = params.folder_id;
337
- if (params?.workspace_id)
338
- queryParams.workspace_id = params.workspace_id;
339
- if (params?.domain)
340
- queryParams.domain = params.domain;
341
- const response = await this.client.get('/files', { params: queryParams });
342
- return this.formatPaginatedResponse(response);
343
- }
344
- catch (error) {
345
- throw new Error(`Failed to fetch files: ${error.message}`);
346
- }
347
- }
348
- /**
349
- * Get all files (paginated iterator)
350
- */
351
- async getAllFiles(folderId, workspaceId, domain) {
352
- const allFiles = [];
353
- let currentPage = 1;
354
- let hasMore = true;
355
- while (hasMore) {
356
- const response = await this.getFiles({
357
- page: currentPage,
358
- limit: 100,
359
- folder_id: folderId,
360
- workspace_id: workspaceId,
361
- domain
362
- });
363
- allFiles.push(...response.data);
364
- hasMore = response.pagination.has_next;
365
- currentPage++;
366
- console.log(chalk_1.default.gray(`📄 Loaded ${allFiles.length} files...`));
367
- }
368
- return allFiles;
369
- }
370
- /**
371
- * Upload a file
372
- */
373
- async uploadFile(filePath, request) {
374
- if (!await fs_extra_1.default.pathExists(filePath)) {
375
- throw new Error(`File not found: ${filePath}`);
376
- }
377
- const formData = new form_data_1.default();
378
- const fileStream = fs_extra_1.default.createReadStream(filePath);
379
- const fileName = path_1.default.basename(filePath);
380
- const stats = await fs_extra_1.default.stat(filePath);
381
- formData.append('file', fileStream, {
382
- filename: fileName,
383
- contentType: this.getMimeType(filePath)
384
- });
385
- // Add optional parameters
386
- if (request.folder_id) {
387
- formData.append('folder_id', request.folder_id);
388
- }
389
- if (request.workspace_id) {
390
- formData.append('workspace_id', request.workspace_id);
391
- }
392
- if (request.domain) {
393
- formData.append('domain', request.domain);
394
- }
395
- if (request.metadata) {
396
- formData.append('metadata', JSON.stringify(request.metadata));
397
- }
398
- if (request.permissions) {
399
- formData.append('permissions', JSON.stringify(request.permissions));
400
- }
401
- try {
402
- const response = await this.client.post('/files', formData, {
403
- headers: {
404
- ...formData.getHeaders(),
405
- },
406
- maxContentLength: Infinity,
407
- maxBodyLength: Infinity
408
- });
409
- const file = response.data;
410
- console.log(chalk_1.default.green(`✅ Uploaded: ${fileName} (${this.formatFileSize(stats.size)})`));
411
- return file;
412
- }
413
- catch (error) {
414
- throw new Error(`Failed to upload file "${fileName}": ${error.response?.data?.message || error.message}`);
415
- }
416
- }
417
- /**
418
- * Get file by ID
419
- */
420
- async getFile(id) {
421
- try {
422
- const response = await this.client.get(`/files/${id}`);
423
- return response.data;
424
- }
425
- catch (error) {
426
- throw new Error(`Failed to fetch file ${id}: ${error.message}`);
427
- }
428
- }
429
- /**
430
- * Download a file
431
- */
432
- async downloadFile(id, targetPath) {
433
- try {
434
- // Create directory if it doesn't exist
435
- await fs_extra_1.default.ensureDir(path_1.default.dirname(targetPath));
436
- // Get download URL
437
- const response = await this.client.get(`/files/${id}/download`, {
438
- responseType: 'stream'
439
- });
440
- // Save to file
441
- const writer = fs_extra_1.default.createWriteStream(targetPath);
442
- response.data.pipe(writer);
443
- return new Promise((resolve, reject) => {
444
- writer.on('finish', resolve);
445
- writer.on('error', reject);
446
- });
447
- }
448
- catch (error) {
449
- throw new Error(`Failed to download file ${id}: ${error.message}`);
450
- }
451
- }
452
- // ==================== EXPORT METHODS ====================
453
- /**
454
- * Scan all accessible files and folders for export
455
- */
456
- async scanForExport(domain) {
457
- console.log(chalk_1.default.blue('🔍 Scanning workspaces, folders, and files...'));
458
- const exportItems = [];
459
- // Get all workspaces
460
- const workspaces = await this.getAllWorkspaces(domain);
461
- console.log(chalk_1.default.gray(`Found ${workspaces.length} workspaces`));
462
- for (const workspace of workspaces) {
463
- // Add workspace to export items
464
- exportItems.push({
465
- id: workspace.id,
466
- name: workspace.name,
467
- type: 'workspace',
468
- path: workspace.name,
469
- metadata: workspace.metadata
470
- });
471
- // Get folders in workspace
472
- const folders = await this.getAllFolders(workspace.id, domain);
473
- console.log(chalk_1.default.gray(`Found ${folders.length} folders in workspace "${workspace.name}"`));
474
- // Build folder hierarchy
475
- const folderMap = new Map();
476
- folders.forEach(folder => folderMap.set(folder.id, folder));
477
- for (const folder of folders) {
478
- const folderPath = this.buildFolderPath(folder, folderMap, workspace.name);
479
- exportItems.push({
480
- id: folder.id,
481
- name: folder.name,
482
- type: 'folder',
483
- parent_id: folder.parent_id,
484
- workspace_id: folder.workspace_id,
485
- path: folderPath,
486
- metadata: folder.metadata
487
- });
488
- // Get files in folder
489
- const files = await this.getAllFiles(folder.id, workspace.id, domain);
490
- console.log(chalk_1.default.gray(`Found ${files.length} files in folder "${folder.name}"`));
491
- for (const file of files) {
492
- exportItems.push({
493
- id: file.id,
494
- name: file.name,
495
- type: 'file',
496
- folder_id: file.folder_id,
497
- workspace_id: file.workspace_id,
498
- path: `${folderPath}/${file.name}`,
499
- size: file.size,
500
- metadata: file.metadata,
501
- download_url: `/files/${file.id}/download`
502
- });
503
- }
504
- }
505
- // Get files directly in workspace (not in folders)
506
- const directFiles = await this.getAllFiles(undefined, workspace.id, domain);
507
- console.log(chalk_1.default.gray(`Found ${directFiles.length} files directly in workspace "${workspace.name}"`));
508
- for (const file of directFiles) {
509
- if (!file.folder_id) { // Only files not already in folders
510
- exportItems.push({
511
- id: file.id,
512
- name: file.name,
513
- type: 'file',
514
- workspace_id: file.workspace_id,
515
- path: `${workspace.name}/${file.name}`,
516
- size: file.size,
517
- metadata: file.metadata,
518
- download_url: `/files/${file.id}/download`
519
- });
520
- }
521
- }
522
- }
523
- // Get files not in any workspace (if any)
524
- const orphanFiles = await this.getAllFiles(undefined, undefined, domain);
525
- const workspaceFiles = exportItems.filter(item => item.type === 'file').map(item => item.id);
526
- for (const file of orphanFiles) {
527
- if (!workspaceFiles.includes(file.id)) {
528
- exportItems.push({
529
- id: file.id,
530
- name: file.name,
531
- type: 'file',
532
- path: `Unorganized/${file.name}`,
533
- size: file.size,
534
- metadata: file.metadata,
535
- download_url: `/files/${file.id}/download`
536
- });
537
- }
538
- }
539
- console.log(chalk_1.default.green(`✅ Scan complete: ${exportItems.length} items found`));
540
- return exportItems;
541
- }
542
- // ==================== IMPORT METHODS ====================
543
- /**
544
- * Import document using mapping
545
- */
546
- async importDocument(mapping) {
547
- const result = {
548
- success: false,
549
- filePath: mapping.filePath
550
- };
551
- try {
552
- let workspaceId;
553
- let folderId;
554
- // Handle workspace
555
- if (mapping.workspace) {
556
- const workspace = await this.findOrCreateWorkspace(mapping.workspace, mapping.domain, mapping.permissions);
557
- workspaceId = workspace.id;
558
- }
559
- // Handle folder
560
- if (mapping.targetFolder) {
561
- const folder = await this.findOrCreateFolderPath(mapping.targetFolder, workspaceId, mapping.domain, mapping.permissions);
562
- folderId = folder.id;
563
- }
564
- // Prepare upload request
565
- const uploadRequest = {
566
- folder_id: folderId,
567
- workspace_id: workspaceId,
568
- domain: mapping.domain,
569
- metadata: mapping.metadata
570
- };
571
- if (mapping.permissions) {
572
- uploadRequest.permissions = this.convertPermissions(mapping.permissions);
573
- }
574
- // Upload file
575
- const file = await this.uploadFile(mapping.filePath, uploadRequest);
576
- result.success = true;
577
- result.document = file;
578
- const targetLocation = [
579
- mapping.workspace,
580
- mapping.targetFolder,
581
- path_1.default.basename(mapping.filePath)
582
- ].filter(Boolean).join(' → ');
583
- console.log(chalk_1.default.green(`✅ Imported: ${targetLocation}`));
584
- }
585
- catch (error) {
586
- result.error = error.message;
587
- console.error(chalk_1.default.red(`❌ Failed to import ${mapping.filePath}: ${error.message}`));
588
- }
589
- return result;
590
- }
591
- // ==================== SEARCH API ====================
592
- /**
593
- * Search across workspaces, folders, and files
594
- */
595
- async search(query, type, domain) {
596
- try {
597
- const params = { q: query };
598
- if (type)
599
- params.type = type;
600
- if (domain)
601
- params.domain = domain;
602
- const response = await this.client.get('/search', { params });
603
- return response.data;
604
- }
605
- catch (error) {
606
- throw new Error(`Search failed: ${error.message}`);
607
- }
608
- }
609
- // ==================== HELPER METHODS ====================
610
- /**
611
- * Format paginated response
612
- */
613
- formatPaginatedResponse(response) {
614
- // Handle different pagination response formats
615
- if (response.data.data && response.data.pagination) {
616
- return response.data;
617
- }
618
- else if (Array.isArray(response.data)) {
619
- // Fallback for non-paginated responses
620
- return {
621
- data: response.data,
622
- pagination: {
623
- current_page: 1,
624
- total_pages: 1,
625
- total_items: response.data.length,
626
- items_per_page: response.data.length,
627
- has_next: false,
628
- has_prev: false
629
- }
630
- };
631
- }
632
- else {
633
- throw new Error('Unexpected response format');
634
- }
635
- }
636
- /**
637
- * Build full folder path from hierarchy
638
- */
639
- buildFolderPath(folder, folderMap, workspaceName) {
640
- const path = [];
641
- let current = folder;
642
- while (current) {
643
- path.unshift(current.name);
644
- current = current.parent_id ? folderMap.get(current.parent_id) : undefined;
645
- }
646
- return `${workspaceName}/${path.join('/')}`;
647
- }
648
- /**
649
- * Convert DocumentMapping permissions to HubDoc API format
650
- */
651
- convertPermissions(permissions) {
652
- if (!permissions)
653
- return [];
654
- const result = [];
655
- if (permissions.read) {
656
- result.push({
657
- level: 'read',
658
- users: permissions.read.users || [],
659
- groups: permissions.read.groups || []
660
- });
661
- }
662
- if (permissions.write) {
663
- result.push({
664
- level: 'write',
665
- users: permissions.write.users || [],
666
- groups: permissions.write.groups || []
667
- });
668
- }
669
- return result;
670
- }
671
- /**
672
- * Get MIME type from file extension
673
- */
674
- getMimeType(filePath) {
675
- const ext = path_1.default.extname(filePath).toLowerCase();
676
- const mimeTypes = {
677
- '.pdf': 'application/pdf',
678
- '.doc': 'application/msword',
679
- '.docx': 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
680
- '.xls': 'application/vnd.ms-excel',
681
- '.xlsx': 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
682
- '.ppt': 'application/vnd.ms-powerpoint',
683
- '.pptx': 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
684
- '.txt': 'text/plain',
685
- '.csv': 'text/csv',
686
- '.json': 'application/json',
687
- '.xml': 'application/xml',
688
- '.jpg': 'image/jpeg',
689
- '.jpeg': 'image/jpeg',
690
- '.png': 'image/png',
691
- '.gif': 'image/gif',
692
- '.bmp': 'image/bmp',
693
- '.tiff': 'image/tiff',
694
- '.zip': 'application/zip',
695
- '.rar': 'application/vnd.rar'
696
- };
697
- return mimeTypes[ext] || 'application/octet-stream';
698
- }
699
- /**
700
- * Format file size for display
701
- */
702
- formatFileSize(bytes) {
703
- const units = ['B', 'KB', 'MB', 'GB'];
704
- let size = bytes;
705
- let unitIndex = 0;
706
- while (size >= 1024 && unitIndex < units.length - 1) {
707
- size /= 1024;
708
- unitIndex++;
709
- }
710
- return `${size.toFixed(1)} ${units[unitIndex]}`;
711
- }
712
- }
713
- exports.HubDocClient = HubDocClient;
714
- //# sourceMappingURL=hubdoc-client.js.map