@sinoia/hubdoc-tools 1.3.10 → 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.
- package/README.md +147 -243
- package/cli.js +89268 -0
- package/docs/llm-usage.md +314 -0
- package/package.json +29 -100
- package/LICENSE +0 -21
- package/dist/__tests__/fixtures/plugins/connection-plugin/index.d.ts +0 -15
- package/dist/__tests__/fixtures/plugins/connection-plugin/index.d.ts.map +0 -1
- package/dist/__tests__/fixtures/plugins/connection-plugin/index.js +0 -37
- package/dist/__tests__/fixtures/plugins/connection-plugin/index.js.map +0 -1
- package/dist/__tests__/fixtures/plugins/scan-plugin/index.d.ts +0 -15
- package/dist/__tests__/fixtures/plugins/scan-plugin/index.d.ts.map +0 -1
- package/dist/__tests__/fixtures/plugins/scan-plugin/index.js +0 -54
- package/dist/__tests__/fixtures/plugins/scan-plugin/index.js.map +0 -1
- package/dist/__tests__/fixtures/plugins/test-plugin/index.d.ts +0 -15
- package/dist/__tests__/fixtures/plugins/test-plugin/index.d.ts.map +0 -1
- package/dist/__tests__/fixtures/plugins/test-plugin/index.js +0 -34
- package/dist/__tests__/fixtures/plugins/test-plugin/index.js.map +0 -1
- package/dist/__tests__/fixtures/plugins/workflow-plugin/index.d.ts +0 -16
- package/dist/__tests__/fixtures/plugins/workflow-plugin/index.d.ts.map +0 -1
- package/dist/__tests__/fixtures/plugins/workflow-plugin/index.js +0 -145
- package/dist/__tests__/fixtures/plugins/workflow-plugin/index.js.map +0 -1
- package/dist/api/api/authentication-api.d.ts +0 -208
- package/dist/api/api/authentication-api.d.ts.map +0 -1
- package/dist/api/api/authentication-api.js +0 -385
- package/dist/api/api/authentication-api.js.map +0 -1
- package/dist/api/api/bulk-uploads-api.d.ts +0 -101
- package/dist/api/api/bulk-uploads-api.d.ts.map +0 -1
- package/dist/api/api/bulk-uploads-api.js +0 -195
- package/dist/api/api/bulk-uploads-api.js.map +0 -1
- package/dist/api/api/chunked-uploads-api.d.ts +0 -214
- package/dist/api/api/chunked-uploads-api.d.ts.map +0 -1
- package/dist/api/api/chunked-uploads-api.js +0 -420
- package/dist/api/api/chunked-uploads-api.js.map +0 -1
- package/dist/api/api/contacts-api.d.ts +0 -246
- package/dist/api/api/contacts-api.d.ts.map +0 -1
- package/dist/api/api/contacts-api.js +0 -465
- package/dist/api/api/contacts-api.js.map +0 -1
- package/dist/api/api/documents-api.d.ts +0 -267
- package/dist/api/api/documents-api.d.ts.map +0 -1
- package/dist/api/api/documents-api.js +0 -506
- package/dist/api/api/documents-api.js.map +0 -1
- package/dist/api/api/folders-api.d.ts +0 -255
- package/dist/api/api/folders-api.d.ts.map +0 -1
- package/dist/api/api/folders-api.js +0 -479
- package/dist/api/api/folders-api.js.map +0 -1
- package/dist/api/api/groups-api.d.ts +0 -246
- package/dist/api/api/groups-api.d.ts.map +0 -1
- package/dist/api/api/groups-api.js +0 -465
- package/dist/api/api/groups-api.js.map +0 -1
- package/dist/api/api/permissions-api.d.ts +0 -246
- package/dist/api/api/permissions-api.d.ts.map +0 -1
- package/dist/api/api/permissions-api.js +0 -465
- package/dist/api/api/permissions-api.js.map +0 -1
- package/dist/api/api/users-api.d.ts +0 -246
- package/dist/api/api/users-api.d.ts.map +0 -1
- package/dist/api/api/users-api.js +0 -465
- package/dist/api/api/users-api.js.map +0 -1
- package/dist/api/api/workspaces-api.d.ts +0 -213
- package/dist/api/api/workspaces-api.d.ts.map +0 -1
- package/dist/api/api/workspaces-api.js +0 -424
- package/dist/api/api/workspaces-api.js.map +0 -1
- package/dist/api/api.d.ts +0 -22
- package/dist/api/api.d.ts.map +0 -1
- package/dist/api/api.js +0 -40
- package/dist/api/api.js.map +0 -1
- package/dist/api/base.d.ts +0 -43
- package/dist/api/base.d.ts.map +0 -1
- package/dist/api/base.js +0 -49
- package/dist/api/base.js.map +0 -1
- package/dist/api/common.d.ts +0 -29
- package/dist/api/common.d.ts.map +0 -1
- package/dist/api/common.js +0 -109
- package/dist/api/common.js.map +0 -1
- package/dist/api/configuration.d.ts +0 -99
- package/dist/api/configuration.d.ts.map +0 -1
- package/dist/api/configuration.js +0 -49
- package/dist/api/configuration.js.map +0 -1
- package/dist/api/index.d.ts +0 -15
- package/dist/api/index.d.ts.map +0 -1
- package/dist/api/index.js +0 -33
- package/dist/api/index.js.map +0 -1
- package/dist/api/models/api-v1-documents-chunked-uploads-id-cancel-delete200-response-data.d.ts +0 -19
- package/dist/api/models/api-v1-documents-chunked-uploads-id-cancel-delete200-response-data.d.ts.map +0 -1
- package/dist/api/models/api-v1-documents-chunked-uploads-id-cancel-delete200-response-data.js +0 -20
- package/dist/api/models/api-v1-documents-chunked-uploads-id-cancel-delete200-response-data.js.map +0 -1
- package/dist/api/models/api-v1-documents-chunked-uploads-id-cancel-delete200-response.d.ts +0 -17
- package/dist/api/models/api-v1-documents-chunked-uploads-id-cancel-delete200-response.d.ts.map +0 -1
- package/dist/api/models/api-v1-documents-chunked-uploads-id-cancel-delete200-response.js +0 -16
- package/dist/api/models/api-v1-documents-chunked-uploads-id-cancel-delete200-response.js.map +0 -1
- package/dist/api/models/api-v1-documents-chunked-uploads-id-cancel-delete422-response.d.ts +0 -16
- package/dist/api/models/api-v1-documents-chunked-uploads-id-cancel-delete422-response.d.ts.map +0 -1
- package/dist/api/models/api-v1-documents-chunked-uploads-id-cancel-delete422-response.js +0 -16
- package/dist/api/models/api-v1-documents-chunked-uploads-id-cancel-delete422-response.js.map +0 -1
- package/dist/api/models/api-v1-documents-chunked-uploads-id-chunks-chunk-number-patch200-response.d.ts +0 -17
- package/dist/api/models/api-v1-documents-chunked-uploads-id-chunks-chunk-number-patch200-response.d.ts.map +0 -1
- package/dist/api/models/api-v1-documents-chunked-uploads-id-chunks-chunk-number-patch200-response.js +0 -16
- package/dist/api/models/api-v1-documents-chunked-uploads-id-chunks-chunk-number-patch200-response.js.map +0 -1
- package/dist/api/models/api-v1-documents-chunked-uploads-id-chunks-chunk-number-patch400-response.d.ts +0 -16
- package/dist/api/models/api-v1-documents-chunked-uploads-id-chunks-chunk-number-patch400-response.d.ts.map +0 -1
- package/dist/api/models/api-v1-documents-chunked-uploads-id-chunks-chunk-number-patch400-response.js +0 -16
- package/dist/api/models/api-v1-documents-chunked-uploads-id-chunks-chunk-number-patch400-response.js.map +0 -1
- package/dist/api/models/api-v1-documents-chunked-uploads-id-chunks-chunk-number-patch410-response.d.ts +0 -16
- package/dist/api/models/api-v1-documents-chunked-uploads-id-chunks-chunk-number-patch410-response.d.ts.map +0 -1
- package/dist/api/models/api-v1-documents-chunked-uploads-id-chunks-chunk-number-patch410-response.js +0 -16
- package/dist/api/models/api-v1-documents-chunked-uploads-id-chunks-chunk-number-patch410-response.js.map +0 -1
- package/dist/api/models/api-v1-documents-chunked-uploads-id-chunks-chunk-number-patch422-response.d.ts +0 -16
- package/dist/api/models/api-v1-documents-chunked-uploads-id-chunks-chunk-number-patch422-response.d.ts.map +0 -1
- package/dist/api/models/api-v1-documents-chunked-uploads-id-chunks-chunk-number-patch422-response.js +0 -16
- package/dist/api/models/api-v1-documents-chunked-uploads-id-chunks-chunk-number-patch422-response.js.map +0 -1
- package/dist/api/models/api-v1-documents-chunked-uploads-id-complete-post200-response.d.ts +0 -17
- package/dist/api/models/api-v1-documents-chunked-uploads-id-complete-post200-response.d.ts.map +0 -1
- package/dist/api/models/api-v1-documents-chunked-uploads-id-complete-post200-response.js +0 -16
- package/dist/api/models/api-v1-documents-chunked-uploads-id-complete-post200-response.js.map +0 -1
- package/dist/api/models/api-v1-documents-chunked-uploads-id-complete-post422-response.d.ts +0 -16
- package/dist/api/models/api-v1-documents-chunked-uploads-id-complete-post422-response.d.ts.map +0 -1
- package/dist/api/models/api-v1-documents-chunked-uploads-id-complete-post422-response.js +0 -16
- package/dist/api/models/api-v1-documents-chunked-uploads-id-complete-post422-response.js.map +0 -1
- package/dist/api/models/api-v1-documents-chunked-uploads-id-status-get200-response.d.ts +0 -17
- package/dist/api/models/api-v1-documents-chunked-uploads-id-status-get200-response.d.ts.map +0 -1
- package/dist/api/models/api-v1-documents-chunked-uploads-id-status-get200-response.js +0 -16
- package/dist/api/models/api-v1-documents-chunked-uploads-id-status-get200-response.js.map +0 -1
- package/dist/api/models/api-v1-documents-chunked-uploads-id-status-get404-response.d.ts +0 -16
- package/dist/api/models/api-v1-documents-chunked-uploads-id-status-get404-response.d.ts.map +0 -1
- package/dist/api/models/api-v1-documents-chunked-uploads-id-status-get404-response.js +0 -16
- package/dist/api/models/api-v1-documents-chunked-uploads-id-status-get404-response.js.map +0 -1
- package/dist/api/models/api-v1-documents-chunked-uploads-post201-response.d.ts +0 -17
- package/dist/api/models/api-v1-documents-chunked-uploads-post201-response.d.ts.map +0 -1
- package/dist/api/models/api-v1-documents-chunked-uploads-post201-response.js +0 -16
- package/dist/api/models/api-v1-documents-chunked-uploads-post201-response.js.map +0 -1
- package/dist/api/models/api-v1-documents-documents-post-request1.d.ts +0 -34
- package/dist/api/models/api-v1-documents-documents-post-request1.d.ts.map +0 -1
- package/dist/api/models/api-v1-documents-documents-post-request1.js +0 -16
- package/dist/api/models/api-v1-documents-documents-post-request1.js.map +0 -1
- package/dist/api/models/api-v1-documents-documents-post201-response.d.ts +0 -17
- package/dist/api/models/api-v1-documents-documents-post201-response.d.ts.map +0 -1
- package/dist/api/models/api-v1-documents-documents-post201-response.js +0 -16
- package/dist/api/models/api-v1-documents-documents-post201-response.js.map +0 -1
- package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner-one-of.d.ts +0 -17
- package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner-one-of.d.ts.map +0 -1
- package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner-one-of.js +0 -16
- package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner-one-of.js.map +0 -1
- package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner-one-of1.d.ts +0 -17
- package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner-one-of1.d.ts.map +0 -1
- package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner-one-of1.js +0 -16
- package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner-one-of1.js.map +0 -1
- package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner.d.ts +0 -18
- package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner.d.ts.map +0 -1
- package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner.js +0 -16
- package/dist/api/models/api-v1-documents-folders-id-get200-response-all-of-items-inner.js.map +0 -1
- package/dist/api/models/api-v1-documents-folders-id-get200-response.d.ts +0 -17
- package/dist/api/models/api-v1-documents-folders-id-get200-response.d.ts.map +0 -1
- package/dist/api/models/api-v1-documents-folders-id-get200-response.js +0 -16
- package/dist/api/models/api-v1-documents-folders-id-get200-response.js.map +0 -1
- package/dist/api/models/bulk-upload-mutation.d.ts +0 -34
- package/dist/api/models/bulk-upload-mutation.d.ts.map +0 -1
- package/dist/api/models/bulk-upload-mutation.js +0 -16
- package/dist/api/models/bulk-upload-mutation.js.map +0 -1
- package/dist/api/models/bulk-upload.d.ts +0 -91
- package/dist/api/models/bulk-upload.d.ts.map +0 -1
- package/dist/api/models/bulk-upload.js +0 -23
- package/dist/api/models/bulk-upload.js.map +0 -1
- package/dist/api/models/chunked-upload-chunk-response.d.ts +0 -46
- package/dist/api/models/chunked-upload-chunk-response.d.ts.map +0 -1
- package/dist/api/models/chunked-upload-chunk-response.js +0 -21
- package/dist/api/models/chunked-upload-chunk-response.js.map +0 -1
- package/dist/api/models/chunked-upload-complete-request.d.ts +0 -21
- package/dist/api/models/chunked-upload-complete-request.d.ts.map +0 -1
- package/dist/api/models/chunked-upload-complete-request.js +0 -16
- package/dist/api/models/chunked-upload-complete-request.js.map +0 -1
- package/dist/api/models/chunked-upload-complete-response.d.ts +0 -37
- package/dist/api/models/chunked-upload-complete-response.d.ts.map +0 -1
- package/dist/api/models/chunked-upload-complete-response.js +0 -20
- package/dist/api/models/chunked-upload-complete-response.js.map +0 -1
- package/dist/api/models/chunked-upload-mutation.d.ts +0 -47
- package/dist/api/models/chunked-upload-mutation.d.ts.map +0 -1
- package/dist/api/models/chunked-upload-mutation.js +0 -16
- package/dist/api/models/chunked-upload-mutation.js.map +0 -1
- package/dist/api/models/chunked-upload-session-response.d.ts +0 -33
- package/dist/api/models/chunked-upload-session-response.d.ts.map +0 -1
- package/dist/api/models/chunked-upload-session-response.js +0 -16
- package/dist/api/models/chunked-upload-session-response.js.map +0 -1
- package/dist/api/models/chunked-upload-status-response.d.ts +0 -54
- package/dist/api/models/chunked-upload-status-response.d.ts.map +0 -1
- package/dist/api/models/chunked-upload-status-response.js +0 -25
- package/dist/api/models/chunked-upload-status-response.js.map +0 -1
- package/dist/api/models/chunked-upload.d.ts +0 -98
- package/dist/api/models/chunked-upload.d.ts.map +0 -1
- package/dist/api/models/chunked-upload.js +0 -25
- package/dist/api/models/chunked-upload.js.map +0 -1
- package/dist/api/models/contact-mutation.d.ts +0 -30
- package/dist/api/models/contact-mutation.d.ts.map +0 -1
- package/dist/api/models/contact-mutation.js +0 -16
- package/dist/api/models/contact-mutation.js.map +0 -1
- package/dist/api/models/contact.d.ts +0 -54
- package/dist/api/models/contact.d.ts.map +0 -1
- package/dist/api/models/contact.js +0 -16
- package/dist/api/models/contact.js.map +0 -1
- package/dist/api/models/document-document-type.d.ts +0 -19
- package/dist/api/models/document-document-type.d.ts.map +0 -1
- package/dist/api/models/document-document-type.js +0 -16
- package/dist/api/models/document-document-type.js.map +0 -1
- package/dist/api/models/document-domain.d.ts +0 -19
- package/dist/api/models/document-domain.d.ts.map +0 -1
- package/dist/api/models/document-domain.js +0 -16
- package/dist/api/models/document-domain.js.map +0 -1
- package/dist/api/models/document-folder.d.ts +0 -19
- package/dist/api/models/document-folder.d.ts.map +0 -1
- package/dist/api/models/document-folder.js +0 -16
- package/dist/api/models/document-folder.js.map +0 -1
- package/dist/api/models/document-mutation.d.ts +0 -50
- package/dist/api/models/document-mutation.d.ts.map +0 -1
- package/dist/api/models/document-mutation.js +0 -16
- package/dist/api/models/document-mutation.js.map +0 -1
- package/dist/api/models/document.d.ts +0 -73
- package/dist/api/models/document.d.ts.map +0 -1
- package/dist/api/models/document.js +0 -16
- package/dist/api/models/document.js.map +0 -1
- package/dist/api/models/folder-mutation.d.ts +0 -38
- package/dist/api/models/folder-mutation.d.ts.map +0 -1
- package/dist/api/models/folder-mutation.js +0 -16
- package/dist/api/models/folder-mutation.js.map +0 -1
- package/dist/api/models/folder-parent.d.ts +0 -19
- package/dist/api/models/folder-parent.d.ts.map +0 -1
- package/dist/api/models/folder-parent.js +0 -16
- package/dist/api/models/folder-parent.js.map +0 -1
- package/dist/api/models/folder.d.ts +0 -65
- package/dist/api/models/folder.d.ts.map +0 -1
- package/dist/api/models/folder.js +0 -16
- package/dist/api/models/folder.js.map +0 -1
- package/dist/api/models/group-mutation.d.ts +0 -26
- package/dist/api/models/group-mutation.d.ts.map +0 -1
- package/dist/api/models/group-mutation.js +0 -16
- package/dist/api/models/group-mutation.js.map +0 -1
- package/dist/api/models/group.d.ts +0 -38
- package/dist/api/models/group.d.ts.map +0 -1
- package/dist/api/models/group.js +0 -16
- package/dist/api/models/group.js.map +0 -1
- package/dist/api/models/index.d.ts +0 -55
- package/dist/api/models/index.d.ts.map +0 -1
- package/dist/api/models/index.js +0 -71
- package/dist/api/models/index.js.map +0 -1
- package/dist/api/models/model-error.d.ts +0 -26
- package/dist/api/models/model-error.d.ts.map +0 -1
- package/dist/api/models/model-error.js +0 -16
- package/dist/api/models/model-error.js.map +0 -1
- package/dist/api/models/oauth-revoke-post200-response.d.ts +0 -15
- package/dist/api/models/oauth-revoke-post200-response.d.ts.map +0 -1
- package/dist/api/models/oauth-revoke-post200-response.js +0 -16
- package/dist/api/models/oauth-revoke-post200-response.js.map +0 -1
- package/dist/api/models/permission-actor.d.ts +0 -20
- package/dist/api/models/permission-actor.d.ts.map +0 -1
- package/dist/api/models/permission-actor.js +0 -16
- package/dist/api/models/permission-actor.js.map +0 -1
- package/dist/api/models/permission-mutation.d.ts +0 -44
- package/dist/api/models/permission-mutation.d.ts.map +0 -1
- package/dist/api/models/permission-mutation.js +0 -22
- package/dist/api/models/permission-mutation.js.map +0 -1
- package/dist/api/models/permission-permissible.d.ts +0 -20
- package/dist/api/models/permission-permissible.d.ts.map +0 -1
- package/dist/api/models/permission-permissible.js +0 -16
- package/dist/api/models/permission-permissible.js.map +0 -1
- package/dist/api/models/permission.d.ts +0 -60
- package/dist/api/models/permission.d.ts.map +0 -1
- package/dist/api/models/permission.js +0 -22
- package/dist/api/models/permission.js.map +0 -1
- package/dist/api/models/token-response.d.ts +0 -41
- package/dist/api/models/token-response.d.ts.map +0 -1
- package/dist/api/models/token-response.js +0 -16
- package/dist/api/models/token-response.js.map +0 -1
- package/dist/api/models/user-mutation.d.ts +0 -45
- package/dist/api/models/user-mutation.d.ts.map +0 -1
- package/dist/api/models/user-mutation.js +0 -23
- package/dist/api/models/user-mutation.js.map +0 -1
- package/dist/api/models/user.d.ts +0 -61
- package/dist/api/models/user.d.ts.map +0 -1
- package/dist/api/models/user.js +0 -23
- package/dist/api/models/user.js.map +0 -1
- package/dist/api/models/workspace-mutation-settings-validation.d.ts +0 -26
- package/dist/api/models/workspace-mutation-settings-validation.d.ts.map +0 -1
- package/dist/api/models/workspace-mutation-settings-validation.js +0 -16
- package/dist/api/models/workspace-mutation-settings-validation.js.map +0 -1
- package/dist/api/models/workspace-mutation-settings.d.ts +0 -60
- package/dist/api/models/workspace-mutation-settings.d.ts.map +0 -1
- package/dist/api/models/workspace-mutation-settings.js +0 -16
- package/dist/api/models/workspace-mutation-settings.js.map +0 -1
- package/dist/api/models/workspace-mutation.d.ts +0 -44
- package/dist/api/models/workspace-mutation.d.ts.map +0 -1
- package/dist/api/models/workspace-mutation.js +0 -16
- package/dist/api/models/workspace-mutation.js.map +0 -1
- package/dist/api/models/workspace-settings-validation.d.ts +0 -26
- package/dist/api/models/workspace-settings-validation.d.ts.map +0 -1
- package/dist/api/models/workspace-settings-validation.js +0 -16
- package/dist/api/models/workspace-settings-validation.js.map +0 -1
- package/dist/api/models/workspace-settings.d.ts +0 -60
- package/dist/api/models/workspace-settings.d.ts.map +0 -1
- package/dist/api/models/workspace-settings.js +0 -16
- package/dist/api/models/workspace-settings.js.map +0 -1
- package/dist/api/models/workspace.d.ts +0 -62
- package/dist/api/models/workspace.d.ts.map +0 -1
- package/dist/api/models/workspace.js +0 -16
- package/dist/api/models/workspace.js.map +0 -1
- package/dist/api-client.d.ts +0 -19
- package/dist/api-client.d.ts.map +0 -1
- package/dist/api-client.js +0 -43
- package/dist/api-client.js.map +0 -1
- package/dist/cli/handlers/command-handlers.d.ts +0 -29
- package/dist/cli/handlers/command-handlers.d.ts.map +0 -1
- package/dist/cli/handlers/command-handlers.js +0 -261
- package/dist/cli/handlers/command-handlers.js.map +0 -1
- package/dist/cli/handlers/engine-handlers.d.ts +0 -15
- package/dist/cli/handlers/engine-handlers.d.ts.map +0 -1
- package/dist/cli/handlers/engine-handlers.js +0 -174
- package/dist/cli/handlers/engine-handlers.js.map +0 -1
- package/dist/cli/interactive.d.ts +0 -15
- package/dist/cli/interactive.d.ts.map +0 -1
- package/dist/cli/interactive.js +0 -234
- package/dist/cli/interactive.js.map +0 -1
- package/dist/cli.d.ts +0 -3
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -203
- package/dist/cli.js.map +0 -1
- package/dist/commands/export.d.ts +0 -15
- package/dist/commands/export.d.ts.map +0 -1
- package/dist/commands/export.js +0 -188
- package/dist/commands/export.js.map +0 -1
- package/dist/commands/import.d.ts +0 -32
- package/dist/commands/import.d.ts.map +0 -1
- package/dist/commands/import.js +0 -315
- package/dist/commands/import.js.map +0 -1
- package/dist/index.d.ts +0 -31
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -72
- package/dist/index.js.map +0 -1
- package/dist/plugins/alfresco/index.d.ts +0 -26
- package/dist/plugins/alfresco/index.d.ts.map +0 -1
- package/dist/plugins/alfresco/index.js +0 -405
- package/dist/plugins/alfresco/index.js.map +0 -1
- package/dist/plugins/alfresco/plugin.json +0 -12
- package/dist/plugins/aws-s3/index.d.ts +0 -23
- package/dist/plugins/aws-s3/index.d.ts.map +0 -1
- package/dist/plugins/aws-s3/index.js +0 -383
- package/dist/plugins/aws-s3/index.js.map +0 -1
- package/dist/plugins/aws-s3/plugin.json +0 -12
- package/dist/plugins/azure-blob/index.d.ts +0 -23
- package/dist/plugins/azure-blob/index.d.ts.map +0 -1
- package/dist/plugins/azure-blob/index.js +0 -340
- package/dist/plugins/azure-blob/index.js.map +0 -1
- package/dist/plugins/azure-blob/plugin.json +0 -12
- package/dist/plugins/box/index.d.ts +0 -26
- package/dist/plugins/box/index.d.ts.map +0 -1
- package/dist/plugins/box/index.js +0 -387
- package/dist/plugins/box/index.js.map +0 -1
- package/dist/plugins/box/plugin.json +0 -12
- package/dist/plugins/core/index.d.ts +0 -25
- package/dist/plugins/core/index.d.ts.map +0 -1
- package/dist/plugins/core/index.js +0 -400
- package/dist/plugins/core/index.js.map +0 -1
- package/dist/plugins/core/plugin.json +0 -26
- package/dist/plugins/dropbox/index.d.ts +0 -27
- package/dist/plugins/dropbox/index.d.ts.map +0 -1
- package/dist/plugins/dropbox/index.js +0 -375
- package/dist/plugins/dropbox/index.js.map +0 -1
- package/dist/plugins/dropbox/plugin.json +0 -12
- package/dist/plugins/filesystem/index.d.ts +0 -22
- package/dist/plugins/filesystem/index.d.ts.map +0 -1
- package/dist/plugins/filesystem/index.js +0 -306
- package/dist/plugins/filesystem/index.js.map +0 -1
- package/dist/plugins/filesystem/plugin.json +0 -12
- package/dist/plugins/googledrive/index.d.ts +0 -27
- package/dist/plugins/googledrive/index.d.ts.map +0 -1
- package/dist/plugins/googledrive/index.js +0 -383
- package/dist/plugins/googledrive/index.js.map +0 -1
- package/dist/plugins/googledrive/plugin.json +0 -12
- package/dist/plugins/nuxeo/index.d.ts +0 -24
- package/dist/plugins/nuxeo/index.d.ts.map +0 -1
- package/dist/plugins/nuxeo/index.js +0 -405
- package/dist/plugins/nuxeo/index.js.map +0 -1
- package/dist/plugins/nuxeo/plugin.json +0 -12
- package/dist/plugins/onedrive/index.d.ts +0 -25
- package/dist/plugins/onedrive/index.d.ts.map +0 -1
- package/dist/plugins/onedrive/index.js +0 -362
- package/dist/plugins/onedrive/index.js.map +0 -1
- package/dist/plugins/onedrive/plugin.json +0 -12
- package/dist/plugins/opentext/index.d.ts +0 -26
- package/dist/plugins/opentext/index.d.ts.map +0 -1
- package/dist/plugins/opentext/index.js +0 -440
- package/dist/plugins/opentext/index.js.map +0 -1
- package/dist/plugins/opentext/plugin.json +0 -12
- package/dist/plugins/sharepoint/index.d.ts +0 -27
- package/dist/plugins/sharepoint/index.d.ts.map +0 -1
- package/dist/plugins/sharepoint/index.js +0 -397
- package/dist/plugins/sharepoint/index.js.map +0 -1
- package/dist/plugins/sharepoint/plugin.json +0 -12
- package/dist/services/chunked-uploader.d.ts +0 -83
- package/dist/services/chunked-uploader.d.ts.map +0 -1
- package/dist/services/chunked-uploader.js +0 -321
- package/dist/services/chunked-uploader.js.map +0 -1
- package/dist/services/hubdoc-api.d.ts +0 -43
- package/dist/services/hubdoc-api.d.ts.map +0 -1
- package/dist/services/hubdoc-api.js +0 -382
- package/dist/services/hubdoc-api.js.map +0 -1
- package/dist/services/hubdoc-export.d.ts +0 -17
- package/dist/services/hubdoc-export.d.ts.map +0 -1
- package/dist/services/hubdoc-export.js +0 -196
- package/dist/services/hubdoc-export.js.map +0 -1
- package/dist/services/oauth-token-service.d.ts +0 -74
- package/dist/services/oauth-token-service.d.ts.map +0 -1
- package/dist/services/oauth-token-service.js +0 -344
- package/dist/services/oauth-token-service.js.map +0 -1
- package/dist/services/permission-manager.d.ts +0 -42
- package/dist/services/permission-manager.d.ts.map +0 -1
- package/dist/services/permission-manager.js +0 -187
- package/dist/services/permission-manager.js.map +0 -1
- package/dist/services/plugin-import.d.ts +0 -64
- package/dist/services/plugin-import.d.ts.map +0 -1
- package/dist/services/plugin-import.js +0 -284
- package/dist/services/plugin-import.js.map +0 -1
- package/dist/services/plugin-manager.d.ts +0 -73
- package/dist/services/plugin-manager.d.ts.map +0 -1
- package/dist/services/plugin-manager.js +0 -306
- package/dist/services/plugin-manager.js.map +0 -1
- package/dist/src/types/plugins.d.ts +0 -111
- package/dist/src/types/plugins.d.ts.map +0 -1
- package/dist/src/types/plugins.js +0 -3
- package/dist/src/types/plugins.js.map +0 -1
- package/dist/src/utils/concurrent-processor.d.ts +0 -63
- package/dist/src/utils/concurrent-processor.d.ts.map +0 -1
- package/dist/src/utils/concurrent-processor.js +0 -240
- package/dist/src/utils/concurrent-processor.js.map +0 -1
- package/dist/src/utils/xml-metadata.d.ts +0 -47
- package/dist/src/utils/xml-metadata.d.ts.map +0 -1
- package/dist/src/utils/xml-metadata.js +0 -200
- package/dist/src/utils/xml-metadata.js.map +0 -1
- package/dist/types/export.d.ts +0 -44
- package/dist/types/export.d.ts.map +0 -1
- package/dist/types/export.js +0 -3
- package/dist/types/export.js.map +0 -1
- package/dist/types/index.d.ts +0 -77
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js +0 -3
- package/dist/types/index.js.map +0 -1
- package/dist/types/plugins.d.ts +0 -111
- package/dist/types/plugins.d.ts.map +0 -1
- package/dist/types/plugins.js +0 -3
- package/dist/types/plugins.js.map +0 -1
- package/dist/utils/concurrent-processor.d.ts +0 -63
- package/dist/utils/concurrent-processor.d.ts.map +0 -1
- package/dist/utils/concurrent-processor.js +0 -240
- package/dist/utils/concurrent-processor.js.map +0 -1
- package/dist/utils/config.d.ts +0 -40
- package/dist/utils/config.d.ts.map +0 -1
- package/dist/utils/config.js +0 -249
- package/dist/utils/config.js.map +0 -1
- package/dist/utils/csv.d.ts +0 -90
- package/dist/utils/csv.d.ts.map +0 -1
- package/dist/utils/csv.js +0 -564
- package/dist/utils/csv.js.map +0 -1
- package/dist/utils/export-csv.d.ts +0 -14
- package/dist/utils/export-csv.d.ts.map +0 -1
- package/dist/utils/export-csv.js +0 -129
- package/dist/utils/export-csv.js.map +0 -1
- package/dist/utils/operation-logger.d.ts +0 -110
- package/dist/utils/operation-logger.d.ts.map +0 -1
- package/dist/utils/operation-logger.js +0 -226
- package/dist/utils/operation-logger.js.map +0 -1
- package/dist/utils/xml-metadata-generator.d.ts +0 -50
- package/dist/utils/xml-metadata-generator.d.ts.map +0 -1
- package/dist/utils/xml-metadata-generator.js +0 -162
- package/dist/utils/xml-metadata-generator.js.map +0 -1
- package/dist/utils/xml-metadata.d.ts +0 -47
- package/dist/utils/xml-metadata.d.ts.map +0 -1
- package/dist/utils/xml-metadata.js +0 -200
- package/dist/utils/xml-metadata.js.map +0 -1
|
@@ -0,0 +1,314 @@
|
|
|
1
|
+
# `hubdoc` — LLM / Headless usage guide
|
|
2
|
+
|
|
3
|
+
This guide is written for autonomous agents (Claude, Corex IA agents, CI
|
|
4
|
+
scripts) that need to drive HubDoc from a shell without human assistance.
|
|
5
|
+
|
|
6
|
+
The MVP-A surface (workspaces, folders, files), plus search (MVP-B) and
|
|
7
|
+
the Markdown/Typst editorial pipeline (composed-documents/parts/templates,
|
|
8
|
+
MVP-D), are fully non-interactive when you pass `--json` and (for
|
|
9
|
+
destructive ops) `--yes`.
|
|
10
|
+
|
|
11
|
+
> The `hubdoc` and `hubdoc-tool` binaries are aliases of the same program.
|
|
12
|
+
> Use `hubdoc` in agent scripts — it is shorter and easier on tokens.
|
|
13
|
+
|
|
14
|
+
## Contract
|
|
15
|
+
|
|
16
|
+
Every LLM-friendly subcommand obeys the same rules. An agent can rely on
|
|
17
|
+
these without reading the per-command documentation:
|
|
18
|
+
|
|
19
|
+
| Concern | Behavior |
|
|
20
|
+
| ---------------------- | ------------------------------------------------------------------------- |
|
|
21
|
+
| Stdout in `--json` mode| One parseable JSON value (object, array, or `{ ok, message, data }`) |
|
|
22
|
+
| Stderr | Reserved for errors and progress notes |
|
|
23
|
+
| Exit code | `0` on success, `1` on any failure |
|
|
24
|
+
| Error shape (`--json`) | `{ "error": "...", "code": "unauthorized\|forbidden\|not_found\|...", "details": {...} }` |
|
|
25
|
+
| Destructive ops | Refuse to run in `--json` mode unless `--yes` is passed (no prompts) |
|
|
26
|
+
| Informational notes | Suppressed in `--json` mode so stdout stays parseable |
|
|
27
|
+
|
|
28
|
+
Error `code` values currently emitted:
|
|
29
|
+
|
|
30
|
+
- `unauthorized` (HTTP 401)
|
|
31
|
+
- `forbidden` (HTTP 403)
|
|
32
|
+
- `not_found` (HTTP 404)
|
|
33
|
+
- `unprocessable_entity` (HTTP 422)
|
|
34
|
+
- `http_<status>` for any other HTTP error
|
|
35
|
+
- Node error codes (e.g. `ECONNREFUSED`) when the request never reached HubDoc
|
|
36
|
+
|
|
37
|
+
## Authentication
|
|
38
|
+
|
|
39
|
+
The bearer token is a Doorkeeper access token. Two ways to obtain one:
|
|
40
|
+
|
|
41
|
+
- **Personal Access Token (recommended)** — long-lived, manage from
|
|
42
|
+
HubDoc UI → *Profile › Personal Access Tokens*. Create, copy the
|
|
43
|
+
one-time plaintext value, revoke from the same page. Shipped in
|
|
44
|
+
corex#416. Shortcut: `hubdoc token open` launches the page in your
|
|
45
|
+
default browser.
|
|
46
|
+
- **OAuth Authorization Code flow** — the legacy interactive wizard
|
|
47
|
+
(`hubdoc-tool` without args) still works.
|
|
48
|
+
|
|
49
|
+
Three places the CLI looks for the token, in priority order:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
# 1) Environment variable — highest priority. Best for ephemeral / CI use.
|
|
53
|
+
export HUBDOC_API_TOKEN=hubdoc_pat_xxx...
|
|
54
|
+
export HUBDOC_API_URL=https://rec.hubdoc.sinoia.cloud
|
|
55
|
+
|
|
56
|
+
# 2) OS keychain (Keychain.app / libsecret / Windows Credential Vault).
|
|
57
|
+
# --keychain stores via keytar (optional dep; Linux needs libsecret-1-dev).
|
|
58
|
+
hubdoc token set hubdoc_pat_xxx... --keychain --api-url=https://rec.hubdoc.sinoia.cloud
|
|
59
|
+
|
|
60
|
+
# 3) Plaintext config file. `token set` writes to ~/.hubdoc-config.json
|
|
61
|
+
# by default so the token is reachable from any cwd.
|
|
62
|
+
hubdoc token set hubdoc_pat_xxx... --api-url=https://rec.hubdoc.sinoia.cloud
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Resolution chain (per request): **env → keychain → config**. `hubdoc whoami`
|
|
66
|
+
reports which source served the current token via the `tokenSource` field
|
|
67
|
+
(`env` / `keychain` / `config`).
|
|
68
|
+
|
|
69
|
+
Config file resolution: `~/.hubdoc-config.json` is read by default
|
|
70
|
+
(works from any cwd). If a `<cwd>/.hubdoc-config.json` also exists, it
|
|
71
|
+
overrides the global one — useful for project-specific overrides.
|
|
72
|
+
|
|
73
|
+
On Linux, `keytar` requires `libsecret-1-dev` (Debian/Ubuntu) or
|
|
74
|
+
`libsecret-devel` (Fedora). Headless CI containers usually lack it — that's
|
|
75
|
+
fine, just use the env var path there. If keytar fails to load, the CLI
|
|
76
|
+
still works for env / config tokens; only `--keychain` becomes unavailable
|
|
77
|
+
(with a clear error pointing this out).
|
|
78
|
+
|
|
79
|
+
### Verifying auth
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
hubdoc whoami --json
|
|
83
|
+
# → { "email": "...", "scopes": "read write", "tokenSource": "keychain", ... }
|
|
84
|
+
# (when /api/v1/me ships, augmented with the resolved tokenSource)
|
|
85
|
+
# → { "authenticated": true, "tokenSource": "env", "subject": "...", ... }
|
|
86
|
+
# (fallback: token verified by listing workspaces + JWT decode)
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
A non-zero exit + `code: "unauthorized"` means the token is bad. Always run
|
|
90
|
+
`whoami` once at the start of an agent session — it's the cheapest check and
|
|
91
|
+
gives you the auth identity for logs/audits.
|
|
92
|
+
|
|
93
|
+
## Command reference (MVP-A)
|
|
94
|
+
|
|
95
|
+
### Workspaces
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
hubdoc workspaces ls --json
|
|
99
|
+
hubdoc workspaces show <id> --json
|
|
100
|
+
hubdoc workspaces create --name="Projet X" [--description="..."] [--icon=...] [--color=...] [--metadata='{"k":"v"}'] --json
|
|
101
|
+
hubdoc workspaces update <id> [--name=...] [--description=...] [--icon=...] [--color=...] [--metadata='...'] --json
|
|
102
|
+
hubdoc workspaces delete <id> --yes --json
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Note: the API field is `label`. The CLI accepts `--name` for ergonomic
|
|
106
|
+
consistency with folders/files and maps it to `label` on the wire.
|
|
107
|
+
|
|
108
|
+
### Folders
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
hubdoc folders ls [--workspace=ID] [--parent=ID] [--page=N] [--per-page=N] [--sort=...] --json
|
|
112
|
+
hubdoc folders show <id> --json
|
|
113
|
+
hubdoc folders create --workspace=ID --name="..." [--parent=ID] [--description=...] [--icon=...] [--color=...] --json
|
|
114
|
+
hubdoc folders rename <id> --name="..." --json # alias for: update <id> --name=
|
|
115
|
+
hubdoc folders move <id> --to=PARENT_ID --json # alias for: update <id> --parent=
|
|
116
|
+
hubdoc folders update <id> [--name=...] [--description=...] [--icon=...] [--color=...] [--parent=...] [--workspace=...] --json
|
|
117
|
+
hubdoc folders delete <id> --yes --json
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### Files (documents)
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
hubdoc files ls [--folder=ID] [--workspace=ID] [--limit=N] [--page=N] --json
|
|
124
|
+
hubdoc files show <id> --json
|
|
125
|
+
hubdoc files upload <local-path> [--folder=ID | --workspace=ID] [--name="..."] [--metadata='{...}'] [--auto-classify] [--chunked] --json
|
|
126
|
+
hubdoc files download <id> [--to=PATH] --json
|
|
127
|
+
hubdoc files rename <id> --name="..." --json
|
|
128
|
+
hubdoc files move <id> --to=FOLDER_ID --json
|
|
129
|
+
hubdoc files update <id> [--name=...] [--description=...] [--folder=...] [--workspace=...] [--metadata='...'] --json
|
|
130
|
+
hubdoc files delete <id> --yes --json
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
Upload routing: files ≥ 50 MB (or `--chunked`) go through the
|
|
134
|
+
`ChunkedUploadsApi` (init session → upload chunks → complete + finalize).
|
|
135
|
+
Smaller files use a single `multipart/form-data` POST.
|
|
136
|
+
|
|
137
|
+
## Example agent session
|
|
138
|
+
|
|
139
|
+
A worked example: find all PDFs in a workspace, download the first one,
|
|
140
|
+
rename it, then move it to an "archive" folder.
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
# 0) Verify auth.
|
|
144
|
+
hubdoc whoami --json | jq -e '.authenticated // .email' >/dev/null
|
|
145
|
+
|
|
146
|
+
# 1) Pick the target workspace by name.
|
|
147
|
+
WS_ID=$(hubdoc workspaces ls --json | jq -r '.[] | select(.label=="Projet X") | .id')
|
|
148
|
+
|
|
149
|
+
# 2) Find PDF documents under that workspace.
|
|
150
|
+
PDFS=$(hubdoc files ls --workspace="$WS_ID" --limit=200 --json \
|
|
151
|
+
| jq '[.[] | select(.name | endswith(".pdf"))]')
|
|
152
|
+
COUNT=$(echo "$PDFS" | jq 'length')
|
|
153
|
+
echo "Found $COUNT PDFs"
|
|
154
|
+
|
|
155
|
+
# 3) Download the first one.
|
|
156
|
+
DOC_ID=$(echo "$PDFS" | jq -r '.[0].id')
|
|
157
|
+
hubdoc files download "$DOC_ID" --to=./out.pdf --json
|
|
158
|
+
|
|
159
|
+
# 4) Rename it server-side.
|
|
160
|
+
hubdoc files rename "$DOC_ID" --name="archive-$(date +%Y%m%d).pdf" --json
|
|
161
|
+
|
|
162
|
+
# 5) Make sure the archive folder exists, then move the file under it.
|
|
163
|
+
ARCHIVE_ID=$(hubdoc folders ls --workspace="$WS_ID" --json \
|
|
164
|
+
| jq -r '.[] | select(.name=="Archive") | .id')
|
|
165
|
+
if [ -z "$ARCHIVE_ID" ]; then
|
|
166
|
+
ARCHIVE_ID=$(hubdoc folders create --workspace="$WS_ID" --name="Archive" --json \
|
|
167
|
+
| jq -r '.data.id')
|
|
168
|
+
fi
|
|
169
|
+
hubdoc files move "$DOC_ID" --to="$ARCHIVE_ID" --json
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
Notice the pattern an agent should follow:
|
|
173
|
+
|
|
174
|
+
1. `--json` on every command so output is parseable.
|
|
175
|
+
2. Use `jq -e` to fail fast (non-zero exit on jq predicate failure).
|
|
176
|
+
3. Capture IDs to variables; never re-list when you already know an ID.
|
|
177
|
+
4. Always pass `--yes` for any `delete` in non-interactive mode.
|
|
178
|
+
|
|
179
|
+
## Error handling
|
|
180
|
+
|
|
181
|
+
When a command fails with `--json`, stderr contains a JSON object and the
|
|
182
|
+
process exits non-zero. A robust agent pattern:
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
if ! out=$(hubdoc files show "$ID" --json 2>err.json); then
|
|
186
|
+
case "$(jq -r .code < err.json)" in
|
|
187
|
+
not_found) echo "Doc $ID does not exist, recreating…" ;;
|
|
188
|
+
unauthorized) echo "Token expired, refreshing…"; exit 2 ;;
|
|
189
|
+
*) echo "Unexpected error:"; cat err.json; exit 1 ;;
|
|
190
|
+
esac
|
|
191
|
+
fi
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
### Composed documents (MVP-D)
|
|
195
|
+
|
|
196
|
+
The Markdown/Typst editorial pipeline. A composed document is built from a
|
|
197
|
+
template, has zero-or-more editable parts, and produces a PDF on `export`.
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
hubdoc templates ls --json # discover available templates
|
|
201
|
+
hubdoc templates show <key> --json # see default_parts + page_settings
|
|
202
|
+
|
|
203
|
+
hubdoc composed-documents ls [--workspace=ID] [--folder=ID] [--status=STATUS] --json
|
|
204
|
+
hubdoc composed-documents show <id> --json
|
|
205
|
+
hubdoc composed-documents create --template=KEY --name="..." \
|
|
206
|
+
[--description=...] [--variables='{"k":"v"}'] [--workspace=ID] [--folder=ID] --json
|
|
207
|
+
hubdoc composed-documents update <id> [--name=...] [--description=...] \
|
|
208
|
+
[--variables='...'] [--page-settings='...'] [--metadata='...'] --json
|
|
209
|
+
hubdoc composed-documents delete <id> --yes --json
|
|
210
|
+
hubdoc composed-documents export <id> --json # compile → attaches PDF, returns file_id
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
Short alias: `hubdoc composed ...`.
|
|
214
|
+
|
|
215
|
+
### Parts (MVP-D)
|
|
216
|
+
|
|
217
|
+
Parts live under one composed document — every part subcommand requires
|
|
218
|
+
`--composed-document=ID`.
|
|
219
|
+
|
|
220
|
+
```bash
|
|
221
|
+
hubdoc parts ls --composed-document=CD --json
|
|
222
|
+
hubdoc parts show <id> --composed-document=CD --json
|
|
223
|
+
hubdoc parts update <id> --composed-document=CD \
|
|
224
|
+
[--content="markdown..." | --content-file=part.md] \
|
|
225
|
+
[--status=...] [--title=...] [--part-type=...] [--bsize=...] [--page-break] [--alignment=...] --json
|
|
226
|
+
hubdoc parts delete <id> --composed-document=CD --yes --json
|
|
227
|
+
hubdoc parts reorder --composed-document=CD --order=ID1,ID2,ID3 --json
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
For long Markdown/Typst blobs, `--content-file=path.md` reads the file
|
|
231
|
+
from disk — much friendlier than escaping a multi-paragraph string on
|
|
232
|
+
the command line.
|
|
233
|
+
|
|
234
|
+
#### End-to-end edition example
|
|
235
|
+
|
|
236
|
+
```bash
|
|
237
|
+
# 1) Discover what's editable.
|
|
238
|
+
TPL=$(hubdoc templates ls --json | jq -r '.[] | select(.key=="invoice") | .key')
|
|
239
|
+
|
|
240
|
+
# 2) Spawn a composed document from the template.
|
|
241
|
+
CD=$(hubdoc composed-documents create \
|
|
242
|
+
--template="$TPL" --name="Invoice 042" \
|
|
243
|
+
--variables='{"client":"Acme","amount":1500}' \
|
|
244
|
+
--workspace="$WS" --json | jq -r '.data.id')
|
|
245
|
+
|
|
246
|
+
# 3) Edit one of its parts from a local Markdown file.
|
|
247
|
+
PART=$(hubdoc parts ls --composed-document="$CD" --json | jq -r '.[0].id')
|
|
248
|
+
hubdoc parts update "$PART" --composed-document="$CD" --content-file=./intro.md --status=ready --json
|
|
249
|
+
|
|
250
|
+
# 4) Reorder a couple of parts.
|
|
251
|
+
hubdoc parts reorder --composed-document="$CD" --order="$PART_INTRO,$PART_BODY,$PART_CONCLUSION" --json
|
|
252
|
+
|
|
253
|
+
# 5) Compile and grab the resulting PDF.
|
|
254
|
+
FILE_ID=$(hubdoc composed-documents export "$CD" --json | jq -r '.data.file_id')
|
|
255
|
+
hubdoc files download "$FILE_ID" --to=./invoice-042.pdf --json
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
### Search (MVP-B)
|
|
259
|
+
|
|
260
|
+
```bash
|
|
261
|
+
hubdoc search "<query>" [--entity-type=files|folders|workspaces] [--workspace=ID] [--limit=N] --json
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
Wraps the same hybrid search (FTS + semantic + RRF fusion) as the
|
|
265
|
+
advanced search UI, scoped to entities the user can access. Server caps
|
|
266
|
+
`--limit` at 100; default is 25.
|
|
267
|
+
|
|
268
|
+
Response shape (passed through unchanged in `--json` mode):
|
|
269
|
+
|
|
270
|
+
```json
|
|
271
|
+
{
|
|
272
|
+
"results": [
|
|
273
|
+
{
|
|
274
|
+
"entity_type": "Documents::File",
|
|
275
|
+
"entity_id": "...",
|
|
276
|
+
"name": "facture-edf.pdf",
|
|
277
|
+
"page_number": 2,
|
|
278
|
+
"excerpt": "first 300 chars of matching content",
|
|
279
|
+
"score": 0.852,
|
|
280
|
+
"source": "text|semantic|hybrid",
|
|
281
|
+
"updated_at": "2026-05-18T15:00:00Z",
|
|
282
|
+
"workspace_id": "...",
|
|
283
|
+
"folder_id": "..."
|
|
284
|
+
}
|
|
285
|
+
],
|
|
286
|
+
"total": 7,
|
|
287
|
+
"limit": 25
|
|
288
|
+
}
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
Errors: `{"error": "q is required", "code": "http_400"}` if the query is
|
|
292
|
+
empty (caught client-side too, before any HTTP call).
|
|
293
|
+
|
|
294
|
+
## Out of scope (planned)
|
|
295
|
+
|
|
296
|
+
- `hubdoc templates create|update|delete` — depends on corex#417 backend
|
|
297
|
+
extension (the controller is read-only today). The CLI will follow once
|
|
298
|
+
the API is in place.
|
|
299
|
+
- `hubdoc permissions ...` — to be scoped if/when demand confirms.
|
|
300
|
+
- JSON-API for PAT management (`hubdoc auth tokens ls/revoke`) — the
|
|
301
|
+
Corex PAT controller is Inertia/web-only today.
|
|
302
|
+
- `/api/v1/me` — not yet shipped; `whoami` falls back to JWT decode.
|
|
303
|
+
- `/api/v1/documents/documents/:id/blob` — not yet shipped; `files
|
|
304
|
+
download` falls back to `download_url` if the document carries one.
|
|
305
|
+
|
|
306
|
+
## Output mode selection
|
|
307
|
+
|
|
308
|
+
| Flag | Stdout | Stderr | Confirmation prompts |
|
|
309
|
+
| -------------- | ---------------------------- | ----------------- | -------------------- |
|
|
310
|
+
| (none) | Pretty tables, color, hints | Errors (`❌ ...`) | Yes (inquirer) |
|
|
311
|
+
| `--json` | Single JSON value | JSON error object | **Refused**: pass `--yes` |
|
|
312
|
+
|
|
313
|
+
Mix and match safely: `--json` can sit on a single command or be promoted
|
|
314
|
+
to a global default via `hubdoc --json <subcommand> ...`.
|
package/package.json
CHANGED
|
@@ -1,119 +1,48 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sinoia/hubdoc-tools",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.1",
|
|
4
4
|
"description": "Professional command-line tool for HubDoc document management and bulk import/export",
|
|
5
|
-
"main": "
|
|
6
|
-
"types": "dist/index.d.ts",
|
|
5
|
+
"main": "cli.js",
|
|
7
6
|
"bin": {
|
|
8
|
-
"hubdoc
|
|
7
|
+
"hubdoc": "./cli.js",
|
|
8
|
+
"hubdoc-tool": "./cli.js"
|
|
9
9
|
},
|
|
10
10
|
"files": [
|
|
11
|
-
"
|
|
11
|
+
"cli.js",
|
|
12
12
|
"README.md",
|
|
13
|
-
"
|
|
13
|
+
"docs/"
|
|
14
14
|
],
|
|
15
|
-
"exports": {
|
|
16
|
-
".": {
|
|
17
|
-
"types": "./dist/index.d.ts",
|
|
18
|
-
"require": "./dist/index.js",
|
|
19
|
-
"import": "./dist/index.js"
|
|
20
|
-
},
|
|
21
|
-
"./plugins/*": {
|
|
22
|
-
"types": "./dist/plugins/*/index.d.ts",
|
|
23
|
-
"require": "./dist/plugins/*/index.js",
|
|
24
|
-
"import": "./dist/plugins/*/index.js"
|
|
25
|
-
},
|
|
26
|
-
"./api/*": {
|
|
27
|
-
"types": "./dist/api/*.d.ts",
|
|
28
|
-
"require": "./dist/api/*.js",
|
|
29
|
-
"import": "./dist/api/*.js"
|
|
30
|
-
},
|
|
31
|
-
"./package.json": "./package.json"
|
|
32
|
-
},
|
|
33
|
-
"scripts": {
|
|
34
|
-
"build": "npm run build:main && npm run build:plugins && npm run fix:aliases",
|
|
35
|
-
"fix:aliases": "node scripts/fix-aliases.js",
|
|
36
|
-
"build:main": "tsc --project tsconfig.main.json && tsc-alias -p tsconfig.main.json",
|
|
37
|
-
"build:plugins": "tsc --project tsconfig.plugins.json && tsc-alias -p tsconfig.plugins.json && npm run copy:plugin-manifests",
|
|
38
|
-
"copy:plugin-manifests": "for dir in plugins/*/; do name=$(basename \"$dir\"); [ -f \"$dir/plugin.json\" ] && mkdir -p \"dist/plugins/$name\" && cp \"$dir/plugin.json\" \"dist/plugins/$name/\" || true; done",
|
|
39
|
-
"dev": "ts-node -r tsconfig-paths/register src/cli.ts",
|
|
40
|
-
"start": "node dist/cli.js",
|
|
41
|
-
"test": "jest",
|
|
42
|
-
"test:watch": "jest --watch",
|
|
43
|
-
"test:coverage": "jest --coverage",
|
|
44
|
-
"typecheck": "tsc --noEmit",
|
|
45
|
-
"test-api": "ts-node -r tsconfig-paths/register src/test/hubdoc-api-test.ts",
|
|
46
|
-
"test-connectors": "node test-engine-integration.js",
|
|
47
|
-
"test-box": "node test-box.js",
|
|
48
|
-
"test-s3": "node test-s3.js",
|
|
49
|
-
"test-azure": "node test-azure-blob.js",
|
|
50
|
-
"test-all": "node test-all-connectors.js",
|
|
51
|
-
"pkg": "pkg dist/cli.js --targets node18-win-x64 --output build/hubdoc-tool-windows.exe",
|
|
52
|
-
"pkg:all": "pkg dist/cli.js --targets node18-win-x64,node18-macos-x64,node18-linux-x64 --out-path build/",
|
|
53
|
-
"installer:win": "npm run build && npm run pkg",
|
|
54
|
-
"package:quick": "npm run build && npm run pkg",
|
|
55
|
-
"package:full": "./scripts/build-windows-installer.sh",
|
|
56
|
-
"distribute": "npm run package:quick && echo 'Ready for distribution: build/hubdoc-tool-windows.exe'",
|
|
57
|
-
"prepare:publish": "node scripts/prepare-publish.js",
|
|
58
|
-
"restore:package": "node scripts/restore-package.js",
|
|
59
|
-
"publish:test": "npm run prepare:publish && npm publish --dry-run && npm run restore:package",
|
|
60
|
-
"lint": "echo 'No linting configured yet'",
|
|
61
|
-
"prepublishOnly": "npm run build",
|
|
62
|
-
"generate:api": "./scripts/generate-api-client.sh"
|
|
63
|
-
},
|
|
64
|
-
"publishConfig": {
|
|
65
|
-
"access": "public"
|
|
66
|
-
},
|
|
67
15
|
"keywords": [
|
|
68
16
|
"hubdoc",
|
|
17
|
+
"sinoia",
|
|
18
|
+
"corex",
|
|
19
|
+
"cli",
|
|
69
20
|
"import",
|
|
70
21
|
"export",
|
|
71
22
|
"documents",
|
|
72
|
-
"bulk"
|
|
23
|
+
"bulk",
|
|
24
|
+
"llm",
|
|
25
|
+
"agent",
|
|
26
|
+
"document-management"
|
|
73
27
|
],
|
|
74
|
-
"author": "",
|
|
28
|
+
"author": "Sinoia",
|
|
75
29
|
"license": "MIT",
|
|
76
|
-
"
|
|
77
|
-
|
|
78
|
-
"
|
|
79
|
-
"
|
|
80
|
-
"@types/xml2js": "^0.4.14",
|
|
81
|
-
"axios": "^1.5.0",
|
|
82
|
-
"chalk": "^4.1.2",
|
|
83
|
-
"commander": "^11.0.0",
|
|
84
|
-
"csv-parser": "^3.0.0",
|
|
85
|
-
"csv-writer": "^1.6.0",
|
|
86
|
-
"dotenv": "^16.3.0",
|
|
87
|
-
"form-data": "^4.0.0",
|
|
88
|
-
"fs-extra": "^11.1.0",
|
|
89
|
-
"glob": "^10.3.0",
|
|
90
|
-
"googleapis": "^128.0.0",
|
|
91
|
-
"inquirer": "^9.2.0",
|
|
92
|
-
"ora": "^5.4.1",
|
|
93
|
-
"xml2js": "^0.6.2"
|
|
30
|
+
"homepage": "https://code.plugandwork.net/sinoia/hubdoc-tools#readme",
|
|
31
|
+
"repository": {
|
|
32
|
+
"type": "git",
|
|
33
|
+
"url": "https://code.plugandwork.net/sinoia/hubdoc-tools.git"
|
|
94
34
|
},
|
|
95
|
-
"
|
|
96
|
-
"
|
|
97
|
-
"@types/inquirer": "^9.0.0",
|
|
98
|
-
"@types/jest": "^29.5.14",
|
|
99
|
-
"@types/node": "^20.5.0",
|
|
100
|
-
"axios-mock-adapter": "^2.1.0",
|
|
101
|
-
"jest": "^29.7.0",
|
|
102
|
-
"pkg": "^5.8.1",
|
|
103
|
-
"ts-jest": "^29.4.1",
|
|
104
|
-
"ts-node": "^10.9.0",
|
|
105
|
-
"tsc-alias": "^1.8.16",
|
|
106
|
-
"tsconfig-paths": "^4.2.0",
|
|
107
|
-
"typescript": "^5.9.2"
|
|
35
|
+
"bugs": {
|
|
36
|
+
"url": "https://code.plugandwork.net/sinoia/hubdoc-tools/-/issues"
|
|
108
37
|
},
|
|
109
|
-
"
|
|
110
|
-
"
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
38
|
+
"engines": {
|
|
39
|
+
"node": ">=22"
|
|
40
|
+
},
|
|
41
|
+
"optionalDependencies": {
|
|
42
|
+
"keytar": "^7.9.0"
|
|
43
|
+
},
|
|
44
|
+
"publishConfig": {
|
|
45
|
+
"access": "public",
|
|
46
|
+
"registry": "https://registry.npmjs.org/"
|
|
118
47
|
}
|
|
119
48
|
}
|
package/LICENSE
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2024 Sinoia
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { DocumentSourcePlugin, PluginConfig, ScanResult, ImportResult, DocumentSource } from '../../../../types/plugins';
|
|
2
|
-
declare class ConnectionPlugin implements DocumentSourcePlugin {
|
|
3
|
-
readonly name = "connection-plugin";
|
|
4
|
-
readonly version = "1.0.0";
|
|
5
|
-
readonly description = "Plugin for testing connections";
|
|
6
|
-
readonly supportedOperations: readonly ["import"];
|
|
7
|
-
testConnection(config: PluginConfig): Promise<boolean>;
|
|
8
|
-
scan(config: PluginConfig): Promise<ScanResult>;
|
|
9
|
-
import(config: PluginConfig, sources: DocumentSource[], targetDir: string): Promise<ImportResult[]>;
|
|
10
|
-
getConfigSchema(): Record<string, any>;
|
|
11
|
-
initialize(config: PluginConfig): Promise<void>;
|
|
12
|
-
destroy(): Promise<void>;
|
|
13
|
-
}
|
|
14
|
-
export default ConnectionPlugin;
|
|
15
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/__tests__/fixtures/plugins/connection-plugin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEzH,cAAM,gBAAiB,YAAW,oBAAoB;IACpD,QAAQ,CAAC,IAAI,uBAAuB;IACpC,QAAQ,CAAC,OAAO,WAAW;IAC3B,QAAQ,CAAC,WAAW,oCAAoC;IACxD,QAAQ,CAAC,mBAAmB,sBAAuB;IAE7C,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAKtD,IAAI,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;IAS/C,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAIzG,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAShC,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAC/C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAC/B;AAED,eAAe,gBAAgB,CAAC"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
class ConnectionPlugin {
|
|
4
|
-
constructor() {
|
|
5
|
-
this.name = 'connection-plugin';
|
|
6
|
-
this.version = '1.0.0';
|
|
7
|
-
this.description = 'Plugin for testing connections';
|
|
8
|
-
this.supportedOperations = ['import'];
|
|
9
|
-
}
|
|
10
|
-
async testConnection(config) {
|
|
11
|
-
// Return true if config.valid is true, false otherwise
|
|
12
|
-
return config.valid === true;
|
|
13
|
-
}
|
|
14
|
-
async scan(config) {
|
|
15
|
-
return {
|
|
16
|
-
sources: [],
|
|
17
|
-
totalCount: 0,
|
|
18
|
-
totalSize: 0,
|
|
19
|
-
errors: []
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
async import(config, sources, targetDir) {
|
|
23
|
-
return [];
|
|
24
|
-
}
|
|
25
|
-
getConfigSchema() {
|
|
26
|
-
return {
|
|
27
|
-
type: 'object',
|
|
28
|
-
properties: {
|
|
29
|
-
valid: { type: 'boolean' }
|
|
30
|
-
}
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
async initialize(config) { }
|
|
34
|
-
async destroy() { }
|
|
35
|
-
}
|
|
36
|
-
exports.default = ConnectionPlugin;
|
|
37
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/__tests__/fixtures/plugins/connection-plugin/index.ts"],"names":[],"mappings":";;AAEA,MAAM,gBAAgB;IAAtB;QACW,SAAI,GAAG,mBAAmB,CAAC;QAC3B,YAAO,GAAG,OAAO,CAAC;QAClB,gBAAW,GAAG,gCAAgC,CAAC;QAC/C,wBAAmB,GAAG,CAAC,QAAQ,CAAU,CAAC;IA+BrD,CAAC;IA7BC,KAAK,CAAC,cAAc,CAAC,MAAoB;QACvC,uDAAuD;QACvD,OAAQ,MAAc,CAAC,KAAK,KAAK,IAAI,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAoB;QAC7B,OAAO;YACL,OAAO,EAAE,EAAE;YACX,UAAU,EAAE,CAAC;YACb,SAAS,EAAE,CAAC;YACZ,MAAM,EAAE,EAAE;SACX,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAoB,EAAE,OAAyB,EAAE,SAAiB;QAC7E,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,eAAe;QACb,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;aAC3B;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAoB,IAAkB,CAAC;IACxD,KAAK,CAAC,OAAO,KAAmB,CAAC;CAClC;AAED,kBAAe,gBAAgB,CAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { DocumentSourcePlugin, PluginConfig, ScanResult, ImportResult, DocumentSource, PluginImportOptions } from '../../../../types/plugins';
|
|
2
|
-
declare class ScanPlugin implements DocumentSourcePlugin {
|
|
3
|
-
readonly name = "scan-plugin";
|
|
4
|
-
readonly version = "1.0.0";
|
|
5
|
-
readonly description = "Plugin for testing scan functionality";
|
|
6
|
-
readonly supportedOperations: readonly ["import"];
|
|
7
|
-
testConnection(config: PluginConfig): Promise<boolean>;
|
|
8
|
-
scan(config: PluginConfig, options?: PluginImportOptions): Promise<ScanResult>;
|
|
9
|
-
import(config: PluginConfig, sources: DocumentSource[], targetDir: string): Promise<ImportResult[]>;
|
|
10
|
-
getConfigSchema(): Record<string, any>;
|
|
11
|
-
initialize(config: PluginConfig): Promise<void>;
|
|
12
|
-
destroy(): Promise<void>;
|
|
13
|
-
}
|
|
14
|
-
export default ScanPlugin;
|
|
15
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/__tests__/fixtures/plugins/scan-plugin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAE9I,cAAM,UAAW,YAAW,oBAAoB;IAC9C,QAAQ,CAAC,IAAI,iBAAiB;IAC9B,QAAQ,CAAC,OAAO,WAAW;IAC3B,QAAQ,CAAC,WAAW,2CAA2C;IAC/D,QAAQ,CAAC,mBAAmB,sBAAuB;IAE7C,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAItD,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;IA8B9E,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAIzG,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAOhC,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAC/C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAC/B;AAED,eAAe,UAAU,CAAC"}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
class ScanPlugin {
|
|
4
|
-
constructor() {
|
|
5
|
-
this.name = 'scan-plugin';
|
|
6
|
-
this.version = '1.0.0';
|
|
7
|
-
this.description = 'Plugin for testing scan functionality';
|
|
8
|
-
this.supportedOperations = ['import'];
|
|
9
|
-
}
|
|
10
|
-
async testConnection(config) {
|
|
11
|
-
return true;
|
|
12
|
-
}
|
|
13
|
-
async scan(config, options) {
|
|
14
|
-
const sources = [
|
|
15
|
-
{
|
|
16
|
-
id: 'doc-1',
|
|
17
|
-
name: 'document1.pdf',
|
|
18
|
-
path: '/folder/document1.pdf',
|
|
19
|
-
size: 1024,
|
|
20
|
-
mimeType: 'application/pdf',
|
|
21
|
-
lastModified: new Date('2024-01-01'),
|
|
22
|
-
metadata: { source: 'test' }
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
id: 'doc-2',
|
|
26
|
-
name: 'document2.docx',
|
|
27
|
-
path: '/folder/document2.docx',
|
|
28
|
-
size: 2048,
|
|
29
|
-
mimeType: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
|
|
30
|
-
lastModified: new Date('2024-01-02'),
|
|
31
|
-
metadata: { source: 'test' }
|
|
32
|
-
}
|
|
33
|
-
];
|
|
34
|
-
return {
|
|
35
|
-
sources,
|
|
36
|
-
totalCount: sources.length,
|
|
37
|
-
totalSize: sources.reduce((sum, s) => sum + s.size, 0),
|
|
38
|
-
errors: []
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
async import(config, sources, targetDir) {
|
|
42
|
-
return [];
|
|
43
|
-
}
|
|
44
|
-
getConfigSchema() {
|
|
45
|
-
return {
|
|
46
|
-
type: 'object',
|
|
47
|
-
properties: {}
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
async initialize(config) { }
|
|
51
|
-
async destroy() { }
|
|
52
|
-
}
|
|
53
|
-
exports.default = ScanPlugin;
|
|
54
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/__tests__/fixtures/plugins/scan-plugin/index.ts"],"names":[],"mappings":";;AAEA,MAAM,UAAU;IAAhB;QACW,SAAI,GAAG,aAAa,CAAC;QACrB,YAAO,GAAG,OAAO,CAAC;QAClB,gBAAW,GAAG,uCAAuC,CAAC;QACtD,wBAAmB,GAAG,CAAC,QAAQ,CAAU,CAAC;IAiDrD,CAAC;IA/CC,KAAK,CAAC,cAAc,CAAC,MAAoB;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAoB,EAAE,OAA6B;QAC5D,MAAM,OAAO,GAAqB;YAChC;gBACE,EAAE,EAAE,OAAO;gBACX,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,uBAAuB;gBAC7B,IAAI,EAAE,IAAI;gBACV,QAAQ,EAAE,iBAAiB;gBAC3B,YAAY,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;gBACpC,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;aAC7B;YACD;gBACE,EAAE,EAAE,OAAO;gBACX,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,wBAAwB;gBAC9B,IAAI,EAAE,IAAI;gBACV,QAAQ,EAAE,yEAAyE;gBACnF,YAAY,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;gBACpC,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;aAC7B;SACF,CAAC;QAEF,OAAO;YACL,OAAO;YACP,UAAU,EAAE,OAAO,CAAC,MAAM;YAC1B,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACtD,MAAM,EAAE,EAAE;SACX,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAoB,EAAE,OAAyB,EAAE,SAAiB;QAC7E,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,eAAe;QACb,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE;SACf,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAoB,IAAkB,CAAC;IACxD,KAAK,CAAC,OAAO,KAAmB,CAAC;CAClC;AAED,kBAAe,UAAU,CAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { DocumentSourcePlugin, PluginConfig, ScanResult, ImportResult, DocumentSource } from '../../../../types/plugins';
|
|
2
|
-
declare class TestPlugin implements DocumentSourcePlugin {
|
|
3
|
-
readonly name = "test-plugin";
|
|
4
|
-
readonly version = "1.0.0";
|
|
5
|
-
readonly description = "Test plugin for unit tests";
|
|
6
|
-
readonly supportedOperations: readonly ["import"];
|
|
7
|
-
testConnection(config: PluginConfig): Promise<boolean>;
|
|
8
|
-
scan(config: PluginConfig): Promise<ScanResult>;
|
|
9
|
-
import(config: PluginConfig, sources: DocumentSource[], targetDir: string): Promise<ImportResult[]>;
|
|
10
|
-
getConfigSchema(): Record<string, any>;
|
|
11
|
-
initialize(config: PluginConfig): Promise<void>;
|
|
12
|
-
destroy(): Promise<void>;
|
|
13
|
-
}
|
|
14
|
-
export default TestPlugin;
|
|
15
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/__tests__/fixtures/plugins/test-plugin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEzH,cAAM,UAAW,YAAW,oBAAoB;IAC9C,QAAQ,CAAC,IAAI,iBAAiB;IAC9B,QAAQ,CAAC,OAAO,WAAW;IAC3B,QAAQ,CAAC,WAAW,gCAAgC;IACpD,QAAQ,CAAC,mBAAmB,sBAAuB;IAE7C,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;IAItD,IAAI,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;IAS/C,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAIzG,eAAe,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAOhC,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAC/C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAC/B;AAED,eAAe,UAAU,CAAC"}
|