@contractspec/integration.providers-impls 1.57.0 → 1.59.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,9 +1,2 @@
1
- import { __exportAll, __reExport } from "./_virtual/_rolldown/runtime.js";
2
- export * from "@contractspec/lib.contracts/integrations/providers/analytics";
3
-
4
- //#region src/analytics.d.ts
5
-
6
- import * as import__contractspec_lib_contracts_integrations_providers_analytics from "@contractspec/lib.contracts/integrations/providers/analytics";
7
- //#endregion
8
- export { import__contractspec_lib_contracts_integrations_providers_analytics as analytics_d_exports };
1
+ export * from '@contractspec/lib.contracts/integrations/providers/analytics';
9
2
  //# sourceMappingURL=analytics.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"analytics.d.ts","names":[],"sources":["../src/analytics.ts"],"mappings":""}
1
+ {"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../src/analytics.ts"],"names":[],"mappings":"AAAA,cAAc,8DAA8D,CAAC"}
package/dist/analytics.js CHANGED
@@ -1,3 +1,3 @@
1
- import { __exportAll, __reExport } from "./_virtual/_rolldown/runtime.js";
2
-
3
- export * from "@contractspec/lib.contracts/integrations/providers/analytics"
1
+ // @bun
2
+ // src/analytics.ts
3
+ export * from "@contractspec/lib.contracts/integrations/providers/analytics";
@@ -1,9 +1,2 @@
1
- import { __exportAll, __reExport } from "./_virtual/_rolldown/runtime.js";
2
- export * from "@contractspec/lib.contracts/integrations/providers/calendar";
3
-
4
- //#region src/calendar.d.ts
5
-
6
- import * as import__contractspec_lib_contracts_integrations_providers_calendar from "@contractspec/lib.contracts/integrations/providers/calendar";
7
- //#endregion
8
- export { import__contractspec_lib_contracts_integrations_providers_calendar as calendar_d_exports };
1
+ export * from '@contractspec/lib.contracts/integrations/providers/calendar';
9
2
  //# sourceMappingURL=calendar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.d.ts","names":[],"sources":["../src/calendar.ts"],"mappings":""}
1
+ {"version":3,"file":"calendar.d.ts","sourceRoot":"","sources":["../src/calendar.ts"],"names":[],"mappings":"AAAA,cAAc,6DAA6D,CAAC"}
package/dist/calendar.js CHANGED
@@ -1,3 +1,3 @@
1
- import { __exportAll, __reExport } from "./_virtual/_rolldown/runtime.js";
2
-
3
- export * from "@contractspec/lib.contracts/integrations/providers/calendar"
1
+ // @bun
2
+ // src/calendar.ts
3
+ export * from "@contractspec/lib.contracts/integrations/providers/calendar";
@@ -1,9 +1,2 @@
1
- import { __exportAll, __reExport } from "./_virtual/_rolldown/runtime.js";
2
- export * from "@contractspec/lib.contracts/integrations/providers/database";
3
-
4
- //#region src/database.d.ts
5
-
6
- import * as import__contractspec_lib_contracts_integrations_providers_database from "@contractspec/lib.contracts/integrations/providers/database";
7
- //#endregion
8
- export { import__contractspec_lib_contracts_integrations_providers_database as database_d_exports };
1
+ export * from '@contractspec/lib.contracts/integrations/providers/database';
9
2
  //# sourceMappingURL=database.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"database.d.ts","names":[],"sources":["../src/database.ts"],"mappings":""}
1
+ {"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AAAA,cAAc,6DAA6D,CAAC"}
package/dist/database.js CHANGED
@@ -1,3 +1,3 @@
1
- import { __exportAll, __reExport } from "./_virtual/_rolldown/runtime.js";
2
-
3
- export * from "@contractspec/lib.contracts/integrations/providers/database"
1
+ // @bun
2
+ // src/database.ts
3
+ export * from "@contractspec/lib.contracts/integrations/providers/database";
package/dist/email.d.ts CHANGED
@@ -1,9 +1,2 @@
1
- import { __exportAll, __reExport } from "./_virtual/_rolldown/runtime.js";
2
- export * from "@contractspec/lib.contracts/integrations/providers/email";
3
-
4
- //#region src/email.d.ts
5
-
6
- import * as import__contractspec_lib_contracts_integrations_providers_email from "@contractspec/lib.contracts/integrations/providers/email";
7
- //#endregion
8
- export { import__contractspec_lib_contracts_integrations_providers_email as email_d_exports };
1
+ export * from '@contractspec/lib.contracts/integrations/providers/email';
9
2
  //# sourceMappingURL=email.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"email.d.ts","names":[],"sources":["../src/email.ts"],"mappings":""}
