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,358 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Enhanced security utilities for comprehensive credential masking and sensitive data protection
|
|
4
|
+
* Prevents credential exposure in logs, monitoring systems, and error reports
|
|
5
|
+
*
|
|
6
|
+
* Security Features:
|
|
7
|
+
* - Comprehensive sensitive key detection with regex patterns
|
|
8
|
+
* - Case-insensitive matching with Unicode normalization
|
|
9
|
+
* - Credential format detection (JWT, API keys, database URIs, etc.)
|
|
10
|
+
* - Protection against encoding bypasses and Unicode attacks
|
|
11
|
+
* - Performance-optimized for large datasets
|
|
12
|
+
* - Integration with input sanitization layer for comprehensive protection
|
|
13
|
+
*/
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.maskCredential = maskCredential;
|
|
16
|
+
exports.maskUrl = maskUrl;
|
|
17
|
+
exports.sanitizeLogData = sanitizeLogData;
|
|
18
|
+
exports.createSecureLogConfig = createSecureLogConfig;
|
|
19
|
+
exports.createSecureConnectionMessage = createSecureConnectionMessage;
|
|
20
|
+
exports.clearSecurityCache = clearSecurityCache;
|
|
21
|
+
exports.getSecurityCacheStats = getSecurityCacheStats;
|
|
22
|
+
const validation_1 = require("./validation");
|
|
23
|
+
// Comprehensive list of sensitive key patterns
|
|
24
|
+
const SENSITIVE_KEY_PATTERNS = [
|
|
25
|
+
// Token patterns (enhanced to handle camelCase and embedded patterns)
|
|
26
|
+
/(?:^|[_-])(token|tokens|access_token|refresh_token|session_token|auth_token|bearer_token|csrf_token|xsrf_token)(?:$|[_-])/i,
|
|
27
|
+
/(?:^|[_-])(jwt|jwt_token|jwt_secret|id_token|access_key|secret_key|api_key|apikey|api_key_secret|refresh)(?:$|[_-])/i,
|
|
28
|
+
/(?:^|[_-])(session|sessionid|session_id|user_session|admin_session|phpsessid)(?:$|[_-])/i,
|
|
29
|
+
/(?:^|[_-])(bearer|authorization|auth|auth_header|x_auth_token|x_api_key)(?:$|[_-])/i,
|
|
30
|
+
// Password and credential patterns
|
|
31
|
+
/(?:^|[_-])(password|passwd|pass|pwd|credential|credentials|secret|private_key|privatekey)(?:$|[_-])/i,
|
|
32
|
+
/(?:^|[_-])(client_secret|client_id|client_key|app_secret|app_key|app_id)(?:$|[_-])/i,
|
|
33
|
+
/(?:^|[_-])(user|username|user_id|email|login|signin)(?:$|[_-])/i,
|
|
34
|
+
// Database and connection patterns
|
|
35
|
+
/(?:^|[_-])(database|db|connection|connection_string|mongo_uri|mongodb_uri|redis_url)(?:$|[_-])/i,
|
|
36
|
+
/(?:^|[_-])(host|hostname|server|endpoint|uri|url|link)(?:$|[_-])/i,
|
|
37
|
+
// OAuth and external service patterns
|
|
38
|
+
/(?:^|[_-])(oauth|oauth_token|oauth_secret|consumer_key|consumer_secret)(?:$|[_-])/i,
|
|
39
|
+
/(?:^|[_-])(github|gitlab|bitbucket|slack|discord|google|facebook|twitter)(?:$|[_-])/i,
|
|
40
|
+
// Encryption and security patterns
|
|
41
|
+
/(?:^|[_-])(encryption|encrypt|decrypt|cipher|hash|salt|pepper|nonce|iv)(?:$|[_-])/i,
|
|
42
|
+
/(?:^|[_-])(public_key|private_key|certificate|cert|ssl|tls|https)(?:$|[_-])/i,
|
|
43
|
+
// Configuration and environment patterns
|
|
44
|
+
/(?:^|[_-])(config|configuration|setting|env|environment|variable)(?:$|[_-])/i,
|
|
45
|
+
/(?:^|[_-])(secret|secrets|vault|keystore|credential_store)(?:$|[_-])/i,
|
|
46
|
+
// File and storage patterns
|
|
47
|
+
/(?:^|[_-])(file|path|directory|folder|storage|bucket|container)(?:$|[_-])/i,
|
|
48
|
+
// API and service patterns
|
|
49
|
+
/(?:^|[_-])(api|service|endpoint|webhook|callback|redirect)(?:$|[_-])/i,
|
|
50
|
+
// Enhanced patterns for camelCase and embedded sensitive keywords
|
|
51
|
+
/apiToken/i, // Direct match for apiToken
|
|
52
|
+
/jwtToken/i, // Direct match for jwtToken
|
|
53
|
+
/authKey/i, // Direct match for authKey
|
|
54
|
+
/apiKey/i, // Direct match for apiKey
|
|
55
|
+
// Contains patterns for embedded sensitive words
|
|
56
|
+
/(api|auth|token|key|secret|credential|pass|refresh)/i,
|
|
57
|
+
// Direct matches for common sensitive keys (fallbacks)
|
|
58
|
+
/^(token|key|secret|auth|credential|pass)$/i,
|
|
59
|
+
/\b(token|key|secret|auth|credential|pass)\b/i
|
|
60
|
+
];
|
|
61
|
+
// Regex patterns for detecting credential formats in string values
|
|
62
|
+
const CREDENTIAL_FORMAT_PATTERNS = [
|
|
63
|
+
// JWT tokens (header.payload.signature with base64url encoding)
|
|
64
|
+
/^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+\.[A-Za-z0-9_-]+$/,
|
|
65
|
+
// API key formats (adjusted for realistic test data)
|
|
66
|
+
/^tk_[a-zA-Z0-9]{8,}$/, // Vikunja token format (minimum 8 chars after tk_)
|
|
67
|
+
/^ghp_[a-zA-Z0-9]{36}$/, // GitHub personal access token
|
|
68
|
+
/^xoxb-[0-9]{10,}-[0-9]{10,}-[a-zA-Z0-9]{24}$/, // Slack bot token
|
|
69
|
+
/^AKIA[0-9A-Z]{16}$/, // AWS access key ID
|
|
70
|
+
/^[a-zA-Z0-9+/]{20,}={0,2}$/, // Base64 encoded keys/secrets (reduced minimum)
|
|
71
|
+
// Database connection URIs
|
|
72
|
+
/^mongodb:\/\/[^:]+:[^@]+@[^/]+/, // MongoDB URI with credentials
|
|
73
|
+
/^postgresql:\/\/[^:]+:[^@]+@[^/]+/, // PostgreSQL URI with credentials
|
|
74
|
+
/^mysql:\/\/[^:]+:[^@]+@[^/]+/, // MySQL URI with credentials
|
|
75
|
+
/^redis:\/\/:[^@]+@[^/]+/, // Redis URI with password
|
|
76
|
+
// UUID patterns (often used for session IDs or request IDs)
|
|
77
|
+
/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,
|
|
78
|
+
// Long alphanumeric strings (likely keys or hashes) - more permissive
|
|
79
|
+
/^[a-zA-Z0-9]{32,}$/, // Changed from hex-only to alphanumeric
|
|
80
|
+
// Authorization headers
|
|
81
|
+
/^Bearer\s+[A-Za-z0-9._-]+/,
|
|
82
|
+
/^Basic\s+[A-Za-z0-9+/=]+/,
|
|
83
|
+
// Certificate PEM headers
|
|
84
|
+
/^-----BEGIN\s+(?:RSA\s+)?PRIVATE\s+KEY-----/,
|
|
85
|
+
/^-----BEGIN\s+CERTIFICATE-----/,
|
|
86
|
+
// High-entropy base64 strings (likely encoded secrets)
|
|
87
|
+
/^[A-Za-z0-9+/]{30,}={0,2}$/, // Reduced minimum for practical testing
|
|
88
|
+
// Request/Trace ID patterns
|
|
89
|
+
/^(req|trace|span|correlation)_[a-zA-Z0-9]{16,}$/
|
|
90
|
+
];
|
|
91
|
+
// Unicode normalization patterns to detect bypass attempts
|
|
92
|
+
const UNICODE_NORMALIZATION_PATTERNS = [
|
|
93
|
+
/\u200b/, // Zero-width space
|
|
94
|
+
/\u200c/, // Zero-width non-joiner
|
|
95
|
+
/\u200d/, // Zero-width joiner
|
|
96
|
+
/\u200e/, // Left-to-right mark
|
|
97
|
+
/\u200f/, // Right-to-left mark
|
|
98
|
+
/\u2060/, // Word joiner
|
|
99
|
+
/\u180e/, // Mongolian vowel separator
|
|
100
|
+
/[\uFE00-\uFE0F]/, // Variation selectors
|
|
101
|
+
];
|
|
102
|
+
// Performance optimization: Cache normalized keys
|
|
103
|
+
const normalizedKeyCache = new Map();
|
|
104
|
+
/**
|
|
105
|
+
* Normalizes a key for security checking by:
|
|
106
|
+
* - Converting to lowercase
|
|
107
|
+
* - Removing Unicode bypass characters
|
|
108
|
+
* - Normalizing Unicode characters
|
|
109
|
+
* - Replacing common separators with underscores
|
|
110
|
+
*
|
|
111
|
+
* @param key - The key to normalize
|
|
112
|
+
* @returns Normalized key safe for comparison
|
|
113
|
+
*/
|
|
114
|
+
function normalizeSecurityKey(key) {
|
|
115
|
+
if (normalizedKeyCache.has(key)) {
|
|
116
|
+
return normalizedKeyCache.get(key);
|
|
117
|
+
}
|
|
118
|
+
let normalized = key.toLowerCase();
|
|
119
|
+
// Remove Unicode bypass characters
|
|
120
|
+
UNICODE_NORMALIZATION_PATTERNS.forEach(pattern => {
|
|
121
|
+
normalized = normalized.replace(pattern, '');
|
|
122
|
+
});
|
|
123
|
+
// Replace common separators with underscores for pattern matching
|
|
124
|
+
normalized = normalized.replace(/[-\s.]/g, '_');
|
|
125
|
+
// Remove multiple consecutive underscores
|
|
126
|
+
normalized = normalized.replace(/_+/g, '_');
|
|
127
|
+
// Trim leading/trailing underscores
|
|
128
|
+
normalized = normalized.replace(/^_+|_+$/g, '');
|
|
129
|
+
// Cache the result
|
|
130
|
+
normalizedKeyCache.set(key, normalized);
|
|
131
|
+
return normalized;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Checks if a key is sensitive using comprehensive pattern matching
|
|
135
|
+
*
|
|
136
|
+
* @param key - The key to check
|
|
137
|
+
* @returns True if the key matches any sensitive pattern
|
|
138
|
+
*/
|
|
139
|
+
function isSensitiveKey(key) {
|
|
140
|
+
const normalizedKey = normalizeSecurityKey(key);
|
|
141
|
+
return SENSITIVE_KEY_PATTERNS.some(pattern => {
|
|
142
|
+
// Test both original and normalized key against patterns
|
|
143
|
+
return pattern.test(key) || pattern.test(normalizedKey);
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Checks if a string value looks like a credential based on format patterns
|
|
148
|
+
*
|
|
149
|
+
* @param value - The string value to check
|
|
150
|
+
* @returns True if the value matches credential format patterns
|
|
151
|
+
*/
|
|
152
|
+
function isCredentialFormat(value) {
|
|
153
|
+
// Only check strings of reasonable length (avoid false positives on short strings)
|
|
154
|
+
if (value.length < 8) {
|
|
155
|
+
return false;
|
|
156
|
+
}
|
|
157
|
+
// Check against credential format patterns
|
|
158
|
+
return CREDENTIAL_FORMAT_PATTERNS.some(pattern => pattern.test(value));
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Enhanced credential masking that handles various formats
|
|
162
|
+
* Shows only the first 4 characters followed by ellipsis for long credentials
|
|
163
|
+
* Uses '[REDACTED]' for short credentials
|
|
164
|
+
*
|
|
165
|
+
* @param credential - The credential to mask (API token, password, etc.)
|
|
166
|
+
* @returns Masked credential string or empty string if input is invalid
|
|
167
|
+
*/
|
|
168
|
+
function maskCredential(credential) {
|
|
169
|
+
if (!credential || typeof credential !== 'string') {
|
|
170
|
+
return '';
|
|
171
|
+
}
|
|
172
|
+
// Normalize credential by removing Unicode bypass characters
|
|
173
|
+
let normalizedCredential = credential;
|
|
174
|
+
UNICODE_NORMALIZATION_PATTERNS.forEach(pattern => {
|
|
175
|
+
normalizedCredential = normalizedCredential.replace(pattern, '');
|
|
176
|
+
});
|
|
177
|
+
if (normalizedCredential.length <= 4) {
|
|
178
|
+
return '***';
|
|
179
|
+
}
|
|
180
|
+
return `${normalizedCredential.substring(0, 4)}...`;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Masks sensitive information in URLs for logging
|
|
184
|
+
* Enhanced detection of sensitive path components and query parameters
|
|
185
|
+
*
|
|
186
|
+
* @param url - The URL to mask
|
|
187
|
+
* @returns Masked URL string or original if not a valid URL
|
|
188
|
+
*/
|
|
189
|
+
function maskUrl(url) {
|
|
190
|
+
if (!url || typeof url !== 'string') {
|
|
191
|
+
return '';
|
|
192
|
+
}
|
|
193
|
+
try {
|
|
194
|
+
const urlObj = new URL(url);
|
|
195
|
+
// Enhanced sensitive path detection
|
|
196
|
+
const sensitivePathPatterns = [
|
|
197
|
+
/\/api\/v\d+\/(token|auth|login|key|session)/i,
|
|
198
|
+
/(auth|login|logout|signin|signout|token|key|session)/i,
|
|
199
|
+
/\/oauth\/(authorize|token|callback)/i,
|
|
200
|
+
/(admin|dashboard|control)/i
|
|
201
|
+
];
|
|
202
|
+
const pathname = urlObj.pathname.toLowerCase();
|
|
203
|
+
if (sensitivePathPatterns.some(pattern => pattern.test(pathname))) {
|
|
204
|
+
// Mask the last path component
|
|
205
|
+
urlObj.pathname = urlObj.pathname.replace(/\/[^/]*$/, '/[REDACTED]');
|
|
206
|
+
}
|
|
207
|
+
// Mask all query parameters (they may contain sensitive data)
|
|
208
|
+
if (urlObj.search) {
|
|
209
|
+
urlObj.search = '?[REDACTED]';
|
|
210
|
+
}
|
|
211
|
+
// Mask sensitive URL fragments
|
|
212
|
+
if (urlObj.hash && isSensitiveKey(urlObj.hash.substring(1))) {
|
|
213
|
+
urlObj.hash = '#[REDACTED]';
|
|
214
|
+
}
|
|
215
|
+
return urlObj.toString();
|
|
216
|
+
}
|
|
217
|
+
catch {
|
|
218
|
+
// If URL parsing fails, just mask after the first slash (original behavior)
|
|
219
|
+
const firstSlashIndex = url.indexOf('/', url.indexOf('://') + 3);
|
|
220
|
+
if (firstSlashIndex !== -1) {
|
|
221
|
+
return `${url.substring(0, firstSlashIndex)}/[REDACTED]`;
|
|
222
|
+
}
|
|
223
|
+
return url;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Enhanced log data sanitization with comprehensive credential masking
|
|
228
|
+
* Recursively processes nested objects and arrays with advanced pattern detection
|
|
229
|
+
*
|
|
230
|
+
* @param data - The data object to sanitize
|
|
231
|
+
* @returns Sanitized data with masked sensitive fields
|
|
232
|
+
*/
|
|
233
|
+
function sanitizeLogData(data) {
|
|
234
|
+
return sanitizeLogDataInternal(data, new Set());
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Internal recursive sanitization function with cycle detection
|
|
238
|
+
*
|
|
239
|
+
* @param data - The data to sanitize
|
|
240
|
+
* @param visited - Set of visited objects to prevent infinite recursion
|
|
241
|
+
* @returns Sanitized data
|
|
242
|
+
*/
|
|
243
|
+
function sanitizeLogDataInternal(data, visited) {
|
|
244
|
+
// Handle primitive types
|
|
245
|
+
if (data === null || data === undefined) {
|
|
246
|
+
return data;
|
|
247
|
+
}
|
|
248
|
+
if (typeof data === 'string') {
|
|
249
|
+
// Check for credential formats in string values
|
|
250
|
+
if (isCredentialFormat(data)) {
|
|
251
|
+
return maskCredential(data);
|
|
252
|
+
}
|
|
253
|
+
// Apply input sanitization to all non-credential string values
|
|
254
|
+
// This provides comprehensive XSS and injection protection
|
|
255
|
+
try {
|
|
256
|
+
return (0, validation_1.sanitizeString)(data);
|
|
257
|
+
}
|
|
258
|
+
catch {
|
|
259
|
+
// If sanitization fails, return the original string with fallback protection
|
|
260
|
+
// This ensures we don't break logging if input contains unexpected content
|
|
261
|
+
return '[SANITIZATION_FAILED]';
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
if (typeof data === 'number' || typeof data === 'boolean') {
|
|
265
|
+
return data;
|
|
266
|
+
}
|
|
267
|
+
// Handle arrays with recursion protection
|
|
268
|
+
if (Array.isArray(data)) {
|
|
269
|
+
if (visited.has(data)) {
|
|
270
|
+
return '[Circular Reference]';
|
|
271
|
+
}
|
|
272
|
+
visited.add(data);
|
|
273
|
+
return data.map(item => sanitizeLogDataInternal(item, visited));
|
|
274
|
+
}
|
|
275
|
+
// Handle objects with recursion protection
|
|
276
|
+
if (typeof data === 'object' && data !== null) {
|
|
277
|
+
if (visited.has(data)) {
|
|
278
|
+
return '[Circular Reference]';
|
|
279
|
+
}
|
|
280
|
+
visited.add(data);
|
|
281
|
+
const sanitized = {};
|
|
282
|
+
for (const [key, value] of Object.entries(data)) {
|
|
283
|
+
// Check if key is sensitive using enhanced detection
|
|
284
|
+
if (isSensitiveKey(key)) {
|
|
285
|
+
if (typeof value === 'string') {
|
|
286
|
+
// For string sensitive values, use format detection
|
|
287
|
+
if (isCredentialFormat(value)) {
|
|
288
|
+
sanitized[key] = maskCredential(value);
|
|
289
|
+
}
|
|
290
|
+
else if (value.length > 50) {
|
|
291
|
+
// Long strings in sensitive keys are likely credentials
|
|
292
|
+
sanitized[key] = maskCredential(value);
|
|
293
|
+
}
|
|
294
|
+
else {
|
|
295
|
+
sanitized[key] = '[REDACTED]';
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
else {
|
|
299
|
+
// Non-string sensitive values
|
|
300
|
+
sanitized[key] = '[REDACTED]';
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
else {
|
|
304
|
+
// Recursively sanitize non-sensitive values
|
|
305
|
+
sanitized[key] = sanitizeLogDataInternal(value, visited);
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
return sanitized;
|
|
309
|
+
}
|
|
310
|
+
// Handle any other types (functions, symbols, etc.)
|
|
311
|
+
return '[Unsupported Type]';
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* Creates a secure configuration object for logging
|
|
315
|
+
* Masks sensitive environment variables and configuration values
|
|
316
|
+
*
|
|
317
|
+
* @param config - Configuration object to sanitize
|
|
318
|
+
* @returns Sanitized configuration for safe logging
|
|
319
|
+
*/
|
|
320
|
+
function createSecureLogConfig(config) {
|
|
321
|
+
return sanitizeLogData(config);
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* Generates a safe connection status message with masked credentials
|
|
325
|
+
* Enhanced with comprehensive URL and token masking
|
|
326
|
+
*
|
|
327
|
+
* @param url - Connection URL
|
|
328
|
+
* @param token - API token or credential
|
|
329
|
+
* @param authType - Type of authentication being used
|
|
330
|
+
* @returns Safe status message for logging
|
|
331
|
+
*/
|
|
332
|
+
function createSecureConnectionMessage(url, token, authType) {
|
|
333
|
+
const maskedUrl = maskUrl(url);
|
|
334
|
+
const maskedToken = maskCredential(token);
|
|
335
|
+
if (authType) {
|
|
336
|
+
return `Connecting to ${maskedUrl} with ${authType} token ${maskedToken}`;
|
|
337
|
+
}
|
|
338
|
+
return `Connecting to ${maskedUrl} with token ${maskedToken}`;
|
|
339
|
+
}
|
|
340
|
+
/**
|
|
341
|
+
* Performance utility to clear the normalized key cache
|
|
342
|
+
* Useful for testing or memory management in long-running processes
|
|
343
|
+
*/
|
|
344
|
+
function clearSecurityCache() {
|
|
345
|
+
normalizedKeyCache.clear();
|
|
346
|
+
}
|
|
347
|
+
/**
|
|
348
|
+
* Gets cache statistics for performance monitoring
|
|
349
|
+
*
|
|
350
|
+
* @returns Object containing cache size and performance metrics
|
|
351
|
+
*/
|
|
352
|
+
function getSecurityCacheStats() {
|
|
353
|
+
return {
|
|
354
|
+
size: normalizedKeyCache.size,
|
|
355
|
+
maxSize: 10000 // Configurable maximum cache size
|
|
356
|
+
};
|
|
357
|
+
}
|
|
358
|
+
//# sourceMappingURL=security.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/utils/security.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple Response Formatter
|
|
3
|
+
* Replaces the over-engineered 2,925-line AORP system with direct, clean responses
|
|
4
|
+
*/
|
|
5
|
+
import type { ResponseMetadata } from '../types/responses';
|
|
6
|
+
import type { Task, Project, Label, User } from '../types/vikunja';
|
|
7
|
+
/**
|
|
8
|
+
* Common data structures that can be passed to response formatters
|
|
9
|
+
*/
|
|
10
|
+
export interface ResponseData {
|
|
11
|
+
/** Array of items with common identifiers */
|
|
12
|
+
items?: Array<{
|
|
13
|
+
id?: number | string;
|
|
14
|
+
title?: string;
|
|
15
|
+
name?: string;
|
|
16
|
+
[key: string]: unknown;
|
|
17
|
+
}>;
|
|
18
|
+
/** Tasks collection */
|
|
19
|
+
tasks?: Task[];
|
|
20
|
+
/** Projects collection */
|
|
21
|
+
projects?: Project[];
|
|
22
|
+
/** Labels collection */
|
|
23
|
+
labels?: Label[];
|
|
24
|
+
/** Users collection */
|
|
25
|
+
users?: User[];
|
|
26
|
+
/** Generic key-value data */
|
|
27
|
+
[key: string]: unknown;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Individual data item that can be formatted for display
|
|
31
|
+
*/
|
|
32
|
+
export interface DataItem {
|
|
33
|
+
id?: number | string;
|
|
34
|
+
title?: string;
|
|
35
|
+
name?: string;
|
|
36
|
+
[key: string]: unknown;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Simple response structure - replaces complex AORP system
|
|
40
|
+
*/
|
|
41
|
+
export interface SimpleResponse {
|
|
42
|
+
/** Response content */
|
|
43
|
+
content: string;
|
|
44
|
+
/** Response metadata */
|
|
45
|
+
metadata?: ResponseMetadata;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Create a simple success response
|
|
49
|
+
* Replaces complex AORP factory with direct formatting
|
|
50
|
+
*/
|
|
51
|
+
export declare function createSuccessResponse(operation: string, message: string, data?: ResponseData, metadata?: ResponseMetadata): SimpleResponse;
|
|
52
|
+
/**
|
|
53
|
+
* Create a simple error response
|
|
54
|
+
* Replaces complex AORP error handling with direct formatting
|
|
55
|
+
*/
|
|
56
|
+
export declare function createErrorResponse(operation: string, message: string, errorCode?: string, metadata?: ResponseMetadata): SimpleResponse;
|
|
57
|
+
/**
|
|
58
|
+
* Format success message in clean markdown
|
|
59
|
+
* Replaces complex AORP markdown formatting
|
|
60
|
+
*/
|
|
61
|
+
export declare function formatSuccessMessage(operation: string, message: string, data?: ResponseData, metadata?: Record<string, unknown>): string;
|
|
62
|
+
/**
|
|
63
|
+
* Format error message in clean markdown
|
|
64
|
+
* Replaces complex AORP error formatting
|
|
65
|
+
*/
|
|
66
|
+
export declare function formatErrorMessage(operation: string, message: string, errorCode: string, metadata?: ResponseMetadata): string;
|
|
67
|
+
/**
|
|
68
|
+
* Format response as MCP content array
|
|
69
|
+
* Direct replacement for AORP formatting
|
|
70
|
+
*/
|
|
71
|
+
export declare function formatMcpResponse(response: SimpleResponse): Array<{
|
|
72
|
+
type: 'text';
|
|
73
|
+
text: string;
|
|
74
|
+
}>;
|
|
75
|
+
//# sourceMappingURL=simple-response.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simple-response.d.ts","sourceRoot":"","sources":["../../src/utils/simple-response.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,6CAA6C;IAC7C,KAAK,CAAC,EAAE,KAAK,CAAC;QACZ,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC,CAAC;IACH,uBAAuB;IACvB,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,wBAAwB;IACxB,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;IACjB,uBAAuB;IACvB,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,6BAA6B;IAC7B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,YAAY,EACnB,QAAQ,CAAC,EAAE,gBAAgB,GAC1B,cAAc,CAYhB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,MAAwB,EACnC,QAAQ,CAAC,EAAE,gBAAgB,GAC1B,cAAc,CAgBhB;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,YAAY,EACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,MAAM,CA+CR;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,gBAAgB,GAC1B,MAAM,CAiCR;AAyMD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,cAAc,GAAG,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAKjG"}
|