@jbctechsolutions/mcp-office365 3.0.0 → 4.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 (340) hide show
  1. package/README.md +42 -65
  2. package/dist/approval/hash.d.ts +8 -8
  3. package/dist/approval/token-manager.d.ts +12 -6
  4. package/dist/approval/token-manager.d.ts.map +1 -1
  5. package/dist/approval/token-manager.js +11 -3
  6. package/dist/approval/token-manager.js.map +1 -1
  7. package/dist/approval/types.d.ts +7 -3
  8. package/dist/approval/types.d.ts.map +1 -1
  9. package/dist/cli.d.ts +4 -0
  10. package/dist/cli.d.ts.map +1 -1
  11. package/dist/cli.js +18 -3
  12. package/dist/cli.js.map +1 -1
  13. package/dist/database/repository.d.ts +48 -48
  14. package/dist/database/repository.d.ts.map +1 -1
  15. package/dist/database/repository.js.map +1 -1
  16. package/dist/delta/mirror.d.ts +67 -0
  17. package/dist/delta/mirror.d.ts.map +1 -0
  18. package/dist/delta/mirror.js +183 -0
  19. package/dist/delta/mirror.js.map +1 -0
  20. package/dist/graph/auth/account-id.d.ts +19 -0
  21. package/dist/graph/auth/account-id.d.ts.map +1 -0
  22. package/dist/graph/auth/account-id.js +55 -0
  23. package/dist/graph/auth/account-id.js.map +1 -0
  24. package/dist/graph/auth/config.d.ts +1 -1
  25. package/dist/graph/auth/config.d.ts.map +1 -1
  26. package/dist/graph/auth/config.js +8 -0
  27. package/dist/graph/auth/config.js.map +1 -1
  28. package/dist/graph/auth/index.d.ts +1 -0
  29. package/dist/graph/auth/index.d.ts.map +1 -1
  30. package/dist/graph/auth/index.js +1 -0
  31. package/dist/graph/auth/index.js.map +1 -1
  32. package/dist/graph/client/graph-client.d.ts +105 -0
  33. package/dist/graph/client/graph-client.d.ts.map +1 -1
  34. package/dist/graph/client/graph-client.js +414 -18
  35. package/dist/graph/client/graph-client.js.map +1 -1
  36. package/dist/graph/client/immutable-id-middleware.d.ts +50 -0
  37. package/dist/graph/client/immutable-id-middleware.d.ts.map +1 -0
  38. package/dist/graph/client/immutable-id-middleware.js +137 -0
  39. package/dist/graph/client/immutable-id-middleware.js.map +1 -0
  40. package/dist/graph/content-readers.d.ts +0 -12
  41. package/dist/graph/content-readers.d.ts.map +1 -1
  42. package/dist/graph/content-readers.js +0 -21
  43. package/dist/graph/content-readers.js.map +1 -1
  44. package/dist/graph/index.d.ts +5 -6
  45. package/dist/graph/index.d.ts.map +1 -1
  46. package/dist/graph/index.js +5 -6
  47. package/dist/graph/index.js.map +1 -1
  48. package/dist/graph/mailbox-adapter.d.ts +15 -15
  49. package/dist/graph/mappers/contact-mapper.d.ts +4 -1
  50. package/dist/graph/mappers/contact-mapper.d.ts.map +1 -1
  51. package/dist/graph/mappers/contact-mapper.js +7 -3
  52. package/dist/graph/mappers/contact-mapper.js.map +1 -1
  53. package/dist/graph/mappers/email-mapper.d.ts.map +1 -1
  54. package/dist/graph/mappers/email-mapper.js +7 -4
  55. package/dist/graph/mappers/email-mapper.js.map +1 -1
  56. package/dist/graph/mappers/event-mapper.d.ts.map +1 -1
  57. package/dist/graph/mappers/event-mapper.js +6 -3
  58. package/dist/graph/mappers/event-mapper.js.map +1 -1
  59. package/dist/graph/mappers/folder-mapper.d.ts +0 -4
  60. package/dist/graph/mappers/folder-mapper.d.ts.map +1 -1
  61. package/dist/graph/mappers/folder-mapper.js +9 -19
  62. package/dist/graph/mappers/folder-mapper.js.map +1 -1
  63. package/dist/graph/mappers/index.d.ts +2 -2
  64. package/dist/graph/mappers/index.d.ts.map +1 -1
  65. package/dist/graph/mappers/index.js +2 -2
  66. package/dist/graph/mappers/index.js.map +1 -1
  67. package/dist/graph/mappers/task-mapper.d.ts +4 -2
  68. package/dist/graph/mappers/task-mapper.d.ts.map +1 -1
  69. package/dist/graph/mappers/task-mapper.js +7 -5
  70. package/dist/graph/mappers/task-mapper.js.map +1 -1
  71. package/dist/graph/mappers/utils.d.ts +0 -10
  72. package/dist/graph/mappers/utils.d.ts.map +1 -1
  73. package/dist/graph/mappers/utils.js +0 -19
  74. package/dist/graph/mappers/utils.js.map +1 -1
  75. package/dist/graph/repository.d.ts +400 -270
  76. package/dist/graph/repository.d.ts.map +1 -1
  77. package/dist/graph/repository.js +739 -1046
  78. package/dist/graph/repository.js.map +1 -1
  79. package/dist/ids/next-action.d.ts +29 -0
  80. package/dist/ids/next-action.d.ts.map +1 -0
  81. package/dist/ids/next-action.js +58 -0
  82. package/dist/ids/next-action.js.map +1 -0
  83. package/dist/ids/resolver.d.ts +2 -1
  84. package/dist/ids/resolver.d.ts.map +1 -1
  85. package/dist/ids/resolver.js +19 -4
  86. package/dist/ids/resolver.js.map +1 -1
  87. package/dist/ids/schema.d.ts +91 -0
  88. package/dist/ids/schema.d.ts.map +1 -0
  89. package/dist/ids/schema.js +131 -0
  90. package/dist/ids/schema.js.map +1 -0
  91. package/dist/ids/token.d.ts +7 -1
  92. package/dist/ids/token.d.ts.map +1 -1
  93. package/dist/ids/token.js +46 -7
  94. package/dist/ids/token.js.map +1 -1
  95. package/dist/index.d.ts +4 -6
  96. package/dist/index.d.ts.map +1 -1
  97. package/dist/index.js +63 -100
  98. package/dist/index.js.map +1 -1
  99. package/dist/parsers/index.d.ts +0 -1
  100. package/dist/parsers/index.d.ts.map +1 -1
  101. package/dist/parsers/index.js +0 -1
  102. package/dist/parsers/index.js.map +1 -1
  103. package/dist/registry/all-tools.d.ts.map +1 -1
  104. package/dist/registry/all-tools.js +8 -4
  105. package/dist/registry/all-tools.js.map +1 -1
  106. package/dist/registry/context.d.ts +1 -7
  107. package/dist/registry/context.d.ts.map +1 -1
  108. package/dist/registry/context.js +0 -11
  109. package/dist/registry/context.js.map +1 -1
  110. package/dist/registry/elicit-links.d.ts +35 -0
  111. package/dist/registry/elicit-links.d.ts.map +1 -0
  112. package/dist/registry/elicit-links.js +102 -0
  113. package/dist/registry/elicit-links.js.map +1 -0
  114. package/dist/registry/elicitor.d.ts +24 -0
  115. package/dist/registry/elicitor.d.ts.map +1 -0
  116. package/dist/registry/elicitor.js +51 -0
  117. package/dist/registry/elicitor.js.map +1 -0
  118. package/dist/registry/index.d.ts +2 -2
  119. package/dist/registry/index.d.ts.map +1 -1
  120. package/dist/registry/index.js +1 -1
  121. package/dist/registry/index.js.map +1 -1
  122. package/dist/registry/registry.d.ts +11 -0
  123. package/dist/registry/registry.d.ts.map +1 -1
  124. package/dist/registry/registry.js +87 -0
  125. package/dist/registry/registry.js.map +1 -1
  126. package/dist/registry/types.d.ts +61 -13
  127. package/dist/registry/types.d.ts.map +1 -1
  128. package/dist/state/delta-store.d.ts +85 -0
  129. package/dist/state/delta-store.d.ts.map +1 -0
  130. package/dist/state/delta-store.js +124 -0
  131. package/dist/state/delta-store.js.map +1 -0
  132. package/dist/state/schema.d.ts +2 -3
  133. package/dist/state/schema.d.ts.map +1 -1
  134. package/dist/state/schema.js +26 -3
  135. package/dist/state/schema.js.map +1 -1
  136. package/dist/state/store.d.ts +3 -0
  137. package/dist/state/store.d.ts.map +1 -1
  138. package/dist/state/store.js +4 -0
  139. package/dist/state/store.js.map +1 -1
  140. package/dist/tools/calendar-graph.d.ts.map +1 -1
  141. package/dist/tools/calendar-graph.js +10 -9
  142. package/dist/tools/calendar-graph.js.map +1 -1
  143. package/dist/tools/calendar-permissions.d.ts +7 -7
  144. package/dist/tools/calendar-permissions.d.ts.map +1 -1
  145. package/dist/tools/calendar-permissions.js +7 -4
  146. package/dist/tools/calendar-permissions.js.map +1 -1
  147. package/dist/tools/calendar.d.ts +14 -114
  148. package/dist/tools/calendar.d.ts.map +1 -1
  149. package/dist/tools/calendar.js +41 -202
  150. package/dist/tools/calendar.js.map +1 -1
  151. package/dist/tools/categories.d.ts +4 -4
  152. package/dist/tools/categories.d.ts.map +1 -1
  153. package/dist/tools/categories.js +5 -2
  154. package/dist/tools/categories.js.map +1 -1
  155. package/dist/tools/checklist-items.d.ts +9 -9
  156. package/dist/tools/checklist-items.d.ts.map +1 -1
  157. package/dist/tools/checklist-items.js +8 -5
  158. package/dist/tools/checklist-items.js.map +1 -1
  159. package/dist/tools/contact-folders.d.ts +2 -2
  160. package/dist/tools/contact-folders.d.ts.map +1 -1
  161. package/dist/tools/contact-folders.js +5 -2
  162. package/dist/tools/contact-folders.js.map +1 -1
  163. package/dist/tools/contacts-graph.d.ts +1 -1
  164. package/dist/tools/contacts-graph.d.ts.map +1 -1
  165. package/dist/tools/contacts-graph.js +8 -6
  166. package/dist/tools/contacts-graph.js.map +1 -1
  167. package/dist/tools/contacts.d.ts +9 -44
  168. package/dist/tools/contacts.d.ts.map +1 -1
  169. package/dist/tools/contacts.js +23 -131
  170. package/dist/tools/contacts.js.map +1 -1
  171. package/dist/tools/excel.d.ts +10 -10
  172. package/dist/tools/excel.d.ts.map +1 -1
  173. package/dist/tools/excel.js +9 -6
  174. package/dist/tools/excel.js.map +1 -1
  175. package/dist/tools/focused-overrides.d.ts +4 -4
  176. package/dist/tools/focused-overrides.d.ts.map +1 -1
  177. package/dist/tools/focused-overrides.js +5 -2
  178. package/dist/tools/focused-overrides.js.map +1 -1
  179. package/dist/tools/index.d.ts +4 -5
  180. package/dist/tools/index.d.ts.map +1 -1
  181. package/dist/tools/index.js +4 -6
  182. package/dist/tools/index.js.map +1 -1
  183. package/dist/tools/linked-resources.d.ts +7 -7
  184. package/dist/tools/linked-resources.d.ts.map +1 -1
  185. package/dist/tools/linked-resources.js +7 -4
  186. package/dist/tools/linked-resources.js.map +1 -1
  187. package/dist/tools/mail-graph.d.ts.map +1 -1
  188. package/dist/tools/mail-graph.js +21 -12
  189. package/dist/tools/mail-graph.js.map +1 -1
  190. package/dist/tools/mail-rules.d.ts +8 -8
  191. package/dist/tools/mail-rules.d.ts.map +1 -1
  192. package/dist/tools/mail-rules.js +7 -7
  193. package/dist/tools/mail-rules.js.map +1 -1
  194. package/dist/tools/mail-send.d.ts +27 -27
  195. package/dist/tools/mail-send.d.ts.map +1 -1
  196. package/dist/tools/mail-send.js +30 -19
  197. package/dist/tools/mail-send.js.map +1 -1
  198. package/dist/tools/mail.d.ts +22 -79
  199. package/dist/tools/mail.d.ts.map +1 -1
  200. package/dist/tools/mail.js +45 -293
  201. package/dist/tools/mail.js.map +1 -1
  202. package/dist/tools/mailbox-organization.d.ts +34 -37
  203. package/dist/tools/mailbox-organization.d.ts.map +1 -1
  204. package/dist/tools/mailbox-organization.js +72 -64
  205. package/dist/tools/mailbox-organization.js.map +1 -1
  206. package/dist/tools/meetings.d.ts +14 -14
  207. package/dist/tools/meetings.d.ts.map +1 -1
  208. package/dist/tools/meetings.js +8 -6
  209. package/dist/tools/meetings.js.map +1 -1
  210. package/dist/tools/onedrive.d.ts +16 -16
  211. package/dist/tools/onedrive.d.ts.map +1 -1
  212. package/dist/tools/onedrive.js +16 -11
  213. package/dist/tools/onedrive.js.map +1 -1
  214. package/dist/tools/onenote.d.ts +63 -0
  215. package/dist/tools/onenote.d.ts.map +1 -0
  216. package/dist/tools/onenote.js +221 -0
  217. package/dist/tools/onenote.js.map +1 -0
  218. package/dist/tools/planner-visualization.d.ts +5 -5
  219. package/dist/tools/planner-visualization.d.ts.map +1 -1
  220. package/dist/tools/planner-visualization.js +5 -4
  221. package/dist/tools/planner-visualization.js.map +1 -1
  222. package/dist/tools/planner.d.ts +59 -39
  223. package/dist/tools/planner.d.ts.map +1 -1
  224. package/dist/tools/planner.js +48 -23
  225. package/dist/tools/planner.js.map +1 -1
  226. package/dist/tools/shared-mailbox.d.ts +164 -0
  227. package/dist/tools/shared-mailbox.d.ts.map +1 -0
  228. package/dist/tools/shared-mailbox.js +318 -0
  229. package/dist/tools/shared-mailbox.js.map +1 -0
  230. package/dist/tools/sharepoint-lists.d.ts +131 -0
  231. package/dist/tools/sharepoint-lists.d.ts.map +1 -0
  232. package/dist/tools/sharepoint-lists.js +246 -0
  233. package/dist/tools/sharepoint-lists.js.map +1 -0
  234. package/dist/tools/sharepoint.d.ts +14 -14
  235. package/dist/tools/sharepoint.d.ts.map +1 -1
  236. package/dist/tools/sharepoint.js +11 -9
  237. package/dist/tools/sharepoint.js.map +1 -1
  238. package/dist/tools/task-attachments.d.ts +7 -7
  239. package/dist/tools/task-attachments.d.ts.map +1 -1
  240. package/dist/tools/task-attachments.js +7 -4
  241. package/dist/tools/task-attachments.js.map +1 -1
  242. package/dist/tools/task-lists.d.ts +3 -3
  243. package/dist/tools/task-lists.d.ts.map +1 -1
  244. package/dist/tools/task-lists.js +10 -6
  245. package/dist/tools/task-lists.js.map +1 -1
  246. package/dist/tools/tasks-graph.d.ts +2 -2
  247. package/dist/tools/tasks-graph.d.ts.map +1 -1
  248. package/dist/tools/tasks-graph.js +6 -4
  249. package/dist/tools/tasks-graph.js.map +1 -1
  250. package/dist/tools/tasks.d.ts +8 -43
  251. package/dist/tools/tasks.d.ts.map +1 -1
  252. package/dist/tools/tasks.js +19 -122
  253. package/dist/tools/tasks.js.map +1 -1
  254. package/dist/tools/teams.d.ts +46 -46
  255. package/dist/tools/teams.d.ts.map +1 -1
  256. package/dist/tools/teams.js +34 -26
  257. package/dist/tools/teams.js.map +1 -1
  258. package/dist/tools/what-changed.d.ts +48 -0
  259. package/dist/tools/what-changed.d.ts.map +1 -0
  260. package/dist/tools/what-changed.js +149 -0
  261. package/dist/tools/what-changed.js.map +1 -0
  262. package/dist/types/calendar.d.ts +1 -1
  263. package/dist/types/calendar.d.ts.map +1 -1
  264. package/dist/types/calendar.js.map +1 -1
  265. package/dist/types/contacts.d.ts +1 -1
  266. package/dist/types/contacts.d.ts.map +1 -1
  267. package/dist/types/contacts.js.map +1 -1
  268. package/dist/types/mail.d.ts +1 -1
  269. package/dist/types/mail.d.ts.map +1 -1
  270. package/dist/types/mail.js.map +1 -1
  271. package/dist/utils/errors.d.ts +15 -34
  272. package/dist/utils/errors.d.ts.map +1 -1
  273. package/dist/utils/errors.js +13 -49
  274. package/dist/utils/errors.js.map +1 -1
  275. package/dist/visualization/types.d.ts +4 -4
  276. package/package.json +2 -3
  277. package/dist/applescript/account-repository.d.ts +0 -30
  278. package/dist/applescript/account-repository.d.ts.map +0 -1
  279. package/dist/applescript/account-repository.js +0 -38
  280. package/dist/applescript/account-repository.js.map +0 -1
  281. package/dist/applescript/account-scripts.d.ts +0 -21
  282. package/dist/applescript/account-scripts.d.ts.map +0 -1
  283. package/dist/applescript/account-scripts.js +0 -180
  284. package/dist/applescript/account-scripts.js.map +0 -1
  285. package/dist/applescript/calendar-manager.d.ts +0 -44
  286. package/dist/applescript/calendar-manager.d.ts.map +0 -1
  287. package/dist/applescript/calendar-manager.js +0 -92
  288. package/dist/applescript/calendar-manager.js.map +0 -1
  289. package/dist/applescript/calendar-writer.d.ts +0 -36
  290. package/dist/applescript/calendar-writer.d.ts.map +0 -1
  291. package/dist/applescript/calendar-writer.js +0 -94
  292. package/dist/applescript/calendar-writer.js.map +0 -1
  293. package/dist/applescript/content-readers.d.ts +0 -114
  294. package/dist/applescript/content-readers.d.ts.map +0 -1
  295. package/dist/applescript/content-readers.js +0 -328
  296. package/dist/applescript/content-readers.js.map +0 -1
  297. package/dist/applescript/executor.d.ts +0 -60
  298. package/dist/applescript/executor.d.ts.map +0 -1
  299. package/dist/applescript/executor.js +0 -173
  300. package/dist/applescript/executor.js.map +0 -1
  301. package/dist/applescript/index.d.ts +0 -20
  302. package/dist/applescript/index.d.ts.map +0 -1
  303. package/dist/applescript/index.js +0 -29
  304. package/dist/applescript/index.js.map +0 -1
  305. package/dist/applescript/mail-sender.d.ts +0 -38
  306. package/dist/applescript/mail-sender.d.ts.map +0 -1
  307. package/dist/applescript/mail-sender.js +0 -67
  308. package/dist/applescript/mail-sender.js.map +0 -1
  309. package/dist/applescript/parser.d.ts +0 -235
  310. package/dist/applescript/parser.d.ts.map +0 -1
  311. package/dist/applescript/parser.js +0 -496
  312. package/dist/applescript/parser.js.map +0 -1
  313. package/dist/applescript/repository.d.ts +0 -64
  314. package/dist/applescript/repository.d.ts.map +0 -1
  315. package/dist/applescript/repository.js +0 -444
  316. package/dist/applescript/repository.js.map +0 -1
  317. package/dist/applescript/scripts.d.ts +0 -265
  318. package/dist/applescript/scripts.d.ts.map +0 -1
  319. package/dist/applescript/scripts.js +0 -1483
  320. package/dist/applescript/scripts.js.map +0 -1
  321. package/dist/parsers/olk15.d.ts +0 -87
  322. package/dist/parsers/olk15.d.ts.map +0 -1
  323. package/dist/parsers/olk15.js +0 -368
  324. package/dist/parsers/olk15.js.map +0 -1
  325. package/dist/tools/accounts.d.ts +0 -37
  326. package/dist/tools/accounts.d.ts.map +0 -1
  327. package/dist/tools/accounts.js +0 -68
  328. package/dist/tools/accounts.js.map +0 -1
  329. package/dist/tools/calendar-apple.d.ts +0 -39
  330. package/dist/tools/calendar-apple.d.ts.map +0 -1
  331. package/dist/tools/calendar-apple.js +0 -159
  332. package/dist/tools/calendar-apple.js.map +0 -1
  333. package/dist/tools/mail-apple.d.ts +0 -40
  334. package/dist/tools/mail-apple.d.ts.map +0 -1
  335. package/dist/tools/mail-apple.js +0 -146
  336. package/dist/tools/mail-apple.js.map +0 -1
  337. package/dist/tools/notes.d.ts +0 -86
  338. package/dist/tools/notes.d.ts.map +0 -1
  339. package/dist/tools/notes.js +0 -202
  340. package/dist/tools/notes.js.map +0 -1
