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.
Files changed (582) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +123 -0
  3. package/dist/auth/AuthManager.d.ts +63 -0
  4. package/dist/auth/AuthManager.d.ts.map +1 -0
  5. package/dist/auth/AuthManager.js +137 -0
  6. package/dist/auth/AuthManager.js.map +1 -0
  7. package/dist/auth/index.d.ts +7 -0
  8. package/dist/auth/index.d.ts.map +1 -0
  9. package/dist/auth/index.js +14 -0
  10. package/dist/auth/index.js.map +1 -0
  11. package/dist/auth/permissions.d.ts +60 -0
  12. package/dist/auth/permissions.d.ts.map +1 -0
  13. package/dist/auth/permissions.js +173 -0
  14. package/dist/auth/permissions.js.map +1 -0
  15. package/dist/client/VikunjaClientFactory.d.ts +41 -0
  16. package/dist/client/VikunjaClientFactory.d.ts.map +1 -0
  17. package/dist/client/VikunjaClientFactory.js +58 -0
  18. package/dist/client/VikunjaClientFactory.js.map +1 -0
  19. package/dist/client.d.ts +70 -0
  20. package/dist/client.d.ts.map +1 -0
  21. package/dist/client.js +136 -0
  22. package/dist/client.js.map +1 -0
  23. package/dist/config/ConfigurationManager.d.ts +106 -0
  24. package/dist/config/ConfigurationManager.d.ts.map +1 -0
  25. package/dist/config/ConfigurationManager.js +509 -0
  26. package/dist/config/ConfigurationManager.js.map +1 -0
  27. package/dist/config/index.d.ts +9 -0
  28. package/dist/config/index.d.ts.map +1 -0
  29. package/dist/config/index.js +36 -0
  30. package/dist/config/index.js.map +1 -0
  31. package/dist/config/secrets.d.ts +33 -0
  32. package/dist/config/secrets.d.ts.map +1 -0
  33. package/dist/config/secrets.js +90 -0
  34. package/dist/config/secrets.js.map +1 -0
  35. package/dist/config/types.d.ts +1113 -0
  36. package/dist/config/types.d.ts.map +1 -0
  37. package/dist/config/types.js +189 -0
  38. package/dist/config/types.js.map +1 -0
  39. package/dist/formatters/BatchImportResponseFormatter.d.ts +89 -0
  40. package/dist/formatters/BatchImportResponseFormatter.d.ts.map +1 -0
  41. package/dist/formatters/BatchImportResponseFormatter.js +125 -0
  42. package/dist/formatters/BatchImportResponseFormatter.js.map +1 -0
  43. package/dist/index.d.ts +20 -0
  44. package/dist/index.d.ts.map +1 -0
  45. package/dist/index.js +130 -0
  46. package/dist/index.js.map +1 -0
  47. package/dist/middleware/direct-middleware.d.ts +9 -0
  48. package/dist/middleware/direct-middleware.d.ts.map +1 -0
  49. package/dist/middleware/direct-middleware.js +49 -0
  50. package/dist/middleware/direct-middleware.js.map +1 -0
  51. package/dist/middleware/index.d.ts +8 -0
  52. package/dist/middleware/index.d.ts.map +1 -0
  53. package/dist/middleware/index.js +21 -0
  54. package/dist/middleware/index.js.map +1 -0
  55. package/dist/middleware/simplified-rate-limit.d.ts +147 -0
  56. package/dist/middleware/simplified-rate-limit.d.ts.map +1 -0
  57. package/dist/middleware/simplified-rate-limit.js +533 -0
  58. package/dist/middleware/simplified-rate-limit.js.map +1 -0
  59. package/dist/parsers/CSVParser.d.ts +36 -0
  60. package/dist/parsers/CSVParser.d.ts.map +1 -0
  61. package/dist/parsers/CSVParser.js +69 -0
  62. package/dist/parsers/CSVParser.js.map +1 -0
  63. package/dist/parsers/InputParserFactory.d.ts +17 -0
  64. package/dist/parsers/InputParserFactory.d.ts.map +1 -0
  65. package/dist/parsers/InputParserFactory.js +137 -0
  66. package/dist/parsers/InputParserFactory.js.map +1 -0
  67. package/dist/parsers/JSONParser.d.ts +74 -0
  68. package/dist/parsers/JSONParser.d.ts.map +1 -0
  69. package/dist/parsers/JSONParser.js +69 -0
  70. package/dist/parsers/JSONParser.js.map +1 -0
  71. package/dist/services/EntityResolver.d.ts +92 -0
  72. package/dist/services/EntityResolver.d.ts.map +1 -0
  73. package/dist/services/EntityResolver.js +201 -0
  74. package/dist/services/EntityResolver.js.map +1 -0
  75. package/dist/services/TaskCreationService.d.ts +99 -0
  76. package/dist/services/TaskCreationService.d.ts.map +1 -0
  77. package/dist/services/TaskCreationService.js +392 -0
  78. package/dist/services/TaskCreationService.js.map +1 -0
  79. package/dist/storage/SimpleFilterStorage.d.ts +103 -0
  80. package/dist/storage/SimpleFilterStorage.d.ts.map +1 -0
  81. package/dist/storage/SimpleFilterStorage.js +350 -0
  82. package/dist/storage/SimpleFilterStorage.js.map +1 -0
  83. package/dist/storage/filtering/FilterSerializer.d.ts +45 -0
  84. package/dist/storage/filtering/FilterSerializer.d.ts.map +1 -0
  85. package/dist/storage/filtering/FilterSerializer.js +171 -0
  86. package/dist/storage/filtering/FilterSerializer.js.map +1 -0
  87. package/dist/storage/filtering/FilterValidator.d.ts +59 -0
  88. package/dist/storage/filtering/FilterValidator.d.ts.map +1 -0
  89. package/dist/storage/filtering/FilterValidator.js +183 -0
  90. package/dist/storage/filtering/FilterValidator.js.map +1 -0
  91. package/dist/storage/index.d.ts +61 -0
  92. package/dist/storage/index.d.ts.map +1 -0
  93. package/dist/storage/index.js +125 -0
  94. package/dist/storage/index.js.map +1 -0
  95. package/dist/storage/templateFileStore.d.ts +62 -0
  96. package/dist/storage/templateFileStore.d.ts.map +1 -0
  97. package/dist/storage/templateFileStore.js +151 -0
  98. package/dist/storage/templateFileStore.js.map +1 -0
  99. package/dist/tools/admin.d.ts +51 -0
  100. package/dist/tools/admin.d.ts.map +1 -0
  101. package/dist/tools/admin.js +207 -0
  102. package/dist/tools/admin.js.map +1 -0
  103. package/dist/tools/auth.d.ts +9 -0
  104. package/dist/tools/auth.d.ts.map +1 -0
  105. package/dist/tools/auth.js +175 -0
  106. package/dist/tools/auth.js.map +1 -0
  107. package/dist/tools/batch-import.d.ts +5 -0
  108. package/dist/tools/batch-import.d.ts.map +1 -0
  109. package/dist/tools/batch-import.js +153 -0
  110. package/dist/tools/batch-import.js.map +1 -0
  111. package/dist/tools/caldav-tokens.d.ts +45 -0
  112. package/dist/tools/caldav-tokens.d.ts.map +1 -0
  113. package/dist/tools/caldav-tokens.js +93 -0
  114. package/dist/tools/caldav-tokens.js.map +1 -0
  115. package/dist/tools/export.d.ts +14 -0
  116. package/dist/tools/export.d.ts.map +1 -0
  117. package/dist/tools/export.js +252 -0
  118. package/dist/tools/export.js.map +1 -0
  119. package/dist/tools/filters.d.ts +50 -0
  120. package/dist/tools/filters.d.ts.map +1 -0
  121. package/dist/tools/filters.js +512 -0
  122. package/dist/tools/filters.js.map +1 -0
  123. package/dist/tools/index.d.ts +53 -0
  124. package/dist/tools/index.d.ts.map +1 -0
  125. package/dist/tools/index.js +217 -0
  126. package/dist/tools/index.js.map +1 -0
  127. package/dist/tools/labels.d.ts +22 -0
  128. package/dist/tools/labels.d.ts.map +1 -0
  129. package/dist/tools/labels.js +206 -0
  130. package/dist/tools/labels.js.map +1 -0
  131. package/dist/tools/notifications.d.ts +17 -0
  132. package/dist/tools/notifications.d.ts.map +1 -0
  133. package/dist/tools/notifications.js +171 -0
  134. package/dist/tools/notifications.js.map +1 -0
  135. package/dist/tools/projects/backgrounds.d.ts +80 -0
  136. package/dist/tools/projects/backgrounds.d.ts.map +1 -0
  137. package/dist/tools/projects/backgrounds.js +154 -0
  138. package/dist/tools/projects/backgrounds.js.map +1 -0
  139. package/dist/tools/projects/buckets.d.ts +147 -0
  140. package/dist/tools/projects/buckets.d.ts.map +1 -0
  141. package/dist/tools/projects/buckets.js +291 -0
  142. package/dist/tools/projects/buckets.js.map +1 -0
  143. package/dist/tools/projects/crud.d.ts +145 -0
  144. package/dist/tools/projects/crud.d.ts.map +1 -0
  145. package/dist/tools/projects/crud.js +425 -0
  146. package/dist/tools/projects/crud.js.map +1 -0
  147. package/dist/tools/projects/duplicate.d.ts +41 -0
  148. package/dist/tools/projects/duplicate.d.ts.map +1 -0
  149. package/dist/tools/projects/duplicate.js +49 -0
  150. package/dist/tools/projects/duplicate.js.map +1 -0
  151. package/dist/tools/projects/hierarchy.d.ts +77 -0
  152. package/dist/tools/projects/hierarchy.d.ts.map +1 -0
  153. package/dist/tools/projects/hierarchy.js +300 -0
  154. package/dist/tools/projects/hierarchy.js.map +1 -0
  155. package/dist/tools/projects/index.d.ts +34 -0
  156. package/dist/tools/projects/index.d.ts.map +1 -0
  157. package/dist/tools/projects/index.js +522 -0
  158. package/dist/tools/projects/index.js.map +1 -0
  159. package/dist/tools/projects/permission.d.ts +26 -0
  160. package/dist/tools/projects/permission.d.ts.map +1 -0
  161. package/dist/tools/projects/permission.js +53 -0
  162. package/dist/tools/projects/permission.js.map +1 -0
  163. package/dist/tools/projects/response-formatter.d.ts +54 -0
  164. package/dist/tools/projects/response-formatter.d.ts.map +1 -0
  165. package/dist/tools/projects/response-formatter.js +139 -0
  166. package/dist/tools/projects/response-formatter.js.map +1 -0
  167. package/dist/tools/projects/sharing-access.d.ts +165 -0
  168. package/dist/tools/projects/sharing-access.d.ts.map +1 -0
  169. package/dist/tools/projects/sharing-access.js +450 -0
  170. package/dist/tools/projects/sharing-access.js.map +1 -0
  171. package/dist/tools/projects/sharing.d.ts +105 -0
  172. package/dist/tools/projects/sharing.d.ts.map +1 -0
  173. package/dist/tools/projects/sharing.js +258 -0
  174. package/dist/tools/projects/sharing.js.map +1 -0
  175. package/dist/tools/projects/validation.d.ts +51 -0
  176. package/dist/tools/projects/validation.d.ts.map +1 -0
  177. package/dist/tools/projects/validation.js +160 -0
  178. package/dist/tools/projects/validation.js.map +1 -0
  179. package/dist/tools/projects/views.d.ts +161 -0
  180. package/dist/tools/projects/views.d.ts.map +1 -0
  181. package/dist/tools/projects/views.js +234 -0
  182. package/dist/tools/projects/views.js.map +1 -0
  183. package/dist/tools/projects.d.ts +20 -0
  184. package/dist/tools/projects.d.ts.map +1 -0
  185. package/dist/tools/projects.js +66 -0
  186. package/dist/tools/projects.js.map +1 -0
  187. package/dist/tools/reactions.d.ts +25 -0
  188. package/dist/tools/reactions.d.ts.map +1 -0
  189. package/dist/tools/reactions.js +108 -0
  190. package/dist/tools/reactions.js.map +1 -0
  191. package/dist/tools/subscriptions.d.ts +23 -0
  192. package/dist/tools/subscriptions.d.ts.map +1 -0
  193. package/dist/tools/subscriptions.js +111 -0
  194. package/dist/tools/subscriptions.js.map +1 -0
  195. package/dist/tools/task-assignees.d.ts +13 -0
  196. package/dist/tools/task-assignees.d.ts.map +1 -0
  197. package/dist/tools/task-assignees.js +74 -0
  198. package/dist/tools/task-assignees.js.map +1 -0
  199. package/dist/tools/task-bulk.d.ts +13 -0
  200. package/dist/tools/task-bulk.d.ts.map +1 -0
  201. package/dist/tools/task-bulk.js +117 -0
  202. package/dist/tools/task-bulk.js.map +1 -0
  203. package/dist/tools/task-comments.d.ts +12 -0
  204. package/dist/tools/task-comments.d.ts.map +1 -0
  205. package/dist/tools/task-comments.js +65 -0
  206. package/dist/tools/task-comments.js.map +1 -0
  207. package/dist/tools/task-crud.d.ts +13 -0
  208. package/dist/tools/task-crud.d.ts.map +1 -0
  209. package/dist/tools/task-crud.js +168 -0
  210. package/dist/tools/task-crud.js.map +1 -0
  211. package/dist/tools/task-labels.d.ts +13 -0
  212. package/dist/tools/task-labels.d.ts.map +1 -0
  213. package/dist/tools/task-labels.js +64 -0
  214. package/dist/tools/task-labels.js.map +1 -0
  215. package/dist/tools/task-relations.d.ts +13 -0
  216. package/dist/tools/task-relations.d.ts.map +1 -0
  217. package/dist/tools/task-relations.js +74 -0
  218. package/dist/tools/task-relations.js.map +1 -0
  219. package/dist/tools/task-reminders.d.ts +13 -0
  220. package/dist/tools/task-reminders.d.ts.map +1 -0
  221. package/dist/tools/task-reminders.js +69 -0
  222. package/dist/tools/task-reminders.js.map +1 -0
  223. package/dist/tools/tasks/assignees/AssigneeOperationsService.d.ts +63 -0
  224. package/dist/tools/tasks/assignees/AssigneeOperationsService.d.ts.map +1 -0
  225. package/dist/tools/tasks/assignees/AssigneeOperationsService.js +152 -0
  226. package/dist/tools/tasks/assignees/AssigneeOperationsService.js.map +1 -0
  227. package/dist/tools/tasks/assignees/AssigneeResponseFormatter.d.ts +28 -0
  228. package/dist/tools/tasks/assignees/AssigneeResponseFormatter.d.ts.map +1 -0
  229. package/dist/tools/tasks/assignees/AssigneeResponseFormatter.js +73 -0
  230. package/dist/tools/tasks/assignees/AssigneeResponseFormatter.js.map +1 -0
  231. package/dist/tools/tasks/assignees/AssigneeValidationService.d.ts +46 -0
  232. package/dist/tools/tasks/assignees/AssigneeValidationService.d.ts.map +1 -0
  233. package/dist/tools/tasks/assignees/AssigneeValidationService.js +70 -0
  234. package/dist/tools/tasks/assignees/AssigneeValidationService.js.map +1 -0
  235. package/dist/tools/tasks/assignees/index.d.ts +52 -0
  236. package/dist/tools/tasks/assignees/index.d.ts.map +1 -0
  237. package/dist/tools/tasks/assignees/index.js +103 -0
  238. package/dist/tools/tasks/assignees/index.js.map +1 -0
  239. package/dist/tools/tasks/attach.d.ts +39 -0
  240. package/dist/tools/tasks/attach.d.ts.map +1 -0
  241. package/dist/tools/tasks/attach.js +90 -0
  242. package/dist/tools/tasks/attach.js.map +1 -0
  243. package/dist/tools/tasks/attachments.d.ts +67 -0
  244. package/dist/tools/tasks/attachments.d.ts.map +1 -0
  245. package/dist/tools/tasks/attachments.js +153 -0
  246. package/dist/tools/tasks/attachments.js.map +1 -0
  247. package/dist/tools/tasks/buckets.d.ts +41 -0
  248. package/dist/tools/tasks/buckets.d.ts.map +1 -0
  249. package/dist/tools/tasks/buckets.js +75 -0
  250. package/dist/tools/tasks/buckets.js.map +1 -0
  251. package/dist/tools/tasks/bulk/BatchProcessorFactory.d.ts +30 -0
  252. package/dist/tools/tasks/bulk/BatchProcessorFactory.d.ts.map +1 -0
  253. package/dist/tools/tasks/bulk/BatchProcessorFactory.js +69 -0
  254. package/dist/tools/tasks/bulk/BatchProcessorFactory.js.map +1 -0
  255. package/dist/tools/tasks/bulk/BulkOperationErrorHandler.d.ts +50 -0
  256. package/dist/tools/tasks/bulk/BulkOperationErrorHandler.d.ts.map +1 -0
  257. package/dist/tools/tasks/bulk/BulkOperationErrorHandler.js +183 -0
  258. package/dist/tools/tasks/bulk/BulkOperationErrorHandler.js.map +1 -0
  259. package/dist/tools/tasks/bulk/BulkOperationProcessor.d.ts +101 -0
  260. package/dist/tools/tasks/bulk/BulkOperationProcessor.d.ts.map +1 -0
  261. package/dist/tools/tasks/bulk/BulkOperationProcessor.js +416 -0
  262. package/dist/tools/tasks/bulk/BulkOperationProcessor.js.map +1 -0
  263. package/dist/tools/tasks/bulk/BulkOperationTypes.d.ts +50 -0
  264. package/dist/tools/tasks/bulk/BulkOperationTypes.d.ts.map +1 -0
  265. package/dist/tools/tasks/bulk/BulkOperationTypes.js +6 -0
  266. package/dist/tools/tasks/bulk/BulkOperationTypes.js.map +1 -0
  267. package/dist/tools/tasks/bulk/BulkOperationValidator.d.ts +53 -0
  268. package/dist/tools/tasks/bulk/BulkOperationValidator.d.ts.map +1 -0
  269. package/dist/tools/tasks/bulk/BulkOperationValidator.js +216 -0
  270. package/dist/tools/tasks/bulk/BulkOperationValidator.js.map +1 -0
  271. package/dist/tools/tasks/bulk/index.d.ts +9 -0
  272. package/dist/tools/tasks/bulk/index.d.ts.map +1 -0
  273. package/dist/tools/tasks/bulk/index.js +15 -0
  274. package/dist/tools/tasks/bulk/index.js.map +1 -0
  275. package/dist/tools/tasks/bulk-operations-simplified.d.ts +62 -0
  276. package/dist/tools/tasks/bulk-operations-simplified.d.ts.map +1 -0
  277. package/dist/tools/tasks/bulk-operations-simplified.js +416 -0
  278. package/dist/tools/tasks/bulk-operations-simplified.js.map +1 -0
  279. package/dist/tools/tasks/bulk-operations.d.ts +8 -0
  280. package/dist/tools/tasks/bulk-operations.d.ts.map +1 -0
  281. package/dist/tools/tasks/bulk-operations.js +13 -0
  282. package/dist/tools/tasks/bulk-operations.js.map +1 -0
  283. package/dist/tools/tasks/by-index.d.ts +36 -0
  284. package/dist/tools/tasks/by-index.d.ts.map +1 -0
  285. package/dist/tools/tasks/by-index.js +52 -0
  286. package/dist/tools/tasks/by-index.js.map +1 -0
  287. package/dist/tools/tasks/comments/CommentOperationsService.d.ts +44 -0
  288. package/dist/tools/tasks/comments/CommentOperationsService.d.ts.map +1 -0
  289. package/dist/tools/tasks/comments/CommentOperationsService.js +86 -0
  290. package/dist/tools/tasks/comments/CommentOperationsService.js.map +1 -0
  291. package/dist/tools/tasks/comments/CommentResponseFormatter.d.ts +41 -0
  292. package/dist/tools/tasks/comments/CommentResponseFormatter.d.ts.map +1 -0
  293. package/dist/tools/tasks/comments/CommentResponseFormatter.js +114 -0
  294. package/dist/tools/tasks/comments/CommentResponseFormatter.js.map +1 -0
  295. package/dist/tools/tasks/comments/CommentValidationService.d.ts +62 -0
  296. package/dist/tools/tasks/comments/CommentValidationService.d.ts.map +1 -0
  297. package/dist/tools/tasks/comments/CommentValidationService.js +105 -0
  298. package/dist/tools/tasks/comments/CommentValidationService.js.map +1 -0
  299. package/dist/tools/tasks/comments/index.d.ts +66 -0
  300. package/dist/tools/tasks/comments/index.d.ts.map +1 -0
  301. package/dist/tools/tasks/comments/index.js +99 -0
  302. package/dist/tools/tasks/comments/index.js.map +1 -0
  303. package/dist/tools/tasks/constants.d.ts +19 -0
  304. package/dist/tools/tasks/constants.d.ts.map +1 -0
  305. package/dist/tools/tasks/constants.js +82 -0
  306. package/dist/tools/tasks/constants.js.map +1 -0
  307. package/dist/tools/tasks/crud/TaskCreationService.d.ts +29 -0
  308. package/dist/tools/tasks/crud/TaskCreationService.d.ts.map +1 -0
  309. package/dist/tools/tasks/crud/TaskCreationService.js +274 -0
  310. package/dist/tools/tasks/crud/TaskCreationService.js.map +1 -0
  311. package/dist/tools/tasks/crud/TaskDeletionService.d.ts +19 -0
  312. package/dist/tools/tasks/crud/TaskDeletionService.d.ts.map +1 -0
  313. package/dist/tools/tasks/crud/TaskDeletionService.js +96 -0
  314. package/dist/tools/tasks/crud/TaskDeletionService.js.map +1 -0
  315. package/dist/tools/tasks/crud/TaskReadService.d.ts +19 -0
  316. package/dist/tools/tasks/crud/TaskReadService.d.ts.map +1 -0
  317. package/dist/tools/tasks/crud/TaskReadService.js +66 -0
  318. package/dist/tools/tasks/crud/TaskReadService.js.map +1 -0
  319. package/dist/tools/tasks/crud/TaskResponseFormatter.d.ts +18 -0
  320. package/dist/tools/tasks/crud/TaskResponseFormatter.d.ts.map +1 -0
  321. package/dist/tools/tasks/crud/TaskResponseFormatter.js +248 -0
  322. package/dist/tools/tasks/crud/TaskResponseFormatter.js.map +1 -0
  323. package/dist/tools/tasks/crud/TaskUpdateService.d.ts +33 -0
  324. package/dist/tools/tasks/crud/TaskUpdateService.d.ts.map +1 -0
  325. package/dist/tools/tasks/crud/TaskUpdateService.js +294 -0
  326. package/dist/tools/tasks/crud/TaskUpdateService.js.map +1 -0
  327. package/dist/tools/tasks/crud/index.d.ts +17 -0
  328. package/dist/tools/tasks/crud/index.d.ts.map +1 -0
  329. package/dist/tools/tasks/crud/index.js +20 -0
  330. package/dist/tools/tasks/crud/index.js.map +1 -0
  331. package/dist/tools/tasks/duplicate.d.ts +28 -0
  332. package/dist/tools/tasks/duplicate.d.ts.map +1 -0
  333. package/dist/tools/tasks/duplicate.js +41 -0
  334. package/dist/tools/tasks/duplicate.js.map +1 -0
  335. package/dist/tools/tasks/filtering/FilterExecutor.d.ts +39 -0
  336. package/dist/tools/tasks/filtering/FilterExecutor.d.ts.map +1 -0
  337. package/dist/tools/tasks/filtering/FilterExecutor.js +214 -0
  338. package/dist/tools/tasks/filtering/FilterExecutor.js.map +1 -0
  339. package/dist/tools/tasks/filtering/FilterValidator.d.ts +59 -0
  340. package/dist/tools/tasks/filtering/FilterValidator.d.ts.map +1 -0
  341. package/dist/tools/tasks/filtering/FilterValidator.js +257 -0
  342. package/dist/tools/tasks/filtering/FilterValidator.js.map +1 -0
  343. package/dist/tools/tasks/filtering/TaskFilteringOrchestrator.d.ts +78 -0
  344. package/dist/tools/tasks/filtering/TaskFilteringOrchestrator.d.ts.map +1 -0
  345. package/dist/tools/tasks/filtering/TaskFilteringOrchestrator.js +195 -0
  346. package/dist/tools/tasks/filtering/TaskFilteringOrchestrator.js.map +1 -0
  347. package/dist/tools/tasks/filtering/evaluators.d.ts +41 -0
  348. package/dist/tools/tasks/filtering/evaluators.d.ts.map +1 -0
  349. package/dist/tools/tasks/filtering/evaluators.js +224 -0
  350. package/dist/tools/tasks/filtering/evaluators.js.map +1 -0
  351. package/dist/tools/tasks/filtering/index.d.ts +11 -0
  352. package/dist/tools/tasks/filtering/index.d.ts.map +1 -0
  353. package/dist/tools/tasks/filtering/index.js +26 -0
  354. package/dist/tools/tasks/filtering/index.js.map +1 -0
  355. package/dist/tools/tasks/index.d.ts +9 -0
  356. package/dist/tools/tasks/index.d.ts.map +1 -0
  357. package/dist/tools/tasks/index.js +337 -0
  358. package/dist/tools/tasks/index.js.map +1 -0
  359. package/dist/tools/tasks/labels.d.ts +49 -0
  360. package/dist/tools/tasks/labels.d.ts.map +1 -0
  361. package/dist/tools/tasks/labels.js +223 -0
  362. package/dist/tools/tasks/labels.js.map +1 -0
  363. package/dist/tools/tasks/mark-read.d.ts +27 -0
  364. package/dist/tools/tasks/mark-read.d.ts.map +1 -0
  365. package/dist/tools/tasks/mark-read.js +38 -0
  366. package/dist/tools/tasks/mark-read.js.map +1 -0
  367. package/dist/tools/tasks/position.d.ts +53 -0
  368. package/dist/tools/tasks/position.d.ts.map +1 -0
  369. package/dist/tools/tasks/position.js +83 -0
  370. package/dist/tools/tasks/position.js.map +1 -0
  371. package/dist/tools/tasks/reminders.d.ts +56 -0
  372. package/dist/tools/tasks/reminders.d.ts.map +1 -0
  373. package/dist/tools/tasks/reminders.js +213 -0
  374. package/dist/tools/tasks/reminders.js.map +1 -0
  375. package/dist/tools/tasks/subtasks.d.ts +85 -0
  376. package/dist/tools/tasks/subtasks.d.ts.map +1 -0
  377. package/dist/tools/tasks/subtasks.js +286 -0
  378. package/dist/tools/tasks/subtasks.js.map +1 -0
  379. package/dist/tools/tasks/types/filters.d.ts +136 -0
  380. package/dist/tools/tasks/types/filters.d.ts.map +1 -0
  381. package/dist/tools/tasks/types/filters.js +7 -0
  382. package/dist/tools/tasks/types/filters.js.map +1 -0
  383. package/dist/tools/tasks/validation.d.ts +47 -0
  384. package/dist/tools/tasks/validation.d.ts.map +1 -0
  385. package/dist/tools/tasks/validation.js +131 -0
  386. package/dist/tools/tasks/validation.js.map +1 -0
  387. package/dist/tools/tasks-relations.d.ts +25 -0
  388. package/dist/tools/tasks-relations.d.ts.map +1 -0
  389. package/dist/tools/tasks-relations.js +271 -0
  390. package/dist/tools/tasks-relations.js.map +1 -0
  391. package/dist/tools/tasks.d.ts +6 -0
  392. package/dist/tools/tasks.d.ts.map +1 -0
  393. package/dist/tools/tasks.js +10 -0
  394. package/dist/tools/tasks.js.map +1 -0
  395. package/dist/tools/teams.d.ts +9 -0
  396. package/dist/tools/teams.d.ts.map +1 -0
  397. package/dist/tools/teams.js +255 -0
  398. package/dist/tools/teams.js.map +1 -0
  399. package/dist/tools/templates.d.ts +9 -0
  400. package/dist/tools/templates.d.ts.map +1 -0
  401. package/dist/tools/templates.js +450 -0
  402. package/dist/tools/templates.js.map +1 -0
  403. package/dist/tools/tokens.d.ts +37 -0
  404. package/dist/tools/tokens.d.ts.map +1 -0
  405. package/dist/tools/tokens.js +122 -0
  406. package/dist/tools/tokens.js.map +1 -0
  407. package/dist/tools/user-deletion.d.ts +41 -0
  408. package/dist/tools/user-deletion.d.ts.map +1 -0
  409. package/dist/tools/user-deletion.js +126 -0
  410. package/dist/tools/user-deletion.js.map +1 -0
  411. package/dist/tools/users.d.ts +9 -0
  412. package/dist/tools/users.d.ts.map +1 -0
  413. package/dist/tools/users.js +418 -0
  414. package/dist/tools/users.js.map +1 -0
  415. package/dist/tools/webhooks.d.ts +31 -0
  416. package/dist/tools/webhooks.d.ts.map +1 -0
  417. package/dist/tools/webhooks.js +414 -0
  418. package/dist/tools/webhooks.js.map +1 -0
  419. package/dist/transforms/base.d.ts +204 -0
  420. package/dist/transforms/base.d.ts.map +1 -0
  421. package/dist/transforms/base.js +175 -0
  422. package/dist/transforms/base.js.map +1 -0
  423. package/dist/transforms/field-selector.d.ts +27 -0
  424. package/dist/transforms/field-selector.d.ts.map +1 -0
  425. package/dist/transforms/field-selector.js +91 -0
  426. package/dist/transforms/field-selector.js.map +1 -0
  427. package/dist/transforms/index.d.ts +15 -0
  428. package/dist/transforms/index.d.ts.map +1 -0
  429. package/dist/transforms/index.js +50 -0
  430. package/dist/transforms/index.js.map +1 -0
  431. package/dist/transforms/size-calculator.d.ts +131 -0
  432. package/dist/transforms/size-calculator.d.ts.map +1 -0
  433. package/dist/transforms/size-calculator.js +284 -0
  434. package/dist/transforms/size-calculator.js.map +1 -0
  435. package/dist/transforms/task.d.ts +207 -0
  436. package/dist/transforms/task.d.ts.map +1 -0
  437. package/dist/transforms/task.js +259 -0
  438. package/dist/transforms/task.js.map +1 -0
  439. package/dist/types/errors.d.ts +65 -0
  440. package/dist/types/errors.d.ts.map +1 -0
  441. package/dist/types/errors.js +44 -0
  442. package/dist/types/errors.js.map +1 -0
  443. package/dist/types/filters.d.ts +149 -0
  444. package/dist/types/filters.d.ts.map +1 -0
  445. package/dist/types/filters.js +26 -0
  446. package/dist/types/filters.js.map +1 -0
  447. package/dist/types/index.d.ts +147 -0
  448. package/dist/types/index.d.ts.map +1 -0
  449. package/dist/types/index.js +24 -0
  450. package/dist/types/index.js.map +1 -0
  451. package/dist/types/node-vikunja-extended.d.ts +36 -0
  452. package/dist/types/node-vikunja-extended.d.ts.map +1 -0
  453. package/dist/types/node-vikunja-extended.js +25 -0
  454. package/dist/types/node-vikunja-extended.js.map +1 -0
  455. package/dist/types/responses.d.ts +121 -0
  456. package/dist/types/responses.d.ts.map +1 -0
  457. package/dist/types/responses.js +26 -0
  458. package/dist/types/responses.js.map +1 -0
  459. package/dist/types/vikunja.d.ts +319 -0
  460. package/dist/types/vikunja.d.ts.map +1 -0
  461. package/dist/types/vikunja.js +7 -0
  462. package/dist/types/vikunja.js.map +1 -0
  463. package/dist/utils/auth-error-handler.d.ts +23 -0
  464. package/dist/utils/auth-error-handler.d.ts.map +1 -0
  465. package/dist/utils/auth-error-handler.js +162 -0
  466. package/dist/utils/auth-error-handler.js.map +1 -0
  467. package/dist/utils/composite-operation.d.ts +184 -0
  468. package/dist/utils/composite-operation.d.ts.map +1 -0
  469. package/dist/utils/composite-operation.js +293 -0
  470. package/dist/utils/composite-operation.js.map +1 -0
  471. package/dist/utils/error-handler.d.ts +39 -0
  472. package/dist/utils/error-handler.d.ts.map +1 -0
  473. package/dist/utils/error-handler.js +336 -0
  474. package/dist/utils/error-handler.js.map +1 -0
  475. package/dist/utils/filtering/ClientSideFilteringStrategy.d.ts +13 -0
  476. package/dist/utils/filtering/ClientSideFilteringStrategy.d.ts.map +1 -0
  477. package/dist/utils/filtering/ClientSideFilteringStrategy.js +129 -0
  478. package/dist/utils/filtering/ClientSideFilteringStrategy.js.map +1 -0
  479. package/dist/utils/filtering/FilteringContext.d.ts +40 -0
  480. package/dist/utils/filtering/FilteringContext.d.ts.map +1 -0
  481. package/dist/utils/filtering/FilteringContext.js +58 -0
  482. package/dist/utils/filtering/FilteringContext.js.map +1 -0
  483. package/dist/utils/filtering/HybridFilteringStrategy.d.ts +15 -0
  484. package/dist/utils/filtering/HybridFilteringStrategy.d.ts.map +1 -0
  485. package/dist/utils/filtering/HybridFilteringStrategy.js +55 -0
  486. package/dist/utils/filtering/HybridFilteringStrategy.js.map +1 -0
  487. package/dist/utils/filtering/RestCrossProjectFilteringStrategy.d.ts +42 -0
  488. package/dist/utils/filtering/RestCrossProjectFilteringStrategy.d.ts.map +1 -0
  489. package/dist/utils/filtering/RestCrossProjectFilteringStrategy.js +120 -0
  490. package/dist/utils/filtering/RestCrossProjectFilteringStrategy.js.map +1 -0
  491. package/dist/utils/filtering/ServerSideFilteringStrategy.d.ts +13 -0
  492. package/dist/utils/filtering/ServerSideFilteringStrategy.d.ts.map +1 -0
  493. package/dist/utils/filtering/ServerSideFilteringStrategy.js +88 -0
  494. package/dist/utils/filtering/ServerSideFilteringStrategy.js.map +1 -0
  495. package/dist/utils/filtering/TaskFilteringStrategy.d.ts +19 -0
  496. package/dist/utils/filtering/TaskFilteringStrategy.d.ts.map +1 -0
  497. package/dist/utils/filtering/TaskFilteringStrategy.js +10 -0
  498. package/dist/utils/filtering/TaskFilteringStrategy.js.map +1 -0
  499. package/dist/utils/filtering/index.d.ts +14 -0
  500. package/dist/utils/filtering/index.d.ts.map +1 -0
  501. package/dist/utils/filtering/index.js +22 -0
  502. package/dist/utils/filtering/index.js.map +1 -0
  503. package/dist/utils/filtering/types.d.ts +108 -0
  504. package/dist/utils/filtering/types.d.ts.map +1 -0
  505. package/dist/utils/filtering/types.js +6 -0
  506. package/dist/utils/filtering/types.js.map +1 -0
  507. package/dist/utils/filters.d.ts +70 -0
  508. package/dist/utils/filters.d.ts.map +1 -0
  509. package/dist/utils/filters.js +812 -0
  510. package/dist/utils/filters.js.map +1 -0
  511. package/dist/utils/http-error-detail.d.ts +28 -0
  512. package/dist/utils/http-error-detail.d.ts.map +1 -0
  513. package/dist/utils/http-error-detail.js +67 -0
  514. package/dist/utils/http-error-detail.js.map +1 -0
  515. package/dist/utils/label-bulk.d.ts +21 -0
  516. package/dist/utils/label-bulk.d.ts.map +1 -0
  517. package/dist/utils/label-bulk.js +51 -0
  518. package/dist/utils/label-bulk.js.map +1 -0
  519. package/dist/utils/logger.d.ts +20 -0
  520. package/dist/utils/logger.d.ts.map +1 -0
  521. package/dist/utils/logger.js +66 -0
  522. package/dist/utils/logger.js.map +1 -0
  523. package/dist/utils/memory.d.ts +73 -0
  524. package/dist/utils/memory.d.ts.map +1 -0
  525. package/dist/utils/memory.js +194 -0
  526. package/dist/utils/memory.js.map +1 -0
  527. package/dist/utils/performance/batch-processor.d.ts +77 -0
  528. package/dist/utils/performance/batch-processor.d.ts.map +1 -0
  529. package/dist/utils/performance/batch-processor.js +218 -0
  530. package/dist/utils/performance/batch-processor.js.map +1 -0
  531. package/dist/utils/performance/index.d.ts +42 -0
  532. package/dist/utils/performance/index.d.ts.map +1 -0
  533. package/dist/utils/performance/index.js +49 -0
  534. package/dist/utils/performance/index.js.map +1 -0
  535. package/dist/utils/performance/performance-monitor.d.ts +116 -0
  536. package/dist/utils/performance/performance-monitor.d.ts.map +1 -0
  537. package/dist/utils/performance/performance-monitor.js +307 -0
  538. package/dist/utils/performance/performance-monitor.js.map +1 -0
  539. package/dist/utils/read-only.d.ts +111 -0
  540. package/dist/utils/read-only.d.ts.map +1 -0
  541. package/dist/utils/read-only.js +503 -0
  542. package/dist/utils/read-only.js.map +1 -0
  543. package/dist/utils/response-factory.d.ts +81 -0
  544. package/dist/utils/response-factory.d.ts.map +1 -0
  545. package/dist/utils/response-factory.js +86 -0
  546. package/dist/utils/response-factory.js.map +1 -0
  547. package/dist/utils/retry.d.ts +160 -0
  548. package/dist/utils/retry.d.ts.map +1 -0
  549. package/dist/utils/retry.js +316 -0
  550. package/dist/utils/retry.js.map +1 -0
  551. package/dist/utils/security.d.ts +70 -0
  552. package/dist/utils/security.d.ts.map +1 -0
  553. package/dist/utils/security.js +358 -0
  554. package/dist/utils/security.js.map +1 -0
  555. package/dist/utils/simple-response.d.ts +75 -0
  556. package/dist/utils/simple-response.d.ts.map +1 -0
  557. package/dist/utils/simple-response.js +311 -0
  558. package/dist/utils/simple-response.js.map +1 -0
  559. package/dist/utils/storage-errors.d.ts +9 -0
  560. package/dist/utils/storage-errors.d.ts.map +1 -0
  561. package/dist/utils/storage-errors.js +20 -0
  562. package/dist/utils/storage-errors.js.map +1 -0
  563. package/dist/utils/task-rest-transport.d.ts +28 -0
  564. package/dist/utils/task-rest-transport.d.ts.map +1 -0
  565. package/dist/utils/task-rest-transport.js +33 -0
  566. package/dist/utils/task-rest-transport.js.map +1 -0
  567. package/dist/utils/unicode-fix.d.ts +19 -0
  568. package/dist/utils/unicode-fix.d.ts.map +1 -0
  569. package/dist/utils/unicode-fix.js +70 -0
  570. package/dist/utils/unicode-fix.js.map +1 -0
  571. package/dist/utils/validation.d.ts +75 -0
  572. package/dist/utils/validation.d.ts.map +1 -0
  573. package/dist/utils/validation.js +758 -0
  574. package/dist/utils/validation.js.map +1 -0
  575. package/dist/utils/vikunja-rest.d.ts +159 -0
  576. package/dist/utils/vikunja-rest.d.ts.map +1 -0
  577. package/dist/utils/vikunja-rest.js +378 -0
  578. package/dist/utils/vikunja-rest.js.map +1 -0
  579. package/docs/CONFIGURATION.md +957 -0
  580. package/docs/DOCKER-DESKTOP-MCP.md +207 -0
  581. package/docs/TOOLS.md +422 -0
  582. package/package.json +145 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAK3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAG3D,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,yBAAyB,EACzB,wBAAwB,EACxB,yBAAyB,EACzB,sBAAsB,EACtB,yBAAyB,EACzB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EAClB,yBAAyB,EACzB,yBAAyB,EACzB,qBAAqB,EACrB,kBAAkB,EAClB,wBAAwB,EACxB,iBAAiB,EACjB,wBAAwB,GACzB,CAAC;AA2BF;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,WAAW,EACxB,aAAa,CAAC,EAAE,oBAAoB,GACnC,IAAI,CAqIN"}
