@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 @@
1
+ {"version":3,"file":"scripts.js","sourceRoot":"","sources":["../../src/applescript/scripts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,87 @@
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
+ * Creates a hash of an email's critical properties.
7
+ * Used to detect if the email changed between prepare and confirm.
8
+ */
9
+ export declare function hashEmailForApproval(email: {
10
+ id: number;
11
+ subject: string | null;
12
+ folderId: number;
13
+ timeReceived: number | null;
14
+ }): string;
15
+ /**
16
+ * Creates a hash of a folder's critical properties.
17
+ * Used to detect if the folder changed between prepare and confirm.
18
+ */
19
+ export declare function hashFolderForApproval(folder: {
20
+ id: number;
21
+ name: string | null;
22
+ messageCount: number;
23
+ }): string;
24
+ /**
25
+ * Creates a hash of a draft's critical properties for send approval.
26
+ * Used to detect if the draft changed between prepare and confirm.
27
+ */
28
+ export declare function hashDraftForSend(draft: {
29
+ id: number;
30
+ subject: string | null;
31
+ recipientCount: number;
32
+ }): string;
33
+ /**
34
+ * Creates a hash for a direct send (compose-and-send) approval.
35
+ * Captures the recipient counts that define the send scope.
36
+ */
37
+ export declare function hashDirectSendForApproval(params: {
38
+ subject: string;
39
+ toCount: number;
40
+ ccCount: number;
41
+ bccCount: number;
42
+ }): string;
43
+ /**
44
+ * Creates a hash for a reply approval.
45
+ * Captures the original message ID, comment length, and reply-all flag.
46
+ */
47
+ export declare function hashReplyForApproval(params: {
48
+ originalId: number;
49
+ commentLength: number;
50
+ replyAll: boolean;
51
+ }): string;
52
+ /**
53
+ * Creates a hash for a forward approval.
54
+ * Captures the original message ID and the number of forward recipients.
55
+ */
56
+ export declare function hashForwardForApproval(params: {
57
+ originalId: number;
58
+ recipientCount: number;
59
+ }): string;
60
+ /**
61
+ * Creates a hash of a calendar event's critical properties.
62
+ * Used to detect if the event changed between prepare and confirm.
63
+ */
64
+ export declare function hashEventForApproval(event: {
65
+ id: number;
66
+ subject: string | null;
67
+ startDateTime: string | null;
68
+ }): string;
69
+ /**
70
+ * Creates a hash of a contact's critical properties.
71
+ * Used to detect if the contact changed between prepare and confirm.
72
+ */
73
+ export declare function hashContactForApproval(contact: {
74
+ id: number;
75
+ displayName: string | null;
76
+ emailAddress: string | null;
77
+ }): string;
78
+ /**
79
+ * Creates a hash of a task's critical properties.
80
+ * Used to detect if the task changed between prepare and confirm.
81
+ */
82
+ export declare function hashTaskForApproval(task: {
83
+ taskId: string;
84
+ title: string | null;
85
+ listId: string;
86
+ }): string;
87
+ //# sourceMappingURL=hash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../../src/approval/hash.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,GAAG,MAAM,CAKT;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAC5C,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,MAAM,CAKT;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;CACxB,GAAG,MAAM,CAKT;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,MAAM,CAKT;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;CACnB,GAAG,MAAM,CAKT;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;CACxB,GAAG,MAAM,CAKT;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B,GAAG,MAAM,CAKT;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE;IAC9C,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,GAAG,MAAM,CAKT;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,MAAM,CAKT"}
@@ -0,0 +1,102 @@
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
+ * Target hashing for approval tokens.
7
+ *
8
+ * Generates hashes of critical properties to detect if a target
9
+ * has been modified between prepare and confirm.
10
+ */
11
+ import { createHash } from 'node:crypto';
12
+ /**
13
+ * Creates a hash of an email's critical properties.
14
+ * Used to detect if the email changed between prepare and confirm.
15
+ */
16
+ export function hashEmailForApproval(email) {
17
+ return createHash('sha256')
18
+ .update(`${email.id}:${email.subject ?? ''}:${email.folderId}:${email.timeReceived ?? 0}`)
19
+ .digest('hex')
20
+ .slice(0, 16);
21
+ }
22
+ /**
23
+ * Creates a hash of a folder's critical properties.
24
+ * Used to detect if the folder changed between prepare and confirm.
25
+ */
26
+ export function hashFolderForApproval(folder) {
27
+ return createHash('sha256')
28
+ .update(`${folder.id}:${folder.name ?? ''}:${folder.messageCount}`)
29
+ .digest('hex')
30
+ .slice(0, 16);
31
+ }
32
+ /**
33
+ * Creates a hash of a draft's critical properties for send approval.
34
+ * Used to detect if the draft changed between prepare and confirm.
35
+ */
36
+ export function hashDraftForSend(draft) {
37
+ return createHash('sha256')
38
+ .update(`${draft.id}:${draft.subject ?? ''}:${draft.recipientCount}`)
39
+ .digest('hex')
40
+ .slice(0, 16);
41
+ }
42
+ /**
43
+ * Creates a hash for a direct send (compose-and-send) approval.
44
+ * Captures the recipient counts that define the send scope.
45
+ */
46
+ export function hashDirectSendForApproval(params) {
47
+ return createHash('sha256')
48
+ .update(`${params.subject}:${params.toCount}:${params.ccCount}:${params.bccCount}`)
49
+ .digest('hex')
50
+ .slice(0, 16);
51
+ }
52
+ /**
53
+ * Creates a hash for a reply approval.
54
+ * Captures the original message ID, comment length, and reply-all flag.
55
+ */
56
+ export function hashReplyForApproval(params) {
57
+ return createHash('sha256')
58
+ .update(`${params.originalId}:${params.commentLength}:${params.replyAll}`)
59
+ .digest('hex')
60
+ .slice(0, 16);
61
+ }
62
+ /**
63
+ * Creates a hash for a forward approval.
64
+ * Captures the original message ID and the number of forward recipients.
65
+ */
66
+ export function hashForwardForApproval(params) {
67
+ return createHash('sha256')
68
+ .update(`${params.originalId}:${params.recipientCount}`)
69
+ .digest('hex')
70
+ .slice(0, 16);
71
+ }
72
+ /**
73
+ * Creates a hash of a calendar event's critical properties.
74
+ * Used to detect if the event changed between prepare and confirm.
75
+ */
76
+ export function hashEventForApproval(event) {
77
+ return createHash('sha256')
78
+ .update(`${event.id}:${event.subject ?? ''}:${event.startDateTime ?? ''}`)
79
+ .digest('hex')
80
+ .slice(0, 16);
81
+ }
82
+ /**
83
+ * Creates a hash of a contact's critical properties.
84
+ * Used to detect if the contact changed between prepare and confirm.
85
+ */
86
+ export function hashContactForApproval(contact) {
87
+ return createHash('sha256')
88
+ .update(`${contact.id}:${contact.displayName ?? ''}:${contact.emailAddress ?? ''}`)
89
+ .digest('hex')
90
+ .slice(0, 16);
91
+ }
92
+ /**
93
+ * Creates a hash of a task's critical properties.
94
+ * Used to detect if the task changed between prepare and confirm.
95
+ */
96
+ export function hashTaskForApproval(task) {
97
+ return createHash('sha256')
98
+ .update(`${task.taskId}:${task.title ?? ''}:${task.listId}`)
99
+ .digest('hex')
100
+ .slice(0, 16);
101
+ }
102
+ //# sourceMappingURL=hash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash.js","sourceRoot":"","sources":["../../src/approval/hash.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
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
+ * Approval token system for safe destructive operations.
7
+ *
8
+ * Re-exports all approval types, hashing, and token management.
9
+ */
10
+ export { type OperationType, type TargetType, type ApprovalToken, type ValidationErrorReason, type ValidationResult, } from './types.js';
11
+ export { hashEmailForApproval, hashFolderForApproval, hashDraftForSend, hashDirectSendForApproval, hashReplyForApproval, hashForwardForApproval, hashEventForApproval, hashContactForApproval, hashTaskForApproval, } from './hash.js';
12
+ export { ApprovalTokenManager } from './token-manager.js';
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/approval/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AAEH,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,GACtB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,yBAAyB,EACzB,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Copyright (c) 2026 JBC Tech Solutions, LLC
3
+ * Licensed under the MIT License. See LICENSE file in the project root.
4
+ */
5
+ export { hashEmailForApproval, hashFolderForApproval, hashDraftForSend, hashDirectSendForApproval, hashReplyForApproval, hashForwardForApproval, hashEventForApproval, hashContactForApproval, hashTaskForApproval, } from './hash.js';
6
+ export { ApprovalTokenManager } from './token-manager.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/approval/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAgBH,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,yBAAyB,EACzB,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,GACpB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Copyright (c) 2026 JBC Tech Solutions, LLC
3
+ * Licensed under the MIT License. See LICENSE file in the project root.
4
+ */
5
+ import type { OperationType, TargetType, ApprovalToken, ValidationResult } from './types.js';
6
+ /**
7
+ * Manages approval tokens for destructive operations.
8
+ *
9
+ * Tokens are stored in memory and are single-use. They expire
10
+ * after a configurable TTL (default 5 minutes).
11
+ */
12
+ export declare class ApprovalTokenManager {
13
+ private readonly tokens;
14
+ private readonly ttlMs;
15
+ constructor(ttlMs?: number);
16
+ /**
17
+ * Generates a new approval token for a destructive operation.
18
+ */
19
+ generateToken(params: {
20
+ operation: OperationType;
21
+ targetType: TargetType;
22
+ targetId: number;
23
+ targetHash: string;
24
+ metadata?: Record<string, unknown>;
25
+ }): ApprovalToken;
26
+ /**
27
+ * Looks up a token by ID without consuming or validating it.
28
+ * Returns undefined if the token does not exist.
29
+ */
30
+ lookupToken(tokenId: string): ApprovalToken | undefined;
31
+ /**
32
+ * Validates a token without consuming it or modifying state.
33
+ * Checks existence, expiry, operation match, and target match.
34
+ */
35
+ validateToken(tokenId: string, operation: OperationType, targetId: number): ValidationResult;
36
+ /**
37
+ * Validates and consumes a token (one-time use).
38
+ * On success, the token is removed from the store.
39
+ */
40
+ consumeToken(tokenId: string, operation: OperationType, targetId: number): ValidationResult;
41
+ /**
42
+ * Removes all expired tokens from the store.
43
+ */
44
+ cleanupExpiredTokens(): void;
45
+ /**
46
+ * Returns the number of active (non-expired) tokens.
47
+ * Useful for testing and monitoring.
48
+ */
49
+ get size(): number;
50
+ }
51
+ //# sourceMappingURL=token-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-manager.d.ts","sourceRoot":"","sources":["../../src/approval/token-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAa7F;;;;;GAKG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAC3D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;gBAEnB,KAAK,GAAE,MAAuB;IAI1C;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE;QACpB,SAAS,EAAE,aAAa,CAAC;QACzB,UAAU,EAAE,UAAU,CAAC;QACvB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,GAAG,aAAa;IAsBjB;;;OAGG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIvD;;;OAGG;IACH,aAAa,CACX,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,aAAa,EACxB,QAAQ,EAAE,MAAM,GACf,gBAAgB;IAsBnB;;;OAGG;IACH,YAAY,CACV,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,aAAa,EACxB,QAAQ,EAAE,MAAM,GACf,gBAAgB;IAUnB;;OAEG;IACH,oBAAoB,IAAI,IAAI;IAS5B;;;OAGG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF"}
@@ -0,0 +1,111 @@
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
+ * Approval token manager.
7
+ *
8
+ * Manages the lifecycle of approval tokens: generation, validation,
9
+ * consumption (one-time use), and expiry cleanup.
10
+ */
11
+ import { randomUUID } from 'node:crypto';
12
+ // =============================================================================
13
+ // Constants
14
+ // =============================================================================
15
+ const DEFAULT_TTL_MS = 5 * 60 * 1000; // 5 minutes
16
+ const CLEANUP_THRESHOLD = 100;
17
+ // =============================================================================
18
+ // Token Manager
19
+ // =============================================================================
20
+ /**
21
+ * Manages approval tokens for destructive operations.
22
+ *
23
+ * Tokens are stored in memory and are single-use. They expire
24
+ * after a configurable TTL (default 5 minutes).
25
+ */
26
+ export class ApprovalTokenManager {
27
+ tokens = new Map();
28
+ ttlMs;
29
+ constructor(ttlMs = DEFAULT_TTL_MS) {
30
+ this.ttlMs = ttlMs;
31
+ }
32
+ /**
33
+ * Generates a new approval token for a destructive operation.
34
+ */
35
+ generateToken(params) {
36
+ // Clean up expired tokens if the map is getting large
37
+ if (this.tokens.size > CLEANUP_THRESHOLD) {
38
+ this.cleanupExpiredTokens();
39
+ }
40
+ const now = Date.now();
41
+ const token = {
42
+ tokenId: randomUUID(),
43
+ operation: params.operation,
44
+ targetType: params.targetType,
45
+ targetId: params.targetId,
46
+ targetHash: params.targetHash,
47
+ createdAt: now,
48
+ expiresAt: now + this.ttlMs,
49
+ metadata: Object.freeze({ ...params.metadata }),
50
+ };
51
+ this.tokens.set(token.tokenId, token);
52
+ return token;
53
+ }
54
+ /**
55
+ * Looks up a token by ID without consuming or validating it.
56
+ * Returns undefined if the token does not exist.
57
+ */
58
+ lookupToken(tokenId) {
59
+ return this.tokens.get(tokenId);
60
+ }
61
+ /**
62
+ * Validates a token without consuming it or modifying state.
63
+ * Checks existence, expiry, operation match, and target match.
64
+ */
65
+ validateToken(tokenId, operation, targetId) {
66
+ const token = this.tokens.get(tokenId);
67
+ if (token == null) {
68
+ return { valid: false, error: 'NOT_FOUND' };
69
+ }
70
+ if (Date.now() > token.expiresAt) {
71
+ return { valid: false, error: 'EXPIRED' };
72
+ }
73
+ if (token.operation !== operation) {
74
+ return { valid: false, error: 'OPERATION_MISMATCH' };
75
+ }
76
+ if (token.targetId !== targetId) {
77
+ return { valid: false, error: 'TARGET_MISMATCH' };
78
+ }
79
+ return { valid: true, token };
80
+ }
81
+ /**
82
+ * Validates and consumes a token (one-time use).
83
+ * On success, the token is removed from the store.
84
+ */
85
+ consumeToken(tokenId, operation, targetId) {
86
+ const result = this.validateToken(tokenId, operation, targetId);
87
+ if (result.valid) {
88
+ this.tokens.delete(tokenId);
89
+ }
90
+ return result;
91
+ }
92
+ /**
93
+ * Removes all expired tokens from the store.
94
+ */
95
+ cleanupExpiredTokens() {
96
+ const now = Date.now();
97
+ for (const [tokenId, token] of this.tokens) {
98
+ if (now > token.expiresAt) {
99
+ this.tokens.delete(tokenId);
100
+ }
101
+ }
102
+ }
103
+ /**
104
+ * Returns the number of active (non-expired) tokens.
105
+ * Useful for testing and monitoring.
106
+ */
107
+ get size() {
108
+ return this.tokens.size;
109
+ }
110
+ }
111
+ //# sourceMappingURL=token-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-manager.js","sourceRoot":"","sources":["../../src/approval/token-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
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
+ * Types for the approval token system.
7
+ *
8
+ * Provides safety for destructive mailbox operations by requiring
9
+ * explicit user approval per object via time-limited tokens.
10
+ */
11
+ /**
12
+ * Operations that require approval tokens.
13
+ */
14
+ export type OperationType = 'delete_email' | 'move_email' | 'archive_email' | 'junk_email' | 'delete_folder' | 'empty_folder' | 'batch_delete_emails' | 'batch_move_emails' | 'send_draft' | 'send_email' | 'reply_email' | 'forward_email' | 'delete_event' | 'delete_contact' | 'delete_task' | 'delete_mail_rule' | 'delete_task_list' | 'delete_contact_folder' | 'delete_category' | 'delete_focused_override' | 'delete_calendar_permission' | 'delete_channel' | 'send_channel_message' | 'reply_channel_message' | 'send_chat_message' | 'delete_checklist_item' | 'delete_linked_resource' | 'delete_task_attachment' | 'delete_bucket' | 'delete_planner_task' | 'add_message_reaction' | 'update_excel_range' | 'upload_file' | 'delete_drive_item';
15
+ /**
16
+ * Target resource types.
17
+ */
18
+ export type TargetType = 'email' | 'folder' | 'event' | 'contact' | 'task' | 'task_list' | 'rule' | 'contact_folder' | 'category' | 'focused_override' | 'calendar_permission' | 'channel' | 'channel_message' | 'chat_message' | 'checklist_item' | 'linked_resource' | 'task_attachment' | 'bucket' | 'planner_task' | 'message_reaction' | 'excel_range' | 'drive_item';
19
+ /**
20
+ * An approval token authorizing a single destructive operation.
21
+ */
22
+ export interface ApprovalToken {
23
+ readonly tokenId: string;
24
+ readonly operation: OperationType;
25
+ readonly targetType: TargetType;
26
+ readonly targetId: number;
27
+ readonly targetHash: string;
28
+ readonly createdAt: number;
29
+ readonly expiresAt: number;
30
+ readonly metadata: Readonly<Record<string, unknown>>;
31
+ }
32
+ /**
33
+ * Reasons a token validation can fail.
34
+ */
35
+ export type ValidationErrorReason = 'EXPIRED' | 'NOT_FOUND' | 'OPERATION_MISMATCH' | 'TARGET_MISMATCH' | 'TARGET_CHANGED' | 'ALREADY_CONSUMED';
36
+ /**
37
+ * Result of token validation.
38
+ */
39
+ export interface ValidationResult {
40
+ readonly valid: boolean;
41
+ readonly error?: ValidationErrorReason;
42
+ readonly token?: ApprovalToken;
43
+ }
44
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/approval/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;GAKG;AAMH;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,cAAc,GACd,YAAY,GACZ,eAAe,GACf,YAAY,GACZ,eAAe,GACf,cAAc,GACd,qBAAqB,GACrB,mBAAmB,GACnB,YAAY,GACZ,YAAY,GACZ,aAAa,GACb,eAAe,GACf,cAAc,GACd,gBAAgB,GAChB,aAAa,GACb,kBAAkB,GAClB,kBAAkB,GAClB,uBAAuB,GACvB,iBAAiB,GACjB,yBAAyB,GACzB,4BAA4B,GAC5B,gBAAgB,GAChB,sBAAsB,GACtB,uBAAuB,GACvB,mBAAmB,GACnB,uBAAuB,GACvB,wBAAwB,GACxB,wBAAwB,GACxB,eAAe,GACf,qBAAqB,GACrB,sBAAsB,GACtB,oBAAoB,GACpB,aAAa,GACb,mBAAmB,CAAC;AAExB;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,GAAG,gBAAgB,GAAG,UAAU,GAAG,kBAAkB,GAAG,qBAAqB,GAAG,SAAS,GAAG,iBAAiB,GAAG,cAAc,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,iBAAiB,GAAG,QAAQ,GAAG,cAAc,GAAG,kBAAkB,GAAG,aAAa,GAAG,YAAY,CAAC;AAM3W;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACtD;AAED;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAC7B,SAAS,GACT,WAAW,GACX,oBAAoB,GACpB,iBAAiB,GACjB,gBAAgB,GAChB,kBAAkB,CAAC;AAEvB;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,qBAAqB,CAAC;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC;CAChC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Copyright (c) 2026 JBC Tech Solutions, LLC
3
+ * Licensed under the MIT License. See LICENSE file in the project root.
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/approval/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Copyright (c) 2026 JBC Tech Solutions, LLC
3
+ * Licensed under the MIT License. See LICENSE file in the project root.
4
+ */
5
+ export interface CliCommand {
6
+ command: 'auth';
7
+ flags: string[];
8
+ }
9
+ /**
10
+ * Parses CLI arguments to determine if a subcommand was invoked.
11
+ * Returns null if no subcommand (normal MCP server mode).
12
+ */
13
+ export declare function parseCliCommand(args: string[]): CliCommand | null;
14
+ type PrintFn = (message: string) => void;
15
+ /**
16
+ * Handles the `auth` CLI subcommand.
17
+ *
18
+ * @param flags - CLI flags after "auth" (e.g., ["--status"])
19
+ * @param print - Output function (defaults to console.log)
20
+ * @returns Exit code (0 = success, 1 = failure)
21
+ */
22
+ export declare function handleAuthCommand(flags?: string[], print?: PrintFn): Promise<number>;
23
+ /**
24
+ * Creates a mutex that ensures only one auth flow runs at a time.
25
+ * Concurrent callers wait for the in-progress auth to complete.
26
+ * After completion (success or failure), the mutex resets for future calls.
27
+ */
28
+ export declare function createAuthMutex<T>(fn: () => Promise<T>): () => Promise<T>;
29
+ export {};
30
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAoBH,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,GAAG,IAAI,CASjE;AAED,KAAK,OAAO,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAEzC;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,KAAK,GAAE,MAAM,EAAO,EACpB,KAAK,GAAE,OAAqB,GAC3B,OAAO,CAAC,MAAM,CAAC,CAcjB;AAuFD;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,OAAO,CAAC,CAAC,CAAC,CAczE"}