@jbctechsolutions/mcp-office365 2.5.1

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 (339) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +667 -0
  3. package/dist/applescript/account-repository.d.ts +30 -0
  4. package/dist/applescript/account-repository.d.ts.map +1 -0
  5. package/dist/applescript/account-repository.js +38 -0
  6. package/dist/applescript/account-repository.js.map +1 -0
  7. package/dist/applescript/account-scripts.d.ts +21 -0
  8. package/dist/applescript/account-scripts.d.ts.map +1 -0
  9. package/dist/applescript/account-scripts.js +180 -0
  10. package/dist/applescript/account-scripts.js.map +1 -0
  11. package/dist/applescript/calendar-manager.d.ts +44 -0
  12. package/dist/applescript/calendar-manager.d.ts.map +1 -0
  13. package/dist/applescript/calendar-manager.js +92 -0
  14. package/dist/applescript/calendar-manager.js.map +1 -0
  15. package/dist/applescript/calendar-writer.d.ts +36 -0
  16. package/dist/applescript/calendar-writer.d.ts.map +1 -0
  17. package/dist/applescript/calendar-writer.js +94 -0
  18. package/dist/applescript/calendar-writer.js.map +1 -0
  19. package/dist/applescript/content-readers.d.ts +114 -0
  20. package/dist/applescript/content-readers.d.ts.map +1 -0
  21. package/dist/applescript/content-readers.js +328 -0
  22. package/dist/applescript/content-readers.js.map +1 -0
  23. package/dist/applescript/executor.d.ts +60 -0
  24. package/dist/applescript/executor.d.ts.map +1 -0
  25. package/dist/applescript/executor.js +173 -0
  26. package/dist/applescript/executor.js.map +1 -0
  27. package/dist/applescript/index.d.ts +20 -0
  28. package/dist/applescript/index.d.ts.map +1 -0
  29. package/dist/applescript/index.js +29 -0
  30. package/dist/applescript/index.js.map +1 -0
  31. package/dist/applescript/mail-sender.d.ts +38 -0
  32. package/dist/applescript/mail-sender.d.ts.map +1 -0
  33. package/dist/applescript/mail-sender.js +67 -0
  34. package/dist/applescript/mail-sender.js.map +1 -0
  35. package/dist/applescript/parser.d.ts +235 -0
  36. package/dist/applescript/parser.d.ts.map +1 -0
  37. package/dist/applescript/parser.js +496 -0
  38. package/dist/applescript/parser.js.map +1 -0
  39. package/dist/applescript/repository.d.ts +64 -0
  40. package/dist/applescript/repository.d.ts.map +1 -0
  41. package/dist/applescript/repository.js +444 -0
  42. package/dist/applescript/repository.js.map +1 -0
  43. package/dist/applescript/scripts.d.ts +265 -0
  44. package/dist/applescript/scripts.d.ts.map +1 -0
  45. package/dist/applescript/scripts.js +1483 -0
  46. package/dist/applescript/scripts.js.map +1 -0
  47. package/dist/approval/hash.d.ts +87 -0
  48. package/dist/approval/hash.d.ts.map +1 -0
  49. package/dist/approval/hash.js +102 -0
  50. package/dist/approval/hash.js.map +1 -0
  51. package/dist/approval/index.d.ts +13 -0
  52. package/dist/approval/index.d.ts.map +1 -0
  53. package/dist/approval/index.js +7 -0
  54. package/dist/approval/index.js.map +1 -0
  55. package/dist/approval/token-manager.d.ts +51 -0
  56. package/dist/approval/token-manager.d.ts.map +1 -0
  57. package/dist/approval/token-manager.js +111 -0
  58. package/dist/approval/token-manager.js.map +1 -0
  59. package/dist/approval/types.d.ts +44 -0
  60. package/dist/approval/types.d.ts.map +1 -0
  61. package/dist/approval/types.js +6 -0
  62. package/dist/approval/types.js.map +1 -0
  63. package/dist/cli.d.ts +30 -0
  64. package/dist/cli.d.ts.map +1 -0
  65. package/dist/cli.js +143 -0
  66. package/dist/cli.js.map +1 -0
  67. package/dist/config.d.ts +27 -0
  68. package/dist/config.d.ts.map +1 -0
  69. package/dist/config.js +42 -0
  70. package/dist/config.js.map +1 -0
  71. package/dist/database/connection.d.ts +77 -0
  72. package/dist/database/connection.d.ts.map +1 -0
  73. package/dist/database/connection.js +130 -0
  74. package/dist/database/connection.js.map +1 -0
  75. package/dist/database/index.d.ts +11 -0
  76. package/dist/database/index.d.ts.map +1 -0
  77. package/dist/database/index.js +11 -0
  78. package/dist/database/index.js.map +1 -0
  79. package/dist/database/queries.d.ts +93 -0
  80. package/dist/database/queries.d.ts.map +1 -0
  81. package/dist/database/queries.js +430 -0
  82. package/dist/database/queries.js.map +1 -0
  83. package/dist/database/repository.d.ts +198 -0
  84. package/dist/database/repository.d.ts.map +1 -0
  85. package/dist/database/repository.js +199 -0
  86. package/dist/database/repository.js.map +1 -0
  87. package/dist/graph/attachments.d.ts +72 -0
  88. package/dist/graph/attachments.d.ts.map +1 -0
  89. package/dist/graph/attachments.js +207 -0
  90. package/dist/graph/attachments.js.map +1 -0
  91. package/dist/graph/auth/config.d.ts +34 -0
  92. package/dist/graph/auth/config.d.ts.map +1 -0
  93. package/dist/graph/auth/config.js +78 -0
  94. package/dist/graph/auth/config.js.map +1 -0
  95. package/dist/graph/auth/device-code-flow.d.ts +55 -0
  96. package/dist/graph/auth/device-code-flow.d.ts.map +1 -0
  97. package/dist/graph/auth/device-code-flow.js +180 -0
  98. package/dist/graph/auth/device-code-flow.js.map +1 -0
  99. package/dist/graph/auth/index.d.ts +13 -0
  100. package/dist/graph/auth/index.d.ts.map +1 -0
  101. package/dist/graph/auth/index.js +13 -0
  102. package/dist/graph/auth/index.js.map +1 -0
  103. package/dist/graph/auth/token-cache.d.ts +41 -0
  104. package/dist/graph/auth/token-cache.d.ts.map +1 -0
  105. package/dist/graph/auth/token-cache.js +105 -0
  106. package/dist/graph/auth/token-cache.js.map +1 -0
  107. package/dist/graph/client/batch.d.ts +38 -0
  108. package/dist/graph/client/batch.d.ts.map +1 -0
  109. package/dist/graph/client/batch.js +33 -0
  110. package/dist/graph/client/batch.js.map +1 -0
  111. package/dist/graph/client/cache.d.ts +64 -0
  112. package/dist/graph/client/cache.d.ts.map +1 -0
  113. package/dist/graph/client/cache.js +108 -0
  114. package/dist/graph/client/cache.js.map +1 -0
  115. package/dist/graph/client/graph-client.d.ts +630 -0
  116. package/dist/graph/client/graph-client.d.ts.map +1 -0
  117. package/dist/graph/client/graph-client.js +1771 -0
  118. package/dist/graph/client/graph-client.js.map +1 -0
  119. package/dist/graph/client/index.d.ts +12 -0
  120. package/dist/graph/client/index.d.ts.map +1 -0
  121. package/dist/graph/client/index.js +12 -0
  122. package/dist/graph/client/index.js.map +1 -0
  123. package/dist/graph/content-readers.d.ts +106 -0
  124. package/dist/graph/content-readers.d.ts.map +1 -0
  125. package/dist/graph/content-readers.js +321 -0
  126. package/dist/graph/content-readers.js.map +1 -0
  127. package/dist/graph/index.d.ts +18 -0
  128. package/dist/graph/index.d.ts.map +1 -0
  129. package/dist/graph/index.js +23 -0
  130. package/dist/graph/index.js.map +1 -0
  131. package/dist/graph/mailbox-adapter.d.ts +30 -0
  132. package/dist/graph/mailbox-adapter.d.ts.map +1 -0
  133. package/dist/graph/mailbox-adapter.js +59 -0
  134. package/dist/graph/mailbox-adapter.js.map +1 -0
  135. package/dist/graph/mappers/contact-mapper.d.ts +14 -0
  136. package/dist/graph/mappers/contact-mapper.d.ts.map +1 -0
  137. package/dist/graph/mappers/contact-mapper.js +20 -0
  138. package/dist/graph/mappers/contact-mapper.js.map +1 -0
  139. package/dist/graph/mappers/email-mapper.d.ts +14 -0
  140. package/dist/graph/mappers/email-mapper.d.ts.map +1 -0
  141. package/dist/graph/mappers/email-mapper.js +44 -0
  142. package/dist/graph/mappers/email-mapper.js.map +1 -0
  143. package/dist/graph/mappers/event-mapper.d.ts +14 -0
  144. package/dist/graph/mappers/event-mapper.d.ts.map +1 -0
  145. package/dist/graph/mappers/event-mapper.js +31 -0
  146. package/dist/graph/mappers/event-mapper.js.map +1 -0
  147. package/dist/graph/mappers/folder-mapper.d.ts +22 -0
  148. package/dist/graph/mappers/folder-mapper.d.ts.map +1 -0
  149. package/dist/graph/mappers/folder-mapper.js +51 -0
  150. package/dist/graph/mappers/folder-mapper.js.map +1 -0
  151. package/dist/graph/mappers/index.d.ts +16 -0
  152. package/dist/graph/mappers/index.d.ts.map +1 -0
  153. package/dist/graph/mappers/index.js +16 -0
  154. package/dist/graph/mappers/index.js.map +1 -0
  155. package/dist/graph/mappers/task-mapper.d.ts +20 -0
  156. package/dist/graph/mappers/task-mapper.d.ts.map +1 -0
  157. package/dist/graph/mappers/task-mapper.js +27 -0
  158. package/dist/graph/mappers/task-mapper.js.map +1 -0
  159. package/dist/graph/mappers/utils.d.ts +97 -0
  160. package/dist/graph/mappers/utils.d.ts.map +1 -0
  161. package/dist/graph/mappers/utils.js +186 -0
  162. package/dist/graph/mappers/utils.js.map +1 -0
  163. package/dist/graph/repository.d.ts +1104 -0
  164. package/dist/graph/repository.d.ts.map +1 -0
  165. package/dist/graph/repository.js +2999 -0
  166. package/dist/graph/repository.js.map +1 -0
  167. package/dist/index.d.ts +21 -0
  168. package/dist/index.d.ts.map +1 -0
  169. package/dist/index.js +6052 -0
  170. package/dist/index.js.map +1 -0
  171. package/dist/parsers/html-stripper.d.ts +41 -0
  172. package/dist/parsers/html-stripper.d.ts.map +1 -0
  173. package/dist/parsers/html-stripper.js +179 -0
  174. package/dist/parsers/html-stripper.js.map +1 -0
  175. package/dist/parsers/index.d.ts +12 -0
  176. package/dist/parsers/index.d.ts.map +1 -0
  177. package/dist/parsers/index.js +12 -0
  178. package/dist/parsers/index.js.map +1 -0
  179. package/dist/parsers/olk15.d.ts +87 -0
  180. package/dist/parsers/olk15.d.ts.map +1 -0
  181. package/dist/parsers/olk15.js +368 -0
  182. package/dist/parsers/olk15.js.map +1 -0
  183. package/dist/signature.d.ts +22 -0
  184. package/dist/signature.d.ts.map +1 -0
  185. package/dist/signature.js +89 -0
  186. package/dist/signature.js.map +1 -0
  187. package/dist/tools/calendar-permissions.d.ts +79 -0
  188. package/dist/tools/calendar-permissions.d.ts.map +1 -0
  189. package/dist/tools/calendar-permissions.js +121 -0
  190. package/dist/tools/calendar-permissions.js.map +1 -0
  191. package/dist/tools/calendar.d.ts +208 -0
  192. package/dist/tools/calendar.d.ts.map +1 -0
  193. package/dist/tools/calendar.js +247 -0
  194. package/dist/tools/calendar.js.map +1 -0
  195. package/dist/tools/categories.d.ts +94 -0
  196. package/dist/tools/categories.d.ts.map +1 -0
  197. package/dist/tools/categories.js +117 -0
  198. package/dist/tools/categories.js.map +1 -0
  199. package/dist/tools/checklist-items.d.ts +89 -0
  200. package/dist/tools/checklist-items.d.ts.map +1 -0
  201. package/dist/tools/checklist-items.js +140 -0
  202. package/dist/tools/checklist-items.js.map +1 -0
  203. package/dist/tools/contacts.d.ts +94 -0
  204. package/dist/tools/contacts.d.ts.map +1 -0
  205. package/dist/tools/contacts.js +134 -0
  206. package/dist/tools/contacts.js.map +1 -0
  207. package/dist/tools/excel.d.ts +96 -0
  208. package/dist/tools/excel.d.ts.map +1 -0
  209. package/dist/tools/excel.js +165 -0
  210. package/dist/tools/excel.js.map +1 -0
  211. package/dist/tools/focused-overrides.d.ts +70 -0
  212. package/dist/tools/focused-overrides.d.ts.map +1 -0
  213. package/dist/tools/focused-overrides.js +117 -0
  214. package/dist/tools/focused-overrides.js.map +1 -0
  215. package/dist/tools/index.d.ts +22 -0
  216. package/dist/tools/index.d.ts.map +1 -0
  217. package/dist/tools/index.js +34 -0
  218. package/dist/tools/index.js.map +1 -0
  219. package/dist/tools/linked-resources.d.ts +74 -0
  220. package/dist/tools/linked-resources.d.ts.map +1 -0
  221. package/dist/tools/linked-resources.js +122 -0
  222. package/dist/tools/linked-resources.js.map +1 -0
  223. package/dist/tools/mail-rules.d.ts +98 -0
  224. package/dist/tools/mail-rules.d.ts.map +1 -0
  225. package/dist/tools/mail-rules.js +169 -0
  226. package/dist/tools/mail-rules.js.map +1 -0
  227. package/dist/tools/mail-send.d.ts +314 -0
  228. package/dist/tools/mail-send.d.ts.map +1 -0
  229. package/dist/tools/mail-send.js +555 -0
  230. package/dist/tools/mail-send.js.map +1 -0
  231. package/dist/tools/mail.d.ts +127 -0
  232. package/dist/tools/mail.d.ts.map +1 -0
  233. package/dist/tools/mail.js +311 -0
  234. package/dist/tools/mail.js.map +1 -0
  235. package/dist/tools/mailbox-organization.d.ts +301 -0
  236. package/dist/tools/mailbox-organization.d.ts.map +1 -0
  237. package/dist/tools/mailbox-organization.js +541 -0
  238. package/dist/tools/mailbox-organization.js.map +1 -0
  239. package/dist/tools/meetings.d.ts +114 -0
  240. package/dist/tools/meetings.d.ts.map +1 -0
  241. package/dist/tools/meetings.js +110 -0
  242. package/dist/tools/meetings.js.map +1 -0
  243. package/dist/tools/notes.d.ts +74 -0
  244. package/dist/tools/notes.d.ts.map +1 -0
  245. package/dist/tools/notes.js +136 -0
  246. package/dist/tools/notes.js.map +1 -0
  247. package/dist/tools/onedrive.d.ts +194 -0
  248. package/dist/tools/onedrive.d.ts.map +1 -0
  249. package/dist/tools/onedrive.js +257 -0
  250. package/dist/tools/onedrive.js.map +1 -0
  251. package/dist/tools/people.d.ts +129 -0
  252. package/dist/tools/people.d.ts.map +1 -0
  253. package/dist/tools/people.js +195 -0
  254. package/dist/tools/people.js.map +1 -0
  255. package/dist/tools/planner-visualization.d.ts +91 -0
  256. package/dist/tools/planner-visualization.d.ts.map +1 -0
  257. package/dist/tools/planner-visualization.js +192 -0
  258. package/dist/tools/planner-visualization.js.map +1 -0
  259. package/dist/tools/planner.d.ts +288 -0
  260. package/dist/tools/planner.d.ts.map +1 -0
  261. package/dist/tools/planner.js +368 -0
  262. package/dist/tools/planner.js.map +1 -0
  263. package/dist/tools/scheduling.d.ts +49 -0
  264. package/dist/tools/scheduling.d.ts.map +1 -0
  265. package/dist/tools/scheduling.js +115 -0
  266. package/dist/tools/scheduling.js.map +1 -0
  267. package/dist/tools/sharepoint.d.ts +115 -0
  268. package/dist/tools/sharepoint.d.ts.map +1 -0
  269. package/dist/tools/sharepoint.js +99 -0
  270. package/dist/tools/sharepoint.js.map +1 -0
  271. package/dist/tools/task-attachments.d.ts +74 -0
  272. package/dist/tools/task-attachments.d.ts.map +1 -0
  273. package/dist/tools/task-attachments.js +122 -0
  274. package/dist/tools/task-attachments.js.map +1 -0
  275. package/dist/tools/tasks.d.ts +74 -0
  276. package/dist/tools/tasks.d.ts.map +1 -0
  277. package/dist/tools/tasks.js +126 -0
  278. package/dist/tools/tasks.js.map +1 -0
  279. package/dist/tools/teams.d.ts +389 -0
  280. package/dist/tools/teams.d.ts.map +1 -0
  281. package/dist/tools/teams.js +546 -0
  282. package/dist/tools/teams.js.map +1 -0
  283. package/dist/types/calendar.d.ts +60 -0
  284. package/dist/types/calendar.d.ts.map +1 -0
  285. package/dist/types/calendar.js +15 -0
  286. package/dist/types/calendar.js.map +1 -0
  287. package/dist/types/contacts.d.ts +96 -0
  288. package/dist/types/contacts.d.ts.map +1 -0
  289. package/dist/types/contacts.js +41 -0
  290. package/dist/types/contacts.js.map +1 -0
  291. package/dist/types/index.d.ts +15 -0
  292. package/dist/types/index.d.ts.map +1 -0
  293. package/dist/types/index.js +16 -0
  294. package/dist/types/index.js.map +1 -0
  295. package/dist/types/mail.d.ts +108 -0
  296. package/dist/types/mail.d.ts.map +1 -0
  297. package/dist/types/mail.js +40 -0
  298. package/dist/types/mail.js.map +1 -0
  299. package/dist/types/notes.d.ts +26 -0
  300. package/dist/types/notes.d.ts.map +1 -0
  301. package/dist/types/notes.js +6 -0
  302. package/dist/types/notes.js.map +1 -0
  303. package/dist/types/tasks.d.ts +31 -0
  304. package/dist/types/tasks.d.ts.map +1 -0
  305. package/dist/types/tasks.js +6 -0
  306. package/dist/types/tasks.js.map +1 -0
  307. package/dist/utils/dates.d.ts +66 -0
  308. package/dist/utils/dates.d.ts.map +1 -0
  309. package/dist/utils/dates.js +94 -0
  310. package/dist/utils/dates.js.map +1 -0
  311. package/dist/utils/errors.d.ts +218 -0
  312. package/dist/utils/errors.d.ts.map +1 -0
  313. package/dist/utils/errors.js +306 -0
  314. package/dist/utils/errors.js.map +1 -0
  315. package/dist/utils/index.d.ts +10 -0
  316. package/dist/utils/index.d.ts.map +1 -0
  317. package/dist/utils/index.js +10 -0
  318. package/dist/utils/index.js.map +1 -0
  319. package/dist/visualization/html.d.ts +26 -0
  320. package/dist/visualization/html.d.ts.map +1 -0
  321. package/dist/visualization/html.js +306 -0
  322. package/dist/visualization/html.js.map +1 -0
  323. package/dist/visualization/markdown.d.ts +25 -0
  324. package/dist/visualization/markdown.d.ts.map +1 -0
  325. package/dist/visualization/markdown.js +186 -0
  326. package/dist/visualization/markdown.js.map +1 -0
  327. package/dist/visualization/mermaid.d.ts +25 -0
  328. package/dist/visualization/mermaid.d.ts.map +1 -0
  329. package/dist/visualization/mermaid.js +158 -0
  330. package/dist/visualization/mermaid.js.map +1 -0
  331. package/dist/visualization/svg.d.ts +25 -0
  332. package/dist/visualization/svg.d.ts.map +1 -0
  333. package/dist/visualization/svg.js +282 -0
  334. package/dist/visualization/svg.js.map +1 -0
  335. package/dist/visualization/types.d.ts +43 -0
  336. package/dist/visualization/types.d.ts.map +1 -0
  337. package/dist/visualization/types.js +34 -0
  338. package/dist/visualization/types.js.map +1 -0
  339. package/package.json +88 -0
