@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,21 @@
1
+ import { HttpTransport } from "../transport/http.js";
2
+ export class IdentitiesResource {
3
+ transport;
4
+ constructor(transport) {
5
+ this.transport = transport;
6
+ }
7
+ resolve(session, params, options = {}) {
8
+ return this.transport.request({
9
+ method: "GET",
10
+ path: `/messaging/${encodeURIComponent(session)}/identities/resolve`,
11
+ query: {
12
+ phoneNumber: params.phoneNumber,
13
+ id: params.id,
14
+ username: params.username,
15
+ usernameKey: params.usernameKey,
16
+ },
17
+ ...options,
18
+ });
19
+ }
20
+ }
21
+ //# sourceMappingURL=identities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identities.js","sourceRoot":"","sources":["../../src/messaging/identities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAOrD,MAAM,OAAO,kBAAkB;IACA;IAA7B,YAA6B,SAAwB;QAAxB,cAAS,GAAT,SAAS,CAAe;IAAG,CAAC;IAEzD,OAAO,CACL,OAAe,EACf,MAA6B,EAC7B,UAA0B,EAAE;QAE5B,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAC5B,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,cAAc,kBAAkB,CAAC,OAAO,CAAC,qBAAqB;YACpE,KAAK,EAAE;gBACL,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,WAAW,EAAE,MAAM,CAAC,WAAW;aAChC;YACD,GAAG,OAAO;SACX,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,16 @@
1
+ import { HttpTransport } from "../transport/http.js";
2
+ import type { ApiResponse, RequestOptions } from "../transport/types.js";
3
+ import type { CreateLabelRequest, CreateLabelResponse, GetChatLabelsResponse, ListLabelsParams, ListLabelsResponse, ReplaceChatLabelsRequest, SuccessResponse, UpdateLabelRequest } from "./types.js";
4
+ export declare class LabelsResource {
5
+ private readonly transport;
6
+ constructor(transport: HttpTransport);
7
+ list(session: string, params?: ListLabelsParams, options?: RequestOptions): Promise<ApiResponse<ListLabelsResponse>>;
8
+ create(session: string, body: CreateLabelRequest, options?: RequestOptions): Promise<ApiResponse<CreateLabelResponse>>;
9
+ update(session: string, labelId: string, body: UpdateLabelRequest, options?: RequestOptions): Promise<ApiResponse<SuccessResponse>>;
10
+ delete(session: string, labelId: string, options?: RequestOptions): Promise<ApiResponse<SuccessResponse>>;
11
+ listForChat(session: string, chatId: string, params?: ListLabelsParams, options?: RequestOptions): Promise<ApiResponse<GetChatLabelsResponse>>;
12
+ /** Replaces the chat's complete label set. Pass an empty array to detach all labels. */
13
+ replaceForChat(session: string, chatId: string, body: ReplaceChatLabelsRequest, options?: RequestOptions): Promise<ApiResponse<SuccessResponse>>;
14
+ private read;
15
+ }
16
+ //# sourceMappingURL=labels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"labels.d.ts","sourceRoot":"","sources":["../../src/messaging/labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,wBAAwB,EACxB,eAAe,EACf,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAEpB,qBAAa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,aAAa;IAErD,IAAI,CACF,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,gBAAqB,EAC7B,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;IAI3C,MAAM,CACJ,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,kBAAkB,EACxB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;IAS5C,MAAM,CACJ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,kBAAkB,EACxB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IASxC,MAAM,CACJ,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IAQxC,WAAW,CACT,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,gBAAqB,EAC7B,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;IAI9C,wFAAwF;IACxF,cAAc,CACZ,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,wBAAwB,EAC9B,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IASxC,OAAO,CAAC,IAAI;CAcb"}
@@ -0,0 +1,65 @@
1
+ import { HttpTransport } from "../transport/http.js";
2
+ export class LabelsResource {
3
+ transport;
4
+ constructor(transport) {
5
+ this.transport = transport;
6
+ }
7
+ list(session, params = {}, options = {}) {
8
+ return this.read(labelsPath(session), params, options);
9
+ }
10
+ create(session, body, options = {}) {
11
+ return this.transport.request({
12
+ method: "POST",
13
+ path: labelsPath(session),
14
+ body,
15
+ ...options,
16
+ });
17
+ }
18
+ update(session, labelId, body, options = {}) {
19
+ return this.transport.request({
20
+ method: "PUT",
21
+ path: labelPath(session, labelId),
22
+ body,
23
+ ...options,
24
+ });
25
+ }
26
+ delete(session, labelId, options = {}) {
27
+ return this.transport.request({
28
+ method: "DELETE",
29
+ path: labelPath(session, labelId),
30
+ ...options,
31
+ });
32
+ }
33
+ listForChat(session, chatId, params = {}, options = {}) {
34
+ return this.read(chatLabelsPath(session, chatId), params, options);
35
+ }
36
+ /** Replaces the chat's complete label set. Pass an empty array to detach all labels. */
37
+ replaceForChat(session, chatId, body, options = {}) {
38
+ return this.transport.request({
39
+ method: "PUT",
40
+ path: chatLabelsPath(session, chatId),
41
+ body,
42
+ ...options,
43
+ });
44
+ }
45
+ read(path, params, options) {
46
+ return this.transport.request({
47
+ method: "GET",
48
+ path,
49
+ ...(params.includeObservation === undefined
50
+ ? {}
51
+ : { query: { includeObservation: params.includeObservation } }),
52
+ ...options,
53
+ });
54
+ }
55
+ }
56
+ function labelsPath(session) {
57
+ return `/messaging/${encodeURIComponent(session)}/labels`;
58
+ }
59
+ function labelPath(session, labelId) {
60
+ return `${labelsPath(session)}/${encodeURIComponent(labelId)}`;
61
+ }
62
+ function chatLabelsPath(session, chatId) {
63
+ return `${labelsPath(session)}/chats/${encodeURIComponent(chatId)}`;
64
+ }
65
+ //# sourceMappingURL=labels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"labels.js","sourceRoot":"","sources":["../../src/messaging/labels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAarD,MAAM,OAAO,cAAc;IACI;IAA7B,YAA6B,SAAwB;QAAxB,cAAS,GAAT,SAAS,CAAe;IAAG,CAAC;IAEzD,IAAI,CACF,OAAe,EACf,SAA2B,EAAE,EAC7B,UAA0B,EAAE;QAE5B,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,CACJ,OAAe,EACf,IAAwB,EACxB,UAA0B,EAAE;QAE5B,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAC5B,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC;YACzB,IAAI;YACJ,GAAG,OAAO;SACX,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CACJ,OAAe,EACf,OAAe,EACf,IAAwB,EACxB,UAA0B,EAAE;QAE5B,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAC5B,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC;YACjC,IAAI;YACJ,GAAG,OAAO;SACX,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CACJ,OAAe,EACf,OAAe,EACf,UAA0B,EAAE;QAE5B,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAC5B,MAAM,EAAE,QAAQ;YAChB,IAAI,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC;YACjC,GAAG,OAAO;SACX,CAAC,CAAC;IACL,CAAC;IAED,WAAW,CACT,OAAe,EACf,MAAc,EACd,SAA2B,EAAE,EAC7B,UAA0B,EAAE;QAE5B,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACrE,CAAC;IAED,wFAAwF;IACxF,cAAc,CACZ,OAAe,EACf,MAAc,EACd,IAA8B,EAC9B,UAA0B,EAAE;QAE5B,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAC5B,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC;YACrC,IAAI;YACJ,GAAG,OAAO;SACX,CAAC,CAAC;IACL,CAAC;IAEO,IAAI,CACV,IAAY,EACZ,MAAwB,EACxB,OAAuB;QAEvB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAC5B,MAAM,EAAE,KAAK;YACb,IAAI;YACJ,GAAG,CAAC,MAAM,CAAC,kBAAkB,KAAK,SAAS;gBACzC,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,kBAAkB,EAAE,MAAM,CAAC,kBAAkB,EAAE,EAAE,CAAC;YACjE,GAAG,OAAO;SACX,CAAC,CAAC;IACL,CAAC;CACF;AAED,SAAS,UAAU,CAAC,OAAe;IACjC,OAAO,cAAc,kBAAkB,CAAC,OAAO,CAAC,SAAS,CAAC;AAC5D,CAAC;AAED,SAAS,SAAS,CAAC,OAAe,EAAE,OAAe;IACjD,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;AACjE,CAAC;AAED,SAAS,cAAc,CAAC,OAAe,EAAE,MAAc;IACrD,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,UAAU,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;AACtE,CAAC"}
@@ -0,0 +1,72 @@
1
+ import { type WhatsAppMediaDownload, type WhatsAppMediaDownloadOptions, type WhatsAppMediaInput } from "../media/whatsapp.js";
2
+ import { HttpTransport } from "../transport/http.js";
3
+ import type { ApiResponse, RequestOptions, ResponseMetadata } from "../transport/types.js";
4
+ import type { GetMessagingMediaInfoResponse, SuccessResponse } from "./types.js";
5
+ export interface MediaDownloadStream {
6
+ /** Unbuffered body. Read it once or cancel it. */
7
+ readonly body: ReadableStream<Uint8Array>;
8
+ readonly contentType?: string;
9
+ readonly contentLength?: number;
10
+ readonly filename?: string;
11
+ readonly requestId?: string;
12
+ /** True when the API redirected to object storage and the SDK followed it. */
13
+ readonly redirected: boolean;
14
+ /** Metadata of the Polymorfa API response (the redirect, when followed). */
15
+ readonly metadata: ResponseMetadata;
16
+ }
17
+ export interface MediaDownloadBlob {
18
+ readonly blob: Blob;
19
+ readonly filename?: string;
20
+ readonly requestId?: string;
21
+ }
22
+ /**
23
+ * The API answered with a short-lived signed storage URL. The URL is a
24
+ * bearer secret: do not log or store it, and hand it out only to a caller
25
+ * already authorized for this media.
26
+ */
27
+ export interface MediaDownloadRedirectUrl {
28
+ readonly streamed: false;
29
+ readonly url: string;
30
+ /** Derived from the signed URL's query parameters when present. */
31
+ readonly expiresAt?: Date;
32
+ readonly requestId?: string;
33
+ }
34
+ /** The API streams this media itself; there is no direct URL. */
35
+ export interface MediaDownloadStreamedUrl {
36
+ readonly streamed: true;
37
+ readonly url: undefined;
38
+ readonly requestId?: string;
39
+ }
40
+ export type MediaDownloadUrl = MediaDownloadRedirectUrl | MediaDownloadStreamedUrl;
41
+ export declare class MessagingMediaResource {
42
+ private readonly transport;
43
+ constructor(transport: HttpTransport);
44
+ /** Buffers the whole file. Prefer `downloadStream` for large media. */
45
+ download(mediaId: string, options?: RequestOptions): Promise<ApiResponse<ArrayBuffer>>;
46
+ /**
47
+ * Streams media without buffering. A storage redirect is followed without
48
+ * sending the Polymorfa credential to the storage host. `timeoutMs` covers
49
+ * the wait for response headers; `signal` also cancels the body.
50
+ */
51
+ downloadStream(mediaId: string, options?: RequestOptions): Promise<MediaDownloadStream>;
52
+ /** Downloads media into a `Blob` typed with the response content type. */
53
+ downloadBlob(mediaId: string, options?: RequestOptions): Promise<MediaDownloadBlob>;
54
+ /**
55
+ * Returns the signed storage URL the API redirects to, without following
56
+ * it. When the API streams the media instead, returns `{ streamed: true }`
57
+ * and discards the body. The signed URL is short-lived; never log or store
58
+ * it.
59
+ */
60
+ downloadUrl(mediaId: string, options?: RequestOptions): Promise<MediaDownloadUrl>;
61
+ /**
62
+ * Downloads an attachment directly from the WhatsApp CDN using the
63
+ * encrypted descriptor in a message webhook (`media`), and decrypts it
64
+ * locally. No Polymorfa API call is made.
65
+ */
66
+ downloadFromWhatsApp(eventOrMedia: WhatsAppMediaInput, options?: WhatsAppMediaDownloadOptions): Promise<WhatsAppMediaDownload>;
67
+ retrieve(mediaId: string, options?: RequestOptions): Promise<ApiResponse<GetMessagingMediaInfoResponse>>;
68
+ persist(mediaId: string, options?: RequestOptions): Promise<ApiResponse<SuccessResponse>>;
69
+ }
70
+ /** Reads SigV4 (`X-Amz-Date` + `X-Amz-Expires`) or epoch `Expires` parameters. */
71
+ export declare function signedUrlExpiry(value: string): Date | undefined;
72
+ //# sourceMappingURL=media.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../src/messaging/media.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,4BAA4B,EACjC,KAAK,kBAAkB,EACxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,6BAA6B,EAC7B,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,mBAAmB;IAClC,kDAAkD;IAClD,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IAC1C,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,8EAA8E;IAC9E,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;CACrC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,iEAAiE;AACjE,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;IACxB,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC;IACxB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,MAAM,gBAAgB,GAC1B,wBAAwB,GAAG,wBAAwB,CAAC;AAEtD,qBAAa,sBAAsB;IACrB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,aAAa;IAErD,uEAAuE;IACvE,QAAQ,CACN,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAQpC;;;;OAIG;IACG,cAAc,CAClB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,mBAAmB,CAAC;IAyB/B,0EAA0E;IACpE,YAAY,CAChB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,iBAAiB,CAAC;IAgB7B;;;;;OAKG;IACG,WAAW,CACf,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,gBAAgB,CAAC;IAwB5B;;;;OAIG;IACH,oBAAoB,CAClB,YAAY,EAAE,kBAAkB,EAChC,OAAO,GAAE,4BAAiC,GACzC,OAAO,CAAC,qBAAqB,CAAC;IAIjC,QAAQ,CACN,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,WAAW,CAAC,6BAA6B,CAAC,CAAC;IAQtD,OAAO,CACL,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;CAOzC;AAMD,kFAAkF;AAClF,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAyB/D"}
@@ -0,0 +1,142 @@
1
+ import { downloadWhatsAppMedia, } from "../media/whatsapp.js";
2
+ import { HttpTransport } from "../transport/http.js";
3
+ export class MessagingMediaResource {
4
+ transport;
5
+ constructor(transport) {
6
+ this.transport = transport;
7
+ }
8
+ /** Buffers the whole file. Prefer `downloadStream` for large media. */
9
+ download(mediaId, options = {}) {
10
+ return this.transport.requestBinary({
11
+ method: "GET",
12
+ path: mediaPath(mediaId),
13
+ ...options,
14
+ });
15
+ }
16
+ /**
17
+ * Streams media without buffering. A storage redirect is followed without
18
+ * sending the Polymorfa credential to the storage host. `timeoutMs` covers
19
+ * the wait for response headers; `signal` also cancels the body.
20
+ */
21
+ async downloadStream(mediaId, options = {}) {
22
+ const response = await this.transport.requestStream({
23
+ method: "GET",
24
+ path: mediaPath(mediaId),
25
+ ...options,
26
+ });
27
+ return Object.freeze({
28
+ body: response.body,
29
+ ...(response.contentType === undefined
30
+ ? {}
31
+ : { contentType: response.contentType }),
32
+ ...(response.contentLength === undefined
33
+ ? {}
34
+ : { contentLength: response.contentLength }),
35
+ ...(response.filename === undefined
36
+ ? {}
37
+ : { filename: response.filename }),
38
+ ...(response.metadata.requestId === undefined
39
+ ? {}
40
+ : { requestId: response.metadata.requestId }),
41
+ redirected: response.redirected,
42
+ metadata: response.metadata,
43
+ });
44
+ }
45
+ /** Downloads media into a `Blob` typed with the response content type. */
46
+ async downloadBlob(mediaId, options = {}) {
47
+ const download = await this.downloadStream(mediaId, options);
48
+ const bytes = await new Response(download.body).arrayBuffer();
49
+ return Object.freeze({
50
+ blob: new Blob([bytes], {
51
+ type: download.contentType ?? "application/octet-stream",
52
+ }),
53
+ ...(download.filename === undefined
54
+ ? {}
55
+ : { filename: download.filename }),
56
+ ...(download.requestId === undefined
57
+ ? {}
58
+ : { requestId: download.requestId }),
59
+ });
60
+ }
61
+ /**
62
+ * Returns the signed storage URL the API redirects to, without following
63
+ * it. When the API streams the media instead, returns `{ streamed: true }`
64
+ * and discards the body. The signed URL is short-lived; never log or store
65
+ * it.
66
+ */
67
+ async downloadUrl(mediaId, options = {}) {
68
+ const result = await this.transport.requestStreamOrRedirect({
69
+ method: "GET",
70
+ path: mediaPath(mediaId),
71
+ ...options,
72
+ });
73
+ const requestId = result.metadata.requestId;
74
+ if ("body" in result) {
75
+ await result.body.cancel().catch(() => undefined);
76
+ return Object.freeze({
77
+ streamed: true,
78
+ url: undefined,
79
+ ...(requestId === undefined ? {} : { requestId }),
80
+ });
81
+ }
82
+ const expiresAt = signedUrlExpiry(result.location);
83
+ return Object.freeze({
84
+ streamed: false,
85
+ url: result.location,
86
+ ...(expiresAt === undefined ? {} : { expiresAt }),
87
+ ...(requestId === undefined ? {} : { requestId }),
88
+ });
89
+ }
90
+ /**
91
+ * Downloads an attachment directly from the WhatsApp CDN using the
92
+ * encrypted descriptor in a message webhook (`media`), and decrypts it
93
+ * locally. No Polymorfa API call is made.
94
+ */
95
+ downloadFromWhatsApp(eventOrMedia, options = {}) {
96
+ return downloadWhatsAppMedia(eventOrMedia, options);
97
+ }
98
+ retrieve(mediaId, options = {}) {
99
+ return this.transport.request({
100
+ method: "GET",
101
+ path: `${mediaPath(mediaId)}/info`,
102
+ ...options,
103
+ });
104
+ }
105
+ persist(mediaId, options = {}) {
106
+ return this.transport.request({
107
+ method: "POST",
108
+ path: `${mediaPath(mediaId)}/download-and-save`,
109
+ ...options,
110
+ });
111
+ }
112
+ }
113
+ function mediaPath(mediaId) {
114
+ return `/messaging/media/${encodeURIComponent(mediaId)}`;
115
+ }
116
+ /** Reads SigV4 (`X-Amz-Date` + `X-Amz-Expires`) or epoch `Expires` parameters. */
117
+ export function signedUrlExpiry(value) {
118
+ let url;
119
+ try {
120
+ url = new URL(value);
121
+ }
122
+ catch {
123
+ return undefined;
124
+ }
125
+ const params = url.searchParams;
126
+ const amzDate = params.get("X-Amz-Date");
127
+ const amzExpires = params.get("X-Amz-Expires");
128
+ if (amzDate !== null && amzExpires !== null && /^\d+$/.test(amzExpires)) {
129
+ const match = /^(\d{4})(\d{2})(\d{2})T(\d{2})(\d{2})(\d{2})Z$/.exec(amzDate);
130
+ if (match !== null) {
131
+ const [, y, mo, d, h, mi, s] = match.map(Number);
132
+ const start = Date.UTC(y, mo - 1, d, h, mi, s);
133
+ return new Date(start + Number(amzExpires) * 1000);
134
+ }
135
+ }
136
+ const expires = params.get("Expires");
137
+ if (expires !== null && /^\d{9,11}$/.test(expires)) {
138
+ return new Date(Number(expires) * 1000);
139
+ }
140
+ return undefined;
141
+ }
142
+ //# sourceMappingURL=media.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"media.js","sourceRoot":"","sources":["../../src/messaging/media.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { HttpTransport } from "../transport/http.js";
2
+ import type { ApiResponse, RequestOptions } from "../transport/types.js";
3
+ import type { ReactRequest, SeenRequest, SendMessageRequest, SendMessageResponse, SendReactionResponse, StarMessageResponse, StarRequest, SuccessEnvelope, TypingRequest } from "./types.js";
4
+ export declare class MessagesResource {
5
+ private readonly transport;
6
+ constructor(transport: HttpTransport);
7
+ send(session: string, body: SendMessageRequest, options?: RequestOptions): Promise<ApiResponse<SendMessageResponse>>;
8
+ markSeen(session: string, body: SeenRequest, options?: RequestOptions): Promise<ApiResponse<SuccessEnvelope<{
9
+ readonly status: string;
10
+ }>>>;
11
+ setTyping(session: string, body: TypingRequest, options?: RequestOptions): Promise<ApiResponse<SuccessEnvelope<{
12
+ readonly status: string;
13
+ }>>>;
14
+ react(session: string, body: ReactRequest, options?: RequestOptions): Promise<ApiResponse<SendReactionResponse>>;
15
+ star(session: string, body: StarRequest, options?: RequestOptions): Promise<ApiResponse<StarMessageResponse>>;
16
+ private post;
17
+ }
18
+ //# sourceMappingURL=messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/messaging/messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EACX,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,aAAa,EACd,MAAM,YAAY,CAAC;AAEpB,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,aAAa;IAErD,IAAI,CACF,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,kBAAkB,EACxB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;IAI5C,QAAQ,CACN,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,WAAW,EACjB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IAIrE,SAAS,CACP,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,aAAa,EACnB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IAIrE,KAAK,CACH,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,YAAY,EAClB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;IAI7C,IAAI,CACF,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,WAAW,EACjB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;IAI5C,OAAO,CAAC,IAAI;CAab"}
@@ -0,0 +1,32 @@
1
+ import { HttpTransport } from "../transport/http.js";
2
+ import { withIdempotencyKey } from "../transport/idempotency.js";
3
+ export class MessagesResource {
4
+ transport;
5
+ constructor(transport) {
6
+ this.transport = transport;
7
+ }
8
+ send(session, body, options = {}) {
9
+ return this.post(session, "send", body, withIdempotencyKey(options));
10
+ }
11
+ markSeen(session, body, options = {}) {
12
+ return this.post(session, "seen", body, options);
13
+ }
14
+ setTyping(session, body, options = {}) {
15
+ return this.post(session, "typing", body, options);
16
+ }
17
+ react(session, body, options = {}) {
18
+ return this.post(session, "react", body, withIdempotencyKey(options));
19
+ }
20
+ star(session, body, options = {}) {
21
+ return this.post(session, "star", body, options);
22
+ }
23
+ post(session, action, body, options) {
24
+ return this.transport.request({
25
+ method: "POST",
26
+ path: `/messaging/${encodeURIComponent(session)}/messages/${action}`,
27
+ body,
28
+ ...options,
29
+ });
30
+ }
31
+ }
32
+ //# sourceMappingURL=messages.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/messaging/messages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAcjE,MAAM,OAAO,gBAAgB;IACE;IAA7B,YAA6B,SAAwB;QAAxB,cAAS,GAAT,SAAS,CAAe;IAAG,CAAC;IAEzD,IAAI,CACF,OAAe,EACf,IAAwB,EACxB,UAA0B,EAAE;QAE5B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;IACvE,CAAC;IAED,QAAQ,CACN,OAAe,EACf,IAAiB,EACjB,UAA0B,EAAE;QAE5B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IAED,SAAS,CACP,OAAe,EACf,IAAmB,EACnB,UAA0B,EAAE;QAE5B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CACH,OAAe,EACf,IAAkB,EAClB,UAA0B,EAAE;QAE5B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,IAAI,CACF,OAAe,EACf,IAAiB,EACjB,UAA0B,EAAE;QAE5B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IAEO,IAAI,CACV,OAAe,EACf,MAAqD,EACrD,IAAa,EACb,OAAuB;QAEvB,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAC5B,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,cAAc,kBAAkB,CAAC,OAAO,CAAC,aAAa,MAAM,EAAE;YACpE,IAAI;YACJ,GAAG,OAAO;SACX,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,10 @@
1
+ import { HttpTransport } from "../transport/http.js";
2
+ import type { ApiResponse, RequestOptions } from "../transport/types.js";
3
+ import type { UpdateProjectObservationPolicyResponse, UpdateSessionObservationPolicyResponse } from "./types.js";
4
+ export declare class ObservationPoliciesResource {
5
+ private readonly transport;
6
+ constructor(transport: HttpTransport);
7
+ retrieveForProject(projectId: string, options?: RequestOptions): Promise<ApiResponse<UpdateProjectObservationPolicyResponse>>;
8
+ retrieveForSession(session: string, options?: RequestOptions): Promise<ApiResponse<UpdateSessionObservationPolicyResponse>>;
9
+ }
10
+ //# sourceMappingURL=observation-policies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observation-policies.d.ts","sourceRoot":"","sources":["../../src/messaging/observation-policies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,KAAK,EACV,sCAAsC,EACtC,sCAAsC,EACvC,MAAM,YAAY,CAAC;AAEpB,qBAAa,2BAA2B;IAC1B,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,aAAa;IAErD,kBAAkB,CAChB,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,WAAW,CAAC,sCAAsC,CAAC,CAAC;IAQ/D,kBAAkB,CAChB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,WAAW,CAAC,sCAAsC,CAAC,CAAC;CAOhE"}
@@ -0,0 +1,28 @@
1
+ import { HttpTransport } from "../transport/http.js";
2
+ export class ObservationPoliciesResource {
3
+ transport;
4
+ constructor(transport) {
5
+ this.transport = transport;
6
+ }
7
+ retrieveForProject(projectId, options = {}) {
8
+ return this.transport.request({
9
+ method: "GET",
10
+ path: projectPolicyPath(projectId),
11
+ ...options,
12
+ });
13
+ }
14
+ retrieveForSession(session, options = {}) {
15
+ return this.transport.request({
16
+ method: "GET",
17
+ path: sessionPolicyPath(session),
18
+ ...options,
19
+ });
20
+ }
21
+ }
22
+ function projectPolicyPath(projectId) {
23
+ return `/messaging/projects/${encodeURIComponent(projectId)}/observation-policy`;
24
+ }
25
+ function sessionPolicyPath(session) {
26
+ return `/messaging/${encodeURIComponent(session)}/observation-policy`;
27
+ }
28
+ //# sourceMappingURL=observation-policies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observation-policies.js","sourceRoot":"","sources":["../../src/messaging/observation-policies.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAOrD,MAAM,OAAO,2BAA2B;IACT;IAA7B,YAA6B,SAAwB;QAAxB,cAAS,GAAT,SAAS,CAAe;IAAG,CAAC;IAEzD,kBAAkB,CAChB,SAAiB,EACjB,UAA0B,EAAE;QAE5B,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAC5B,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,iBAAiB,CAAC,SAAS,CAAC;YAClC,GAAG,OAAO;SACX,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB,CAChB,OAAe,EACf,UAA0B,EAAE;QAE5B,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAC5B,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,iBAAiB,CAAC,OAAO,CAAC;YAChC,GAAG,OAAO;SACX,CAAC,CAAC;IACL,CAAC;CACF;AAED,SAAS,iBAAiB,CAAC,SAAiB;IAC1C,OAAO,uBAAuB,kBAAkB,CAAC,SAAS,CAAC,qBAAqB,CAAC;AACnF,CAAC;AAED,SAAS,iBAAiB,CAAC,OAAe;IACxC,OAAO,cAAc,kBAAkB,CAAC,OAAO,CAAC,qBAAqB,CAAC;AACxE,CAAC"}
@@ -0,0 +1,53 @@
1
+ import type { MessagingCredential } from "../credentials.js";
2
+ import { HttpTransport } from "../transport/http.js";
3
+ import type { ApiResponse, RequestOptions } from "../transport/types.js";
4
+ import type { TestEventFixtureInfo, TestingHistoryMessage, TriggerTestEventRequest, TriggerTestEventResponse } from "./testing-configuration.js";
5
+ export interface EmbeddedSignupRequest {
6
+ quicklinkId: string;
7
+ projectId?: string;
8
+ result?: {
9
+ code: string;
10
+ wabaId: string;
11
+ phoneNumberId: string;
12
+ coexistence?: boolean;
13
+ historySync?: boolean;
14
+ };
15
+ }
16
+ export interface EmbeddedSignupResponse {
17
+ success: true;
18
+ data: {
19
+ stage: string;
20
+ };
21
+ }
22
+ /** Trusted-server continuation of an issued QuickLink; never direct session creation. */
23
+ export declare class CloudOnboardingResource {
24
+ private readonly transport;
25
+ private readonly credentialType;
26
+ constructor(transport: HttpTransport, credentialType: MessagingCredential["type"]);
27
+ advance(input: EmbeddedSignupRequest, options?: RequestOptions): Promise<ApiResponse<EmbeddedSignupResponse>>;
28
+ }
29
+ export declare class TestingResource {
30
+ private readonly transport;
31
+ private readonly credentialType;
32
+ constructor(transport: HttpTransport, credentialType: MessagingCredential["type"]);
33
+ createHistoryFixture(projectId: string, input: {
34
+ messages: readonly TestingHistoryMessage[];
35
+ }, options?: RequestOptions): Promise<ApiResponse<{
36
+ fixtureId: string;
37
+ }>>;
38
+ /**
39
+ * Fire a named, signed test event for a Test number. Generated events reach
40
+ * webhooks and event history with `source: "test"`. With `fromSession`, a
41
+ * `message.received` request sends a simulated message from another Test
42
+ * number instead. Real numbers are refused with a 400 error. Pass
43
+ * `options.idempotencyKey` to make retries safe: repeating the request with
44
+ * the same key and body reuses the same event ID, and the SDK then retries
45
+ * network and 5xx failures.
46
+ */
47
+ triggerEvent(projectId: string, input: TriggerTestEventRequest, options?: RequestOptions): Promise<ApiResponse<TriggerTestEventResponse>>;
48
+ /** List test-event fixtures and the overrides each accepts. */
49
+ listEventFixtures(projectId: string, options?: RequestOptions): Promise<ApiResponse<{
50
+ fixtures: TestEventFixtureInfo[];
51
+ }>>;
52
+ }
53
+ //# sourceMappingURL=onboarding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboarding.d.ts","sourceRoot":"","sources":["../../src/messaging/onboarding.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,KAAK,EACV,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,4BAA4B,CAAC;AAEpC,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB,CAAC;CACH;AACD,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACzB;AAED,yFAAyF;AACzF,qBAAa,uBAAuB;IAEhC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,cAAc;gBADd,SAAS,EAAE,aAAa,EACxB,cAAc,EAAE,mBAAmB,CAAC,MAAM,CAAC;IAE9D,OAAO,CACL,KAAK,EAAE,qBAAqB,EAC5B,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;CAShD;AAED,qBAAa,eAAe;IAExB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,cAAc;gBADd,SAAS,EAAE,aAAa,EACxB,cAAc,EAAE,mBAAmB,CAAC,MAAM,CAAC;IAE9D,oBAAoB,CAClB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE;QAAE,QAAQ,EAAE,SAAS,qBAAqB,EAAE,CAAA;KAAE,EACrD,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,WAAW,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAU9C;;;;;;;;OAQG;IACH,YAAY,CACV,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,uBAAuB,EAC9B,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC;IAUjD,+DAA+D;IAC/D,iBAAiB,CACf,SAAS,EAAE,MAAM,EACjB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,WAAW,CAAC;QAAE,QAAQ,EAAE,oBAAoB,EAAE,CAAA;KAAE,CAAC,CAAC;CAQ9D"}
@@ -0,0 +1,69 @@
1
+ import { PolymorfaConfigurationError } from "../errors.js";
2
+ import { HttpTransport } from "../transport/http.js";
3
+ /** Trusted-server continuation of an issued QuickLink; never direct session creation. */
4
+ export class CloudOnboardingResource {
5
+ transport;
6
+ credentialType;
7
+ constructor(transport, credentialType) {
8
+ this.transport = transport;
9
+ this.credentialType = credentialType;
10
+ }
11
+ advance(input, options = {}) {
12
+ assertServerCredential(this.credentialType);
13
+ return this.transport.request({
14
+ method: "POST",
15
+ path: "/messaging/cloud-api/embedded-signup",
16
+ body: input,
17
+ ...options,
18
+ });
19
+ }
20
+ }
21
+ export class TestingResource {
22
+ transport;
23
+ credentialType;
24
+ constructor(transport, credentialType) {
25
+ this.transport = transport;
26
+ this.credentialType = credentialType;
27
+ }
28
+ createHistoryFixture(projectId, input, options = {}) {
29
+ assertServerCredential(this.credentialType);
30
+ return this.transport.request({
31
+ method: "POST",
32
+ path: `/messaging/testing/${encodeURIComponent(projectId)}/history-fixtures`,
33
+ body: input,
34
+ ...options,
35
+ });
36
+ }
37
+ /**
38
+ * Fire a named, signed test event for a Test number. Generated events reach
39
+ * webhooks and event history with `source: "test"`. With `fromSession`, a
40
+ * `message.received` request sends a simulated message from another Test
41
+ * number instead. Real numbers are refused with a 400 error. Pass
42
+ * `options.idempotencyKey` to make retries safe: repeating the request with
43
+ * the same key and body reuses the same event ID, and the SDK then retries
44
+ * network and 5xx failures.
45
+ */
46
+ triggerEvent(projectId, input, options = {}) {
47
+ assertServerCredential(this.credentialType);
48
+ return this.transport.request({
49
+ method: "POST",
50
+ path: `/messaging/testing/${encodeURIComponent(projectId)}/events`,
51
+ body: input,
52
+ ...options,
53
+ });
54
+ }
55
+ /** List test-event fixtures and the overrides each accepts. */
56
+ listEventFixtures(projectId, options = {}) {
57
+ assertServerCredential(this.credentialType);
58
+ return this.transport.request({
59
+ method: "GET",
60
+ path: `/messaging/testing/${encodeURIComponent(projectId)}/events/fixtures`,
61
+ ...options,
62
+ });
63
+ }
64
+ }
65
+ function assertServerCredential(type) {
66
+ if (type === "clientToken")
67
+ throw new PolymorfaConfigurationError("Onboarding management requires an organization API key or project token.", "credential");
68
+ }
69
+ //# sourceMappingURL=onboarding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboarding.js","sourceRoot":"","sources":["../../src/messaging/onboarding.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,MAAM,cAAc,CAAC;AAE3D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAyBrD,yFAAyF;AACzF,MAAM,OAAO,uBAAuB;IAEf;IACA;IAFnB,YACmB,SAAwB,EACxB,cAA2C;QAD3C,cAAS,GAAT,SAAS,CAAe;QACxB,mBAAc,GAAd,cAAc,CAA6B;IAC3D,CAAC;IACJ,OAAO,CACL,KAA4B,EAC5B,UAA0B,EAAE;QAE5B,sBAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAC5B,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,sCAAsC;YAC5C,IAAI,EAAE,KAAK;YACX,GAAG,OAAO;SACX,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,OAAO,eAAe;IAEP;IACA;IAFnB,YACmB,SAAwB,EACxB,cAA2C;QAD3C,cAAS,GAAT,SAAS,CAAe;QACxB,mBAAc,GAAd,cAAc,CAA6B;IAC3D,CAAC;IACJ,oBAAoB,CAClB,SAAiB,EACjB,KAAqD,EACrD,UAA0B,EAAE;QAE5B,sBAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAC5B,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,sBAAsB,kBAAkB,CAAC,SAAS,CAAC,mBAAmB;YAC5E,IAAI,EAAE,KAAK;YACX,GAAG,OAAO;SACX,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACH,YAAY,CACV,SAAiB,EACjB,KAA8B,EAC9B,UAA0B,EAAE;QAE5B,sBAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAC5B,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,sBAAsB,kBAAkB,CAAC,SAAS,CAAC,SAAS;YAClE,IAAI,EAAE,KAAK;YACX,GAAG,OAAO;SACX,CAAC,CAAC;IACL,CAAC;IAED,+DAA+D;IAC/D,iBAAiB,CACf,SAAiB,EACjB,UAA0B,EAAE;QAE5B,sBAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAC5B,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,sBAAsB,kBAAkB,CAAC,SAAS,CAAC,kBAAkB;YAC3E,GAAG,OAAO;SACX,CAAC,CAAC;IACL,CAAC;CACF;AACD,SAAS,sBAAsB,CAAC,IAAiC;IAC/D,IAAI,IAAI,KAAK,aAAa;QACxB,MAAM,IAAI,2BAA2B,CACnC,0EAA0E,EAC1E,YAAY,CACb,CAAC;AACN,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { HttpTransport } from "../transport/http.js";
2
+ import type { ApiResponse, RequestOptions } from "../transport/types.js";
3
+ import type { GetChatPresenceResponse, GetPresenceResponse, SetPresenceRequest, SetPresenceResponse, SubscribePresenceResponse } from "./types.js";
4
+ export declare class PresenceResource {
5
+ private readonly transport;
6
+ constructor(transport: HttpTransport);
7
+ set(session: string, body: SetPresenceRequest, options?: RequestOptions): Promise<ApiResponse<SetPresenceResponse>>;
8
+ get(session: string, options?: RequestOptions): Promise<ApiResponse<GetPresenceResponse>>;
9
+ getForChat(session: string, chatId: string, options?: RequestOptions): Promise<ApiResponse<GetChatPresenceResponse>>;
10
+ subscribe(session: string, chatId: string, options?: RequestOptions): Promise<ApiResponse<SubscribePresenceResponse>>;
11
+ }
12
+ //# sourceMappingURL=presence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"presence.d.ts","sourceRoot":"","sources":["../../src/messaging/presence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,KAAK,EACV,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,yBAAyB,EAC1B,MAAM,YAAY,CAAC;AAEpB,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,SAAS;gBAAT,SAAS,EAAE,aAAa;IAErD,GAAG,CACD,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,kBAAkB,EACxB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;IAS5C,GAAG,CACD,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;IAQ5C,UAAU,CACR,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;IAQhD,SAAS,CACP,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,WAAW,CAAC,yBAAyB,CAAC,CAAC;CAOnD"}