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,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vikunja session factory
|
|
3
|
+
*
|
|
4
|
+
* Holds the active {@link AuthManager} for the current MCP session and hands
|
|
5
|
+
* it to the direct-REST transport (`vikunjaRestRequest`). It no longer creates
|
|
6
|
+
* a legacy typed API client — that upstream library was retired from this
|
|
7
|
+
* project (docs/ROADMAP.md §3 decision 2); every API call now goes through
|
|
8
|
+
* `vikunjaRestRequest` against the vendored OpenAPI spec. The class name and
|
|
9
|
+
* the `clientFactory` plumbing are preserved so tool registration signatures
|
|
10
|
+
* (`register*Tool(server, authManager, clientFactory?)`) stay unchanged.
|
|
11
|
+
*/
|
|
12
|
+
import type { AuthManager } from '../auth/AuthManager';
|
|
13
|
+
/**
|
|
14
|
+
* Factory that owns the session's {@link AuthManager} and exposes it to
|
|
15
|
+
* REST-migrated call sites via dependency injection.
|
|
16
|
+
*/
|
|
17
|
+
export declare class VikunjaClientFactory {
|
|
18
|
+
private readonly authManager;
|
|
19
|
+
constructor(authManager: AuthManager);
|
|
20
|
+
/**
|
|
21
|
+
* Expose the session-holding AuthManager backing this factory.
|
|
22
|
+
*
|
|
23
|
+
* Direct-REST call sites (`vikunjaRestRequest`) need an `AuthManager` to
|
|
24
|
+
* recover the session credentials. Tools that only receive a
|
|
25
|
+
* `VikunjaClientFactory` (not the `AuthManager` directly) reach it through
|
|
26
|
+
* this getter, and `getAuthManagerFromContext()` in `src/client.ts` reads
|
|
27
|
+
* it off the active factory the same way.
|
|
28
|
+
*/
|
|
29
|
+
getAuthManager(): AuthManager;
|
|
30
|
+
/**
|
|
31
|
+
* Check if the factory has a valid session
|
|
32
|
+
*/
|
|
33
|
+
hasValidSession(): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Cleanup hook retained for call-site compatibility. There is no cached
|
|
36
|
+
* client instance to release now that this factory only holds the
|
|
37
|
+
* AuthManager, so this is a no-op.
|
|
38
|
+
*/
|
|
39
|
+
cleanup(): void;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=VikunjaClientFactory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VikunjaClientFactory.d.ts","sourceRoot":"","sources":["../../src/client/VikunjaClientFactory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD;;;GAGG;AACH,qBAAa,oBAAoB;IACnB,OAAO,CAAC,QAAQ,CAAC,WAAW;gBAAX,WAAW,EAAE,WAAW;IAErD;;;;;;;;OAQG;IACH,cAAc,IAAI,WAAW;IAI7B;;OAEG;IACH,eAAe,IAAI,OAAO;IAS1B;;;;OAIG;IACH,OAAO,IAAI,IAAI;CAGhB"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Vikunja session factory
|
|
4
|
+
*
|
|
5
|
+
* Holds the active {@link AuthManager} for the current MCP session and hands
|
|
6
|
+
* it to the direct-REST transport (`vikunjaRestRequest`). It no longer creates
|
|
7
|
+
* a legacy typed API client — that upstream library was retired from this
|
|
8
|
+
* project (docs/ROADMAP.md §3 decision 2); every API call now goes through
|
|
9
|
+
* `vikunjaRestRequest` against the vendored OpenAPI spec. The class name and
|
|
10
|
+
* the `clientFactory` plumbing are preserved so tool registration signatures
|
|
11
|
+
* (`register*Tool(server, authManager, clientFactory?)`) stay unchanged.
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.VikunjaClientFactory = void 0;
|
|
15
|
+
/**
|
|
16
|
+
* Factory that owns the session's {@link AuthManager} and exposes it to
|
|
17
|
+
* REST-migrated call sites via dependency injection.
|
|
18
|
+
*/
|
|
19
|
+
class VikunjaClientFactory {
|
|
20
|
+
authManager;
|
|
21
|
+
constructor(authManager) {
|
|
22
|
+
this.authManager = authManager;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Expose the session-holding AuthManager backing this factory.
|
|
26
|
+
*
|
|
27
|
+
* Direct-REST call sites (`vikunjaRestRequest`) need an `AuthManager` to
|
|
28
|
+
* recover the session credentials. Tools that only receive a
|
|
29
|
+
* `VikunjaClientFactory` (not the `AuthManager` directly) reach it through
|
|
30
|
+
* this getter, and `getAuthManagerFromContext()` in `src/client.ts` reads
|
|
31
|
+
* it off the active factory the same way.
|
|
32
|
+
*/
|
|
33
|
+
getAuthManager() {
|
|
34
|
+
return this.authManager;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Check if the factory has a valid session
|
|
38
|
+
*/
|
|
39
|
+
hasValidSession() {
|
|
40
|
+
try {
|
|
41
|
+
this.authManager.getSession();
|
|
42
|
+
return true;
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Cleanup hook retained for call-site compatibility. There is no cached
|
|
50
|
+
* client instance to release now that this factory only holds the
|
|
51
|
+
* AuthManager, so this is a no-op.
|
|
52
|
+
*/
|
|
53
|
+
cleanup() {
|
|
54
|
+
// No cached client to release.
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.VikunjaClientFactory = VikunjaClientFactory;
|
|
58
|
+
//# sourceMappingURL=VikunjaClientFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VikunjaClientFactory.js","sourceRoot":"","sources":["../../src/client/VikunjaClientFactory.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;AAIH;;;GAGG;AACH,MAAa,oBAAoB;IACF;IAA7B,YAA6B,WAAwB;QAAxB,gBAAW,GAAX,WAAW,CAAa;IAAG,CAAC;IAEzD;;;;;;;;OAQG;IACH,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,eAAe;QACb,IAAI,CAAC;YACH,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,OAAO;QACL,+BAA+B;IACjC,CAAC;CACF;AApCD,oDAoCC"}
|
package/dist/client.d.ts
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vikunja session context
|
|
3
|
+
*
|
|
4
|
+
* Holds the active session (via {@link VikunjaClientFactory}, which now wraps
|
|
5
|
+
* only an {@link AuthManager}) and exposes it to the direct-REST transport.
|
|
6
|
+
* The legacy typed-client surface that used to live here was removed when the
|
|
7
|
+
* upstream client library was retired (docs/ROADMAP.md §3 decision 2) — all
|
|
8
|
+
* API calls now go through `vikunjaRestRequest` (`src/utils/vikunja-rest.ts`).
|
|
9
|
+
*/
|
|
10
|
+
import type { AuthManager } from './auth/AuthManager';
|
|
11
|
+
import { VikunjaClientFactory } from './client/VikunjaClientFactory';
|
|
12
|
+
export { VikunjaClientFactory } from './client/VikunjaClientFactory';
|
|
13
|
+
/**
|
|
14
|
+
* Session context for dependency injection with thread safety.
|
|
15
|
+
*
|
|
16
|
+
* NOTE: Only async getInstanceAsync() method is available to prevent race conditions.
|
|
17
|
+
*/
|
|
18
|
+
declare class ClientContext {
|
|
19
|
+
private static instance;
|
|
20
|
+
private static instanceMutex;
|
|
21
|
+
private clientFactory;
|
|
22
|
+
private factoryMutex;
|
|
23
|
+
private constructor();
|
|
24
|
+
/**
|
|
25
|
+
* Thread-safe async getInstance for new code
|
|
26
|
+
*/
|
|
27
|
+
static getInstanceAsync(): Promise<ClientContext>;
|
|
28
|
+
/**
|
|
29
|
+
* Set the client factory for dependency injection (thread-safe)
|
|
30
|
+
*/
|
|
31
|
+
setClientFactory(factory: VikunjaClientFactory): Promise<void>;
|
|
32
|
+
/**
|
|
33
|
+
* Clear the client factory (for testing, thread-safe)
|
|
34
|
+
*/
|
|
35
|
+
clearClientFactory(): Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* Get the AuthManager backing the active session factory (thread-safe).
|
|
38
|
+
*
|
|
39
|
+
* REST-migrated call sites recover the session credentials through this
|
|
40
|
+
* rather than threading an `AuthManager` down every call stack.
|
|
41
|
+
*/
|
|
42
|
+
getAuthManager(): Promise<AuthManager>;
|
|
43
|
+
/**
|
|
44
|
+
* Check if factory is available (thread-safe)
|
|
45
|
+
*/
|
|
46
|
+
hasFactory(): Promise<boolean>;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Convenience function to get the active AuthManager from context
|
|
50
|
+
* (thread-safe). See `ClientContext.getAuthManager()`.
|
|
51
|
+
*/
|
|
52
|
+
export declare function getAuthManagerFromContext(): Promise<AuthManager>;
|
|
53
|
+
/**
|
|
54
|
+
* Set the global client factory for all tools (thread-safe)
|
|
55
|
+
*/
|
|
56
|
+
export declare function setGlobalClientFactory(factory: VikunjaClientFactory): Promise<void>;
|
|
57
|
+
/**
|
|
58
|
+
* Clear the global client factory (for testing, thread-safe)
|
|
59
|
+
*/
|
|
60
|
+
export declare function clearGlobalClientFactory(): Promise<void>;
|
|
61
|
+
export { ClientContext };
|
|
62
|
+
/**
|
|
63
|
+
* Creates a new VikunjaClientFactory bound to the given session.
|
|
64
|
+
*
|
|
65
|
+
* Returns a Promise to keep the call signature stable for existing awaiting
|
|
66
|
+
* callers, even though construction is now synchronous (there is no longer a
|
|
67
|
+
* dynamic client-library import to await).
|
|
68
|
+
*/
|
|
69
|
+
export declare function createVikunjaClientFactory(authManager: AuthManager): Promise<VikunjaClientFactory>;
|
|
70
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAIrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAErE;;;;GAIG;AACH,cAAM,aAAa;IACjB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA8B;IACrD,OAAO,CAAC,MAAM,CAAC,aAAa,CAAe;IAC3C,OAAO,CAAC,aAAa,CAAqC;IAC1D,OAAO,CAAC,YAAY,CAAe;IAEnC,OAAO;IAEP;;OAEG;WACU,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC;IAYvD;;OAEG;IACG,gBAAgB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IASpE;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IASzC;;;;;OAKG;IACG,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC;IAY5C;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;CAQrC;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,WAAW,CAAC,CAGtE;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC,CAGzF;AAED;;GAEG;AACH,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC,CAG9D;AAED,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAElG"}
|
package/dist/client.js
ADDED
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Vikunja session context
|
|
4
|
+
*
|
|
5
|
+
* Holds the active session (via {@link VikunjaClientFactory}, which now wraps
|
|
6
|
+
* only an {@link AuthManager}) and exposes it to the direct-REST transport.
|
|
7
|
+
* The legacy typed-client surface that used to live here was removed when the
|
|
8
|
+
* upstream client library was retired (docs/ROADMAP.md §3 decision 2) — all
|
|
9
|
+
* API calls now go through `vikunjaRestRequest` (`src/utils/vikunja-rest.ts`).
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ClientContext = exports.VikunjaClientFactory = void 0;
|
|
13
|
+
exports.getAuthManagerFromContext = getAuthManagerFromContext;
|
|
14
|
+
exports.setGlobalClientFactory = setGlobalClientFactory;
|
|
15
|
+
exports.clearGlobalClientFactory = clearGlobalClientFactory;
|
|
16
|
+
exports.createVikunjaClientFactory = createVikunjaClientFactory;
|
|
17
|
+
const VikunjaClientFactory_1 = require("./client/VikunjaClientFactory");
|
|
18
|
+
const async_mutex_1 = require("async-mutex");
|
|
19
|
+
const error_handler_1 = require("./utils/error-handler");
|
|
20
|
+
var VikunjaClientFactory_2 = require("./client/VikunjaClientFactory");
|
|
21
|
+
Object.defineProperty(exports, "VikunjaClientFactory", { enumerable: true, get: function () { return VikunjaClientFactory_2.VikunjaClientFactory; } });
|
|
22
|
+
/**
|
|
23
|
+
* Session context for dependency injection with thread safety.
|
|
24
|
+
*
|
|
25
|
+
* NOTE: Only async getInstanceAsync() method is available to prevent race conditions.
|
|
26
|
+
*/
|
|
27
|
+
class ClientContext {
|
|
28
|
+
static instance = null;
|
|
29
|
+
static instanceMutex = new async_mutex_1.Mutex();
|
|
30
|
+
clientFactory = null;
|
|
31
|
+
factoryMutex = new async_mutex_1.Mutex();
|
|
32
|
+
constructor() { }
|
|
33
|
+
/**
|
|
34
|
+
* Thread-safe async getInstance for new code
|
|
35
|
+
*/
|
|
36
|
+
static async getInstanceAsync() {
|
|
37
|
+
const release = await ClientContext.instanceMutex.acquire();
|
|
38
|
+
try {
|
|
39
|
+
if (!ClientContext.instance) {
|
|
40
|
+
ClientContext.instance = new ClientContext();
|
|
41
|
+
}
|
|
42
|
+
return ClientContext.instance;
|
|
43
|
+
}
|
|
44
|
+
finally {
|
|
45
|
+
release();
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Set the client factory for dependency injection (thread-safe)
|
|
50
|
+
*/
|
|
51
|
+
async setClientFactory(factory) {
|
|
52
|
+
const release = await this.factoryMutex.acquire();
|
|
53
|
+
try {
|
|
54
|
+
this.clientFactory = factory;
|
|
55
|
+
}
|
|
56
|
+
finally {
|
|
57
|
+
release();
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Clear the client factory (for testing, thread-safe)
|
|
62
|
+
*/
|
|
63
|
+
async clearClientFactory() {
|
|
64
|
+
const release = await this.factoryMutex.acquire();
|
|
65
|
+
try {
|
|
66
|
+
this.clientFactory = null;
|
|
67
|
+
}
|
|
68
|
+
finally {
|
|
69
|
+
release();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Get the AuthManager backing the active session factory (thread-safe).
|
|
74
|
+
*
|
|
75
|
+
* REST-migrated call sites recover the session credentials through this
|
|
76
|
+
* rather than threading an `AuthManager` down every call stack.
|
|
77
|
+
*/
|
|
78
|
+
async getAuthManager() {
|
|
79
|
+
const release = await this.factoryMutex.acquire();
|
|
80
|
+
try {
|
|
81
|
+
if (this.clientFactory) {
|
|
82
|
+
return this.clientFactory.getAuthManager();
|
|
83
|
+
}
|
|
84
|
+
throw (0, error_handler_1.createAuthRequiredError)('get Vikunja auth manager');
|
|
85
|
+
}
|
|
86
|
+
finally {
|
|
87
|
+
release();
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Check if factory is available (thread-safe)
|
|
92
|
+
*/
|
|
93
|
+
async hasFactory() {
|
|
94
|
+
const release = await this.factoryMutex.acquire();
|
|
95
|
+
try {
|
|
96
|
+
return this.clientFactory !== null;
|
|
97
|
+
}
|
|
98
|
+
finally {
|
|
99
|
+
release();
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
exports.ClientContext = ClientContext;
|
|
104
|
+
/**
|
|
105
|
+
* Convenience function to get the active AuthManager from context
|
|
106
|
+
* (thread-safe). See `ClientContext.getAuthManager()`.
|
|
107
|
+
*/
|
|
108
|
+
async function getAuthManagerFromContext() {
|
|
109
|
+
const context = await ClientContext.getInstanceAsync();
|
|
110
|
+
return context.getAuthManager();
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Set the global client factory for all tools (thread-safe)
|
|
114
|
+
*/
|
|
115
|
+
async function setGlobalClientFactory(factory) {
|
|
116
|
+
const context = await ClientContext.getInstanceAsync();
|
|
117
|
+
await context.setClientFactory(factory);
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Clear the global client factory (for testing, thread-safe)
|
|
121
|
+
*/
|
|
122
|
+
async function clearGlobalClientFactory() {
|
|
123
|
+
const context = await ClientContext.getInstanceAsync();
|
|
124
|
+
await context.clearClientFactory();
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Creates a new VikunjaClientFactory bound to the given session.
|
|
128
|
+
*
|
|
129
|
+
* Returns a Promise to keep the call signature stable for existing awaiting
|
|
130
|
+
* callers, even though construction is now synchronous (there is no longer a
|
|
131
|
+
* dynamic client-library import to await).
|
|
132
|
+
*/
|
|
133
|
+
function createVikunjaClientFactory(authManager) {
|
|
134
|
+
return Promise.resolve(new VikunjaClientFactory_1.VikunjaClientFactory(authManager));
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAgGH,8DAGC;AAKD,wDAGC;AAKD,4DAGC;AAWD,gEAEC;AA7HD,wEAAqE;AACrE,6CAAoC;AACpC,yDAAgE;AAEhE,sEAAqE;AAA5D,4HAAA,oBAAoB,OAAA;AAE7B;;;;GAIG;AACH,MAAM,aAAa;IACT,MAAM,CAAC,QAAQ,GAAyB,IAAI,CAAC;IAC7C,MAAM,CAAC,aAAa,GAAG,IAAI,mBAAK,EAAE,CAAC;IACnC,aAAa,GAAgC,IAAI,CAAC;IAClD,YAAY,GAAG,IAAI,mBAAK,EAAE,CAAC;IAEnC,gBAAuB,CAAC;IAExB;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,gBAAgB;QAC3B,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;QAC5D,IAAI,CAAC;YACH,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;gBAC5B,aAAa,CAAC,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAC;YAC/C,CAAC;YACD,OAAO,aAAa,CAAC,QAAQ,CAAC;QAChC,CAAC;gBAAS,CAAC;YACT,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CAAC,OAA6B;QAClD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAClD,IAAI,CAAC;YACH,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;QAC/B,CAAC;gBAAS,CAAC;YACT,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB;QACtB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAClD,IAAI,CAAC;YACH,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC5B,CAAC;gBAAS,CAAC;YACT,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,cAAc;QAClB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAClD,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;YAC7C,CAAC;YACD,MAAM,IAAA,uCAAuB,EAAC,0BAA0B,CAAC,CAAC;QAC5D,CAAC;gBAAS,CAAC;YACT,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU;QACd,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;QAClD,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC;QACrC,CAAC;gBAAS,CAAC;YACT,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;;AA4BM,sCAAa;AAzBtB;;;GAGG;AACI,KAAK,UAAU,yBAAyB;IAC7C,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,gBAAgB,EAAE,CAAC;IACvD,OAAO,OAAO,CAAC,cAAc,EAAE,CAAC;AAClC,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,sBAAsB,CAAC,OAA6B;IACxE,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,gBAAgB,EAAE,CAAC;IACvD,MAAM,OAAO,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,wBAAwB;IAC5C,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,gBAAgB,EAAE,CAAC;IACvD,MAAM,OAAO,CAAC,kBAAkB,EAAE,CAAC;AACrC,CAAC;AAID;;;;;;GAMG;AACH,SAAgB,0BAA0B,CAAC,WAAwB;IACjE,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,2CAAoB,CAAC,WAAW,CAAC,CAAC,CAAC;AAChE,CAAC"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Centralized Configuration Manager
|
|
3
|
+
* Replaces scattered process.env usage with type-safe configuration management
|
|
4
|
+
*/
|
|
5
|
+
import type { ApplicationConfig, ConfigLoadOptions, AuthConfig, LoggingConfig, RateLimitConfig, FeatureFlagsConfig, ModulesConfig, TemplatesConfig } from './types';
|
|
6
|
+
/**
|
|
7
|
+
* Centralized Configuration Manager
|
|
8
|
+
*/
|
|
9
|
+
export declare class ConfigurationManager {
|
|
10
|
+
private static instance;
|
|
11
|
+
private config;
|
|
12
|
+
private readonly loadOptions;
|
|
13
|
+
private constructor();
|
|
14
|
+
/**
|
|
15
|
+
* Get singleton instance of ConfigurationManager
|
|
16
|
+
*/
|
|
17
|
+
static getInstance(options?: ConfigLoadOptions): ConfigurationManager;
|
|
18
|
+
/**
|
|
19
|
+
* Reset singleton instance (for testing)
|
|
20
|
+
*/
|
|
21
|
+
static reset(): void;
|
|
22
|
+
/**
|
|
23
|
+
* Load and validate configuration from multiple sources
|
|
24
|
+
*/
|
|
25
|
+
loadConfiguration(): ApplicationConfig;
|
|
26
|
+
/**
|
|
27
|
+
* Get current configuration (load if not already loaded)
|
|
28
|
+
*/
|
|
29
|
+
getConfiguration(): Promise<ApplicationConfig>;
|
|
30
|
+
/**
|
|
31
|
+
* Get specific configuration section
|
|
32
|
+
*/
|
|
33
|
+
getAuthConfig(): Promise<AuthConfig>;
|
|
34
|
+
getLoggingConfig(): Promise<LoggingConfig>;
|
|
35
|
+
getRateLimitConfig(): Promise<RateLimitConfig>;
|
|
36
|
+
getFeatureFlagsConfig(): Promise<FeatureFlagsConfig>;
|
|
37
|
+
getModulesConfig(): Promise<ModulesConfig>;
|
|
38
|
+
getTemplatesConfig(): Promise<TemplatesConfig>;
|
|
39
|
+
/**
|
|
40
|
+
* Whether the server is in global read-only safety mode. Synchronous
|
|
41
|
+
* (unlike the other getters above) because `src/utils/read-only.ts`'s
|
|
42
|
+
* per-dispatch guard needs a cheap, non-async check; `loadConfiguration()`
|
|
43
|
+
* itself is synchronous and cached after the first call.
|
|
44
|
+
*/
|
|
45
|
+
isReadOnly(): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Check if a feature is enabled
|
|
48
|
+
*/
|
|
49
|
+
isFeatureEnabled(featureName: string): Promise<boolean>;
|
|
50
|
+
/**
|
|
51
|
+
* Detect current environment
|
|
52
|
+
*/
|
|
53
|
+
private detectEnvironment;
|
|
54
|
+
/**
|
|
55
|
+
* Load configuration from an optional JSON config file.
|
|
56
|
+
*
|
|
57
|
+
* The file location defaults to `vikunja-mcp.config.json` in the current
|
|
58
|
+
* working directory, overridable via `VIKUNJA_MCP_CONFIG`. The config file
|
|
59
|
+
* is intended for non-sensitive settings only (module gating, rate limits,
|
|
60
|
+
* feature flags, etc.) — it is safe to mount read-only as a Docker config.
|
|
61
|
+
* Secrets belong in environment variables (optionally via the `*_FILE`
|
|
62
|
+
* convention — see `./secrets.ts`), never in this file.
|
|
63
|
+
*
|
|
64
|
+
* - Explicit path (via env var) that cannot be read: hard error.
|
|
65
|
+
* - Default path that does not exist: silently skipped (file is optional).
|
|
66
|
+
* - File exists but contains invalid JSON or a non-object value: hard
|
|
67
|
+
* error either way, so misconfiguration is never masked.
|
|
68
|
+
*/
|
|
69
|
+
private loadFromConfigFile;
|
|
70
|
+
/**
|
|
71
|
+
* Load configuration from environment variables
|
|
72
|
+
* See docs/CONFIGURATION.md for the full environment variable reference.
|
|
73
|
+
*/
|
|
74
|
+
private loadFromEnvironmentVariables;
|
|
75
|
+
/**
|
|
76
|
+
* Assign a parsed environment variable value onto a target object,
|
|
77
|
+
* skipping unset variables entirely so profile/schema defaults apply.
|
|
78
|
+
*/
|
|
79
|
+
private assignEnvValue;
|
|
80
|
+
/**
|
|
81
|
+
* Parse a raw environment variable string into a boolean, number, or string
|
|
82
|
+
*/
|
|
83
|
+
private parseEnvironmentValue;
|
|
84
|
+
/**
|
|
85
|
+
* Deep merge multiple configuration objects
|
|
86
|
+
*/
|
|
87
|
+
private deepMerge;
|
|
88
|
+
/**
|
|
89
|
+
* Validate configuration using Zod schema
|
|
90
|
+
*/
|
|
91
|
+
private validateConfiguration;
|
|
92
|
+
/**
|
|
93
|
+
* Log configuration summary without sensitive values
|
|
94
|
+
*/
|
|
95
|
+
private logConfigurationSummary;
|
|
96
|
+
}
|
|
97
|
+
export declare const getConfiguration: () => Promise<ApplicationConfig>;
|
|
98
|
+
export declare const getAuthConfig: () => Promise<AuthConfig>;
|
|
99
|
+
export declare const getLoggingConfig: () => Promise<LoggingConfig>;
|
|
100
|
+
export declare const getRateLimitConfig: () => Promise<RateLimitConfig>;
|
|
101
|
+
export declare const getFeatureFlagsConfig: () => Promise<FeatureFlagsConfig>;
|
|
102
|
+
export declare const isFeatureEnabled: (featureName: string) => Promise<boolean>;
|
|
103
|
+
export declare const getModulesConfig: () => Promise<ModulesConfig>;
|
|
104
|
+
export declare const isReadOnly: () => boolean;
|
|
105
|
+
export declare const getTemplatesConfig: () => Promise<TemplatesConfig>;
|
|
106
|
+
//# sourceMappingURL=ConfigurationManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfigurationManager.d.ts","sourceRoot":"","sources":["../../src/config/ConfigurationManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,UAAU,EACV,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,eAAe,EAChB,MAAM,SAAS,CAAC;AAwEjB;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAqC;IAC5D,OAAO,CAAC,MAAM,CAAkC;IAChD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;IAEhD,OAAO;IAQP;;OAEG;WACW,WAAW,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,oBAAoB;IAO5E;;OAEG;WACW,KAAK,IAAI,IAAI;IAI3B;;OAEG;IACI,iBAAiB,IAAI,iBAAiB;IAoD7C;;OAEG;IACU,gBAAgB,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAO3D;;OAEG;IACU,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC;IAKpC,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC;IAK1C,kBAAkB,IAAI,OAAO,CAAC,eAAe,CAAC;IAK9C,qBAAqB,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAKpD,gBAAgB,IAAI,OAAO,CAAC,aAAa,CAAC;IAK1C,kBAAkB,IAAI,OAAO,CAAC,eAAe,CAAC;IAK3D;;;;;OAKG;IACI,UAAU,IAAI,OAAO;IAI5B;;OAEG;IACU,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKpE;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAmBzB;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,kBAAkB;IAwC1B;;;OAGG;IACH,OAAO,CAAC,4BAA4B;IAgJpC;;;OAGG;IACH,OAAO,CAAC,cAAc;IAYtB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAiB7B;;OAEG;IACH,OAAO,CAAC,SAAS;IA8BjB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAuB7B;;OAEG;IACH,OAAO,CAAC,uBAAuB;CA8BhC;AAGD,eAAO,MAAM,gBAAgB,QAAO,OAAO,CAAC,iBAAiB,CAA0D,CAAC;AACxH,eAAO,MAAM,aAAa,QAAO,OAAO,CAAC,UAAU,CAAuD,CAAC;AAC3G,eAAO,MAAM,gBAAgB,QAAO,OAAO,CAAC,aAAa,CAA0D,CAAC;AACpH,eAAO,MAAM,kBAAkB,QAAO,OAAO,CAAC,eAAe,CAA4D,CAAC;AAC1H,eAAO,MAAM,qBAAqB,QAAO,OAAO,CAAC,kBAAkB,CAA+D,CAAC;AACnI,eAAO,MAAM,gBAAgB,GAAI,aAAa,MAAM,KAAG,OAAO,CAAC,OAAO,CAAqE,CAAC;AAC5I,eAAO,MAAM,gBAAgB,QAAO,OAAO,CAAC,aAAa,CAA0D,CAAC;AACpH,eAAO,MAAM,UAAU,QAAO,OAA0D,CAAC;AACzF,eAAO,MAAM,kBAAkB,QAAO,OAAO,CAAC,eAAe,CAA4D,CAAC"}
|