1
+ {"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../src/email.ts"],"names":[],"mappings":"AAAA,cAAc,0DAA0D,CAAC"}
package/dist/email.js CHANGED
@@ -1,3 +1,3 @@
1
- import { __exportAll, __reExport } from "./_virtual/_rolldown/runtime.js";
2
-
3
- export * from "@contractspec/lib.contracts/integrations/providers/email"
1
+ // @bun
2
+ // src/email.ts
3
+ export * from "@contractspec/lib.contracts/integrations/providers/email";
@@ -1,9 +1,2 @@
1
- import { __exportAll, __reExport } from "./_virtual/_rolldown/runtime.js";
2
- export * from "@contractspec/lib.contracts/integrations/providers/embedding";
3
-
4
- //#region src/embedding.d.ts
5
-
6
- import * as import__contractspec_lib_contracts_integrations_providers_embedding from "@contractspec/lib.contracts/integrations/providers/embedding";
7
- //#endregion
8
- export { import__contractspec_lib_contracts_integrations_providers_embedding as embedding_d_exports };
1
+ export * from '@contractspec/lib.contracts/integrations/providers/embedding';
9
2
  //# sourceMappingURL=embedding.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"embedding.d.ts","names":[],"sources":["../src/embedding.ts"],"mappings":""}
