@contractspec/integration.providers-impls 1.57.0 → 1.58.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 (256) hide show
  1. package/dist/analytics.d.ts +1 -8
  2. package/dist/analytics.d.ts.map +1 -1
  3. package/dist/analytics.js +3 -3
  4. package/dist/calendar.d.ts +1 -8
  5. package/dist/calendar.d.ts.map +1 -1
  6. package/dist/calendar.js +3 -3
  7. package/dist/database.d.ts +1 -8
  8. package/dist/database.d.ts.map +1 -1
  9. package/dist/database.js +3 -3
  10. package/dist/email.d.ts +1 -8
  11. package/dist/email.d.ts.map +1 -1
  12. package/dist/email.js +3 -3
  13. package/dist/embedding.d.ts +1 -8
  14. package/dist/embedding.d.ts.map +1 -1
  15. package/dist/embedding.js +3 -3
  16. package/dist/impls/elevenlabs-voice.d.ts +14 -18
  17. package/dist/impls/elevenlabs-voice.d.ts.map +1 -1
  18. package/dist/impls/elevenlabs-voice.js +98 -88
  19. package/dist/impls/fal-voice.d.ts +22 -26
  20. package/dist/impls/fal-voice.d.ts.map +1 -1
  21. package/dist/impls/fal-voice.js +103 -78
  22. package/dist/impls/fathom-meeting-recorder.d.ts +35 -39
  23. package/dist/impls/fathom-meeting-recorder.d.ts.map +1 -1
  24. package/dist/impls/fathom-meeting-recorder.js +285 -142
  25. package/dist/impls/fathom-meeting-recorder.mapper.d.ts +4 -8
  26. package/dist/impls/fathom-meeting-recorder.mapper.d.ts.map +1 -1
  27. package/dist/impls/fathom-meeting-recorder.mapper.js +102 -38
  28. package/dist/impls/fathom-meeting-recorder.types.d.ts +16 -20
  29. package/dist/impls/fathom-meeting-recorder.types.d.ts.map +1 -1
  30. package/dist/impls/fathom-meeting-recorder.types.js +1 -0
  31. package/dist/impls/fathom-meeting-recorder.utils.d.ts +10 -14
  32. package/dist/impls/fathom-meeting-recorder.utils.d.ts.map +1 -1
  33. package/dist/impls/fathom-meeting-recorder.utils.js +58 -41
  34. package/dist/impls/fathom-meeting-recorder.webhooks.d.ts +3 -7
  35. package/dist/impls/fathom-meeting-recorder.webhooks.d.ts.map +1 -1
  36. package/dist/impls/fathom-meeting-recorder.webhooks.js +25 -20
  37. package/dist/impls/fireflies-meeting-recorder.d.ts +21 -25
  38. package/dist/impls/fireflies-meeting-recorder.d.ts.map +1 -1
  39. package/dist/impls/fireflies-meeting-recorder.js +272 -149
  40. package/dist/impls/fireflies-meeting-recorder.queries.d.ts +3 -6
  41. package/dist/impls/fireflies-meeting-recorder.queries.d.ts.map +1 -1
  42. package/dist/impls/fireflies-meeting-recorder.queries.js +10 -8
  43. package/dist/impls/fireflies-meeting-recorder.types.d.ts +26 -29
  44. package/dist/impls/fireflies-meeting-recorder.types.d.ts.map +1 -1
  45. package/dist/impls/fireflies-meeting-recorder.types.js +1 -0
  46. package/dist/impls/fireflies-meeting-recorder.utils.d.ts +4 -7
  47. package/dist/impls/fireflies-meeting-recorder.utils.d.ts.map +1 -1
  48. package/dist/impls/fireflies-meeting-recorder.utils.js +34 -27
  49. package/dist/impls/gcs-storage.d.ts +18 -22
  50. package/dist/impls/gcs-storage.d.ts.map +1 -1
  51. package/dist/impls/gcs-storage.js +92 -84
  52. package/dist/impls/gmail-inbound.d.ts +20 -24
  53. package/dist/impls/gmail-inbound.d.ts.map +1 -1
  54. package/dist/impls/gmail-inbound.js +212 -185
  55. package/dist/impls/gmail-outbound.d.ts +12 -16
  56. package/dist/impls/gmail-outbound.d.ts.map +1 -1
  57. package/dist/impls/gmail-outbound.js +126 -92
  58. package/dist/impls/google-calendar.d.ts +17 -21
  59. package/dist/impls/google-calendar.d.ts.map +1 -1
  60. package/dist/impls/google-calendar.js +182 -145
  61. package/dist/impls/gradium-voice.d.ts +20 -22
  62. package/dist/impls/gradium-voice.d.ts.map +1 -1
  63. package/dist/impls/gradium-voice.js +85 -74
  64. package/dist/impls/granola-meeting-recorder.d.ts +31 -24
  65. package/dist/impls/granola-meeting-recorder.d.ts.map +1 -1
  66. package/dist/impls/granola-meeting-recorder.js +511 -143
  67. package/dist/impls/granola-meeting-recorder.mcp.d.ts +25 -0
  68. package/dist/impls/granola-meeting-recorder.mcp.d.ts.map +1 -0
  69. package/dist/impls/granola-meeting-recorder.mcp.js +279 -0
  70. package/dist/impls/granola-meeting-recorder.types.d.ts +60 -49
  71. package/dist/impls/granola-meeting-recorder.types.d.ts.map +1 -1
  72. package/dist/impls/granola-meeting-recorder.types.js +1 -0
  73. package/dist/impls/index.d.ts +28 -28
  74. package/dist/impls/index.d.ts.map +1 -0
  75. package/dist/impls/index.js +4659 -29
  76. package/dist/impls/jira.d.ts +18 -22
  77. package/dist/impls/jira.d.ts.map +1 -1
  78. package/dist/impls/jira.js +112 -101
  79. package/dist/impls/linear.d.ts +17 -21
  80. package/dist/impls/linear.d.ts.map +1 -1
  81. package/dist/impls/linear.js +78 -69
  82. package/dist/impls/mistral-embedding.d.ts +17 -21
  83. package/dist/impls/mistral-embedding.d.ts.map +1 -1
  84. package/dist/impls/mistral-embedding.js +41 -39
  85. package/dist/impls/mistral-llm.d.ts +25 -29
  86. package/dist/impls/mistral-llm.d.ts.map +1 -1
  87. package/dist/impls/mistral-llm.js +266 -244
  88. package/dist/impls/notion.d.ts +20 -24
  89. package/dist/impls/notion.d.ts.map +1 -1
  90. package/dist/impls/notion.js +145 -110
  91. package/dist/impls/posthog-reader.d.ts +18 -22
  92. package/dist/impls/posthog-reader.d.ts.map +1 -1
  93. package/dist/impls/posthog-reader.js +148 -129
  94. package/dist/impls/posthog-utils.d.ts +4 -7
  95. package/dist/impls/posthog-utils.d.ts.map +1 -1
  96. package/dist/impls/posthog-utils.js +31 -22
  97. package/dist/impls/posthog.d.ts +33 -37
  98. package/dist/impls/posthog.d.ts.map +1 -1
  99. package/dist/impls/posthog.js +320 -119
  100. package/dist/impls/postmark-email.d.ts +13 -17
  101. package/dist/impls/postmark-email.d.ts.map +1 -1
  102. package/dist/impls/postmark-email.js +55 -50
  103. package/dist/impls/powens-client.d.ts +111 -114
  104. package/dist/impls/powens-client.d.ts.map +1 -1
  105. package/dist/impls/powens-client.js +194 -170
  106. package/dist/impls/powens-openbanking.d.ts +22 -26
  107. package/dist/impls/powens-openbanking.d.ts.map +1 -1
  108. package/dist/impls/powens-openbanking.js +425 -217
  109. package/dist/impls/provider-factory.d.ts +29 -33
  110. package/dist/impls/provider-factory.d.ts.map +1 -1
  111. package/dist/impls/provider-factory.js +4072 -275
  112. package/dist/impls/qdrant-vector.d.ts +18 -22
  113. package/dist/impls/qdrant-vector.d.ts.map +1 -1
  114. package/dist/impls/qdrant-vector.js +76 -69
  115. package/dist/impls/stripe-payments.d.ts +22 -26
  116. package/dist/impls/stripe-payments.d.ts.map +1 -1
  117. package/dist/impls/stripe-payments.js +219 -193
  118. package/dist/impls/supabase-psql.d.ts +21 -25
  119. package/dist/impls/supabase-psql.d.ts.map +1 -1
  120. package/dist/impls/supabase-psql.js +138 -98
  121. package/dist/impls/supabase-vector.d.ts +29 -33
  122. package/dist/impls/supabase-vector.d.ts.map +1 -1
  123. package/dist/impls/supabase-vector.js +278 -103
  124. package/dist/impls/tldv-meeting-recorder.d.ts +18 -22
  125. package/dist/impls/tldv-meeting-recorder.d.ts.map +1 -1
  126. package/dist/impls/tldv-meeting-recorder.js +142 -127
  127. package/dist/impls/twilio-sms.d.ts +14 -17
  128. package/dist/impls/twilio-sms.d.ts.map +1 -1
  129. package/dist/impls/twilio-sms.js +62 -55
  130. package/dist/index.d.ts +15 -64
  131. package/dist/index.d.ts.map +1 -1
  132. package/dist/index.js +4700 -107
  133. package/dist/llm.d.ts +1 -8
  134. package/dist/llm.d.ts.map +1 -1
  135. package/dist/llm.js +3 -3
  136. package/dist/meeting-recorder.d.ts +1 -8
  137. package/dist/meeting-recorder.d.ts.map +1 -1
  138. package/dist/meeting-recorder.js +3 -3
  139. package/dist/node/analytics.js +2 -0
  140. package/dist/node/calendar.js +2 -0
  141. package/dist/node/database.js +2 -0
  142. package/dist/node/email.js +2 -0
  143. package/dist/node/embedding.js +2 -0
  144. package/dist/node/impls/elevenlabs-voice.js +102 -0
  145. package/dist/node/impls/fal-voice.js +112 -0
  146. package/dist/node/impls/fathom-meeting-recorder.js +287 -0
  147. package/dist/node/impls/fathom-meeting-recorder.mapper.js +105 -0
  148. package/dist/node/impls/fathom-meeting-recorder.types.js +0 -0
  149. package/dist/node/impls/fathom-meeting-recorder.utils.js +72 -0
  150. package/dist/node/impls/fathom-meeting-recorder.webhooks.js +29 -0
  151. package/dist/node/impls/fireflies-meeting-recorder.js +274 -0
  152. package/dist/node/impls/fireflies-meeting-recorder.queries.js +85 -0
  153. package/dist/node/impls/fireflies-meeting-recorder.types.js +0 -0
  154. package/dist/node/impls/fireflies-meeting-recorder.utils.js +42 -0
  155. package/dist/node/impls/gcs-storage.js +97 -0
  156. package/dist/node/impls/gmail-inbound.js +227 -0
  157. package/dist/node/impls/gmail-outbound.js +139 -0
  158. package/dist/node/impls/google-calendar.js +191 -0
  159. package/dist/node/impls/gradium-voice.js +90 -0
  160. package/dist/node/impls/granola-meeting-recorder.js +512 -0
  161. package/dist/node/impls/granola-meeting-recorder.mcp.js +278 -0
  162. package/dist/node/impls/granola-meeting-recorder.types.js +0 -0
  163. package/dist/node/impls/index.js +4658 -0
  164. package/dist/node/impls/jira.js +124 -0
  165. package/dist/node/impls/linear.js +83 -0
  166. package/dist/node/impls/mistral-embedding.js +43 -0
  167. package/dist/node/impls/mistral-llm.js +269 -0
  168. package/dist/node/impls/notion.js +160 -0
  169. package/dist/node/impls/posthog-reader.js +159 -0
  170. package/dist/node/impls/posthog-utils.js +38 -0
  171. package/dist/node/impls/posthog.js +322 -0
  172. package/dist/node/impls/postmark-email.js +60 -0
  173. package/dist/node/impls/powens-client.js +195 -0
  174. package/dist/node/impls/powens-openbanking.js +426 -0
  175. package/dist/node/impls/provider-factory.js +4080 -0
  176. package/dist/node/impls/qdrant-vector.js +78 -0
  177. package/dist/node/impls/stripe-payments.js +228 -0
  178. package/dist/node/impls/supabase-psql.js +150 -0
  179. package/dist/node/impls/supabase-vector.js +323 -0
  180. package/dist/node/impls/tldv-meeting-recorder.js +145 -0
  181. package/dist/node/impls/twilio-sms.js +65 -0
  182. package/dist/node/index.js +4699 -0
  183. package/dist/node/llm.js +2 -0
  184. package/dist/node/meeting-recorder.js +2 -0
  185. package/dist/node/openbanking.js +2 -0
  186. package/dist/node/payments.js +2 -0
  187. package/dist/node/project-management.js +2 -0
  188. package/dist/node/runtime.js +0 -0
  189. package/dist/node/secrets/provider.js +11 -0
  190. package/dist/node/sms.js +2 -0
  191. package/dist/node/storage.js +2 -0
  192. package/dist/node/vector-store.js +2 -0
  193. package/dist/node/voice.js +2 -0
  194. package/dist/openbanking.d.ts +1 -8
  195. package/dist/openbanking.d.ts.map +1 -1
  196. package/dist/openbanking.js +3 -3
  197. package/dist/payments.d.ts +1 -8
  198. package/dist/payments.d.ts.map +1 -1
  199. package/dist/payments.js +3 -3
  200. package/dist/project-management.d.ts +1 -8
  201. package/dist/project-management.d.ts.map +1 -1
  202. package/dist/project-management.js +3 -3
  203. package/dist/runtime.d.ts +2 -2
  204. package/dist/runtime.d.ts.map +1 -0
  205. package/dist/runtime.js +1 -0
  206. package/dist/secrets/provider.d.ts +3 -2
  207. package/dist/secrets/provider.d.ts.map +1 -0
  208. package/dist/secrets/provider.js +12 -3
  209. package/dist/sms.d.ts +1 -8
  210. package/dist/sms.d.ts.map +1 -1
  211. package/dist/sms.js +3 -3
  212. package/dist/storage.d.ts +1 -8
  213. package/dist/storage.d.ts.map +1 -1
  214. package/dist/storage.js +3 -3
  215. package/dist/vector-store.d.ts +1 -8
  216. package/dist/vector-store.d.ts.map +1 -1
  217. package/dist/vector-store.js +3 -3
  218. package/dist/voice.d.ts +1 -8
  219. package/dist/voice.d.ts.map +1 -1
  220. package/dist/voice.js +3 -3
  221. package/package.json +405 -114
  222. package/dist/_virtual/_rolldown/runtime.js +0 -36
  223. package/dist/impls/elevenlabs-voice.js.map +0 -1
  224. package/dist/impls/fal-voice.js.map +0 -1
  225. package/dist/impls/fathom-meeting-recorder.js.map +0 -1
  226. package/dist/impls/fathom-meeting-recorder.mapper.js.map +0 -1
  227. package/dist/impls/fathom-meeting-recorder.utils.js.map +0 -1
  228. package/dist/impls/fathom-meeting-recorder.webhooks.js.map +0 -1
  229. package/dist/impls/fireflies-meeting-recorder.js.map +0 -1
  230. package/dist/impls/fireflies-meeting-recorder.queries.js.map +0 -1
  231. package/dist/impls/fireflies-meeting-recorder.utils.js.map +0 -1
  232. package/dist/impls/gcs-storage.js.map +0 -1
  233. package/dist/impls/gmail-inbound.js.map +0 -1
  234. package/dist/impls/gmail-outbound.js.map +0 -1
  235. package/dist/impls/google-calendar.js.map +0 -1
  236. package/dist/impls/gradium-voice.js.map +0 -1
  237. package/dist/impls/granola-meeting-recorder.js.map +0 -1
  238. package/dist/impls/jira.js.map +0 -1
  239. package/dist/impls/linear.js.map +0 -1
  240. package/dist/impls/mistral-embedding.js.map +0 -1
  241. package/dist/impls/mistral-llm.js.map +0 -1
  242. package/dist/impls/notion.js.map +0 -1
  243. package/dist/impls/posthog-reader.js.map +0 -1
  244. package/dist/impls/posthog-utils.js.map +0 -1
  245. package/dist/impls/posthog.js.map +0 -1
  246. package/dist/impls/postmark-email.js.map +0 -1
  247. package/dist/impls/powens-client.js.map +0 -1
  248. package/dist/impls/powens-openbanking.js.map +0 -1
  249. package/dist/impls/provider-factory.js.map +0 -1
  250. package/dist/impls/qdrant-vector.js.map +0 -1
  251. package/dist/impls/stripe-payments.js.map +0 -1
  252. package/dist/impls/supabase-psql.js.map +0 -1
  253. package/dist/impls/supabase-vector.js.map +0 -1
  254. package/dist/impls/tldv-meeting-recorder.js.map +0 -1
  255. package/dist/impls/twilio-sms.js.map +0 -1
  256. package/dist/index.js.map +0 -1