@@ -5,14 +5,13 @@
5
5
  /**
6
6
  * Microsoft Graph API module.
7
7
  *
8
- * Provides an alternative backend for the Outlook MCP server that uses
9
- * Microsoft Graph API instead of AppleScript. This is required for
10
- * "new Outlook" for Mac which doesn't expose data via AppleScript.
8
+ * Provides the backend for the Outlook MCP server, using the Microsoft Graph
9
+ * API for all data access.
11
10
  */
12
- export { loadGraphConfig, getAuthorityUrl, GRAPH_SCOPES, type GraphAuthConfig, createTokenCachePlugin, hasTokenCache, clearTokenCache, getTokenCacheDir, getTokenCacheFile, acquireTokenInteractive, acquireTokenSilent, getAccessToken, isAuthenticated, getAccount, signOut, resetMsalInstance, type DeviceCodeCallback, } from './auth/index.js';
11
+ export { loadGraphConfig, getAuthorityUrl, GRAPH_SCOPES, type GraphAuthConfig, createTokenCachePlugin, hasTokenCache, clearTokenCache, getTokenCacheDir, getTokenCacheFile, acquireTokenInteractive, acquireTokenSilent, getAccessToken, isAuthenticated, getAccount, signOut, resetMsalInstance, type DeviceCodeCallback, DEFAULT_ACCOUNT_ID, resolveAccountId, currentAccountId, resetAccountId, } from './auth/index.js';
13
12
  export { GraphClient, createGraphClient, ResponseCache, CacheTTL, createCacheKey, invalidateByPrefix, } from './client/index.js';