1
+ {"version":3,"file":"embedding.d.ts","sourceRoot":"","sources":["../src/embedding.ts"],"names":[],"mappings":"AAAA,cAAc,8DAA8D,CAAC"}
package/dist/embedding.js CHANGED
@@ -1,3 +1,3 @@
1
- import { __exportAll, __reExport } from "./_virtual/_rolldown/runtime.js";
2
-
3
- export * from "@contractspec/lib.contracts/integrations/providers/embedding"
1
+ // @bun
2
+ // src/embedding.ts
3
+ export * from "@contractspec/lib.contracts/integrations/providers/embedding";
@@ -1,21 +1,17 @@
1
- import { voice_d_exports } from "../voice.js";
2
- import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";
3
-
4
- //#region src/impls/elevenlabs-voice.d.ts
5
- interface ElevenLabsVoiceProviderOptions {
6
- apiKey: string;
7
- defaultVoiceId?: string;
8
- modelId?: string;
9
- client?: ElevenLabsClient;
1
+ import { ElevenLabsClient } from '@elevenlabs/elevenlabs-js';
2
+ import type { Voice, VoiceProvider, VoiceSynthesisInput, VoiceSynthesisResult } from '../voice';
3
+ export interface ElevenLabsVoiceProviderOptions {
4
+ apiKey: string;
5
+ defaultVoiceId?: string;
6
+ modelId?: string;
7
+ client?: ElevenLabsClient;
10
8
  }
11
- declare class ElevenLabsVoiceProvider implements voice_d_exports.VoiceProvider {
12
- private readonly client;
13
- private readonly defaultVoiceId?;
14
- private readonly modelId?;
15
- constructor(options: ElevenLabsVoiceProviderOptions);
16
- listVoices(): Promise<voice_d_exports.Voice[]>;
17
- synthesize(input: voice_d_exports.VoiceSynthesisInput): Promise<voice_d_exports.VoiceSynthesisResult>;
9
+ export declare class ElevenLabsVoiceProvider implements VoiceProvider {
10
+ private readonly client;
11
+ private readonly defaultVoiceId?;
12
+ private readonly modelId?;
13
+ constructor(options: ElevenLabsVoiceProviderOptions);
14
+ listVoices(): Promise<Voice[]>;
15
+ synthesize(input: VoiceSynthesisInput): Promise<VoiceSynthesisResult>;
18
16
  }
19
- //#endregion
20
- export { ElevenLabsVoiceProvider, ElevenLabsVoiceProviderOptions };
21
17
  //# sourceMappingURL=elevenlabs-voice.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"elevenlabs-voice.d.ts","names":[],"sources":["../../src/impls/elevenlabs-voice.ts"],"mappings":";;;;UAUiB,8BAAA;EACf,MAAA;EACA,cAAA;EACA,OAAA;EACA,MAAA,GAAS,gBAAA;AAAA;AAAA,cA6BE,uBAAA,YAAmC,eAAA,CAAA,aAAA;EAAA,iBAC7B,MAAA;EAAA,iBACA,cAAA;EAAA,iBACA,OAAA;cAEL,OAAA,EAAS,8BAAA;EAUf,UAAA,CAAA,GAAc,OAAA,CAAQ,eAAA,CAAA,KAAA;EAkBtB,UAAA,CAAW,KAAA,EAAO,eAAA,CAAA,mBAAA,GAAsB,OAAA,CAAQ,eAAA,CAAA,oBAAA;AAAA"}
1
+ {"version":3,"file":"elevenlabs-voice.d.ts","sourceRoot":"","sources":["../../src/impls/elevenlabs-voice.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,OAAO,KAAK,EACV,KAAK,EACL,aAAa,EACb,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,UAAU,CAAC;AAElB,MAAM,WAAW,8BAA8B;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B;AA4BD,qBAAa,uBAAwB,YAAW,aAAa;IAC3D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAC1C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAS;gBAEtB,OAAO,EAAE,8BAA8B;IAU7C,UAAU,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;IAkB9B,UAAU,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;CA4C5E"}
@@ -1,93 +1,103 @@
1
+ // @bun
2
+ // src/impls/elevenlabs-voice.ts
1
3
  import { ElevenLabsClient } from "@elevenlabs/elevenlabs-js";
2
-
3
- //#region src/impls/elevenlabs-voice.ts
4
- const FORMAT_MAP = {
5
- mp3: "mp3_44100_128",
6
- wav: "pcm_44100",
7
- ogg: "mp3_44100_128",
8
- pcm: "pcm_16000"
9
- };
10
- const SAMPLE_RATE = {
11
- mp3_22050_32: 22050,
12
- mp3_44100_32: 44100,
13
- mp3_44100_64: 44100,
14
- mp3_44100_96: 44100,
15
- mp3_44100_128: 44100,
16
- mp3_44100_192: 44100,
17
- pcm_16000: 16e3,
18
- pcm_22050: 22050,
19
- pcm_24000: 24e3,
20
- pcm_44100: 44100,
21
- ulaw_8000: 8e3
4
+ var FORMAT_MAP = {
5
+ mp3: "mp3_44100_128",
6
+ wav: "pcm_44100",
7
+ ogg: "mp3_44100_128",
8
+ pcm: "pcm_16000"
22
9
  };
23
- var ElevenLabsVoiceProvider = class {
24
- client;
25
- defaultVoiceId;
26
- modelId;
27
- constructor(options) {
28
- this.client = options.client ?? new ElevenLabsClient({ apiKey: options.apiKey });
29
- this.defaultVoiceId = options.defaultVoiceId;
30
- this.modelId = options.modelId;
31
- }
32
- async listVoices() {
33
- return ((await this.client.voices.getAll()).voices ?? []).map((voice) => ({
34
- id: voice.voiceId ?? "",
35
- name: voice.name ?? "",
36
- description: voice.description ?? void 0,
37
- language: voice.labels?.language ?? void 0,
38
- metadata: {
39
- category: voice.category ?? "",
40
- ...voice.previewUrl ? { previewUrl: voice.previewUrl } : {},
41
- ...(() => {
42
- const { language, ...rest } = voice.labels ?? {};
43
- return rest;
44
- })()
45
- }
46
- }));
47
- }
48
- async synthesize(input) {
49
- const voiceId = input.voiceId ?? this.defaultVoiceId;
50
- if (!voiceId) throw new Error("Voice ID is required for ElevenLabs synthesis.");
51
- const formatKey = input.format ?? "mp3";
52
- const outputFormat = FORMAT_MAP[formatKey] ?? FORMAT_MAP.mp3;
53
- const sampleRate = input.sampleRateHz ?? SAMPLE_RATE[outputFormat] ?? SAMPLE_RATE.mp3_44100_128 ?? 44100;
54
- const voiceSettings = input.stability != null || input.similarityBoost != null || input.style != null ? {
55
- ...input.stability != null ? { stability: input.stability } : {},
56
- ...input.similarityBoost != null ? { similarityBoost: input.similarityBoost } : {},
57
- ...input.style != null ? { style: input.style } : {}
58
- } : void 0;
59
- return {
60
- audio: await readWebStream(await this.client.textToSpeech.convert(voiceId, {
61
- text: input.text,
62
- modelId: this.modelId,
63
- outputFormat,
64
- voiceSettings
65
- })),
66
- format: formatKey,
67
- sampleRateHz: sampleRate,
68
- durationSeconds: void 0,
69
- url: void 0
70
- };
71
- }
10
+ var SAMPLE_RATE = {
11
+ mp3_22050_32: 22050,
12
+ mp3_44100_32: 44100,
13
+ mp3_44100_64: 44100,
14
+ mp3_44100_96: 44100,
15
+ mp3_44100_128: 44100,
16
+ mp3_44100_192: 44100,
17
+ pcm_16000: 16000,
18
+ pcm_22050: 22050,
19
+ pcm_24000: 24000,
20
+ pcm_44100: 44100,
21
+ ulaw_8000: 8000
72
22
  };
23
+
24
+ class ElevenLabsVoiceProvider {
25
+ client;
26
+ defaultVoiceId;
27
+ modelId;
28
+ constructor(options) {
29
+ this.client = options.client ?? new ElevenLabsClient({
30
+ apiKey: options.apiKey
31
+ });
32
+ this.defaultVoiceId = options.defaultVoiceId;
33
+ this.modelId = options.modelId;
34
+ }
35
+ async listVoices() {
36
+ const response = await this.client.voices.getAll();
37
+ return (response.voices ?? []).map((voice) => ({
38
+ id: voice.voiceId ?? "",
39
+ name: voice.name ?? "",
40
+ description: voice.description ?? undefined,
41
+ language: voice.labels?.language ?? undefined,
42
+ metadata: {
43
+ category: voice.category ?? "",
44
+ ...voice.previewUrl ? { previewUrl: voice.previewUrl } : {},
45
+ ...(() => {
46
+ const { language, ...rest } = voice.labels ?? {};
47
+ return rest;
48
+ })()
49
+ }
50
+ }));
51
+ }
52
+ async synthesize(input) {
53
+ const voiceId = input.voiceId ?? this.defaultVoiceId;
54
+ if (!voiceId) {
55
+ throw new Error("Voice ID is required for ElevenLabs synthesis.");
56
+ }
57
+ const formatKey = input.format ?? "mp3";
58
+ const outputFormat = FORMAT_MAP[formatKey] ?? FORMAT_MAP.mp3;
59
+ const sampleRate = input.sampleRateHz ?? SAMPLE_RATE[outputFormat] ?? SAMPLE_RATE.mp3_44100_128 ?? 44100;
60
+ const voiceSettings = input.stability != null || input.similarityBoost != null || input.style != null ? {
61
+ ...input.stability != null ? { stability: input.stability } : {},
62
+ ...input.similarityBoost != null ? { similarityBoost: input.similarityBoost } : {},
63
+ ...input.style != null ? { style: input.style } : {}
64
+ } : undefined;
65
+ const stream = await this.client.textToSpeech.convert(voiceId, {
66
+ text: input.text,
67
+ modelId: this.modelId,
68
+ outputFormat,
69
+ voiceSettings
70
+ });
71
+ const audio = await readWebStream(stream);
72
+ return {
73
+ audio,
74
+ format: formatKey,
75
+ sampleRateHz: sampleRate,
76
+ durationSeconds: undefined,
77
+ url: undefined
78
+ };
79
+ }
80
+ }
73
81
  async function readWebStream(stream) {
74
- const reader = stream.getReader();
75
- const chunks = [];
76
- while (true) {
77
- const { done, value } = await reader.read();
78
- if (done) break;
79
- if (value) chunks.push(value);
80
- }
81
- const length = chunks.reduce((total, chunk) => total + chunk.length, 0);
82
- const result = new Uint8Array(length);
83
- let offset = 0;
84
- for (const chunk of chunks) {
85
- result.set(chunk, offset);
86
- offset += chunk.length;
87
- }
88
- return result;
82
+ const reader = stream.getReader();
83
+ const chunks = [];
84
+ while (true) {
85
+ const { done, value } = await reader.read();
86
+ if (done)
87
+ break;
88
+ if (value) {
89
+ chunks.push(value);
90
+ }
91
+ }
92
+ const length = chunks.reduce((total, chunk) => total + chunk.length, 0);
93
+ const result = new Uint8Array(length);
94
+ let offset = 0;
95
+ for (const chunk of chunks) {
96
+ result.set(chunk, offset);
97
+ offset += chunk.length;
98
+ }
99
+ return result;
89
100
  }
90
-
91
- //#endregion
92
- export { ElevenLabsVoiceProvider };
93
- //# sourceMappingURL=elevenlabs-voice.js.map
101
+ export {
102
+ ElevenLabsVoiceProvider
103
+ };
@@ -1,29 +1,25 @@
1
- import { voice_d_exports } from "../voice.js";
2
- import { FalClient } from "@fal-ai/client";
3
-
4
- //#region src/impls/fal-voice.d.ts
5
- interface FalVoiceProviderOptions {
6
- apiKey: string;
7
- modelId?: string;
8
- defaultVoiceUrl?: string;
9
- defaultExaggeration?: number;
10
- defaultTemperature?: number;
11
- defaultCfg?: number;
12
- pollIntervalMs?: number;
13
- client?: FalClient;
1
+ import type { FalClient } from '@fal-ai/client';
2
+ import type { Voice, VoiceProvider, VoiceSynthesisInput, VoiceSynthesisResult } from '../voice';
3
+ export interface FalVoiceProviderOptions {
4
+ apiKey: string;
5
+ modelId?: string;
6
+ defaultVoiceUrl?: string;
7
+ defaultExaggeration?: number;
8
+ defaultTemperature?: number;
9
+ defaultCfg?: number;
10
+ pollIntervalMs?: number;
11
+ client?: FalClient;
14
12
  }
15
- declare class FalVoiceProvider implements voice_d_exports.VoiceProvider {
16
- private readonly client;
17
- private readonly modelId;
18
- private readonly defaultVoiceUrl?;
19
- private readonly defaultExaggeration?;
20
- private readonly defaultTemperature?;
21
- private readonly defaultCfg?;
22
- private readonly pollIntervalMs?;
23
- constructor(options: FalVoiceProviderOptions);
24
- listVoices(): Promise<voice_d_exports.Voice[]>;
25
- synthesize(input: voice_d_exports.VoiceSynthesisInput): Promise<voice_d_exports.VoiceSynthesisResult>;
13
+ export declare class FalVoiceProvider implements VoiceProvider {
14
+ private readonly client;
15
+ private readonly modelId;
16
+ private readonly defaultVoiceUrl?;
17
+ private readonly defaultExaggeration?;
18
+ private readonly defaultTemperature?;
19
+ private readonly defaultCfg?;
20
+ private readonly pollIntervalMs?;
21
+ constructor(options: FalVoiceProviderOptions);
22
+ listVoices(): Promise<Voice[]>;
23
+ synthesize(input: VoiceSynthesisInput): Promise<VoiceSynthesisResult>;
26
24
  }
27
- //#endregion
28
- export { FalVoiceProvider, FalVoiceProviderOptions };
29
25
  //# sourceMappingURL=fal-voice.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fal-voice.d.ts","names":[],"sources":["../../src/impls/fal-voice.ts"],"mappings":";;;;UAkBiB,uBAAA;EACf,MAAA;EACA,OAAA;EACA,eAAA;EACA,mBAAA;EACA,kBAAA;EACA,UAAA;EACA,cAAA;EACA,MAAA,GAAS,SAAA;AAAA;AAAA,cAGE,gBAAA,YAA4B,eAAA,CAAA,aAAA;EAAA,iBACtB,MAAA;EAAA,iBACA,OAAA;EAAA,iBACA,eAAA;EAAA,iBACA,mBAAA;EAAA,iBACA,kBAAA;EAAA,iBACA,UAAA;EAAA,iBACA,cAAA;cAEL,OAAA,EAAS,uBAAA;EAcf,UAAA,CAAA,GAAc,OAAA,CAAQ,eAAA,CAAA,KAAA;EA8BtB,UAAA,CAAW,KAAA,EAAO,eAAA,CAAA,mBAAA,GAAsB,OAAA,CAAQ,eAAA,CAAA,oBAAA;AAAA"}
1
+ {"version":3,"file":"fal-voice.d.ts","sourceRoot":"","sources":["../../src/impls/fal-voice.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,KAAK,EACV,KAAK,EACL,aAAa,EACb,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,UAAU,CAAC;AAUlB,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,qBAAa,gBAAiB,YAAW,aAAa;IACpD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAS;IAC7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAS;gBAE7B,OAAO,EAAE,uBAAuB;IActC,UAAU,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;IA8B9B,UAAU,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;CA0C5E"}
@@ -1,88 +1,113 @@
1
+ // @bun
2
+ // src/impls/fal-voice.ts
1
3
  import { createFalClient } from "@fal-ai/client";
4
+ var DEFAULT_MODEL_ID = "fal-ai/chatterbox/text-to-speech";
2
5
 
3
- //#region src/impls/fal-voice.ts
4
- const DEFAULT_MODEL_ID = "fal-ai/chatterbox/text-to-speech";
5
- var FalVoiceProvider = class {
6
- client;
7
- modelId;
8
- defaultVoiceUrl;
9
- defaultExaggeration;
10
- defaultTemperature;
11
- defaultCfg;
12
- pollIntervalMs;
13
- constructor(options) {
14
- this.client = options.client ?? createFalClient({ credentials: options.apiKey });
15
- this.modelId = options.modelId ?? DEFAULT_MODEL_ID;
16
- this.defaultVoiceUrl = options.defaultVoiceUrl;
17
- this.defaultExaggeration = options.defaultExaggeration;
18
- this.defaultTemperature = options.defaultTemperature;
19
- this.defaultCfg = options.defaultCfg;
20
- this.pollIntervalMs = options.pollIntervalMs;
21
- }
22
- async listVoices() {
23
- const voices = [{
24
- id: "default",
25
- name: "Default Chatterbox Voice",
26
- description: "Uses the default model voice (or configured default reference audio URL).",
27
- metadata: { modelId: this.modelId }
28
- }];
29
- if (this.defaultVoiceUrl) voices.push({
30
- id: this.defaultVoiceUrl,
31
- name: "Configured Reference Voice",
32
- description: "Reference voice configured at provider setup and used when voiceId is default.",
33
- previewUrl: this.defaultVoiceUrl,
34
- metadata: {
35
- modelId: this.modelId,
36
- source: "config.defaultVoiceUrl"
37
- }
38
- });
39
- return voices;
40
- }
41
- async synthesize(input) {
42
- const referenceVoiceUrl = resolveVoiceUrl(input.voiceId, this.defaultVoiceUrl);
43
- const audioUrl = extractAudioUrl((await this.client.subscribe(this.modelId, {
44
- input: {
45
- text: input.text,
46
- ...referenceVoiceUrl ? { audio_url: referenceVoiceUrl } : {},
47
- ...this.defaultExaggeration != null ? { exaggeration: this.defaultExaggeration } : {},
48
- ...this.defaultTemperature != null ? { temperature: this.defaultTemperature } : {},
49
- ...this.defaultCfg != null ? { cfg: this.defaultCfg } : {}
50
- },
51
- pollInterval: this.pollIntervalMs
52
- })).data);
53
- if (!audioUrl) throw new Error("Fal synthesis completed without an audio URL in response.");
54
- const response = await fetch(audioUrl);
55
- if (!response.ok) throw new Error(`Fal audio download failed (${response.status}).`);
56
- return {
57
- audio: new Uint8Array(await response.arrayBuffer()),
58
- format: input.format ?? inferFormatFromUrl(audioUrl) ?? "wav",
59
- sampleRateHz: input.sampleRateHz ?? 24e3,
60
- durationSeconds: void 0,
61
- url: audioUrl
62
- };
63
- }
64
- };
6
+ class FalVoiceProvider {
7
+ client;
8
+ modelId;
9
+ defaultVoiceUrl;
10
+ defaultExaggeration;
11
+ defaultTemperature;
12
+ defaultCfg;
13
+ pollIntervalMs;
14
+ constructor(options) {
15
+ this.client = options.client ?? createFalClient({
16
+ credentials: options.apiKey
17
+ });
18
+ this.modelId = options.modelId ?? DEFAULT_MODEL_ID;
19
+ this.defaultVoiceUrl = options.defaultVoiceUrl;
20
+ this.defaultExaggeration = options.defaultExaggeration;
21
+ this.defaultTemperature = options.defaultTemperature;
22
+ this.defaultCfg = options.defaultCfg;
23
+ this.pollIntervalMs = options.pollIntervalMs;
24
+ }
25
+ async listVoices() {
26
+ const voices = [
27
+ {
28
+ id: "default",
29
+ name: "Default Chatterbox Voice",
30
+ description: "Uses the default model voice (or configured default reference audio URL).",
31
+ metadata: {
32
+ modelId: this.modelId
33
+ }
34
+ }
35
+ ];
36
+ if (this.defaultVoiceUrl) {
37
+ voices.push({
38
+ id: this.defaultVoiceUrl,
39
+ name: "Configured Reference Voice",
40
+ description: "Reference voice configured at provider setup and used when voiceId is default.",
41
+ previewUrl: this.defaultVoiceUrl,
42
+ metadata: {
43
+ modelId: this.modelId,
44
+ source: "config.defaultVoiceUrl"
45
+ }
46
+ });
47
+ }
48
+ return voices;
49
+ }
50
+ async synthesize(input) {
51
+ const referenceVoiceUrl = resolveVoiceUrl(input.voiceId, this.defaultVoiceUrl);
52
+ const result = await this.client.subscribe(this.modelId, {
53
+ input: {
54
+ text: input.text,
55
+ ...referenceVoiceUrl ? { audio_url: referenceVoiceUrl } : {},
56
+ ...this.defaultExaggeration != null ? { exaggeration: this.defaultExaggeration } : {},
57
+ ...this.defaultTemperature != null ? { temperature: this.defaultTemperature } : {},
58
+ ...this.defaultCfg != null ? { cfg: this.defaultCfg } : {}
59
+ },
60
+ pollInterval: this.pollIntervalMs
61
+ });
62
+ const audioUrl = extractAudioUrl(result.data);
63
+ if (!audioUrl) {
64
+ throw new Error("Fal synthesis completed without an audio URL in response.");
65
+ }
66
+ const response = await fetch(audioUrl);
67
+ if (!response.ok) {
68
+ throw new Error(`Fal audio download failed (${response.status}).`);
69
+ }
70
+ const audio = new Uint8Array(await response.arrayBuffer());
71
+ return {
72
+ audio,
73
+ format: input.format ?? inferFormatFromUrl(audioUrl) ?? "wav",
74
+ sampleRateHz: input.sampleRateHz ?? 24000,
75
+ durationSeconds: undefined,
76
+ url: audioUrl
77
+ };
78
+ }
79
+ }
65
80
  function resolveVoiceUrl(voiceId, defaultVoiceUrl) {
66
- if (!voiceId || voiceId === "default") return defaultVoiceUrl;
67
- if (isHttpUrl(voiceId)) return voiceId;
68
- throw new Error("Fal voiceId must be \"default\" or a public reference audio URL.");
81
+ if (!voiceId || voiceId === "default")
82
+ return defaultVoiceUrl;
83
+ if (isHttpUrl(voiceId))
84
+ return voiceId;
85
+ throw new Error('Fal voiceId must be "default" or a public reference audio URL.');
69
86
  }
70
87
  function extractAudioUrl(output) {
71
- if (output.audio?.url) return output.audio.url;
72
- if (typeof output.audio_url === "string") return output.audio_url;
73
- if (typeof output.url === "string") return output.url;
88
+ if (output.audio?.url)
89
+ return output.audio.url;
90
+ if (typeof output.audio_url === "string")
91
+ return output.audio_url;
92
+ if (typeof output.url === "string")
93
+ return output.url;
94
+ return;
74
95
  }
75
96
  function inferFormatFromUrl(url) {
76
- const normalized = url.toLowerCase();
77
- if (normalized.endsWith(".wav")) return "wav";
78
- if (normalized.endsWith(".mp3")) return "mp3";
79
- if (normalized.endsWith(".ogg") || normalized.endsWith(".opus")) return "ogg";
80
- if (normalized.endsWith(".pcm")) return "pcm";
97
+ const normalized = url.toLowerCase();
98
+ if (normalized.endsWith(".wav"))
99
+ return "wav";
100
+ if (normalized.endsWith(".mp3"))
101
+ return "mp3";
102
+ if (normalized.endsWith(".ogg") || normalized.endsWith(".opus"))
103
+ return "ogg";
104
+ if (normalized.endsWith(".pcm"))
105
+ return "pcm";
106
+ return;
81
107
  }
82
108
  function isHttpUrl(value) {
83
- return value.startsWith("https://") || value.startsWith("http://");
109
+ return value.startsWith("https://") || value.startsWith("http://");
84
110
  }
85
-
86
- //#endregion
87
- export { FalVoiceProvider };
88
- //# sourceMappingURL=fal-voice.js.map
111
+ export {
112
+ FalVoiceProvider
113
+ };