vikunja-mcp-ng 0.4.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.
- package/LICENSE +21 -0
- package/README.md +123 -0
- package/dist/auth/AuthManager.d.ts +63 -0
- package/dist/auth/AuthManager.d.ts.map +1 -0
- package/dist/auth/AuthManager.js +137 -0
- package/dist/auth/AuthManager.js.map +1 -0
- package/dist/auth/index.d.ts +7 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +14 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/permissions.d.ts +60 -0
- package/dist/auth/permissions.d.ts.map +1 -0
- package/dist/auth/permissions.js +173 -0
- package/dist/auth/permissions.js.map +1 -0
- package/dist/client/VikunjaClientFactory.d.ts +41 -0
- package/dist/client/VikunjaClientFactory.d.ts.map +1 -0
- package/dist/client/VikunjaClientFactory.js +58 -0
- package/dist/client/VikunjaClientFactory.js.map +1 -0
- package/dist/client.d.ts +70 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +136 -0
- package/dist/client.js.map +1 -0
- package/dist/config/ConfigurationManager.d.ts +106 -0
- package/dist/config/ConfigurationManager.d.ts.map +1 -0
- package/dist/config/ConfigurationManager.js +509 -0
- package/dist/config/ConfigurationManager.js.map +1 -0
- package/dist/config/index.d.ts +9 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +36 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/secrets.d.ts +33 -0
- package/dist/config/secrets.d.ts.map +1 -0
- package/dist/config/secrets.js +90 -0
- package/dist/config/secrets.js.map +1 -0
- package/dist/config/types.d.ts +1113 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +189 -0
- package/dist/config/types.js.map +1 -0
- package/dist/formatters/BatchImportResponseFormatter.d.ts +89 -0
- package/dist/formatters/BatchImportResponseFormatter.d.ts.map +1 -0
- package/dist/formatters/BatchImportResponseFormatter.js +125 -0
- package/dist/formatters/BatchImportResponseFormatter.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +130 -0
- package/dist/index.js.map +1 -0
- package/dist/middleware/direct-middleware.d.ts +9 -0
- package/dist/middleware/direct-middleware.d.ts.map +1 -0
- package/dist/middleware/direct-middleware.js +49 -0
- package/dist/middleware/direct-middleware.js.map +1 -0
- package/dist/middleware/index.d.ts +8 -0
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/middleware/index.js +21 -0
- package/dist/middleware/index.js.map +1 -0
- package/dist/middleware/simplified-rate-limit.d.ts +147 -0
- package/dist/middleware/simplified-rate-limit.d.ts.map +1 -0
- package/dist/middleware/simplified-rate-limit.js +533 -0
- package/dist/middleware/simplified-rate-limit.js.map +1 -0
- package/dist/parsers/CSVParser.d.ts +36 -0
- package/dist/parsers/CSVParser.d.ts.map +1 -0
- package/dist/parsers/CSVParser.js +69 -0
- package/dist/parsers/CSVParser.js.map +1 -0
- package/dist/parsers/InputParserFactory.d.ts +17 -0
- package/dist/parsers/InputParserFactory.d.ts.map +1 -0
- package/dist/parsers/InputParserFactory.js +137 -0
- package/dist/parsers/InputParserFactory.js.map +1 -0
- package/dist/parsers/JSONParser.d.ts +74 -0
- package/dist/parsers/JSONParser.d.ts.map +1 -0
- package/dist/parsers/JSONParser.js +69 -0
- package/dist/parsers/JSONParser.js.map +1 -0
- package/dist/services/EntityResolver.d.ts +92 -0
- package/dist/services/EntityResolver.d.ts.map +1 -0
- package/dist/services/EntityResolver.js +201 -0
- package/dist/services/EntityResolver.js.map +1 -0
- package/dist/services/TaskCreationService.d.ts +99 -0
- package/dist/services/TaskCreationService.d.ts.map +1 -0
- package/dist/services/TaskCreationService.js +392 -0
- package/dist/services/TaskCreationService.js.map +1 -0
- package/dist/storage/SimpleFilterStorage.d.ts +103 -0
- package/dist/storage/SimpleFilterStorage.d.ts.map +1 -0
- package/dist/storage/SimpleFilterStorage.js +350 -0
- package/dist/storage/SimpleFilterStorage.js.map +1 -0
- package/dist/storage/filtering/FilterSerializer.d.ts +45 -0
- package/dist/storage/filtering/FilterSerializer.d.ts.map +1 -0
- package/dist/storage/filtering/FilterSerializer.js +171 -0
- package/dist/storage/filtering/FilterSerializer.js.map +1 -0
- package/dist/storage/filtering/FilterValidator.d.ts +59 -0
- package/dist/storage/filtering/FilterValidator.d.ts.map +1 -0
- package/dist/storage/filtering/FilterValidator.js +183 -0
- package/dist/storage/filtering/FilterValidator.js.map +1 -0
- package/dist/storage/index.d.ts +61 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +125 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/templateFileStore.d.ts +62 -0
- package/dist/storage/templateFileStore.d.ts.map +1 -0
- package/dist/storage/templateFileStore.js +151 -0
- package/dist/storage/templateFileStore.js.map +1 -0
- package/dist/tools/admin.d.ts +51 -0
- package/dist/tools/admin.d.ts.map +1 -0
- package/dist/tools/admin.js +207 -0
- package/dist/tools/admin.js.map +1 -0
- package/dist/tools/auth.d.ts +9 -0
- package/dist/tools/auth.d.ts.map +1 -0
- package/dist/tools/auth.js +175 -0
- package/dist/tools/auth.js.map +1 -0
- package/dist/tools/batch-import.d.ts +5 -0
- package/dist/tools/batch-import.d.ts.map +1 -0
- package/dist/tools/batch-import.js +153 -0
- package/dist/tools/batch-import.js.map +1 -0
- package/dist/tools/caldav-tokens.d.ts +45 -0
- package/dist/tools/caldav-tokens.d.ts.map +1 -0
- package/dist/tools/caldav-tokens.js +93 -0
- package/dist/tools/caldav-tokens.js.map +1 -0
- package/dist/tools/export.d.ts +14 -0
- package/dist/tools/export.d.ts.map +1 -0
- package/dist/tools/export.js +252 -0
- package/dist/tools/export.js.map +1 -0
- package/dist/tools/filters.d.ts +50 -0
- package/dist/tools/filters.d.ts.map +1 -0
- package/dist/tools/filters.js +512 -0
- package/dist/tools/filters.js.map +1 -0
- package/dist/tools/index.d.ts +53 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +217 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/labels.d.ts +22 -0
- package/dist/tools/labels.d.ts.map +1 -0
- package/dist/tools/labels.js +206 -0
- package/dist/tools/labels.js.map +1 -0
- package/dist/tools/notifications.d.ts +17 -0
- package/dist/tools/notifications.d.ts.map +1 -0
- package/dist/tools/notifications.js +171 -0
- package/dist/tools/notifications.js.map +1 -0
- package/dist/tools/projects/backgrounds.d.ts +80 -0
- package/dist/tools/projects/backgrounds.d.ts.map +1 -0
- package/dist/tools/projects/backgrounds.js +154 -0
- package/dist/tools/projects/backgrounds.js.map +1 -0
- package/dist/tools/projects/buckets.d.ts +147 -0
- package/dist/tools/projects/buckets.d.ts.map +1 -0
- package/dist/tools/projects/buckets.js +291 -0
- package/dist/tools/projects/buckets.js.map +1 -0
- package/dist/tools/projects/crud.d.ts +145 -0
- package/dist/tools/projects/crud.d.ts.map +1 -0
- package/dist/tools/projects/crud.js +425 -0
- package/dist/tools/projects/crud.js.map +1 -0
- package/dist/tools/projects/duplicate.d.ts +41 -0
- package/dist/tools/projects/duplicate.d.ts.map +1 -0
- package/dist/tools/projects/duplicate.js +49 -0
- package/dist/tools/projects/duplicate.js.map +1 -0
- package/dist/tools/projects/hierarchy.d.ts +77 -0
- package/dist/tools/projects/hierarchy.d.ts.map +1 -0
- package/dist/tools/projects/hierarchy.js +300 -0
- package/dist/tools/projects/hierarchy.js.map +1 -0
- package/dist/tools/projects/index.d.ts +34 -0
- package/dist/tools/projects/index.d.ts.map +1 -0
- package/dist/tools/projects/index.js +522 -0
- package/dist/tools/projects/index.js.map +1 -0
- package/dist/tools/projects/permission.d.ts +26 -0
- package/dist/tools/projects/permission.d.ts.map +1 -0
- package/dist/tools/projects/permission.js +53 -0
- package/dist/tools/projects/permission.js.map +1 -0
- package/dist/tools/projects/response-formatter.d.ts +54 -0
- package/dist/tools/projects/response-formatter.d.ts.map +1 -0
- package/dist/tools/projects/response-formatter.js +139 -0
- package/dist/tools/projects/response-formatter.js.map +1 -0
- package/dist/tools/projects/sharing-access.d.ts +165 -0
- package/dist/tools/projects/sharing-access.d.ts.map +1 -0
- package/dist/tools/projects/sharing-access.js +450 -0
- package/dist/tools/projects/sharing-access.js.map +1 -0
- package/dist/tools/projects/sharing.d.ts +105 -0
- package/dist/tools/projects/sharing.d.ts.map +1 -0
- package/dist/tools/projects/sharing.js +258 -0
- package/dist/tools/projects/sharing.js.map +1 -0
- package/dist/tools/projects/validation.d.ts +51 -0
- package/dist/tools/projects/validation.d.ts.map +1 -0
- package/dist/tools/projects/validation.js +160 -0
- package/dist/tools/projects/validation.js.map +1 -0
- package/dist/tools/projects/views.d.ts +161 -0
- package/dist/tools/projects/views.d.ts.map +1 -0
- package/dist/tools/projects/views.js +234 -0
- package/dist/tools/projects/views.js.map +1 -0
- package/dist/tools/projects.d.ts +20 -0
- package/dist/tools/projects.d.ts.map +1 -0
- package/dist/tools/projects.js +66 -0
- package/dist/tools/projects.js.map +1 -0
- package/dist/tools/reactions.d.ts +25 -0
- package/dist/tools/reactions.d.ts.map +1 -0
- package/dist/tools/reactions.js +108 -0
- package/dist/tools/reactions.js.map +1 -0
- package/dist/tools/subscriptions.d.ts +23 -0
- package/dist/tools/subscriptions.d.ts.map +1 -0
- package/dist/tools/subscriptions.js +111 -0
- package/dist/tools/subscriptions.js.map +1 -0
- package/dist/tools/task-assignees.d.ts +13 -0
- package/dist/tools/task-assignees.d.ts.map +1 -0
- package/dist/tools/task-assignees.js +74 -0
- package/dist/tools/task-assignees.js.map +1 -0
- package/dist/tools/task-bulk.d.ts +13 -0
- package/dist/tools/task-bulk.d.ts.map +1 -0
- package/dist/tools/task-bulk.js +117 -0
- package/dist/tools/task-bulk.js.map +1 -0
- package/dist/tools/task-comments.d.ts +12 -0
- package/dist/tools/task-comments.d.ts.map +1 -0
- package/dist/tools/task-comments.js +65 -0
- package/dist/tools/task-comments.js.map +1 -0
- package/dist/tools/task-crud.d.ts +13 -0
- package/dist/tools/task-crud.d.ts.map +1 -0
- package/dist/tools/task-crud.js +168 -0
- package/dist/tools/task-crud.js.map +1 -0
- package/dist/tools/task-labels.d.ts +13 -0
- package/dist/tools/task-labels.d.ts.map +1 -0
- package/dist/tools/task-labels.js +64 -0
- package/dist/tools/task-labels.js.map +1 -0
- package/dist/tools/task-relations.d.ts +13 -0
- package/dist/tools/task-relations.d.ts.map +1 -0
- package/dist/tools/task-relations.js +74 -0
- package/dist/tools/task-relations.js.map +1 -0
- package/dist/tools/task-reminders.d.ts +13 -0
- package/dist/tools/task-reminders.d.ts.map +1 -0
- package/dist/tools/task-reminders.js +69 -0
- package/dist/tools/task-reminders.js.map +1 -0
- package/dist/tools/tasks/assignees/AssigneeOperationsService.d.ts +63 -0
- package/dist/tools/tasks/assignees/AssigneeOperationsService.d.ts.map +1 -0
- package/dist/tools/tasks/assignees/AssigneeOperationsService.js +152 -0
- package/dist/tools/tasks/assignees/AssigneeOperationsService.js.map +1 -0
- package/dist/tools/tasks/assignees/AssigneeResponseFormatter.d.ts +28 -0
- package/dist/tools/tasks/assignees/AssigneeResponseFormatter.d.ts.map +1 -0
- package/dist/tools/tasks/assignees/AssigneeResponseFormatter.js +73 -0
- package/dist/tools/tasks/assignees/AssigneeResponseFormatter.js.map +1 -0
- package/dist/tools/tasks/assignees/AssigneeValidationService.d.ts +46 -0
- package/dist/tools/tasks/assignees/AssigneeValidationService.d.ts.map +1 -0
- package/dist/tools/tasks/assignees/AssigneeValidationService.js +70 -0
- package/dist/tools/tasks/assignees/AssigneeValidationService.js.map +1 -0
- package/dist/tools/tasks/assignees/index.d.ts +52 -0
- package/dist/tools/tasks/assignees/index.d.ts.map +1 -0
- package/dist/tools/tasks/assignees/index.js +103 -0
- package/dist/tools/tasks/assignees/index.js.map +1 -0
- package/dist/tools/tasks/attach.d.ts +39 -0
- package/dist/tools/tasks/attach.d.ts.map +1 -0
- package/dist/tools/tasks/attach.js +90 -0
- package/dist/tools/tasks/attach.js.map +1 -0
- package/dist/tools/tasks/attachments.d.ts +67 -0
- package/dist/tools/tasks/attachments.d.ts.map +1 -0
- package/dist/tools/tasks/attachments.js +153 -0
- package/dist/tools/tasks/attachments.js.map +1 -0
- package/dist/tools/tasks/buckets.d.ts +41 -0
- package/dist/tools/tasks/buckets.d.ts.map +1 -0
- package/dist/tools/tasks/buckets.js +75 -0
- package/dist/tools/tasks/buckets.js.map +1 -0
- package/dist/tools/tasks/bulk/BatchProcessorFactory.d.ts +30 -0
- package/dist/tools/tasks/bulk/BatchProcessorFactory.d.ts.map +1 -0
- package/dist/tools/tasks/bulk/BatchProcessorFactory.js +69 -0
- package/dist/tools/tasks/bulk/BatchProcessorFactory.js.map +1 -0
- package/dist/tools/tasks/bulk/BulkOperationErrorHandler.d.ts +50 -0
- package/dist/tools/tasks/bulk/BulkOperationErrorHandler.d.ts.map +1 -0
- package/dist/tools/tasks/bulk/BulkOperationErrorHandler.js +183 -0
- package/dist/tools/tasks/bulk/BulkOperationErrorHandler.js.map +1 -0
- package/dist/tools/tasks/bulk/BulkOperationProcessor.d.ts +101 -0
- package/dist/tools/tasks/bulk/BulkOperationProcessor.d.ts.map +1 -0
- package/dist/tools/tasks/bulk/BulkOperationProcessor.js +416 -0
- package/dist/tools/tasks/bulk/BulkOperationProcessor.js.map +1 -0
- package/dist/tools/tasks/bulk/BulkOperationTypes.d.ts +50 -0
- package/dist/tools/tasks/bulk/BulkOperationTypes.d.ts.map +1 -0
- package/dist/tools/tasks/bulk/BulkOperationTypes.js +6 -0
- package/dist/tools/tasks/bulk/BulkOperationTypes.js.map +1 -0
- package/dist/tools/tasks/bulk/BulkOperationValidator.d.ts +53 -0
- package/dist/tools/tasks/bulk/BulkOperationValidator.d.ts.map +1 -0
- package/dist/tools/tasks/bulk/BulkOperationValidator.js +216 -0
- package/dist/tools/tasks/bulk/BulkOperationValidator.js.map +1 -0
- package/dist/tools/tasks/bulk/index.d.ts +9 -0
- package/dist/tools/tasks/bulk/index.d.ts.map +1 -0
- package/dist/tools/tasks/bulk/index.js +15 -0
- package/dist/tools/tasks/bulk/index.js.map +1 -0
- package/dist/tools/tasks/bulk-operations-simplified.d.ts +62 -0
- package/dist/tools/tasks/bulk-operations-simplified.d.ts.map +1 -0
- package/dist/tools/tasks/bulk-operations-simplified.js +416 -0
- package/dist/tools/tasks/bulk-operations-simplified.js.map +1 -0
- package/dist/tools/tasks/bulk-operations.d.ts +8 -0
- package/dist/tools/tasks/bulk-operations.d.ts.map +1 -0
- package/dist/tools/tasks/bulk-operations.js +13 -0
- package/dist/tools/tasks/bulk-operations.js.map +1 -0
- package/dist/tools/tasks/by-index.d.ts +36 -0
- package/dist/tools/tasks/by-index.d.ts.map +1 -0
- package/dist/tools/tasks/by-index.js +52 -0
- package/dist/tools/tasks/by-index.js.map +1 -0
- package/dist/tools/tasks/comments/CommentOperationsService.d.ts +44 -0
- package/dist/tools/tasks/comments/CommentOperationsService.d.ts.map +1 -0
- package/dist/tools/tasks/comments/CommentOperationsService.js +86 -0
- package/dist/tools/tasks/comments/CommentOperationsService.js.map +1 -0
- package/dist/tools/tasks/comments/CommentResponseFormatter.d.ts +41 -0
- package/dist/tools/tasks/comments/CommentResponseFormatter.d.ts.map +1 -0
- package/dist/tools/tasks/comments/CommentResponseFormatter.js +114 -0
- package/dist/tools/tasks/comments/CommentResponseFormatter.js.map +1 -0
- package/dist/tools/tasks/comments/CommentValidationService.d.ts +62 -0
- package/dist/tools/tasks/comments/CommentValidationService.d.ts.map +1 -0
- package/dist/tools/tasks/comments/CommentValidationService.js +105 -0
- package/dist/tools/tasks/comments/CommentValidationService.js.map +1 -0
- package/dist/tools/tasks/comments/index.d.ts +66 -0
- package/dist/tools/tasks/comments/index.d.ts.map +1 -0
- package/dist/tools/tasks/comments/index.js +99 -0
- package/dist/tools/tasks/comments/index.js.map +1 -0
- package/dist/tools/tasks/constants.d.ts +19 -0
- package/dist/tools/tasks/constants.d.ts.map +1 -0
- package/dist/tools/tasks/constants.js +82 -0
- package/dist/tools/tasks/constants.js.map +1 -0
- package/dist/tools/tasks/crud/TaskCreationService.d.ts +29 -0
- package/dist/tools/tasks/crud/TaskCreationService.d.ts.map +1 -0
- package/dist/tools/tasks/crud/TaskCreationService.js +274 -0
- package/dist/tools/tasks/crud/TaskCreationService.js.map +1 -0
- package/dist/tools/tasks/crud/TaskDeletionService.d.ts +19 -0
- package/dist/tools/tasks/crud/TaskDeletionService.d.ts.map +1 -0
- package/dist/tools/tasks/crud/TaskDeletionService.js +96 -0
- package/dist/tools/tasks/crud/TaskDeletionService.js.map +1 -0
- package/dist/tools/tasks/crud/TaskReadService.d.ts +19 -0
- package/dist/tools/tasks/crud/TaskReadService.d.ts.map +1 -0
- package/dist/tools/tasks/crud/TaskReadService.js +66 -0
- package/dist/tools/tasks/crud/TaskReadService.js.map +1 -0
- package/dist/tools/tasks/crud/TaskResponseFormatter.d.ts +18 -0
- package/dist/tools/tasks/crud/TaskResponseFormatter.d.ts.map +1 -0
- package/dist/tools/tasks/crud/TaskResponseFormatter.js +248 -0
- package/dist/tools/tasks/crud/TaskResponseFormatter.js.map +1 -0
- package/dist/tools/tasks/crud/TaskUpdateService.d.ts +33 -0
- package/dist/tools/tasks/crud/TaskUpdateService.d.ts.map +1 -0
- package/dist/tools/tasks/crud/TaskUpdateService.js +294 -0
- package/dist/tools/tasks/crud/TaskUpdateService.js.map +1 -0
- package/dist/tools/tasks/crud/index.d.ts +17 -0
- package/dist/tools/tasks/crud/index.d.ts.map +1 -0
- package/dist/tools/tasks/crud/index.js +20 -0
- package/dist/tools/tasks/crud/index.js.map +1 -0
- package/dist/tools/tasks/duplicate.d.ts +28 -0
- package/dist/tools/tasks/duplicate.d.ts.map +1 -0
- package/dist/tools/tasks/duplicate.js +41 -0
- package/dist/tools/tasks/duplicate.js.map +1 -0
- package/dist/tools/tasks/filtering/FilterExecutor.d.ts +39 -0
- package/dist/tools/tasks/filtering/FilterExecutor.d.ts.map +1 -0
- package/dist/tools/tasks/filtering/FilterExecutor.js +214 -0
- package/dist/tools/tasks/filtering/FilterExecutor.js.map +1 -0
- package/dist/tools/tasks/filtering/FilterValidator.d.ts +59 -0
- package/dist/tools/tasks/filtering/FilterValidator.d.ts.map +1 -0
- package/dist/tools/tasks/filtering/FilterValidator.js +257 -0
- package/dist/tools/tasks/filtering/FilterValidator.js.map +1 -0
- package/dist/tools/tasks/filtering/TaskFilteringOrchestrator.d.ts +78 -0
- package/dist/tools/tasks/filtering/TaskFilteringOrchestrator.d.ts.map +1 -0
- package/dist/tools/tasks/filtering/TaskFilteringOrchestrator.js +195 -0
- package/dist/tools/tasks/filtering/TaskFilteringOrchestrator.js.map +1 -0
- package/dist/tools/tasks/filtering/evaluators.d.ts +41 -0
- package/dist/tools/tasks/filtering/evaluators.d.ts.map +1 -0
- package/dist/tools/tasks/filtering/evaluators.js +224 -0
- package/dist/tools/tasks/filtering/evaluators.js.map +1 -0
- package/dist/tools/tasks/filtering/index.d.ts +11 -0
- package/dist/tools/tasks/filtering/index.d.ts.map +1 -0
- package/dist/tools/tasks/filtering/index.js +26 -0
- package/dist/tools/tasks/filtering/index.js.map +1 -0
- package/dist/tools/tasks/index.d.ts +9 -0
- package/dist/tools/tasks/index.d.ts.map +1 -0
- package/dist/tools/tasks/index.js +337 -0
- package/dist/tools/tasks/index.js.map +1 -0
- package/dist/tools/tasks/labels.d.ts +49 -0
- package/dist/tools/tasks/labels.d.ts.map +1 -0
- package/dist/tools/tasks/labels.js +223 -0
- package/dist/tools/tasks/labels.js.map +1 -0
- package/dist/tools/tasks/mark-read.d.ts +27 -0
- package/dist/tools/tasks/mark-read.d.ts.map +1 -0
- package/dist/tools/tasks/mark-read.js +38 -0
- package/dist/tools/tasks/mark-read.js.map +1 -0
- package/dist/tools/tasks/position.d.ts +53 -0
- package/dist/tools/tasks/position.d.ts.map +1 -0
- package/dist/tools/tasks/position.js +83 -0
- package/dist/tools/tasks/position.js.map +1 -0
- package/dist/tools/tasks/reminders.d.ts +56 -0
- package/dist/tools/tasks/reminders.d.ts.map +1 -0
- package/dist/tools/tasks/reminders.js +213 -0
- package/dist/tools/tasks/reminders.js.map +1 -0
- package/dist/tools/tasks/subtasks.d.ts +85 -0
- package/dist/tools/tasks/subtasks.d.ts.map +1 -0
- package/dist/tools/tasks/subtasks.js +286 -0
- package/dist/tools/tasks/subtasks.js.map +1 -0
- package/dist/tools/tasks/types/filters.d.ts +136 -0
- package/dist/tools/tasks/types/filters.d.ts.map +1 -0
- package/dist/tools/tasks/types/filters.js +7 -0
- package/dist/tools/tasks/types/filters.js.map +1 -0
- package/dist/tools/tasks/validation.d.ts +47 -0
- package/dist/tools/tasks/validation.d.ts.map +1 -0
- package/dist/tools/tasks/validation.js +131 -0
- package/dist/tools/tasks/validation.js.map +1 -0
- package/dist/tools/tasks-relations.d.ts +25 -0
- package/dist/tools/tasks-relations.d.ts.map +1 -0
- package/dist/tools/tasks-relations.js +271 -0
- package/dist/tools/tasks-relations.js.map +1 -0
- package/dist/tools/tasks.d.ts +6 -0
- package/dist/tools/tasks.d.ts.map +1 -0
- package/dist/tools/tasks.js +10 -0
- package/dist/tools/tasks.js.map +1 -0
- package/dist/tools/teams.d.ts +9 -0
- package/dist/tools/teams.d.ts.map +1 -0
- package/dist/tools/teams.js +255 -0
- package/dist/tools/teams.js.map +1 -0
- package/dist/tools/templates.d.ts +9 -0
- package/dist/tools/templates.d.ts.map +1 -0
- package/dist/tools/templates.js +450 -0
- package/dist/tools/templates.js.map +1 -0
- package/dist/tools/tokens.d.ts +37 -0
- package/dist/tools/tokens.d.ts.map +1 -0
- package/dist/tools/tokens.js +122 -0
- package/dist/tools/tokens.js.map +1 -0
- package/dist/tools/user-deletion.d.ts +41 -0
- package/dist/tools/user-deletion.d.ts.map +1 -0
- package/dist/tools/user-deletion.js +126 -0
- package/dist/tools/user-deletion.js.map +1 -0
- package/dist/tools/users.d.ts +9 -0
- package/dist/tools/users.d.ts.map +1 -0
- package/dist/tools/users.js +418 -0
- package/dist/tools/users.js.map +1 -0
- package/dist/tools/webhooks.d.ts +31 -0
- package/dist/tools/webhooks.d.ts.map +1 -0
- package/dist/tools/webhooks.js +414 -0
- package/dist/tools/webhooks.js.map +1 -0
- package/dist/transforms/base.d.ts +204 -0
- package/dist/transforms/base.d.ts.map +1 -0
- package/dist/transforms/base.js +175 -0
- package/dist/transforms/base.js.map +1 -0
- package/dist/transforms/field-selector.d.ts +27 -0
- package/dist/transforms/field-selector.d.ts.map +1 -0
- package/dist/transforms/field-selector.js +91 -0
- package/dist/transforms/field-selector.js.map +1 -0
- package/dist/transforms/index.d.ts +15 -0
- package/dist/transforms/index.d.ts.map +1 -0
- package/dist/transforms/index.js +50 -0
- package/dist/transforms/index.js.map +1 -0
- package/dist/transforms/size-calculator.d.ts +131 -0
- package/dist/transforms/size-calculator.d.ts.map +1 -0
- package/dist/transforms/size-calculator.js +284 -0
- package/dist/transforms/size-calculator.js.map +1 -0
- package/dist/transforms/task.d.ts +207 -0
- package/dist/transforms/task.d.ts.map +1 -0
- package/dist/transforms/task.js +259 -0
- package/dist/transforms/task.js.map +1 -0
- package/dist/types/errors.d.ts +65 -0
- package/dist/types/errors.d.ts.map +1 -0
- package/dist/types/errors.js +44 -0
- package/dist/types/errors.js.map +1 -0
- package/dist/types/filters.d.ts +149 -0
- package/dist/types/filters.d.ts.map +1 -0
- package/dist/types/filters.js +26 -0
- package/dist/types/filters.js.map +1 -0
- package/dist/types/index.d.ts +147 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +24 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/node-vikunja-extended.d.ts +36 -0
- package/dist/types/node-vikunja-extended.d.ts.map +1 -0
- package/dist/types/node-vikunja-extended.js +25 -0
- package/dist/types/node-vikunja-extended.js.map +1 -0
- package/dist/types/responses.d.ts +121 -0
- package/dist/types/responses.d.ts.map +1 -0
- package/dist/types/responses.js +26 -0
- package/dist/types/responses.js.map +1 -0
- package/dist/types/vikunja.d.ts +319 -0
- package/dist/types/vikunja.d.ts.map +1 -0
- package/dist/types/vikunja.js +7 -0
- package/dist/types/vikunja.js.map +1 -0
- package/dist/utils/auth-error-handler.d.ts +23 -0
- package/dist/utils/auth-error-handler.d.ts.map +1 -0
- package/dist/utils/auth-error-handler.js +162 -0
- package/dist/utils/auth-error-handler.js.map +1 -0
- package/dist/utils/composite-operation.d.ts +184 -0
- package/dist/utils/composite-operation.d.ts.map +1 -0
- package/dist/utils/composite-operation.js +293 -0
- package/dist/utils/composite-operation.js.map +1 -0
- package/dist/utils/error-handler.d.ts +39 -0
- package/dist/utils/error-handler.d.ts.map +1 -0
- package/dist/utils/error-handler.js +336 -0
- package/dist/utils/error-handler.js.map +1 -0
- package/dist/utils/filtering/ClientSideFilteringStrategy.d.ts +13 -0
- package/dist/utils/filtering/ClientSideFilteringStrategy.d.ts.map +1 -0
- package/dist/utils/filtering/ClientSideFilteringStrategy.js +129 -0
- package/dist/utils/filtering/ClientSideFilteringStrategy.js.map +1 -0
- package/dist/utils/filtering/FilteringContext.d.ts +40 -0
- package/dist/utils/filtering/FilteringContext.d.ts.map +1 -0
- package/dist/utils/filtering/FilteringContext.js +58 -0
- package/dist/utils/filtering/FilteringContext.js.map +1 -0
- package/dist/utils/filtering/HybridFilteringStrategy.d.ts +15 -0
- package/dist/utils/filtering/HybridFilteringStrategy.d.ts.map +1 -0
- package/dist/utils/filtering/HybridFilteringStrategy.js +55 -0
- package/dist/utils/filtering/HybridFilteringStrategy.js.map +1 -0
- package/dist/utils/filtering/RestCrossProjectFilteringStrategy.d.ts +42 -0
- package/dist/utils/filtering/RestCrossProjectFilteringStrategy.d.ts.map +1 -0
- package/dist/utils/filtering/RestCrossProjectFilteringStrategy.js +120 -0
- package/dist/utils/filtering/RestCrossProjectFilteringStrategy.js.map +1 -0
- package/dist/utils/filtering/ServerSideFilteringStrategy.d.ts +13 -0
- package/dist/utils/filtering/ServerSideFilteringStrategy.d.ts.map +1 -0
- package/dist/utils/filtering/ServerSideFilteringStrategy.js +88 -0
- package/dist/utils/filtering/ServerSideFilteringStrategy.js.map +1 -0
- package/dist/utils/filtering/TaskFilteringStrategy.d.ts +19 -0
- package/dist/utils/filtering/TaskFilteringStrategy.d.ts.map +1 -0
- package/dist/utils/filtering/TaskFilteringStrategy.js +10 -0
- package/dist/utils/filtering/TaskFilteringStrategy.js.map +1 -0
- package/dist/utils/filtering/index.d.ts +14 -0
- package/dist/utils/filtering/index.d.ts.map +1 -0
- package/dist/utils/filtering/index.js +22 -0
- package/dist/utils/filtering/index.js.map +1 -0
- package/dist/utils/filtering/types.d.ts +108 -0
- package/dist/utils/filtering/types.d.ts.map +1 -0
- package/dist/utils/filtering/types.js +6 -0
- package/dist/utils/filtering/types.js.map +1 -0
- package/dist/utils/filters.d.ts +70 -0
- package/dist/utils/filters.d.ts.map +1 -0
- package/dist/utils/filters.js +812 -0
- package/dist/utils/filters.js.map +1 -0
- package/dist/utils/http-error-detail.d.ts +28 -0
- package/dist/utils/http-error-detail.d.ts.map +1 -0
- package/dist/utils/http-error-detail.js +67 -0
- package/dist/utils/http-error-detail.js.map +1 -0
- package/dist/utils/label-bulk.d.ts +21 -0
- package/dist/utils/label-bulk.d.ts.map +1 -0
- package/dist/utils/label-bulk.js +51 -0
- package/dist/utils/label-bulk.js.map +1 -0
- package/dist/utils/logger.d.ts +20 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +66 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/memory.d.ts +73 -0
- package/dist/utils/memory.d.ts.map +1 -0
- package/dist/utils/memory.js +194 -0
- package/dist/utils/memory.js.map +1 -0
- package/dist/utils/performance/batch-processor.d.ts +77 -0
- package/dist/utils/performance/batch-processor.d.ts.map +1 -0
- package/dist/utils/performance/batch-processor.js +218 -0
- package/dist/utils/performance/batch-processor.js.map +1 -0
- package/dist/utils/performance/index.d.ts +42 -0
- package/dist/utils/performance/index.d.ts.map +1 -0
- package/dist/utils/performance/index.js +49 -0
- package/dist/utils/performance/index.js.map +1 -0
- package/dist/utils/performance/performance-monitor.d.ts +116 -0
- package/dist/utils/performance/performance-monitor.d.ts.map +1 -0
- package/dist/utils/performance/performance-monitor.js +307 -0
- package/dist/utils/performance/performance-monitor.js.map +1 -0
- package/dist/utils/read-only.d.ts +111 -0
- package/dist/utils/read-only.d.ts.map +1 -0
- package/dist/utils/read-only.js +503 -0
- package/dist/utils/read-only.js.map +1 -0
- package/dist/utils/response-factory.d.ts +81 -0
- package/dist/utils/response-factory.d.ts.map +1 -0
- package/dist/utils/response-factory.js +86 -0
- package/dist/utils/response-factory.js.map +1 -0
- package/dist/utils/retry.d.ts +160 -0
- package/dist/utils/retry.d.ts.map +1 -0
- package/dist/utils/retry.js +316 -0
- package/dist/utils/retry.js.map +1 -0
- package/dist/utils/security.d.ts +70 -0
- package/dist/utils/security.d.ts.map +1 -0
- package/dist/utils/security.js +358 -0
- package/dist/utils/security.js.map +1 -0
- package/dist/utils/simple-response.d.ts +75 -0
- package/dist/utils/simple-response.d.ts.map +1 -0
- package/dist/utils/simple-response.js +311 -0
- package/dist/utils/simple-response.js.map +1 -0
- package/dist/utils/storage-errors.d.ts +9 -0
- package/dist/utils/storage-errors.d.ts.map +1 -0
- package/dist/utils/storage-errors.js +20 -0
- package/dist/utils/storage-errors.js.map +1 -0
- package/dist/utils/task-rest-transport.d.ts +28 -0
- package/dist/utils/task-rest-transport.d.ts.map +1 -0
- package/dist/utils/task-rest-transport.js +33 -0
- package/dist/utils/task-rest-transport.js.map +1 -0
- package/dist/utils/unicode-fix.d.ts +19 -0
- package/dist/utils/unicode-fix.d.ts.map +1 -0
- package/dist/utils/unicode-fix.js +70 -0
- package/dist/utils/unicode-fix.js.map +1 -0
- package/dist/utils/validation.d.ts +75 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +758 -0
- package/dist/utils/validation.js.map +1 -0
- package/dist/utils/vikunja-rest.d.ts +159 -0
- package/dist/utils/vikunja-rest.d.ts.map +1 -0
- package/dist/utils/vikunja-rest.js +378 -0
- package/dist/utils/vikunja-rest.js.map +1 -0
- package/docs/CONFIGURATION.md +957 -0
- package/docs/DOCKER-DESKTOP-MCP.md +207 -0
- package/docs/TOOLS.md +422 -0
- package/package.json +145 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Direct REST helper for Vikunja API endpoints not covered by legacy client.
|
|
3
|
+
*
|
|
4
|
+
* legacy client (the typed client this MCP server wraps) does not expose the
|
|
5
|
+
* Kanban view endpoints — listing the buckets of a view, or placing a task
|
|
6
|
+
* into a bucket. Those operations therefore call the Vikunja REST API
|
|
7
|
+
* directly, reusing the credentials of the active authenticated session.
|
|
8
|
+
*
|
|
9
|
+
* Unlike the legacy client call paths (which get retry protection via
|
|
10
|
+
* `withRetry` at each call site), this helper previously had none at all —
|
|
11
|
+
* a single dropped connection or transient 502 failed the whole operation.
|
|
12
|
+
* Every request made through `vikunjaRestRequest`/`vikunjaRestMultipartRequest`
|
|
13
|
+
* now goes through a retry loop plus a NAMED opossum circuit breaker, one
|
|
14
|
+
* breaker per endpoint group (derived from the request path, e.g.
|
|
15
|
+
* `/webhooks/events` -> `vikunja-rest-webhooks-events`). Breakers are process
|
|
16
|
+
* -wide and keyed by name via the shared registry in `./retry`, so sharing a
|
|
17
|
+
* name across unrelated endpoints would let one endpoint's failures trip the
|
|
18
|
+
* breaker for another's — the automatic per-path derivation exists
|
|
19
|
+
* specifically to avoid that. See `createCircuitBreaker` in `./retry` for
|
|
20
|
+
* why the action passed to the breaker must be a stable function reference
|
|
21
|
+
* (not a call-site closure): that was the shape of the anonymous-breaker bug
|
|
22
|
+
* fixed in the wave0 baseline, where a shared breaker kept re-firing the
|
|
23
|
+
* first closure ever registered under a name instead of the current call's.
|
|
24
|
+
*/
|
|
25
|
+
import type { AuthManager } from '../auth/AuthManager';
|
|
26
|
+
import { type RetryOptions } from './retry';
|
|
27
|
+
type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
|
|
28
|
+
/**
|
|
29
|
+
* Resolves the API base URL for a session, normalizing whether or not
|
|
30
|
+
* `apiUrl` already includes the `/api/v{n}` prefix (depends on how
|
|
31
|
+
* `VIKUNJA_URL` was configured).
|
|
32
|
+
*/
|
|
33
|
+
export declare function resolveBaseUrl(apiUrl: string): string;
|
|
34
|
+
/**
|
|
35
|
+
* Derives a stable, endpoint-group-scoped circuit breaker name from a
|
|
36
|
+
* request path, e.g. `/projects/4/webhooks` -> `vikunja-rest-projects-webhooks`,
|
|
37
|
+
* `/webhooks/events` -> `vikunja-rest-webhooks-events`, `/tasks/7` ->
|
|
38
|
+
* `vikunja-rest-tasks`. Numeric path segments (ids) are dropped so that
|
|
39
|
+
* calls against different resource instances of the same endpoint group
|
|
40
|
+
* still share one breaker; only the first two non-numeric segments are used
|
|
41
|
+
* so deeply nested paths still collapse to a reasonably-scoped group rather
|
|
42
|
+
* than a breaker-per-exact-path (which would defeat the point of tracking a
|
|
43
|
+
* rolling failure window).
|
|
44
|
+
*/
|
|
45
|
+
export declare function deriveRestBreakerName(path: string): string;
|
|
46
|
+
/**
|
|
47
|
+
* Default retry predicate for the REST helper: retries HTTP 5xx/429
|
|
48
|
+
* responses and network-level failures that look transient, but never 4xx
|
|
49
|
+
* client errors — retrying a 401/403/404 wastes the latency budget without
|
|
50
|
+
* changing the outcome (see docs/VIKUNJA_API_ISSUES.md #8: `/webhooks/events`
|
|
51
|
+
* is known to return 401 with an otherwise-valid token on some server
|
|
52
|
+
* configurations, so callers like `getValidEvents` depend on failing fast
|
|
53
|
+
* into their fallback rather than retrying a doomed request).
|
|
54
|
+
*/
|
|
55
|
+
export declare function defaultRestShouldRetry(error: unknown): boolean;
|
|
56
|
+
export interface VikunjaRestRequestOptions {
|
|
57
|
+
/**
|
|
58
|
+
* Overrides the automatically-derived circuit breaker name for this call.
|
|
59
|
+
* Only specify this to deliberately share (or split) failure accounting
|
|
60
|
+
* across paths — an explicit name still MUST identify a real, unique
|
|
61
|
+
* endpoint group, never be reused across unrelated operations.
|
|
62
|
+
*/
|
|
63
|
+
breakerName?: string;
|
|
64
|
+
/** Overrides merged over this helper's default retry/backoff settings. */
|
|
65
|
+
retry?: RetryOptions;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Performs an authenticated request against the Vikunja REST API, protected
|
|
69
|
+
* by a named circuit breaker and a bounded retry loop (see the module doc
|
|
70
|
+
* comment for why retry/breaker names work the way they do here).
|
|
71
|
+
*
|
|
72
|
+
* @param authManager - Active auth manager holding the session credentials
|
|
73
|
+
* @param method - HTTP method
|
|
74
|
+
* @param path - API path relative to the configured apiUrl, must start with '/'
|
|
75
|
+
* (e.g. '/projects/4/views')
|
|
76
|
+
* @param body - Optional value serialized as a JSON request body
|
|
77
|
+
* @param options - Optional breaker-name override and retry tuning
|
|
78
|
+
* @returns The parsed JSON response, or null when the response has no body
|
|
79
|
+
* @throws MCPError when the network call fails or the response is not OK
|
|
80
|
+
* (after retries are exhausted); the thrown error's
|
|
81
|
+
* `details.statusCode` reflects the HTTP status of the last attempt,
|
|
82
|
+
* preserved through retries so callers that treat specific status
|
|
83
|
+
* codes as fallback signals (e.g. webhooks.ts's `getValidEvents`)
|
|
84
|
+
* keep working unchanged.
|
|
85
|
+
*/
|
|
86
|
+
export declare function vikunjaRestRequest<T = unknown>(authManager: AuthManager, method: HttpMethod, path: string, body?: unknown, options?: VikunjaRestRequestOptions): Promise<T>;
|
|
87
|
+
/**
|
|
88
|
+
* Performs an authenticated multipart/form-data request against the Vikunja
|
|
89
|
+
* REST API (file uploads). Shares URL normalization, auth, error contract,
|
|
90
|
+
* and named circuit-breaker protection with `vikunjaRestRequest`, but does
|
|
91
|
+
* NOT retry by default — see `DEFAULT_MULTIPART_RETRY` for why.
|
|
92
|
+
*
|
|
93
|
+
* @param authManager - Active auth manager holding the session credentials
|
|
94
|
+
* @param method - HTTP method (Vikunja's attachment endpoint uses PUT)
|
|
95
|
+
* @param path - API path relative to the configured apiUrl, must start with '/'
|
|
96
|
+
* @param form - The multipart body to send
|
|
97
|
+
* @param options - Optional breaker-name override and retry tuning
|
|
98
|
+
* @returns The parsed JSON response, or null when the response has no body
|
|
99
|
+
* @throws MCPError when the network call fails or the response is not OK
|
|
100
|
+
*/
|
|
101
|
+
export declare function vikunjaRestMultipartRequest<T = unknown>(authManager: AuthManager, method: 'POST' | 'PUT', path: string, form: FormData, options?: VikunjaRestRequestOptions): Promise<T>;
|
|
102
|
+
/**
|
|
103
|
+
* Minimal shape of a Vikunja project view as returned by `/projects/{id}/views`.
|
|
104
|
+
*/
|
|
105
|
+
export interface VikunjaView {
|
|
106
|
+
id: number;
|
|
107
|
+
title: string;
|
|
108
|
+
project_id: number;
|
|
109
|
+
view_kind: string;
|
|
110
|
+
/**
|
|
111
|
+
* The id of this view's "done" bucket. Tasks moved into this bucket are
|
|
112
|
+
* marked done, and tasks marked done are moved here. `models.Bucket` has
|
|
113
|
+
* no `is_done_bucket` field of its own — done-ness is a property of the
|
|
114
|
+
* view, not the bucket — so callers resolve it by comparing a bucket's id
|
|
115
|
+
* against this field.
|
|
116
|
+
*/
|
|
117
|
+
done_bucket_id?: number;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Resolves the first view of a given kind (`list`, `gantt`, `table`, or
|
|
121
|
+
* `kanban`) for a project. Vikunja projects have several views; most
|
|
122
|
+
* per-view operations only make sense against one particular kind, so
|
|
123
|
+
* callers that do not already know the view id can use this to find it.
|
|
124
|
+
* Returns the full view (not just its id) so callers that need extra
|
|
125
|
+
* fields — e.g. `done_bucket_id` — don't have to fetch it again.
|
|
126
|
+
*
|
|
127
|
+
* @param authManager - Active auth manager
|
|
128
|
+
* @param projectId - Project whose view should be resolved
|
|
129
|
+
* @param viewKind - The view kind to look for
|
|
130
|
+
* @returns The project's first view of that kind
|
|
131
|
+
* @throws MCPError when the project has no view of that kind
|
|
132
|
+
*/
|
|
133
|
+
export declare function resolveViewIdByKind(authManager: AuthManager, projectId: number, viewKind: 'list' | 'gantt' | 'table' | 'kanban'): Promise<VikunjaView>;
|
|
134
|
+
/**
|
|
135
|
+
* Resolves the Kanban view of a project.
|
|
136
|
+
*
|
|
137
|
+
* Vikunja projects have several views (list, gantt, table, kanban). Bucket
|
|
138
|
+
* operations only make sense against the Kanban view, so callers that do not
|
|
139
|
+
* already know the view id can use this to find it. Returns the full view
|
|
140
|
+
* (not just its id) so callers that need `done_bucket_id` — e.g. to resolve
|
|
141
|
+
* which bucket is the "done" bucket — don't have to fetch it again.
|
|
142
|
+
*
|
|
143
|
+
* @param authManager - Active auth manager
|
|
144
|
+
* @param projectId - Project whose Kanban view should be resolved
|
|
145
|
+
* @returns The project's Kanban view
|
|
146
|
+
* @throws MCPError when the project has no Kanban view
|
|
147
|
+
*/
|
|
148
|
+
export declare function resolveKanbanView(authManager: AuthManager, projectId: number): Promise<VikunjaView>;
|
|
149
|
+
/**
|
|
150
|
+
* Resolves the Kanban view id for a project.
|
|
151
|
+
*
|
|
152
|
+
* @param authManager - Active auth manager
|
|
153
|
+
* @param projectId - Project whose Kanban view should be resolved
|
|
154
|
+
* @returns The numeric id of the project's Kanban view
|
|
155
|
+
* @throws MCPError when the project has no Kanban view
|
|
156
|
+
*/
|
|
157
|
+
export declare function resolveKanbanViewId(authManager: AuthManager, projectId: number): Promise<number>;
|
|
158
|
+
export {};
|
|
159
|
+
//# sourceMappingURL=vikunja-rest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vikunja-rest.d.ts","sourceRoot":"","sources":["../../src/utils/vikunja-rest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAqD,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAE/F,KAAK,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;AAE9D;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI1D;AA8ED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAW9D;AAED,MAAM,WAAW,yBAAyB;IACxC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB;AA4ED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,kBAAkB,CAAC,CAAC,GAAG,OAAO,EAClD,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,OAAO,EACd,OAAO,CAAC,EAAE,yBAAyB,GAClC,OAAO,CAAC,CAAC,CAAC,CAaZ;AA4ED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,2BAA2B,CAAC,CAAC,GAAG,OAAO,EAC3D,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,GAAG,KAAK,EACtB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,QAAQ,EACd,OAAO,CAAC,EAAE,yBAAyB,GAClC,OAAO,CAAC,CAAC,CAAC,CAiBZ;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAC9C,OAAO,CAAC,WAAW,CAAC,CAmBtB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,WAAW,CAAC,CAEtB;AAED;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,CAGjB"}
|
|
@@ -0,0 +1,378 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Direct REST helper for Vikunja API endpoints not covered by legacy client.
|
|
4
|
+
*
|
|
5
|
+
* legacy client (the typed client this MCP server wraps) does not expose the
|
|
6
|
+
* Kanban view endpoints — listing the buckets of a view, or placing a task
|
|
7
|
+
* into a bucket. Those operations therefore call the Vikunja REST API
|
|
8
|
+
* directly, reusing the credentials of the active authenticated session.
|
|
9
|
+
*
|
|
10
|
+
* Unlike the legacy client call paths (which get retry protection via
|
|
11
|
+
* `withRetry` at each call site), this helper previously had none at all —
|
|
12
|
+
* a single dropped connection or transient 502 failed the whole operation.
|
|
13
|
+
* Every request made through `vikunjaRestRequest`/`vikunjaRestMultipartRequest`
|
|
14
|
+
* now goes through a retry loop plus a NAMED opossum circuit breaker, one
|
|
15
|
+
* breaker per endpoint group (derived from the request path, e.g.
|
|
16
|
+
* `/webhooks/events` -> `vikunja-rest-webhooks-events`). Breakers are process
|
|
17
|
+
* -wide and keyed by name via the shared registry in `./retry`, so sharing a
|
|
18
|
+
* name across unrelated endpoints would let one endpoint's failures trip the
|
|
19
|
+
* breaker for another's — the automatic per-path derivation exists
|
|
20
|
+
* specifically to avoid that. See `createCircuitBreaker` in `./retry` for
|
|
21
|
+
* why the action passed to the breaker must be a stable function reference
|
|
22
|
+
* (not a call-site closure): that was the shape of the anonymous-breaker bug
|
|
23
|
+
* fixed in the wave0 baseline, where a shared breaker kept re-firing the
|
|
24
|
+
* first closure ever registered under a name instead of the current call's.
|
|
25
|
+
*/
|
|
26
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
+
exports.resolveBaseUrl = resolveBaseUrl;
|
|
28
|
+
exports.deriveRestBreakerName = deriveRestBreakerName;
|
|
29
|
+
exports.defaultRestShouldRetry = defaultRestShouldRetry;
|
|
30
|
+
exports.vikunjaRestRequest = vikunjaRestRequest;
|
|
31
|
+
exports.vikunjaRestMultipartRequest = vikunjaRestMultipartRequest;
|
|
32
|
+
exports.resolveViewIdByKind = resolveViewIdByKind;
|
|
33
|
+
exports.resolveKanbanView = resolveKanbanView;
|
|
34
|
+
exports.resolveKanbanViewId = resolveKanbanViewId;
|
|
35
|
+
const types_1 = require("../types");
|
|
36
|
+
const retry_1 = require("./retry");
|
|
37
|
+
/**
|
|
38
|
+
* Resolves the API base URL for a session, normalizing whether or not
|
|
39
|
+
* `apiUrl` already includes the `/api/v{n}` prefix (depends on how
|
|
40
|
+
* `VIKUNJA_URL` was configured).
|
|
41
|
+
*/
|
|
42
|
+
function resolveBaseUrl(apiUrl) {
|
|
43
|
+
const trimmed = apiUrl.replace(/\/+$/, '');
|
|
44
|
+
return /\/api\/v\d+$/.test(trimmed) ? trimmed : `${trimmed}/api/v1`;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Derives a stable, endpoint-group-scoped circuit breaker name from a
|
|
48
|
+
* request path, e.g. `/projects/4/webhooks` -> `vikunja-rest-projects-webhooks`,
|
|
49
|
+
* `/webhooks/events` -> `vikunja-rest-webhooks-events`, `/tasks/7` ->
|
|
50
|
+
* `vikunja-rest-tasks`. Numeric path segments (ids) are dropped so that
|
|
51
|
+
* calls against different resource instances of the same endpoint group
|
|
52
|
+
* still share one breaker; only the first two non-numeric segments are used
|
|
53
|
+
* so deeply nested paths still collapse to a reasonably-scoped group rather
|
|
54
|
+
* than a breaker-per-exact-path (which would defeat the point of tracking a
|
|
55
|
+
* rolling failure window).
|
|
56
|
+
*/
|
|
57
|
+
function deriveRestBreakerName(path) {
|
|
58
|
+
const segments = path.split('/').filter((seg) => seg.length > 0 && !/^\d+$/.test(seg));
|
|
59
|
+
const group = segments.slice(0, 2).join('-') || 'root';
|
|
60
|
+
return `vikunja-rest-${group}`;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Default retry/backoff tuning for JSON REST calls. Deliberately modest —
|
|
64
|
+
* this is a fallback safety net for transient failures, not a substitute
|
|
65
|
+
* for a caller thinking about idempotency. Overridable per call via
|
|
66
|
+
* `VikunjaRestRequestOptions.retry`.
|
|
67
|
+
*/
|
|
68
|
+
const DEFAULT_JSON_RETRY = {
|
|
69
|
+
maxRetries: 2,
|
|
70
|
+
initialDelay: 250,
|
|
71
|
+
maxDelay: 2000,
|
|
72
|
+
backoffFactor: 2,
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* Multipart uploads default to NO automatic retry: Vikunja's attachment
|
|
76
|
+
* endpoint is additive (each successful PUT adds another attachment), so
|
|
77
|
+
* blindly resending after an ambiguous failure (e.g. the server received
|
|
78
|
+
* the file but the response was lost) risks silently duplicating the
|
|
79
|
+
* attachment. Callers that know their upload is safe to retry (e.g. a
|
|
80
|
+
* network error observed before any bytes were sent) can opt in via
|
|
81
|
+
* `options.retry.maxRetries`. The circuit breaker still applies, so a
|
|
82
|
+
* persistently failing endpoint fails fast rather than hanging every call.
|
|
83
|
+
*/
|
|
84
|
+
const DEFAULT_MULTIPART_RETRY = {
|
|
85
|
+
maxRetries: 0,
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* Node/undici system error codes that indicate a connection-level failure
|
|
89
|
+
* worth retrying (as opposed to e.g. a validation or programming error).
|
|
90
|
+
* `fetch()` failures typically surface as `TypeError: fetch failed` with the
|
|
91
|
+
* real cause nested in `.cause` — checked below alongside `.code` — rather
|
|
92
|
+
* than as a directly-coded Error, so the code must look in both places.
|
|
93
|
+
*/
|
|
94
|
+
const TRANSIENT_NETWORK_CODES = new Set([
|
|
95
|
+
'ECONNRESET',
|
|
96
|
+
'ECONNREFUSED',
|
|
97
|
+
'ETIMEDOUT',
|
|
98
|
+
'ENOTFOUND',
|
|
99
|
+
'ENETUNREACH',
|
|
100
|
+
'EAI_AGAIN',
|
|
101
|
+
'EPIPE',
|
|
102
|
+
'UND_ERR_CONNECT_TIMEOUT',
|
|
103
|
+
'UND_ERR_HEADERS_TIMEOUT',
|
|
104
|
+
'UND_ERR_BODY_TIMEOUT',
|
|
105
|
+
'UND_ERR_SOCKET',
|
|
106
|
+
]);
|
|
107
|
+
/**
|
|
108
|
+
* Determines whether a caught network-layer error (i.e. `fetch()` itself
|
|
109
|
+
* rejected, before any HTTP response was received) looks transient and
|
|
110
|
+
* therefore worth retrying. Checked BEFORE the error is wrapped into an
|
|
111
|
+
* MCPError, because wrapping discards the original `.code`/`.cause.code` —
|
|
112
|
+
* a plain `new MCPError(..., formattedMessage)` has no such property, so a
|
|
113
|
+
* retry predicate consulted only the wrapped error would silently never
|
|
114
|
+
* retry any real network failure. The result is threaded through via
|
|
115
|
+
* `MCPErrorDetails.transient` so `defaultRestShouldRetry` can use it later.
|
|
116
|
+
*/
|
|
117
|
+
function isTransientNetworkError(error) {
|
|
118
|
+
if (!(error instanceof Error)) {
|
|
119
|
+
return false;
|
|
120
|
+
}
|
|
121
|
+
const code = error.code;
|
|
122
|
+
if (typeof code === 'string' && TRANSIENT_NETWORK_CODES.has(code)) {
|
|
123
|
+
return true;
|
|
124
|
+
}
|
|
125
|
+
const cause = error.cause;
|
|
126
|
+
if (cause && typeof cause === 'object' && 'code' in cause) {
|
|
127
|
+
const causeCode = cause.code;
|
|
128
|
+
if (typeof causeCode === 'string' && TRANSIENT_NETWORK_CODES.has(causeCode)) {
|
|
129
|
+
return true;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return (0, retry_1.isRetryableError)(error);
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Default retry predicate for the REST helper: retries HTTP 5xx/429
|
|
136
|
+
* responses and network-level failures that look transient, but never 4xx
|
|
137
|
+
* client errors — retrying a 401/403/404 wastes the latency budget without
|
|
138
|
+
* changing the outcome (see docs/VIKUNJA_API_ISSUES.md #8: `/webhooks/events`
|
|
139
|
+
* is known to return 401 with an otherwise-valid token on some server
|
|
140
|
+
* configurations, so callers like `getValidEvents` depend on failing fast
|
|
141
|
+
* into their fallback rather than retrying a doomed request).
|
|
142
|
+
*/
|
|
143
|
+
function defaultRestShouldRetry(error) {
|
|
144
|
+
if (error instanceof types_1.MCPError) {
|
|
145
|
+
const statusCode = error.details?.statusCode;
|
|
146
|
+
if (statusCode !== undefined) {
|
|
147
|
+
return statusCode >= 500 || statusCode === 429;
|
|
148
|
+
}
|
|
149
|
+
if (error.details?.transient !== undefined) {
|
|
150
|
+
return error.details.transient;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
return (0, retry_1.isRetryableError)(error);
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* The actual network call, with no retry/breaker logic of its own. This is
|
|
157
|
+
* intentionally a plain top-level function (not a closure factory) so it
|
|
158
|
+
* can be safely registered once per breaker name and re-fired with fresh
|
|
159
|
+
* arguments on every call — see the module doc comment above.
|
|
160
|
+
*/
|
|
161
|
+
async function vikunjaRestRequestRaw(authManager, method, path, body) {
|
|
162
|
+
const session = authManager.getSession();
|
|
163
|
+
const url = `${resolveBaseUrl(session.apiUrl)}${path}`;
|
|
164
|
+
let response;
|
|
165
|
+
try {
|
|
166
|
+
response = await fetch(url, {
|
|
167
|
+
method,
|
|
168
|
+
headers: {
|
|
169
|
+
Authorization: `Bearer ${session.apiToken}`,
|
|
170
|
+
'Content-Type': 'application/json',
|
|
171
|
+
},
|
|
172
|
+
...(body !== undefined ? { body: JSON.stringify(body) } : {}),
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
catch (error) {
|
|
176
|
+
throw new types_1.MCPError(types_1.ErrorCode.API_ERROR, `Vikunja REST request failed (${method} ${path}): ${error instanceof Error ? error.message : String(error)}`, { transient: isTransientNetworkError(error) });
|
|
177
|
+
}
|
|
178
|
+
if (!response.ok) {
|
|
179
|
+
let detail = '';
|
|
180
|
+
try {
|
|
181
|
+
detail = (await response.text()).slice(0, 500);
|
|
182
|
+
}
|
|
183
|
+
catch {
|
|
184
|
+
// Body could not be read — fall back to the status line only.
|
|
185
|
+
}
|
|
186
|
+
const httpError = new types_1.MCPError(types_1.ErrorCode.API_ERROR, `Vikunja REST request failed (${method} ${path}): HTTP ${response.status} ${response.statusText}${detail ? ` — ${detail}` : ''}`, { statusCode: response.status });
|
|
187
|
+
// Also expose the conventional top-level `.status` (mirrors
|
|
188
|
+
// `.details.statusCode`, which pre-dates this): shared classifiers
|
|
189
|
+
// written against the legacy client's error shape —
|
|
190
|
+
// `isAuthenticationError`/`extractHttpStatus`
|
|
191
|
+
// (src/utils/auth-error-handler.ts, src/utils/http-error-detail.ts) —
|
|
192
|
+
// read `.status`/`.response.status` directly on the error object, not
|
|
193
|
+
// `.details.statusCode`. Without this, a REST-layer 401/403 is invisible
|
|
194
|
+
// to any caller that classifies errors that way (e.g. an
|
|
195
|
+
// `isAuthenticationError`-driven retry predicate).
|
|
196
|
+
Object.assign(httpError, { status: response.status });
|
|
197
|
+
throw httpError;
|
|
198
|
+
}
|
|
199
|
+
const text = await response.text();
|
|
200
|
+
if (!text) {
|
|
201
|
+
return null;
|
|
202
|
+
}
|
|
203
|
+
try {
|
|
204
|
+
return JSON.parse(text);
|
|
205
|
+
}
|
|
206
|
+
catch {
|
|
207
|
+
// A 2xx response with a non-JSON body (rare) is treated as an empty result.
|
|
208
|
+
return null;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Performs an authenticated request against the Vikunja REST API, protected
|
|
213
|
+
* by a named circuit breaker and a bounded retry loop (see the module doc
|
|
214
|
+
* comment for why retry/breaker names work the way they do here).
|
|
215
|
+
*
|
|
216
|
+
* @param authManager - Active auth manager holding the session credentials
|
|
217
|
+
* @param method - HTTP method
|
|
218
|
+
* @param path - API path relative to the configured apiUrl, must start with '/'
|
|
219
|
+
* (e.g. '/projects/4/views')
|
|
220
|
+
* @param body - Optional value serialized as a JSON request body
|
|
221
|
+
* @param options - Optional breaker-name override and retry tuning
|
|
222
|
+
* @returns The parsed JSON response, or null when the response has no body
|
|
223
|
+
* @throws MCPError when the network call fails or the response is not OK
|
|
224
|
+
* (after retries are exhausted); the thrown error's
|
|
225
|
+
* `details.statusCode` reflects the HTTP status of the last attempt,
|
|
226
|
+
* preserved through retries so callers that treat specific status
|
|
227
|
+
* codes as fallback signals (e.g. webhooks.ts's `getValidEvents`)
|
|
228
|
+
* keep working unchanged.
|
|
229
|
+
*/
|
|
230
|
+
async function vikunjaRestRequest(authManager, method, path, body, options) {
|
|
231
|
+
const breakerName = options?.breakerName ?? deriveRestBreakerName(path);
|
|
232
|
+
const retryOptions = {
|
|
233
|
+
...DEFAULT_JSON_RETRY,
|
|
234
|
+
shouldRetry: defaultRestShouldRetry,
|
|
235
|
+
...options?.retry,
|
|
236
|
+
};
|
|
237
|
+
const breaker = (0, retry_1.createCircuitBreaker)(vikunjaRestRequestRaw, breakerName, retryOptions);
|
|
238
|
+
const result = await (0, retry_1.withRetry)(() => breaker.fire(authManager, method, path, body), retryOptions);
|
|
239
|
+
return result;
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* The multipart equivalent of `vikunjaRestRequestRaw`: same URL
|
|
243
|
+
* normalization, auth, and error contract, but sends a `FormData` body and
|
|
244
|
+
* deliberately omits the `Content-Type` header so `fetch` can set the
|
|
245
|
+
* correct `multipart/form-data; boundary=...` value itself — setting it
|
|
246
|
+
* manually breaks the boundary and the server rejects the upload.
|
|
247
|
+
*/
|
|
248
|
+
async function vikunjaRestMultipartRequestRaw(authManager, method, path, form) {
|
|
249
|
+
const session = authManager.getSession();
|
|
250
|
+
const url = `${resolveBaseUrl(session.apiUrl)}${path}`;
|
|
251
|
+
let response;
|
|
252
|
+
try {
|
|
253
|
+
response = await fetch(url, {
|
|
254
|
+
method,
|
|
255
|
+
headers: {
|
|
256
|
+
Authorization: `Bearer ${session.apiToken}`,
|
|
257
|
+
},
|
|
258
|
+
body: form,
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
catch (error) {
|
|
262
|
+
throw new types_1.MCPError(types_1.ErrorCode.API_ERROR, `Vikunja REST request failed (${method} ${path}): ${error instanceof Error ? error.message : String(error)}`, { transient: isTransientNetworkError(error) });
|
|
263
|
+
}
|
|
264
|
+
if (!response.ok) {
|
|
265
|
+
let detail = '';
|
|
266
|
+
try {
|
|
267
|
+
detail = (await response.text()).slice(0, 500);
|
|
268
|
+
}
|
|
269
|
+
catch {
|
|
270
|
+
// Body could not be read — fall back to the status line only.
|
|
271
|
+
}
|
|
272
|
+
const httpError = new types_1.MCPError(types_1.ErrorCode.API_ERROR, `Vikunja REST request failed (${method} ${path}): HTTP ${response.status} ${response.statusText}${detail ? ` — ${detail}` : ''}`, { statusCode: response.status });
|
|
273
|
+
// Also expose the conventional top-level `.status` (mirrors
|
|
274
|
+
// `.details.statusCode`, which pre-dates this): shared classifiers
|
|
275
|
+
// written against the legacy client's error shape —
|
|
276
|
+
// `isAuthenticationError`/`extractHttpStatus`
|
|
277
|
+
// (src/utils/auth-error-handler.ts, src/utils/http-error-detail.ts) —
|
|
278
|
+
// read `.status`/`.response.status` directly on the error object, not
|
|
279
|
+
// `.details.statusCode`. Without this, a REST-layer 401/403 is invisible
|
|
280
|
+
// to any caller that classifies errors that way (e.g. an
|
|
281
|
+
// `isAuthenticationError`-driven retry predicate).
|
|
282
|
+
Object.assign(httpError, { status: response.status });
|
|
283
|
+
throw httpError;
|
|
284
|
+
}
|
|
285
|
+
const text = await response.text();
|
|
286
|
+
if (!text) {
|
|
287
|
+
return null;
|
|
288
|
+
}
|
|
289
|
+
try {
|
|
290
|
+
return JSON.parse(text);
|
|
291
|
+
}
|
|
292
|
+
catch {
|
|
293
|
+
// A 2xx response with a non-JSON body (rare) is treated as an empty result.
|
|
294
|
+
return null;
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* Performs an authenticated multipart/form-data request against the Vikunja
|
|
299
|
+
* REST API (file uploads). Shares URL normalization, auth, error contract,
|
|
300
|
+
* and named circuit-breaker protection with `vikunjaRestRequest`, but does
|
|
301
|
+
* NOT retry by default — see `DEFAULT_MULTIPART_RETRY` for why.
|
|
302
|
+
*
|
|
303
|
+
* @param authManager - Active auth manager holding the session credentials
|
|
304
|
+
* @param method - HTTP method (Vikunja's attachment endpoint uses PUT)
|
|
305
|
+
* @param path - API path relative to the configured apiUrl, must start with '/'
|
|
306
|
+
* @param form - The multipart body to send
|
|
307
|
+
* @param options - Optional breaker-name override and retry tuning
|
|
308
|
+
* @returns The parsed JSON response, or null when the response has no body
|
|
309
|
+
* @throws MCPError when the network call fails or the response is not OK
|
|
310
|
+
*/
|
|
311
|
+
async function vikunjaRestMultipartRequest(authManager, method, path, form, options) {
|
|
312
|
+
const breakerName = options?.breakerName ?? deriveRestBreakerName(path);
|
|
313
|
+
const retryOptions = {
|
|
314
|
+
...DEFAULT_MULTIPART_RETRY,
|
|
315
|
+
shouldRetry: defaultRestShouldRetry,
|
|
316
|
+
...options?.retry,
|
|
317
|
+
};
|
|
318
|
+
const breaker = (0, retry_1.createCircuitBreaker)(vikunjaRestMultipartRequestRaw, breakerName, retryOptions);
|
|
319
|
+
const result = await (0, retry_1.withRetry)(() => breaker.fire(authManager, method, path, form), retryOptions);
|
|
320
|
+
return result;
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Resolves the first view of a given kind (`list`, `gantt`, `table`, or
|
|
324
|
+
* `kanban`) for a project. Vikunja projects have several views; most
|
|
325
|
+
* per-view operations only make sense against one particular kind, so
|
|
326
|
+
* callers that do not already know the view id can use this to find it.
|
|
327
|
+
* Returns the full view (not just its id) so callers that need extra
|
|
328
|
+
* fields — e.g. `done_bucket_id` — don't have to fetch it again.
|
|
329
|
+
*
|
|
330
|
+
* @param authManager - Active auth manager
|
|
331
|
+
* @param projectId - Project whose view should be resolved
|
|
332
|
+
* @param viewKind - The view kind to look for
|
|
333
|
+
* @returns The project's first view of that kind
|
|
334
|
+
* @throws MCPError when the project has no view of that kind
|
|
335
|
+
*/
|
|
336
|
+
async function resolveViewIdByKind(authManager, projectId, viewKind) {
|
|
337
|
+
const views = await vikunjaRestRequest(authManager, 'GET', `/projects/${projectId}/views`);
|
|
338
|
+
const view = Array.isArray(views)
|
|
339
|
+
? views.find((candidate) => candidate.view_kind === viewKind)
|
|
340
|
+
: undefined;
|
|
341
|
+
if (!view) {
|
|
342
|
+
const label = viewKind === 'kanban' ? 'Kanban' : viewKind;
|
|
343
|
+
throw new types_1.MCPError(types_1.ErrorCode.NOT_FOUND, viewKind === 'kanban'
|
|
344
|
+
? `Project ${projectId} has no Kanban view, so it has no buckets`
|
|
345
|
+
: `Project ${projectId} has no ${label} view`);
|
|
346
|
+
}
|
|
347
|
+
return view;
|
|
348
|
+
}
|
|
349
|
+
/**
|
|
350
|
+
* Resolves the Kanban view of a project.
|
|
351
|
+
*
|
|
352
|
+
* Vikunja projects have several views (list, gantt, table, kanban). Bucket
|
|
353
|
+
* operations only make sense against the Kanban view, so callers that do not
|
|
354
|
+
* already know the view id can use this to find it. Returns the full view
|
|
355
|
+
* (not just its id) so callers that need `done_bucket_id` — e.g. to resolve
|
|
356
|
+
* which bucket is the "done" bucket — don't have to fetch it again.
|
|
357
|
+
*
|
|
358
|
+
* @param authManager - Active auth manager
|
|
359
|
+
* @param projectId - Project whose Kanban view should be resolved
|
|
360
|
+
* @returns The project's Kanban view
|
|
361
|
+
* @throws MCPError when the project has no Kanban view
|
|
362
|
+
*/
|
|
363
|
+
async function resolveKanbanView(authManager, projectId) {
|
|
364
|
+
return resolveViewIdByKind(authManager, projectId, 'kanban');
|
|
365
|
+
}
|
|
366
|
+
/**
|
|
367
|
+
* Resolves the Kanban view id for a project.
|
|
368
|
+
*
|
|
369
|
+
* @param authManager - Active auth manager
|
|
370
|
+
* @param projectId - Project whose Kanban view should be resolved
|
|
371
|
+
* @returns The numeric id of the project's Kanban view
|
|
372
|
+
* @throws MCPError when the project has no Kanban view
|
|
373
|
+
*/
|
|
374
|
+
async function resolveKanbanViewId(authManager, projectId) {
|
|
375
|
+
const view = await resolveKanbanView(authManager, projectId);
|
|
376
|
+
return view.id;
|
|
377
|
+
}
|
|
378
|
+
//# sourceMappingURL=vikunja-rest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vikunja-rest.js","sourceRoot":"","sources":["../../src/utils/vikunja-rest.ts"],"names":[],"mappings":"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"}
|