14
- export { mapMailFolderToRow, mapCalendarToFolderRow, mapTaskListToFolderRow, mapMessageToEmailRow, mapEventToEventRow, mapContactToContactRow, mapTaskToTaskRow, hashStringToNumber, isoToTimestamp, dateTimeTimeZoneToTimestamp, type TodoTaskWithList, } from './mappers/index.js';
13
+ export { mapMailFolderToRow, mapCalendarToFolderRow, mapMessageToEmailRow, mapEventToEventRow, mapContactToContactRow, mapTaskToTaskRow, isoToTimestamp, dateTimeTimeZoneToTimestamp, type TodoTaskWithList, } from './mappers/index.js';
15
14
  export { GraphRepository, createGraphRepository } from './repository.js';
16
15
  export { GraphMailboxAdapter } from './mailbox-adapter.js';
17
- export { GraphEmailContentReader, GraphEventContentReader, GraphContactContentReader, GraphTaskContentReader, GraphNoteContentReader, createGraphContentReaders, createGraphContentReadersWithClient, type GraphContentReaders, GRAPH_EMAIL_PATH_PREFIX, GRAPH_EVENT_PATH_PREFIX, GRAPH_CONTACT_PATH_PREFIX, GRAPH_TASK_PATH_PREFIX, } from './content-readers.js';
16
+ export { GraphEmailContentReader, GraphEventContentReader, GraphContactContentReader, GraphTaskContentReader, createGraphContentReaders, createGraphContentReadersWithClient, type GraphContentReaders, GRAPH_EMAIL_PATH_PREFIX, GRAPH_EVENT_PATH_PREFIX, GRAPH_CONTACT_PATH_PREFIX, GRAPH_TASK_PATH_PREFIX, } from './content-readers.js';
18
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/graph/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;GAMG;AAGH,OAAO,EACL,eAAe,EACf,eAAe,EACf,YAAY,EACZ,KAAK,eAAe,EACpB,sBAAsB,EACtB,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,UAAU,EACV,OAAO,EACP,iBAAiB,EACjB,KAAK,kBAAkB,GACxB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,QAAQ,EACR,cAAc,EACd,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,2BAA2B,EAC3B,KAAK,gBAAgB,GACtB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,mCAAmC,EACnC,KAAK,mBAAmB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/graph/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;GAKG;AAGH,OAAO,EACL,eAAe,EACf,eAAe,EACf,YAAY,EACZ,KAAK,eAAe,EACpB,sBAAsB,EACtB,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,UAAU,EACV,OAAO,EACP,iBAAiB,EACjB,KAAK,kBAAkB,EACvB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,GACf,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,QAAQ,EACR,cAAc,EACd,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EACd,2BAA2B,EAC3B,KAAK,gBAAgB,GACtB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,EACtB,yBAAyB,EACzB,mCAAmC,EACnC,KAAK,mBAAmB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,sBAAsB,CAAC"}
@@ -5,19 +5,18 @@
5
5
  /**
6
6
  * Microsoft Graph API module.
7
7
  *
8
- * Provides an alternative backend for the Outlook MCP server that uses
9
- * Microsoft Graph API instead of AppleScript. This is required for
10
- * "new Outlook" for Mac which doesn't expose data via AppleScript.
8
+ * Provides the backend for the Outlook MCP server, using the Microsoft Graph
9
+ * API for all data access.
11
10
  */
