@polymorfa/sdk 0.1.0-dev.20260922093854

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 (347) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1881 -0
  3. package/dist/bridge.d.ts +31 -0
  4. package/dist/bridge.d.ts.map +1 -0
  5. package/dist/bridge.js +39 -0
  6. package/dist/bridge.js.map +1 -0
  7. package/dist/calls/api.d.ts +109 -0
  8. package/dist/calls/api.d.ts.map +1 -0
  9. package/dist/calls/api.js +179 -0
  10. package/dist/calls/api.js.map +1 -0
  11. package/dist/calls/call.d.ts +286 -0
  12. package/dist/calls/call.d.ts.map +1 -0
  13. package/dist/calls/call.js +860 -0
  14. package/dist/calls/call.js.map +1 -0
  15. package/dist/calls/client.d.ts +124 -0
  16. package/dist/calls/client.d.ts.map +1 -0
  17. package/dist/calls/client.js +447 -0
  18. package/dist/calls/client.js.map +1 -0
  19. package/dist/calls/diagnostics.d.ts +74 -0
  20. package/dist/calls/diagnostics.d.ts.map +1 -0
  21. package/dist/calls/diagnostics.js +133 -0
  22. package/dist/calls/diagnostics.js.map +1 -0
  23. package/dist/calls/errors.d.ts +37 -0
  24. package/dist/calls/errors.d.ts.map +1 -0
  25. package/dist/calls/errors.js +52 -0
  26. package/dist/calls/errors.js.map +1 -0
  27. package/dist/calls/events.d.ts +15 -0
  28. package/dist/calls/events.d.ts.map +1 -0
  29. package/dist/calls/events.js +34 -0
  30. package/dist/calls/events.js.map +1 -0
  31. package/dist/calls/index.d.ts +6 -0
  32. package/dist/calls/index.d.ts.map +1 -0
  33. package/dist/calls/index.js +7 -0
  34. package/dist/calls/index.js.map +1 -0
  35. package/dist/calls/internal.d.ts +18 -0
  36. package/dist/calls/internal.d.ts.map +1 -0
  37. package/dist/calls/internal.js +18 -0
  38. package/dist/calls/internal.js.map +1 -0
  39. package/dist/calls/lifecycle.d.ts +111 -0
  40. package/dist/calls/lifecycle.d.ts.map +1 -0
  41. package/dist/calls/lifecycle.js +490 -0
  42. package/dist/calls/lifecycle.js.map +1 -0
  43. package/dist/calls/media.d.ts +102 -0
  44. package/dist/calls/media.d.ts.map +1 -0
  45. package/dist/calls/media.js +414 -0
  46. package/dist/calls/media.js.map +1 -0
  47. package/dist/calls/protocol.d.ts +216 -0
  48. package/dist/calls/protocol.d.ts.map +1 -0
  49. package/dist/calls/protocol.js +268 -0
  50. package/dist/calls/protocol.js.map +1 -0
  51. package/dist/calls/token.d.ts +43 -0
  52. package/dist/calls/token.d.ts.map +1 -0
  53. package/dist/calls/token.js +146 -0
  54. package/dist/calls/token.js.map +1 -0
  55. package/dist/client.d.ts +65 -0
  56. package/dist/client.d.ts.map +1 -0
  57. package/dist/client.js +119 -0
  58. package/dist/client.js.map +1 -0
  59. package/dist/credentials.d.ts +50 -0
  60. package/dist/credentials.d.ts.map +1 -0
  61. package/dist/credentials.js +73 -0
  62. package/dist/credentials.js.map +1 -0
  63. package/dist/errors.d.ts +71 -0
  64. package/dist/errors.d.ts.map +1 -0
  65. package/dist/errors.js +129 -0
  66. package/dist/errors.js.map +1 -0
  67. package/dist/index.d.ts +70 -0
  68. package/dist/index.d.ts.map +1 -0
  69. package/dist/index.js +61 -0
  70. package/dist/index.js.map +1 -0
  71. package/dist/media/whatsapp.d.ts +105 -0
  72. package/dist/media/whatsapp.d.ts.map +1 -0
  73. package/dist/media/whatsapp.js +624 -0
  74. package/dist/media/whatsapp.js.map +1 -0
  75. package/dist/messaging/bansafe.d.ts +30 -0
  76. package/dist/messaging/bansafe.d.ts.map +1 -0
  77. package/dist/messaging/bansafe.js +86 -0
  78. package/dist/messaging/bansafe.js.map +1 -0
  79. package/dist/messaging/business.d.ts +35 -0
  80. package/dist/messaging/business.d.ts.map +1 -0
  81. package/dist/messaging/business.js +145 -0
  82. package/dist/messaging/business.js.map +1 -0
  83. package/dist/messaging/calls.d.ts +9 -0
  84. package/dist/messaging/calls.d.ts.map +1 -0
  85. package/dist/messaging/calls.js +16 -0
  86. package/dist/messaging/calls.js.map +1 -0
  87. package/dist/messaging/campaigns.d.ts +19 -0
  88. package/dist/messaging/campaigns.d.ts.map +1 -0
  89. package/dist/messaging/campaigns.js +77 -0
  90. package/dist/messaging/campaigns.js.map +1 -0
  91. package/dist/messaging/channels.d.ts +23 -0
  92. package/dist/messaging/channels.d.ts.map +1 -0
  93. package/dist/messaging/channels.js +104 -0
  94. package/dist/messaging/channels.js.map +1 -0
  95. package/dist/messaging/chats.d.ts +14 -0
  96. package/dist/messaging/chats.d.ts.map +1 -0
  97. package/dist/messaging/chats.js +51 -0
  98. package/dist/messaging/chats.js.map +1 -0
  99. package/dist/messaging/client-tokens.d.ts +15 -0
  100. package/dist/messaging/client-tokens.d.ts.map +1 -0
  101. package/dist/messaging/client-tokens.js +64 -0
  102. package/dist/messaging/client-tokens.js.map +1 -0
  103. package/dist/messaging/client.d.ts +58 -0
  104. package/dist/messaging/client.d.ts.map +1 -0
  105. package/dist/messaging/client.js +100 -0
  106. package/dist/messaging/client.js.map +1 -0
  107. package/dist/messaging/contacts.d.ts +20 -0
  108. package/dist/messaging/contacts.d.ts.map +1 -0
  109. package/dist/messaging/contacts.js +75 -0
  110. package/dist/messaging/contacts.js.map +1 -0
  111. package/dist/messaging/groups.d.ts +34 -0
  112. package/dist/messaging/groups.d.ts.map +1 -0
  113. package/dist/messaging/groups.js +97 -0
  114. package/dist/messaging/groups.js.map +1 -0
  115. package/dist/messaging/identities.d.ts +9 -0
  116. package/dist/messaging/identities.d.ts.map +1 -0
  117. package/dist/messaging/identities.js +21 -0
  118. package/dist/messaging/identities.js.map +1 -0
  119. package/dist/messaging/labels.d.ts +16 -0
  120. package/dist/messaging/labels.d.ts.map +1 -0
  121. package/dist/messaging/labels.js +65 -0
  122. package/dist/messaging/labels.js.map +1 -0
  123. package/dist/messaging/media.d.ts +72 -0
  124. package/dist/messaging/media.d.ts.map +1 -0
  125. package/dist/messaging/media.js +142 -0
  126. package/dist/messaging/media.js.map +1 -0
  127. package/dist/messaging/messages.d.ts +18 -0
  128. package/dist/messaging/messages.d.ts.map +1 -0
  129. package/dist/messaging/messages.js +32 -0
  130. package/dist/messaging/messages.js.map +1 -0
  131. package/dist/messaging/observation-policies.d.ts +10 -0
  132. package/dist/messaging/observation-policies.d.ts.map +1 -0
  133. package/dist/messaging/observation-policies.js +28 -0
  134. package/dist/messaging/observation-policies.js.map +1 -0
  135. package/dist/messaging/onboarding.d.ts +53 -0
  136. package/dist/messaging/onboarding.d.ts.map +1 -0
  137. package/dist/messaging/onboarding.js +69 -0
  138. package/dist/messaging/onboarding.js.map +1 -0
  139. package/dist/messaging/presence.d.ts +12 -0
  140. package/dist/messaging/presence.d.ts.map +1 -0
  141. package/dist/messaging/presence.js +43 -0
  142. package/dist/messaging/presence.js.map +1 -0
  143. package/dist/messaging/privacy.d.ts +11 -0
  144. package/dist/messaging/privacy.d.ts.map +1 -0
  145. package/dist/messaging/privacy.js +34 -0
  146. package/dist/messaging/privacy.js.map +1 -0
  147. package/dist/messaging/profile.d.ts +13 -0
  148. package/dist/messaging/profile.d.ts.map +1 -0
  149. package/dist/messaging/profile.js +49 -0
  150. package/dist/messaging/profile.js.map +1 -0
  151. package/dist/messaging/quick-replies.d.ts +13 -0
  152. package/dist/messaging/quick-replies.d.ts.map +1 -0
  153. package/dist/messaging/quick-replies.js +45 -0
  154. package/dist/messaging/quick-replies.js.map +1 -0
  155. package/dist/messaging/quicklinks.d.ts +69 -0
  156. package/dist/messaging/quicklinks.d.ts.map +1 -0
  157. package/dist/messaging/quicklinks.js +45 -0
  158. package/dist/messaging/quicklinks.js.map +1 -0
  159. package/dist/messaging/session-configuration.d.ts +67 -0
  160. package/dist/messaging/session-configuration.d.ts.map +1 -0
  161. package/dist/messaging/session-configuration.js +2 -0
  162. package/dist/messaging/session-configuration.js.map +1 -0
  163. package/dist/messaging/sessions.d.ts +26 -0
  164. package/dist/messaging/sessions.d.ts.map +1 -0
  165. package/dist/messaging/sessions.js +108 -0
  166. package/dist/messaging/sessions.js.map +1 -0
  167. package/dist/messaging/templates.d.ts +15 -0
  168. package/dist/messaging/templates.d.ts.map +1 -0
  169. package/dist/messaging/templates.js +67 -0
  170. package/dist/messaging/templates.js.map +1 -0
  171. package/dist/messaging/testing-configuration.d.ts +89 -0
  172. package/dist/messaging/testing-configuration.d.ts.map +1 -0
  173. package/dist/messaging/testing-configuration.js +14 -0
  174. package/dist/messaging/testing-configuration.js.map +1 -0
  175. package/dist/messaging/types.d.ts +1793 -0
  176. package/dist/messaging/types.d.ts.map +1 -0
  177. package/dist/messaging/types.js +25 -0
  178. package/dist/messaging/types.js.map +1 -0
  179. package/dist/messaging/users.d.ts +9 -0
  180. package/dist/messaging/users.d.ts.map +1 -0
  181. package/dist/messaging/users.js +15 -0
  182. package/dist/messaging/users.js.map +1 -0
  183. package/dist/messaging/voip.d.ts +51 -0
  184. package/dist/messaging/voip.d.ts.map +1 -0
  185. package/dist/messaging/voip.js +293 -0
  186. package/dist/messaging/voip.js.map +1 -0
  187. package/dist/messaging/webhooks.d.ts +13 -0
  188. package/dist/messaging/webhooks.d.ts.map +1 -0
  189. package/dist/messaging/webhooks.js +48 -0
  190. package/dist/messaging/webhooks.js.map +1 -0
  191. package/dist/node.d.ts +55 -0
  192. package/dist/node.d.ts.map +1 -0
  193. package/dist/node.js +237 -0
  194. package/dist/node.js.map +1 -0
  195. package/dist/pagination.d.ts +24 -0
  196. package/dist/pagination.d.ts.map +1 -0
  197. package/dist/pagination.js +28 -0
  198. package/dist/pagination.js.map +1 -0
  199. package/dist/platform/api-keys.d.ts +10 -0
  200. package/dist/platform/api-keys.d.ts.map +1 -0
  201. package/dist/platform/api-keys.js +22 -0
  202. package/dist/platform/api-keys.js.map +1 -0
  203. package/dist/platform/audiences.d.ts +16 -0
  204. package/dist/platform/audiences.d.ts.map +1 -0
  205. package/dist/platform/audiences.js +46 -0
  206. package/dist/platform/audiences.js.map +1 -0
  207. package/dist/platform/audit-logs.d.ts +9 -0
  208. package/dist/platform/audit-logs.d.ts.map +1 -0
  209. package/dist/platform/audit-logs.js +20 -0
  210. package/dist/platform/audit-logs.js.map +1 -0
  211. package/dist/platform/bansafe.d.ts +24 -0
  212. package/dist/platform/bansafe.d.ts.map +1 -0
  213. package/dist/platform/bansafe.js +70 -0
  214. package/dist/platform/bansafe.js.map +1 -0
  215. package/dist/platform/billing.d.ts +13 -0
  216. package/dist/platform/billing.d.ts.map +1 -0
  217. package/dist/platform/billing.js +27 -0
  218. package/dist/platform/billing.js.map +1 -0
  219. package/dist/platform/campaigns.d.ts +28 -0
  220. package/dist/platform/campaigns.d.ts.map +1 -0
  221. package/dist/platform/campaigns.js +92 -0
  222. package/dist/platform/campaigns.js.map +1 -0
  223. package/dist/platform/customers.d.ts +23 -0
  224. package/dist/platform/customers.d.ts.map +1 -0
  225. package/dist/platform/customers.js +140 -0
  226. package/dist/platform/customers.js.map +1 -0
  227. package/dist/platform/developer-resources.d.ts +101 -0
  228. package/dist/platform/developer-resources.d.ts.map +1 -0
  229. package/dist/platform/developer-resources.js +250 -0
  230. package/dist/platform/developer-resources.js.map +1 -0
  231. package/dist/platform/developer-types.d.ts +378 -0
  232. package/dist/platform/developer-types.d.ts.map +1 -0
  233. package/dist/platform/developer-types.js +2 -0
  234. package/dist/platform/developer-types.js.map +1 -0
  235. package/dist/platform/event-stream.d.ts +114 -0
  236. package/dist/platform/event-stream.d.ts.map +1 -0
  237. package/dist/platform/event-stream.js +308 -0
  238. package/dist/platform/event-stream.js.map +1 -0
  239. package/dist/platform/media.d.ts +13 -0
  240. package/dist/platform/media.d.ts.map +1 -0
  241. package/dist/platform/media.js +33 -0
  242. package/dist/platform/media.js.map +1 -0
  243. package/dist/platform/members.d.ts +9 -0
  244. package/dist/platform/members.d.ts.map +1 -0
  245. package/dist/platform/members.js +15 -0
  246. package/dist/platform/members.js.map +1 -0
  247. package/dist/platform/opt-outs.d.ts +15 -0
  248. package/dist/platform/opt-outs.d.ts.map +1 -0
  249. package/dist/platform/opt-outs.js +36 -0
  250. package/dist/platform/opt-outs.js.map +1 -0
  251. package/dist/platform/organizations.d.ts +9 -0
  252. package/dist/platform/organizations.d.ts.map +1 -0
  253. package/dist/platform/organizations.js +15 -0
  254. package/dist/platform/organizations.js.map +1 -0
  255. package/dist/platform/project-tokens.d.ts +9 -0
  256. package/dist/platform/project-tokens.d.ts.map +1 -0
  257. package/dist/platform/project-tokens.js +16 -0
  258. package/dist/platform/project-tokens.js.map +1 -0
  259. package/dist/platform/projects.d.ts +24 -0
  260. package/dist/platform/projects.d.ts.map +1 -0
  261. package/dist/platform/projects.js +83 -0
  262. package/dist/platform/projects.js.map +1 -0
  263. package/dist/platform/quicklink-settings.d.ts +85 -0
  264. package/dist/platform/quicklink-settings.d.ts.map +1 -0
  265. package/dist/platform/quicklink-settings.js +35 -0
  266. package/dist/platform/quicklink-settings.js.map +1 -0
  267. package/dist/platform/response.d.ts +10 -0
  268. package/dist/platform/response.d.ts.map +1 -0
  269. package/dist/platform/response.js +41 -0
  270. package/dist/platform/response.js.map +1 -0
  271. package/dist/platform/security-incidents.d.ts +10 -0
  272. package/dist/platform/security-incidents.d.ts.map +1 -0
  273. package/dist/platform/security-incidents.js +22 -0
  274. package/dist/platform/security-incidents.js.map +1 -0
  275. package/dist/platform/session-bans.d.ts +13 -0
  276. package/dist/platform/session-bans.d.ts.map +1 -0
  277. package/dist/platform/session-bans.js +21 -0
  278. package/dist/platform/session-bans.js.map +1 -0
  279. package/dist/platform/session-configuration.d.ts +15 -0
  280. package/dist/platform/session-configuration.d.ts.map +1 -0
  281. package/dist/platform/session-configuration.js +36 -0
  282. package/dist/platform/session-configuration.js.map +1 -0
  283. package/dist/platform/sessions.d.ts +26 -0
  284. package/dist/platform/sessions.d.ts.map +1 -0
  285. package/dist/platform/sessions.js +121 -0
  286. package/dist/platform/sessions.js.map +1 -0
  287. package/dist/platform/sip-trunks.d.ts +141 -0
  288. package/dist/platform/sip-trunks.d.ts.map +1 -0
  289. package/dist/platform/sip-trunks.js +140 -0
  290. package/dist/platform/sip-trunks.js.map +1 -0
  291. package/dist/platform/types.d.ts +897 -0
  292. package/dist/platform/types.d.ts.map +1 -0
  293. package/dist/platform/types.js +2 -0
  294. package/dist/platform/types.js.map +1 -0
  295. package/dist/raw.d.ts +26 -0
  296. package/dist/raw.d.ts.map +1 -0
  297. package/dist/raw.js +79 -0
  298. package/dist/raw.js.map +1 -0
  299. package/dist/system.d.ts +37 -0
  300. package/dist/system.d.ts.map +1 -0
  301. package/dist/system.js +45 -0
  302. package/dist/system.js.map +1 -0
  303. package/dist/transport/body.d.ts +6 -0
  304. package/dist/transport/body.d.ts.map +1 -0
  305. package/dist/transport/body.js +33 -0
  306. package/dist/transport/body.js.map +1 -0
  307. package/dist/transport/content-disposition.d.ts +9 -0
  308. package/dist/transport/content-disposition.d.ts.map +1 -0
  309. package/dist/transport/content-disposition.js +107 -0
  310. package/dist/transport/content-disposition.js.map +1 -0
  311. package/dist/transport/http.d.ts +35 -0
  312. package/dist/transport/http.d.ts.map +1 -0
  313. package/dist/transport/http.js +660 -0
  314. package/dist/transport/http.js.map +1 -0
  315. package/dist/transport/idempotency.d.ts +10 -0
  316. package/dist/transport/idempotency.d.ts.map +1 -0
  317. package/dist/transport/idempotency.js +13 -0
  318. package/dist/transport/idempotency.js.map +1 -0
  319. package/dist/transport/retry.d.ts +11 -0
  320. package/dist/transport/retry.d.ts.map +1 -0
  321. package/dist/transport/retry.js +45 -0
  322. package/dist/transport/retry.js.map +1 -0
  323. package/dist/transport/types.d.ts +58 -0
  324. package/dist/transport/types.d.ts.map +1 -0
  325. package/dist/transport/types.js +2 -0
  326. package/dist/transport/types.js.map +1 -0
  327. package/dist/version.d.ts +2 -0
  328. package/dist/version.d.ts.map +1 -0
  329. package/dist/version.js +2 -0
  330. package/dist/version.js.map +1 -0
  331. package/dist/webhooks/events.d.ts +741 -0
  332. package/dist/webhooks/events.d.ts.map +1 -0
  333. package/dist/webhooks/events.js +80 -0
  334. package/dist/webhooks/events.js.map +1 -0
  335. package/dist/webhooks/index.d.ts +4 -0
  336. package/dist/webhooks/index.d.ts.map +1 -0
  337. package/dist/webhooks/index.js +4 -0
  338. package/dist/webhooks/index.js.map +1 -0
  339. package/dist/webhooks/utilities.d.ts +33 -0
  340. package/dist/webhooks/utilities.d.ts.map +1 -0
  341. package/dist/webhooks/utilities.js +67 -0
  342. package/dist/webhooks/utilities.js.map +1 -0
  343. package/dist/webhooks/verify.d.ts +9 -0
  344. package/dist/webhooks/verify.d.ts.map +1 -0
  345. package/dist/webhooks/verify.js +77 -0
  346. package/dist/webhooks/verify.js.map +1 -0
  347. package/package.json +58 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"call.js","sourceRoot":"","sources":["../../../calls/src/call.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,124 @@
1
+ import { type CallsApi, type FetchLike } from "./api.js";
2
+ import { Call, type CallEndReason } from "./call.js";
3
+ import type { CallsError } from "./errors.js";
4
+ import { Emitter } from "./events.js";
5
+ import { type CallsTokenProvider } from "./token.js";
6
+ export interface CallsClientOptions {
7
+ /**
8
+ * Credential. A client token (or a provider of client tokens minted by your
9
+ * server with `POST /platform/client-tokens`), or a server API key or
10
+ * project token. Never ship a server credential to a browser.
11
+ */
12
+ readonly token?: string | CallsTokenProvider;
13
+ /** Server API key or project token; same as passing it as `token`. */
14
+ readonly apiKey?: string;
15
+ /** The session whose calls this client follows and places from. */
16
+ readonly session: string;
17
+ /**
18
+ * Participant name for server credentials (`[A-Za-z0-9._:@-]{1,128}`,
19
+ * default `default`). Client tokens always act as their own participant.
20
+ */
21
+ readonly participant?: string;
22
+ /** Defaults to `https://api.polymorfa.com`. */
23
+ readonly baseUrl?: string;
24
+ /** Media reattach attempts after an unexpected drop. Default 3. */
25
+ readonly reconnectAttempts?: number;
26
+ readonly fetch?: FetchLike;
27
+ readonly WebSocket?: typeof globalThis.WebSocket;
28
+ readonly setTimeout?: typeof globalThis.setTimeout;
29
+ readonly clearTimeout?: typeof globalThis.clearTimeout;
30
+ readonly setInterval?: typeof globalThis.setInterval;
31
+ readonly clearInterval?: typeof globalThis.clearInterval;
32
+ readonly random?: () => number;
33
+ readonly now?: () => number;
34
+ readonly createIdempotencyKey?: () => string;
35
+ /**
36
+ * Send call diagnostics for this client's media connections (default
37
+ * `true`): an error code when media fails to connect, times out, loses its
38
+ * token or gives up reconnecting, and the connection's reconnect count when
39
+ * it closes. Reports carry no personal data. `false` sends none.
40
+ */
41
+ readonly diagnostics?: boolean;
42
+ }
43
+ /**
44
+ * Options only sibling Polymorfa packages pass: a replacement platform seam
45
+ * and externally managed (WebRTC) media. Not part of the public API.
46
+ * @internal
47
+ */
48
+ export interface InternalCallsClientOptions extends CallsClientOptions {
49
+ readonly api?: CallsApi;
50
+ readonly mediaMode?: "socket" | "external";
51
+ }
52
+ /** Build a client with internal options. @internal */
53
+ export declare function createInternalCallsClient(options: InternalCallsClientOptions): CallsClient;
54
+ export interface PlaceOptions {
55
+ readonly video?: boolean;
56
+ /** Claim the call for this participant. Default `false`. */
57
+ readonly exclusive?: boolean;
58
+ readonly idempotencyKey?: string;
59
+ readonly signal?: AbortSignal;
60
+ }
61
+ type ClientEvents = {
62
+ /**
63
+ * A call is ringing this session. Answer, join, reject, or ignore it; the
64
+ * client never declines on its own.
65
+ */
66
+ incoming: [Call];
67
+ /** Any call became known to the client — inbound or placed. */
68
+ call: [Call];
69
+ ended: [Call, CallEndReason];
70
+ /** Lifecycle socket authenticated. */
71
+ ready: [];
72
+ disconnected: [];
73
+ /** Includes `CallsAuthError` when the platform closes the socket with 4401. */
74
+ error: [CallsError];
75
+ };
76
+ /**
77
+ * The programmatic Calls client: follows one session, rings on inbound calls,
78
+ * places outbound ones, and hands each call back as a {@link Call} with media
79
+ * you read and write from code.
80
+ *
81
+ * ```ts
82
+ * const client = new CallsClient({ token: getToken, session: "support" });
83
+ * client.on("incoming", async (call) => {
84
+ * await call.answer({ exclusive: true });
85
+ * call.audio.on("data", (pcm) => transcribe(pcm));
86
+ * call.audio.write(synthesize("Hello"));
87
+ * });
88
+ * await client.connect();
89
+ * ```
90
+ */
91
+ export declare class CallsClient extends Emitter<ClientEvents> {
92
+ #private;
93
+ readonly session: string;
94
+ constructor(publicOptions: CallsClientOptions);
95
+ /** True while the lifecycle socket is authenticated. */
96
+ get connected(): boolean;
97
+ /** Calls the client currently knows about that have not ended. */
98
+ get calls(): readonly Call[];
99
+ /**
100
+ * This client's participant reference (`client:<id>` or `server:<name>`),
101
+ * when known from the credential or the platform.
102
+ */
103
+ get participantReference(): string | undefined;
104
+ /** Look up a known call, including the bounded recent history of ended calls. */
105
+ getCall(callId: string): Call | undefined;
106
+ /**
107
+ * Open the lifecycle stream. Resolves after the first attempt settles;
108
+ * reconnects until `disconnect()`.
109
+ */
110
+ connect(): Promise<void>;
111
+ /**
112
+ * Stop following the session. Calls this client joined are left, not
113
+ * ended; outbound calls still ringing are ended; ringing inbound calls
114
+ * are only forgotten locally.
115
+ */
116
+ disconnect(): Promise<void>;
117
+ /**
118
+ * Place an outbound call. Resolves once the platform has accepted the
119
+ * request; listen for `connected` (or `ended`) on the returned call.
120
+ */
121
+ place(to: string, options?: PlaceOptions): Promise<Call>;
122
+ }
123
+ export {};
124
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../calls/src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,447 @@
1
+ import { CALLS_SDK_VERSION, reportPlatform } from "./diagnostics.js";
2
+ import { HttpCallsApi } from "./api.js";
3
+ import { Call, capabilitiesFrom, } from "./call.js";
4
+ import { Emitter } from "./events.js";
5
+ import { LifecycleSocket } from "./lifecycle.js";
6
+ import { isParticipantName, parseMediaControlValue, } from "./protocol.js";
7
+ import { isClientToken } from "./token.js";
8
+ /** Build a client with internal options. @internal */
9
+ export function createInternalCallsClient(options) {
10
+ return new CallsClient(options);
11
+ }
12
+ /**
13
+ * The programmatic Calls client: follows one session, rings on inbound calls,
14
+ * places outbound ones, and hands each call back as a {@link Call} with media
15
+ * you read and write from code.
16
+ *
17
+ * ```ts
18
+ * const client = new CallsClient({ token: getToken, session: "support" });
19
+ * client.on("incoming", async (call) => {
20
+ * await call.answer({ exclusive: true });
21
+ * call.audio.on("data", (pcm) => transcribe(pcm));
22
+ * call.audio.write(synthesize("Hello"));
23
+ * });
24
+ * await client.connect();
25
+ * ```
26
+ */
27
+ export class CallsClient extends Emitter {
28
+ session;
29
+ /** Bumped by disconnect(); a placement that resolves later is ended. */
30
+ #connectGeneration = 0;
31
+ #api;
32
+ #socket;
33
+ #calls = new Map();
34
+ /** Recently ended call ids, oldest first, so retention stays bounded. */
35
+ #endedOrder = [];
36
+ /**
37
+ * Lifecycle events for call ids the client does not know yet. A placed
38
+ * call is tracked only when the POST resolves, and the socket can deliver
39
+ * its `accepted` or `ended` before that; dropping those would leave the
40
+ * call ringing forever.
41
+ */
42
+ #pendingEvents = new Map();
43
+ #o;
44
+ #createKey;
45
+ #credentialReference;
46
+ constructor(publicOptions) {
47
+ super();
48
+ const options = publicOptions;
49
+ this.#o = options;
50
+ this.session = options.session;
51
+ if (options.participant !== undefined &&
52
+ !isParticipantName(options.participant))
53
+ throw new Error("participant must be 1–128 characters of A–Z, a–z, 0–9, and . _ : @ -");
54
+ const credential = options.token ?? options.apiKey;
55
+ if (options.api === undefined && credential === undefined)
56
+ throw new Error("CallsClient needs a `token` or a custom `api`.");
57
+ this.#api =
58
+ options.api ??
59
+ new HttpCallsApi({
60
+ token: credential,
61
+ ...(options.baseUrl === undefined ? {} : { baseUrl: options.baseUrl }),
62
+ ...(options.fetch === undefined ? {} : { fetch: options.fetch }),
63
+ ...(options.now === undefined ? {} : { now: options.now }),
64
+ });
65
+ this.#createKey =
66
+ options.createIdempotencyKey ?? (() => crypto.randomUUID());
67
+ this.#socket = new LifecycleSocket({
68
+ api: this.#api,
69
+ session: options.session,
70
+ ...(options.participant === undefined
71
+ ? {}
72
+ : { participant: options.participant }),
73
+ ...timerOptions(options),
74
+ ...(options.now === undefined ? {} : { now: options.now }),
75
+ });
76
+ this.#socket.on("event", (event) => this.#receive(event));
77
+ this.#socket.on("state", (connected) => this.emit(connected ? "ready" : "disconnected"));
78
+ this.#socket.on("error", (error) => this.emit("error", error));
79
+ }
80
+ /** True while the lifecycle socket is authenticated. */
81
+ get connected() {
82
+ return this.#socket.connected;
83
+ }
84
+ /** Calls the client currently knows about that have not ended. */
85
+ get calls() {
86
+ return [...this.#calls.values()].filter((call) => !call.ended);
87
+ }
88
+ /**
89
+ * This client's participant reference (`client:<id>` or `server:<name>`),
90
+ * when known from the credential or the platform.
91
+ */
92
+ get participantReference() {
93
+ return this.#socket.participant ?? this.#credentialReference;
94
+ }
95
+ /** Look up a known call, including the bounded recent history of ended calls. */
96
+ getCall(callId) {
97
+ return this.#calls.get(callId);
98
+ }
99
+ /**
100
+ * Open the lifecycle stream. Resolves after the first attempt settles;
101
+ * reconnects until `disconnect()`.
102
+ */
103
+ async connect() {
104
+ const generation = this.#connectGeneration;
105
+ try {
106
+ const token = await this.#api.token();
107
+ if (!isClientToken(token.value))
108
+ this.#credentialReference = `server:${this.#o.participant ?? "default"}`;
109
+ }
110
+ catch {
111
+ // The socket attempt reports token failures itself.
112
+ }
113
+ if (generation !== this.#connectGeneration)
114
+ return;
115
+ return this.#socket.connect();
116
+ }
117
+ /**
118
+ * Stop following the session. Calls this client joined are left, not
119
+ * ended; outbound calls still ringing are ended; ringing inbound calls
120
+ * are only forgotten locally.
121
+ */
122
+ async disconnect() {
123
+ this.#connectGeneration += 1;
124
+ this.#socket.close();
125
+ await Promise.allSettled(this.calls.map((call) => call.direction === "outbound" && call.state === "ringing"
126
+ ? call.end()
127
+ : call.leave()));
128
+ }
129
+ /**
130
+ * Place an outbound call. Resolves once the platform has accepted the
131
+ * request; listen for `connected` (or `ended`) on the returned call.
132
+ */
133
+ async place(to, options = {}) {
134
+ const generation = this.#connectGeneration;
135
+ options.signal?.throwIfAborted();
136
+ const video = options.video ?? false;
137
+ const input = {
138
+ session: this.session,
139
+ to,
140
+ video,
141
+ ...(options.exclusive === undefined
142
+ ? {}
143
+ : { exclusive: options.exclusive }),
144
+ ...(this.#o.participant === undefined
145
+ ? {}
146
+ : { participant: this.#o.participant }),
147
+ idempotencyKey: options.idempotencyKey ?? this.#createKey(),
148
+ };
149
+ const { callId } = options.signal === undefined
150
+ ? await this.#api.place(input)
151
+ : await this.#api.place(input, options.signal);
152
+ const call = this.#newCall(callId, "outbound", to, video, undefined, options.exclusive === true);
153
+ if (generation !== this.#connectGeneration || options.signal?.aborted) {
154
+ await call.end();
155
+ throw new Error("Call placement was cancelled.");
156
+ }
157
+ return this.#track(call);
158
+ }
159
+ #newCall(id, direction, peer, video, capabilities, exclusive = false) {
160
+ return new Call({
161
+ exclusive,
162
+ id,
163
+ session: this.session,
164
+ direction,
165
+ peer,
166
+ video,
167
+ ...(capabilities === undefined ? {} : { capabilities }),
168
+ api: this.#api,
169
+ media: timerOptions(this.#o),
170
+ self: () => this.participantReference,
171
+ ...(this.#o.participant === undefined
172
+ ? {}
173
+ : { participant: this.#o.participant }),
174
+ ...(this.#o.mediaMode === undefined
175
+ ? {}
176
+ : { mediaMode: this.#o.mediaMode }),
177
+ ...(this.#o.reconnectAttempts === undefined
178
+ ? {}
179
+ : { reconnectAttempts: this.#o.reconnectAttempts }),
180
+ ...(this.#o.now === undefined ? {} : { now: this.#o.now }),
181
+ ...(this.#o.diagnostics === false
182
+ ? {}
183
+ : {
184
+ diagnostics: {
185
+ sdk: "@polymorfa/sdk",
186
+ version: CALLS_SDK_VERSION,
187
+ platform: reportPlatform(),
188
+ },
189
+ }),
190
+ });
191
+ }
192
+ #receive(event) {
193
+ const existing = this.#calls.get(event.callId);
194
+ switch (event.event) {
195
+ case "call.received": {
196
+ if (event.payload["direction"] === "outgoing")
197
+ return;
198
+ // Call ids are unique per call, so a `call.received` for an id the
199
+ // client already knows — live or retained-ended — is a duplicate, not
200
+ // a new call. Reviving an ended one would ring the application twice.
201
+ if (existing !== undefined)
202
+ return;
203
+ const call = this.#track(this.#newCall(event.callId, "inbound", peerFrom(event.payload["from"]), event.payload["hasVideo"] === true ||
204
+ event.payload["has_video"] === true, capabilitiesFrom(event.payload["capabilities"])));
205
+ // A terminal event buffered before `call.received` has already ended
206
+ // the call during tracking: it is reported as `ended`, never rung.
207
+ if (!call.ended)
208
+ this.emit("incoming", call);
209
+ return;
210
+ }
211
+ case "call.accepted":
212
+ case "call.ended":
213
+ case "call.missed":
214
+ case "call.rejected":
215
+ if (existing === undefined) {
216
+ this.#buffer(event);
217
+ return;
218
+ }
219
+ this.#apply(existing, event);
220
+ return;
221
+ case "call.participant_joined":
222
+ case "call.participant_state":
223
+ case "call.participant_left":
224
+ if (participantControlFrom(event) === undefined)
225
+ return;
226
+ if (existing === undefined) {
227
+ this.#buffer(event);
228
+ return;
229
+ }
230
+ this.#apply(existing, event);
231
+ return;
232
+ default:
233
+ return;
234
+ }
235
+ }
236
+ #track(call) {
237
+ this.#calls.set(call.id, call);
238
+ call.once("ended", (reason) => {
239
+ this.emit("ended", call, reason);
240
+ // Ended calls stay known for a while so a late duplicate lifecycle event
241
+ // for the id is recognised and ignored — but bounded, or a long-lived
242
+ // client would hold every call it ever handled.
243
+ this.#endedOrder.push(call.id);
244
+ while (this.#endedOrder.length > ENDED_RETENTION) {
245
+ const oldest = this.#endedOrder.shift();
246
+ if (oldest !== undefined && this.#calls.get(oldest)?.ended)
247
+ this.#calls.delete(oldest);
248
+ }
249
+ });
250
+ this.emit("call", call);
251
+ // Anything that arrived for this id before the call existed applies now.
252
+ const queued = this.#pendingEvents.get(call.id);
253
+ if (queued !== undefined) {
254
+ this.#pendingEvents.delete(call.id);
255
+ for (const event of queued)
256
+ this.#apply(call, event);
257
+ }
258
+ return call;
259
+ }
260
+ #apply(call, event) {
261
+ switch (event.event) {
262
+ case "call.accepted": {
263
+ const answeredBy = event.payload["answeredBy"];
264
+ const reported = event.payload["capabilities"];
265
+ void call._remoteAccepted({
266
+ ...(typeof answeredBy === "string" && answeredBy.length > 0
267
+ ? { answeredBy }
268
+ : {}),
269
+ exclusive: event.payload["exclusive"] === true,
270
+ // The only capability report for an outbound call; absent or
271
+ // malformed fields keep what the call already has.
272
+ ...(reported !== null &&
273
+ typeof reported === "object" &&
274
+ !Array.isArray(reported)
275
+ ? { capabilities: capabilitiesFrom(reported, call.capabilities) }
276
+ : {}),
277
+ });
278
+ return;
279
+ }
280
+ case "call.ended":
281
+ call._remoteEnded(endReasonFrom(event.payload["reason"]));
282
+ return;
283
+ case "call.missed":
284
+ call._remoteEnded("missed");
285
+ return;
286
+ case "call.rejected":
287
+ call._remoteEnded("rejected");
288
+ return;
289
+ case "call.participant_joined":
290
+ case "call.participant_state":
291
+ case "call.participant_left": {
292
+ const frame = participantControlFrom(event);
293
+ if (frame !== undefined)
294
+ call._remoteParticipant(frame);
295
+ return;
296
+ }
297
+ default:
298
+ return;
299
+ }
300
+ }
301
+ #buffer(event) {
302
+ let queue = this.#pendingEvents.get(event.callId);
303
+ if (queue === undefined) {
304
+ if (this.#pendingEvents.size >= PENDING_IDS) {
305
+ const oldest = this.#pendingEvents.keys().next().value;
306
+ if (oldest !== undefined)
307
+ this.#pendingEvents.delete(oldest);
308
+ }
309
+ queue = [];
310
+ this.#pendingEvents.set(event.callId, queue);
311
+ }
312
+ const terminal = (item) => item.event === "call.ended" ||
313
+ item.event === "call.missed" ||
314
+ item.event === "call.rejected";
315
+ // A completed call cannot be revived by later roster or accepted events.
316
+ if (queue.some(terminal))
317
+ return;
318
+ if (terminal(event)) {
319
+ queue.splice(0, queue.length, event);
320
+ return;
321
+ }
322
+ if (event.event === "call.accepted") {
323
+ if (queue.some((item) => item.event === "call.accepted"))
324
+ return;
325
+ // Reserve lifecycle progress even when roster updates filled the queue.
326
+ if (queue.length >= PENDING_EVENTS_PER_ID)
327
+ queue.shift();
328
+ queue.push(event);
329
+ return;
330
+ }
331
+ const frame = participantControlFrom(event);
332
+ if (frame !== undefined) {
333
+ const id = frame.type === "participant_left"
334
+ ? frame.participantId
335
+ : frame.participant.id;
336
+ const previous = queue.findIndex((item) => {
337
+ const queued = participantControlFrom(item);
338
+ return (queued !== undefined &&
339
+ (queued.type === "participant_left"
340
+ ? queued.participantId
341
+ : queued.participant.id) === id);
342
+ });
343
+ if (previous >= 0) {
344
+ const queued = participantControlFrom(queue[previous]);
345
+ // A tracked call suppresses duplicate departures after emitting the
346
+ // first one's metadata. Preserve the same behavior while pending.
347
+ if (queued !== undefined &&
348
+ isParticipantDeparture(queued) &&
349
+ isParticipantDeparture(frame))
350
+ return;
351
+ queue.splice(previous, 1);
352
+ }
353
+ }
354
+ if (queue.length >= PENDING_EVENTS_PER_ID) {
355
+ const oldestRoster = queue.findIndex((item) => participantControlFrom(item) !== undefined);
356
+ if (oldestRoster < 0)
357
+ return;
358
+ queue.splice(oldestRoster, 1);
359
+ }
360
+ queue.push(event);
361
+ }
362
+ }
363
+ /** Ended calls kept for duplicate-event suppression. */
364
+ const ENDED_RETENTION = 200;
365
+ /** Unknown call ids whose early events are held, and how many each. */
366
+ const PENDING_IDS = 64;
367
+ const PENDING_EVENTS_PER_ID = 8;
368
+ function timerOptions(o) {
369
+ return {
370
+ ...(o.WebSocket === undefined ? {} : { WebSocket: o.WebSocket }),
371
+ ...(o.setTimeout === undefined ? {} : { setTimeout: o.setTimeout }),
372
+ ...(o.clearTimeout === undefined ? {} : { clearTimeout: o.clearTimeout }),
373
+ ...(o.setInterval === undefined ? {} : { setInterval: o.setInterval }),
374
+ ...(o.clearInterval === undefined
375
+ ? {}
376
+ : { clearInterval: o.clearInterval }),
377
+ ...(o.random === undefined ? {} : { random: o.random }),
378
+ };
379
+ }
380
+ function peerFrom(value) {
381
+ if (typeof value === "string")
382
+ return value;
383
+ if (value === null || typeof value !== "object")
384
+ return "";
385
+ const ref = value;
386
+ for (const candidate of [ref["phoneNumber"], ref["lid"], ref["id"]])
387
+ if (typeof candidate === "string" && candidate.length > 0)
388
+ return candidate;
389
+ return "";
390
+ }
391
+ function endReasonFrom(value) {
392
+ switch (value) {
393
+ case "user_hangup":
394
+ case "remote_hangup":
395
+ return "remote_hangup";
396
+ case "hangup":
397
+ return "hangup";
398
+ case "rejected":
399
+ case "busy":
400
+ case "missed":
401
+ case "timeout":
402
+ case "connection_failed":
403
+ case "pod_lost":
404
+ case "capacity":
405
+ return value;
406
+ case "media_timeout":
407
+ case "setup_timeout":
408
+ return "timeout";
409
+ default:
410
+ return "unknown";
411
+ }
412
+ }
413
+ function isParticipantDeparture(frame) {
414
+ return (frame.type === "participant_left" || frame.participant.state === "left");
415
+ }
416
+ function participantControlFrom(event) {
417
+ if (event.payload["callId"] !== event.callId)
418
+ return undefined;
419
+ let value;
420
+ switch (event.event) {
421
+ case "call.participant_joined":
422
+ value = {
423
+ type: "participant_joined",
424
+ participant: event.payload["participant"],
425
+ };
426
+ break;
427
+ case "call.participant_state":
428
+ value = {
429
+ type: "participant_state",
430
+ participant: event.payload["participant"],
431
+ };
432
+ break;
433
+ case "call.participant_left":
434
+ value = {
435
+ type: "participant_left",
436
+ participantId: event.payload["participantId"],
437
+ ...(typeof event.payload["reason"] !== "string"
438
+ ? {}
439
+ : { reason: event.payload["reason"] }),
440
+ };
441
+ break;
442
+ default:
443
+ return undefined;
444
+ }
445
+ return parseMediaControlValue(value);
446
+ }
447
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../calls/src/client.ts"],"names":[],"mappings":"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"}