@@ -0,0 +1,217 @@
1
+ "use strict";
2
+ /**
3
+ * Tool Registration
4
+ * Registers all Vikunja tools with the MCP server using conditional registration
5
+ *
6
+ * Registration Strategy:
7
+ * - Core tools (auth, tasks): Always registered
8
+ * - Client-dependent tools: Only registered when clientFactory is available
9
+ * - JWT-restricted tools (users, export): Only registered with JWT authentication
10
+ *
11
+ * This approach ensures tool availability matches authentication capabilities
12
+ * and prevents API errors from unsupported token types.
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.registerUserDeletionTool = exports.registerAdminTool = exports.registerCaldavTokensTool = exports.registerTokensTool = exports.registerReactionsTool = exports.registerSubscriptionsTool = exports.registerNotificationsTool = exports.registerExportTool = exports.registerBatchImportTool = exports.registerWebhooksTool = exports.registerTemplatesTool = exports.registerFiltersTool = exports.registerUsersTool = exports.registerTeamsTool = exports.registerLabelsTool = exports.registerProjectsTool = exports.registerTaskRelationsTool = exports.registerTaskLabelsTool = exports.registerTaskRemindersTool = exports.registerTaskCommentsTool = exports.registerTaskAssigneesTool = exports.registerTaskBulkTool = exports.registerTasksTool = exports.registerAuthTool = void 0;
16
+ exports.registerTools = registerTools;
17
+ const config_1 = require("../config");
18
+ const logger_1 = require("../utils/logger");
19
+ const auth_1 = require("./auth");
20
+ Object.defineProperty(exports, "registerAuthTool", { enumerable: true, get: function () { return auth_1.registerAuthTool; } });
21
+ const tasks_1 = require("./tasks");
22
+ Object.defineProperty(exports, "registerTasksTool", { enumerable: true, get: function () { return tasks_1.registerTasksTool; } });
23
+ const task_bulk_1 = require("./task-bulk");
24
+ Object.defineProperty(exports, "registerTaskBulkTool", { enumerable: true, get: function () { return task_bulk_1.registerTaskBulkTool; } });
25
+ const task_assignees_1 = require("./task-assignees");
26
+ Object.defineProperty(exports, "registerTaskAssigneesTool", { enumerable: true, get: function () { return task_assignees_1.registerTaskAssigneesTool; } });
27
+ const task_comments_1 = require("./task-comments");
28
+ Object.defineProperty(exports, "registerTaskCommentsTool", { enumerable: true, get: function () { return task_comments_1.registerTaskCommentsTool; } });
29
+ const task_reminders_1 = require("./task-reminders");
30
+ Object.defineProperty(exports, "registerTaskRemindersTool", { enumerable: true, get: function () { return task_reminders_1.registerTaskRemindersTool; } });
31
+ const task_labels_1 = require("./task-labels");
32
+ Object.defineProperty(exports, "registerTaskLabelsTool", { enumerable: true, get: function () { return task_labels_1.registerTaskLabelsTool; } });
33
+ const task_relations_1 = require("./task-relations");
34
+ Object.defineProperty(exports, "registerTaskRelationsTool", { enumerable: true, get: function () { return task_relations_1.registerTaskRelationsTool; } });
35
+ const index_1 = require("./projects/index");
36
+ Object.defineProperty(exports, "registerProjectsTool", { enumerable: true, get: function () { return index_1.registerProjectsTool; } });
37
+ const labels_1 = require("./labels");
38
+ Object.defineProperty(exports, "registerLabelsTool", { enumerable: true, get: function () { return labels_1.registerLabelsTool; } });
39
+ const teams_1 = require("./teams");
40
+ Object.defineProperty(exports, "registerTeamsTool", { enumerable: true, get: function () { return teams_1.registerTeamsTool; } });
41
+ const users_1 = require("./users");
42
+ Object.defineProperty(exports, "registerUsersTool", { enumerable: true, get: function () { return users_1.registerUsersTool; } });
43
+ const filters_1 = require("./filters");
44
+ Object.defineProperty(exports, "registerFiltersTool", { enumerable: true, get: function () { return filters_1.registerFiltersTool; } });
45
+ const templates_1 = require("./templates");
46
+ Object.defineProperty(exports, "registerTemplatesTool", { enumerable: true, get: function () { return templates_1.registerTemplatesTool; } });
47
+ const webhooks_1 = require("./webhooks");
48
+ Object.defineProperty(exports, "registerWebhooksTool", { enumerable: true, get: function () { return webhooks_1.registerWebhooksTool; } });
49
+ const batch_import_1 = require("./batch-import");
50
+ Object.defineProperty(exports, "registerBatchImportTool", { enumerable: true, get: function () { return batch_import_1.registerBatchImportTool; } });
51
+ const export_1 = require("./export");
52
+ Object.defineProperty(exports, "registerExportTool", { enumerable: true, get: function () { return export_1.registerExportTool; } });
53
+ const notifications_1 = require("./notifications");
54
+ Object.defineProperty(exports, "registerNotificationsTool", { enumerable: true, get: function () { return notifications_1.registerNotificationsTool; } });
55
+ const subscriptions_1 = require("./subscriptions");
56
+ Object.defineProperty(exports, "registerSubscriptionsTool", { enumerable: true, get: function () { return subscriptions_1.registerSubscriptionsTool; } });
57
+ const reactions_1 = require("./reactions");
58
+ Object.defineProperty(exports, "registerReactionsTool", { enumerable: true, get: function () { return reactions_1.registerReactionsTool; } });
59
+ const tokens_1 = require("./tokens");
60
+ Object.defineProperty(exports, "registerTokensTool", { enumerable: true, get: function () { return tokens_1.registerTokensTool; } });
61
+ const caldav_tokens_1 = require("./caldav-tokens");
62
+ Object.defineProperty(exports, "registerCaldavTokensTool", { enumerable: true, get: function () { return caldav_tokens_1.registerCaldavTokensTool; } });
63
+ const admin_1 = require("./admin");
64
+ Object.defineProperty(exports, "registerAdminTool", { enumerable: true, get: function () { return admin_1.registerAdminTool; } });
65
+ const user_deletion_1 = require("./user-deletion");
66
+ Object.defineProperty(exports, "registerUserDeletionTool", { enumerable: true, get: function () { return user_deletion_1.registerUserDeletionTool; } });
67
+ /**
68
+ * Resolve the module gating configuration, failing safe rather than fatal.
69
+ *
70
+ * `ConfigurationManager.loadConfiguration()` fails fast (throws) on a
71
+ * malformed config file or a `_FILE`/plain env var conflict — appropriate for
72
+ * a direct, single-shot config load. Tool registration, however, can be
73
+ * retried (see the fallback registration paths in `src/index.ts`), and a
74
+ * config error must not spiral into a repeated-throw/unhandled-rejection
75
+ * crash loop there. So here we load once, log clearly on failure, and fall
76
+ * back to the schema's built-in module defaults so the server still starts
77
+ * with sane (default-on / dangerous-off) gating rather than not starting at all.
78
+ */
79
+ function resolveModulesConfig() {
80
+ try {
81
+ return config_1.ConfigurationManager.getInstance().loadConfiguration().modules;
82
+ }
83
+ catch (error) {
84
+ logger_1.logger.error('Failed to load module gating configuration; falling back to defaults ' +
85
+ '(ordinary modules ON, dangerous modules OFF):', error);
86
+ return config_1.ModulesConfigSchema.parse({});
87
+ }
88
+ }
89
+ /**
90
+ * Module-gated tool registration.
91
+ *
92
+ * Every module toggle (see `src/config/types.ts` ModulesConfigSchema) is
93
+ * resolved once up front and applied here, at registration time: a disabled
94
+ * module's tools are simply never registered, so they are invisible to the
95
+ * MCP client rather than merely rejecting calls. Module config can only
96
+ * NARROW what authentication already allows — the JWT-only gating below for
97
+ * `users`/`export` is applied in addition to (never instead of) the module
98
+ * check, so no config setting can grant access auth doesn't already permit.
99
+ */
100
+ function registerTools(server, authManager, clientFactory) {
101
+ // Register tools with conditional availability based on dependencies, module
102
+ // gating configuration, and authentication.
103
+ const modules = resolveModulesConfig();
104
+ (0, auth_1.registerAuthTool)(server, authManager);
105
+ // Register the comprehensive tasks tool and its granular counterparts,
106
+ // gated together behind the single "tasks" module toggle.
107
+ //
108
+ // NOTE: `vikunja_task_crud` (create/get/update/delete/list) previously
109
+ // registered here as a second entry point onto the exact same
110
+ // `src/tools/tasks/crud/*` functions `vikunja_tasks` already exposes via
111
+ // its `create`/`get`/`update`/`delete`/`list` subcommands. It was removed
112
+ // as redundant tool surface (Wave D hygiene, item D8) — see
113
+ // docs/API-COVERAGE.md's Tasks CRUD finding. `vikunja_tasks` is the
114
+ // supported replacement; no capability was lost.
115
+ if ((0, config_1.isModuleEnabled)(modules.tasks)) {
116
+ (0, tasks_1.registerTasksTool)(server, authManager, clientFactory);
117
+ (0, task_bulk_1.registerTaskBulkTool)(server, authManager, clientFactory);
118
+ (0, task_assignees_1.registerTaskAssigneesTool)(server, authManager, clientFactory);
119
+ (0, task_comments_1.registerTaskCommentsTool)(server, authManager, clientFactory);
120
+ (0, task_reminders_1.registerTaskRemindersTool)(server, authManager, clientFactory);
121
+ (0, task_labels_1.registerTaskLabelsTool)(server, authManager, clientFactory);
122
+ (0, task_relations_1.registerTaskRelationsTool)(server, authManager, clientFactory);
123
+ }
124
+ // Only register tools that require clientFactory if it's available
125
+ if (clientFactory) {
126
+ if ((0, config_1.isModuleEnabled)(modules.projects)) {
127
+ // `backgrounds` gates only three subcommands *within* this tool
128
+ // (remove-background/set-unsplash-background/search-unsplash — G7,
129
+ // opt-in cosmetic module, deny-by-default) rather than the whole
130
+ // tool; the resolved flag is passed down so registerProjectsTool
131
+ // builds its subcommand enum accordingly. See that function's doc
132
+ // comment and src/config/types.ts's `backgrounds` key.
133
+ (0, index_1.registerProjectsTool)(server, authManager, clientFactory, (0, config_1.isModuleEnabled)(modules.backgrounds));
134
+ }
135
+ if ((0, config_1.isModuleEnabled)(modules.labels)) {
136
+ (0, labels_1.registerLabelsTool)(server, authManager, clientFactory);
137
+ }
138
+ if ((0, config_1.isModuleEnabled)(modules.teams)) {
139
+ (0, teams_1.registerTeamsTool)(server, authManager, clientFactory);
140
+ }
141
+ // Register filters tool (needs auth manager for session-scoped storage)
142
+ if ((0, config_1.isModuleEnabled)(modules.filters)) {
143
+ (0, filters_1.registerFiltersTool)(server, authManager, clientFactory);
144
+ }
145
+ // Register templates tool
146
+ if ((0, config_1.isModuleEnabled)(modules.templates)) {
147
+ (0, templates_1.registerTemplatesTool)(server, authManager, clientFactory);
148
+ }
149
+ // Register webhooks tool
150
+ if ((0, config_1.isModuleEnabled)(modules.webhooks)) {
151
+ (0, webhooks_1.registerWebhooksTool)(server, authManager, clientFactory);
152
+ }
153
+ // Register batch import tool
154
+ if ((0, config_1.isModuleEnabled)(modules.batchImport)) {
155
+ (0, batch_import_1.registerBatchImportTool)(server, authManager, clientFactory);
156
+ }
157
+ // Register notifications tool
158
+ if ((0, config_1.isModuleEnabled)(modules.notifications)) {
159
+ (0, notifications_1.registerNotificationsTool)(server, authManager, clientFactory);
160
+ }
161
+ // Register subscriptions tool
162
+ if ((0, config_1.isModuleEnabled)(modules.subscriptions)) {
163
+ (0, subscriptions_1.registerSubscriptionsTool)(server, authManager, clientFactory);
164
+ }
165
+ // Register reactions tool
166
+ if ((0, config_1.isModuleEnabled)(modules.reactions)) {
167
+ (0, reactions_1.registerReactionsTool)(server, authManager, clientFactory);
168
+ }
169
+ // Register API-token-management tool. Reserved/deny-by-default (see
170
+ // DANGEROUS_MODULE_KEYS in src/config/types.ts) — only gated by the
171
+ // 'tokenManagement' config key, no auth-type restriction (unlike
172
+ // users/export/admin): the underlying /tokens endpoints may reject
173
+ // API-token sessions server-side (see src/tools/tokens.ts's doc
174
+ // comment), but that is a runtime concern for the tool to report, not a
175
+ // registration-time gate.
176
+ if ((0, config_1.isModuleEnabled)(modules.tokenManagement)) {
177
+ (0, tokens_1.registerTokensTool)(server, authManager, clientFactory);
178
+ }
179
+ // Register user and export tools conditionally (preserving backward compatibility)
180
+ // NOTE: The permission infrastructure is available for future migration.
181
+ // Module config can only narrow this JWT-only gate, never expand it.
182
+ const jwtAuthenticated = authManager.isAuthenticated() && authManager.getAuthType() === 'jwt';
183
+ if (jwtAuthenticated && (0, config_1.isModuleEnabled)(modules.users)) {
184
+ (0, users_1.registerUsersTool)(server, authManager, clientFactory);
185
+ }
186
+ if (jwtAuthenticated && (0, config_1.isModuleEnabled)(modules.export)) {
187
+ (0, export_1.registerExportTool)(server, authManager, clientFactory);
188
+ }
189
+ // Register CalDAV token management tool. Reserved/deny-by-default AND
190
+ // JWT-only: both the 'caldavTokens' module config key and JWT auth must
191
+ // allow it (config can only narrow what auth permits, never expand it —
192
+ // same composition as users/export/admin). Unlike 'tokenManagement'
193
+ // (vikunja_tokens, which registers for either session type), the
194
+ // underlying /user/settings/token/caldav* endpoints are JWT-only per
195
+ // the vendored OpenAPI spec, so the JWT gate is enforced here at
196
+ // registration time rather than left to the server to reject at
197
+ // runtime — see src/tools/caldav-tokens.ts.
198
+ if (jwtAuthenticated && (0, config_1.isModuleEnabled)(modules.caldavTokens)) {
199
+ (0, caldav_tokens_1.registerCaldavTokensTool)(server, authManager, clientFactory);
200
+ }
201
+ // Register instance-admin tool. Reserved/deny-by-default AND JWT-only:
202
+ // both the 'admin' module config key and JWT auth must allow it (config
203
+ // can only narrow what auth permits, never expand it — same composition
204
+ // as users/export above).
205
+ if (jwtAuthenticated && (0, config_1.isModuleEnabled)(modules.admin)) {
206
+ (0, admin_1.registerAdminTool)(server, authManager, clientFactory);
207
+ }
208
+ // Register user self-deletion tool. Reserved/deny-by-default AND
209
+ // JWT-only, same composition as admin/users/export above: both the
210
+ // 'userDeletion' module config key and JWT auth must allow it. This is
211
+ // the reserved DANGEROUS_MODULE_KEYS slot finally getting a tool.
212
+ if (jwtAuthenticated && (0, config_1.isModuleEnabled)(modules.userDeletion)) {
213
+ (0, user_deletion_1.registerUserDeletionTool)(server, authManager, clientFactory);
214
+ }
215
+ }
216
+ }
217
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Labels Tool
3
+ * Handles label operations for Vikunja
4
+ *
5
+ * Migrated off the legacy client (Wave D domain migration, tracking issue #28)
6
+ * onto `vikunjaRestRequest` + types generated from the vendored OpenAPI
7
+ * spec. See docs/ENDPOINT-PLAYBOOK.md §6.
8
+ *
9
+ * Endpoints (verified against docs/vikunja-openapi.json):
10
+ * - GET /labels list
11
+ * - PUT /labels create
12
+ * - GET /labels/{id} get
13
+ * - PUT /labels/{id} update (models.Label — not full-model-replace;
14
+ * the label service's `Update` handler only applies
15
+ * fields present on the incoming struct)
16
+ * - DELETE /labels/{id} delete
17
+ */
18
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
19
+ import type { AuthManager } from '../auth/AuthManager';
20
+ import type { VikunjaClientFactory } from '../client/VikunjaClientFactory';
21
+ export declare function registerLabelsTool(server: McpServer, authManager: AuthManager, _clientFactory?: VikunjaClientFactory): void;
22
+ //# sourceMappingURL=labels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"labels.d.ts","sourceRoot":"","sources":["../../src/tools/labels.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAoC3E,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,CAAC,EAAE,oBAAoB,GAAG,IAAI,CA2N3H"}
@@ -0,0 +1,206 @@
1
+ "use strict";
2
+ /**
3
+ * Labels Tool
4
+ * Handles label operations for Vikunja
5
+ *
6
+ * Migrated off the legacy client (Wave D domain migration, tracking issue #28)
7
+ * onto `vikunjaRestRequest` + types generated from the vendored OpenAPI
8
+ * spec. See docs/ENDPOINT-PLAYBOOK.md §6.
9
+ *
10
+ * Endpoints (verified against docs/vikunja-openapi.json):
11
+ * - GET /labels list
12
+ * - PUT /labels create
13
+ * - GET /labels/{id} get
14
+ * - PUT /labels/{id} update (models.Label — not full-model-replace;
15
+ * the label service's `Update` handler only applies
16
+ * fields present on the incoming struct)
17
+ * - DELETE /labels/{id} delete
18
+ */
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.registerLabelsTool = registerLabelsTool;
21
+ const zod_1 = require("zod");
22
+ const types_1 = require("../types");
23
+ const validation_1 = require("../utils/validation");
24
+ const error_handler_1 = require("../utils/error-handler");
25
+ const vikunja_rest_1 = require("../utils/vikunja-rest");
26
+ const response_factory_1 = require("../utils/response-factory");
27
+ const read_only_1 = require("../utils/read-only");
28
+ // Use shared validateAndConvertId from utils/validation
29
+ /**
30
+ * Re-throws a REST-layer 404 (`vikunjaRestRequest` throws `MCPError` with
31
+ * `details.statusCode`, not a bare `.statusCode` property) as a friendly
32
+ * "Label with ID X not found" — matching the message the legacy-client-backed
33
+ * implementation produced via its own thrown `.statusCode`-bearing errors.
34
+ * Everything else is rethrown/wrapped unchanged by the caller's
35
+ * `wrapToolError` fallback.
36
+ */
37
+ function rethrowLabelNotFound(error, id) {
38
+ if (error instanceof types_1.MCPError && error.details?.statusCode === 404) {
39
+ throw new types_1.MCPError(types_1.ErrorCode.NOT_FOUND, `Label with ID ${id} not found`);
40
+ }
41
+ throw error;
42
+ }
43
+ function registerLabelsTool(server, authManager, _clientFactory) {
44
+ server.tool('vikunja_labels', (0, read_only_1.withReadOnlyNote)('vikunja_labels', 'Manage task labels with full CRUD operations for organizing and categorizing tasks'), {
45
+ // Operation type
46
+ subcommand: zod_1.z.enum(['list', 'get', 'create', 'update', 'delete']),
47
+ // Common parameters
48
+ id: zod_1.z.number().int().positive().optional(),
49
+ // List parameters
50
+ page: zod_1.z.number().int().positive().optional(),
51
+ perPage: zod_1.z.number().int().positive().max(100).optional(),
52
+ search: zod_1.z.string().optional(),
53
+ // Create/Update parameters
54
+ title: zod_1.z.string().min(1).optional(),
55
+ description: zod_1.z.string().optional(),
56
+ hexColor: zod_1.z
57
+ .string()
58
+ .regex(/^#[0-9A-Fa-f]{6}$/, 'Invalid hex color format')
59
+ .optional(),
60
+ }, (0, read_only_1.getToolAnnotations)('vikunja_labels'), async (args) => {
61
+ if (!authManager.isAuthenticated()) {
62
+ throw new types_1.MCPError(types_1.ErrorCode.AUTH_REQUIRED, 'Authentication required. Please use vikunja_auth.connect first.');
63
+ }
64
+ const subcommand = args.subcommand;
65
+ (0, read_only_1.assertWriteAllowed)('vikunja_labels', subcommand);
66
+ try {
67
+ switch (subcommand) {
68
+ case 'list': {
69
+ const params = new URLSearchParams();
70
+ if (args.page)
71
+ params.set('page', String(args.page));
72
+ if (args.perPage)
73
+ params.set('per_page', String(args.perPage));
74
+ if (args.search)
75
+ params.set('s', args.search);
76
+ const query = params.toString();
77
+ const labelsResult = await (0, vikunja_rest_1.vikunjaRestRequest)(authManager, 'GET', `/labels${query ? `?${query}` : ''}`);
78
+ // Handle null/undefined response from API
79
+ const labels = labelsResult ?? [];
80
+ const paramsMetadata = {};
81
+ if (args.page)
82
+ paramsMetadata.page = args.page;
83
+ if (args.perPage)
84
+ paramsMetadata.per_page = args.perPage;
85
+ if (args.search)
86
+ paramsMetadata.s = args.search;
87
+ const response = (0, types_1.createStandardResponse)('list-labels', `Retrieved ${labels.length} label${labels.length !== 1 ? 's' : ''}`, { labels: labels }, { count: labels.length, params: paramsMetadata });
88
+ return {
89
+ content: [
90
+ {
91
+ type: 'text',
92
+ text: (0, response_factory_1.formatAorpAsMarkdown)(response),
93
+ },
94
+ ],
95
+ };
96
+ }
97
+ case 'get': {
98
+ if (args.id === undefined) {
99
+ throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Label ID is required');
100
+ }
101
+ (0, validation_1.validateAndConvertId)(args.id, 'id');
102
+ let label;
103
+ try {
104
+ label = await (0, vikunja_rest_1.vikunjaRestRequest)(authManager, 'GET', `/labels/${args.id}`);
105
+ }
106
+ catch (error) {
107
+ rethrowLabelNotFound(error, args.id);
108
+ }
109
+ const response = (0, types_1.createStandardResponse)('get-label', `Retrieved label "${label.title}"`, { label });
110
+ return {
111
+ content: [
112
+ {
113
+ type: 'text',
114
+ text: (0, response_factory_1.formatAorpAsMarkdown)(response),
115
+ },
116
+ ],
117
+ };
118
+ }
119
+ case 'create': {
120
+ if (!args.title) {
121
+ throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Title is required');
122
+ }
123
+ const labelData = {
124
+ title: args.title,
125
+ };
126
+ if (args.description)
127
+ labelData.description = args.description;
128
+ if (args.hexColor)
129
+ labelData.hex_color = args.hexColor;
130
+ const label = await (0, vikunja_rest_1.vikunjaRestRequest)(authManager, 'PUT', '/labels', labelData);
131
+ const response = (0, types_1.createStandardResponse)('create-label', `Label "${label.title}" created successfully`, { label }, { affectedFields: Object.keys(labelData).filter(key => typeof key === 'string') });
132
+ return {
133
+ content: [
134
+ {
135
+ type: 'text',
136
+ text: (0, response_factory_1.formatAorpAsMarkdown)(response),
137
+ },
138
+ ],
139
+ };
140
+ }
141
+ case 'update': {
142
+ if (args.id === undefined) {
143
+ throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Label ID is required');
144
+ }
145
+ (0, validation_1.validateAndConvertId)(args.id, 'id');
146
+ if (!args.title && args.description === undefined && !args.hexColor) {
147
+ throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'At least one field to update is required');
148
+ }
149
+ const updates = {};
150
+ if (args.title)
151
+ updates.title = args.title;
152
+ if (args.description !== undefined)
153
+ updates.description = args.description;
154
+ if (args.hexColor)
155
+ updates.hex_color = args.hexColor;
156
+ let label;
157
+ try {
158
+ label = await (0, vikunja_rest_1.vikunjaRestRequest)(authManager, 'PUT', `/labels/${args.id}`, updates);
159
+ }
160
+ catch (error) {
161
+ rethrowLabelNotFound(error, args.id);
162
+ }
163
+ const response = (0, types_1.createStandardResponse)('update-label', `Label "${label.title}" updated successfully`, { label }, { affectedFields: Object.keys(updates).filter(key => typeof key === 'string') });
164
+ return {
165
+ content: [
166
+ {
167
+ type: 'text',
168
+ text: (0, response_factory_1.formatAorpAsMarkdown)(response),
169
+ },
170
+ ],
171
+ };
172
+ }
173
+ case 'delete': {
174
+ if (args.id === undefined) {
175
+ throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Label ID is required');
176
+ }
177
+ (0, validation_1.validateAndConvertId)(args.id, 'id');
178
+ let result;
179
+ try {
180
+ result = await (0, vikunja_rest_1.vikunjaRestRequest)(authManager, 'DELETE', `/labels/${args.id}`);
181
+ }
182
+ catch (error) {
183
+ rethrowLabelNotFound(error, args.id);
184
+ }
185
+ const response = (0, types_1.createStandardResponse)('delete-label', `Label deleted successfully`, {
186
+ result,
187
+ });
188
+ return {
189
+ content: [
190
+ {
191
+ type: 'text',
192
+ text: (0, response_factory_1.formatAorpAsMarkdown)(response),
193
+ },
194
+ ],
195
+ };
196
+ }
197
+ default:
198
+ throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, `Invalid subcommand: ${String(subcommand)}`);
199
+ }
200
+ }
201
+ catch (error) {
202
+ throw (0, error_handler_1.wrapToolError)(error, 'vikunja_labels', `${subcommand} label`, args.id);
203
+ }
204
+ });
205
+ }
206
+ //# sourceMappingURL=labels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"labels.js","sourceRoot":"","sources":["../../src/tools/labels.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Notifications Tool
3
+ *
4
+ * Wraps Vikunja's `/notifications` endpoints (see docs/vikunja-openapi.json):
5
+ * - GET /notifications -> list, with page/per_page pagination
6
+ * - POST /notifications -> mark every notification read
7
+ * - POST /notifications/{id} -> toggle a single notification's read state
8
+ *
9
+ * All calls go through `vikunjaRestRequest` (direct-REST rule, see
10
+ * docs/ENDPOINT-PLAYBOOK.md §3) — legacy client has no notifications support
11
+ * to migrate away from, so this is a pure new call site.
12
+ */
13
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
14
+ import type { AuthManager } from '../auth/AuthManager';
15
+ import type { VikunjaClientFactory } from '../client/VikunjaClientFactory';
16
+ export declare function registerNotificationsTool(server: McpServer, authManager: AuthManager, _clientFactory?: VikunjaClientFactory): void;
17
+ //# sourceMappingURL=notifications.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../../src/tools/notifications.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAqF3E,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,WAAW,EACxB,cAAc,CAAC,EAAE,oBAAoB,GACpC,IAAI,CA4KN"}