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,18 @@
1
+ /**
2
+ * Task Response Formatter
3
+ * Centralizes AORP response formatting logic for task operations
4
+ */
5
+ import { type TaskResponseData, type TaskResponseMetadata, type AorpBuilderConfig } from '../../../types';
6
+ import type { AorpFactoryResult } from '../../../types';
7
+ /**
8
+ * Creates an AORP response for task operations with optimized configuration
9
+ */
10
+ export declare function createTaskResponse(operation: string, message: string, _data: TaskResponseData, _metadata?: TaskResponseMetadata, _verbosity?: string, // Explicit per-call override; falls back to VIKUNJA_RESPONSE_VERBOSITY (or 'standard') when not provided
11
+ _useOptimizedFormat?: boolean, // Parameter kept for backward compatibility but ignored
12
+ _useAorp?: boolean, // Parameter kept for backward compatibility but ignored
13
+ _aorpConfig?: AorpBuilderConfig, _sessionId?: string): AorpFactoryResult;
14
+ /**
15
+ * Creates an AORP error response for task operations
16
+ */
17
+ export declare function createTaskErrorResponse(operation: string, error: Error | Record<string, unknown>, metadata?: TaskResponseMetadata): AorpFactoryResult;
18
+ //# sourceMappingURL=TaskResponseFormatter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaskResponseFormatter.d.ts","sourceRoot":"","sources":["../../../../src/tools/tasks/crud/TaskResponseFormatter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,oBAAoB,EAAE,KAAK,iBAAiB,EAA2B,MAAM,gBAAgB,CAAC;AAGnI,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAoExD;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,gBAAgB,EACvB,SAAS,GAAE,oBAEV,EACD,UAAU,CAAC,EAAE,MAAM,EAAE,yGAAyG;AAC9H,mBAAmB,CAAC,EAAE,OAAO,EAAE,wDAAwD;AACvF,QAAQ,CAAC,EAAE,OAAO,EAAE,wDAAwD;AAC5E,WAAW,CAAC,EAAE,iBAAiB,EAC/B,UAAU,CAAC,EAAE,MAAM,GAClB,iBAAiB,CA8GnB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,QAAQ,GAAE,oBAET,GACA,iBAAiB,CAuEnB"}
@@ -0,0 +1,248 @@
1
+ "use strict";
2
+ /**
3
+ * Task Response Formatter
4
+ * Centralizes AORP response formatting logic for task operations
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.createTaskResponse = createTaskResponse;
8
+ exports.createTaskErrorResponse = createTaskErrorResponse;
9
+ const response_factory_1 = require("../../../utils/response-factory");
10
+ const base_1 = require("../../../transforms/base");
11
+ /**
12
+ * AORP configuration generator for different operations
13
+ * Creates optimized AORP configurations based on operation type
14
+ */
15
+ function generateAorpConfig(_operation, _data, _verbosity) {
16
+ // Base configuration
17
+ const baseConfig = {
18
+ confidenceMethod: 'adaptive',
19
+ // Next steps and quality indicators are always enabled
20
+ confidenceWeights: {
21
+ success: 0.4,
22
+ dataSize: 0.2,
23
+ responseTime: 0.2,
24
+ completeness: 0.2
25
+ }
26
+ };
27
+ // Operation-specific adjustments
28
+ switch (_operation) {
29
+ case 'create-task':
30
+ return {
31
+ ...baseConfig,
32
+ confidenceWeights: {
33
+ success: 0.5,
34
+ dataSize: 0.1,
35
+ responseTime: 0.2,
36
+ completeness: 0.2
37
+ }
38
+ };
39
+ case 'bulk-create-tasks':
40
+ case 'bulk-update-tasks':
41
+ case 'bulk-delete-tasks':
42
+ return {
43
+ ...baseConfig,
44
+ confidenceWeights: {
45
+ success: 0.6,
46
+ dataSize: 0.3,
47
+ responseTime: 0.1,
48
+ completeness: 0.0
49
+ }
50
+ };
51
+ case 'list-tasks':
52
+ return {
53
+ ...baseConfig,
54
+ confidenceWeights: {
55
+ success: 0.3,
56
+ dataSize: 0.4,
57
+ responseTime: 0.2,
58
+ completeness: 0.1
59
+ }
60
+ };
61
+ default:
62
+ return baseConfig;
63
+ }
64
+ }
65
+ /**
66
+ * Creates an AORP response for task operations with optimized configuration
67
+ */
68
+ function createTaskResponse(operation, message, _data, _metadata = {
69
+ timestamp: new Date().toISOString()
70
+ }, _verbosity, // Explicit per-call override; falls back to VIKUNJA_RESPONSE_VERBOSITY (or 'standard') when not provided
71
+ _useOptimizedFormat, // Parameter kept for backward compatibility but ignored
72
+ _useAorp, // Parameter kept for backward compatibility but ignored
73
+ _aorpConfig, _sessionId) {
74
+ // An explicit per-call verbosity always takes precedence over the
75
+ // VIKUNJA_RESPONSE_VERBOSITY environment default.
76
+ const effectiveVerbosity = _verbosity ?? (0, base_1.getDefaultVerbosity)();
77
+ // Use resolved AORP configuration
78
+ generateAorpConfig(operation, _data, effectiveVerbosity);
79
+ // For task operations, use specialized task AORP response
80
+ const taskData = _data.task || _data.tasks;
81
+ if (taskData) {
82
+ // Convert Task | Task[] to proper ResponseData format
83
+ const formattedTaskData = Array.isArray(taskData) ? { tasks: taskData } : taskData;
84
+ const taskResult = (0, response_factory_1.createTaskAorpResponse)(operation, message, formattedTaskData, _metadata);
85
+ // Add transformation property for compatibility
86
+ const mockOptimizedResponse = {
87
+ success: true,
88
+ operation,
89
+ message,
90
+ data: taskData,
91
+ metadata: {
92
+ timestamp: new Date().toISOString(),
93
+ }
94
+ };
95
+ return {
96
+ response: taskResult,
97
+ transformation: {
98
+ originalResponse: mockOptimizedResponse,
99
+ context: {
100
+ operation,
101
+ success: true,
102
+ dataSize: JSON.stringify(taskData).length,
103
+ processingTime: 0,
104
+ verbosity: effectiveVerbosity,
105
+ verbosityLevel: 'simple',
106
+ complexityFactors: {
107
+ dataSize: JSON.stringify(taskData).length >= 1024,
108
+ hasWarnings: false,
109
+ hasErrors: false,
110
+ isBulkOperation: false,
111
+ isPartialSuccess: false,
112
+ custom: {}
113
+ }
114
+ },
115
+ metrics: {
116
+ aorpProcessingTime: 0,
117
+ totalTime: 0
118
+ }
119
+ }
120
+ };
121
+ }
122
+ // Fallback for non-task data - convert TaskResponseData to ResponseData
123
+ const responseData = {};
124
+ // Copy task data if present
125
+ if (_data.task) {
126
+ responseData.tasks = [_data.task]; // Convert from legacy client Task to our Task interface (reminders shape drifted, cast via unknown)
127
+ }
128
+ else if (_data.tasks) {
129
+ responseData.tasks = _data.tasks; // Convert from legacy client Task[] to our Task[] interface (reminders shape drifted, cast via unknown)
130
+ }
131
+ // Copy other properties
132
+ Object.entries(_data).forEach(([key, value]) => {
133
+ if (key !== 'task' && key !== 'tasks') {
134
+ responseData[key] = value;
135
+ }
136
+ });
137
+ const fallbackResult = (0, response_factory_1.createAorpResponse)(operation, message, responseData, { success: true, metadata: _metadata });
138
+ // Add transformation property for compatibility
139
+ const mockOptimizedResponse = {
140
+ success: true,
141
+ operation,
142
+ message,
143
+ data: responseData,
144
+ metadata: {
145
+ timestamp: new Date().toISOString(),
146
+ }
147
+ };
148
+ return {
149
+ response: fallbackResult,
150
+ transformation: {
151
+ originalResponse: mockOptimizedResponse,
152
+ context: {
153
+ operation,
154
+ success: true,
155
+ dataSize: JSON.stringify(_data).length,
156
+ processingTime: 0,
157
+ verbosity: effectiveVerbosity,
158
+ verbosityLevel: 'simple',
159
+ complexityFactors: {
160
+ dataSize: JSON.stringify(_data).length >= 1024,
161
+ hasWarnings: false,
162
+ hasErrors: false,
163
+ isBulkOperation: false,
164
+ isPartialSuccess: false,
165
+ custom: {}
166
+ }
167
+ },
168
+ metrics: {
169
+ aorpProcessingTime: 0,
170
+ totalTime: 0
171
+ }
172
+ }
173
+ };
174
+ }
175
+ /**
176
+ * Creates an AORP error response for task operations
177
+ */
178
+ function createTaskErrorResponse(operation, error, metadata = {
179
+ timestamp: new Date().toISOString()
180
+ }) {
181
+ // Extract error message
182
+ const errorMessage = error instanceof Error ? error.message :
183
+ (error && typeof error === 'object' && 'message' in error && typeof error.message === 'string')
184
+ ? error.message
185
+ : 'Unknown error occurred';
186
+ const errorCode = error && typeof error === 'object' && 'code' in error && typeof error.code === 'string'
187
+ ? error.code
188
+ : 'UNKNOWN_ERROR';
189
+ // Create simple error response
190
+ const rawErrorResult = (0, response_factory_1.createAorpErrorResponse)(operation, errorMessage, errorCode, {
191
+ ...(metadata.sessionId && { sessionId: metadata.sessionId }),
192
+ timestamp: metadata.timestamp,
193
+ });
194
+ // Convert to SimpleAorpResponse format
195
+ const errorResult = {
196
+ content: rawErrorResult.content,
197
+ immediate: {
198
+ status: 'error',
199
+ key_insight: errorMessage,
200
+ confidence: 0.0
201
+ },
202
+ summary: errorMessage,
203
+ metadata: {
204
+ timestamp: rawErrorResult.metadata?.timestamp || new Date().toISOString(),
205
+ operation,
206
+ success: false,
207
+ ...(rawErrorResult.metadata || {})
208
+ }
209
+ };
210
+ // Add transformation property for compatibility
211
+ const mockOptimizedResponse = {
212
+ success: false,
213
+ operation,
214
+ message: errorMessage,
215
+ data: { error: errorMessage },
216
+ metadata: {
217
+ timestamp: new Date().toISOString(),
218
+ }
219
+ };
220
+ return {
221
+ response: errorResult,
222
+ transformation: {
223
+ originalResponse: mockOptimizedResponse,
224
+ context: {
225
+ operation,
226
+ success: false,
227
+ dataSize: errorMessage.length,
228
+ processingTime: 0,
229
+ verbosity: (0, base_1.getDefaultVerbosity)(),
230
+ verbosityLevel: 'simple',
231
+ complexityFactors: {
232
+ dataSize: errorMessage.length >= 1024,
233
+ hasWarnings: false,
234
+ hasErrors: true,
235
+ isBulkOperation: false,
236
+ isPartialSuccess: false,
237
+ custom: {}
238
+ },
239
+ error: errorMessage
240
+ },
241
+ metrics: {
242
+ aorpProcessingTime: 0,
243
+ totalTime: 0
244
+ }
245
+ }
246
+ };
247
+ }
248
+ //# sourceMappingURL=TaskResponseFormatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaskResponseFormatter.js","sourceRoot":"","sources":["../../../../src/tools/tasks/crud/TaskResponseFormatter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Task Update Service
3
+ * Handles task updates with field diffing and relationship management
4
+ */
5
+ import type { AuthManager } from '../../../auth/AuthManager';
6
+ export interface UpdateTaskArgs {
7
+ id?: number;
8
+ title?: string;
9
+ description?: string;
10
+ dueDate?: string;
11
+ startDate?: string;
12
+ endDate?: string;
13
+ priority?: number;
14
+ percentDone?: number;
15
+ done?: boolean;
16
+ /** Move the task to another project (merged into full-model update). */
17
+ projectId?: number;
18
+ labels?: number[];
19
+ assignees?: number[];
20
+ repeatAfter?: number;
21
+ repeatMode?: 'day' | 'week' | 'month' | 'year';
22
+ sessionId?: string;
23
+ }
24
+ /**
25
+ * Updates a task with comprehensive field diffing and relationship management
26
+ */
27
+ export declare function updateTask(args: UpdateTaskArgs, authManager: AuthManager): Promise<{
28
+ content: Array<{
29
+ type: 'text';
30
+ text: string;
31
+ }>;
32
+ }>;
33
+ //# sourceMappingURL=TaskUpdateService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaskUpdateService.d.ts","sourceRoot":"","sources":["../../../../src/tools/tasks/crud/TaskUpdateService.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAsB7D,MAAM,WAAW,cAAc;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IAE/C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAWD;;GAEG;AACH,wBAAsB,UAAU,CAC9B,IAAI,EAAE,cAAc,EACpB,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,CAgH7D"}
@@ -0,0 +1,294 @@
1
+ "use strict";
2
+ /**
3
+ * Task Update Service
4
+ * Handles task updates with field diffing and relationship management
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.updateTask = updateTask;
8
+ const types_1 = require("../../../types");
9
+ const vikunja_rest_1 = require("../../../utils/vikunja-rest");
10
+ const task_rest_transport_1 = require("../../../utils/task-rest-transport");
11
+ const validation_1 = require("../validation");
12
+ const auth_error_handler_1 = require("../../../utils/auth-error-handler");
13
+ const retry_1 = require("../../../utils/retry");
14
+ const label_bulk_1 = require("../../../utils/label-bulk");
15
+ const error_handler_1 = require("../../../utils/error-handler");
16
+ const http_error_detail_1 = require("../../../utils/http-error-detail");
17
+ const constants_1 = require("../constants");
18
+ const TaskResponseFormatter_1 = require("./TaskResponseFormatter");
19
+ const response_factory_1 = require("../../../utils/response-factory");
20
+ /**
21
+ * Updates a task with comprehensive field diffing and relationship management
22
+ */
23
+ async function updateTask(args, authManager) {
24
+ try {
25
+ if (!args.id) {
26
+ throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Task id is required for update operation');
27
+ }
28
+ (0, validation_1.validateId)(args.id, 'id');
29
+ // Validate dates if provided
30
+ if (args.dueDate) {
31
+ (0, validation_1.validateDateString)(args.dueDate, 'dueDate');
32
+ }
33
+ if (args.startDate) {
34
+ (0, validation_1.validateDateString)(args.startDate, 'startDate');
35
+ }
36
+ if (args.endDate) {
37
+ (0, validation_1.validateDateString)(args.endDate, 'endDate');
38
+ }
39
+ // Validate project move target if provided
40
+ if (args.projectId !== undefined) {
41
+ (0, validation_1.validateId)(args.projectId, 'projectId');
42
+ }
43
+ // Analyze current state and track changes
44
+ const updateState = await analyzeUpdateState(authManager, args.id, args);
45
+ // Build and apply the update (full-model merge — Vikunja replaces the whole task)
46
+ const updateData = buildUpdateData(updateState.currentTask, args);
47
+ await (0, vikunja_rest_1.vikunjaRestRequest)(authManager, 'POST', `/tasks/${args.id}`, updateData);
48
+ // Update labels if provided
49
+ if (args.labels !== undefined) {
50
+ await updateTaskLabels(authManager, args.id, args.labels);
51
+ }
52
+ // Update assignees if provided
53
+ if (args.assignees !== undefined) {
54
+ await updateTaskAssignees(authManager, args.id, args.assignees);
55
+ }
56
+ // Fetch the complete updated task
57
+ const completeTask = await (0, vikunja_rest_1.vikunjaRestRequest)(authManager, 'GET', `/tasks/${args.id}`);
58
+ // Verify project move actually stuck — Vikunja can report success while leaving
59
+ // the task in the old project (silent failure → data loss if the old project is deleted)
60
+ if (args.projectId !== undefined && completeTask.project_id !== args.projectId) {
61
+ throw new types_1.MCPError(types_1.ErrorCode.API_ERROR, `Failed to move task ${args.id} to project ${args.projectId}: ` +
62
+ `task remains in project ${completeTask.project_id ?? 'unknown'}. ` +
63
+ `The move was not applied by Vikunja.`);
64
+ }
65
+ const response = (0, TaskResponseFormatter_1.createTaskResponse)('update-task', 'Task updated successfully', { task: completeTask }, {
66
+ timestamp: new Date().toISOString(),
67
+ affectedFields: updateState.affectedFields,
68
+ previousState: updateState.previousState,
69
+ taskId: args.id,
70
+ }, undefined, // verbosity (ignored - using standard AORP)
71
+ undefined, // useOptimizedFormat (ignored - using standard AORP)
72
+ undefined, // useAorp (ignored - always using AORP)
73
+ undefined, // aorpConfig (using auto-generated)
74
+ args.sessionId);
75
+ return {
76
+ content: [
77
+ {
78
+ type: 'text',
79
+ text: (0, response_factory_1.formatAorpAsMarkdown)(response.response),
80
+ },
81
+ ],
82
+ };
83
+ }
84
+ catch (error) {
85
+ // A REST 404 is translated to the same friendly "not found" message the
86
+ // pre-migration legacy client error path produced via handleStatusCodeError
87
+ // (which keys off a bare `.statusCode` property, not the `.details`
88
+ // nesting vikunjaRestRequest's thrown MCPError uses). Any other
89
+ // REST-origin MCPError (label/assignee writes, the task-refresh GET —
90
+ // all now throw MCPError directly via vikunjaRestRequest, unlike the
91
+ // pre-migration legacy client) gets the conventional "Failed to update
92
+ // task: ..." wrapping restored via wrapIfRestOrigin, preserving the
93
+ // original code/details; this tool's own validation/internal MCPErrors
94
+ // (no REST statusCode) still pass through unmodified.
95
+ if (error instanceof types_1.MCPError) {
96
+ if (error.details?.statusCode === 404 && args.id) {
97
+ throw new types_1.MCPError(types_1.ErrorCode.NOT_FOUND, `Task with ID ${args.id} not found`);
98
+ }
99
+ throw (0, error_handler_1.wrapIfRestOrigin)(error, 'update task');
100
+ }
101
+ // Handle fetch/connection errors with helpful guidance
102
+ if (error instanceof Error && (error.message.includes('fetch failed') ||
103
+ error.message.includes('ECONNREFUSED') ||
104
+ error.message.includes('ENOTFOUND'))) {
105
+ throw (0, error_handler_1.handleFetchError)(error, 'update task');
106
+ }
107
+ // Use standardized error transformation for all other errors
108
+ if (args.id) {
109
+ throw (0, error_handler_1.handleStatusCodeError)(error, 'update task', args.id, `Task with ID ${args.id} not found`);
110
+ }
111
+ throw (0, error_handler_1.transformApiError)(error, 'Failed to update task');
112
+ }
113
+ }
114
+ /**
115
+ * Analyzes the current task state and determines which fields are being updated
116
+ */
117
+ async function analyzeUpdateState(authManager, taskId, args) {
118
+ // Fetch the current task to preserve all fields and track changes
119
+ const currentTask = await (0, vikunja_rest_1.vikunjaRestRequest)(authManager, 'GET', `/tasks/${taskId}`);
120
+ const previousState = {};
121
+ if (currentTask.title !== undefined)
122
+ previousState.title = currentTask.title;
123
+ if (currentTask.description !== undefined)
124
+ previousState.description = currentTask.description;
125
+ if (currentTask.due_date !== undefined)
126
+ previousState.due_date = currentTask.due_date;
127
+ if (currentTask.start_date !== undefined)
128
+ previousState.start_date = currentTask.start_date;
129
+ if (currentTask.end_date !== undefined)
130
+ previousState.end_date = currentTask.end_date;
131
+ if (currentTask.priority !== undefined)
132
+ previousState.priority = currentTask.priority;
133
+ if (currentTask.done !== undefined)
134
+ previousState.done = currentTask.done;
135
+ if (currentTask.percent_done !== undefined)
136
+ previousState.percent_done = currentTask.percent_done;
137
+ if (currentTask.project_id !== undefined)
138
+ previousState.project_id = currentTask.project_id;
139
+ if (currentTask.repeat_after !== undefined)
140
+ previousState.repeat_after = currentTask.repeat_after;
141
+ if (currentTask.repeat_mode !== undefined)
142
+ previousState.repeat_mode = currentTask.repeat_mode;
143
+ // Track which fields are being updated
144
+ const affectedFields = [];
145
+ if (args.title !== undefined && args.title !== currentTask.title)
146
+ affectedFields.push('title');
147
+ if (args.description !== undefined && args.description !== currentTask.description)
148
+ affectedFields.push('description');
149
+ if (args.dueDate !== undefined && args.dueDate !== currentTask.due_date)
150
+ affectedFields.push('dueDate');
151
+ if (args.startDate !== undefined && args.startDate !== currentTask.start_date)
152
+ affectedFields.push('start_date');
153
+ if (args.endDate !== undefined && args.endDate !== currentTask.end_date)
154
+ affectedFields.push('end_date');
155
+ if (args.priority !== undefined && args.priority !== currentTask.priority)
156
+ affectedFields.push('priority');
157
+ if (args.percentDone !== undefined && args.percentDone !== currentTask.percent_done)
158
+ affectedFields.push('percentDone');
159
+ if (args.done !== undefined && args.done !== currentTask.done)
160
+ affectedFields.push('done');
161
+ if (args.projectId !== undefined && args.projectId !== currentTask.project_id)
162
+ affectedFields.push('projectId');
163
+ if (args.repeatAfter !== undefined && args.repeatAfter !== currentTask.repeat_after)
164
+ affectedFields.push('repeatAfter');
165
+ // args.repeatMode is the user-facing string enum ('day'|'week'|...);
166
+ // currentTask.repeat_mode is the API's numeric enum (0|1|2) — these were
167
+ // never the same representation even before this migration (the legacy client's
168
+ // type incorrectly claimed both were the string enum), so this comparison
169
+ // is always true when repeatMode is supplied. Cast preserves that existing
170
+ // runtime behavior while satisfying the now-correctly-typed comparison.
171
+ if (args.repeatMode !== undefined && args.repeatMode !== currentTask.repeat_mode)
172
+ affectedFields.push('repeatMode');
173
+ if (args.labels !== undefined)
174
+ affectedFields.push('labels');
175
+ if (args.assignees !== undefined)
176
+ affectedFields.push('assignees');
177
+ return {
178
+ currentTask,
179
+ previousState,
180
+ affectedFields
181
+ };
182
+ }
183
+ /**
184
+ * Builds the update data object by merging current task data with updates
185
+ * This prevents the API from clearing fields that aren't explicitly updated
186
+ */
187
+ function buildUpdateData(currentTask, args) {
188
+ const updateData = {
189
+ ...currentTask,
190
+ // Override with any provided updates
191
+ ...(args.title !== undefined && { title: args.title }),
192
+ ...(args.description !== undefined && { description: args.description }),
193
+ ...(args.dueDate !== undefined && { due_date: args.dueDate }),
194
+ ...(args.startDate !== undefined && { start_date: args.startDate }),
195
+ ...(args.endDate !== undefined && { end_date: args.endDate }),
196
+ ...(args.priority !== undefined && { priority: args.priority }),
197
+ ...(args.percentDone !== undefined && { percent_done: args.percentDone }),
198
+ ...(args.done !== undefined && { done: args.done }),
199
+ // Move between projects — must be part of the full-model payload or Vikunja ignores it
200
+ ...(args.projectId !== undefined && { project_id: args.projectId }),
201
+ // Handle repeat configuration for updates. The generated
202
+ // `models.Task.repeat_mode` type (0 | 1 | 2) matches the real API, so no
203
+ // bypass cast is needed here (unlike the legacy client's incorrect string enum).
204
+ ...(args.repeatAfter !== undefined || args.repeatMode !== undefined
205
+ ? (() => {
206
+ const repeatConfig = (0, validation_1.convertRepeatConfiguration)(args.repeatAfter !== undefined ? args.repeatAfter : currentTask.repeat_after, args.repeatMode !== undefined ? args.repeatMode : undefined);
207
+ const updates = {};
208
+ if (repeatConfig.repeat_after !== undefined)
209
+ updates.repeat_after = repeatConfig.repeat_after;
210
+ if (repeatConfig.repeat_mode !== undefined)
211
+ updates.repeat_mode = repeatConfig.repeat_mode;
212
+ return updates;
213
+ })()
214
+ : {}),
215
+ };
216
+ return updateData;
217
+ }
218
+ /**
219
+ * Updates task labels with authentication error handling.
220
+ *
221
+ * The catch surfaces the HTTP status + body of the underlying Vikunja error
222
+ * in both branches. Previously the catch replaced any 403/422 from
223
+ * `POST /tasks/{id}/labels/bulk` with the generic LABEL_UPDATE "known
224
+ * limitation" message, which hid the real cause (e.g. a permission failure
225
+ * vs an invalid label id) from the MCP client and made the diagnostic
226
+ * round-trip much longer for the consumer.
227
+ */
228
+ async function updateTaskLabels(authManager, taskId, labelIds) {
229
+ try {
230
+ await (0, label_bulk_1.setTaskLabels)(authManager, taskId, labelIds);
231
+ }
232
+ catch (labelError) {
233
+ const detail = (0, http_error_detail_1.extractHttpErrorDetail)(labelError);
234
+ if ((0, auth_error_handler_1.isAuthenticationError)(labelError)) {
235
+ throw new types_1.MCPError(types_1.ErrorCode.API_ERROR, detail
236
+ ? `${constants_1.AUTH_ERROR_MESSAGES.LABEL_UPDATE} ${detail}`
237
+ : constants_1.AUTH_ERROR_MESSAGES.LABEL_UPDATE);
238
+ }
239
+ if (detail) {
240
+ throw new types_1.MCPError(types_1.ErrorCode.API_ERROR, `Failed to update task labels ${detail}`);
241
+ }
242
+ throw labelError;
243
+ }
244
+ }
245
+ /**
246
+ * Updates task assignees with diff calculation and authentication error
247
+ * handling, via the direct-REST assignee endpoints.
248
+ */
249
+ async function updateTaskAssignees(authManager, taskId, newAssigneeIds) {
250
+ try {
251
+ // Get current assignees to calculate diff
252
+ const currentTask = await (0, task_rest_transport_1.getTaskViaRest)(authManager, taskId);
253
+ const currentAssigneeIds = (currentTask.assignees ?? [])
254
+ .map((a) => a.id)
255
+ .filter((id) => typeof id === 'number');
256
+ // Calculate which assignees to add and remove
257
+ const toAdd = newAssigneeIds.filter((id) => !currentAssigneeIds.includes(id));
258
+ const toRemove = currentAssigneeIds.filter((id) => !newAssigneeIds.includes(id));
259
+ // Add new assignees first to avoid leaving task unassigned if removal fails.
260
+ // Use the ADDITIVE single-assign endpoint per user (PUT
261
+ // /tasks/{taskID}/assignees, body { user_id }, models.TaskAssginee) rather
262
+ // than the bulk endpoint (POST .../assignees/bulk), which REPLACES the
263
+ // whole list and would silently unassign everyone
264
+ // (democratize-technology/vikunja-mcp#15).
265
+ // Sequential on purpose (post-#89 pattern sweep, mirrors the per-user
266
+ // removal loop directly below): concurrent per-user writes to the same
267
+ // task risk "database is locked" 500s on SQLite-backed instances.
268
+ for (const userId of toAdd) {
269
+ await (0, vikunja_rest_1.vikunjaRestRequest)(authManager, 'PUT', `/tasks/${taskId}/assignees`, { user_id: userId });
270
+ }
271
+ // Remove old assignees only after new ones are successfully added. DELETE
272
+ // /tasks/{taskID}/assignees/{userID} per the OpenAPI spec — no body.
273
+ for (const userId of toRemove) {
274
+ try {
275
+ await (0, vikunja_rest_1.vikunjaRestRequest)(authManager, 'DELETE', `/tasks/${taskId}/assignees/${userId}`);
276
+ }
277
+ catch (removeError) {
278
+ // Check if it's an auth error on remove
279
+ if ((0, auth_error_handler_1.isAuthenticationError)(removeError)) {
280
+ throw new types_1.MCPError(types_1.ErrorCode.API_ERROR, constants_1.AUTH_ERROR_MESSAGES.ASSIGNEE_REMOVE_PARTIAL);
281
+ }
282
+ throw removeError;
283
+ }
284
+ }
285
+ }
286
+ catch (assigneeError) {
287
+ // Check if it's an auth error after retries
288
+ if ((0, auth_error_handler_1.isAuthenticationError)(assigneeError)) {
289
+ throw new types_1.MCPError(types_1.ErrorCode.API_ERROR, `${constants_1.AUTH_ERROR_MESSAGES.ASSIGNEE_UPDATE} (Retried ${retry_1.RETRY_CONFIG.AUTH_ERRORS.maxRetries} times)`);
290
+ }
291
+ throw assigneeError;
292
+ }
293
+ }
294
+ //# sourceMappingURL=TaskUpdateService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TaskUpdateService.js","sourceRoot":"","sources":["../../../../src/tools/tasks/crud/TaskUpdateService.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAyDH,gCAmHC;AA1KD,0CAAqD;AAErD,8DAAiE;AACjE,4EAAoE;AACpE,8CAA2F;AAC3F,0EAA0E;AAC1E,gDAAoD;AACpD,0DAA0D;AAC1D,gEAKsC;AACtC,wEAA0E;AAC1E,4CAAmD;AACnD,mEAA6D;AAC7D,sEAAuE;AAmCvE;;GAEG;AACI,KAAK,UAAU,UAAU,CAC9B,IAAoB,EACpB,WAAwB;IAExB,IAAI,CAAC;QACH,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,0CAA0C,CAAC,CAAC;QAC7F,CAAC;QACD,IAAA,uBAAU,EAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAE1B,6BAA6B;QAC7B,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAA,+BAAkB,EAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC9C,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAA,+BAAkB,EAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAA,+BAAkB,EAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QAC9C,CAAC;QAED,2CAA2C;QAC3C,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACjC,IAAA,uBAAU,EAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAC1C,CAAC;QAED,0CAA0C;QAC1C,MAAM,WAAW,GAAG,MAAM,kBAAkB,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAEzE,kFAAkF;QAClF,MAAM,UAAU,GAAG,eAAe,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAClE,MAAM,IAAA,iCAAkB,EAAc,WAAW,EAAE,MAAM,EAAE,UAAU,IAAI,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,CAAC;QAE5F,4BAA4B;QAC5B,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5D,CAAC;QAED,+BAA+B;QAC/B,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAClE,CAAC;QAED,kCAAkC;QAClC,MAAM,YAAY,GAAG,MAAM,IAAA,iCAAkB,EAAc,WAAW,EAAE,KAAK,EAAE,UAAU,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAEpG,gFAAgF;QAChF,yFAAyF;QACzF,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,YAAY,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;YAC/E,MAAM,IAAI,gBAAQ,CAChB,iBAAS,CAAC,SAAS,EACnB,uBAAuB,IAAI,CAAC,EAAE,eAAe,IAAI,CAAC,SAAS,IAAI;gBAC7D,2BAA2B,YAAY,CAAC,UAAU,IAAI,SAAS,IAAI;gBACnE,sCAAsC,CACzC,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,IAAA,0CAAkB,EACjC,aAAa,EACb,2BAA2B,EAC3B,EAAE,IAAI,EAAE,YAAY,EAAyD,EAC7E;YACE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,cAAc,EAAE,WAAW,CAAC,cAAc;YAC1C,aAAa,EAAE,WAAW,CAAC,aAAa;YACxC,MAAM,EAAE,IAAI,CAAC,EAAE;SACuC,EACxD,SAAS,EAAE,4CAA4C;QACvD,SAAS,EAAE,qDAAqD;QAChE,SAAS,EAAE,wCAAwC;QACnD,SAAS,EAAE,oCAAoC;QAC/C,IAAI,CAAC,SAAS,CACf,CAAC;QAEF,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAA,uCAAoB,EAAC,QAAQ,CAAC,QAAQ,CAAC;iBAC9C;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,wEAAwE;QACxE,4EAA4E;QAC5E,oEAAoE;QACpE,gEAAgE;QAChE,sEAAsE;QACtE,qEAAqE;QACrE,uEAAuE;QACvE,oEAAoE;QACpE,uEAAuE;QACvE,sDAAsD;QACtD,IAAI,KAAK,YAAY,gBAAQ,EAAE,CAAC;YAC9B,IAAI,KAAK,CAAC,OAAO,EAAE,UAAU,KAAK,GAAG,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;gBACjD,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,SAAS,EAAE,gBAAgB,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC;YAC/E,CAAC;YACD,MAAM,IAAA,gCAAgB,EAAC,KAAK,EAAE,aAAa,CAAC,CAAC;QAC/C,CAAC;QAED,uDAAuD;QACvD,IAAI,KAAK,YAAY,KAAK,IAAI,CAC5B,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;YACtC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;YACtC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CACpC,EAAE,CAAC;YACF,MAAM,IAAA,gCAAgB,EAAC,KAAK,EAAE,aAAa,CAAC,CAAC;QAC/C,CAAC;QAED,6DAA6D;QAC7D,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAA,qCAAqB,EAAC,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,EAAE,EAAE,gBAAgB,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC;QAClG,CAAC;QACD,MAAM,IAAA,iCAAiB,EAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,kBAAkB,CAC/B,WAAwB,EACxB,MAAc,EACd,IAAoB;IAEpB,kEAAkE;IAClE,MAAM,WAAW,GAAG,MAAM,IAAA,iCAAkB,EAAc,WAAW,EAAE,KAAK,EAAE,UAAU,MAAM,EAAE,CAAC,CAAC;IAClG,MAAM,aAAa,GAA4B,EAAE,CAAC;IAClD,IAAI,WAAW,CAAC,KAAK,KAAK,SAAS;QAAE,aAAa,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;IAC7E,IAAI,WAAW,CAAC,WAAW,KAAK,SAAS;QAAE,aAAa,CAAC,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC;IAC/F,IAAI,WAAW,CAAC,QAAQ,KAAK,SAAS;QAAE,aAAa,CAAC,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;IACtF,IAAI,WAAW,CAAC,UAAU,KAAK,SAAS;QAAE,aAAa,CAAC,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC;IAC5F,IAAI,WAAW,CAAC,QAAQ,KAAK,SAAS;QAAE,aAAa,CAAC,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;IACtF,IAAI,WAAW,CAAC,QAAQ,KAAK,SAAS;QAAE,aAAa,CAAC,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;IACtF,IAAI,WAAW,CAAC,IAAI,KAAK,SAAS;QAAE,aAAa,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;IAC1E,IAAI,WAAW,CAAC,YAAY,KAAK,SAAS;QAAE,aAAa,CAAC,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC;IAClG,IAAI,WAAW,CAAC,UAAU,KAAK,SAAS;QAAE,aAAa,CAAC,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC;IAC5F,IAAI,WAAW,CAAC,YAAY,KAAK,SAAS;QAAE,aAAa,CAAC,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC;IAClG,IAAI,WAAW,CAAC,WAAW,KAAK,SAAS;QAAE,aAAa,CAAC,WAAW,GAAG,WAAW,CAAC,WAAW,CAAC;IAE/F,uCAAuC;IACvC,MAAM,cAAc,GAAa,EAAE,CAAC;IAEpC,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,WAAW,CAAC,KAAK;QAAE,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/F,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC,WAAW;QAAE,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACvH,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,WAAW,CAAC,QAAQ;QAAE,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxG,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,WAAW,CAAC,UAAU;QAAE,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACjH,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,WAAW,CAAC,QAAQ;QAAE,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACzG,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,QAAQ,KAAK,WAAW,CAAC,QAAQ;QAAE,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC3G,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC,YAAY;QAAE,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACxH,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI;QAAE,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3F,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,WAAW,CAAC,UAAU;QAAE,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAChH,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,WAAW,KAAK,WAAW,CAAC,YAAY;QAAE,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACxH,qEAAqE;IACrE,yEAAyE;IACzE,gFAAgF;IAChF,0EAA0E;IAC1E,2EAA2E;IAC3E,wEAAwE;IACxE,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS,IAAK,IAAI,CAAC,UAAsB,KAAK,WAAW,CAAC,WAAW;QAAE,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACjI,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;QAAE,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7D,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS;QAAE,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAEnE,OAAO;QACL,WAAW;QACX,aAAa;QACb,cAAc;KACf,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,WAAwB,EAAE,IAAoB;IACrE,MAAM,UAAU,GAAgB;QAC9B,GAAG,WAAW;QACd,qCAAqC;QACrC,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QACtD,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QACxE,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QAC7D,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;QACnE,GAAG,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;QAC7D,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC/D,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QACzE,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QACnD,uFAAuF;QACvF,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC;QACnE,yDAAyD;QACzD,yEAAyE;QACzE,iFAAiF;QACjF,GAAG,CAAC,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;YACjE,CAAC,CAAC,CAAC,GAAyB,EAAE;gBAC1B,MAAM,YAAY,GAAG,IAAA,uCAA0B,EAC7C,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,EAC5E,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAC5D,CAAC;gBACF,MAAM,OAAO,GAAyB,EAAE,CAAC;gBACzC,IAAI,YAAY,CAAC,YAAY,KAAK,SAAS;oBACzC,OAAO,CAAC,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC;gBACnD,IAAI,YAAY,CAAC,WAAW,KAAK,SAAS;oBACxC,OAAO,CAAC,WAAW,GAAG,YAAY,CAAC,WAAwB,CAAC;gBAC9D,OAAO,OAAO,CAAC;YACjB,CAAC,CAAC,EAAE;YACN,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;IAEF,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;;;;;GASG;AACH,KAAK,UAAU,gBAAgB,CAAC,WAAwB,EAAE,MAAc,EAAE,QAAkB;IAC1F,IAAI,CAAC;QACH,MAAM,IAAA,0BAAa,EAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,UAAU,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,IAAA,0CAAsB,EAAC,UAAU,CAAC,CAAC;QAClD,IAAI,IAAA,0CAAqB,EAAC,UAAU,CAAC,EAAE,CAAC;YACtC,MAAM,IAAI,gBAAQ,CAChB,iBAAS,CAAC,SAAS,EACnB,MAAM;gBACJ,CAAC,CAAC,GAAG,+BAAmB,CAAC,YAAY,IAAI,MAAM,EAAE;gBACjD,CAAC,CAAC,+BAAmB,CAAC,YAAY,CACrC,CAAC;QACJ,CAAC;QACD,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,IAAI,gBAAQ,CAChB,iBAAS,CAAC,SAAS,EACnB,gCAAgC,MAAM,EAAE,CACzC,CAAC;QACJ,CAAC;QACD,MAAM,UAAU,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,mBAAmB,CAAC,WAAwB,EAAE,MAAc,EAAE,cAAwB;IACnG,IAAI,CAAC;QACH,0CAA0C;QAC1C,MAAM,WAAW,GAAG,MAAM,IAAA,oCAAc,EAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAC9D,MAAM,kBAAkB,GAAG,CAAC,WAAW,CAAC,SAAS,IAAI,EAAE,CAAC;aACrD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAChB,MAAM,CAAC,CAAC,EAAE,EAAgB,EAAE,CAAC,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC;QAExD,8CAA8C;QAC9C,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,EAAU,EAAE,EAAE,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QACtF,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,EAAU,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;QAEzF,6EAA6E;QAC7E,wDAAwD;QACxD,2EAA2E;QAC3E,uEAAuE;QACvE,kDAAkD;QAClD,2CAA2C;QAC3C,sEAAsE;QACtE,uEAAuE;QACvE,kEAAkE;QAClE,KAAK,MAAM,MAAM,IAAI,KAAK,EAAE,CAAC;YAC3B,MAAM,IAAA,iCAAkB,EAAC,WAAW,EAAE,KAAK,EAAE,UAAU,MAAM,YAAY,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAClG,CAAC;QAED,0EAA0E;QAC1E,qEAAqE;QACrE,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACH,MAAM,IAAA,iCAAkB,EAAC,WAAW,EAAE,QAAQ,EAAE,UAAU,MAAM,cAAc,MAAM,EAAE,CAAC,CAAC;YAC1F,CAAC;YAAC,OAAO,WAAW,EAAE,CAAC;gBACrB,wCAAwC;gBACxC,IAAI,IAAA,0CAAqB,EAAC,WAAW,CAAC,EAAE,CAAC;oBACvC,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,SAAS,EAAE,+BAAmB,CAAC,uBAAuB,CAAC,CAAC;gBACvF,CAAC;gBACD,MAAM,WAAW,CAAC;YACpB,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,aAAa,EAAE,CAAC;QACvB,4CAA4C;QAC5C,IAAI,IAAA,0CAAqB,EAAC,aAAa,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,gBAAQ,CAChB,iBAAS,CAAC,SAAS,EACnB,GAAG,+BAAmB,CAAC,eAAe,aAAa,oBAAY,CAAC,WAAW,CAAC,UAAU,SAAS,CAChG,CAAC;QACJ,CAAC;QACD,MAAM,aAAa,CAAC;IACtB,CAAC;AACH,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * CRUD Operations for Tasks
3
+ * Centralized exports for all task CRUD operations with clean modular architecture
4
+ */
5
+ export { createTask } from './TaskCreationService';
6
+ export { updateTask } from './TaskUpdateService';
7
+ export { deleteTask } from './TaskDeletionService';
8
+ export { getTask } from './TaskReadService';
9
+ export { createTaskResponse } from './TaskResponseFormatter';
10
+ export type { CreateTaskArgs } from './TaskCreationService';
11
+ export type { UpdateTaskArgs } from './TaskUpdateService';
12
+ export type { DeleteTaskArgs } from './TaskDeletionService';
13
+ export type { GetTaskArgs } from './TaskReadService';
14
+ import type { components } from '../../../types/generated/vikunja-openapi';
15
+ export type Task = components['schemas']['models.Task'];
16
+ export type { AorpBuilderConfig, } from '../../../utils/response-factory';
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/tools/tasks/crud/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAG5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAKrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAC;AAC3E,MAAM,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,aAAa,CAAC,CAAC;AAExD,YAAY,EACV,iBAAiB,GAClB,MAAM,iCAAiC,CAAC"}