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,522 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Projects Tool Module - Main Orchestrator
|
|
4
|
+
* Coordinates all project-related operations through specialized submodules
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.searchUnsplashBackgrounds = exports.setUnsplashBackground = exports.removeProjectBackground = exports.listProjectMembers = exports.shareProjectWithTeam = exports.shareProjectWithUser = exports.removeProjectTeam = exports.updateProjectTeamPermission = exports.addProjectTeam = exports.listProjectTeams = exports.removeProjectUser = exports.updateProjectUserPermission = exports.addProjectUser = exports.searchProjectUsers = exports.listProjectUsers = exports.duplicateProject = exports.setDoneBucket = exports.deleteView = exports.updateView = exports.createView = exports.getView = exports.listViews = exports.listViewTasks = exports.deleteBucket = exports.updateBucket = exports.createBucket = exports.listBuckets = exports.authProjectShare = exports.deleteProjectShare = exports.getProjectShare = exports.listProjectShares = exports.createProjectShare = exports.moveProject = exports.getProjectBreadcrumb = exports.getProjectTree = exports.getProjectChildren = exports.unarchiveProject = exports.archiveProject = exports.deleteProject = exports.updateProject = exports.createProject = exports.getProject = exports.listProjects = void 0;
|
|
8
|
+
exports.resolveBackgroundsEnabled = resolveBackgroundsEnabled;
|
|
9
|
+
exports.registerProjectsTool = registerProjectsTool;
|
|
10
|
+
const zod_1 = require("zod");
|
|
11
|
+
const types_1 = require("../../types");
|
|
12
|
+
const error_handler_1 = require("../../utils/error-handler");
|
|
13
|
+
const validation_1 = require("./validation");
|
|
14
|
+
const read_only_1 = require("../../utils/read-only");
|
|
15
|
+
const config_1 = require("../../config");
|
|
16
|
+
const logger_1 = require("../../utils/logger");
|
|
17
|
+
// Import all submodule operations
|
|
18
|
+
const crud_1 = require("./crud");
|
|
19
|
+
Object.defineProperty(exports, "listProjects", { enumerable: true, get: function () { return crud_1.listProjects; } });
|
|
20
|
+
Object.defineProperty(exports, "getProject", { enumerable: true, get: function () { return crud_1.getProject; } });
|
|
21
|
+
Object.defineProperty(exports, "createProject", { enumerable: true, get: function () { return crud_1.createProject; } });
|
|
22
|
+
Object.defineProperty(exports, "updateProject", { enumerable: true, get: function () { return crud_1.updateProject; } });
|
|
23
|
+
Object.defineProperty(exports, "deleteProject", { enumerable: true, get: function () { return crud_1.deleteProject; } });
|
|
24
|
+
Object.defineProperty(exports, "archiveProject", { enumerable: true, get: function () { return crud_1.archiveProject; } });
|
|
25
|
+
Object.defineProperty(exports, "unarchiveProject", { enumerable: true, get: function () { return crud_1.unarchiveProject; } });
|
|
26
|
+
const hierarchy_1 = require("./hierarchy");
|
|
27
|
+
Object.defineProperty(exports, "getProjectChildren", { enumerable: true, get: function () { return hierarchy_1.getProjectChildren; } });
|
|
28
|
+
Object.defineProperty(exports, "getProjectTree", { enumerable: true, get: function () { return hierarchy_1.getProjectTree; } });
|
|
29
|
+
Object.defineProperty(exports, "getProjectBreadcrumb", { enumerable: true, get: function () { return hierarchy_1.getProjectBreadcrumb; } });
|
|
30
|
+
Object.defineProperty(exports, "moveProject", { enumerable: true, get: function () { return hierarchy_1.moveProject; } });
|
|
31
|
+
const sharing_1 = require("./sharing");
|
|
32
|
+
Object.defineProperty(exports, "createProjectShare", { enumerable: true, get: function () { return sharing_1.createProjectShare; } });
|
|
33
|
+
Object.defineProperty(exports, "listProjectShares", { enumerable: true, get: function () { return sharing_1.listProjectShares; } });
|
|
34
|
+
Object.defineProperty(exports, "getProjectShare", { enumerable: true, get: function () { return sharing_1.getProjectShare; } });
|
|
35
|
+
Object.defineProperty(exports, "deleteProjectShare", { enumerable: true, get: function () { return sharing_1.deleteProjectShare; } });
|
|
36
|
+
Object.defineProperty(exports, "authProjectShare", { enumerable: true, get: function () { return sharing_1.authProjectShare; } });
|
|
37
|
+
const buckets_1 = require("./buckets");
|
|
38
|
+
Object.defineProperty(exports, "listBuckets", { enumerable: true, get: function () { return buckets_1.listBuckets; } });
|
|
39
|
+
Object.defineProperty(exports, "createBucket", { enumerable: true, get: function () { return buckets_1.createBucket; } });
|
|
40
|
+
Object.defineProperty(exports, "updateBucket", { enumerable: true, get: function () { return buckets_1.updateBucket; } });
|
|
41
|
+
Object.defineProperty(exports, "deleteBucket", { enumerable: true, get: function () { return buckets_1.deleteBucket; } });
|
|
42
|
+
Object.defineProperty(exports, "listViewTasks", { enumerable: true, get: function () { return buckets_1.listViewTasks; } });
|
|
43
|
+
const views_1 = require("./views");
|
|
44
|
+
Object.defineProperty(exports, "listViews", { enumerable: true, get: function () { return views_1.listViews; } });
|
|
45
|
+
Object.defineProperty(exports, "getView", { enumerable: true, get: function () { return views_1.getView; } });
|
|
46
|
+
Object.defineProperty(exports, "createView", { enumerable: true, get: function () { return views_1.createView; } });
|
|
47
|
+
Object.defineProperty(exports, "updateView", { enumerable: true, get: function () { return views_1.updateView; } });
|
|
48
|
+
Object.defineProperty(exports, "deleteView", { enumerable: true, get: function () { return views_1.deleteView; } });
|
|
49
|
+
Object.defineProperty(exports, "setDoneBucket", { enumerable: true, get: function () { return views_1.setDoneBucket; } });
|
|
50
|
+
const duplicate_1 = require("./duplicate");
|
|
51
|
+
Object.defineProperty(exports, "duplicateProject", { enumerable: true, get: function () { return duplicate_1.duplicateProject; } });
|
|
52
|
+
const backgrounds_1 = require("./backgrounds");
|
|
53
|
+
Object.defineProperty(exports, "removeProjectBackground", { enumerable: true, get: function () { return backgrounds_1.removeProjectBackground; } });
|
|
54
|
+
Object.defineProperty(exports, "setUnsplashBackground", { enumerable: true, get: function () { return backgrounds_1.setUnsplashBackground; } });
|
|
55
|
+
Object.defineProperty(exports, "searchUnsplashBackgrounds", { enumerable: true, get: function () { return backgrounds_1.searchUnsplashBackgrounds; } });
|
|
56
|
+
const sharing_access_1 = require("./sharing-access");
|
|
57
|
+
Object.defineProperty(exports, "listProjectUsers", { enumerable: true, get: function () { return sharing_access_1.listProjectUsers; } });
|
|
58
|
+
Object.defineProperty(exports, "searchProjectUsers", { enumerable: true, get: function () { return sharing_access_1.searchProjectUsers; } });
|
|
59
|
+
Object.defineProperty(exports, "addProjectUser", { enumerable: true, get: function () { return sharing_access_1.addProjectUser; } });
|
|
60
|
+
Object.defineProperty(exports, "updateProjectUserPermission", { enumerable: true, get: function () { return sharing_access_1.updateProjectUserPermission; } });
|
|
61
|
+
Object.defineProperty(exports, "removeProjectUser", { enumerable: true, get: function () { return sharing_access_1.removeProjectUser; } });
|
|
62
|
+
Object.defineProperty(exports, "listProjectTeams", { enumerable: true, get: function () { return sharing_access_1.listProjectTeams; } });
|
|
63
|
+
Object.defineProperty(exports, "addProjectTeam", { enumerable: true, get: function () { return sharing_access_1.addProjectTeam; } });
|
|
64
|
+
Object.defineProperty(exports, "updateProjectTeamPermission", { enumerable: true, get: function () { return sharing_access_1.updateProjectTeamPermission; } });
|
|
65
|
+
Object.defineProperty(exports, "removeProjectTeam", { enumerable: true, get: function () { return sharing_access_1.removeProjectTeam; } });
|
|
66
|
+
Object.defineProperty(exports, "shareProjectWithUser", { enumerable: true, get: function () { return sharing_access_1.shareProjectWithUser; } });
|
|
67
|
+
Object.defineProperty(exports, "shareProjectWithTeam", { enumerable: true, get: function () { return sharing_access_1.shareProjectWithTeam; } });
|
|
68
|
+
Object.defineProperty(exports, "listProjectMembers", { enumerable: true, get: function () { return sharing_access_1.listProjectMembers; } });
|
|
69
|
+
// The three project-backgrounds subcommands (G7,
|
|
70
|
+
// docs/ENDPOINT-TAIL-RETRIAGE.md) live behind the opt-in, deny-by-default
|
|
71
|
+
// `backgrounds` module config key (src/config/types.ts) — the deliberate
|
|
72
|
+
// opposite of every other default-ON domain module. Every other module in
|
|
73
|
+
// this codebase gates a whole standalone tool at registration time so a
|
|
74
|
+
// disabled module's tools are "invisible to the client, not merely
|
|
75
|
+
// rejected at call time" (docs/CONFIGURATION.md). `backgrounds` gates only
|
|
76
|
+
// three subcommands *within* the always-registered `vikunja_projects` tool,
|
|
77
|
+
// so that same "genuinely absent from the schema" contract is reproduced
|
|
78
|
+
// here at the subcommand-enum level instead: the enum literally does not
|
|
79
|
+
// contain these three strings when the module is disabled, so a call
|
|
80
|
+
// naming one of them fails MCP schema validation (an unrecognized enum
|
|
81
|
+
// value) rather than being accepted and then rejected by handler logic.
|
|
82
|
+
const BACKGROUND_SUBCOMMANDS = [
|
|
83
|
+
'remove-background',
|
|
84
|
+
'set-unsplash-background',
|
|
85
|
+
'search-unsplash',
|
|
86
|
+
];
|
|
87
|
+
/**
|
|
88
|
+
* Resolves whether the `backgrounds` module is enabled, failing safe to
|
|
89
|
+
* disabled (matching the schema default and the "opt-in" contract) rather
|
|
90
|
+
* than fatal — same fail-safe rationale as `resolveModulesConfig` in
|
|
91
|
+
* `src/tools/index.ts`. `override` lets `registerTools` pass down a value
|
|
92
|
+
* it already computed once (avoiding a second `loadConfiguration()` call);
|
|
93
|
+
* omitted, this resolves independently — used by direct unit-test call
|
|
94
|
+
* sites that instantiate `registerProjectsTool` without going through
|
|
95
|
+
* `registerTools`.
|
|
96
|
+
*/
|
|
97
|
+
function resolveBackgroundsEnabled(override) {
|
|
98
|
+
if (override !== undefined) {
|
|
99
|
+
return override;
|
|
100
|
+
}
|
|
101
|
+
try {
|
|
102
|
+
return (0, config_1.isModuleEnabled)(config_1.ConfigurationManager.getInstance().loadConfiguration().modules.backgrounds);
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
logger_1.logger.error('Failed to load module gating configuration while resolving the backgrounds module; ' +
|
|
106
|
+
'defaulting to disabled (opt-in, deny-by-default):', error);
|
|
107
|
+
return false;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Legacy single-tool interface for backward compatibility
|
|
112
|
+
* Registers a single tool with all subcommands like the original implementation
|
|
113
|
+
*/
|
|
114
|
+
function registerProjectsTool(server, authManager, clientFactory, backgroundsEnabledOverride) {
|
|
115
|
+
const backgroundsEnabled = resolveBackgroundsEnabled(backgroundsEnabledOverride);
|
|
116
|
+
const baseSubcommands = [
|
|
117
|
+
'list', 'get', 'create', 'update', 'delete', 'archive', 'unarchive',
|
|
118
|
+
'get-children', 'get-tree', 'get-breadcrumb', 'move',
|
|
119
|
+
'create-share', 'list-shares', 'get-share', 'delete-share', 'auth-share',
|
|
120
|
+
'list-buckets', 'create-bucket', 'update-bucket', 'delete-bucket',
|
|
121
|
+
'list-views', 'get-view', 'create-view', 'update-view', 'delete-view',
|
|
122
|
+
'set-done-bucket', 'list-view-tasks', 'duplicate',
|
|
123
|
+
// Direct user/team sharing — primitives
|
|
124
|
+
'list-project-users', 'search-project-users', 'add-project-user',
|
|
125
|
+
'update-project-user-permission', 'remove-project-user',
|
|
126
|
+
'list-project-teams', 'add-project-team',
|
|
127
|
+
'update-project-team-permission', 'remove-project-team',
|
|
128
|
+
// Direct user/team sharing — composites
|
|
129
|
+
'share-with-user', 'share-with-team', 'list-members',
|
|
130
|
+
];
|
|
131
|
+
const subcommandValues = (backgroundsEnabled ? [...baseSubcommands, ...BACKGROUND_SUBCOMMANDS] : baseSubcommands);
|
|
132
|
+
server.tool('vikunja_projects', (0, read_only_1.withReadOnlyNote)('vikunja_projects', 'Manage projects with full CRUD operations, hierarchy management, sharing capabilities, project views, Kanban buckets, and duplication'
|
|
133
|
+
+ (backgroundsEnabled
|
|
134
|
+
? '. The opt-in backgrounds module adds remove-background/set-unsplash-background/search-unsplash'
|
|
135
|
+
: '')), {
|
|
136
|
+
subcommand: zod_1.z.enum(subcommandValues),
|
|
137
|
+
// CRUD arguments
|
|
138
|
+
id: zod_1.z.number().positive().optional(),
|
|
139
|
+
title: zod_1.z.string().optional(),
|
|
140
|
+
description: zod_1.z.string().optional(),
|
|
141
|
+
parentProjectId: zod_1.z.number().positive().optional(),
|
|
142
|
+
isArchived: zod_1.z.boolean().optional(),
|
|
143
|
+
hexColor: zod_1.z.string().regex(/^#[0-9A-Fa-f]{6}$/).optional(),
|
|
144
|
+
page: zod_1.z.number().min(1).optional(),
|
|
145
|
+
perPage: zod_1.z.number().min(1).max(100).optional(),
|
|
146
|
+
search: zod_1.z.string().optional(),
|
|
147
|
+
// Hierarchy arguments
|
|
148
|
+
maxDepth: zod_1.z.number().min(1).max(20).optional(),
|
|
149
|
+
includeArchived: zod_1.z.boolean().optional(),
|
|
150
|
+
// Kanban bucket arguments (list-buckets, create-bucket, update-bucket,
|
|
151
|
+
// delete-bucket, list-view-tasks, set-done-bucket subcommands).
|
|
152
|
+
// z.coerce tolerates MCP clients whose cached tool schema predates
|
|
153
|
+
// this param and therefore send it as a string over JSON-RPC.
|
|
154
|
+
viewId: zod_1.z.coerce.number().positive().optional(),
|
|
155
|
+
bucketId: zod_1.z.coerce.number().positive().optional(),
|
|
156
|
+
bucketTitle: zod_1.z.string().optional(),
|
|
157
|
+
limit: zod_1.z.coerce.number().min(0).optional(),
|
|
158
|
+
// Project view arguments (list-views, get-view, create-view,
|
|
159
|
+
// update-view, delete-view, set-done-bucket subcommands).
|
|
160
|
+
viewKind: zod_1.z.enum(['list', 'gantt', 'table', 'kanban']).optional(),
|
|
161
|
+
bucketConfigurationMode: zod_1.z.enum(['none', 'manual', 'filter']).optional(),
|
|
162
|
+
doneBucketId: zod_1.z.coerce.number().positive().optional(),
|
|
163
|
+
defaultBucketId: zod_1.z.coerce.number().positive().optional(),
|
|
164
|
+
// Duplicate-project arguments (duplicate subcommand).
|
|
165
|
+
duplicateShares: zod_1.z.boolean().optional(),
|
|
166
|
+
// Sharing arguments (link shares + direct user/team sharing)
|
|
167
|
+
projectId: zod_1.z.number().positive().optional(),
|
|
168
|
+
shareId: zod_1.z.string().optional(),
|
|
169
|
+
shareHash: zod_1.z.string().optional(),
|
|
170
|
+
right: zod_1.z.union([zod_1.z.enum(['read', 'write', 'admin']), zod_1.z.literal(0), zod_1.z.literal(1), zod_1.z.literal(2)]).optional(),
|
|
171
|
+
name: zod_1.z.string().optional(),
|
|
172
|
+
password: zod_1.z.string().optional(),
|
|
173
|
+
// Direct user/team sharing arguments
|
|
174
|
+
username: zod_1.z.string().optional(),
|
|
175
|
+
teamName: zod_1.z.string().optional(),
|
|
176
|
+
userId: zod_1.z.number().positive().optional(),
|
|
177
|
+
teamId: zod_1.z.number().positive().optional(),
|
|
178
|
+
// Opt-in atomic rollback for share-with-user / share-with-team — see
|
|
179
|
+
// CompositeOperation (src/utils/composite-operation.ts) and
|
|
180
|
+
// docs/ENDPOINT-PLAYBOOK.md §5. Default false (best-effort).
|
|
181
|
+
atomic: zod_1.z.boolean().optional(),
|
|
182
|
+
// Project backgrounds arguments (opt-in `backgrounds` module —
|
|
183
|
+
// set-unsplash-background / search-unsplash subcommands). `page`
|
|
184
|
+
// above is reused for search-unsplash's pagination (maps to the
|
|
185
|
+
// API's `p` query param).
|
|
186
|
+
unsplashImageId: zod_1.z.string().optional(),
|
|
187
|
+
unsplashQuery: zod_1.z.string().optional(),
|
|
188
|
+
// Session ID for AORP response tracking
|
|
189
|
+
sessionId: zod_1.z.string().optional(),
|
|
190
|
+
}, (0, read_only_1.getToolAnnotations)('vikunja_projects'), async (args, context) => {
|
|
191
|
+
try {
|
|
192
|
+
// Check authentication with enhanced error message
|
|
193
|
+
if (!authManager.isAuthenticated()) {
|
|
194
|
+
throw (0, error_handler_1.createAuthRequiredError)('access project management features');
|
|
195
|
+
}
|
|
196
|
+
(0, read_only_1.assertWriteAllowed)('vikunja_projects', args.subcommand);
|
|
197
|
+
// Set the client factory for this request if provided
|
|
198
|
+
if (clientFactory) {
|
|
199
|
+
const { setGlobalClientFactory } = await import('../../client.js');
|
|
200
|
+
await setGlobalClientFactory(clientFactory);
|
|
201
|
+
}
|
|
202
|
+
try {
|
|
203
|
+
const result = await (async () => {
|
|
204
|
+
switch (args.subcommand) {
|
|
205
|
+
// CRUD operations
|
|
206
|
+
case 'list':
|
|
207
|
+
return await (0, crud_1.listProjects)(args, authManager);
|
|
208
|
+
case 'get':
|
|
209
|
+
if (args.id === undefined || args.id === null) {
|
|
210
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Project ID is required');
|
|
211
|
+
}
|
|
212
|
+
(0, validation_1.validateId)(args.id, 'id');
|
|
213
|
+
return await (0, crud_1.getProject)(args, authManager);
|
|
214
|
+
case 'create':
|
|
215
|
+
if (!args.title) {
|
|
216
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Project title is required for create operation');
|
|
217
|
+
}
|
|
218
|
+
return await (0, crud_1.createProject)(args, authManager);
|
|
219
|
+
case 'update':
|
|
220
|
+
if (!args.id) {
|
|
221
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Project ID is required for update operation');
|
|
222
|
+
}
|
|
223
|
+
return await (0, crud_1.updateProject)(args, authManager);
|
|
224
|
+
case 'delete':
|
|
225
|
+
if (!args.id) {
|
|
226
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Project ID is required for delete operation');
|
|
227
|
+
}
|
|
228
|
+
return await (0, crud_1.deleteProject)(args, authManager);
|
|
229
|
+
case 'archive':
|
|
230
|
+
if (!args.id) {
|
|
231
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Project ID is required for archive operation');
|
|
232
|
+
}
|
|
233
|
+
return await (0, crud_1.archiveProject)(args, authManager);
|
|
234
|
+
case 'unarchive':
|
|
235
|
+
if (!args.id) {
|
|
236
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Project ID is required for unarchive operation');
|
|
237
|
+
}
|
|
238
|
+
return await (0, crud_1.unarchiveProject)(args, authManager);
|
|
239
|
+
// Hierarchy operations
|
|
240
|
+
case 'get-children':
|
|
241
|
+
if (!args.id) {
|
|
242
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Project ID is required for get-children operation');
|
|
243
|
+
}
|
|
244
|
+
return await (0, hierarchy_1.getProjectChildren)(args, context, authManager);
|
|
245
|
+
case 'get-tree':
|
|
246
|
+
return await (0, hierarchy_1.getProjectTree)(args, context, authManager);
|
|
247
|
+
case 'get-breadcrumb':
|
|
248
|
+
if (!args.id) {
|
|
249
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Project ID is required for get-breadcrumb operation');
|
|
250
|
+
}
|
|
251
|
+
return await (0, hierarchy_1.getProjectBreadcrumb)(args, context, authManager);
|
|
252
|
+
case 'move':
|
|
253
|
+
if (args.id === undefined || args.id === null) {
|
|
254
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Project ID is required for move operation');
|
|
255
|
+
}
|
|
256
|
+
(0, validation_1.validateId)(args.id, 'id');
|
|
257
|
+
return await (0, hierarchy_1.moveProject)(args, context, authManager);
|
|
258
|
+
// Sharing operations — link shares
|
|
259
|
+
case 'create-share':
|
|
260
|
+
if (!args.projectId) {
|
|
261
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Project ID is required');
|
|
262
|
+
}
|
|
263
|
+
if (!args.right) {
|
|
264
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Share right is required');
|
|
265
|
+
}
|
|
266
|
+
return await (0, sharing_1.createProjectShare)(args, authManager);
|
|
267
|
+
case 'list-shares':
|
|
268
|
+
if (!args.projectId) {
|
|
269
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Project ID is required');
|
|
270
|
+
}
|
|
271
|
+
return await (0, sharing_1.listProjectShares)(args, authManager);
|
|
272
|
+
case 'get-share':
|
|
273
|
+
if (args.shareId === undefined || args.shareId === null) {
|
|
274
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Share ID is required');
|
|
275
|
+
}
|
|
276
|
+
if (args.shareId.trim() === '') {
|
|
277
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Share ID must be a non-empty string');
|
|
278
|
+
}
|
|
279
|
+
return await (0, sharing_1.getProjectShare)(args, authManager);
|
|
280
|
+
case 'delete-share':
|
|
281
|
+
if (args.shareId === undefined || args.shareId === null) {
|
|
282
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Share ID is required');
|
|
283
|
+
}
|
|
284
|
+
if (args.shareId.trim() === '') {
|
|
285
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Share ID must be a non-empty string');
|
|
286
|
+
}
|
|
287
|
+
return await (0, sharing_1.deleteProjectShare)(args, authManager);
|
|
288
|
+
case 'auth-share': {
|
|
289
|
+
if (!args.shareHash) {
|
|
290
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Share hash is required');
|
|
291
|
+
}
|
|
292
|
+
const authShareArgs = {
|
|
293
|
+
shareHash: args.shareHash
|
|
294
|
+
};
|
|
295
|
+
if (args.projectId !== undefined)
|
|
296
|
+
authShareArgs.projectId = args.projectId;
|
|
297
|
+
if (args.password !== undefined)
|
|
298
|
+
authShareArgs.password = args.password;
|
|
299
|
+
return await (0, sharing_1.authProjectShare)(authShareArgs, authManager);
|
|
300
|
+
}
|
|
301
|
+
// Sharing operations — direct user access (primitives)
|
|
302
|
+
case 'list-project-users':
|
|
303
|
+
if (!args.projectId) {
|
|
304
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Project ID is required for list-project-users operation');
|
|
305
|
+
}
|
|
306
|
+
return await (0, sharing_access_1.listProjectUsers)(args, authManager);
|
|
307
|
+
case 'search-project-users':
|
|
308
|
+
if (!args.projectId) {
|
|
309
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Project ID is required for search-project-users operation');
|
|
310
|
+
}
|
|
311
|
+
return await (0, sharing_access_1.searchProjectUsers)(args, authManager);
|
|
312
|
+
case 'add-project-user':
|
|
313
|
+
if (!args.projectId) {
|
|
314
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Project ID is required for add-project-user operation');
|
|
315
|
+
}
|
|
316
|
+
if (!args.username) {
|
|
317
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'username is required for add-project-user operation');
|
|
318
|
+
}
|
|
319
|
+
if (!args.right) {
|
|
320
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Share right is required for add-project-user operation');
|
|
321
|
+
}
|
|
322
|
+
return await (0, sharing_access_1.addProjectUser)(args, authManager);
|
|
323
|
+
case 'update-project-user-permission':
|
|
324
|
+
if (!args.projectId) {
|
|
325
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Project ID is required for update-project-user-permission operation');
|
|
326
|
+
}
|
|
327
|
+
if (!args.userId) {
|
|
328
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'userId is required for update-project-user-permission operation');
|
|
329
|
+
}
|
|
330
|
+
if (!args.right) {
|
|
331
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Share right is required for update-project-user-permission operation');
|
|
332
|
+
}
|
|
333
|
+
return await (0, sharing_access_1.updateProjectUserPermission)(args, authManager);
|
|
334
|
+
case 'remove-project-user':
|
|
335
|
+
if (!args.projectId) {
|
|
336
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Project ID is required for remove-project-user operation');
|
|
337
|
+
}
|
|
338
|
+
if (!args.userId) {
|
|
339
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'userId is required for remove-project-user operation');
|
|
340
|
+
}
|
|
341
|
+
return await (0, sharing_access_1.removeProjectUser)(args, authManager);
|
|
342
|
+
// Sharing operations — direct team access (primitives)
|
|
343
|
+
case 'list-project-teams':
|
|
344
|
+
if (!args.projectId) {
|
|
345
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Project ID is required for list-project-teams operation');
|
|
346
|
+
}
|
|
347
|
+
return await (0, sharing_access_1.listProjectTeams)(args, authManager);
|
|
348
|
+
case 'add-project-team':
|
|
349
|
+
if (!args.projectId) {
|
|
350
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Project ID is required for add-project-team operation');
|
|
351
|
+
}
|
|
352
|
+
if (!args.teamId) {
|
|
353
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'teamId is required for add-project-team operation');
|
|
354
|
+
}
|
|
355
|
+
if (!args.right) {
|
|
356
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Share right is required for add-project-team operation');
|
|
357
|
+
}
|
|
358
|
+
return await (0, sharing_access_1.addProjectTeam)(args, authManager);
|
|
359
|
+
case 'update-project-team-permission':
|
|
360
|
+
if (!args.projectId) {
|
|
361
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Project ID is required for update-project-team-permission operation');
|
|
362
|
+
}
|
|
363
|
+
if (!args.teamId) {
|
|
364
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'teamId is required for update-project-team-permission operation');
|
|
365
|
+
}
|
|
366
|
+
if (!args.right) {
|
|
367
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Share right is required for update-project-team-permission operation');
|
|
368
|
+
}
|
|
369
|
+
return await (0, sharing_access_1.updateProjectTeamPermission)(args, authManager);
|
|
370
|
+
case 'remove-project-team':
|
|
371
|
+
if (!args.projectId) {
|
|
372
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Project ID is required for remove-project-team operation');
|
|
373
|
+
}
|
|
374
|
+
if (!args.teamId) {
|
|
375
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'teamId is required for remove-project-team operation');
|
|
376
|
+
}
|
|
377
|
+
return await (0, sharing_access_1.removeProjectTeam)(args, authManager);
|
|
378
|
+
// Sharing operations — composites
|
|
379
|
+
case 'share-with-user':
|
|
380
|
+
if (!args.projectId) {
|
|
381
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Project ID is required for share-with-user operation');
|
|
382
|
+
}
|
|
383
|
+
if (!args.username) {
|
|
384
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'username is required for share-with-user operation');
|
|
385
|
+
}
|
|
386
|
+
if (!args.right) {
|
|
387
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Share right is required for share-with-user operation');
|
|
388
|
+
}
|
|
389
|
+
return await (0, sharing_access_1.shareProjectWithUser)(args, authManager);
|
|
390
|
+
case 'share-with-team':
|
|
391
|
+
if (!args.projectId) {
|
|
392
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Project ID is required for share-with-team operation');
|
|
393
|
+
}
|
|
394
|
+
if (!args.teamName) {
|
|
395
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'teamName is required for share-with-team operation');
|
|
396
|
+
}
|
|
397
|
+
if (!args.right) {
|
|
398
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Share right is required for share-with-team operation');
|
|
399
|
+
}
|
|
400
|
+
return await (0, sharing_access_1.shareProjectWithTeam)(args, authManager);
|
|
401
|
+
case 'list-members':
|
|
402
|
+
if (!args.projectId) {
|
|
403
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Project ID is required for list-members operation');
|
|
404
|
+
}
|
|
405
|
+
return await (0, sharing_access_1.listProjectMembers)(args, authManager);
|
|
406
|
+
// Kanban bucket operations
|
|
407
|
+
case 'list-buckets':
|
|
408
|
+
if (!args.id) {
|
|
409
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Project ID is required for list-buckets operation');
|
|
410
|
+
}
|
|
411
|
+
(0, validation_1.validateId)(args.id, 'id');
|
|
412
|
+
return await (0, buckets_1.listBuckets)(args, authManager);
|
|
413
|
+
case 'create-bucket':
|
|
414
|
+
if (!args.id) {
|
|
415
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Project ID is required for create-bucket operation');
|
|
416
|
+
}
|
|
417
|
+
(0, validation_1.validateId)(args.id, 'id');
|
|
418
|
+
return await (0, buckets_1.createBucket)(args, authManager);
|
|
419
|
+
case 'update-bucket':
|
|
420
|
+
if (!args.id) {
|
|
421
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Project ID is required for update-bucket operation');
|
|
422
|
+
}
|
|
423
|
+
(0, validation_1.validateId)(args.id, 'id');
|
|
424
|
+
return await (0, buckets_1.updateBucket)(args, authManager);
|
|
425
|
+
case 'delete-bucket':
|
|
426
|
+
if (!args.id) {
|
|
427
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Project ID is required for delete-bucket operation');
|
|
428
|
+
}
|
|
429
|
+
(0, validation_1.validateId)(args.id, 'id');
|
|
430
|
+
return await (0, buckets_1.deleteBucket)(args, authManager);
|
|
431
|
+
case 'list-view-tasks':
|
|
432
|
+
if (!args.id) {
|
|
433
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Project ID is required for list-view-tasks operation');
|
|
434
|
+
}
|
|
435
|
+
(0, validation_1.validateId)(args.id, 'id');
|
|
436
|
+
return await (0, buckets_1.listViewTasks)(args, authManager);
|
|
437
|
+
// Project view operations
|
|
438
|
+
case 'list-views':
|
|
439
|
+
if (!args.id) {
|
|
440
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Project ID is required for list-views operation');
|
|
441
|
+
}
|
|
442
|
+
(0, validation_1.validateId)(args.id, 'id');
|
|
443
|
+
return await (0, views_1.listViews)(args, authManager);
|
|
444
|
+
case 'get-view':
|
|
445
|
+
if (!args.id) {
|
|
446
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Project ID is required for get-view operation');
|
|
447
|
+
}
|
|
448
|
+
(0, validation_1.validateId)(args.id, 'id');
|
|
449
|
+
return await (0, views_1.getView)(args, authManager);
|
|
450
|
+
case 'create-view':
|
|
451
|
+
if (!args.id) {
|
|
452
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Project ID is required for create-view operation');
|
|
453
|
+
}
|
|
454
|
+
(0, validation_1.validateId)(args.id, 'id');
|
|
455
|
+
return await (0, views_1.createView)(args, authManager);
|
|
456
|
+
case 'update-view':
|
|
457
|
+
if (!args.id) {
|
|
458
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Project ID is required for update-view operation');
|
|
459
|
+
}
|
|
460
|
+
(0, validation_1.validateId)(args.id, 'id');
|
|
461
|
+
return await (0, views_1.updateView)(args, authManager);
|
|
462
|
+
case 'delete-view':
|
|
463
|
+
if (!args.id) {
|
|
464
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Project ID is required for delete-view operation');
|
|
465
|
+
}
|
|
466
|
+
(0, validation_1.validateId)(args.id, 'id');
|
|
467
|
+
return await (0, views_1.deleteView)(args, authManager);
|
|
468
|
+
case 'set-done-bucket':
|
|
469
|
+
if (!args.id) {
|
|
470
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Project ID is required for set-done-bucket operation');
|
|
471
|
+
}
|
|
472
|
+
(0, validation_1.validateId)(args.id, 'id');
|
|
473
|
+
return await (0, views_1.setDoneBucket)(args, authManager);
|
|
474
|
+
// Duplicate operation
|
|
475
|
+
case 'duplicate':
|
|
476
|
+
if (!args.id) {
|
|
477
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Project ID is required for duplicate operation');
|
|
478
|
+
}
|
|
479
|
+
(0, validation_1.validateId)(args.id, 'id');
|
|
480
|
+
return await (0, duplicate_1.duplicateProject)(args, authManager);
|
|
481
|
+
// Project backgrounds (G7, opt-in `backgrounds` module). Only
|
|
482
|
+
// reachable when the module is enabled — see
|
|
483
|
+
// BACKGROUND_SUBCOMMANDS above; the zod enum itself excludes
|
|
484
|
+
// these subcommand strings when the module is disabled, so an
|
|
485
|
+
// unrecognized-subcommand rejection happens at schema validation
|
|
486
|
+
// time in that case, never reaching this switch.
|
|
487
|
+
case 'remove-background':
|
|
488
|
+
if (!args.id) {
|
|
489
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Project ID is required for remove-background operation');
|
|
490
|
+
}
|
|
491
|
+
(0, validation_1.validateId)(args.id, 'id');
|
|
492
|
+
return await (0, backgrounds_1.removeProjectBackground)(args, authManager);
|
|
493
|
+
case 'set-unsplash-background':
|
|
494
|
+
if (!args.id) {
|
|
495
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Project ID is required for set-unsplash-background operation');
|
|
496
|
+
}
|
|
497
|
+
(0, validation_1.validateId)(args.id, 'id');
|
|
498
|
+
if (!args.unsplashImageId) {
|
|
499
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'unsplashImageId is required for set-unsplash-background operation');
|
|
500
|
+
}
|
|
501
|
+
return await (0, backgrounds_1.setUnsplashBackground)(args, authManager);
|
|
502
|
+
case 'search-unsplash':
|
|
503
|
+
return await (0, backgrounds_1.searchUnsplashBackgrounds)(args, authManager);
|
|
504
|
+
default:
|
|
505
|
+
throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, `Unknown subcommand: ${String(args.subcommand)}`);
|
|
506
|
+
}
|
|
507
|
+
})();
|
|
508
|
+
return result;
|
|
509
|
+
}
|
|
510
|
+
catch (error) {
|
|
511
|
+
throw (0, error_handler_1.wrapToolError)(error, 'vikunja_projects', args.subcommand, args.id);
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
catch (error) {
|
|
515
|
+
if (error instanceof types_1.MCPError) {
|
|
516
|
+
throw error;
|
|
517
|
+
}
|
|
518
|
+
throw new types_1.MCPError(types_1.ErrorCode.INTERNAL_ERROR, `Unexpected error: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
519
|
+
}
|
|
520
|
+
});
|
|
521
|
+
}
|
|
522
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/projects/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAsJH,8DAcC;AAMD,oDAsdC;AA7nBD,6BAAwB;AAGxB,uCAAkD;AAElD,6DAAmF;AACnF,6CAA0C;AAC1C,qDAAiG;AACjG,yCAAqE;AACrE,+CAA4C;AAE5C,kCAAkC;AAClC,iCAcgB;AAspBd,6FAnqBA,mBAAY,OAmqBA;AACZ,2FAnqBA,iBAAU,OAmqBA;AACV,8FAnqBA,oBAAa,OAmqBA;AACb,8FAnqBA,oBAAa,OAmqBA;AACb,8FAnqBA,oBAAa,OAmqBA;AACb,+FAnqBA,qBAAc,OAmqBA;AACd,iGAnqBA,uBAAgB,OAmqBA;AA1pBlB,2CASqB;AAopBnB,mGA5pBA,8BAAkB,OA4pBA;AAClB,+FA5pBA,0BAAc,OA4pBA;AACd,qGA5pBA,gCAAoB,OA4pBA;AACpB,4FA5pBA,uBAAW,OA4pBA;AArpBb,uCAWmB;AA6oBjB,mGAvpBA,4BAAkB,OAupBA;AAClB,kGAvpBA,2BAAiB,OAupBA;AACjB,gGAvpBA,yBAAe,OAupBA;AACf,mGAvpBA,4BAAkB,OAupBA;AAClB,iGAvpBA,0BAAgB,OAupBA;AA/oBlB,uCAWmB;AAuoBjB,4FAjpBA,qBAAW,OAipBA;AACX,6FAjpBA,sBAAY,OAipBA;AACZ,6FAjpBA,sBAAY,OAipBA;AACZ,6FAjpBA,sBAAY,OAipBA;AACZ,8FAjpBA,uBAAa,OAipBA;AAzoBf,mCAaiB;AA+nBf,0FA3oBA,iBAAS,OA2oBA;AACT,wFA3oBA,eAAO,OA2oBA;AACP,2FA3oBA,kBAAU,OA2oBA;AACV,2FA3oBA,kBAAU,OA2oBA;AACV,2FA3oBA,kBAAU,OA2oBA;AACV,8FA3oBA,qBAAa,OA2oBA;AAloBf,2CAA0E;AAqoBxE,iGAroBO,4BAAgB,OAqoBP;AAnoBlB,+CAOuB;AA6oBrB,wGAnpBA,qCAAuB,OAmpBA;AACvB,sGAnpBA,mCAAqB,OAmpBA;AACrB,0GAnpBA,uCAAyB,OAmpBA;AA7oB3B,qDAyB0B;AAomBxB,iGA5nBA,iCAAgB,OA4nBA;AAChB,mGA5nBA,mCAAkB,OA4nBA;AAClB,+FA5nBA,+BAAc,OA4nBA;AACd,4GA5nBA,4CAA2B,OA4nBA;AAC3B,kGA5nBA,kCAAiB,OA4nBA;AACjB,iGA5nBA,iCAAgB,OA4nBA;AAChB,+FA5nBA,+BAAc,OA4nBA;AACd,4GA5nBA,4CAA2B,OA4nBA;AAC3B,kGA5nBA,kCAAiB,OA4nBA;AACjB,qGA5nBA,qCAAoB,OA4nBA;AACpB,qGA5nBA,qCAAoB,OA4nBA;AACpB,mGA5nBA,mCAAkB,OA4nBA;AA7mBpB,iDAAiD;AACjD,0EAA0E;AAC1E,yEAAyE;AACzE,0EAA0E;AAC1E,wEAAwE;AACxE,mEAAmE;AACnE,2EAA2E;AAC3E,4EAA4E;AAC5E,yEAAyE;AACzE,yEAAyE;AACzE,qEAAqE;AACrE,uEAAuE;AACvE,wEAAwE;AACxE,MAAM,sBAAsB,GAAG;IAC7B,mBAAmB;IACnB,yBAAyB;IACzB,iBAAiB;CACT,CAAC;AAEX;;;;;;;;;GASG;AACH,SAAgB,yBAAyB,CAAC,QAAkB;IAC1D,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAA,wBAAe,EAAC,6BAAoB,CAAC,WAAW,EAAE,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACrG,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,eAAM,CAAC,KAAK,CACV,qFAAqF;YACnF,mDAAmD,EACrD,KAAK,CACN,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,SAAgB,oBAAoB,CAClC,MAAiB,EACjB,WAAwB,EACxB,aAAoC,EACpC,0BAAoC;IAEpC,MAAM,kBAAkB,GAAG,yBAAyB,CAAC,0BAA0B,CAAC,CAAC;IACjF,MAAM,eAAe,GAAG;QACtB,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW;QACnE,cAAc,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM;QACpD,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY;QACxE,cAAc,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe;QACjE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa;QACrE,iBAAiB,EAAE,iBAAiB,EAAE,WAAW;QACjD,wCAAwC;QACxC,oBAAoB,EAAE,sBAAsB,EAAE,kBAAkB;QAChE,gCAAgC,EAAE,qBAAqB;QACvD,oBAAoB,EAAE,kBAAkB;QACxC,gCAAgC,EAAE,qBAAqB;QACvD,wCAAwC;QACxC,iBAAiB,EAAE,iBAAiB,EAAE,cAAc;KACrD,CAAC;IACF,MAAM,gBAAgB,GAAG,CACvB,kBAAkB,CAAC,CAAC,CAAC,CAAC,GAAG,eAAe,EAAE,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAAC,eAAe,CAC9D,CAAC;IAE3B,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,IAAA,4BAAgB,EACd,kBAAkB,EAClB,uIAAuI;UACrI,CAAC,kBAAkB;YACnB,CAAC,CAAC,gGAAgG;YAClG,CAAC,CAAC,EAAE,CAAC,CACR,EACD;QACE,UAAU,EAAE,OAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC;QACpC,iBAAiB;QACjB,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QACpC,KAAK,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC5B,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAClC,eAAe,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QACjD,UAAU,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QAClC,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE;QAC1D,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QAClC,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;QAC9C,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC7B,sBAAsB;QACtB,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;QAC9C,eAAe,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QACvC,uEAAuE;QACvE,gEAAgE;QAChE,mEAAmE;QACnE,8DAA8D;QAC9D,MAAM,EAAE,OAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QAC/C,QAAQ,EAAE,OAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QACjD,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAClC,KAAK,EAAE,OAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QAC1C,6DAA6D;QAC7D,0DAA0D;QAC1D,QAAQ,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;QACjE,uBAAuB,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE;QACxE,YAAY,EAAE,OAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QACrD,eAAe,EAAE,OAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QACxD,sDAAsD;QACtD,eAAe,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QACvC,6DAA6D;QAC7D,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QAC3C,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC9B,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAChC,KAAK,EAAE,OAAC,CAAC,KAAK,CAAC,CAAC,OAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,EAAE,OAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QACzG,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC3B,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,qCAAqC;QACrC,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,QAAQ,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QACxC,MAAM,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QACxC,qEAAqE;QACrE,4DAA4D;QAC5D,6DAA6D;QAC7D,MAAM,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;QAC9B,+DAA+D;QAC/D,iEAAiE;QACjE,gEAAgE;QAChE,0BAA0B;QAC1B,eAAe,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACtC,aAAa,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QACpC,wCAAwC;QACxC,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KACjC,EACD,IAAA,8BAAkB,EAAC,kBAAkB,CAAC,EACtC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QACtB,IAAI,CAAC;YACH,mDAAmD;YACnD,IAAI,CAAC,WAAW,CAAC,eAAe,EAAE,EAAE,CAAC;gBACnC,MAAM,IAAA,uCAAuB,EAAC,oCAAoC,CAAC,CAAC;YACtE,CAAC;YAED,IAAA,8BAAkB,EAAC,kBAAkB,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAExD,sDAAsD;YACtD,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;gBACnE,MAAM,sBAAsB,CAAC,aAAa,CAAC,CAAC;YAC9C,CAAC;YAED,IAAI,CAAC;gBACL,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,IAA0B,EAAE;oBACrD,QAAQ,IAAI,CAAC,UAAU,EAAE,CAAC;wBACxB,kBAAkB;wBAClB,KAAK,MAAM;4BACT,OAAO,MAAM,IAAA,mBAAY,EAAC,IAAwB,EAAE,WAAW,CAAC,CAAC;wBAEnE,KAAK,KAAK;4BACR,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;gCAC9C,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,wBAAwB,CAAC,CAAC;4BAC3E,CAAC;4BACD,IAAA,uBAAU,EAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;4BAC1B,OAAO,MAAM,IAAA,iBAAU,EAAC,IAAsB,EAAE,WAAW,CAAC,CAAC;wBAE/D,KAAK,QAAQ;4BACX,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gCAChB,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,gDAAgD,CAAC,CAAC;4BACnG,CAAC;4BACD,OAAO,MAAM,IAAA,oBAAa,EAAC,IAAyB,EAAE,WAAW,CAAC,CAAC;wBAEvE,KAAK,QAAQ;4BACX,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gCACb,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,6CAA6C,CAAC,CAAC;4BAChG,CAAC;4BACD,OAAO,MAAM,IAAA,oBAAa,EAAC,IAAyB,EAAE,WAAW,CAAC,CAAC;wBAErE,KAAK,QAAQ;4BACX,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gCACb,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,6CAA6C,CAAC,CAAC;4BAChG,CAAC;4BACD,OAAO,MAAM,IAAA,oBAAa,EAAC,IAAyB,EAAE,WAAW,CAAC,CAAC;wBAErE,KAAK,SAAS;4BACZ,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gCACb,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,8CAA8C,CAAC,CAAC;4BACjG,CAAC;4BACD,OAAO,MAAM,IAAA,qBAAc,EAAC,IAA0B,EAAE,WAAW,CAAC,CAAC;wBAEvE,KAAK,WAAW;4BACd,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gCACb,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,gDAAgD,CAAC,CAAC;4BACnG,CAAC;4BACD,OAAO,MAAM,IAAA,uBAAgB,EAAC,IAA0B,EAAE,WAAW,CAAC,CAAC;wBAEzE,uBAAuB;wBACvB,KAAK,cAAc;4BACjB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gCACb,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,mDAAmD,CAAC,CAAC;4BACtG,CAAC;4BACD,OAAO,MAAM,IAAA,8BAAkB,EAAC,IAAuB,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;wBAEjF,KAAK,UAAU;4BACb,OAAO,MAAM,IAAA,0BAAc,EAAC,IAAmB,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;wBAEzE,KAAK,gBAAgB;4BACnB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gCACb,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,qDAAqD,CAAC,CAAC;4BACxG,CAAC;4BACD,OAAO,MAAM,IAAA,gCAAoB,EAAC,IAAyB,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;wBAErF,KAAK,MAAM;4BACT,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS,IAAI,IAAI,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC;gCAC9C,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,2CAA2C,CAAC,CAAC;4BAC9F,CAAC;4BACD,IAAA,uBAAU,EAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;4BAC1B,OAAO,MAAM,IAAA,uBAAW,EAAC,IAAuB,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;wBAE1E,mCAAmC;wBACnC,KAAK,cAAc;4BACjB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gCACpB,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,wBAAwB,CAAC,CAAC;4BAC3E,CAAC;4BACD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gCAChB,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,yBAAyB,CAAC,CAAC;4BAC5E,CAAC;4BACD,OAAO,MAAM,IAAA,4BAAkB,EAAC,IAAuB,EAAE,WAAW,CAAC,CAAC;wBAExE,KAAK,aAAa;4BAChB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gCACpB,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,wBAAwB,CAAC,CAAC;4BAC3E,CAAC;4BACD,OAAO,MAAM,IAAA,2BAAiB,EAAC,IAAsB,EAAE,WAAW,CAAC,CAAC;wBAEtE,KAAK,WAAW;4BACd,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;gCACxD,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,sBAAsB,CAAC,CAAC;4BACzE,CAAC;4BACD,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gCAC/B,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,qCAAqC,CAAC,CAAC;4BACxF,CAAC;4BACD,OAAO,MAAM,IAAA,yBAAe,EAAC,IAAoB,EAAE,WAAW,CAAC,CAAC;wBAElE,KAAK,cAAc;4BACjB,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;gCACxD,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,sBAAsB,CAAC,CAAC;4BACzE,CAAC;4BACD,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gCAC/B,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,qCAAqC,CAAC,CAAC;4BACxF,CAAC;4BACD,OAAO,MAAM,IAAA,4BAAkB,EAAC,IAAuB,EAAE,WAAW,CAAC,CAAC;wBAExE,KAAK,YAAY,CAAC,CAAC,CAAC;4BAClB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gCACpB,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,wBAAwB,CAAC,CAAC;4BAC3E,CAAC;4BACD,MAAM,aAAa,GAAkB;gCACnC,SAAS,EAAE,IAAI,CAAC,SAAS;6BAC1B,CAAC;4BACF,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;gCAAE,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;4BAC3E,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;gCAAE,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;4BACxE,OAAO,MAAM,IAAA,0BAAgB,EAAC,aAAa,EAAE,WAAW,CAAC,CAAC;wBAC5D,CAAC;wBAED,uDAAuD;wBACvD,KAAK,oBAAoB;4BACvB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gCACpB,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,yDAAyD,CAAC,CAAC;4BAC5G,CAAC;4BACD,OAAO,MAAM,IAAA,iCAAgB,EAAC,IAA4B,EAAE,WAAW,CAAC,CAAC;wBAE3E,KAAK,sBAAsB;4BACzB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gCACpB,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,2DAA2D,CAAC,CAAC;4BAC9G,CAAC;4BACD,OAAO,MAAM,IAAA,mCAAkB,EAAC,IAA8B,EAAE,WAAW,CAAC,CAAC;wBAE/E,KAAK,kBAAkB;4BACrB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gCACpB,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,uDAAuD,CAAC,CAAC;4BAC1G,CAAC;4BACD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gCACnB,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,qDAAqD,CAAC,CAAC;4BACxG,CAAC;4BACD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gCAChB,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,wDAAwD,CAAC,CAAC;4BAC3G,CAAC;4BACD,OAAO,MAAM,IAAA,+BAAc,EAAC,IAA0B,EAAE,WAAW,CAAC,CAAC;wBAEvE,KAAK,gCAAgC;4BACnC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gCACpB,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,qEAAqE,CAAC,CAAC;4BACxH,CAAC;4BACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gCACjB,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,iEAAiE,CAAC,CAAC;4BACpH,CAAC;4BACD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gCAChB,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,sEAAsE,CAAC,CAAC;4BACzH,CAAC;4BACD,OAAO,MAAM,IAAA,4CAA2B,EAAC,IAAuC,EAAE,WAAW,CAAC,CAAC;wBAEjG,KAAK,qBAAqB;4BACxB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gCACpB,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,0DAA0D,CAAC,CAAC;4BAC7G,CAAC;4BACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gCACjB,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,sDAAsD,CAAC,CAAC;4BACzG,CAAC;4BACD,OAAO,MAAM,IAAA,kCAAiB,EAAC,IAA6B,EAAE,WAAW,CAAC,CAAC;wBAE7E,uDAAuD;wBACvD,KAAK,oBAAoB;4BACvB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gCACpB,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,yDAAyD,CAAC,CAAC;4BAC5G,CAAC;4BACD,OAAO,MAAM,IAAA,iCAAgB,EAAC,IAA4B,EAAE,WAAW,CAAC,CAAC;wBAE3E,KAAK,kBAAkB;4BACrB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gCACpB,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,uDAAuD,CAAC,CAAC;4BAC1G,CAAC;4BACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gCACjB,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,mDAAmD,CAAC,CAAC;4BACtG,CAAC;4BACD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gCAChB,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,wDAAwD,CAAC,CAAC;4BAC3G,CAAC;4BACD,OAAO,MAAM,IAAA,+BAAc,EAAC,IAA0B,EAAE,WAAW,CAAC,CAAC;wBAEvE,KAAK,gCAAgC;4BACnC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gCACpB,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,qEAAqE,CAAC,CAAC;4BACxH,CAAC;4BACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gCACjB,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,iEAAiE,CAAC,CAAC;4BACpH,CAAC;4BACD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gCAChB,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,sEAAsE,CAAC,CAAC;4BACzH,CAAC;4BACD,OAAO,MAAM,IAAA,4CAA2B,EAAC,IAAuC,EAAE,WAAW,CAAC,CAAC;wBAEjG,KAAK,qBAAqB;4BACxB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gCACpB,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,0DAA0D,CAAC,CAAC;4BAC7G,CAAC;4BACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;gCACjB,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,sDAAsD,CAAC,CAAC;4BACzG,CAAC;4BACD,OAAO,MAAM,IAAA,kCAAiB,EAAC,IAA6B,EAAE,WAAW,CAAC,CAAC;wBAE7E,kCAAkC;wBAClC,KAAK,iBAAiB;4BACpB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gCACpB,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,sDAAsD,CAAC,CAAC;4BACzG,CAAC;4BACD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gCACnB,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,oDAAoD,CAAC,CAAC;4BACvG,CAAC;4BACD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gCAChB,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,uDAAuD,CAAC,CAAC;4BAC1G,CAAC;4BACD,OAAO,MAAM,IAAA,qCAAoB,EAAC,IAAyB,EAAE,WAAW,CAAC,CAAC;wBAE5E,KAAK,iBAAiB;4BACpB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gCACpB,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,sDAAsD,CAAC,CAAC;4BACzG,CAAC;4BACD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;gCACnB,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,oDAAoD,CAAC,CAAC;4BACvG,CAAC;4BACD,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;gCAChB,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,uDAAuD,CAAC,CAAC;4BAC1G,CAAC;4BACD,OAAO,MAAM,IAAA,qCAAoB,EAAC,IAAyB,EAAE,WAAW,CAAC,CAAC;wBAE5E,KAAK,cAAc;4BACjB,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gCACpB,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,mDAAmD,CAAC,CAAC;4BACtG,CAAC;4BACD,OAAO,MAAM,IAAA,mCAAkB,EAAC,IAAuB,EAAE,WAAW,CAAC,CAAC;wBAExE,2BAA2B;wBAC3B,KAAK,cAAc;4BACjB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gCACb,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,mDAAmD,CAAC,CAAC;4BACtG,CAAC;4BACD,IAAA,uBAAU,EAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;4BAC1B,OAAO,MAAM,IAAA,qBAAW,EAAC,IAAuB,EAAE,WAAW,CAAC,CAAC;wBAEjE,KAAK,eAAe;4BAClB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gCACb,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,oDAAoD,CAAC,CAAC;4BACvG,CAAC;4BACD,IAAA,uBAAU,EAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;4BAC1B,OAAO,MAAM,IAAA,sBAAY,EAAC,IAAwB,EAAE,WAAW,CAAC,CAAC;wBAEnE,KAAK,eAAe;4BAClB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gCACb,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,oDAAoD,CAAC,CAAC;4BACvG,CAAC;4BACD,IAAA,uBAAU,EAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;4BAC1B,OAAO,MAAM,IAAA,sBAAY,EAAC,IAAwB,EAAE,WAAW,CAAC,CAAC;wBAEnE,KAAK,eAAe;4BAClB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gCACb,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,oDAAoD,CAAC,CAAC;4BACvG,CAAC;4BACD,IAAA,uBAAU,EAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;4BAC1B,OAAO,MAAM,IAAA,sBAAY,EAAC,IAAwB,EAAE,WAAW,CAAC,CAAC;wBAEnE,KAAK,iBAAiB;4BACpB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gCACb,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,sDAAsD,CAAC,CAAC;4BACzG,CAAC;4BACD,IAAA,uBAAU,EAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;4BAC1B,OAAO,MAAM,IAAA,uBAAa,EAAC,IAAyB,EAAE,WAAW,CAAC,CAAC;wBAErE,0BAA0B;wBAC1B,KAAK,YAAY;4BACf,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gCACb,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,iDAAiD,CAAC,CAAC;4BACpG,CAAC;4BACD,IAAA,uBAAU,EAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;4BAC1B,OAAO,MAAM,IAAA,iBAAS,EAAC,IAAqB,EAAE,WAAW,CAAC,CAAC;wBAE7D,KAAK,UAAU;4BACb,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gCACb,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,+CAA+C,CAAC,CAAC;4BAClG,CAAC;4BACD,IAAA,uBAAU,EAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;4BAC1B,OAAO,MAAM,IAAA,eAAO,EAAC,IAAmB,EAAE,WAAW,CAAC,CAAC;wBAEzD,KAAK,aAAa;4BAChB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gCACb,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,kDAAkD,CAAC,CAAC;4BACrG,CAAC;4BACD,IAAA,uBAAU,EAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;4BAC1B,OAAO,MAAM,IAAA,kBAAU,EAAC,IAAsB,EAAE,WAAW,CAAC,CAAC;wBAE/D,KAAK,aAAa;4BAChB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gCACb,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,kDAAkD,CAAC,CAAC;4BACrG,CAAC;4BACD,IAAA,uBAAU,EAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;4BAC1B,OAAO,MAAM,IAAA,kBAAU,EAAC,IAAsB,EAAE,WAAW,CAAC,CAAC;wBAE/D,KAAK,aAAa;4BAChB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gCACb,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,kDAAkD,CAAC,CAAC;4BACrG,CAAC;4BACD,IAAA,uBAAU,EAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;4BAC1B,OAAO,MAAM,IAAA,kBAAU,EAAC,IAAsB,EAAE,WAAW,CAAC,CAAC;wBAE/D,KAAK,iBAAiB;4BACpB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gCACb,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,sDAAsD,CAAC,CAAC;4BACzG,CAAC;4BACD,IAAA,uBAAU,EAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;4BAC1B,OAAO,MAAM,IAAA,qBAAa,EAAC,IAAyB,EAAE,WAAW,CAAC,CAAC;wBAErE,sBAAsB;wBACtB,KAAK,WAAW;4BACd,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gCACb,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,gDAAgD,CAAC,CAAC;4BACnG,CAAC;4BACD,IAAA,uBAAU,EAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;4BAC1B,OAAO,MAAM,IAAA,4BAAgB,EAAC,IAA4B,EAAE,WAAW,CAAC,CAAC;wBAE3E,8DAA8D;wBAC9D,6CAA6C;wBAC7C,6DAA6D;wBAC7D,8DAA8D;wBAC9D,iEAAiE;wBACjE,iDAAiD;wBACjD,KAAK,mBAAmB;4BACtB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gCACb,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,wDAAwD,CAAC,CAAC;4BAC3G,CAAC;4BACD,IAAA,uBAAU,EAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;4BAC1B,OAAO,MAAM,IAAA,qCAAuB,EAAC,IAA4B,EAAE,WAAW,CAAC,CAAC;wBAElF,KAAK,yBAAyB;4BAC5B,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gCACb,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,8DAA8D,CAAC,CAAC;4BACjH,CAAC;4BACD,IAAA,uBAAU,EAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;4BAC1B,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;gCAC1B,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,mEAAmE,CAAC,CAAC;4BACtH,CAAC;4BACD,OAAO,MAAM,IAAA,mCAAqB,EAAC,IAAiC,EAAE,WAAW,CAAC,CAAC;wBAErF,KAAK,iBAAiB;4BACpB,OAAO,MAAM,IAAA,uCAAyB,EAAC,IAA0B,EAAE,WAAW,CAAC,CAAC;wBAElF;4BACE,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,uBAAuB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;oBACrG,CAAC;gBACD,CAAC,CAAC,EAAE,CAAC;gBAEL,OAAO,MAAM,CAAC;YACd,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAA,6BAAa,EAAC,KAAK,EAAE,kBAAkB,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,gBAAQ,EAAE,CAAC;gBAC9B,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,IAAI,gBAAQ,CAChB,iBAAS,CAAC,cAAc,EACxB,qBAAqB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAChF,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared permission-level resolution for project sharing operations.
|
|
3
|
+
*
|
|
4
|
+
* The Vikunja API encodes project permission levels as a small integer
|
|
5
|
+
* (0 = Read, 1 = Write, 2 = Admin) — `models.Permission` in the vendored
|
|
6
|
+
* OpenAPI spec — on every sharing-related endpoint: link shares
|
|
7
|
+
* (`models.LinkSharing.permission`), direct user shares
|
|
8
|
+
* (`models.ProjectUser.permission`), and direct team shares
|
|
9
|
+
* (`models.TeamProject.permission`). MCP tool callers may supply either the
|
|
10
|
+
* numeric value directly or one of the friendly string aliases (`'read'` /
|
|
11
|
+
* `'write'` / `'admin'`); this resolves either form to the numeric value the
|
|
12
|
+
* API expects, with one shared set of validation rules used everywhere a
|
|
13
|
+
* sharing permission is accepted — link shares, direct user shares, and
|
|
14
|
+
* direct team shares alike.
|
|
15
|
+
*/
|
|
16
|
+
export type PermissionInput = 'read' | 'write' | 'admin' | 0 | 1 | 2;
|
|
17
|
+
/**
|
|
18
|
+
* Resolves a caller-supplied permission (string alias or numeric value) to
|
|
19
|
+
* the numeric `models.Permission` value the Vikunja API expects.
|
|
20
|
+
*
|
|
21
|
+
* @throws MCPError (VALIDATION_ERROR) when `right` is missing, an
|
|
22
|
+
* unrecognized string, an out-of-range number, or neither a string
|
|
23
|
+
* nor a number.
|
|
24
|
+
*/
|
|
25
|
+
export declare function resolvePermission(right: PermissionInput | undefined): 0 | 1 | 2;
|
|
26
|
+
//# sourceMappingURL=permission.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"permission.d.ts","sourceRoot":"","sources":["../../../src/tools/projects/permission.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAQrE;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,eAAe,GAAG,SAAS,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CA4B/E"}
|