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,20 @@
1
+ "use strict";
2
+ /**
3
+ * CRUD Operations for Tasks
4
+ * Centralized exports for all task CRUD operations with clean modular architecture
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.createTaskResponse = exports.getTask = exports.deleteTask = exports.updateTask = exports.createTask = void 0;
8
+ // Export all service functions with their original signatures for backward compatibility
9
+ var TaskCreationService_1 = require("./TaskCreationService");
10
+ Object.defineProperty(exports, "createTask", { enumerable: true, get: function () { return TaskCreationService_1.createTask; } });
11
+ var TaskUpdateService_1 = require("./TaskUpdateService");
12
+ Object.defineProperty(exports, "updateTask", { enumerable: true, get: function () { return TaskUpdateService_1.updateTask; } });
13
+ var TaskDeletionService_1 = require("./TaskDeletionService");
14
+ Object.defineProperty(exports, "deleteTask", { enumerable: true, get: function () { return TaskDeletionService_1.deleteTask; } });
15
+ var TaskReadService_1 = require("./TaskReadService");
16
+ Object.defineProperty(exports, "getTask", { enumerable: true, get: function () { return TaskReadService_1.getTask; } });
17
+ // Export the response formatter for use in other modules
18
+ var TaskResponseFormatter_1 = require("./TaskResponseFormatter");
19
+ Object.defineProperty(exports, "createTaskResponse", { enumerable: true, get: function () { return TaskResponseFormatter_1.createTaskResponse; } });
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/tools/tasks/crud/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,yFAAyF;AACzF,6DAAmD;AAA1C,iHAAA,UAAU,OAAA;AACnB,yDAAiD;AAAxC,+GAAA,UAAU,OAAA;AACnB,6DAAmD;AAA1C,iHAAA,UAAU,OAAA;AACnB,qDAA4C;AAAnC,0GAAA,OAAO,OAAA;AAEhB,yDAAyD;AACzD,iEAA6D;AAApD,2HAAA,kBAAkB,OAAA"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Task duplication
3
+ *
4
+ * Implements `duplicate` (`PUT /tasks/{taskID}/duplicate`), which copies a
5
+ * task with all its properties (labels, assignees, attachments, reminders)
6
+ * into the same project and creates a "copied from" relation between the
7
+ * new and original task. Direct parallel to the already-shipped
8
+ * `vikunja_projects duplicate` (`src/tools/projects/duplicate.ts`) — see
9
+ * docs/ENDPOINT-TAIL-RETRIAGE.md item G2. No request body; the endpoint
10
+ * takes only the path parameter.
11
+ */
12
+ import type { AuthManager } from '../../auth/AuthManager';
13
+ export interface DuplicateTaskArgs {
14
+ /** Id of the task to duplicate. */
15
+ id?: number;
16
+ /** Session id for response tracking. */
17
+ sessionId?: string;
18
+ }
19
+ /**
20
+ * Duplicates a task.
21
+ */
22
+ export declare function duplicateTask(args: DuplicateTaskArgs, authManager: AuthManager): Promise<{
23
+ content: Array<{
24
+ type: 'text';
25
+ text: string;
26
+ }>;
27
+ }>;
28
+ //# sourceMappingURL=duplicate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"duplicate.d.ts","sourceRoot":"","sources":["../../../src/tools/tasks/duplicate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAa1D,MAAM,WAAW,iBAAiB;IAChC,mCAAmC;IACnC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,iBAAiB,EACvB,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAgC7D"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ /**
3
+ * Task duplication
4
+ *
5
+ * Implements `duplicate` (`PUT /tasks/{taskID}/duplicate`), which copies a
6
+ * task with all its properties (labels, assignees, attachments, reminders)
7
+ * into the same project and creates a "copied from" relation between the
8
+ * new and original task. Direct parallel to the already-shipped
9
+ * `vikunja_projects duplicate` (`src/tools/projects/duplicate.ts`) — see
10
+ * docs/ENDPOINT-TAIL-RETRIAGE.md item G2. No request body; the endpoint
11
+ * takes only the path parameter.
12
+ */
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.duplicateTask = duplicateTask;
15
+ const types_1 = require("../../types");
16
+ const validation_1 = require("../../utils/validation");
17
+ const response_factory_1 = require("../../utils/response-factory");
18
+ const vikunja_rest_1 = require("../../utils/vikunja-rest");
19
+ /**
20
+ * Duplicates a task.
21
+ */
22
+ async function duplicateTask(args, authManager) {
23
+ if (!args.id) {
24
+ throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Task id is required for duplicate operation');
25
+ }
26
+ (0, validation_1.validateId)(args.id, 'id');
27
+ const result = await (0, vikunja_rest_1.vikunjaRestRequest)(authManager, 'PUT', `/tasks/${args.id}/duplicate`);
28
+ const duplicated = result?.duplicated_task;
29
+ const response = (0, response_factory_1.createStandardResponse)('duplicate', duplicated?.id !== undefined
30
+ ? `Task ${args.id} duplicated as task ${duplicated.id}`
31
+ : `Task ${args.id} duplicated`, {
32
+ sourceTaskId: args.id,
33
+ duplicatedTask: duplicated,
34
+ }, {
35
+ timestamp: new Date().toISOString(),
36
+ }, args.sessionId);
37
+ return {
38
+ content: [{ type: 'text', text: (0, response_factory_1.formatAorpAsMarkdown)(response) }],
39
+ };
40
+ }
41
+ //# sourceMappingURL=duplicate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"duplicate.js","sourceRoot":"","sources":["../../../src/tools/tasks/duplicate.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;AAyBH,sCAmCC;AAzDD,uCAAkD;AAClD,uDAAoD;AACpD,mEAA4F;AAC5F,2DAA8D;AAgB9D;;GAEG;AACI,KAAK,UAAU,aAAa,CACjC,IAAuB,EACvB,WAAwB;IAExB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACb,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,6CAA6C,CAAC,CAAC;IAChG,CAAC;IACD,IAAA,uBAAU,EAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAE1B,MAAM,MAAM,GAAG,MAAM,IAAA,iCAAkB,EACrC,WAAW,EACX,KAAK,EACL,UAAU,IAAI,CAAC,EAAE,YAAY,CAC9B,CAAC;IAEF,MAAM,UAAU,GAAG,MAAM,EAAE,eAAe,CAAC;IAE3C,MAAM,QAAQ,GAAG,IAAA,yCAAsB,EACrC,WAAW,EACX,UAAU,EAAE,EAAE,KAAK,SAAS;QAC1B,CAAC,CAAC,QAAQ,IAAI,CAAC,EAAE,uBAAuB,UAAU,CAAC,EAAE,EAAE;QACvD,CAAC,CAAC,QAAQ,IAAI,CAAC,EAAE,aAAa,EAChC;QACE,YAAY,EAAE,IAAI,CAAC,EAAE;QACrB,cAAc,EAAE,UAAU;KAC3B,EACD;QACE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,EACD,IAAI,CAAC,SAAS,CACf,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAA,uCAAoB,EAAC,QAAQ,CAAC,EAAE,CAAC;KAC3E,CAAC;AACJ,CAAC"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Filter execution engine for task filtering operations
3
+ * Handles the execution of filters and applies additional post-processing
4
+ */
5
+ import type { FilterExpression } from '../../../types/filters';
6
+ import type { VikunjaTask as Task, TaskListApiParams as GetTasksParams } from '../../../utils/filtering/types';
7
+ import type { TaskListingArgs, TaskFilterExecutionResult } from '../types/filters';
8
+ import type { TaskFilterStorage, FilteringMetadata } from '../types/filters';
9
+ import type { AuthManager } from '../../../auth/AuthManager';
10
+ /**
11
+ * Executes filtering operations on tasks with comprehensive error handling
12
+ */
13
+ export declare const FilterExecutor: {
14
+ /**
15
+ * Executes task filtering with the provided parameters
16
+ */
17
+ executeFiltering(args: TaskListingArgs, filterExpression: FilterExpression | null, filterString: string | undefined, params: GetTasksParams, _storage: TaskFilterStorage, authManager?: AuthManager): Promise<TaskFilterExecutionResult>;
18
+ /**
19
+ * Applies post-processing filters that aren't handled by the main filtering strategies
20
+ */
21
+ applyPostProcessingFilters(tasks: Task[], args: TaskListingArgs): Task[];
22
+ /**
23
+ * Creates filtering metadata for response formatting
24
+ */
25
+ createFilteringMetadata(filterString: string | undefined, serverSideFilteringUsed: boolean, serverSideFilteringAttempted: boolean, filteringNote: string): FilteringMetadata;
26
+ /**
27
+ * Prepares query parameters for API calls
28
+ */
29
+ prepareQueryParameters(args: TaskListingArgs): GetTasksParams;
30
+ /**
31
+ * Validates loaded tasks against memory constraints
32
+ */
33
+ validateLoadedTaskCount(tasks: Task[]): {
34
+ isValid: boolean;
35
+ warnings: string[];
36
+ shouldThrow: boolean;
37
+ };
38
+ };
39
+ //# sourceMappingURL=FilterExecutor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterExecutor.d.ts","sourceRoot":"","sources":["../../../../src/tools/tasks/filtering/FilterExecutor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,IAAI,IAAI,EAAE,iBAAiB,IAAI,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAC/G,OAAO,KAAK,EAAE,eAAe,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AACnF,OAAO,KAAK,EAAE,iBAAiB,EAAmB,iBAAiB,EAAiB,MAAM,kBAAkB,CAAC;AAC7G,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAgB7D;;GAEG;AACH,eAAO,MAAM,cAAc;IACzB;;OAEG;2BAEK,eAAe,oBACH,gBAAgB,GAAG,IAAI,gBAC3B,MAAM,GAAG,SAAS,UACxB,cAAc,YACZ,iBAAiB,gBACb,WAAW,GACxB,OAAO,CAAC,yBAAyB,CAAC;IAwGrC;;OAEG;sCAC+B,IAAI,EAAE,QAAQ,eAAe,GAAG,IAAI,EAAE;IAWxE;;OAEG;0CAEa,MAAM,GAAG,SAAS,2BACP,OAAO,gCACF,OAAO,iBACtB,MAAM,GACpB,iBAAiB;IAkCpB;;OAEG;iCAC0B,eAAe,GAAG,cAAc;IA2B7D;;OAEG;mCAC4B,IAAI,EAAE,GAAG;QACtC,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,WAAW,EAAE,OAAO,CAAC;KACtB;CAkCF,CAAC"}
@@ -0,0 +1,214 @@
1
+ "use strict";
2
+ /**
3
+ * Filter execution engine for task filtering operations
4
+ * Handles the execution of filters and applies additional post-processing
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.FilterExecutor = void 0;
8
+ const filtering_1 = require("../../../utils/filtering");
9
+ const memory_1 = require("../../../utils/memory");
10
+ const types_1 = require("../../../types");
11
+ const logger_1 = require("../../../utils/logger");
12
+ /**
13
+ * True when a task listing spans every accessible project: no `projectId`
14
+ * supplied, or `allProjects: true`. Matches the predicate already used
15
+ * consistently by `ClientSideFilteringStrategy`/`ServerSideFilteringStrategy`
16
+ * to pick their single-project vs. aggregate-across-projects branch.
17
+ */
18
+ function isCrossProjectListing(args) {
19
+ return args.projectId === undefined || args.allProjects === true;
20
+ }
21
+ /**
22
+ * Executes filtering operations on tasks with comprehensive error handling
23
+ */
24
+ exports.FilterExecutor = {
25
+ /**
26
+ * Executes task filtering with the provided parameters
27
+ */
28
+ async executeFiltering(args, filterExpression, filterString, params, _storage, authManager) {
29
+ try {
30
+ // Execute filtering using strategy pattern. Cross-project listings
31
+ // always route through the direct-REST GET /tasks strategy (falling
32
+ // back to per-project aggregation on failure) regardless of whether a
33
+ // filter is present — see RestCrossProjectFilteringStrategy.
34
+ const filteringContext = new filtering_1.FilteringContext({
35
+ enableServerSide: Boolean(filterString),
36
+ crossProject: isCrossProjectListing(args)
37
+ });
38
+ const filteringParams = {
39
+ args: args,
40
+ filterExpression,
41
+ filterString,
42
+ params,
43
+ ...(authManager !== undefined ? { authManager } : {})
44
+ };
45
+ const filteringResult = await filteringContext.execute(filteringParams);
46
+ const tasks = filteringResult.tasks;
47
+ // Extract metadata for response formatting
48
+ const { serverSideFilteringUsed, serverSideFilteringAttempted, } = filteringResult.metadata;
49
+ // Additional memory protection: validate actual loaded task count
50
+ const actualTaskCount = tasks.length;
51
+ const finalTaskCountValidation = (0, memory_1.validateTaskCountLimit)(actualTaskCount);
52
+ let memoryInfo;
53
+ if (!finalTaskCountValidation.allowed) {
54
+ // Log warning but don't fail since tasks are already loaded
55
+ logger_1.logger.warn('Loaded task count exceeds recommended limits', {
56
+ actualCount: actualTaskCount,
57
+ maxRecommended: finalTaskCountValidation.maxAllowed,
58
+ estimatedMemoryMB: finalTaskCountValidation.estimatedMemoryMB
59
+ });
60
+ memoryInfo = {
61
+ actualCount: actualTaskCount,
62
+ maxAllowed: finalTaskCountValidation.maxAllowed,
63
+ estimatedMemoryMB: finalTaskCountValidation.estimatedMemoryMB
64
+ };
65
+ // For extremely large datasets, still enforce hard limits
66
+ if (actualTaskCount > finalTaskCountValidation.maxAllowed * 1.5) {
67
+ throw new types_1.MCPError(types_1.ErrorCode.INTERNAL_ERROR, (0, memory_1.createTaskLimitExceededMessage)('process loaded tasks', actualTaskCount));
68
+ }
69
+ }
70
+ // Log memory usage for monitoring
71
+ (0, memory_1.logMemoryUsage)('task listing', actualTaskCount);
72
+ // Apply post-processing filters
73
+ const processedTasks = exports.FilterExecutor.applyPostProcessingFilters(tasks, args);
74
+ // Determine filtering method message and metadata from strategy result
75
+ const filteringMetadata = exports.FilterExecutor.createFilteringMetadata(filterString, serverSideFilteringUsed, serverSideFilteringAttempted, filteringResult.metadata.filteringNote);
76
+ // Build return object, only including defined properties to satisfy exactOptionalPropertyTypes
77
+ const result = {
78
+ success: true,
79
+ tasks: processedTasks,
80
+ metadata: filteringMetadata,
81
+ };
82
+ if (memoryInfo !== undefined) {
83
+ result.memoryInfo = memoryInfo;
84
+ }
85
+ return result;
86
+ }
87
+ catch (error) {
88
+ if (error instanceof types_1.MCPError) {
89
+ throw error;
90
+ }
91
+ // Log the full error for debugging filter issues
92
+ logger_1.logger.error('Task filtering execution error:', {
93
+ error: error instanceof Error ? error.message : String(error),
94
+ params: params,
95
+ filter: args.filter,
96
+ filterId: args.filterId,
97
+ });
98
+ // Re-throw original error to be handled by main function
99
+ throw error;
100
+ }
101
+ },
102
+ /**
103
+ * Applies post-processing filters that aren't handled by the main filtering strategies
104
+ */
105
+ applyPostProcessingFilters(tasks, args) {
106
+ let filteredTasks = [...tasks];
107
+ // Filter by done status if specified (this is a simpler filter that works)
108
+ if (args.done !== undefined) {
109
+ filteredTasks = filteredTasks.filter((task) => task.done === args.done);
110
+ }
111
+ return filteredTasks;
112
+ },
113
+ /**
114
+ * Creates filtering metadata for response formatting
115
+ */
116
+ createFilteringMetadata(filterString, serverSideFilteringUsed, serverSideFilteringAttempted, filteringNote) {
117
+ if (filterString) {
118
+ if (serverSideFilteringUsed) {
119
+ return {
120
+ serverSideFilteringUsed: true,
121
+ serverSideFilteringAttempted: true,
122
+ clientSideFiltering: false,
123
+ filteringNote,
124
+ };
125
+ }
126
+ else if (serverSideFilteringAttempted) {
127
+ return {
128
+ serverSideFilteringUsed: false,
129
+ serverSideFilteringAttempted: true,
130
+ clientSideFiltering: true,
131
+ filteringNote,
132
+ };
133
+ }
134
+ else {
135
+ return {
136
+ serverSideFilteringUsed: false,
137
+ serverSideFilteringAttempted: false,
138
+ clientSideFiltering: true,
139
+ filteringNote,
140
+ };
141
+ }
142
+ }
143
+ else {
144
+ return {
145
+ serverSideFilteringUsed: false,
146
+ serverSideFilteringAttempted: false,
147
+ clientSideFiltering: false,
148
+ filteringNote,
149
+ };
150
+ }
151
+ },
152
+ /**
153
+ * Prepares query parameters for API calls
154
+ */
155
+ prepareQueryParameters(args) {
156
+ const params = {};
157
+ // Build query parameters
158
+ if (args.page !== undefined)
159
+ params.page = args.page;
160
+ if (args.perPage !== undefined)
161
+ params.per_page = args.perPage;
162
+ if (args.search !== undefined)
163
+ params.s = args.search;
164
+ if (args.sort !== undefined)
165
+ params.sort_by = args.sort;
166
+ // Memory protection: Check if we should implement pagination limits
167
+ // Note: Vikunja API doesn't provide task count endpoints, so we use conservative defaults
168
+ // and rely on user-provided pagination parameters
169
+ if (!params.per_page) {
170
+ // Set default pagination to prevent unbounded loading
171
+ params.per_page = 1000; // Conservative default
172
+ if (!params.page) {
173
+ params.page = 1;
174
+ }
175
+ logger_1.logger.info('Applied default pagination for memory protection', {
176
+ per_page: params.per_page,
177
+ page: params.page
178
+ });
179
+ }
180
+ return params;
181
+ },
182
+ /**
183
+ * Validates loaded tasks against memory constraints
184
+ */
185
+ validateLoadedTaskCount(tasks) {
186
+ const actualTaskCount = tasks.length;
187
+ const finalTaskCountValidation = (0, memory_1.validateTaskCountLimit)(actualTaskCount);
188
+ const warnings = [];
189
+ if (!finalTaskCountValidation.allowed) {
190
+ // Log warning but don't fail since tasks are already loaded
191
+ logger_1.logger.warn('Loaded task count exceeds recommended limits', {
192
+ actualCount: actualTaskCount,
193
+ maxRecommended: finalTaskCountValidation.maxAllowed,
194
+ estimatedMemoryMB: finalTaskCountValidation.estimatedMemoryMB
195
+ });
196
+ warnings.push(`Loaded ${actualTaskCount} tasks, which exceeds recommended limit of ${finalTaskCountValidation.maxAllowed}. ` +
197
+ `Estimated memory usage: ${finalTaskCountValidation.estimatedMemoryMB}MB.`);
198
+ // For extremely large datasets, still enforce hard limits
199
+ if (actualTaskCount > finalTaskCountValidation.maxAllowed * 1.5) {
200
+ return {
201
+ isValid: false,
202
+ warnings,
203
+ shouldThrow: true
204
+ };
205
+ }
206
+ }
207
+ return {
208
+ isValid: true,
209
+ warnings,
210
+ shouldThrow: false
211
+ };
212
+ },
213
+ };
214
+ //# sourceMappingURL=FilterExecutor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterExecutor.js","sourceRoot":"","sources":["../../../../src/tools/tasks/filtering/FilterExecutor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Filter validation for task filtering operations
3
+ * Handles validation of filter expressions and task listing parameters
4
+ */
5
+ import type { components } from '../../../types/generated/vikunja-openapi';
6
+ import type { FilterExpression } from '../../../types/filters';
7
+ import type { TaskListingArgs, TaskFilterValidationConfig, TaskFilterStorage } from '../types/filters';
8
+ /** `models.Task` per the OpenAPI spec — sample task for memory estimation. */
9
+ type Task = components['schemas']['models.Task'];
10
+ /**
11
+ * Validates filter parameters for task listing operations
12
+ */
13
+ export declare const FilterValidator: {
14
+ /**
15
+ * Validates and processes filter string or filter ID
16
+ */
17
+ validateAndParseFilter(args: TaskListingArgs, storage: TaskFilterStorage): Promise<{
18
+ filterExpression: FilterExpression | null;
19
+ filterString: string | undefined;
20
+ validationWarnings: string[];
21
+ }>;
22
+ /**
23
+ * Validates pagination and memory constraints
24
+ */
25
+ validateMemoryConstraints(args: TaskListingArgs, requestedPageSize: number): {
26
+ isValid: boolean;
27
+ warnings: string[];
28
+ maxAllowed?: number;
29
+ };
30
+ /**
31
+ * Validates the actual loaded task count against limits
32
+ */
33
+ validateLoadedTasks(actualTaskCount: number, sampleTask?: Task): {
34
+ isValid: boolean;
35
+ warnings: string[];
36
+ shouldThrow: boolean;
37
+ riskLevel?: "low" | "medium" | "high";
38
+ estimatedMemoryMB?: number;
39
+ };
40
+ /**
41
+ * Validates task listing arguments
42
+ */
43
+ validateTaskListingArgs(args: TaskListingArgs): string[];
44
+ /**
45
+ * Performs comprehensive validation of task filtering parameters
46
+ */
47
+ validateTaskFiltering(args: TaskListingArgs, storage: TaskFilterStorage, _config?: TaskFilterValidationConfig): Promise<{
48
+ filterExpression: FilterExpression | null;
49
+ filterString: string | undefined;
50
+ validationWarnings: string[];
51
+ memoryValidation: {
52
+ isValid: boolean;
53
+ warnings: string[];
54
+ maxAllowed?: number;
55
+ };
56
+ }>;
57
+ };
58
+ export {};
59
+ //# sourceMappingURL=FilterValidator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterValidator.d.ts","sourceRoot":"","sources":["../../../../src/tools/tasks/filtering/FilterValidator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AAC3E,OAAO,KAAK,EAAE,gBAAgB,EAA4B,MAAM,wBAAwB,CAAC;AACzF,OAAO,KAAK,EAAE,eAAe,EAAE,0BAA0B,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAOvG,8EAA8E;AAC9E,KAAK,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC;AA4BjD;;GAEG;AACH,eAAO,MAAM,eAAe;IAC1B;;OAEG;iCAEK,eAAe,WACZ,iBAAiB,GACzB,OAAO,CAAC;QACT,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;QAC1C,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;QACjC,kBAAkB,EAAE,MAAM,EAAE,CAAC;KAC9B,CAAC;IAsFF;;OAEG;oCAEK,eAAe,qBACF,MAAM,GACxB;QACD,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB;IA6CD;;OAEG;yCACkC,MAAM,eAAe,IAAI,GAAG;QAC/D,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,WAAW,EAAE,OAAO,CAAC;QACrB,SAAS,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;QACtC,iBAAiB,CAAC,EAAE,MAAM,CAAC;KAC5B;IA4CD;;OAEG;kCAC2B,eAAe,GAAG,MAAM,EAAE;IAsDxD;;OAEG;gCAEK,eAAe,WACZ,iBAAiB,YACjB,0BAA0B,GAClC,OAAO,CAAC;QACT,gBAAgB,EAAE,gBAAgB,GAAG,IAAI,CAAC;QAC1C,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;QACjC,kBAAkB,EAAE,MAAM,EAAE,CAAC;QAC7B,gBAAgB,EAAE;YAChB,OAAO,EAAE,OAAO,CAAC;YACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;YACnB,UAAU,CAAC,EAAE,MAAM,CAAC;SACrB,CAAC;KACH,CAAC;CA4BH,CAAC"}