@@ -0,0 +1,218 @@
1
+ /**
2
+ * Copyright (c) 2026 JBC Tech Solutions, LLC
3
+ * Licensed under the MIT License. See LICENSE file in the project root.
4
+ */
5
+ /**
6
+ * Custom error classes for the Outlook MCP server.
7
+ */
8
+ /**
9
+ * Error codes for categorizing errors.
10
+ */
11
+ export declare const ErrorCode: {
12
+ readonly DATABASE_NOT_FOUND: "DATABASE_NOT_FOUND";
13
+ readonly DATABASE_LOCKED: "DATABASE_LOCKED";
14
+ readonly DATABASE_ERROR: "DATABASE_ERROR";
15
+ readonly CONTENT_FILE_NOT_FOUND: "CONTENT_FILE_NOT_FOUND";
16
+ readonly CONTENT_PARSE_ERROR: "CONTENT_PARSE_ERROR";
17
+ readonly VALIDATION_ERROR: "VALIDATION_ERROR";
18
+ readonly NOT_FOUND: "NOT_FOUND";
19
+ readonly OUTLOOK_NOT_RUNNING: "OUTLOOK_NOT_RUNNING";
20
+ readonly APPLESCRIPT_PERMISSION_DENIED: "APPLESCRIPT_PERMISSION_DENIED";
21
+ readonly APPLESCRIPT_TIMEOUT: "APPLESCRIPT_TIMEOUT";
22
+ readonly APPLESCRIPT_ERROR: "APPLESCRIPT_ERROR";
23
+ readonly GRAPH_AUTH_REQUIRED: "GRAPH_AUTH_REQUIRED";
24
+ readonly GRAPH_RATE_LIMITED: "GRAPH_RATE_LIMITED";
25
+ readonly GRAPH_PERMISSION_DENIED: "GRAPH_PERMISSION_DENIED";
26
+ readonly GRAPH_ERROR: "GRAPH_ERROR";
27
+ readonly ATTACHMENT_NOT_FOUND: "ATTACHMENT_NOT_FOUND";
28
+ readonly ATTACHMENT_TOO_LARGE: "ATTACHMENT_TOO_LARGE";
29
+ readonly ATTACHMENT_SAVE_ERROR: "ATTACHMENT_SAVE_ERROR";
30
+ readonly MAIL_SEND_ERROR: "MAIL_SEND_ERROR";
31
+ readonly RECURRING_EVENT_ERROR: "RECURRING_EVENT_ERROR";
32
+ readonly APPROVAL_EXPIRED: "APPROVAL_EXPIRED";
33
+ readonly APPROVAL_INVALID: "APPROVAL_INVALID";
34
+ readonly TARGET_CHANGED: "TARGET_CHANGED";
35
+ };
36
+ export type ErrorCode = (typeof ErrorCode)[keyof typeof ErrorCode];
37
+ /**
38
+ * Base class for all Outlook MCP errors.
39
+ */
40
+ export declare abstract class OutlookMcpError extends Error {
41
+ abstract readonly code: ErrorCode;
42
+ constructor(message: string);
43
+ }
44
+ /**
45
+ * Thrown when the Outlook database file cannot be found.
46
+ */
47
+ export declare class DatabaseNotFoundError extends OutlookMcpError {
48
+ readonly code: "DATABASE_NOT_FOUND";
49
+ constructor(path: string);
50
+ }
51
+ /**
52
+ * Thrown when the Outlook database is locked by another process.
53
+ */
54
+ export declare class DatabaseLockedError extends OutlookMcpError {
55
+ readonly code: "DATABASE_LOCKED";
56
+ constructor();
57
+ }
58
+ /**
59
+ * Thrown for general database errors.
60
+ */
61
+ export declare class DatabaseError extends OutlookMcpError {
62
+ readonly cause?: Error | undefined;
63
+ readonly code: "DATABASE_ERROR";
64
+ constructor(message: string, cause?: Error | undefined);
65
+ }
66
+ /**
67
+ * Thrown when an olk15 content file cannot be found.
68
+ */
69
+ export declare class ContentFileNotFoundError extends OutlookMcpError {
70
+ readonly code: "CONTENT_FILE_NOT_FOUND";
71
+ constructor(path: string);
72
+ }
73
+ /**
74
+ * Thrown when an olk15 file cannot be parsed.
75
+ */
76
+ export declare class ContentParseError extends OutlookMcpError {
77
+ readonly cause?: Error | undefined;
78
+ readonly code: "CONTENT_PARSE_ERROR";
79
+ constructor(path: string, cause?: Error | undefined);
80
+ }
81
+ /**
82
+ * Thrown for input validation errors.
83
+ */
84
+ export declare class ValidationError extends OutlookMcpError {
85
+ readonly code: "VALIDATION_ERROR";
86
+ constructor(message: string);
87
+ }
88
+ /**
89
+ * Thrown when a requested resource is not found.
90
+ */
91
+ export declare class NotFoundError extends OutlookMcpError {
92
+ readonly code: "NOT_FOUND";
93
+ constructor(resourceType: string, id: number | string);
94
+ }
95
+ /**
96
+ * Type guard to check if an error is an OutlookMcpError.
97
+ */
98
+ export declare function isOutlookMcpError(error: unknown): error is OutlookMcpError;
99
+ /**
100
+ * Wraps an unknown error in an OutlookMcpError if needed.
101
+ */
102
+ export declare function wrapError(error: unknown, defaultMessage: string): OutlookMcpError;
103
+ /**
104
+ * Thrown when Outlook is not running and needs to be.
105
+ */
106
+ export declare class OutlookNotRunningError extends OutlookMcpError {
107
+ readonly code: "OUTLOOK_NOT_RUNNING";
108
+ constructor();
109
+ }
110
+ /**
111
+ * Thrown when AppleScript automation permission is denied.
112
+ */
113
+ export declare class AppleScriptPermissionError extends OutlookMcpError {
114
+ readonly code: "APPLESCRIPT_PERMISSION_DENIED";
115
+ constructor();
116
+ }
117
+ /**
118
+ * Thrown when AppleScript execution times out.
119
+ */
120
+ export declare class AppleScriptTimeoutError extends OutlookMcpError {
121
+ readonly code: "APPLESCRIPT_TIMEOUT";
122
+ constructor(operation: string);
123
+ }
124
+ /**
125
+ * Thrown for general AppleScript errors.
126
+ */
127
+ export declare class AppleScriptError extends OutlookMcpError {
128
+ readonly cause?: Error | undefined;
129
+ readonly code: "APPLESCRIPT_ERROR";
130
+ constructor(message: string, cause?: Error | undefined);
131
+ }
132
+ /**
133
+ * Thrown when Microsoft Graph authentication is required.
134
+ */
135
+ export declare class GraphAuthRequiredError extends OutlookMcpError {
136
+ readonly code: "GRAPH_AUTH_REQUIRED";
137
+ constructor();
138
+ }
139
+ /**
140
+ * Thrown when the Graph API rate limit is exceeded.
141
+ */
142
+ export declare class GraphRateLimitedError extends OutlookMcpError {
143
+ readonly code: "GRAPH_RATE_LIMITED";
144
+ readonly retryAfter: number | undefined;
145
+ constructor(retryAfter?: number);
146
+ }
147
+ /**
148
+ * Thrown when the Graph API denies access due to permissions.
149
+ */
150
+ export declare class GraphPermissionDeniedError extends OutlookMcpError {
151
+ readonly code: "GRAPH_PERMISSION_DENIED";
152
+ constructor(scope?: string);
153
+ }
154
+ /**
155
+ * Thrown for general Microsoft Graph API errors.
156
+ */
157
+ export declare class GraphError extends OutlookMcpError {
158
+ readonly cause?: Error | undefined;
159
+ readonly code: "GRAPH_ERROR";
160
+ constructor(message: string, cause?: Error | undefined);
161
+ }
162
+ /**
163
+ * Thrown when an attachment file cannot be found.
164
+ */
165
+ export declare class AttachmentNotFoundError extends OutlookMcpError {
166
+ readonly code: "ATTACHMENT_NOT_FOUND";
167
+ constructor(path: string);
168
+ }
169
+ /**
170
+ * Thrown when an attachment exceeds the size limit.
171
+ */
172
+ export declare class AttachmentTooLargeError extends OutlookMcpError {
173
+ readonly code: "ATTACHMENT_TOO_LARGE";
174
+ constructor(name: string, sizeBytes: number, maxBytes: number);
175
+ }
176
+ /**
177
+ * Thrown when saving an attachment to disk fails.
178
+ */
179
+ export declare class AttachmentSaveError extends OutlookMcpError {
180
+ readonly code: "ATTACHMENT_SAVE_ERROR";
181
+ constructor(name: string, reason: string);
182
+ }
183
+ /**
184
+ * Thrown when sending an email fails.
185
+ */
186
+ export declare class MailSendError extends OutlookMcpError {
187
+ readonly code: "MAIL_SEND_ERROR";
188
+ constructor(reason: string);
189
+ }
190
+ /**
191
+ * Thrown when there's an error with recurring events.
192
+ */
193
+ export declare class RecurringEventError extends OutlookMcpError {
194
+ readonly code: "RECURRING_EVENT_ERROR";
195
+ constructor(message: string);
196
+ }
197
+ /**
198
+ * Thrown when an approval token has expired.
199
+ */
200
+ export declare class ApprovalExpiredError extends OutlookMcpError {
201
+ readonly code: "APPROVAL_EXPIRED";
202
+ constructor();
203
+ }
204
+ /**
205
+ * Thrown when an approval token is invalid.
206
+ */
207
+ export declare class ApprovalInvalidError extends OutlookMcpError {
208
+ readonly code: "APPROVAL_INVALID";
209
+ constructor(reason: string);
210
+ }
211
+ /**
212
+ * Thrown when the target has been modified since the approval was generated.
213
+ */
214
+ export declare class TargetChangedError extends OutlookMcpError {
215
+ readonly code: "TARGET_CHANGED";
216
+ constructor();
217
+ }
218
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,306 @@
1
+ /**
2
+ * Copyright (c) 2026 JBC Tech Solutions, LLC
3
+ * Licensed under the MIT License. See LICENSE file in the project root.
4
+ */
5
+ /**
6
+ * Custom error classes for the Outlook MCP server.
7
+ */
8
+ /**
9
+ * Error codes for categorizing errors.
10
+ */
11
+ export const ErrorCode = {
12
+ DATABASE_NOT_FOUND: 'DATABASE_NOT_FOUND',
13
+ DATABASE_LOCKED: 'DATABASE_LOCKED',
14
+ DATABASE_ERROR: 'DATABASE_ERROR',
15
+ CONTENT_FILE_NOT_FOUND: 'CONTENT_FILE_NOT_FOUND',
16
+ CONTENT_PARSE_ERROR: 'CONTENT_PARSE_ERROR',
17
+ VALIDATION_ERROR: 'VALIDATION_ERROR',
18
+ NOT_FOUND: 'NOT_FOUND',
19
+ OUTLOOK_NOT_RUNNING: 'OUTLOOK_NOT_RUNNING',
20
+ APPLESCRIPT_PERMISSION_DENIED: 'APPLESCRIPT_PERMISSION_DENIED',
21
+ APPLESCRIPT_TIMEOUT: 'APPLESCRIPT_TIMEOUT',
22
+ APPLESCRIPT_ERROR: 'APPLESCRIPT_ERROR',
23
+ GRAPH_AUTH_REQUIRED: 'GRAPH_AUTH_REQUIRED',
24
+ GRAPH_RATE_LIMITED: 'GRAPH_RATE_LIMITED',
25
+ GRAPH_PERMISSION_DENIED: 'GRAPH_PERMISSION_DENIED',
26
+ GRAPH_ERROR: 'GRAPH_ERROR',
27
+ ATTACHMENT_NOT_FOUND: 'ATTACHMENT_NOT_FOUND',
28
+ ATTACHMENT_TOO_LARGE: 'ATTACHMENT_TOO_LARGE',
29
+ ATTACHMENT_SAVE_ERROR: 'ATTACHMENT_SAVE_ERROR',
30
+ MAIL_SEND_ERROR: 'MAIL_SEND_ERROR',
31
+ RECURRING_EVENT_ERROR: 'RECURRING_EVENT_ERROR',
32
+ APPROVAL_EXPIRED: 'APPROVAL_EXPIRED',
33
+ APPROVAL_INVALID: 'APPROVAL_INVALID',
34
+ TARGET_CHANGED: 'TARGET_CHANGED',
35
+ };
36
+ /**
37
+ * Base class for all Outlook MCP errors.
38
+ */
39
+ export class OutlookMcpError extends Error {
40
+ constructor(message) {
41
+ super(message);
42
+ this.name = this.constructor.name;
43
+ // Maintains proper stack trace for where error was thrown
44
+ Error.captureStackTrace(this, this.constructor);
45
+ }
46
+ }
47
+ /**
48
+ * Thrown when the Outlook database file cannot be found.
49
+ */
50
+ export class DatabaseNotFoundError extends OutlookMcpError {
51
+ code = ErrorCode.DATABASE_NOT_FOUND;
52
+ constructor(path) {
53
+ super(`Outlook database not found at: ${path}. ` +
54
+ 'Make sure Outlook for Mac has been opened at least once.');
55
+ }
56
+ }
57
+ /**
58
+ * Thrown when the Outlook database is locked by another process.
59
+ */
60
+ export class DatabaseLockedError extends OutlookMcpError {
61
+ code = ErrorCode.DATABASE_LOCKED;
62
+ constructor() {
63
+ super('Outlook database is locked. ' +
64
+ 'This may happen during a sync operation. Please try again in a few seconds.');
65
+ }
66
+ }
67
+ /**
68
+ * Thrown for general database errors.
69
+ */
70
+ export class DatabaseError extends OutlookMcpError {
71
+ cause;
72
+ code = ErrorCode.DATABASE_ERROR;
73
+ constructor(message, cause) {
74
+ super(message);
75
+ this.cause = cause;
76
+ }
77
+ }
78
+ /**
79
+ * Thrown when an olk15 content file cannot be found.
80
+ */
81
+ export class ContentFileNotFoundError extends OutlookMcpError {
82
+ code = ErrorCode.CONTENT_FILE_NOT_FOUND;
83
+ constructor(path) {
84
+ super(`Content file not found: ${path}`);
85
+ }
86
+ }
87
+ /**
88
+ * Thrown when an olk15 file cannot be parsed.
89
+ */
90
+ export class ContentParseError extends OutlookMcpError {
91
+ cause;
92
+ code = ErrorCode.CONTENT_PARSE_ERROR;
93
+ constructor(path, cause) {
94
+ super(`Failed to parse content file: ${path}`);
95
+ this.cause = cause;
96
+ }
97
+ }
98
+ /**
99
+ * Thrown for input validation errors.
100
+ */
101
+ export class ValidationError extends OutlookMcpError {
102
+ code = ErrorCode.VALIDATION_ERROR;
103
+ constructor(message) {
104
+ super(message);
105
+ }
106
+ }
107
+ /**
108
+ * Thrown when a requested resource is not found.
109
+ */
110
+ export class NotFoundError extends OutlookMcpError {
111
+ code = ErrorCode.NOT_FOUND;
112
+ constructor(resourceType, id) {
113
+ super(`${resourceType} with ID ${id} not found`);
114
+ }
115
+ }
116
+ /**
117
+ * Type guard to check if an error is an OutlookMcpError.
118
+ */
119
+ export function isOutlookMcpError(error) {
120
+ return error instanceof OutlookMcpError;
121
+ }
122
+ /**
123
+ * Wraps an unknown error in an OutlookMcpError if needed.
124
+ */
125
+ export function wrapError(error, defaultMessage) {
126
+ if (isOutlookMcpError(error)) {
127
+ return error;
128
+ }
129
+ if (error instanceof Error) {
130
+ return new DatabaseError(error.message, error);
131
+ }
132
+ return new DatabaseError(defaultMessage);
133
+ }
134
+ // =============================================================================
135
+ // AppleScript Errors
136
+ // =============================================================================
137
+ /**
138
+ * Thrown when Outlook is not running and needs to be.
139
+ */
140
+ export class OutlookNotRunningError extends OutlookMcpError {
141
+ code = ErrorCode.OUTLOOK_NOT_RUNNING;
142
+ constructor() {
143
+ super('Microsoft Outlook is not running. ' +
144
+ 'Please start Outlook and try again.');
145
+ }
146
+ }
147
+ /**
148
+ * Thrown when AppleScript automation permission is denied.
149
+ */
150
+ export class AppleScriptPermissionError extends OutlookMcpError {
151
+ code = ErrorCode.APPLESCRIPT_PERMISSION_DENIED;
152
+ constructor() {
153
+ super('Automation permission denied for Microsoft Outlook. ' +
154
+ 'Please grant access in System Settings > Privacy & Security > Automation.');
155
+ }
156
+ }
157
+ /**
158
+ * Thrown when AppleScript execution times out.
159
+ */
160
+ export class AppleScriptTimeoutError extends OutlookMcpError {
161
+ code = ErrorCode.APPLESCRIPT_TIMEOUT;
162
+ constructor(operation) {
163
+ super(`AppleScript operation timed out: ${operation}. ` +
164
+ 'This may happen with large data sets. Try reducing the limit.');
165
+ }
166
+ }
167
+ /**
168
+ * Thrown for general AppleScript errors.
169
+ */
170
+ export class AppleScriptError extends OutlookMcpError {
171
+ cause;
172
+ code = ErrorCode.APPLESCRIPT_ERROR;
173
+ constructor(message, cause) {
174
+ super(message);
175
+ this.cause = cause;
176
+ }
177
+ }
178
+ // =============================================================================
179
+ // Microsoft Graph API Errors
180
+ // =============================================================================
181
+ /**
182
+ * Thrown when Microsoft Graph authentication is required.
183
+ */
184
+ export class GraphAuthRequiredError extends OutlookMcpError {
185
+ code = ErrorCode.GRAPH_AUTH_REQUIRED;
186
+ constructor() {
187
+ super('Microsoft Graph authentication required. ' +
188
+ 'Run: npx @jbctechsolutions/mcp-office365 auth');
189
+ }
190
+ }
191
+ /**
192
+ * Thrown when the Graph API rate limit is exceeded.
193
+ */
194
+ export class GraphRateLimitedError extends OutlookMcpError {
195
+ code = ErrorCode.GRAPH_RATE_LIMITED;
196
+ retryAfter;
197
+ constructor(retryAfter) {
198
+ super('Microsoft Graph API rate limit exceeded. ' +
199
+ (retryAfter != null ? `Retry after ${retryAfter} seconds.` : 'Please try again later.'));
200
+ this.retryAfter = retryAfter;
201
+ }
202
+ }
203
+ /**
204
+ * Thrown when the Graph API denies access due to permissions.
205
+ */
206
+ export class GraphPermissionDeniedError extends OutlookMcpError {
207
+ code = ErrorCode.GRAPH_PERMISSION_DENIED;
208
+ constructor(scope) {
209
+ super('Microsoft Graph permission denied. ' +
210
+ (scope != null
211
+ ? `The application needs the '${scope}' permission.`
212
+ : 'Please check your application permissions in Azure AD.'));
213
+ }
214
+ }
215
+ /**
216
+ * Thrown for general Microsoft Graph API errors.
217
+ */
218
+ export class GraphError extends OutlookMcpError {
219
+ cause;
220
+ code = ErrorCode.GRAPH_ERROR;
221
+ constructor(message, cause) {
222
+ super(message);
223
+ this.cause = cause;
224
+ }
225
+ }
226
+ // =============================================================================
227
+ // Event Management and Email Errors
228
+ // =============================================================================
229
+ /**
230
+ * Thrown when an attachment file cannot be found.
231
+ */
232
+ export class AttachmentNotFoundError extends OutlookMcpError {
233
+ code = ErrorCode.ATTACHMENT_NOT_FOUND;
234
+ constructor(path) {
235
+ super(`Attachment file not found: ${path}. Please check the file path exists.`);
236
+ }
237
+ }
238
+ /**
239
+ * Thrown when an attachment exceeds the size limit.
240
+ */
241
+ export class AttachmentTooLargeError extends OutlookMcpError {
242
+ code = ErrorCode.ATTACHMENT_TOO_LARGE;
243
+ constructor(name, sizeBytes, maxBytes) {
244
+ super(`Attachment "${name}" is ${Math.round(sizeBytes / 1024 / 1024)}MB ` +
245
+ `which exceeds the maximum size of ${Math.round(maxBytes / 1024 / 1024)}MB.`);
246
+ }
247
+ }
248
+ /**
249
+ * Thrown when saving an attachment to disk fails.
250
+ */
251
+ export class AttachmentSaveError extends OutlookMcpError {
252
+ code = ErrorCode.ATTACHMENT_SAVE_ERROR;
253
+ constructor(name, reason) {
254
+ super(`Failed to save attachment "${name}": ${reason}`);
255
+ }
256
+ }
257
+ /**
258
+ * Thrown when sending an email fails.
259
+ */
260
+ export class MailSendError extends OutlookMcpError {
261
+ code = ErrorCode.MAIL_SEND_ERROR;
262
+ constructor(reason) {
263
+ super(`Failed to send email: ${reason}`);
264
+ }
265
+ }
266
+ /**
267
+ * Thrown when there's an error with recurring events.
268
+ */
269
+ export class RecurringEventError extends OutlookMcpError {
270
+ code = ErrorCode.RECURRING_EVENT_ERROR;
271
+ constructor(message) {
272
+ super(message);
273
+ }
274
+ }
275
+ // =============================================================================
276
+ // Approval Errors
277
+ // =============================================================================
278
+ /**
279
+ * Thrown when an approval token has expired.
280
+ */
281
+ export class ApprovalExpiredError extends OutlookMcpError {
282
+ code = ErrorCode.APPROVAL_EXPIRED;
283
+ constructor() {
284
+ super('Approval token has expired. Please prepare the operation again.');
285
+ }
286
+ }
287
+ /**
288
+ * Thrown when an approval token is invalid.
289
+ */
290
+ export class ApprovalInvalidError extends OutlookMcpError {
291
+ code = ErrorCode.APPROVAL_INVALID;
292
+ constructor(reason) {
293
+ super(`Invalid approval token: ${reason}`);
294
+ }
295
+ }
296
+ /**
297
+ * Thrown when the target has been modified since the approval was generated.
298
+ */
299
+ export class TargetChangedError extends OutlookMcpError {
300
+ code = ErrorCode.TARGET_CHANGED;
301
+ constructor() {
302
+ super('The target has been modified since the approval was generated. ' +
303
+ 'Please prepare the operation again.');
304
+ }
305
+ }
306
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Copyright (c) 2026 JBC Tech Solutions, LLC
3
+ * Licensed under the MIT License. See LICENSE file in the project root.
4
+ */
5
+ /**
6
+ * Utility functions and error classes.
7
+ */
8
+ export { APPLE_EPOCH_OFFSET, appleTimestampToIso, appleTimestampToDate, isoToAppleTimestamp, dateToAppleTimestamp, } from './dates.js';
9
+ export { ErrorCode, OutlookMcpError, DatabaseNotFoundError, DatabaseLockedError, DatabaseError, ContentFileNotFoundError, ContentParseError, ValidationError, NotFoundError, isOutlookMcpError, wrapError, } from './errors.js';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AAEH,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,SAAS,EACT,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,aAAa,EACb,wBAAwB,EACxB,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,SAAS,GACV,MAAM,aAAa,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Copyright (c) 2026 JBC Tech Solutions, LLC
3
+ * Licensed under the MIT License. See LICENSE file in the project root.
4
+ */
5
+ /**
6
+ * Utility functions and error classes.
7
+ */
8
+ export { APPLE_EPOCH_OFFSET, appleTimestampToIso, appleTimestampToDate, isoToAppleTimestamp, dateToAppleTimestamp, } from './dates.js';
9
+ export { ErrorCode, OutlookMcpError, DatabaseNotFoundError, DatabaseLockedError, DatabaseError, ContentFileNotFoundError, ContentParseError, ValidationError, NotFoundError, isOutlookMcpError, wrapError, } from './errors.js';
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AAEH,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,SAAS,EACT,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,aAAa,EACb,wBAAwB,EACxB,iBAAiB,EACjB,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,SAAS,GACV,MAAM,aAAa,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Copyright (c) 2026 JBC Tech Solutions, LLC
3
+ * Licensed under the MIT License. See LICENSE file in the project root.
4
+ */
5
+ /**
6
+ * Self-contained HTML visualization renderer for Planner data.
7
+ * All styles are inline -- no external dependencies.
8
+ */
9
+ import { type PlanVisualizationData } from './types.js';
10
+ /**
11
+ * Render a Kanban board as self-contained HTML with CSS Grid.
12
+ */
13
+ export declare function renderKanbanHtml(data: PlanVisualizationData): string;
14
+ /**
15
+ * Render a Gantt chart as self-contained HTML with CSS positioning.
16
+ */
17
+ export declare function renderGanttHtml(data: PlanVisualizationData): string;
18
+ /**
19
+ * Render a summary dashboard as self-contained HTML.
20
+ */
21
+ export declare function renderSummaryHtml(data: PlanVisualizationData): string;
22
+ /**
23
+ * Render a burndown chart as self-contained HTML with an inline SVG line chart.
24
+ */
25
+ export declare function renderBurndownHtml(data: PlanVisualizationData): string;
26
+ //# sourceMappingURL=html.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../../src/visualization/html.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;GAGG;AAEH,OAAO,EACL,KAAK,qBAAqB,EAI3B,MAAM,YAAY,CAAC;AAcpB;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,CA2CpE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,CA4EnE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,CAkFrE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,qBAAqB,GAAG,MAAM,CA2FtE"}