@sinoia/hubdoc-tools 1.4.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (510) hide show
  1. package/README.md +147 -243
  2. package/cli.js +89749 -0
  3. package/docs/llm-usage.md +384 -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
package/README.md CHANGED
@@ -1,289 +1,245 @@
1
- # @sinoia/hubdoc-tools
1
+ # HubDoc Tools CLI
2
2
 
3
- 🚀 **Professional command-line tool for HubDoc document management**
3
+ Command-line tool for HubDoc document import/export with multi-source support and OAuth2 authentication.
4
4
 
5
- [![npm version](https://badge.fury.io/js/%40sinoia%2Fhubdoc-tools.svg)](https://www.npmjs.com/package/@sinoia/hubdoc-tools)
6
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
5
+ Two binaries are installed: `hubdoc-tool` (full name) and `hubdoc` (short
6
+ alias). Use `hubdoc` for one-shot CRUD operations and headless / agent
7
+ usage; `hubdoc-tool` keeps the legacy bulk import/export workflows.
7
8
 
8
- Outil CLI puissant pour l'import/export en masse de documents avec HubDoc. Importez depuis le système de fichiers local ou des sources cloud, exportez avec structures personnalisées et metadata XML.
9
+ ## LLM / Headless usage
9
10
 
10
- ---
11
+ Single-operation CRUD commands (`hubdoc workspaces|folders|files ...`) are
12
+ designed to be driven by LLMs and CI scripts: every subcommand accepts
13
+ `--json` (structured stdout, structured stderr errors, non-zero exit on
14
+ failure) and refuses to prompt when `--yes` is omitted in `--json` mode.
11
15
 
12
- ## 📦 Installation
16
+ See [`docs/llm-usage.md`](./docs/llm-usage.md) for the contract, a full
17
+ command reference, and a worked agent session example.
13
18
 
14
19
  ```bash
15
- # Installation globale (recommandé)
16
- npm install -g @sinoia/hubdoc-tools
17
-
18
- # Vérifier l'installation
19
- hubdoc-tool --version
20
+ hubdoc whoami --json
21
+ hubdoc workspaces ls --json | jq '.[].label'
22
+ hubdoc files upload ./report.pdf --folder=$FOLDER_ID --json
20
23
  ```
21
24
 
22
- ---
23
-
24
- ## ⚡ Quick Start
25
+ ## Installation
25
26
 
26
- ### 1. Configuration (30 secondes)
27
+ ### Global (NPM)
27
28
 
28
29
  ```bash
29
- # Définir les credentials OAuth2
30
- export HUBDOC_API_URL=https://rec.hubdoc.sinoia.cloud
31
- export HUBDOC_OAUTH_CLIENT_ID=your-client-id
32
- export HUBDOC_OAUTH_CLIENT_SECRET=your-client-secret
33
- export HUBDOC_OAUTH_SCOPES="read write"
30
+ npm install -g @sinoia/hubdoc-tools
31
+ hubdoc --version
34
32
  ```
35
33
 
36
- **L'authentification est ensuite 100% automatique !** ✨
37
-
38
- ### 2. Import Basique
34
+ ### Development
39
35
 
40
36
  ```bash
41
- # Import direct (préserve la structure)
42
- hubdoc-tool import --direct ./invoices
43
-
44
- # Ou avec mapping CSV
45
- hubdoc-tool generate-mapping ./documents
46
- hubdoc-tool import --mapping mapping.csv
37
+ # From monorepo root
38
+ npm install
39
+ npm run build:cli
40
+ npm run dev:cli -- --help
47
41
  ```
48
42
 
49
- ### 3. Export
43
+ ## Configuration
50
44
 
51
- ```bash
52
- # Générer mapping depuis HubDoc
53
- hubdoc-tool export --scan
45
+ ### OAuth2 (Automatic)
54
46
 
55
- # Exporter avec metadata XML
56
- hubdoc-tool export --mapping export-mapping.csv --generate-xml-metadata
47
+ ```bash
48
+ export HUBDOC_API_URL=https://your-instance.hubdoc.sinoia.cloud
49
+ export HUBDOC_OAUTH_CLIENT_ID=your-client-id
50
+ export HUBDOC_OAUTH_CLIENT_SECRET=your-client-secret
51
+ export HUBDOC_OAUTH_SCOPES="read write"
57
52
  ```
58
53
 
59
- ---
60
-
61
- ## 🎯 Fonctionnalités Clés
62
-
63
- ### Import
64
- - ✅ **Import direct** : Structure de dossiers préservée automatiquement
65
- - ✅ **Import avec mapping** : Contrôle précis via CSV
66
- - ✅ **Permissions** : Gestion read/write par utilisateur/groupe
67
- - ✅ **Metadata** : Format simplifié `key: value, parent.child: value`
68
- - ✅ **Sources multiples** : Local, OneDrive, Google Drive, AWS S3
69
-
70
- ### Export
71
- - ✅ **Scan automatique** : Génération du mapping depuis HubDoc
72
- - ✅ **Structure personnalisée** : Recréation de l'arborescence
73
- - ✅ **Metadata XML** : Fichiers `*_metadata.xml` générés automatiquement
74
- - ✅ **Filtrage** : Par projet, domaine, workspace
75
-
76
- ### Général
77
- - ✅ **OAuth2 automatique** : Zéro config manuelle, refresh automatique
78
- - ✅ **Mode interactif** : Assistant guidé étape par étape
79
- - ✅ **Validation** : Pré-validation des fichiers avant import
80
- - ✅ **Concurrent** : Import/export parallèle configurable
81
- - ✅ **Plugins** : Architecture extensible pour sources externes
82
-
83
- ---
84
-
85
- ## 📚 Documentation
54
+ Or create `.env` file with the same variables.
86
55
 
87
- | Sujet | Description |
88
- |-------|-------------|
89
- | **[Configuration](./docs/configuration.md)** | OAuth2, variables d'environnement, fichiers config |
90
- | **[Permissions](./docs/permissions.md)** | Format naturel : `users:r:email users:w:email | groups:Name` |
91
- | **[Metadata](./docs/metadata.md)** | Format simplifié : `key: value, parent.child: value` |
92
- | **[Exemples](./docs/examples.md)** | Cas d'usage, scripts, automatisation |
56
+ Authentication is automatic:
57
+ - First run opens browser for authorization
58
+ - Token saved to `.hubdoc-config.json`
59
+ - Auto-refresh before expiration
60
+ - No manual token management required
93
61
 
94
- ---
62
+ See [OAUTH_SETUP.md](./OAUTH_SETUP.md) for details.
95
63
 
96
- ## 🚀 Commandes Principales
64
+ ## Commands
97
65
 
98
66
  ### Import
99
67
 
68
+ #### Direct Import
100
69
  ```bash
101
- # Import direct (structure préservée)
70
+ # Preserves folder structure
102
71
  hubdoc-tool import --direct ./documents
72
+ ```
73
+
74
+ #### CSV Mapping Import
75
+ ```bash
76
+ # Generate mapping
77
+ hubdoc-tool generate-mapping ./documents
103
78
 
104
- # Import avec mapping CSV
79
+ # Edit mapping.csv, then import
105
80
  hubdoc-tool import --mapping mapping.csv
81
+ ```
106
82
 
107
- # Import depuis source externe
83
+ #### Plugin Import
84
+ ```bash
85
+ # From external source (OneDrive, S3, etc.)
108
86
  hubdoc-tool --engine onedrive import --source "/Shared Documents"
109
- hubdoc-tool --engine googledrive import --source "My Drive/Invoices"
110
- hubdoc-tool --engine s3 import --source "s3://bucket/docs"
111
-
112
- # Options
113
- --concurrent 5 # 5 jobs parallèles
114
- --skip-existing # Skip documents déjà importés
115
- --dry-run # Test sans importer
116
- --validate-all # Validation stricte avant import
87
+ hubdoc-tool --engine googledrive import --source "My Drive/Docs"
88
+ hubdoc-tool --engine s3 import --source "s3://bucket/path"
117
89
  ```
118
90
 
91
+ Options:
92
+ - `--concurrent N` - Parallel jobs (default: 3)
93
+ - `--skip-existing` - Skip already imported documents
94
+ - `--dry-run` - Validate without importing
95
+ - `--validate-all` - Strict validation
96
+
119
97
  ### Export
120
98
 
121
99
  ```bash
122
- # Générer mapping depuis HubDoc
100
+ # Scan HubDoc and generate mapping
123
101
  hubdoc-tool export --scan
124
102
 
125
- # Exporter selon mapping
103
+ # Export using mapping
126
104
  hubdoc-tool export --mapping export-mapping.csv
127
105
 
128
- # Export avec XML metadata
106
+ # Export with XML metadata
129
107
  hubdoc-tool export --generate-xml-metadata
130
108
 
131
- # Options
132
- --target ./output # Dossier de destination
133
- --concurrent 5 # 5 downloads parallèles
109
+ # Filters
110
+ hubdoc-tool export --scan --project "Project Name"
111
+ hubdoc-tool export --scan --domain "Domain Name"
134
112
  ```
135
113
 
136
- ### Mapping
114
+ See [EXPORT-DOCUMENTATION.md](./EXPORT-DOCUMENTATION.md) for details.
137
115
 
138
- ```bash
139
- # Générer mapping depuis dossier local
140
- hubdoc-tool generate-mapping ./documents
141
-
142
- # Générer avec sortie spécifique
143
- hubdoc-tool generate-mapping ./docs --output custom-mapping.csv
144
- ```
145
-
146
- ### Mode Interactif
116
+ ### Interactive Mode
147
117
 
148
118
  ```bash
149
- # Lancer l'assistant guidé
150
119
  hubdoc-tool --interactive
151
120
  hubdoc-tool -i
152
121
  ```
153
122
 
154
- ---
123
+ ## CSV Mapping Format
155
124
 
156
- ## 📋 Format CSV Mapping
157
-
158
- ### Structure Basique
125
+ ### Import Mapping
159
126
 
160
127
  ```csv
161
128
  File Path;Target Folder;Workspace;Metadata (key: value, parent.child: value);Permissions (users:r:email users:w:email | groups:Name);Auto Classify;Status;Error;Document ID;Bulk Upload ID
162
129
  ```
163
130
 
164
- ### Exemple Simple
165
-
131
+ Example:
166
132
  ```csv
167
- File Path;Target Folder;Workspace;Metadata (key: value, parent.child: value);Permissions (users:r:email users:w:email | groups:Name);Auto Classify;Status;Error;Document ID;Bulk Upload ID
168
- /invoices/inv-001.pdf;Factures/2024;Comptabilité;invoice_number: INV-001, amount: 1500;;true;pending;;;
169
- /contracts/c-a.pdf;Contrats;Juridique;type: service, duration: 24;users:r:legal@ex.com users:w:ceo@ex.com;false;pending;;;
133
+ /docs/invoice.pdf;Finance/Invoices;Accounting;invoice_number: INV-001, amount: 1500;users:john@ex.com | groups:Finance;true;pending;;;
170
134
  ```
171
135
 
172
- **Voir [Exemples](./docs/examples.md) pour plus de cas d'usage**
136
+ ### Export Mapping
173
137
 
174
- ---
175
-
176
- ## 🔐 Permissions (Format Naturel)
138
+ ```csv
139
+ Document ID,Document Name,Projects (project:folder|project:folder),Download URL,Target Path (editable),Metadata (JSON)
140
+ ```
177
141
 
178
- ### Format
142
+ ## Metadata Format
179
143
 
144
+ Simplified key-value format:
180
145
  ```
181
- users:email1,email2 | users:w:admin@ex.com | groups:Group Name | groups:w:Admin Group
146
+ key: value, parent.child: value
182
147
  ```
183
148
 
184
- ### Règles
185
-
186
- - **Sans suffixe** = READ par défaut : `users:john@ex.com | groups:Finance`
187
- - **:r** = READ explicite : `users:r:viewer@ex.com`
188
- - **:w** = WRITE : `users:w:editor@ex.com | groups:w:Admins`
189
- - **Espaces supportés** dans les noms de groupes : `groups:Senior Management`
190
-
191
- ### Exemples
192
-
193
- ```csv
194
- # Lecture seule
195
- users:john@ex.com,jane@ex.com | groups:All Staff
196
-
197
- # Mixte READ + WRITE
198
- users:viewer@ex.com | users:w:admin@ex.com | groups:Finance | groups:w:Direction
199
-
200
- # Groupes avec espaces et accents
201
- groups:Comptabilité France | groups:w:Présidence Direction
149
+ Examples:
150
+ ```
151
+ invoice_number: INV-001, amount: 1500
152
+ supplier.name: Acme, supplier.vat: FR123, amount: 2500
202
153
  ```
203
154
 
204
- **Voir [Documentation Permissions](./docs/permissions.md) pour détails complets**
205
-
206
- ---
207
-
208
- ## 📝 Metadata (Format Simplifié)
155
+ Types auto-detected: numbers, booleans, null.
209
156
 
210
- ### Format
157
+ ## Permissions Format
211
158
 
159
+ Natural format:
212
160
  ```
213
- key: value, parent.child: value
161
+ users:email1,email2 | users:w:admin@ex.com | groups:Group Name | groups:w:Admins
214
162
  ```
215
163
 
216
- ### Exemples
217
-
218
- ```csv
219
- # Simple
220
- invoice_number: INV-001, amount: 1500, paid: true
221
-
222
- # Objets imbriqués (notation point)
223
- supplier.name: Acme Corp, supplier.vat: FR123, amount: 2500
164
+ - No suffix = READ
165
+ - `:r` = READ explicit
166
+ - `:w` = WRITE
167
+ - Supports spaces in group names
224
168
 
225
- # Types auto-détectés
226
- year: 2024, amount: 1500.50, active: true, optional: null
169
+ Examples:
170
+ ```
171
+ users:viewer@ex.com | users:w:editor@ex.com | groups:Finance
172
+ groups:All Staff | groups:w:Management
227
173
  ```
228
174
 
229
- **Voir [Documentation Metadata](./docs/metadata.md) pour détails complets**
175
+ ## Plugins
230
176
 
231
- ---
177
+ Available plugins:
178
+ - **core** - Core DMS integration
179
+ - **o365-mail** - Office 365 Mail via Graph API
180
+ - **filesystem** - Local filesystem
181
+ - **onedrive** - Microsoft OneDrive
182
+ - **googledrive** - Google Drive
183
+ - **dropbox** - Dropbox
184
+ - **aws-s3** - Amazon S3
185
+ - **azure-blob** - Azure Blob Storage
186
+ - **sharepoint** - SharePoint
187
+ - **alfresco** - Alfresco ECM
188
+ - **nuxeo** - Nuxeo DMS
189
+ - **opentext** - OpenText
190
+ - **box** - Box.com
232
191
 
233
- ## 🔌 Plugins / Sources Externes
192
+ See [PLUGINS.md](./PLUGINS.md) for plugin development.
234
193
 
235
- ### OneDrive/SharePoint
194
+ ## Features
236
195
 
237
- ```bash
238
- export ONEDRIVE_CLIENT_ID=your-client-id
239
- export ONEDRIVE_CLIENT_SECRET=your-client-secret
240
- export ONEDRIVE_TENANT_ID=your-tenant-id
196
+ ### Import
197
+ - Direct import with folder structure preservation
198
+ - CSV mapping for precise control
199
+ - Multi-source support via plugins
200
+ - Permissions (read/write by user/group)
201
+ - Simplified metadata format
202
+ - Concurrent processing
203
+ - Dry-run validation
204
+ - Skip existing documents
205
+ - OAuth2 automatic authentication
241
206
 
242
- hubdoc-tool --engine onedrive import --source "/Shared Documents/Invoices"
243
- ```
207
+ ### Export
208
+ - Scan HubDoc to generate mapping
209
+ - Custom folder structure
210
+ - XML metadata generation
211
+ - Filters by project/domain
212
+ - Concurrent downloads
244
213
 
245
- ### Google Drive
214
+ ## Examples
246
215
 
216
+ ### Import from Local Filesystem
247
217
  ```bash
248
- export GOOGLE_DRIVE_CLIENT_ID=your-client-id
249
- export GOOGLE_DRIVE_CLIENT_SECRET=your-client-secret
250
- export GOOGLE_DRIVE_CREDENTIALS_PATH=./credentials.json
251
-
252
- hubdoc-tool --engine googledrive import --source "My Drive/Documents"
218
+ hubdoc-tool import --direct ./invoices --concurrent 5
253
219
  ```
254
220
 
255
- ### AWS S3
256
-
221
+ ### Import from OneDrive
257
222
  ```bash
258
- export AWS_ACCESS_KEY_ID=your-key
259
- export AWS_SECRET_ACCESS_KEY=your-secret
260
- export AWS_REGION=us-east-1
223
+ export ONEDRIVE_CLIENT_ID=your-id
224
+ export ONEDRIVE_CLIENT_SECRET=your-secret
225
+ export ONEDRIVE_TENANT_ID=your-tenant
261
226
 
262
- hubdoc-tool --engine s3 import --source "s3://my-bucket/documents/"
227
+ hubdoc-tool --engine onedrive import --source "/Shared Documents"
263
228
  ```
264
229
 
265
- **Voir [Exemples](./docs/examples.md) pour configuration détaillée**
266
-
267
- ---
268
-
269
- ## 🛠️ Développement
270
-
271
- ### Installation pour Développement
272
-
230
+ ### Export with Filters
273
231
  ```bash
274
- git clone https://github.com/your-org/hubdoc-tools.git
275
- cd hubdoc-tools
276
- npm install
277
- npm run build
232
+ hubdoc-tool export --scan --project "My Project" --domain "Finance"
233
+ hubdoc-tool export --mapping export.csv --output ./exports
278
234
  ```
279
235
 
280
- ### Tests
236
+ ## Testing
281
237
 
282
238
  ```bash
283
- # Tous les tests
284
- npm test
239
+ # From monorepo root
240
+ npm run test:cli
285
241
 
286
- # Tests spécifiques
242
+ # Specific tests
287
243
  npm test -- permissions
288
244
  npm test -- metadata
289
245
 
@@ -291,62 +247,10 @@ npm test -- metadata
291
247
  npm run test:coverage
292
248
  ```
293
249
 
294
- ### Build
295
-
296
- ```bash
297
- # Build TypeScript
298
- npm run build
299
-
300
- # Watch mode
301
- npm run dev
302
- ```
303
-
304
- ---
305
-
306
- ## 📖 Documentation Complète
307
-
308
- - **[Configuration Détaillée](./docs/configuration.md)** : OAuth2, env vars, troubleshooting
309
- - **[Système de Permissions](./docs/permissions.md)** : Format, exemples, cas d'usage
310
- - **[Gestion des Metadata](./docs/metadata.md)** : Format simplifié, objets imbriqués
311
- - **[Exemples Pratiques](./docs/examples.md)** : Scripts, automatisation, cron jobs
312
-
313
- ---
314
-
315
- ## 🤝 Support & Contributions
316
-
317
- ### Signaler un Bug
318
-
319
- [Ouvrir une issue](https://github.com/your-org/hubdoc-tools/issues)
320
-
321
- ### Proposer une Fonctionnalité
322
-
323
- [Créer une Feature Request](https://github.com/your-org/hubdoc-tools/issues/new?template=feature_request.md)
324
-
325
- ### Contribuer
326
-
327
- 1. Fork le repo
328
- 2. Créer une branche : `git checkout -b feature/amazing-feature`
329
- 3. Commit : `git commit -m 'Add amazing feature'`
330
- 4. Push : `git push origin feature/amazing-feature`
331
- 5. Ouvrir une Pull Request
332
-
333
- ---
334
-
335
- ## 📄 Licence
336
-
337
- MIT © [Sinoia]
338
-
339
- ---
340
-
341
- ## 🎯 Roadmap
250
+ ## Version
342
251
 
343
- - [ ] Support Azure Blob Storage
344
- - [ ] Support Dropbox
345
- - [ ] Interface Web (dashboard)
346
- - [ ] Webhooks pour import temps-réel
347
- - [ ] API REST pour intégrations
348
- - [ ] Support multi-tenant
252
+ 1.4.0
349
253
 
350
- ---
254
+ ## License
351
255
 
352
- **Made with ❤️ by Sinoia**
256
+ MIT