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,53 @@
1
+ "use strict";
2
+ /**
3
+ * Shared permission-level resolution for project sharing operations.
4
+ *
5
+ * The Vikunja API encodes project permission levels as a small integer
6
+ * (0 = Read, 1 = Write, 2 = Admin) — `models.Permission` in the vendored
7
+ * OpenAPI spec — on every sharing-related endpoint: link shares
8
+ * (`models.LinkSharing.permission`), direct user shares
9
+ * (`models.ProjectUser.permission`), and direct team shares
10
+ * (`models.TeamProject.permission`). MCP tool callers may supply either the
11
+ * numeric value directly or one of the friendly string aliases (`'read'` /
12
+ * `'write'` / `'admin'`); this resolves either form to the numeric value the
13
+ * API expects, with one shared set of validation rules used everywhere a
14
+ * sharing permission is accepted — link shares, direct user shares, and
15
+ * direct team shares alike.
16
+ */
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.resolvePermission = resolvePermission;
19
+ const types_1 = require("../../types");
20
+ const PERMISSION_NAME_TO_VALUE = {
21
+ read: 0,
22
+ write: 1,
23
+ admin: 2,
24
+ };
25
+ /**
26
+ * Resolves a caller-supplied permission (string alias or numeric value) to
27
+ * the numeric `models.Permission` value the Vikunja API expects.
28
+ *
29
+ * @throws MCPError (VALIDATION_ERROR) when `right` is missing, an
30
+ * unrecognized string, an out-of-range number, or neither a string
31
+ * nor a number.
32
+ */
33
+ function resolvePermission(right) {
34
+ if (right === undefined) {
35
+ throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Share right is required');
36
+ }
37
+ if (typeof right === 'string') {
38
+ const normalized = right.trim().toLowerCase();
39
+ const resolved = PERMISSION_NAME_TO_VALUE[normalized];
40
+ if (resolved === undefined) {
41
+ throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Share right must be one of: read, write, admin');
42
+ }
43
+ return resolved;
44
+ }
45
+ if (typeof right === 'number') {
46
+ if (right !== 0 && right !== 1 && right !== 2) {
47
+ throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Invalid permission level. Use: 0=Read, 1=Write, 2=Admin');
48
+ }
49
+ return right;
50
+ }
51
+ throw new types_1.MCPError(types_1.ErrorCode.VALIDATION_ERROR, 'Share right must be a string or number');
52
+ }
53
+ //# sourceMappingURL=permission.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permission.js","sourceRoot":"","sources":["../../../src/tools/projects/permission.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;AAoBH,8CA4BC;AA9CD,uCAAkD;AAIlD,MAAM,wBAAwB,GAA8B;IAC1D,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;CACT,CAAC;AAEF;;;;;;;GAOG;AACH,SAAgB,iBAAiB,CAAC,KAAkC;IAClE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,yBAAyB,CAAC,CAAC;IAC5E,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC9C,MAAM,QAAQ,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAC;QACtD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,gBAAQ,CAChB,iBAAS,CAAC,gBAAgB,EAC1B,gDAAgD,CACjD,CAAC;QACJ,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,gBAAQ,CAChB,iBAAS,CAAC,gBAAgB,EAC1B,yDAAyD,CAC1D,CAAC;QACJ,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,IAAI,gBAAQ,CAAC,iBAAS,CAAC,gBAAgB,EAAE,wCAAwC,CAAC,CAAC;AAC3F,CAAC"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Project Response Formatter Module
3
+ * Handles AORP response creation and formatting for project operations
4
+ */
5
+ import type { ResponseMetadata } from '../../types/responses';
6
+ import type { AorpFactoryResult } from '../../types';
7
+ import type { components } from '../../types/generated/vikunja-openapi';
8
+ type Project = components['schemas']['models.Project'];
9
+ /**
10
+ * Creates an AORP response for project operations
11
+ */
12
+ export declare function createProjectResponse(operation: string, message: string, _data: unknown, _metadata?: Partial<ResponseMetadata>, _verbosity?: string, _useOptimizedFormat?: boolean, _useAorp?: boolean): AorpFactoryResult;
13
+ /**
14
+ * Creates a success response for project operations
15
+ */
16
+ export declare function createProjectSuccessResponse(operation: string, data: unknown, options?: {
17
+ message?: string;
18
+ verbosity?: string;
19
+ useOptimizedFormat?: boolean;
20
+ useAorp?: boolean;
21
+ metadata?: Partial<ResponseMetadata>;
22
+ }): AorpFactoryResult;
23
+ /**
24
+ * Creates a project list response with pagination metadata
25
+ *
26
+ * GET /projects returns a bare array with no total-count metadata in the
27
+ * response body (the server does not report total items or total pages),
28
+ * so this cannot honestly claim to know `totalPages`/`totalItems`. Instead
29
+ * `hasMore` is derived from whether a full page was returned: if fewer than
30
+ * `perPage` items came back, this is the last page.
31
+ */
32
+ export declare function createProjectListResponse(projects: unknown[], currentPage: number, perPage: number, options?: {
33
+ verbosity?: string;
34
+ useOptimizedFormat?: boolean;
35
+ useAorp?: boolean;
36
+ }): AorpFactoryResult;
37
+ /**
38
+ * Creates a project tree response with hierarchy metadata
39
+ */
40
+ export declare function createProjectTreeResponse(treeData: unknown, depth: number, totalNodes: number, options?: {
41
+ verbosity?: string;
42
+ useOptimizedFormat?: boolean;
43
+ useAorp?: boolean;
44
+ }): AorpFactoryResult;
45
+ /**
46
+ * Creates a breadcrumb response for project hierarchy navigation
47
+ */
48
+ export declare function createBreadcrumbResponse(breadcrumb: Project[], options?: {
49
+ verbosity?: string;
50
+ useOptimizedFormat?: boolean;
51
+ useAorp?: boolean;
52
+ }): AorpFactoryResult;
53
+ export {};
54
+ //# sourceMappingURL=response-formatter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-formatter.d.ts","sourceRoot":"","sources":["../../../src/tools/projects/response-formatter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,KAAK,EAAE,iBAAiB,EAAsB,MAAM,aAAa,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AAKxE,KAAK,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,gBAAgB,CAAC,CAAC;AAUvD;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,OAAO,EACd,SAAS,GAAE,OAAO,CAAC,gBAAgB,CAAM,EACzC,UAAU,CAAC,EAAE,MAAM,EACnB,mBAAmB,CAAC,EAAE,OAAO,EAC7B,QAAQ,CAAC,EAAE,OAAO,GACjB,iBAAiB,CAqDnB;AAED;;GAEG;AACH,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,OAAO,EACb,OAAO,GAAE;IACP,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACjC,GACL,iBAAiB,CAkBnB;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,OAAO,EAAE,EACnB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;IACP,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;CACd,GACL,iBAAiB,CAwBnB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,OAAO,EACjB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE;IACP,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;CACd,GACL,iBAAiB,CAoBnB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,OAAO,EAAE,EACrB,OAAO,GAAE;IACP,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;CACd,GACL,iBAAiB,CAmBnB"}
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+ /**
3
+ * Project Response Formatter Module
4
+ * Handles AORP response creation and formatting for project operations
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.createProjectResponse = createProjectResponse;
8
+ exports.createProjectSuccessResponse = createProjectSuccessResponse;
9
+ exports.createProjectListResponse = createProjectListResponse;
10
+ exports.createProjectTreeResponse = createProjectTreeResponse;
11
+ exports.createBreadcrumbResponse = createBreadcrumbResponse;
12
+ const response_factory_1 = require("../../utils/response-factory");
13
+ const base_1 = require("../../transforms/base");
14
+ /**
15
+ * Creates an AORP response for project operations
16
+ */
17
+ function createProjectResponse(operation, message, _data, _metadata = {}, _verbosity, _useOptimizedFormat, _useAorp) {
18
+ // An explicit per-call verbosity always takes precedence over the
19
+ // VIKUNJA_RESPONSE_VERBOSITY environment default.
20
+ const selectedVerbosity = _verbosity ?? (0, base_1.getDefaultVerbosity)();
21
+ // Cast data to ResponseData for type compatibility
22
+ const responseData = _data;
23
+ // Use simple response format
24
+ const simpleAorpResult = (0, response_factory_1.createAorpResponse)(operation, message, responseData, {
25
+ success: true,
26
+ metadata: {
27
+ verbosity: selectedVerbosity,
28
+ },
29
+ });
30
+ // Add transformation property for compatibility with AorpFactoryResult
31
+ const mockOptimizedResponse = {
32
+ success: true,
33
+ operation,
34
+ message,
35
+ data: responseData,
36
+ metadata: {
37
+ timestamp: new Date().toISOString(),
38
+ }
39
+ };
40
+ return {
41
+ response: simpleAorpResult,
42
+ transformation: {
43
+ originalResponse: mockOptimizedResponse,
44
+ context: {
45
+ operation,
46
+ success: true,
47
+ dataSize: JSON.stringify(responseData).length,
48
+ processingTime: 0,
49
+ verbosity: selectedVerbosity,
50
+ verbosityLevel: 'simple',
51
+ complexityFactors: {
52
+ dataSize: JSON.stringify(responseData).length >= 1024,
53
+ hasWarnings: false,
54
+ hasErrors: false,
55
+ isBulkOperation: false,
56
+ isPartialSuccess: false,
57
+ custom: {}
58
+ }
59
+ },
60
+ metrics: {
61
+ aorpProcessingTime: 0,
62
+ totalTime: 0
63
+ }
64
+ }
65
+ };
66
+ }
67
+ /**
68
+ * Creates a success response for project operations
69
+ */
70
+ function createProjectSuccessResponse(operation, data, options = {}) {
71
+ const { message = `${operation} operation completed successfully`, verbosity, useOptimizedFormat, useAorp, metadata = {} } = options;
72
+ return createProjectResponse(operation, message, data, metadata, verbosity, useOptimizedFormat, useAorp);
73
+ }
74
+ /**
75
+ * Creates a project list response with pagination metadata
76
+ *
77
+ * GET /projects returns a bare array with no total-count metadata in the
78
+ * response body (the server does not report total items or total pages),
79
+ * so this cannot honestly claim to know `totalPages`/`totalItems`. Instead
80
+ * `hasMore` is derived from whether a full page was returned: if fewer than
81
+ * `perPage` items came back, this is the last page.
82
+ */
83
+ function createProjectListResponse(projects, currentPage, perPage, options = {}) {
84
+ const hasMore = perPage > 0 && projects.length >= perPage;
85
+ const metadata = {
86
+ pagination: {
87
+ page: currentPage,
88
+ perPage,
89
+ hasMore,
90
+ nextPage: hasMore ? currentPage + 1 : undefined,
91
+ prevPage: currentPage > 1 ? currentPage - 1 : undefined,
92
+ },
93
+ };
94
+ const projectWord = projects.length === 1 ? 'project' : 'projects';
95
+ const message = `Retrieved ${projects.length} ${projectWord}`;
96
+ return createProjectSuccessResponse('list_projects', projects, {
97
+ message,
98
+ ...options,
99
+ metadata
100
+ });
101
+ }
102
+ /**
103
+ * Creates a project tree response with hierarchy metadata
104
+ */
105
+ function createProjectTreeResponse(treeData, depth, totalNodes, options = {}) {
106
+ const metadata = {
107
+ hierarchy: {
108
+ depth,
109
+ totalNodes,
110
+ maxDepth: 10, // From MAX_PROJECT_DEPTH
111
+ },
112
+ totalProjects: totalNodes,
113
+ };
114
+ const tree = treeData;
115
+ return createProjectSuccessResponse('get-project-tree', { tree: tree.length === 1 ? tree[0] : tree }, {
116
+ message: `Retrieved project tree with ${totalNodes} nodes at depth ${depth}`,
117
+ ...options,
118
+ metadata
119
+ });
120
+ }
121
+ /**
122
+ * Creates a breadcrumb response for project hierarchy navigation
123
+ */
124
+ function createBreadcrumbResponse(breadcrumb, options = {}) {
125
+ const metadata = {
126
+ navigation: {
127
+ breadcrumbLength: breadcrumb.length,
128
+ hasPath: breadcrumb.length > 0,
129
+ },
130
+ path: breadcrumb.map((p) => p.title).join(' > ') || 'Root',
131
+ depth: breadcrumb.length,
132
+ };
133
+ return createProjectSuccessResponse('get-project-breadcrumb', { breadcrumb }, {
134
+ message: `Retrieved breadcrumb path with ${breadcrumb.length} items`,
135
+ ...options,
136
+ metadata
137
+ });
138
+ }
139
+ //# sourceMappingURL=response-formatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-formatter.js","sourceRoot":"","sources":["../../../src/tools/projects/response-formatter.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAyBH,sDA6DC;AAKD,oEA4BC;AAWD,8DAiCC;AAKD,8DA6BC;AAKD,4DA0BC;AAlOD,mEAAkE;AAClE,gDAA4D;AAmB5D;;GAEG;AACH,SAAgB,qBAAqB,CACnC,SAAiB,EACjB,OAAe,EACf,KAAc,EACd,YAAuC,EAAE,EACzC,UAAmB,EACnB,mBAA6B,EAC7B,QAAkB;IAElB,kEAAkE;IAClE,kDAAkD;IAClD,MAAM,iBAAiB,GAAG,UAAU,IAAI,IAAA,0BAAmB,GAAE,CAAC;IAE9D,mDAAmD;IACnD,MAAM,YAAY,GAAG,KAAqB,CAAC;IAE3C,6BAA6B;IAC7B,MAAM,gBAAgB,GAAG,IAAA,qCAAkB,EAAC,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE;QAC5E,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE;YACR,SAAS,EAAE,iBAAiB;SAC7B;KACF,CAAC,CAAC;IAEH,uEAAuE;IACvE,MAAM,qBAAqB,GAAG;QAC5B,OAAO,EAAE,IAAI;QACb,SAAS;QACT,OAAO;QACP,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE;YACR,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC;KACF,CAAC;IAEF,OAAO;QACL,QAAQ,EAAE,gBAAgB;QAC1B,cAAc,EAAE;YACd,gBAAgB,EAAE,qBAAqB;YACvC,OAAO,EAAE;gBACP,SAAS;gBACT,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,MAAM;gBAC7C,cAAc,EAAE,CAAC;gBACjB,SAAS,EAAE,iBAAiB;gBAC5B,cAAc,EAAE,QAA8B;gBAC9C,iBAAiB,EAAE;oBACnB,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,MAAM,IAAI,IAAI;oBACrD,WAAW,EAAE,KAAK;oBAClB,SAAS,EAAE,KAAK;oBAChB,eAAe,EAAE,KAAK;oBACtB,gBAAgB,EAAE,KAAK;oBACvB,MAAM,EAAE,EAAE;iBACX;aACA;YACD,OAAO,EAAE;gBACP,kBAAkB,EAAE,CAAC;gBACrB,SAAS,EAAE,CAAC;aACb;SACF;KACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,4BAA4B,CAC1C,SAAiB,EACjB,IAAa,EACb,UAMI,EAAE;IAEN,MAAM,EACJ,OAAO,GAAG,GAAG,SAAS,mCAAmC,EACzD,SAAS,EACT,kBAAkB,EAClB,OAAO,EACP,QAAQ,GAAG,EAAE,EACd,GAAG,OAAO,CAAC;IAEZ,OAAO,qBAAqB,CAC1B,SAAS,EACT,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,SAAS,EACT,kBAAkB,EAClB,OAAO,CACR,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,yBAAyB,CACvC,QAAmB,EACnB,WAAmB,EACnB,OAAe,EACf,UAII,EAAE;IAEN,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,IAAI,OAAO,CAAC;IAC1D,MAAM,QAAQ,GAA8B;QAC1C,UAAU,EAAE;YACV,IAAI,EAAE,WAAW;YACjB,OAAO;YACP,OAAO;YACP,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;YAC/C,QAAQ,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;SACxD;KACF,CAAC;IAEF,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;IACnE,MAAM,OAAO,GAAG,aAAa,QAAQ,CAAC,MAAM,IAAI,WAAW,EAAE,CAAC;IAE9D,OAAO,4BAA4B,CACjC,eAAe,EACf,QAAQ,EACR;QACE,OAAO;QACP,GAAG,OAAO;QACV,QAAQ;KACT,CACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,yBAAyB,CACvC,QAAiB,EACjB,KAAa,EACb,UAAkB,EAClB,UAII,EAAE;IAEN,MAAM,QAAQ,GAA8B;QAC1C,SAAS,EAAE;YACT,KAAK;YACL,UAAU;YACV,QAAQ,EAAE,EAAE,EAAE,yBAAyB;SACxC;QACD,aAAa,EAAE,UAAU;KAC1B,CAAC;IAEF,MAAM,IAAI,GAAG,QAA6B,CAAC;IAC3C,OAAO,4BAA4B,CACjC,kBAAkB,EAClB,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAC5C;QACE,OAAO,EAAE,+BAA+B,UAAU,mBAAmB,KAAK,EAAE;QAC5E,GAAG,OAAO;QACV,QAAQ;KACT,CACF,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,wBAAwB,CACtC,UAAqB,EACrB,UAII,EAAE;IAEN,MAAM,QAAQ,GAA8B;QAC1C,UAAU,EAAE;YACV,gBAAgB,EAAE,UAAU,CAAC,MAAM;YACnC,OAAO,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC;SAC/B;QACD,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM;QACnE,KAAK,EAAE,UAAU,CAAC,MAAM;KACzB,CAAC;IAEF,OAAO,4BAA4B,CACjC,wBAAwB,EACxB,EAAE,UAAU,EAAE,EACd;QACE,OAAO,EAAE,kCAAkC,UAAU,CAAC,MAAM,QAAQ;QACpE,GAAG,OAAO;QACV,QAAQ;KACT,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,165 @@
1
+ /**
2
+ * Direct project sharing with users & teams.
3
+ *
4
+ * Distinct from `sharing.ts` (anonymous/password link shares): this module
5
+ * grants access to specific, named users and teams. Entirely new coverage —
6
+ * this MCP server previously exposed no way to share a project with a user
7
+ * or team directly (see docs/API-COVERAGE.md, HIGH finding). Built
8
+ * direct-REST per the Wave D playbook (docs/ENDPOINT-PLAYBOOK.md); there is
9
+ * no existing legacy client call site here to migrate.
10
+ *
11
+ * Endpoints (verified against docs/vikunja-openapi.json — note the body
12
+ * field is `permission`, NOT the legacy client's stale `right`):
13
+ * - GET /projects/{id}/users list users on a project
14
+ * - PUT /projects/{id}/users add a user to a project
15
+ * - POST /projects/{projectID}/users/{userID} update a user's permission
16
+ * - DELETE /projects/{projectID}/users/{userID} remove a user
17
+ * - GET /projects/{id}/teams list teams on a project
18
+ * - PUT /projects/{id}/teams add a team to a project
19
+ * - POST /projects/{projectID}/teams/{teamID} update a team's permission
20
+ * - DELETE /projects/{projectID}/teams/{teamID} remove a team
21
+ * - GET /projects/{id}/projectusers project-scoped user search
22
+ * - GET /users global user search (by username/name/email)
23
+ * - GET /teams team search (by name)
24
+ *
25
+ * Composite-first (docs/ENDPOINT-PLAYBOOK.md §1): `share-with-user` and
26
+ * `share-with-team` are the headline subcommands — they take a username or
27
+ * team name plus a permission level, resolve it to an id internally, add
28
+ * it, then verify the grant actually landed, using `CompositeOperation`
29
+ * (src/utils/composite-operation.ts) for the multi-step write with opt-in
30
+ * atomic rollback (remove-on-failure). Primitives (list/add/update/remove
31
+ * by numeric id) remain available for fine-grained control. `list-members`
32
+ * is a read composite answering "who has access to this project" (users +
33
+ * teams + link shares) in one call.
34
+ */
35
+ import type { AuthManager } from '../../auth/AuthManager';
36
+ import { type PermissionInput } from './permission';
37
+ type McpResponse = {
38
+ content: Array<{
39
+ type: 'text';
40
+ text: string;
41
+ }>;
42
+ };
43
+ export interface ListProjectUsersArgs {
44
+ projectId: number;
45
+ search?: string;
46
+ page?: number;
47
+ perPage?: number;
48
+ sessionId?: string;
49
+ }
50
+ /** Lists the users who have direct access to a project, with their permission. */
51
+ export declare function listProjectUsers(args: ListProjectUsersArgs, authManager: AuthManager): Promise<McpResponse>;
52
+ export interface SearchProjectUsersArgs {
53
+ projectId: number;
54
+ search?: string;
55
+ sessionId?: string;
56
+ }
57
+ /** Project-scoped user search (`GET /projects/{id}/projectusers`) — for finding a user to share with, distinct from the global `/users` search. */
58
+ export declare function searchProjectUsers(args: SearchProjectUsersArgs, authManager: AuthManager): Promise<McpResponse>;
59
+ export interface AddProjectUserArgs {
60
+ projectId: number;
61
+ username: string;
62
+ right: PermissionInput;
63
+ sessionId?: string;
64
+ }
65
+ /** Grants a named user direct access to a project (`PUT /projects/{id}/users`, body `{username, permission}`). */
66
+ export declare function addProjectUser(args: AddProjectUserArgs, authManager: AuthManager): Promise<McpResponse>;
67
+ export interface UpdateProjectUserPermissionArgs {
68
+ projectId: number;
69
+ userId: number;
70
+ right: PermissionInput;
71
+ sessionId?: string;
72
+ }
73
+ /** Updates a user's permission on a project (`POST /projects/{projectID}/users/{userID}`, body `{permission}`). */
74
+ export declare function updateProjectUserPermission(args: UpdateProjectUserPermissionArgs, authManager: AuthManager): Promise<McpResponse>;
75
+ export interface RemoveProjectUserArgs {
76
+ projectId: number;
77
+ userId: number;
78
+ sessionId?: string;
79
+ }
80
+ /** Removes a user's direct access to a project (`DELETE /projects/{projectID}/users/{userID}`). */
81
+ export declare function removeProjectUser(args: RemoveProjectUserArgs, authManager: AuthManager): Promise<McpResponse>;
82
+ export interface ListProjectTeamsArgs {
83
+ projectId: number;
84
+ search?: string;
85
+ page?: number;
86
+ perPage?: number;
87
+ sessionId?: string;
88
+ }
89
+ /** Lists the teams with direct access to a project, with their permission. */
90
+ export declare function listProjectTeams(args: ListProjectTeamsArgs, authManager: AuthManager): Promise<McpResponse>;
91
+ export interface AddProjectTeamArgs {
92
+ projectId: number;
93
+ teamId: number;
94
+ right: PermissionInput;
95
+ sessionId?: string;
96
+ }
97
+ /** Grants a team direct access to a project (`PUT /projects/{id}/teams`, body `{team_id, permission}`). */
98
+ export declare function addProjectTeam(args: AddProjectTeamArgs, authManager: AuthManager): Promise<McpResponse>;
99
+ export interface UpdateProjectTeamPermissionArgs {
100
+ projectId: number;
101
+ teamId: number;
102
+ right: PermissionInput;
103
+ sessionId?: string;
104
+ }
105
+ /** Updates a team's permission on a project (`POST /projects/{projectID}/teams/{teamID}`, body `{permission}`). */
106
+ export declare function updateProjectTeamPermission(args: UpdateProjectTeamPermissionArgs, authManager: AuthManager): Promise<McpResponse>;
107
+ export interface RemoveProjectTeamArgs {
108
+ projectId: number;
109
+ teamId: number;
110
+ sessionId?: string;
111
+ }
112
+ /** Removes a team's direct access to a project (`DELETE /projects/{projectID}/teams/{teamID}`). */
113
+ export declare function removeProjectTeam(args: RemoveProjectTeamArgs, authManager: AuthManager): Promise<McpResponse>;
114
+ export interface ShareWithUserArgs {
115
+ projectId: number;
116
+ username: string;
117
+ right: PermissionInput;
118
+ /**
119
+ * Opt into atomic rollback: if the post-add verification fails, the grant
120
+ * is removed. Default `false` (best-effort) — see
121
+ * docs/ENDPOINT-PLAYBOOK.md §5 / `CompositeOperation`'s design rule (a).
122
+ * This is best-effort compensation against a live API, not a real
123
+ * transaction: side effects of the `add-user` step (e.g. any webhook it
124
+ * fires) are not undone by the rollback.
125
+ */
126
+ atomic?: boolean;
127
+ sessionId?: string;
128
+ }
129
+ /**
130
+ * Composite: share a project with a user by **username**. Resolves the
131
+ * username to a user id via the global user search (`GET /users?s=`), adds
132
+ * the user to the project, then verifies the grant actually landed by
133
+ * re-reading the project's user list. Uses `CompositeOperation` so a failed
134
+ * verification can (opt-in, `atomic: true`) remove the just-added grant
135
+ * rather than leaving a silently-unverified share in place.
136
+ */
137
+ export declare function shareProjectWithUser(args: ShareWithUserArgs, authManager: AuthManager): Promise<McpResponse>;
138
+ export interface ShareWithTeamArgs {
139
+ projectId: number;
140
+ teamName: string;
141
+ right: PermissionInput;
142
+ /** Opt into atomic rollback — see `ShareWithUserArgs.atomic`. */
143
+ atomic?: boolean;
144
+ sessionId?: string;
145
+ }
146
+ /**
147
+ * Composite: share a project with a team by **name**. Resolves the team
148
+ * name to a team id via `GET /teams?s=`, adds the team to the project, then
149
+ * verifies the grant landed by re-reading the project's team list. Same
150
+ * `CompositeOperation` + opt-in atomic rollback shape as `share-with-user`.
151
+ */
152
+ export declare function shareProjectWithTeam(args: ShareWithTeamArgs, authManager: AuthManager): Promise<McpResponse>;
153
+ export interface ListMembersArgs {
154
+ projectId: number;
155
+ sessionId?: string;
156
+ }
157
+ /**
158
+ * Read composite: answers "who has access to this project" in one call —
159
+ * direct users, direct teams, and link shares — instead of making the
160
+ * caller issue three separate list calls. Purely a read; no
161
+ * `CompositeOperation` needed since there is nothing to compensate.
162
+ */
163
+ export declare function listProjectMembers(args: ListMembersArgs, authManager: AuthManager): Promise<McpResponse>;
164
+ export {};
165
+ //# sourceMappingURL=sharing-access.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sharing-access.d.ts","sourceRoot":"","sources":["../../../src/tools/projects/sharing-access.ts"],"names":[],"mappings":"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"}