@@ -1,42 +1,38 @@
1
- import { meeting_recorder_d_exports } from "../meeting-recorder.js";
2
- import { Fathom } from "fathom-typescript";
3
-
4
- //#region src/impls/fathom-meeting-recorder.d.ts
5
- interface FathomMeetingRecorderProviderOptions {
6
- apiKey: string;
7
- baseUrl?: string;
8
- includeTranscript?: boolean;
9
- includeSummary?: boolean;
10
- includeActionItems?: boolean;
11
- includeCrmMatches?: boolean;
12
- triggeredFor?: string[];
13
- webhookSecret?: string;
14
- maxPages?: number;
15
- client?: Fathom;
1
+ import { Fathom } from 'fathom-typescript';
2
+ import type { MeetingRecord, MeetingRecorderGetMeetingParams, MeetingRecorderGetTranscriptParams, MeetingRecorderListMeetingsParams, MeetingRecorderListMeetingsResult, MeetingRecorderProvider, MeetingRecorderWebhookEvent, MeetingRecorderWebhookRegistration, MeetingRecorderWebhookRequest, MeetingTranscriptRecord } from '../meeting-recorder';
3
+ export interface FathomMeetingRecorderProviderOptions {
4
+ apiKey: string;
5
+ baseUrl?: string;
6
+ includeTranscript?: boolean;
7
+ includeSummary?: boolean;
8
+ includeActionItems?: boolean;
9
+ includeCrmMatches?: boolean;
10
+ triggeredFor?: string[];
11
+ webhookSecret?: string;
12
+ maxPages?: number;
13
+ client?: Fathom;
16
14
  }
17
- declare class FathomMeetingRecorderProvider implements meeting_recorder_d_exports.MeetingRecorderProvider {
18
- private readonly client;
19
- private readonly apiKey;
20
- private readonly baseUrl;
21
- private readonly includeTranscript;
22
- private readonly includeSummary;
23
- private readonly includeActionItems;
24
- private readonly includeCrmMatches;
25
- private readonly triggeredFor?;
26
- private readonly webhookSecret?;
27
- private readonly maxPages;
28
- constructor(options: FathomMeetingRecorderProviderOptions);
29
- listMeetings(params: meeting_recorder_d_exports.MeetingRecorderListMeetingsParams): Promise<meeting_recorder_d_exports.MeetingRecorderListMeetingsResult>;
30
- getMeeting(params: meeting_recorder_d_exports.MeetingRecorderGetMeetingParams): Promise<meeting_recorder_d_exports.MeetingRecord>;
31
- getTranscript(params: meeting_recorder_d_exports.MeetingRecorderGetTranscriptParams): Promise<meeting_recorder_d_exports.MeetingTranscriptRecord>;
32
- parseWebhook(request: meeting_recorder_d_exports.MeetingRecorderWebhookRequest): Promise<meeting_recorder_d_exports.MeetingRecorderWebhookEvent>;
33
- verifyWebhook(request: meeting_recorder_d_exports.MeetingRecorderWebhookRequest): Promise<boolean>;
34
- registerWebhook(registration: meeting_recorder_d_exports.MeetingRecorderWebhookRegistration): Promise<{
35
- id: string;
36
- secret?: string;
37
- }>;
38
- private request;
15
+ export declare class FathomMeetingRecorderProvider implements MeetingRecorderProvider {
16
+ private readonly client;
17
+ private readonly apiKey;
18
+ private readonly baseUrl;
19
+ private readonly includeTranscript;
20
+ private readonly includeSummary;
21
+ private readonly includeActionItems;
22
+ private readonly includeCrmMatches;
23
+ private readonly triggeredFor?;
24
+ private readonly webhookSecret?;
25
+ private readonly maxPages;
26
+ constructor(options: FathomMeetingRecorderProviderOptions);
27
+ listMeetings(params: MeetingRecorderListMeetingsParams): Promise<MeetingRecorderListMeetingsResult>;
28
+ getMeeting(params: MeetingRecorderGetMeetingParams): Promise<MeetingRecord>;
29
+ getTranscript(params: MeetingRecorderGetTranscriptParams): Promise<MeetingTranscriptRecord>;
30
+ parseWebhook(request: MeetingRecorderWebhookRequest): Promise<MeetingRecorderWebhookEvent>;
31
+ verifyWebhook(request: MeetingRecorderWebhookRequest): Promise<boolean>;
32
+ registerWebhook(registration: MeetingRecorderWebhookRegistration): Promise<{
33
+ id: string;
34
+ secret?: string;
35
+ }>;
36
+ private request;
39
37
  }
40
- //#endregion
41
- export { FathomMeetingRecorderProvider, FathomMeetingRecorderProviderOptions };
42
38
  //# sourceMappingURL=fathom-meeting-recorder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fathom-meeting-recorder.d.ts","names":[],"sources":["../../src/impls/fathom-meeting-recorder.ts"],"mappings":";;;;UAgCiB,oCAAA;EACf,MAAA;EACA,OAAA;EACA,iBAAA;EACA,cAAA;EACA,kBAAA;EACA,iBAAA;EACA,YAAA;EACA,aAAA;EACA,QAAA;EACA,MAAA,GAAS,MAAA;AAAA;AAAA,cAKE,6BAAA,YAAyC,0BAAA,CAAA,uBAAA;EAAA,iBACnC,MAAA;EAAA,iBACA,MAAA;EAAA,iBACA,OAAA;EAAA,iBACA,iBAAA;EAAA,iBACA,cAAA;EAAA,iBACA,kBAAA;EAAA,iBACA,iBAAA;EAAA,iBACA,YAAA;EAAA,iBACA,aAAA;EAAA,iBACA,QAAA;cAEL,OAAA,EAAS,oCAAA;EAoBf,YAAA,CACJ,MAAA,EAAQ,0BAAA,CAAA,iCAAA,GACP,OAAA,CAAQ,0BAAA,CAAA,iCAAA;EA8BL,UAAA,CACJ,MAAA,EAAQ,0BAAA,CAAA,+BAAA,GACP,OAAA,CAAQ,0BAAA,CAAA,aAAA;EAwBL,aAAA,CACJ,MAAA,EAAQ,0BAAA,CAAA,kCAAA,GACP,OAAA,CAAQ,0BAAA,CAAA,uBAAA;EA0BL,YAAA,CACJ,OAAA,EAAS,0BAAA,CAAA,6BAAA,GACR,OAAA,CAAQ,0BAAA,CAAA,2BAAA;EAuBL,aAAA,CACJ,OAAA,EAAS,0BAAA,CAAA,6BAAA,GACR,OAAA;EAYG,eAAA,CACJ,YAAA,EAAc,0BAAA,CAAA,kCAAA,GACb,OAAA;IAAU,EAAA;IAAY,MAAA;EAAA;EAAA,QAiBX,OAAA;AAAA"}
1
+ {"version":3,"file":"fathom-meeting-recorder.d.ts","sourceRoot":"","sources":["../../src/impls/fathom-meeting-recorder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAG3C,OAAO,KAAK,EACV,aAAa,EACb,+BAA+B,EAC/B,kCAAkC,EAClC,iCAAiC,EACjC,iCAAiC,EACjC,uBAAuB,EACvB,2BAA2B,EAC3B,kCAAkC,EAClC,6BAA6B,EAC7B,uBAAuB,EACxB,MAAM,qBAAqB,CAAC;AAkB7B,MAAM,WAAW,oCAAoC;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID,qBAAa,6BAA8B,YAAW,uBAAuB;IAC3E,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAU;IAC5C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAU;IACzC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAU;IAC7C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAU;IAC5C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAW;IACzC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEtB,OAAO,EAAE,oCAAoC;IAoBnD,YAAY,CAChB,MAAM,EAAE,iCAAiC,GACxC,OAAO,CAAC,iCAAiC,CAAC;IA8BvC,UAAU,CACd,MAAM,EAAE,+BAA+B,GACtC,OAAO,CAAC,aAAa,CAAC;IAwBnB,aAAa,CACjB,MAAM,EAAE,kCAAkC,GACzC,OAAO,CAAC,uBAAuB,CAAC;IA0B7B,YAAY,CAChB,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,2BAA2B,CAAC;IAuBjC,aAAa,CACjB,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,OAAO,CAAC;IAYb,eAAe,CACnB,YAAY,EAAE,kCAAkC,GAC/C,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;YAiB7B,OAAO;CAatB"}
@@ -1,145 +1,288 @@
1
- import { extractItems, extractNextCursor, mapTranscriptSegment, matchRecordingId, safeReadError } from "./fathom-meeting-recorder.utils.js";
2
- import { mapFathomMeeting } from "./fathom-meeting-recorder.mapper.js";
3
- import { normalizeTriggeredFor, normalizeWebhookHeaders } from "./fathom-meeting-recorder.webhooks.js";
4
- import { Fathom } from "fathom-typescript";
5
- import { TriggeredFor } from "fathom-typescript/sdk/models/operations";
1
+ // @bun
2
+ // src/impls/fathom-meeting-recorder.utils.ts
3
+ function extractItems(page) {
4
+ if (Array.isArray(page.items))
5
+ return page.items;
6
+ if (Array.isArray(page.data)) {
7
+ return page.data;
8
+ }
9
+ return [];
10
+ }
11
+ function extractNextCursor(page) {
12
+ return page.nextCursor ?? page.next_cursor ?? undefined;
13
+ }
14
+ function mapInvitee(invitee) {
15
+ const email = invitee.email;
16
+ const name = invitee.name;
17
+ if (!email && !name)
18
+ return;
19
+ return {
20
+ email,
21
+ name,
22
+ role: "attendee",
23
+ isExternal: invitee.is_external
24
+ };
25
+ }
26
+ function matchRecordingId(meeting, targetId) {
27
+ return meeting.recordingId === targetId;
28
+ }
29
+ function durationSeconds(start, end) {
30
+ if (!start || !end)
31
+ return;
32
+ const startDate = start instanceof Date ? start : new Date(start);
33
+ const endDate = end instanceof Date ? end : new Date(end);
34
+ if (Number.isNaN(startDate.valueOf()) || Number.isNaN(endDate.valueOf())) {
35
+ return;
36
+ }
37
+ return Math.max(0, (endDate.valueOf() - startDate.valueOf()) / 1000);
38
+ }
39
+ function mapTranscriptSegment(segment, index) {
40
+ return {
41
+ index,
42
+ speakerName: segment.speaker?.display_name ?? undefined,
43
+ speakerEmail: segment.speaker?.matched_calendar_invitee_email ?? undefined,
44
+ text: segment.text,
45
+ startTimeMs: parseTimestamp(segment.timestamp)
46
+ };
47
+ }
48
+ function parseTimestamp(value) {
49
+ const parts = value.split(":").map((part) => Number(part));
50
+ if (parts.length !== 3 || parts.some((part) => Number.isNaN(part))) {
51
+ return;
52
+ }
53
+ const [hours = 0, minutes = 0, seconds = 0] = parts;
54
+ return (hours * 3600 + minutes * 60 + seconds) * 1000;
55
+ }
56
+ async function safeReadError(response) {
57
+ try {
58
+ const data = await response.json();
59
+ return data?.message ?? response.statusText;
60
+ } catch {
61
+ return response.statusText;
62
+ }
63
+ }
6
64
 
7
- //#region src/impls/fathom-meeting-recorder.ts
8
- const DEFAULT_BASE_URL = "https://api.fathom.ai/external/v1";
9
- var FathomMeetingRecorderProvider = class {
10
- client;
11
- apiKey;
12
- baseUrl;
13
- includeTranscript;
14
- includeSummary;
15
- includeActionItems;
16
- includeCrmMatches;
17
- triggeredFor;
18
- webhookSecret;
19
- maxPages;
20
- constructor(options) {
21
- this.apiKey = options.apiKey;
22
- this.baseUrl = options.baseUrl ?? DEFAULT_BASE_URL;
23
- this.includeTranscript = options.includeTranscript ?? false;
24
- this.includeSummary = options.includeSummary ?? false;
25
- this.includeActionItems = options.includeActionItems ?? false;
26
- this.includeCrmMatches = options.includeCrmMatches ?? false;
27
- this.triggeredFor = options.triggeredFor;
28
- this.webhookSecret = options.webhookSecret;
29
- this.maxPages = options.maxPages ?? 5;
30
- this.client = options.client ?? new Fathom({
31
- serverURL: this.baseUrl,
32
- security: { apiKeyAuth: this.apiKey }
33
- });
34
- }
35
- async listMeetings(params) {
36
- const request = {
37
- cursor: params.cursor,
38
- createdAfter: params.from,
39
- createdBefore: params.to,
40
- includeTranscript: params.includeTranscript ?? this.includeTranscript,
41
- includeSummary: params.includeSummary ?? this.includeSummary,
42
- includeActionItems: this.includeActionItems,
43
- includeCrmMatches: this.includeCrmMatches
44
- };
45
- const result = await this.client.listMeetings(request);
46
- let firstPage;
47
- for await (const page of result) {
48
- firstPage = page;
49
- break;
50
- }
51
- if (!firstPage) return { meetings: [] };
52
- return {
53
- meetings: extractItems(firstPage).map((meeting) => mapFathomMeeting(meeting, params)),
54
- nextCursor: extractNextCursor(firstPage) ?? void 0,
55
- hasMore: Boolean(extractNextCursor(firstPage))
56
- };
57
- }
58
- async getMeeting(params) {
59
- const result = await this.client.listMeetings({
60
- includeTranscript: params.includeTranscript ?? this.includeTranscript,
61
- includeSummary: params.includeSummary ?? this.includeSummary,
62
- includeActionItems: this.includeActionItems,
63
- includeCrmMatches: this.includeCrmMatches
64
- });
65
- let pageCount = 0;
66
- const targetId = Number.parseInt(params.meetingId, 10);
67
- for await (const page of result) {
68
- pageCount += 1;
69
- const match = extractItems(page).find((meeting) => matchRecordingId(meeting, targetId));
70
- if (match) return mapFathomMeeting(match, params);
71
- if (pageCount >= this.maxPages) break;
72
- }
73
- throw new Error(`Fathom meeting "${targetId}" not found.`);
74
- }
75
- async getTranscript(params) {
76
- const response = await this.request(`/recordings/${encodeURIComponent(params.meetingId)}/transcript`);
77
- if (!Array.isArray(response.transcript)) throw new Error("Fathom transcript response did not include transcript.");
78
- const segments = response.transcript.map((segment, index) => mapTranscriptSegment(segment, index));
79
- return {
80
- id: params.meetingId,
81
- meetingId: params.meetingId,
82
- tenantId: params.tenantId,
83
- connectionId: params.connectionId ?? "unknown",
84
- externalId: params.meetingId,
85
- format: "segments",
86
- text: segments.map((segment) => segment.text).join("\n"),
87
- segments,
88
- metadata: { provider: "fathom" },
89
- raw: response.transcript
90
- };
91
- }
92
- async parseWebhook(request) {
93
- const payload = request.parsedBody ?? JSON.parse(request.rawBody);
94
- const body = payload;
95
- const recordingId = body.recording_id ?? body.recordingId ?? body.meeting_id ?? body.meetingId;
96
- const verified = this.webhookSecret ? await this.verifyWebhook(request) : void 0;
97
- return {
98
- providerKey: "meeting-recorder.fathom",
99
- eventType: body.event_type ?? body.eventType,
100
- meetingId: recordingId,
101
- recordingId,
102
- verified,
103
- payload
104
- };
105
- }
106
- async verifyWebhook(request) {
107
- if (!this.webhookSecret) return true;
108
- const headers = normalizeWebhookHeaders(request.headers);
109
- try {
110
- return Boolean(Fathom.verifyWebhook(this.webhookSecret, headers, request.rawBody));
111
- } catch {
112
- return false;
113
- }
114
- }
115
- async registerWebhook(registration) {
116
- const triggeredFor = normalizeTriggeredFor(registration.triggeredFor) ?? normalizeTriggeredFor(this.triggeredFor) ?? [TriggeredFor.MyRecordings];
117
- const webhook = await this.client.createWebhook({
118
- destinationUrl: registration.url,
119
- includeTranscript: registration.includeTranscript ?? true,
120
- includeSummary: registration.includeSummary ?? false,
121
- includeActionItems: registration.includeActionItems ?? false,
122
- includeCrmMatches: registration.includeCrmMatches ?? false,
123
- triggeredFor
124
- });
125
- return {
126
- id: webhook.id,
127
- secret: webhook.secret
128
- };
129
- }
130
- async request(path) {
131
- const response = await fetch(`${this.baseUrl}${path}`, { headers: {
132
- "Content-Type": "application/json",
133
- "X-Api-Key": this.apiKey
134
- } });
135
- if (!response.ok) {
136
- const message = await safeReadError(response);
137
- throw new Error(`Fathom API error (${response.status}): ${message}`);
138
- }
139
- return await response.json();
140
- }
65
+ // src/impls/fathom-meeting-recorder.mapper.ts
66
+ var mapFathomMeetingInvites = (invitees) => {
67
+ return invitees.map((invitee) => ({
68
+ ...invitee,
69
+ name: invitee.name ?? undefined,
70
+ email: invitee.email ?? undefined
71
+ }));
141
72
  };
73
+ function mapFathomMeeting(meeting, params) {
74
+ const connectionId = params.connectionId ?? "unknown";
75
+ return {
76
+ id: meeting.recordingId.toString(),
77
+ tenantId: params.tenantId,
78
+ connectionId,
79
+ externalId: meeting.recordingId.toString(),
80
+ title: meeting.title ?? meeting.meetingTitle,
81
+ organizer: meeting.recordedBy ? {
82
+ name: meeting.recordedBy.name ?? undefined,
83
+ email: meeting.recordedBy.email ?? undefined,
84
+ role: "organizer"
85
+ } : undefined,
86
+ invitees: meeting.calendarInvitees.length ? mapFathomMeetingInvites(meeting.calendarInvitees) : undefined,
87
+ participants: meeting.calendarInvitees.length ? mapFathomMeetingInvites(meeting.calendarInvitees) : undefined,
88
+ scheduledStartAt: meeting.scheduledStartTime?.toISOString(),
89
+ scheduledEndAt: meeting.scheduledEndTime?.toISOString(),
90
+ recordingStartAt: meeting.recordingStartTime?.toISOString(),
91
+ recordingEndAt: meeting.recordingEndTime?.toISOString(),
92
+ durationSeconds: durationSeconds(meeting.recordingStartTime, meeting.recordingEndTime),
93
+ meetingUrl: meeting.url ?? undefined,
94
+ shareUrl: meeting.shareUrl ?? undefined,
95
+ transcriptAvailable: Array.isArray(meeting.transcript),
96
+ sourcePlatform: "fathom",
97
+ language: meeting.transcriptLanguage,
98
+ metadata: {
99
+ calendarInviteesDomainsType: meeting.calendarInviteesDomainsType
100
+ }
101
+ };
102
+ }
103
+
104
+ // src/impls/fathom-meeting-recorder.webhooks.ts
105
+ import { TriggeredFor } from "fathom-typescript/sdk/models/operations";
106
+ function normalizeWebhookHeaders(headers) {
107
+ const normalized = {};
108
+ for (const [key, value] of Object.entries(headers)) {
109
+ if (value == null)
110
+ continue;
111
+ const normalizedKey = key.toLowerCase();
112
+ if (Array.isArray(value)) {
113
+ if (value.length === 0)
114
+ continue;
115
+ normalized[normalizedKey] = value.join(", ");
116
+ } else {
117
+ normalized[normalizedKey] = value;
118
+ }
119
+ }
120
+ return normalized;
121
+ }
122
+ function normalizeTriggeredFor(values) {
123
+ if (!values)
124
+ return;
125
+ const allowed = new Set(Object.values(TriggeredFor));
126
+ const normalized = values.map((value) => value.trim()).filter((value) => allowed.has(value));
127
+ return normalized.length ? normalized : undefined;
128
+ }
142
129
 
143
- //#endregion
144
- export { FathomMeetingRecorderProvider };
145
- //# sourceMappingURL=fathom-meeting-recorder.js.map
130
+ // src/impls/fathom-meeting-recorder.ts
131
+ import { Fathom } from "fathom-typescript";
132
+ import { TriggeredFor as TriggeredFor2 } from "fathom-typescript/sdk/models/operations";
133
+ var DEFAULT_BASE_URL = "https://api.fathom.ai/external/v1";
134
+
135
+ class FathomMeetingRecorderProvider {
136
+ client;
137
+ apiKey;
138
+ baseUrl;
139
+ includeTranscript;
140
+ includeSummary;
141
+ includeActionItems;
142
+ includeCrmMatches;
143
+ triggeredFor;
144
+ webhookSecret;
145
+ maxPages;
146
+ constructor(options) {
147
+ this.apiKey = options.apiKey;
148
+ this.baseUrl = options.baseUrl ?? DEFAULT_BASE_URL;
149
+ this.includeTranscript = options.includeTranscript ?? false;
150
+ this.includeSummary = options.includeSummary ?? false;
151
+ this.includeActionItems = options.includeActionItems ?? false;
152
+ this.includeCrmMatches = options.includeCrmMatches ?? false;
153
+ this.triggeredFor = options.triggeredFor;
154
+ this.webhookSecret = options.webhookSecret;
155
+ this.maxPages = options.maxPages ?? 5;
156
+ this.client = options.client ?? new Fathom({
157
+ serverURL: this.baseUrl,
158
+ security: {
159
+ apiKeyAuth: this.apiKey
160
+ }
161
+ });
162
+ }
163
+ async listMeetings(params) {
164
+ const request = {
165
+ cursor: params.cursor,
166
+ createdAfter: params.from,
167
+ createdBefore: params.to,
168
+ includeTranscript: params.includeTranscript ?? this.includeTranscript,
169
+ includeSummary: params.includeSummary ?? this.includeSummary,
170
+ includeActionItems: this.includeActionItems,
171
+ includeCrmMatches: this.includeCrmMatches
172
+ };
173
+ const result = await this.client.listMeetings(request);
174
+ let firstPage;
175
+ for await (const page of result) {
176
+ firstPage = page;
177
+ break;
178
+ }
179
+ if (!firstPage) {
180
+ return { meetings: [] };
181
+ }
182
+ const rawItems = extractItems(firstPage);
183
+ const meetings = rawItems.map((meeting) => mapFathomMeeting(meeting, params));
184
+ return {
185
+ meetings,
186
+ nextCursor: extractNextCursor(firstPage) ?? undefined,
187
+ hasMore: Boolean(extractNextCursor(firstPage))
188
+ };
189
+ }
190
+ async getMeeting(params) {
191
+ const result = await this.client.listMeetings({
192
+ includeTranscript: params.includeTranscript ?? this.includeTranscript,
193
+ includeSummary: params.includeSummary ?? this.includeSummary,
194
+ includeActionItems: this.includeActionItems,
195
+ includeCrmMatches: this.includeCrmMatches
196
+ });
197
+ let pageCount = 0;
198
+ const targetId = Number.parseInt(params.meetingId, 10);
199
+ for await (const page of result) {
200
+ pageCount += 1;
201
+ const match = extractItems(page).find((meeting) => matchRecordingId(meeting, targetId));
202
+ if (match) {
203
+ return mapFathomMeeting(match, params);
204
+ }
205
+ if (pageCount >= this.maxPages) {
206
+ break;
207
+ }
208
+ }
209
+ throw new Error(`Fathom meeting "${targetId}" not found.`);
210
+ }
211
+ async getTranscript(params) {
212
+ const response = await this.request(`/recordings/${encodeURIComponent(params.meetingId)}/transcript`);
213
+ if (!Array.isArray(response.transcript)) {
214
+ throw new Error("Fathom transcript response did not include transcript.");
215
+ }
216
+ const segments = response.transcript.map((segment, index) => mapTranscriptSegment(segment, index));
217
+ return {
218
+ id: params.meetingId,
219
+ meetingId: params.meetingId,
220
+ tenantId: params.tenantId,
221
+ connectionId: params.connectionId ?? "unknown",
222
+ externalId: params.meetingId,
223
+ format: "segments",
224
+ text: segments.map((segment) => segment.text).join(`
225
+ `),
226
+ segments,
227
+ metadata: {
228
+ provider: "fathom"
229
+ },
230
+ raw: response.transcript
231
+ };
232
+ }
233
+ async parseWebhook(request) {
234
+ const payload = request.parsedBody ?? JSON.parse(request.rawBody);
235
+ const body = payload;
236
+ const recordingId = body.recording_id ?? body.recordingId ?? body.meeting_id ?? body.meetingId;
237
+ const verified = this.webhookSecret ? await this.verifyWebhook(request) : undefined;
238
+ return {
239
+ providerKey: "meeting-recorder.fathom",
240
+ eventType: body.event_type ?? body.eventType,
241
+ meetingId: recordingId,
242
+ recordingId,
243
+ verified,
244
+ payload
245
+ };
246
+ }
247
+ async verifyWebhook(request) {
248
+ if (!this.webhookSecret)
249
+ return true;
250
+ const headers = normalizeWebhookHeaders(request.headers);
251
+ try {
252
+ return Boolean(Fathom.verifyWebhook(this.webhookSecret, headers, request.rawBody));
253
+ } catch {
254
+ return false;
255
+ }
256
+ }
257
+ async registerWebhook(registration) {
258
+ const triggeredFor = normalizeTriggeredFor(registration.triggeredFor) ?? normalizeTriggeredFor(this.triggeredFor) ?? [TriggeredFor2.MyRecordings];
259
+ const webhook = await this.client.createWebhook({
260
+ destinationUrl: registration.url,
261
+ includeTranscript: registration.includeTranscript ?? true,
262
+ includeSummary: registration.includeSummary ?? false,
263
+ includeActionItems: registration.includeActionItems ?? false,
264
+ includeCrmMatches: registration.includeCrmMatches ?? false,
265
+ triggeredFor
266
+ });
267
+ return {
268
+ id: webhook.id,
269
+ secret: webhook.secret
270
+ };
271
+ }
272
+ async request(path) {
273
+ const response = await fetch(`${this.baseUrl}${path}`, {
274
+ headers: {
275
+ "Content-Type": "application/json",
276
+ "X-Api-Key": this.apiKey
277
+ }
278
+ });
279
+ if (!response.ok) {
280
+ const message = await safeReadError(response);
281
+ throw new Error(`Fathom API error (${response.status}): ${message}`);
282
+ }
283
+ return await response.json();
284
+ }
285
+ }
286
+ export {
287
+ FathomMeetingRecorderProvider
288
+ };
@@ -1,9 +1,5 @@
1
- import { meeting_recorder_d_exports } from "../meeting-recorder.js";
2
- import { FathomMeeting, FathomMeetingInvitee } from "./fathom-meeting-recorder.types.js";
3
-
4
- //#region src/impls/fathom-meeting-recorder.mapper.d.ts
5
- declare const mapFathomMeetingInvites: (invitees: FathomMeetingInvitee[]) => meeting_recorder_d_exports.MeetingParticipant[];
6
- declare function mapFathomMeeting(meeting: FathomMeeting, params: meeting_recorder_d_exports.MeetingRecorderListMeetingsParams | meeting_recorder_d_exports.MeetingRecorderGetMeetingParams): meeting_recorder_d_exports.MeetingRecord;
7
- //#endregion
8
- export { mapFathomMeeting, mapFathomMeetingInvites };
1
+ import type { MeetingParticipant, MeetingRecord, MeetingRecorderGetMeetingParams, MeetingRecorderListMeetingsParams } from '../meeting-recorder';
2
+ import type { FathomMeeting, FathomMeetingInvitee } from './fathom-meeting-recorder.types';
3
+ export declare const mapFathomMeetingInvites: (invitees: FathomMeetingInvitee[]) => MeetingParticipant[];
4
+ export declare function mapFathomMeeting(meeting: FathomMeeting, params: MeetingRecorderListMeetingsParams | MeetingRecorderGetMeetingParams): MeetingRecord;
9
5
  //# sourceMappingURL=fathom-meeting-recorder.mapper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fathom-meeting-recorder.mapper.d.ts","names":[],"sources":["../../src/impls/fathom-meeting-recorder.mapper.ts"],"mappings":";;;;cAYa,uBAAA,GACX,QAAA,EAAU,oBAAA,OACT,0BAAA,CAAA,kBAAA;AAAA,iBAQa,gBAAA,CACd,OAAA,EAAS,aAAA,EACT,MAAA,EAAQ,0BAAA,CAAA,iCAAA,GAAoC,0BAAA,CAAA,+BAAA,GAC3C,0BAAA,CAAA,aAAA"}
1
+ {"version":3,"file":"fathom-meeting-recorder.mapper.d.ts","sourceRoot":"","sources":["../../src/impls/fathom-meeting-recorder.mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,aAAa,EACb,+BAA+B,EAC/B,iCAAiC,EAClC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EACV,aAAa,EACb,oBAAoB,EACrB,MAAM,iCAAiC,CAAC;AAGzC,eAAO,MAAM,uBAAuB,GAClC,UAAU,oBAAoB,EAAE,KAC/B,kBAAkB,EAMpB,CAAC;AAEF,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,aAAa,EACtB,MAAM,EAAE,iCAAiC,GAAG,+BAA+B,GAC1E,aAAa,CAsCf"}