12
11
  // Auth exports
13
- export { loadGraphConfig, getAuthorityUrl, GRAPH_SCOPES, createTokenCachePlugin, hasTokenCache, clearTokenCache, getTokenCacheDir, getTokenCacheFile, acquireTokenInteractive, acquireTokenSilent, getAccessToken, isAuthenticated, getAccount, signOut, resetMsalInstance, } from './auth/index.js';
12
+ export { loadGraphConfig, getAuthorityUrl, GRAPH_SCOPES, createTokenCachePlugin, hasTokenCache, clearTokenCache, getTokenCacheDir, getTokenCacheFile, acquireTokenInteractive, acquireTokenSilent, getAccessToken, isAuthenticated, getAccount, signOut, resetMsalInstance, DEFAULT_ACCOUNT_ID, resolveAccountId, currentAccountId, resetAccountId, } from './auth/index.js';
14
13
  // Client exports
15
14
  export { GraphClient, createGraphClient, ResponseCache, CacheTTL, createCacheKey, invalidateByPrefix, } from './client/index.js';
16
15
  // Mapper exports
17
- export { mapMailFolderToRow, mapCalendarToFolderRow, mapTaskListToFolderRow, mapMessageToEmailRow, mapEventToEventRow, mapContactToContactRow, mapTaskToTaskRow, hashStringToNumber, isoToTimestamp, dateTimeTimeZoneToTimestamp, } from './mappers/index.js';
16
+ export { mapMailFolderToRow, mapCalendarToFolderRow, mapMessageToEmailRow, mapEventToEventRow, mapContactToContactRow, mapTaskToTaskRow, isoToTimestamp, dateTimeTimeZoneToTimestamp, } from './mappers/index.js';
18
17
  // Repository exports
19
18
  export { GraphRepository, createGraphRepository } from './repository.js';
20
19
  export { GraphMailboxAdapter } from './mailbox-adapter.js';
21
20
  // Content reader exports
22
- export { GraphEmailContentReader, GraphEventContentReader, GraphContactContentReader, GraphTaskContentReader, GraphNoteContentReader, createGraphContentReaders, createGraphContentReadersWithClient, GRAPH_EMAIL_PATH_PREFIX, GRAPH_EVENT_PATH_PREFIX, GRAPH_CONTACT_PATH_PREFIX, GRAPH_TASK_PATH_PREFIX, } from './content-readers.js';
21
+ export { GraphEmailContentReader, GraphEventContentReader, GraphContactContentReader, GraphTaskContentReader, createGraphContentReaders, createGraphContentReadersWithClient, GRAPH_EMAIL_PATH_PREFIX, GRAPH_EVENT_PATH_PREFIX, GRAPH_CONTACT_PATH_PREFIX, GRAPH_TASK_PATH_PREFIX, } from './content-readers.js';
23
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/graph/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;GAMG;AAEH,eAAe;AACf,OAAO,EACL,eAAe,EACf,eAAe,EACf,YAAY,EAEZ,sBAAsB,EACtB,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,UAAU,EACV,OAAO,EACP,iBAAiB,GAElB,MAAM,iBAAiB,CAAC;AAEzB,iBAAiB;AACjB,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,QAAQ,EACR,cAAc,EACd,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAE3B,iBAAiB;AACjB,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,2BAA2B,GAE5B,MAAM,oBAAoB,CAAC;AAE5B,qBAAqB;AACrB,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,yBAAyB;AACzB,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,EACtB,sBAAsB,EACtB,yBAAyB,EACzB,mCAAmC,EAEnC,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/graph/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;GAKG;AAEH,eAAe;AACf,OAAO,EACL,eAAe,EACf,eAAe,EACf,YAAY,EAEZ,sBAAsB,EACtB,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,UAAU,EACV,OAAO,EACP,iBAAiB,EAEjB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,cAAc,GACf,MAAM,iBAAiB,CAAC;AAEzB,iBAAiB;AACjB,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,aAAa,EACb,QAAQ,EACR,cAAc,EACd,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAE3B,iBAAiB;AACjB,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EAChB,cAAc,EACd,2BAA2B,GAE5B,MAAM,oBAAoB,CAAC;AAE5B,qBAAqB;AACrB,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,yBAAyB;AACzB,OAAO,EACL,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,EACtB,yBAAyB,EACzB,mCAAmC,EAEnC,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,sBAAsB,CAAC"}
@@ -11,20 +11,20 @@ import type { GraphRepository } from './repository.js';
11
11
  export declare class GraphMailboxAdapter implements IMailboxRepository {
12
12
  private readonly graph;
13
13
  constructor(graph: GraphRepository);
14
- getEmail(id: number): Promise<EmailRow | undefined>;
15
- getFolder(id: number): Promise<FolderRow | undefined>;
16
- moveEmail(emailId: number, destinationFolderId: number): Promise<void>;
17
- deleteEmail(emailId: number): Promise<void>;
18
- archiveEmail(emailId: number): Promise<void>;
19
- junkEmail(emailId: number): Promise<void>;
20
- markEmailRead(emailId: number, isRead: boolean): Promise<void>;
21
- setEmailFlag(emailId: number, flagStatus: number): Promise<void>;
22
- setEmailCategories(emailId: number, categories: string[]): Promise<void>;
23
- setEmailImportance(emailId: number, importance: string): Promise<void>;
24
- createFolder(name: string, parentFolderId?: number): Promise<FolderRow>;
25
- deleteFolder(folderId: number): Promise<void>;
26
- renameFolder(folderId: number, newName: string): Promise<void>;
27
- moveFolder(folderId: number, destinationParentId: number): Promise<void>;
28
- emptyFolder(folderId: number): Promise<void>;
14
+ getEmail(id: string): Promise<EmailRow | undefined>;
15
+ getFolder(id: string): Promise<FolderRow | undefined>;
16
+ moveEmail(emailId: string, destinationFolderId: string): Promise<void>;
17
+ deleteEmail(emailId: string): Promise<void>;
18
+ archiveEmail(emailId: string): Promise<void>;
19
+ junkEmail(emailId: string): Promise<void>;
20
+ markEmailRead(emailId: string, isRead: boolean): Promise<void>;
21
+ setEmailFlag(emailId: string, flagStatus: number): Promise<void>;
22
+ setEmailCategories(emailId: string, categories: string[]): Promise<void>;
23
+ setEmailImportance(emailId: string, importance: string): Promise<void>;
24
+ createFolder(name: string, parentFolderId?: string): Promise<FolderRow>;
25
+ deleteFolder(folderId: string): Promise<void>;
26
+ renameFolder(folderId: string, newName: string): Promise<void>;
27
+ moveFolder(folderId: string, destinationParentId: string): Promise<void>;
28
+ emptyFolder(folderId: string): Promise<void>;
29
29
  }
30
30
  //# sourceMappingURL=mailbox-adapter.d.ts.map
@@ -8,7 +8,10 @@
8
8
  import type * as MicrosoftGraph from '@microsoft/microsoft-graph-types';
9
9
  import type { ContactRow } from '../../database/repository.js';
10
10
  /**
11
- * Maps a Graph Contact to a ContactRow.
11
+ * Maps a Graph Contact to a ContactRow. The `id` is a durable self-encoding
12
+ * `ct_` token (U5): it carries the Graph contact id, so it resolves by decode on
13
+ * any machine and survives a cold state store. An id-less contact (shouldn't
14
+ * happen for real Graph data) falls back to an empty id.
12
15
  */
13
16
  export declare function mapContactToContactRow(contact: MicrosoftGraph.Contact): ContactRow;
14
17
  //# sourceMappingURL=contact-mapper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"contact-mapper.d.ts","sourceRoot":"","sources":["../../../src/graph/mappers/contact-mapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AAEH,OAAO,KAAK,KAAK,cAAc,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAG/D;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,cAAc,CAAC,OAAO,GAAG,UAAU,CAWlF"}
