@mcp-z/mcp-outlook 1.0.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 (300) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +165 -0
  3. package/bin/server.js +5 -0
  4. package/dist/cjs/constants.d.cts +10 -0
  5. package/dist/cjs/constants.d.ts +10 -0
  6. package/dist/cjs/constants.js +35 -0
  7. package/dist/cjs/constants.js.map +1 -0
  8. package/dist/cjs/email/composition/outlook-message-builder.d.cts +36 -0
  9. package/dist/cjs/email/composition/outlook-message-builder.d.ts +36 -0
  10. package/dist/cjs/email/composition/outlook-message-builder.js +56 -0
  11. package/dist/cjs/email/composition/outlook-message-builder.js.map +1 -0
  12. package/dist/cjs/email/messages/messages.d.cts +7 -0
  13. package/dist/cjs/email/messages/messages.d.ts +7 -0
  14. package/dist/cjs/email/messages/messages.js +61 -0
  15. package/dist/cjs/email/messages/messages.js.map +1 -0
  16. package/dist/cjs/email/parsing/header-parsing.d.cts +18 -0
  17. package/dist/cjs/email/parsing/header-parsing.d.ts +18 -0
  18. package/dist/cjs/email/parsing/header-parsing.js +42 -0
  19. package/dist/cjs/email/parsing/header-parsing.js.map +1 -0
  20. package/dist/cjs/email/parsing/message-extraction.d.cts +4 -0
  21. package/dist/cjs/email/parsing/message-extraction.d.ts +4 -0
  22. package/dist/cjs/email/parsing/message-extraction.js +192 -0
  23. package/dist/cjs/email/parsing/message-extraction.js.map +1 -0
  24. package/dist/cjs/email/parsing/message-mapping.d.cts +21 -0
  25. package/dist/cjs/email/parsing/message-mapping.d.ts +21 -0
  26. package/dist/cjs/email/parsing/message-mapping.js +47 -0
  27. package/dist/cjs/email/parsing/message-mapping.js.map +1 -0
  28. package/dist/cjs/email/querying/execute-query.d.cts +20 -0
  29. package/dist/cjs/email/querying/execute-query.d.ts +20 -0
  30. package/dist/cjs/email/querying/execute-query.js +268 -0
  31. package/dist/cjs/email/querying/execute-query.js.map +1 -0
  32. package/dist/cjs/email/querying/query-builder.d.cts +32 -0
  33. package/dist/cjs/email/querying/query-builder.d.ts +32 -0
  34. package/dist/cjs/email/querying/query-builder.js +528 -0
  35. package/dist/cjs/email/querying/query-builder.js.map +1 -0
  36. package/dist/cjs/email/querying/search-execution.d.cts +24 -0
  37. package/dist/cjs/email/querying/search-execution.d.ts +24 -0
  38. package/dist/cjs/email/querying/search-execution.js +261 -0
  39. package/dist/cjs/email/querying/search-execution.js.map +1 -0
  40. package/dist/cjs/index.d.cts +8 -0
  41. package/dist/cjs/index.d.ts +8 -0
  42. package/dist/cjs/index.js +314 -0
  43. package/dist/cjs/index.js.map +1 -0
  44. package/dist/cjs/lib/create-store.d.cts +2 -0
  45. package/dist/cjs/lib/create-store.d.ts +2 -0
  46. package/dist/cjs/lib/create-store.js +166 -0
  47. package/dist/cjs/lib/create-store.js.map +1 -0
  48. package/dist/cjs/lib/messages-to-row.d.cts +39 -0
  49. package/dist/cjs/lib/messages-to-row.d.ts +39 -0
  50. package/dist/cjs/lib/messages-to-row.js +177 -0
  51. package/dist/cjs/lib/messages-to-row.js.map +1 -0
  52. package/dist/cjs/lib/outlook/index.d.cts +7 -0
  53. package/dist/cjs/lib/outlook/index.d.ts +7 -0
  54. package/dist/cjs/lib/outlook/index.js +56 -0
  55. package/dist/cjs/lib/outlook/index.js.map +1 -0
  56. package/dist/cjs/lib/outlook/types.d.cts +22 -0
  57. package/dist/cjs/lib/outlook/types.d.ts +22 -0
  58. package/dist/cjs/lib/outlook/types.js +6 -0
  59. package/dist/cjs/lib/outlook/types.js.map +1 -0
  60. package/dist/cjs/mcp/index.d.cts +3 -0
  61. package/dist/cjs/mcp/index.d.ts +3 -0
  62. package/dist/cjs/mcp/index.js +66 -0
  63. package/dist/cjs/mcp/index.js.map +1 -0
  64. package/dist/cjs/mcp/prompts/draft-email.d.cts +30 -0
  65. package/dist/cjs/mcp/prompts/draft-email.d.ts +30 -0
  66. package/dist/cjs/mcp/prompts/draft-email.js +184 -0
  67. package/dist/cjs/mcp/prompts/draft-email.js.map +1 -0
  68. package/dist/cjs/mcp/prompts/index.d.cts +2 -0
  69. package/dist/cjs/mcp/prompts/index.d.ts +2 -0
  70. package/dist/cjs/mcp/prompts/index.js +26 -0
  71. package/dist/cjs/mcp/prompts/index.js.map +1 -0
  72. package/dist/cjs/mcp/prompts/query-syntax.d.cts +19 -0
  73. package/dist/cjs/mcp/prompts/query-syntax.d.ts +19 -0
  74. package/dist/cjs/mcp/prompts/query-syntax.js +169 -0
  75. package/dist/cjs/mcp/prompts/query-syntax.js.map +1 -0
  76. package/dist/cjs/mcp/resources/email.d.cts +11 -0
  77. package/dist/cjs/mcp/resources/email.d.ts +11 -0
  78. package/dist/cjs/mcp/resources/email.js +233 -0
  79. package/dist/cjs/mcp/resources/email.js.map +1 -0
  80. package/dist/cjs/mcp/resources/index.d.cts +1 -0
  81. package/dist/cjs/mcp/resources/index.d.ts +1 -0
  82. package/dist/cjs/mcp/resources/index.js +17 -0
  83. package/dist/cjs/mcp/resources/index.js.map +1 -0
  84. package/dist/cjs/mcp/tools/categories-list.d.cts +96 -0
  85. package/dist/cjs/mcp/tools/categories-list.d.ts +96 -0
  86. package/dist/cjs/mcp/tools/categories-list.js +252 -0
  87. package/dist/cjs/mcp/tools/categories-list.js.map +1 -0
  88. package/dist/cjs/mcp/tools/index.d.cts +11 -0
  89. package/dist/cjs/mcp/tools/index.d.ts +11 -0
  90. package/dist/cjs/mcp/tools/index.js +62 -0
  91. package/dist/cjs/mcp/tools/index.js.map +1 -0
  92. package/dist/cjs/mcp/tools/label-add.d.cts +44 -0
  93. package/dist/cjs/mcp/tools/label-add.d.ts +44 -0
  94. package/dist/cjs/mcp/tools/label-add.js +249 -0
  95. package/dist/cjs/mcp/tools/label-add.js.map +1 -0
  96. package/dist/cjs/mcp/tools/label-delete.d.cts +54 -0
  97. package/dist/cjs/mcp/tools/label-delete.d.ts +54 -0
  98. package/dist/cjs/mcp/tools/label-delete.js +497 -0
  99. package/dist/cjs/mcp/tools/label-delete.js.map +1 -0
  100. package/dist/cjs/mcp/tools/labels-list.d.cts +96 -0
  101. package/dist/cjs/mcp/tools/labels-list.d.ts +96 -0
  102. package/dist/cjs/mcp/tools/labels-list.js +252 -0
  103. package/dist/cjs/mcp/tools/labels-list.js.map +1 -0
  104. package/dist/cjs/mcp/tools/message-get.d.cts +110 -0
  105. package/dist/cjs/mcp/tools/message-get.d.ts +110 -0
  106. package/dist/cjs/mcp/tools/message-get.js +289 -0
  107. package/dist/cjs/mcp/tools/message-get.js.map +1 -0
  108. package/dist/cjs/mcp/tools/message-mark-read.d.cts +42 -0
  109. package/dist/cjs/mcp/tools/message-mark-read.d.ts +42 -0
  110. package/dist/cjs/mcp/tools/message-mark-read.js +254 -0
  111. package/dist/cjs/mcp/tools/message-mark-read.js.map +1 -0
  112. package/dist/cjs/mcp/tools/message-move-to-trash.d.cts +54 -0
  113. package/dist/cjs/mcp/tools/message-move-to-trash.d.ts +54 -0
  114. package/dist/cjs/mcp/tools/message-move-to-trash.js +460 -0
  115. package/dist/cjs/mcp/tools/message-move-to-trash.js.map +1 -0
  116. package/dist/cjs/mcp/tools/message-respond.d.cts +52 -0
  117. package/dist/cjs/mcp/tools/message-respond.d.ts +52 -0
  118. package/dist/cjs/mcp/tools/message-respond.js +263 -0
  119. package/dist/cjs/mcp/tools/message-respond.js.map +1 -0
  120. package/dist/cjs/mcp/tools/message-search.d.cts +138 -0
  121. package/dist/cjs/mcp/tools/message-search.d.ts +138 -0
  122. package/dist/cjs/mcp/tools/message-search.js +408 -0
  123. package/dist/cjs/mcp/tools/message-search.js.map +1 -0
  124. package/dist/cjs/mcp/tools/message-send.d.cts +66 -0
  125. package/dist/cjs/mcp/tools/message-send.d.ts +66 -0
  126. package/dist/cjs/mcp/tools/message-send.js +298 -0
  127. package/dist/cjs/mcp/tools/message-send.js.map +1 -0
  128. package/dist/cjs/mcp/tools/messages-export-csv.d.cts +72 -0
  129. package/dist/cjs/mcp/tools/messages-export-csv.d.ts +72 -0
  130. package/dist/cjs/mcp/tools/messages-export-csv.js +540 -0
  131. package/dist/cjs/mcp/tools/messages-export-csv.js.map +1 -0
  132. package/dist/cjs/package.json +1 -0
  133. package/dist/cjs/schemas/index.d.cts +2 -0
  134. package/dist/cjs/schemas/index.d.ts +2 -0
  135. package/dist/cjs/schemas/index.js +20 -0
  136. package/dist/cjs/schemas/index.js.map +1 -0
  137. package/dist/cjs/schemas/outlook-query-schema.d.cts +53 -0
  138. package/dist/cjs/schemas/outlook-query-schema.d.ts +53 -0
  139. package/dist/cjs/schemas/outlook-query-schema.js +115 -0
  140. package/dist/cjs/schemas/outlook-query-schema.js.map +1 -0
  141. package/dist/cjs/schemas/outlook-validation.d.cts +428 -0
  142. package/dist/cjs/schemas/outlook-validation.d.ts +428 -0
  143. package/dist/cjs/schemas/outlook-validation.js +420 -0
  144. package/dist/cjs/schemas/outlook-validation.js.map +1 -0
  145. package/dist/cjs/setup/config.d.cts +50 -0
  146. package/dist/cjs/setup/config.d.ts +50 -0
  147. package/dist/cjs/setup/config.js +217 -0
  148. package/dist/cjs/setup/config.js.map +1 -0
  149. package/dist/cjs/setup/http.d.cts +8 -0
  150. package/dist/cjs/setup/http.d.ts +8 -0
  151. package/dist/cjs/setup/http.js +267 -0
  152. package/dist/cjs/setup/http.js.map +1 -0
  153. package/dist/cjs/setup/index.d.cts +5 -0
  154. package/dist/cjs/setup/index.d.ts +5 -0
  155. package/dist/cjs/setup/index.js +46 -0
  156. package/dist/cjs/setup/index.js.map +1 -0
  157. package/dist/cjs/setup/oauth-microsoft.d.cts +43 -0
  158. package/dist/cjs/setup/oauth-microsoft.d.ts +43 -0
  159. package/dist/cjs/setup/oauth-microsoft.js +366 -0
  160. package/dist/cjs/setup/oauth-microsoft.js.map +1 -0
  161. package/dist/cjs/setup/runtime.d.cts +11 -0
  162. package/dist/cjs/setup/runtime.d.ts +11 -0
  163. package/dist/cjs/setup/runtime.js +489 -0
  164. package/dist/cjs/setup/runtime.js.map +1 -0
  165. package/dist/cjs/setup/stdio.d.cts +7 -0
  166. package/dist/cjs/setup/stdio.d.ts +7 -0
  167. package/dist/cjs/setup/stdio.js +239 -0
  168. package/dist/cjs/setup/stdio.js.map +1 -0
  169. package/dist/cjs/types.d.cts +54 -0
  170. package/dist/cjs/types.d.ts +54 -0
  171. package/dist/cjs/types.js +5 -0
  172. package/dist/cjs/types.js.map +1 -0
  173. package/dist/esm/constants.d.ts +10 -0
  174. package/dist/esm/constants.js +13 -0
  175. package/dist/esm/constants.js.map +1 -0
  176. package/dist/esm/email/composition/outlook-message-builder.d.ts +36 -0
  177. package/dist/esm/email/composition/outlook-message-builder.js +46 -0
  178. package/dist/esm/email/composition/outlook-message-builder.js.map +1 -0
  179. package/dist/esm/email/messages/messages.d.ts +7 -0
  180. package/dist/esm/email/messages/messages.js +42 -0
  181. package/dist/esm/email/messages/messages.js.map +1 -0
  182. package/dist/esm/email/parsing/header-parsing.d.ts +18 -0
  183. package/dist/esm/email/parsing/header-parsing.js +18 -0
  184. package/dist/esm/email/parsing/header-parsing.js.map +1 -0
  185. package/dist/esm/email/parsing/message-extraction.d.ts +4 -0
  186. package/dist/esm/email/parsing/message-extraction.js +26 -0
  187. package/dist/esm/email/parsing/message-extraction.js.map +1 -0
  188. package/dist/esm/email/parsing/message-mapping.d.ts +21 -0
  189. package/dist/esm/email/parsing/message-mapping.js +35 -0
  190. package/dist/esm/email/parsing/message-mapping.js.map +1 -0
  191. package/dist/esm/email/querying/execute-query.d.ts +20 -0
  192. package/dist/esm/email/querying/execute-query.js +48 -0
  193. package/dist/esm/email/querying/execute-query.js.map +1 -0
  194. package/dist/esm/email/querying/query-builder.d.ts +32 -0
  195. package/dist/esm/email/querying/query-builder.js +424 -0
  196. package/dist/esm/email/querying/query-builder.js.map +1 -0
  197. package/dist/esm/email/querying/search-execution.d.ts +24 -0
  198. package/dist/esm/email/querying/search-execution.js +96 -0
  199. package/dist/esm/email/querying/search-execution.js.map +1 -0
  200. package/dist/esm/index.d.ts +8 -0
  201. package/dist/esm/index.js +34 -0
  202. package/dist/esm/index.js.map +1 -0
  203. package/dist/esm/lib/create-store.d.ts +2 -0
  204. package/dist/esm/lib/create-store.js +6 -0
  205. package/dist/esm/lib/create-store.js.map +1 -0
  206. package/dist/esm/lib/messages-to-row.d.ts +39 -0
  207. package/dist/esm/lib/messages-to-row.js +141 -0
  208. package/dist/esm/lib/messages-to-row.js.map +1 -0
  209. package/dist/esm/lib/outlook/index.d.ts +7 -0
  210. package/dist/esm/lib/outlook/index.js +7 -0
  211. package/dist/esm/lib/outlook/index.js.map +1 -0
  212. package/dist/esm/lib/outlook/types.d.ts +22 -0
  213. package/dist/esm/lib/outlook/types.js +2 -0
  214. package/dist/esm/lib/outlook/types.js.map +1 -0
  215. package/dist/esm/mcp/index.d.ts +3 -0
  216. package/dist/esm/mcp/index.js +6 -0
  217. package/dist/esm/mcp/index.js.map +1 -0
  218. package/dist/esm/mcp/prompts/draft-email.d.ts +30 -0
  219. package/dist/esm/mcp/prompts/draft-email.js +37 -0
  220. package/dist/esm/mcp/prompts/draft-email.js.map +1 -0
  221. package/dist/esm/mcp/prompts/index.d.ts +2 -0
  222. package/dist/esm/mcp/prompts/index.js +2 -0
  223. package/dist/esm/mcp/prompts/index.js.map +1 -0
  224. package/dist/esm/mcp/prompts/query-syntax.d.ts +19 -0
  225. package/dist/esm/mcp/prompts/query-syntax.js +75 -0
  226. package/dist/esm/mcp/prompts/query-syntax.js.map +1 -0
  227. package/dist/esm/mcp/resources/email.d.ts +11 -0
  228. package/dist/esm/mcp/resources/email.js +69 -0
  229. package/dist/esm/mcp/resources/email.js.map +1 -0
  230. package/dist/esm/mcp/resources/index.d.ts +1 -0
  231. package/dist/esm/mcp/resources/index.js +1 -0
  232. package/dist/esm/mcp/resources/index.js.map +1 -0
  233. package/dist/esm/mcp/tools/categories-list.d.ts +96 -0
  234. package/dist/esm/mcp/tools/categories-list.js +78 -0
  235. package/dist/esm/mcp/tools/categories-list.js.map +1 -0
  236. package/dist/esm/mcp/tools/index.d.ts +11 -0
  237. package/dist/esm/mcp/tools/index.js +11 -0
  238. package/dist/esm/mcp/tools/index.js.map +1 -0
  239. package/dist/esm/mcp/tools/label-add.d.ts +44 -0
  240. package/dist/esm/mcp/tools/label-add.js +75 -0
  241. package/dist/esm/mcp/tools/label-add.js.map +1 -0
  242. package/dist/esm/mcp/tools/label-delete.d.ts +54 -0
  243. package/dist/esm/mcp/tools/label-delete.js +166 -0
  244. package/dist/esm/mcp/tools/label-delete.js.map +1 -0
  245. package/dist/esm/mcp/tools/labels-list.d.ts +96 -0
  246. package/dist/esm/mcp/tools/labels-list.js +78 -0
  247. package/dist/esm/mcp/tools/labels-list.js.map +1 -0
  248. package/dist/esm/mcp/tools/message-get.d.ts +110 -0
  249. package/dist/esm/mcp/tools/message-get.js +117 -0
  250. package/dist/esm/mcp/tools/message-get.js.map +1 -0
  251. package/dist/esm/mcp/tools/message-mark-read.d.ts +42 -0
  252. package/dist/esm/mcp/tools/message-mark-read.js +80 -0
  253. package/dist/esm/mcp/tools/message-mark-read.js.map +1 -0
  254. package/dist/esm/mcp/tools/message-move-to-trash.d.ts +54 -0
  255. package/dist/esm/mcp/tools/message-move-to-trash.js +177 -0
  256. package/dist/esm/mcp/tools/message-move-to-trash.js.map +1 -0
  257. package/dist/esm/mcp/tools/message-respond.d.ts +52 -0
  258. package/dist/esm/mcp/tools/message-respond.js +89 -0
  259. package/dist/esm/mcp/tools/message-respond.js.map +1 -0
  260. package/dist/esm/mcp/tools/message-search.d.ts +138 -0
  261. package/dist/esm/mcp/tools/message-search.js +184 -0
  262. package/dist/esm/mcp/tools/message-search.js.map +1 -0
  263. package/dist/esm/mcp/tools/message-send.d.ts +66 -0
  264. package/dist/esm/mcp/tools/message-send.js +111 -0
  265. package/dist/esm/mcp/tools/message-send.js.map +1 -0
  266. package/dist/esm/mcp/tools/messages-export-csv.d.ts +72 -0
  267. package/dist/esm/mcp/tools/messages-export-csv.js +273 -0
  268. package/dist/esm/mcp/tools/messages-export-csv.js.map +1 -0
  269. package/dist/esm/package.json +1 -0
  270. package/dist/esm/schemas/index.d.ts +2 -0
  271. package/dist/esm/schemas/index.js +2 -0
  272. package/dist/esm/schemas/index.js.map +1 -0
  273. package/dist/esm/schemas/outlook-query-schema.d.ts +53 -0
  274. package/dist/esm/schemas/outlook-query-schema.js +63 -0
  275. package/dist/esm/schemas/outlook-query-schema.js.map +1 -0
  276. package/dist/esm/schemas/outlook-validation.d.ts +428 -0
  277. package/dist/esm/schemas/outlook-validation.js +388 -0
  278. package/dist/esm/schemas/outlook-validation.js.map +1 -0
  279. package/dist/esm/setup/config.d.ts +50 -0
  280. package/dist/esm/setup/config.js +180 -0
  281. package/dist/esm/setup/config.js.map +1 -0
  282. package/dist/esm/setup/http.d.ts +8 -0
  283. package/dist/esm/setup/http.js +61 -0
  284. package/dist/esm/setup/http.js.map +1 -0
  285. package/dist/esm/setup/index.d.ts +5 -0
  286. package/dist/esm/setup/index.js +5 -0
  287. package/dist/esm/setup/index.js.map +1 -0
  288. package/dist/esm/setup/oauth-microsoft.d.ts +43 -0
  289. package/dist/esm/setup/oauth-microsoft.js +169 -0
  290. package/dist/esm/setup/oauth-microsoft.js.map +1 -0
  291. package/dist/esm/setup/runtime.d.ts +11 -0
  292. package/dist/esm/setup/runtime.js +115 -0
  293. package/dist/esm/setup/runtime.js.map +1 -0
  294. package/dist/esm/setup/stdio.d.ts +7 -0
  295. package/dist/esm/setup/stdio.js +38 -0
  296. package/dist/esm/setup/stdio.js.map +1 -0
  297. package/dist/esm/types.d.ts +54 -0
  298. package/dist/esm/types.js +1 -0
  299. package/dist/esm/types.js.map +1 -0
  300. package/package.json +111 -0
