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