1
+ {"version":3,"file":"contact-mapper.d.ts","sourceRoot":"","sources":["../../../src/graph/mappers/contact-mapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AAEH,OAAO,KAAK,KAAK,cAAc,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAI/D;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,cAAc,CAAC,OAAO,GAAG,UAAU,CAWlF"}
@@ -2,14 +2,18 @@
2
2
  * Copyright (c) 2026 JBC Tech Solutions, LLC
3
3
  * Licensed under the MIT License. See LICENSE file in the project root.
4
4
  */
5
- import { hashStringToNumber, createGraphContentPath } from './utils.js';
5
+ import { mintSelfEncoded } from '../../ids/token.js';
6
+ import { createGraphContentPath } from './utils.js';
6
7
  /**
7
- * Maps a Graph Contact to a ContactRow.
8
+ * Maps a Graph Contact to a ContactRow. The `id` is a durable self-encoding
9
+ * `ct_` token (U5): it carries the Graph contact id, so it resolves by decode on
10
+ * any machine and survives a cold state store. An id-less contact (shouldn't
11
+ * happen for real Graph data) falls back to an empty id.
8
12
  */
9
13
  export function mapContactToContactRow(contact) {
10
14
  const contactId = contact.id ?? '';
11
15
  return {
12
- id: hashStringToNumber(contactId),
16
+ id: contactId.length > 0 ? mintSelfEncoded('contact', contactId) : '',
13
17
  folderId: 0, // Graph contacts don't have folders in the same way
14
18
  displayName: contact.displayName ?? null,
15
19
  sortName: contact.surname ?? contact.displayName ?? null,
@@ -1 +1 @@
1
- {"version":3,"file":"contact-mapper.js","sourceRoot":"","sources":["../../../src/graph/mappers/contact-mapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAExE;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAA+B;IACpE,MAAM,SAAS,GAAG,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC;IAEnC,OAAO;QACL,EAAE,EAAE,kBAAkB,CAAC,SAAS,CAAC;QACjC,QAAQ,EAAE,CAAC,EAAE,oDAAoD;QACjE,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI;QACxC,QAAQ,EAAE,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,WAAW,IAAI,IAAI;QACxD,WAAW,EAAE,IAAI,EAAE,yBAAyB;QAC5C,YAAY,EAAE,sBAAsB,CAAC,SAAS,EAAE,SAAS,CAAC;KAC3D,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"contact-mapper.js","sourceRoot":"","sources":["../../../src/graph/mappers/contact-mapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAA+B;IACpE,MAAM,SAAS,GAAG,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC;IAEnC,OAAO;QACL,EAAE,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;QACrE,QAAQ,EAAE,CAAC,EAAE,oDAAoD;QACjE,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI;QACxC,QAAQ,EAAE,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,WAAW,IAAI,IAAI;QACxD,WAAW,EAAE,IAAI,EAAE,yBAAyB;QAC5C,YAAY,EAAE,sBAAsB,CAAC,SAAS,EAAE,SAAS,CAAC;KAC3D,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"email-mapper.d.ts","sourceRoot":"","sources":["../../../src/graph/mappers/email-mapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AAEH,OAAO,KAAK,KAAK,cAAc,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAa7D;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,cAAc,CAAC,OAAO,EAC/B,QAAQ,CAAC,EAAE,MAAM,GAChB,QAAQ,CAoCV"}
1
+ {"version":3,"file":"email-mapper.d.ts","sourceRoot":"","sources":["../../../src/graph/mappers/email-mapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AAEH,OAAO,KAAK,KAAK,cAAc,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAa7D;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,cAAc,CAAC,OAAO,EAC/B,QAAQ,CAAC,EAAE,MAAM,GAChB,QAAQ,CAsCV"}
@@ -2,7 +2,8 @@
2
2
  * Copyright (c) 2026 JBC Tech Solutions, LLC
3
3
  * Licensed under the MIT License. See LICENSE file in the project root.
4
4
  */
5
- import { hashStringToNumber, isoToTimestamp, importanceToPriority, flagStatusToNumber, extractDisplayName, extractEmailAddress, formatRecipients, formatRecipientAddresses, createGraphContentPath, } from './utils.js';
5
+ import { mintSelfEncoded } from '../../ids/token.js';
6
+ import { isoToTimestamp, importanceToPriority, flagStatusToNumber, extractDisplayName, extractEmailAddress, formatRecipients, formatRecipientAddresses, createGraphContentPath, } from './utils.js';
6
7
  /**
7
8
  * Maps a Graph Message to an EmailRow.
8
9
  */
@@ -16,8 +17,10 @@ export function mapMessageToEmailRow(message, folderId) {
16
17
  const ccRecipients = message.ccRecipients;
17
18
  const flag = message.flag;
18
19
  return {
19
- id: hashStringToNumber(messageId),
20
- folderId: parentFolderId != null ? hashStringToNumber(parentFolderId) : 0,
20
+ // Durable self-encoding em_ token carrying the immutable Graph message id (U5).
21
+ id: messageId.length > 0 ? mintSelfEncoded('message', messageId) : '',
22
+ // Durable self-encoding fd_ token carrying the immutable Graph folder id (U5).
23
+ folderId: parentFolderId != null && parentFolderId.length > 0 ? mintSelfEncoded('folder', parentFolderId) : '',
21
24
  subject: message.subject ?? null,
22
25
  sender: extractDisplayName(from),
23
26
  senderAddress: extractEmailAddress(from),
@@ -37,7 +40,7 @@ export function mapMessageToEmailRow(message, folderId) {
37
40
  ? Buffer.from(message.categories.join(','), 'utf-8')
38
41
  : null,
39
42
  messageId: message.internetMessageId ?? null,
40
- conversationId: message.conversationId != null ? hashStringToNumber(message.conversationId) : null,
43
+ conversationId: message.conversationId ?? null,
41
44
  dataFilePath: createGraphContentPath('email', messageId),
42
45
  };
43
46
  }
@@ -1 +1 @@
1
- {"version":3,"file":"email-mapper.js","sourceRoot":"","sources":["../../../src/graph/mappers/email-mapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAA+B,EAC/B,QAAiB;IAEjB,MAAM,SAAS,GAAG,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC;IACnC,MAAM,cAAc,GAAG,QAAQ,IAAI,OAAO,CAAC,cAAc,CAAC;IAE1D,iEAAiE;IACjE,yDAAyD;IACzD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAiF,CAAC;IACvG,MAAM,YAAY,GAAG,OAAO,CAAC,YAAgG,CAAC;IAC9H,MAAM,YAAY,GAAG,OAAO,CAAC,YAAgG,CAAC;IAC9H,MAAM,IAAI,GAAG,OAAO,CAAC,IAAkD,CAAC;IAExE,OAAO;QACL,EAAE,EAAE,kBAAkB,CAAC,SAAS,CAAC;QACjC,QAAQ,EAAE,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;QAChC,MAAM,EAAE,kBAAkB,CAAC,IAAI,CAAC;QAChC,aAAa,EAAE,mBAAmB,CAAC,IAAI,CAAC;QACxC,UAAU,EAAE,gBAAgB,CAAC,YAAY,CAAC;QAC1C,SAAS,EAAE,gBAAgB,CAAC,YAAY,CAAC;QACzC,WAAW,EAAE,wBAAwB,CAAC,YAAY,CAAC;QACnD,WAAW,EAAE,wBAAwB,CAAC,YAAY,CAAC;QACnD,OAAO,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI;QACpC,MAAM,EAAE,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,YAAY,EAAE,cAAc,CAAC,OAAO,CAAC,gBAAgB,CAAC;QACtD,QAAQ,EAAE,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC;QAC9C,aAAa,EAAE,OAAO,CAAC,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,IAAI,EAAE,CAAC,EAAE,8CAA8C;QACvD,QAAQ,EAAE,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC;QAClD,UAAU,EAAE,kBAAkB,CAAC,IAAI,CAAC;QACpC,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;YACrE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;YACpD,CAAC,CAAC,IAAI;QACR,SAAS,EAAE,OAAO,CAAC,iBAAiB,IAAI,IAAI;QAC5C,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI;QAClG,YAAY,EAAE,sBAAsB,CAAC,OAAO,EAAE,SAAS,CAAC;KACzD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"email-mapper.js","sourceRoot":"","sources":["../../../src/graph/mappers/email-mapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAA+B,EAC/B,QAAiB;IAEjB,MAAM,SAAS,GAAG,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC;IACnC,MAAM,cAAc,GAAG,QAAQ,IAAI,OAAO,CAAC,cAAc,CAAC;IAE1D,iEAAiE;IACjE,yDAAyD;IACzD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAiF,CAAC;IACvG,MAAM,YAAY,GAAG,OAAO,CAAC,YAAgG,CAAC;IAC9H,MAAM,YAAY,GAAG,OAAO,CAAC,YAAgG,CAAC;IAC9H,MAAM,IAAI,GAAG,OAAO,CAAC,IAAkD,CAAC;IAExE,OAAO;QACL,gFAAgF;QAChF,EAAE,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;QACrE,+EAA+E;QAC/E,QAAQ,EAAE,cAAc,IAAI,IAAI,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE;QAC9G,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;QAChC,MAAM,EAAE,kBAAkB,CAAC,IAAI,CAAC;QAChC,aAAa,EAAE,mBAAmB,CAAC,IAAI,CAAC;QACxC,UAAU,EAAE,gBAAgB,CAAC,YAAY,CAAC;QAC1C,SAAS,EAAE,gBAAgB,CAAC,YAAY,CAAC;QACzC,WAAW,EAAE,wBAAwB,CAAC,YAAY,CAAC;QACnD,WAAW,EAAE,wBAAwB,CAAC,YAAY,CAAC;QACnD,OAAO,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI;QACpC,MAAM,EAAE,OAAO,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,YAAY,EAAE,cAAc,CAAC,OAAO,CAAC,gBAAgB,CAAC;QACtD,QAAQ,EAAE,cAAc,CAAC,OAAO,CAAC,YAAY,CAAC;QAC9C,aAAa,EAAE,OAAO,CAAC,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtD,IAAI,EAAE,CAAC,EAAE,8CAA8C;QACvD,QAAQ,EAAE,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC;QAClD,UAAU,EAAE,kBAAkB,CAAC,IAAI,CAAC;QACpC,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;YACrE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;YACpD,CAAC,CAAC,IAAI;QACR,SAAS,EAAE,OAAO,CAAC,iBAAiB,IAAI,IAAI;QAC5C,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,IAAI;QAC9C,YAAY,EAAE,sBAAsB,CAAC,OAAO,EAAE,SAAS,CAAC;KACzD,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"event-mapper.d.ts","sourceRoot":"","sources":["../../../src/graph/mappers/event-mapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AAEH,OAAO,KAAK,KAAK,cAAc,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAO7D;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,cAAc,CAAC,KAAK,EAC3B,UAAU,CAAC,EAAE,MAAM,GAClB,QAAQ,CAuBV"}
1
+ {"version":3,"file":"event-mapper.d.ts","sourceRoot":"","sources":["../../../src/graph/mappers/event-mapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AAEH,OAAO,KAAK,KAAK,cAAc,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAO7D;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,cAAc,CAAC,KAAK,EAC3B,UAAU,CAAC,EAAE,MAAM,GAClB,QAAQ,CAyBV"}
@@ -2,7 +2,8 @@
2
2
  * Copyright (c) 2026 JBC Tech Solutions, LLC
3
3
  * Licensed under the MIT License. See LICENSE file in the project root.
4
4
  */
5
- import { hashStringToNumber, dateTimeTimeZoneToTimestamp, createGraphContentPath, } from './utils.js';
5
+ import { mintSelfEncoded } from '../../ids/token.js';
6
+ import { dateTimeTimeZoneToTimestamp, createGraphContentPath, } from './utils.js';
6
7
  /**
7
8
  * Maps a Graph Event to an EventRow.
8
9
  */
@@ -13,8 +14,10 @@ export function mapEventToEventRow(event, calendarId) {
13
14
  const start = event.start;
14
15
  const end = event.end;
15
16
  return {
16
- id: hashStringToNumber(eventId),
17
- folderId: calendarId != null ? hashStringToNumber(calendarId) : 0,
17
+ // Durable self-encoding ev_ token carrying the immutable Graph event id (U5).
18
+ id: eventId.length > 0 ? mintSelfEncoded('event', eventId) : '',
19
+ // Durable self-encoding fd_ token carrying the immutable Graph calendar id (U5).
20
+ folderId: calendarId != null && calendarId.length > 0 ? mintSelfEncoded('folder', calendarId) : '',
18
21
  subject: event.subject ?? null,
19
22
  startDate: dateTimeTimeZoneToTimestamp(start),
20
23
  endDate: dateTimeTimeZoneToTimestamp(end),
@@ -1 +1 @@
1
- {"version":3,"file":"event-mapper.js","sourceRoot":"","sources":["../../../src/graph/mappers/event-mapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,EACL,kBAAkB,EAClB,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAA2B,EAC3B,UAAmB;IAEnB,MAAM,OAAO,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IAE/B,iEAAiE;IACjE,yDAAyD;IACzD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAoE,CAAC;IACzF,MAAM,GAAG,GAAG,KAAK,CAAC,GAAkE,CAAC;IAErF,OAAO;QACL,EAAE,EAAE,kBAAkB,CAAC,OAAO,CAAC;QAC/B,QAAQ,EAAE,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI;QAC9B,SAAS,EAAE,2BAA2B,CAAC,KAAK,CAAC;QAC7C,OAAO,EAAE,2BAA2B,CAAC,GAAG,CAAC;QACzC,WAAW,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,WAAW,EAAE,KAAK,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,aAAa,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC;QAC3C,GAAG,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI;QAC1B,cAAc,EAAE,IAAI,EAAE,yBAAyB;QAC/C,YAAY,EAAE,IAAI,EAAE,yBAAyB;QAC7C,YAAY,EAAE,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC;QACtD,gBAAgB,EAAE,KAAK,CAAC,aAAa,EAAE,OAAO,IAAI,IAAI;KACvD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"event-mapper.js","sourceRoot":"","sources":["../../../src/graph/mappers/event-mapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAA2B,EAC3B,UAAmB;IAEnB,MAAM,OAAO,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IAE/B,iEAAiE;IACjE,yDAAyD;IACzD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAoE,CAAC;IACzF,MAAM,GAAG,GAAG,KAAK,CAAC,GAAkE,CAAC;IAErF,OAAO;QACL,8EAA8E;QAC9E,EAAE,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;QAC/D,iFAAiF;QACjF,QAAQ,EAAE,UAAU,IAAI,IAAI,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;QAClG,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI;QAC9B,SAAS,EAAE,2BAA2B,CAAC,KAAK,CAAC;QAC7C,OAAO,EAAE,2BAA2B,CAAC,GAAG,CAAC;QACzC,WAAW,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,WAAW,EAAE,KAAK,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,aAAa,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC;QAC3C,GAAG,EAAE,KAAK,CAAC,OAAO,IAAI,IAAI;QAC1B,cAAc,EAAE,IAAI,EAAE,yBAAyB;QAC/C,YAAY,EAAE,IAAI,EAAE,yBAAyB;QAC7C,YAAY,EAAE,sBAAsB,CAAC,OAAO,EAAE,OAAO,CAAC;QACtD,gBAAgB,EAAE,KAAK,CAAC,aAAa,EAAE,OAAO,IAAI,IAAI;KACvD,CAAC;AACJ,CAAC"}
@@ -15,8 +15,4 @@ export declare function mapMailFolderToRow(folder: MicrosoftGraph.MailFolder): F
15
15
  * Maps a Graph Calendar to a FolderRow (calendars use FolderRow structure).
16
16
  */
17
17
  export declare function mapCalendarToFolderRow(calendar: MicrosoftGraph.Calendar): FolderRow;
18
- /**
19
- * Maps a Graph TodoTaskList to a FolderRow.
20
- */
21
- export declare function mapTaskListToFolderRow(taskList: MicrosoftGraph.TodoTaskList): FolderRow;
22
18
  //# sourceMappingURL=folder-mapper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"folder-mapper.d.ts","sourceRoot":"","sources":["../../../src/graph/mappers/folder-mapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AAEH,OAAO,KAAK,KAAK,cAAc,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAG9D;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,cAAc,CAAC,UAAU,GAAG,SAAS,CAW/E;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,cAAc,CAAC,QAAQ,GAAG,SAAS,CAWnF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,cAAc,CAAC,YAAY,GAAG,SAAS,CAWvF"}
1
+ {"version":3,"file":"folder-mapper.d.ts","sourceRoot":"","sources":["../../../src/graph/mappers/folder-mapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AAEH,OAAO,KAAK,KAAK,cAAc,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAG9D;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,cAAc,CAAC,UAAU,GAAG,SAAS,CAc/E;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,cAAc,CAAC,QAAQ,GAAG,SAAS,CAanF"}
@@ -2,15 +2,18 @@
2
2
  * Copyright (c) 2026 JBC Tech Solutions, LLC
3
3
  * Licensed under the MIT License. See LICENSE file in the project root.
4
4
  */
5
- import { hashStringToNumber } from './utils.js';
5
+ import { mintSelfEncoded } from '../../ids/token.js';
6
6
  /**
7
7
  * Maps a Graph MailFolder to a FolderRow.
8
8
  */
9
9
  export function mapMailFolderToRow(folder) {
10
+ const graphId = folder.id ?? '';
11
+ const parentGraphId = folder.parentFolderId;
10
12
  return {
11
- id: hashStringToNumber(folder.id ?? ''),
13
+ // Durable self-encoding fd_ token carrying the immutable Graph folder id (U5).
14
+ id: graphId.length > 0 ? mintSelfEncoded('folder', graphId) : '',
12
15
  name: folder.displayName ?? null,
13
- parentId: folder.parentFolderId != null ? hashStringToNumber(folder.parentFolderId) : null,
16
+ parentId: parentGraphId != null && parentGraphId.length > 0 ? mintSelfEncoded('folder', parentGraphId) : null,
14
17
  specialType: 0, // Graph doesn't expose special type directly
15
18
  folderType: 1, // Mail folder
16
19
  accountId: 1, // Default account
@@ -22,8 +25,10 @@ export function mapMailFolderToRow(folder) {
22
25
  * Maps a Graph Calendar to a FolderRow (calendars use FolderRow structure).
23
26
  */
24
27
  export function mapCalendarToFolderRow(calendar) {
28
+ const graphId = calendar.id ?? '';
25
29
  return {
26
- id: hashStringToNumber(calendar.id ?? ''),
30
+ // Durable self-encoding fd_ token carrying the immutable Graph calendar id (U5).
31
+ id: graphId.length > 0 ? mintSelfEncoded('folder', graphId) : '',
27
32
  name: calendar.name ?? null,
28
33
  parentId: null,
29
34
  specialType: 0,
@@ -33,19 +38,4 @@ export function mapCalendarToFolderRow(calendar) {
33
38
  unreadCount: 0,
34
39
  };
35
40
  }
36
- /**
37
- * Maps a Graph TodoTaskList to a FolderRow.
38
- */
39
- export function mapTaskListToFolderRow(taskList) {
40
- return {
41
- id: hashStringToNumber(taskList.id ?? ''),
42
- name: taskList.displayName ?? null,
43
- parentId: null,
44
- specialType: 0,
45
- folderType: 3, // Task folder
46
- accountId: 1,
47
- messageCount: 0,
48
- unreadCount: 0,
49
- };
50
- }
51
41
  //# sourceMappingURL=folder-mapper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"folder-mapper.js","sourceRoot":"","sources":["../../../src/graph/mappers/folder-mapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEhD;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAiC;IAClE,OAAO;QACL,EAAE,EAAE,kBAAkB,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC;QACvC,IAAI,EAAE,MAAM,CAAC,WAAW,IAAI,IAAI;QAChC,QAAQ,EAAE,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI;QAC1F,WAAW,EAAE,CAAC,EAAE,6CAA6C;QAC7D,UAAU,EAAE,CAAC,EAAE,cAAc;QAC7B,SAAS,EAAE,CAAC,EAAE,kBAAkB;QAChC,YAAY,EAAE,MAAM,CAAC,cAAc,IAAI,CAAC;QACxC,WAAW,EAAE,MAAM,CAAC,eAAe,IAAI,CAAC;KACzC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAiC;IACtE,OAAO;QACL,EAAE,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;QACzC,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,IAAI;QAC3B,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,CAAC;QACd,UAAU,EAAE,CAAC,EAAE,kBAAkB;QACjC,SAAS,EAAE,CAAC;QACZ,YAAY,EAAE,CAAC;QACf,WAAW,EAAE,CAAC;KACf,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAqC;IAC1E,OAAO;QACL,EAAE,EAAE,kBAAkB,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;QACzC,IAAI,EAAE,QAAQ,CAAC,WAAW,IAAI,IAAI;QAClC,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,CAAC;QACd,UAAU,EAAE,CAAC,EAAE,cAAc;QAC7B,SAAS,EAAE,CAAC;QACZ,YAAY,EAAE,CAAC;QACf,WAAW,EAAE,CAAC;KACf,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"folder-mapper.js","sourceRoot":"","sources":["../../../src/graph/mappers/folder-mapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAiC;IAClE,MAAM,OAAO,GAAG,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC;IAChC,MAAM,aAAa,GAAG,MAAM,CAAC,cAAc,CAAC;IAC5C,OAAO;QACL,+EAA+E;QAC/E,EAAE,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;QAChE,IAAI,EAAE,MAAM,CAAC,WAAW,IAAI,IAAI;QAChC,QAAQ,EAAE,aAAa,IAAI,IAAI,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI;QAC7G,WAAW,EAAE,CAAC,EAAE,6CAA6C;QAC7D,UAAU,EAAE,CAAC,EAAE,cAAc;QAC7B,SAAS,EAAE,CAAC,EAAE,kBAAkB;QAChC,YAAY,EAAE,MAAM,CAAC,cAAc,IAAI,CAAC;QACxC,WAAW,EAAE,MAAM,CAAC,eAAe,IAAI,CAAC;KACzC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAiC;IACtE,MAAM,OAAO,GAAG,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;IAClC,OAAO;QACL,iFAAiF;QACjF,EAAE,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;QAChE,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,IAAI;QAC3B,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,CAAC;QACd,UAAU,EAAE,CAAC,EAAE,kBAAkB;QACjC,SAAS,EAAE,CAAC;QACZ,YAAY,EAAE,CAAC;QACf,WAAW,EAAE,CAAC;KACf,CAAC;AACJ,CAAC"}
@@ -7,10 +7,10 @@
7
7
  *
8
8
  * Exports functions to convert Graph API types to internal row types.
9
9
  */
10
- export { mapMailFolderToRow, mapCalendarToFolderRow, mapTaskListToFolderRow, } from './folder-mapper.js';
10
+ export { mapMailFolderToRow, mapCalendarToFolderRow, } from './folder-mapper.js';
11
11
  export { mapMessageToEmailRow } from './email-mapper.js';
12
12
  export { mapEventToEventRow } from './event-mapper.js';
13
13
  export { mapContactToContactRow } from './contact-mapper.js';
14
14
  export { mapTaskToTaskRow, type TodoTaskWithList } from './task-mapper.js';
15
- export { hashStringToNumber, isoToTimestamp, dateTimeTimeZoneToTimestamp, unixTimestampToIso, unixTimestampToLocalIso, importanceToPriority, flagStatusToNumber, extractEmailAddress, extractDisplayName, formatRecipients, formatRecipientAddresses, createGraphContentPath, } from './utils.js';
15
+ export { isoToTimestamp, dateTimeTimeZoneToTimestamp, unixTimestampToIso, unixTimestampToLocalIso, importanceToPriority, flagStatusToNumber, extractEmailAddress, extractDisplayName, formatRecipients, formatRecipientAddresses, createGraphContentPath, } from './utils.js';
16
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/graph/mappers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AAEH,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAE3E,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,2BAA2B,EAC3B,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/graph/mappers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AAEH,OAAO,EACL,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAE3E,OAAO,EACL,cAAc,EACd,2BAA2B,EAC3B,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,YAAY,CAAC"}
@@ -7,10 +7,10 @@
7
7
  *
8
8
  * Exports functions to convert Graph API types to internal row types.
9
9
  */
10
- export { mapMailFolderToRow, mapCalendarToFolderRow, mapTaskListToFolderRow, } from './folder-mapper.js';
10
+ export { mapMailFolderToRow, mapCalendarToFolderRow, } from './folder-mapper.js';
11
11
  export { mapMessageToEmailRow } from './email-mapper.js';
12
12
  export { mapEventToEventRow } from './event-mapper.js';
13
13
  export { mapContactToContactRow } from './contact-mapper.js';
14
14
  export { mapTaskToTaskRow } from './task-mapper.js';
15
- export { hashStringToNumber, isoToTimestamp, dateTimeTimeZoneToTimestamp, unixTimestampToIso, unixTimestampToLocalIso, importanceToPriority, flagStatusToNumber, extractEmailAddress, extractDisplayName, formatRecipients, formatRecipientAddresses, createGraphContentPath, } from './utils.js';
15
+ export { isoToTimestamp, dateTimeTimeZoneToTimestamp, unixTimestampToIso, unixTimestampToLocalIso, importanceToPriority, flagStatusToNumber, extractEmailAddress, extractDisplayName, formatRecipients, formatRecipientAddresses, createGraphContentPath, } from './utils.js';
16
16
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/graph/mappers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AAEH,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,gBAAgB,EAAyB,MAAM,kBAAkB,CAAC;AAE3E,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,2BAA2B,EAC3B,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/graph/mappers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AAEH,OAAO,EACL,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,gBAAgB,EAAyB,MAAM,kBAAkB,CAAC;AAE3E,OAAO,EACL,cAAc,EACd,2BAA2B,EAC3B,kBAAkB,EAClB,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,YAAY,CAAC"}
@@ -14,7 +14,9 @@ export interface TodoTaskWithList extends MicrosoftGraph.TodoTask {
14
14
  taskListId?: string;
15
15
  }
16
16
  /**
17
- * Maps a Graph TodoTask to a TaskRow.
17
+ * Maps a Graph TodoTask to a TaskRow. `id`/`folderId` are pre-minted durable
18
+ * tokens (`td_`/`tl_`) — mappers are pure and cannot mint alias tokens
19
+ * themselves, so the repository computes them and passes them in.
18
20
  */
19
- export declare function mapTaskToTaskRow(task: TodoTaskWithList): TaskRow;
21
+ export declare function mapTaskToTaskRow(task: TodoTaskWithList, id: string, folderId: string): TaskRow;
20
22
  //# sourceMappingURL=task-mapper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"task-mapper.d.ts","sourceRoot":"","sources":["../../../src/graph/mappers/task-mapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AAEH,OAAO,KAAK,KAAK,cAAc,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAQ5D;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,cAAc,CAAC,QAAQ;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAmBhE"}
1
+ {"version":3,"file":"task-mapper.d.ts","sourceRoot":"","sources":["../../../src/graph/mappers/task-mapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AAEH,OAAO,KAAK,KAAK,cAAc,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AAO5D;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,cAAc,CAAC,QAAQ;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAmB9F"}
@@ -2,19 +2,21 @@
2
2
  * Copyright (c) 2026 JBC Tech Solutions, LLC
3
3
  * Licensed under the MIT License. See LICENSE file in the project root.
4
4
  */
5
- import { hashStringToNumber, dateTimeTimeZoneToTimestamp, importanceToPriority, createGraphContentPath, } from './utils.js';
5
+ import { dateTimeTimeZoneToTimestamp, importanceToPriority, createGraphContentPath, } from './utils.js';
6
6
  /**
7
- * Maps a Graph TodoTask to a TaskRow.
7
+ * Maps a Graph TodoTask to a TaskRow. `id`/`folderId` are pre-minted durable
8
+ * tokens (`td_`/`tl_`) — mappers are pure and cannot mint alias tokens
9
+ * themselves, so the repository computes them and passes them in.
8
10
  */
9
- export function mapTaskToTaskRow(task) {
11
+ export function mapTaskToTaskRow(task, id, folderId) {
10
12
  const taskId = task.id ?? '';
11
13
  // Type assertions needed due to Graph API's NullableOption types
12
14
  // which are incompatible with exactOptionalPropertyTypes
13
15
  const dueDateTime = task.dueDateTime;
14
16
  const startDateTime = task.startDateTime;
15
17
  return {
16
- id: hashStringToNumber(taskId),
17
- folderId: task.taskListId != null ? hashStringToNumber(task.taskListId) : 0,
18
+ id,
19
+ folderId,
18
20
  name: task.title ?? null,
19
21
  isCompleted: task.status === 'completed' ? 1 : 0,
20
22
  dueDate: dateTimeTimeZoneToTimestamp(dueDateTime),
@@ -1 +1 @@
1
- {"version":3,"file":"task-mapper.js","sourceRoot":"","sources":["../../../src/graph/mappers/task-mapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,EACL,kBAAkB,EAClB,2BAA2B,EAC3B,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AASpB;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAsB;IACrD,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;IAE7B,iEAAiE;IACjE,yDAAyD;IACzD,MAAM,WAAW,GAAG,IAAI,CAAC,WAA0E,CAAC;IACpG,MAAM,aAAa,GAAG,IAAI,CAAC,aAA4E,CAAC;IAExG,OAAO;QACL,EAAE,EAAE,kBAAkB,CAAC,MAAM,CAAC;QAC9B,QAAQ,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3E,IAAI,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI;QACxB,WAAW,EAAE,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,OAAO,EAAE,2BAA2B,CAAC,WAAW,CAAC;QACjD,SAAS,EAAE,2BAA2B,CAAC,aAAa,CAAC;QACrD,QAAQ,EAAE,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC;QAC/C,WAAW,EAAE,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,YAAY,EAAE,sBAAsB,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;KAC1F,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"task-mapper.js","sourceRoot":"","sources":["../../../src/graph/mappers/task-mapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,EACL,2BAA2B,EAC3B,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AASpB;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAsB,EAAE,EAAU,EAAE,QAAgB;IACnF,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC;IAE7B,iEAAiE;IACjE,yDAAyD;IACzD,MAAM,WAAW,GAAG,IAAI,CAAC,WAA0E,CAAC;IACpG,MAAM,aAAa,GAAG,IAAI,CAAC,aAA4E,CAAC;IAExG,OAAO;QACL,EAAE;QACF,QAAQ;QACR,IAAI,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI;QACxB,WAAW,EAAE,IAAI,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,OAAO,EAAE,2BAA2B,CAAC,WAAW,CAAC;QACjD,SAAS,EAAE,2BAA2B,CAAC,aAAa,CAAC;QACrD,QAAQ,EAAE,oBAAoB,CAAC,IAAI,CAAC,UAAU,CAAC;QAC/C,WAAW,EAAE,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,YAAY,EAAE,sBAAsB,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;KAC1F,CAAC;AACJ,CAAC"}
@@ -5,16 +5,6 @@
5
5
  /**
6
6
  * Utility functions for mappers.
7
7
  */
8
- /**
9
- * Hashes a string ID to a numeric ID.
10
- *
11
- * Graph API uses string UUIDs while our row types use numeric IDs.
12
- * This creates a deterministic numeric ID from a string.
13
- *
14
- * Note: There's a small chance of collision, but it's acceptable
15
- * for our use case (display purposes only, not database operations).
16
- */
17
- export declare function hashStringToNumber(str: string): number;
18
8
  /**
19
9
  * Parses an ISO date string to a Unix timestamp (seconds).
20
10
  */
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/graph/mappers/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AAEH;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAStD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAehF;AAQD;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,EAAE,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,GAC9D,MAAM,GAAG,IAAI,CAuBf;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CASlF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,GAC/C,MAAM,CASR;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE;IAAE,YAAY,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,GACnF,MAAM,GAAG,IAAI,CAEf;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE;IAAE,YAAY,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,GACnF,MAAM,GAAG,IAAI,CAEf;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,KAAK,CAAC;IAAE,YAAY,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC,GAAG,IAAI,GAAG,SAAS,GAC3F,MAAM,GAAG,IAAI,CASf;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,KAAK,CAAC;IAAE,YAAY,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC,GAAG,IAAI,GAAG,SAAS,GAC3F,MAAM,GAAG,IAAI,CASf;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACnC,MAAM,GAAG,IAAI,CAMf;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACnC,MAAM,GAAG,IAAI,CAsBf;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAEvE"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/graph/mappers/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AAEH;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAehF;AAQD;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,EAAE,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,GAC9D,MAAM,GAAG,IAAI,CAuBf;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CASlF;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,GAC/C,MAAM,CASR;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE;IAAE,YAAY,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,GACnF,MAAM,GAAG,IAAI,CAEf;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE;IAAE,YAAY,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,GACnF,MAAM,GAAG,IAAI,CAEf;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,KAAK,CAAC;IAAE,YAAY,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC,GAAG,IAAI,GAAG,SAAS,GAC3F,MAAM,GAAG,IAAI,CASf;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,KAAK,CAAC;IAAE,YAAY,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC,GAAG,IAAI,GAAG,SAAS,GAC3F,MAAM,GAAG,IAAI,CASf;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACnC,MAAM,GAAG,IAAI,CAMf;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACnC,MAAM,GAAG,IAAI,CAsBf;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAEvE"}
@@ -5,25 +5,6 @@
5
5
  /**
6
6
  * Utility functions for mappers.
7
7
  */
8
- /**
9
- * Hashes a string ID to a numeric ID.
10
- *
11
- * Graph API uses string UUIDs while our row types use numeric IDs.
12
- * This creates a deterministic numeric ID from a string.
13
- *
14
- * Note: There's a small chance of collision, but it's acceptable
15
- * for our use case (display purposes only, not database operations).
16
- */
17
- export function hashStringToNumber(str) {
18
- let hash = 0;
19
- for (let i = 0; i < str.length; i++) {
20
- const char = str.charCodeAt(i);
21
- hash = ((hash << 5) - hash) + char;
22
- hash = hash & hash; // Convert to 32-bit integer
23
- }
24
- // Ensure positive number
25
- return Math.abs(hash);
26
- }
27
8
  /**
28
9
  * Parses an ISO date string to a Unix timestamp (seconds).
29
10
  */
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/graph/mappers/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/graph/mappers/utils.ts"],"names":[],"mappings":"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"}