@@ -0,0 +1,497 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "default", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return createTool;
9
+ }
10
+ });
11
+ var _oauthmicrosoft = require("@mcp-z/oauth-microsoft");
12
+ var _microsoftgraphclient = require("@microsoft/microsoft-graph-client");
13
+ var _types = require("@modelcontextprotocol/sdk/types.js");
14
+ var _zod = require("zod");
15
+ var _constantsts = require("../../constants.js");
16
+ function _array_like_to_array(arr, len) {
17
+ if (len == null || len > arr.length) len = arr.length;
18
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
19
+ return arr2;
20
+ }
21
+ function _array_without_holes(arr) {
22
+ if (Array.isArray(arr)) return _array_like_to_array(arr);
23
+ }
24
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
25
+ try {
26
+ var info = gen[key](arg);
27
+ var value = info.value;
28
+ } catch (error) {
29
+ reject(error);
30
+ return;
31
+ }
32
+ if (info.done) {
33
+ resolve(value);
34
+ } else {
35
+ Promise.resolve(value).then(_next, _throw);
36
+ }
37
+ }
38
+ function _async_to_generator(fn) {
39
+ return function() {
40
+ var self = this, args = arguments;
41
+ return new Promise(function(resolve, reject) {
42
+ var gen = fn.apply(self, args);
43
+ function _next(value) {
44
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
45
+ }
46
+ function _throw(err) {
47
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
48
+ }
49
+ _next(undefined);
50
+ });
51
+ };
52
+ }
53
+ function _instanceof(left, right) {
54
+ if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
55
+ return !!right[Symbol.hasInstance](left);
56
+ } else {
57
+ return left instanceof right;
58
+ }
59
+ }
60
+ function _iterable_to_array(iter) {
61
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
62
+ }
63
+ function _non_iterable_spread() {
64
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
65
+ }
66
+ function _to_consumable_array(arr) {
67
+ return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
68
+ }
69
+ function _type_of(obj) {
70
+ "@swc/helpers - typeof";
71
+ return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
72
+ }
73
+ function _unsupported_iterable_to_array(o, minLen) {
74
+ if (!o) return;
75
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
76
+ var n = Object.prototype.toString.call(o).slice(8, -1);
77
+ if (n === "Object" && o.constructor) n = o.constructor.name;
78
+ if (n === "Map" || n === "Set") return Array.from(n);
79
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
80
+ }
81
+ function _ts_generator(thisArg, body) {
82
+ var f, y, t, _ = {
83
+ label: 0,
84
+ sent: function() {
85
+ if (t[0] & 1) throw t[1];
86
+ return t[1];
87
+ },
88
+ trys: [],
89
+ ops: []
90
+ }, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype), d = Object.defineProperty;
91
+ return d(g, "next", {
92
+ value: verb(0)
93
+ }), d(g, "throw", {
94
+ value: verb(1)
95
+ }), d(g, "return", {
96
+ value: verb(2)
97
+ }), typeof Symbol === "function" && d(g, Symbol.iterator, {
98
+ value: function() {
99
+ return this;
100
+ }
101
+ }), g;
102
+ function verb(n) {
103
+ return function(v) {
104
+ return step([
105
+ n,
106
+ v
107
+ ]);
108
+ };
109
+ }
110
+ function step(op) {
111
+ if (f) throw new TypeError("Generator is already executing.");
112
+ while(g && (g = 0, op[0] && (_ = 0)), _)try {
113
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
114
+ if (y = 0, t) op = [
115
+ op[0] & 2,
116
+ t.value
117
+ ];
118
+ switch(op[0]){
119
+ case 0:
120
+ case 1:
121
+ t = op;
122
+ break;
123
+ case 4:
124
+ _.label++;
125
+ return {
126
+ value: op[1],
127
+ done: false
128
+ };
129
+ case 5:
130
+ _.label++;
131
+ y = op[1];
132
+ op = [
133
+ 0
134
+ ];
135
+ continue;
136
+ case 7:
137
+ op = _.ops.pop();
138
+ _.trys.pop();
139
+ continue;
140
+ default:
141
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
142
+ _ = 0;
143
+ continue;
144
+ }
145
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
146
+ _.label = op[1];
147
+ break;
148
+ }
149
+ if (op[0] === 6 && _.label < t[1]) {
150
+ _.label = t[1];
151
+ t = op;
152
+ break;
153
+ }
154
+ if (t && _.label < t[2]) {
155
+ _.label = t[2];
156
+ _.ops.push(op);
157
+ break;
158
+ }
159
+ if (t[2]) _.ops.pop();
160
+ _.trys.pop();
161
+ continue;
162
+ }
163
+ op = body.call(thisArg, _);
164
+ } catch (e) {
165
+ op = [
166
+ 6,
167
+ e
168
+ ];
169
+ y = 0;
170
+ } finally{
171
+ f = t = 0;
172
+ }
173
+ if (op[0] & 5) throw op[1];
174
+ return {
175
+ value: op[0] ? op[1] : void 0,
176
+ done: true
177
+ };
178
+ }
179
+ }
180
+ function _ts_values(o) {
181
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
182
+ if (m) return m.call(o);
183
+ if (o && typeof o.length === "number") return {
184
+ next: function() {
185
+ if (o && i >= o.length) o = void 0;
186
+ return {
187
+ value: o && o[i++],
188
+ done: !o
189
+ };
190
+ }
191
+ };
192
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
193
+ }
194
+ var AuthRequiredBranchSchema = _oauthmicrosoft.schemas.AuthRequiredBranchSchema;
195
+ var BatchResultSchema = _zod.z.object({
196
+ totalRequested: _zod.z.number().describe('Total number of categories requested to delete'),
197
+ successCount: _zod.z.number().describe('Number of categories successfully deleted'),
198
+ failureCount: _zod.z.number().describe('Number of categories that failed to delete'),
199
+ results: _zod.z.array(_zod.z.object({
200
+ id: _zod.z.string().describe('Category ID'),
201
+ success: _zod.z.boolean().describe('Whether the operation succeeded'),
202
+ error: _zod.z.string().optional().describe('Error message if operation failed')
203
+ })).describe('Individual results for each category')
204
+ });
205
+ var inputSchema = _zod.z.object({
206
+ ids: _zod.z.array(_zod.z.coerce.string().trim().min(1)).min(1).max(_constantsts.MAX_BATCH_SIZE).describe('Outlook category IDs to delete')
207
+ });
208
+ // Success branch schema
209
+ var successBranchSchema = BatchResultSchema.extend({
210
+ type: _zod.z.literal('success')
211
+ });
212
+ // Output schema with auth_required support
213
+ var outputSchema = _zod.z.discriminatedUnion('type', [
214
+ successBranchSchema,
215
+ AuthRequiredBranchSchema
216
+ ]);
217
+ var config = {
218
+ description: 'Delete Outlook categories permanently (irreversible). Categories organize messages by color and name.',
219
+ inputSchema: inputSchema,
220
+ outputSchema: _zod.z.object({
221
+ result: outputSchema
222
+ })
223
+ };
224
+ function handler(_0, _1) {
225
+ return _async_to_generator(function(param, extra) {
226
+ var ids, logger, invalidIds, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, id, _loop, graph, allResults, i, successCount, failureCount, result, error, message;
227
+ return _ts_generator(this, function(_state) {
228
+ switch(_state.label){
229
+ case 0:
230
+ ids = param.ids;
231
+ logger = extra.logger;
232
+ logger.info('outlook-label-delete called', {
233
+ count: ids.length
234
+ });
235
+ // Validate IDs for Outlook-specific constraints
236
+ // Note: Schema already validates non-empty, trimmed strings with min/max length
237
+ // This check enforces business rule: Outlook category IDs cannot contain path separators or angle brackets
238
+ invalidIds = [];
239
+ _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
240
+ try {
241
+ for(_iterator = ids[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
242
+ id = _step.value;
243
+ if (id.includes('/') || id.includes('\\') || id.includes('<') || id.includes('>')) {
244
+ invalidIds.push(id);
245
+ }
246
+ }
247
+ } catch (err) {
248
+ _didIteratorError = true;
249
+ _iteratorError = err;
250
+ } finally{
251
+ try {
252
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
253
+ _iterator.return();
254
+ }
255
+ } finally{
256
+ if (_didIteratorError) {
257
+ throw _iteratorError;
258
+ }
259
+ }
260
+ }
261
+ if (invalidIds.length > 0) {
262
+ logger.info('outlook-label-delete found invalid ids', {
263
+ invalidIds: invalidIds,
264
+ count: invalidIds.length
265
+ });
266
+ throw new _types.McpError(_types.ErrorCode.InvalidParams, "Found ".concat(invalidIds.length, " invalid IDs (contain invalid characters): ").concat(invalidIds.join(', ')));
267
+ }
268
+ _state.label = 1;
269
+ case 1:
270
+ _state.trys.push([
271
+ 1,
272
+ 6,
273
+ ,
274
+ 7
275
+ ]);
276
+ _loop = function(i) {
277
+ var _allResults, chunk, chunkResults, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, id, error, err, processedChunkResults;
278
+ return _ts_generator(this, function(_state) {
279
+ switch(_state.label){
280
+ case 0:
281
+ chunk = ids.slice(i, i + _constantsts.CHUNK_SIZE);
282
+ logger.info('Processing chunk', {
283
+ chunkIndex: i / _constantsts.CHUNK_SIZE + 1,
284
+ chunkSize: chunk.length,
285
+ totalChunks: Math.ceil(ids.length / _constantsts.CHUNK_SIZE)
286
+ });
287
+ // Delete categories sequentially to avoid API lock conflicts
288
+ chunkResults = [];
289
+ _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
290
+ _state.label = 1;
291
+ case 1:
292
+ _state.trys.push([
293
+ 1,
294
+ 8,
295
+ 9,
296
+ 10
297
+ ]);
298
+ _iterator = chunk[Symbol.iterator]();
299
+ _state.label = 2;
300
+ case 2:
301
+ if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
302
+ 3,
303
+ 7
304
+ ];
305
+ id = _step.value;
306
+ _state.label = 3;
307
+ case 3:
308
+ _state.trys.push([
309
+ 3,
310
+ 5,
311
+ ,
312
+ 6
313
+ ]);
314
+ return [
315
+ 4,
316
+ graph.api("/me/outlook/masterCategories/".concat(encodeURIComponent(id))).delete()
317
+ ];
318
+ case 4:
319
+ _state.sent();
320
+ chunkResults.push({
321
+ status: 'fulfilled',
322
+ value: {
323
+ id: id,
324
+ success: true
325
+ }
326
+ });
327
+ return [
328
+ 3,
329
+ 6
330
+ ];
331
+ case 5:
332
+ error = _state.sent();
333
+ chunkResults.push({
334
+ status: 'rejected',
335
+ reason: error
336
+ });
337
+ return [
338
+ 3,
339
+ 6
340
+ ];
341
+ case 6:
342
+ _iteratorNormalCompletion = true;
343
+ return [
344
+ 3,
345
+ 2
346
+ ];
347
+ case 7:
348
+ return [
349
+ 3,
350
+ 10
351
+ ];
352
+ case 8:
353
+ err = _state.sent();
354
+ _didIteratorError = true;
355
+ _iteratorError = err;
356
+ return [
357
+ 3,
358
+ 10
359
+ ];
360
+ case 9:
361
+ try {
362
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
363
+ _iterator.return();
364
+ }
365
+ } finally{
366
+ if (_didIteratorError) {
367
+ throw _iteratorError;
368
+ }
369
+ }
370
+ return [
371
+ 7
372
+ ];
373
+ case 10:
374
+ // Process chunk results
375
+ processedChunkResults = chunkResults.map(function(result, chunkIndex) {
376
+ var id = chunk[chunkIndex];
377
+ if (!id) {
378
+ throw new Error("Chunk index ".concat(chunkIndex, " is out of bounds for chunk of size ").concat(chunk.length));
379
+ }
380
+ if (result.status === 'fulfilled') {
381
+ return {
382
+ id: id,
383
+ success: true
384
+ };
385
+ }
386
+ // Extract error message more robustly
387
+ var errorMessage = 'Unknown error';
388
+ if (result.reason) {
389
+ if (typeof result.reason === 'string') {
390
+ errorMessage = result.reason;
391
+ } else if (_instanceof(result.reason, Error)) {
392
+ errorMessage = result.reason.message;
393
+ } else if (result.reason && _type_of(result.reason) === 'object' && 'message' in result.reason) {
394
+ errorMessage = String(result.reason.message);
395
+ } else if (result.reason && _type_of(result.reason) === 'object' && 'error' in result.reason) {
396
+ errorMessage = String(result.reason.error);
397
+ } else {
398
+ errorMessage = String(result.reason);
399
+ }
400
+ }
401
+ return {
402
+ id: id,
403
+ success: false,
404
+ error: errorMessage
405
+ };
406
+ });
407
+ (_allResults = allResults).push.apply(_allResults, _to_consumable_array(processedChunkResults));
408
+ return [
409
+ 2
410
+ ];
411
+ }
412
+ });
413
+ };
414
+ graph = _microsoftgraphclient.Client.initWithMiddleware({
415
+ authProvider: extra.authContext.auth
416
+ });
417
+ // Process deletions in chunks to prevent memory exhaustion
418
+ allResults = [];
419
+ i = 0;
420
+ _state.label = 2;
421
+ case 2:
422
+ if (!(i < ids.length)) return [
423
+ 3,
424
+ 5
425
+ ];
426
+ return [
427
+ 5,
428
+ _ts_values(_loop(i))
429
+ ];
430
+ case 3:
431
+ _state.sent();
432
+ _state.label = 4;
433
+ case 4:
434
+ i += _constantsts.CHUNK_SIZE;
435
+ return [
436
+ 3,
437
+ 2
438
+ ];
439
+ case 5:
440
+ successCount = allResults.filter(function(r) {
441
+ return r.success;
442
+ }).length;
443
+ failureCount = allResults.filter(function(r) {
444
+ return !r.success;
445
+ }).length;
446
+ result = {
447
+ type: 'success',
448
+ totalRequested: ids.length,
449
+ successCount: successCount,
450
+ failureCount: failureCount,
451
+ results: allResults
452
+ };
453
+ logger.info('outlook-label-delete completed', {
454
+ totalRequested: ids.length,
455
+ successCount: successCount,
456
+ failureCount: failureCount,
457
+ chunksProcessed: Math.ceil(ids.length / _constantsts.CHUNK_SIZE)
458
+ });
459
+ return [
460
+ 2,
461
+ {
462
+ content: [
463
+ {
464
+ type: 'text',
465
+ text: JSON.stringify(result)
466
+ }
467
+ ],
468
+ structuredContent: {
469
+ result: result
470
+ }
471
+ }
472
+ ];
473
+ case 6:
474
+ error = _state.sent();
475
+ message = _instanceof(error, Error) ? error.message : String(error);
476
+ logger.error('outlook-label-delete error', {
477
+ error: message
478
+ });
479
+ throw new _types.McpError(_types.ErrorCode.InternalError, "Error deleting categories: ".concat(message), {
480
+ stack: _instanceof(error, Error) ? error.stack : undefined
481
+ });
482
+ case 7:
483
+ return [
484
+ 2
485
+ ];
486
+ }
487
+ });
488
+ }).apply(this, arguments);
489
+ }
490
+ function createTool() {
491
+ return {
492
+ name: 'label-delete',
493
+ config: config,
494
+ handler: handler
495
+ };
496
+ }
497
+ /* CJS INTEROP */ if (exports.__esModule && exports.default) { try { Object.defineProperty(exports.default, '__esModule', { value: true }); for (var key in exports) { exports.default[key] = exports[key]; } } catch (_) {}; module.exports = exports.default; }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/Users/kevin/Dev/Projects/ai/mcp-z/servers/mcp-outlook/src/mcp/tools/label-delete.ts"],"sourcesContent":["import type { EnrichedExtra } from '@mcp-z/oauth-microsoft';\nimport { schemas } from '@mcp-z/oauth-microsoft';\n\nconst { AuthRequiredBranchSchema } = schemas;\n\nimport type { ToolModule } from '@mcp-z/server';\nimport { Client } from '@microsoft/microsoft-graph-client';\nimport { type CallToolResult, ErrorCode, McpError } from '@modelcontextprotocol/sdk/types.js';\nimport { z } from 'zod';\nimport { CHUNK_SIZE, MAX_BATCH_SIZE } from '../../constants.ts';\n\nconst BatchResultSchema = z.object({\n totalRequested: z.number().describe('Total number of categories requested to delete'),\n successCount: z.number().describe('Number of categories successfully deleted'),\n failureCount: z.number().describe('Number of categories that failed to delete'),\n results: z\n .array(\n z.object({\n id: z.string().describe('Category ID'),\n success: z.boolean().describe('Whether the operation succeeded'),\n error: z.string().optional().describe('Error message if operation failed'),\n })\n )\n .describe('Individual results for each category'),\n});\n\nconst inputSchema = z.object({\n ids: z.array(z.coerce.string().trim().min(1)).min(1).max(MAX_BATCH_SIZE).describe('Outlook category IDs to delete'),\n});\n\n// Success branch schema\nconst successBranchSchema = BatchResultSchema.extend({\n type: z.literal('success'),\n});\n\n// Output schema with auth_required support\nconst outputSchema = z.discriminatedUnion('type', [successBranchSchema, AuthRequiredBranchSchema]);\n\nconst config = {\n description: 'Delete Outlook categories permanently (irreversible). Categories organize messages by color and name.',\n inputSchema: inputSchema,\n outputSchema: z.object({\n result: outputSchema,\n }),\n} as const;\n\nexport type Input = z.infer<typeof inputSchema>;\nexport type Output = z.infer<typeof outputSchema>;\n\nasync function handler({ ids }: Input, extra: EnrichedExtra): Promise<CallToolResult> {\n const logger = extra.logger;\n logger.info('outlook-label-delete called', { count: ids.length });\n\n // Validate IDs for Outlook-specific constraints\n // Note: Schema already validates non-empty, trimmed strings with min/max length\n // This check enforces business rule: Outlook category IDs cannot contain path separators or angle brackets\n const invalidIds: string[] = [];\n for (const id of ids) {\n if (id.includes('/') || id.includes('\\\\') || id.includes('<') || id.includes('>')) {\n invalidIds.push(id);\n }\n }\n\n if (invalidIds.length > 0) {\n logger.info('outlook-label-delete found invalid ids', { invalidIds, count: invalidIds.length });\n throw new McpError(ErrorCode.InvalidParams, `Found ${invalidIds.length} invalid IDs (contain invalid characters): ${invalidIds.join(', ')}`);\n }\n\n try {\n const graph = Client.initWithMiddleware({ authProvider: extra.authContext.auth });\n // Process deletions in chunks to prevent memory exhaustion\n const allResults: Array<{ id: string; success: boolean; error?: string }> = [];\n\n for (let i = 0; i < ids.length; i += CHUNK_SIZE) {\n const chunk = ids.slice(i, i + CHUNK_SIZE);\n logger.info('Processing chunk', { chunkIndex: i / CHUNK_SIZE + 1, chunkSize: chunk.length, totalChunks: Math.ceil(ids.length / CHUNK_SIZE) });\n\n // Delete categories sequentially to avoid API lock conflicts\n const chunkResults: Array<{ status: string; value?: unknown; reason?: unknown }> = [];\n for (const id of chunk) {\n try {\n await graph.api(`/me/outlook/masterCategories/${encodeURIComponent(id)}`).delete();\n chunkResults.push({ status: 'fulfilled', value: { id, success: true } });\n } catch (error) {\n chunkResults.push({ status: 'rejected', reason: error });\n }\n }\n\n // Process chunk results\n const processedChunkResults = chunkResults.map((result, chunkIndex) => {\n const id = chunk[chunkIndex];\n if (!id) {\n throw new Error(`Chunk index ${chunkIndex} is out of bounds for chunk of size ${chunk.length}`);\n }\n if (result.status === 'fulfilled') {\n return { id, success: true };\n }\n\n // Extract error message more robustly\n let errorMessage = 'Unknown error';\n if (result.reason) {\n if (typeof result.reason === 'string') {\n errorMessage = result.reason;\n } else if (result.reason instanceof Error) {\n errorMessage = result.reason.message;\n } else if (result.reason && typeof result.reason === 'object' && 'message' in result.reason) {\n errorMessage = String(result.reason.message);\n } else if (result.reason && typeof result.reason === 'object' && 'error' in result.reason) {\n errorMessage = String(result.reason.error);\n } else {\n errorMessage = String(result.reason);\n }\n }\n\n return { id, success: false, error: errorMessage };\n });\n\n allResults.push(...processedChunkResults);\n }\n\n const successCount = allResults.filter((r) => r.success).length;\n const failureCount = allResults.filter((r) => !r.success).length;\n\n const result: Output = {\n type: 'success' as const,\n totalRequested: ids.length,\n successCount,\n failureCount,\n results: allResults,\n };\n\n logger.info('outlook-label-delete completed', {\n totalRequested: ids.length,\n successCount,\n failureCount,\n chunksProcessed: Math.ceil(ids.length / CHUNK_SIZE),\n });\n\n return {\n content: [\n {\n type: 'text' as const,\n text: JSON.stringify(result),\n },\n ],\n structuredContent: { result },\n };\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n logger.error('outlook-label-delete error', { error: message });\n\n throw new McpError(ErrorCode.InternalError, `Error deleting categories: ${message}`, {\n stack: error instanceof Error ? error.stack : undefined,\n });\n }\n}\n\nexport default function createTool() {\n return {\n name: 'label-delete',\n config,\n handler,\n } satisfies ToolModule;\n}\n"],"names":["createTool","AuthRequiredBranchSchema","schemas","BatchResultSchema","z","object","totalRequested","number","describe","successCount","failureCount","results","array","id","string","success","boolean","error","optional","inputSchema","ids","coerce","trim","min","max","MAX_BATCH_SIZE","successBranchSchema","extend","type","literal","outputSchema","discriminatedUnion","config","description","result","handler","extra","logger","invalidIds","graph","allResults","i","message","info","count","length","includes","push","McpError","ErrorCode","InvalidParams","join","chunk","chunkResults","processedChunkResults","slice","CHUNK_SIZE","chunkIndex","chunkSize","totalChunks","Math","ceil","api","encodeURIComponent","delete","status","value","reason","map","Error","errorMessage","String","Client","initWithMiddleware","authProvider","authContext","auth","filter","r","chunksProcessed","content","text","JSON","stringify","structuredContent","InternalError","stack","undefined","name"],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ import type { EnrichedExtra } from '@mcp-z/oauth-microsoft';
2
+ import { type CallToolResult } from '@modelcontextprotocol/sdk/types.js';
3
+ import { z } from 'zod';
4
+ declare const inputSchema: z.ZodObject<{}, z.core.$strip>;
5
+ declare const outputSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
6
+ type: z.ZodLiteral<"success">;
7
+ items: z.ZodArray<z.ZodObject<{
8
+ id: z.ZodString;
9
+ displayName: z.ZodString;
10
+ color: z.ZodEnum<{
11
+ preset0: "preset0";
12
+ preset1: "preset1";
13
+ preset2: "preset2";
14
+ preset3: "preset3";
15
+ preset4: "preset4";
16
+ preset5: "preset5";
17
+ preset6: "preset6";
18
+ preset7: "preset7";
19
+ preset8: "preset8";
20
+ preset9: "preset9";
21
+ preset10: "preset10";
22
+ preset11: "preset11";
23
+ preset12: "preset12";
24
+ preset13: "preset13";
25
+ preset14: "preset14";
26
+ preset15: "preset15";
27
+ preset16: "preset16";
28
+ preset17: "preset17";
29
+ preset18: "preset18";
30
+ preset19: "preset19";
31
+ preset20: "preset20";
32
+ preset21: "preset21";
33
+ preset22: "preset22";
34
+ preset23: "preset23";
35
+ preset24: "preset24";
36
+ }>;
37
+ }, z.core.$strip>>;
38
+ }, z.core.$strip>, z.ZodObject<{
39
+ type: z.ZodLiteral<"auth_required">;
40
+ provider: z.ZodString;
41
+ message: z.ZodString;
42
+ url: z.ZodOptional<z.ZodString>;
43
+ }, z.core.$strip>], "type">;
44
+ export type Input = z.infer<typeof inputSchema>;
45
+ export type Output = z.infer<typeof outputSchema>;
46
+ declare function handler(_: Input, extra: EnrichedExtra): Promise<CallToolResult>;
47
+ export default function createTool(): {
48
+ name: string;
49
+ config: {
50
+ readonly description: "List Outlook categories for label: query syntax. Case-sensitive.";
51
+ readonly inputSchema: z.ZodObject<{}, z.core.$strip>;
52
+ readonly outputSchema: z.ZodObject<{
53
+ result: z.ZodDiscriminatedUnion<[z.ZodObject<{
54
+ type: z.ZodLiteral<"success">;
55
+ items: z.ZodArray<z.ZodObject<{
56
+ id: z.ZodString;
57
+ displayName: z.ZodString;
58
+ color: z.ZodEnum<{
59
+ preset0: "preset0";
60
+ preset1: "preset1";
61
+ preset2: "preset2";
62
+ preset3: "preset3";
63
+ preset4: "preset4";
64
+ preset5: "preset5";
65
+ preset6: "preset6";
66
+ preset7: "preset7";
67
+ preset8: "preset8";
68
+ preset9: "preset9";
69
+ preset10: "preset10";
70
+ preset11: "preset11";
71
+ preset12: "preset12";
72
+ preset13: "preset13";
73
+ preset14: "preset14";
74
+ preset15: "preset15";
75
+ preset16: "preset16";
76
+ preset17: "preset17";
77
+ preset18: "preset18";
78
+ preset19: "preset19";
79
+ preset20: "preset20";
80
+ preset21: "preset21";
81
+ preset22: "preset22";
82
+ preset23: "preset23";
83
+ preset24: "preset24";
84
+ }>;
85
+ }, z.core.$strip>>;
86
+ }, z.core.$strip>, z.ZodObject<{
87
+ type: z.ZodLiteral<"auth_required">;
88
+ provider: z.ZodString;
89
+ message: z.ZodString;
90
+ url: z.ZodOptional<z.ZodString>;
91
+ }, z.core.$strip>], "type">;
92
+ }, z.core.$strip>;
93
+ };
94
+ handler: typeof handler;
95
+ };
96
+ export {};