@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.
- package/LICENSE +21 -0
- package/README.md +1881 -0
- package/dist/bridge.d.ts +31 -0
- package/dist/bridge.d.ts.map +1 -0
- package/dist/bridge.js +39 -0
- package/dist/bridge.js.map +1 -0
- package/dist/calls/api.d.ts +109 -0
- package/dist/calls/api.d.ts.map +1 -0
- package/dist/calls/api.js +179 -0
- package/dist/calls/api.js.map +1 -0
- package/dist/calls/call.d.ts +286 -0
- package/dist/calls/call.d.ts.map +1 -0
- package/dist/calls/call.js +860 -0
- package/dist/calls/call.js.map +1 -0
- package/dist/calls/client.d.ts +124 -0
- package/dist/calls/client.d.ts.map +1 -0
- package/dist/calls/client.js +447 -0
- package/dist/calls/client.js.map +1 -0
- package/dist/calls/diagnostics.d.ts +74 -0
- package/dist/calls/diagnostics.d.ts.map +1 -0
- package/dist/calls/diagnostics.js +133 -0
- package/dist/calls/diagnostics.js.map +1 -0
- package/dist/calls/errors.d.ts +37 -0
- package/dist/calls/errors.d.ts.map +1 -0
- package/dist/calls/errors.js +52 -0
- package/dist/calls/errors.js.map +1 -0
- package/dist/calls/events.d.ts +15 -0
- package/dist/calls/events.d.ts.map +1 -0
- package/dist/calls/events.js +34 -0
- package/dist/calls/events.js.map +1 -0
- package/dist/calls/index.d.ts +6 -0
- package/dist/calls/index.d.ts.map +1 -0
- package/dist/calls/index.js +7 -0
- package/dist/calls/index.js.map +1 -0
- package/dist/calls/internal.d.ts +18 -0
- package/dist/calls/internal.d.ts.map +1 -0
- package/dist/calls/internal.js +18 -0
- package/dist/calls/internal.js.map +1 -0
- package/dist/calls/lifecycle.d.ts +111 -0
- package/dist/calls/lifecycle.d.ts.map +1 -0
- package/dist/calls/lifecycle.js +490 -0
- package/dist/calls/lifecycle.js.map +1 -0
- package/dist/calls/media.d.ts +102 -0
- package/dist/calls/media.d.ts.map +1 -0
- package/dist/calls/media.js +414 -0
- package/dist/calls/media.js.map +1 -0
- package/dist/calls/protocol.d.ts +216 -0
- package/dist/calls/protocol.d.ts.map +1 -0
- package/dist/calls/protocol.js +268 -0
- package/dist/calls/protocol.js.map +1 -0
- package/dist/calls/token.d.ts +43 -0
- package/dist/calls/token.d.ts.map +1 -0
- package/dist/calls/token.js +146 -0
- package/dist/calls/token.js.map +1 -0
- package/dist/client.d.ts +65 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +119 -0
- package/dist/client.js.map +1 -0
- package/dist/credentials.d.ts +50 -0
- package/dist/credentials.d.ts.map +1 -0
- package/dist/credentials.js +73 -0
- package/dist/credentials.js.map +1 -0
- package/dist/errors.d.ts +71 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +129 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +70 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +61 -0
- package/dist/index.js.map +1 -0
- package/dist/media/whatsapp.d.ts +105 -0
- package/dist/media/whatsapp.d.ts.map +1 -0
- package/dist/media/whatsapp.js +624 -0
- package/dist/media/whatsapp.js.map +1 -0
- package/dist/messaging/bansafe.d.ts +30 -0
- package/dist/messaging/bansafe.d.ts.map +1 -0
- package/dist/messaging/bansafe.js +86 -0
- package/dist/messaging/bansafe.js.map +1 -0
- package/dist/messaging/business.d.ts +35 -0
- package/dist/messaging/business.d.ts.map +1 -0
- package/dist/messaging/business.js +145 -0
- package/dist/messaging/business.js.map +1 -0
- package/dist/messaging/calls.d.ts +9 -0
- package/dist/messaging/calls.d.ts.map +1 -0
- package/dist/messaging/calls.js +16 -0
- package/dist/messaging/calls.js.map +1 -0
- package/dist/messaging/campaigns.d.ts +19 -0
- package/dist/messaging/campaigns.d.ts.map +1 -0
- package/dist/messaging/campaigns.js +77 -0
- package/dist/messaging/campaigns.js.map +1 -0
- package/dist/messaging/channels.d.ts +23 -0
- package/dist/messaging/channels.d.ts.map +1 -0
- package/dist/messaging/channels.js +104 -0
- package/dist/messaging/channels.js.map +1 -0
- package/dist/messaging/chats.d.ts +14 -0
- package/dist/messaging/chats.d.ts.map +1 -0
- package/dist/messaging/chats.js +51 -0
- package/dist/messaging/chats.js.map +1 -0
- package/dist/messaging/client-tokens.d.ts +15 -0
- package/dist/messaging/client-tokens.d.ts.map +1 -0
- package/dist/messaging/client-tokens.js +64 -0
- package/dist/messaging/client-tokens.js.map +1 -0
- package/dist/messaging/client.d.ts +58 -0
- package/dist/messaging/client.d.ts.map +1 -0
- package/dist/messaging/client.js +100 -0
- package/dist/messaging/client.js.map +1 -0
- package/dist/messaging/contacts.d.ts +20 -0
- package/dist/messaging/contacts.d.ts.map +1 -0
- package/dist/messaging/contacts.js +75 -0
- package/dist/messaging/contacts.js.map +1 -0
- package/dist/messaging/groups.d.ts +34 -0
- package/dist/messaging/groups.d.ts.map +1 -0
- package/dist/messaging/groups.js +97 -0
- package/dist/messaging/groups.js.map +1 -0
- package/dist/messaging/identities.d.ts +9 -0
- package/dist/messaging/identities.d.ts.map +1 -0
- package/dist/messaging/identities.js +21 -0
- package/dist/messaging/identities.js.map +1 -0
- package/dist/messaging/labels.d.ts +16 -0
- package/dist/messaging/labels.d.ts.map +1 -0
- package/dist/messaging/labels.js +65 -0
- package/dist/messaging/labels.js.map +1 -0
- package/dist/messaging/media.d.ts +72 -0
- package/dist/messaging/media.d.ts.map +1 -0
- package/dist/messaging/media.js +142 -0
- package/dist/messaging/media.js.map +1 -0
- package/dist/messaging/messages.d.ts +18 -0
- package/dist/messaging/messages.d.ts.map +1 -0
- package/dist/messaging/messages.js +32 -0
- package/dist/messaging/messages.js.map +1 -0
- package/dist/messaging/observation-policies.d.ts +10 -0
- package/dist/messaging/observation-policies.d.ts.map +1 -0
- package/dist/messaging/observation-policies.js +28 -0
- package/dist/messaging/observation-policies.js.map +1 -0
- package/dist/messaging/onboarding.d.ts +53 -0
- package/dist/messaging/onboarding.d.ts.map +1 -0
- package/dist/messaging/onboarding.js +69 -0
- package/dist/messaging/onboarding.js.map +1 -0
- package/dist/messaging/presence.d.ts +12 -0
- package/dist/messaging/presence.d.ts.map +1 -0
- package/dist/messaging/presence.js +43 -0
- package/dist/messaging/presence.js.map +1 -0
- package/dist/messaging/privacy.d.ts +11 -0
- package/dist/messaging/privacy.d.ts.map +1 -0
- package/dist/messaging/privacy.js +34 -0
- package/dist/messaging/privacy.js.map +1 -0
- package/dist/messaging/profile.d.ts +13 -0
- package/dist/messaging/profile.d.ts.map +1 -0
- package/dist/messaging/profile.js +49 -0
- package/dist/messaging/profile.js.map +1 -0
- package/dist/messaging/quick-replies.d.ts +13 -0
- package/dist/messaging/quick-replies.d.ts.map +1 -0
- package/dist/messaging/quick-replies.js +45 -0
- package/dist/messaging/quick-replies.js.map +1 -0
- package/dist/messaging/quicklinks.d.ts +69 -0
- package/dist/messaging/quicklinks.d.ts.map +1 -0
- package/dist/messaging/quicklinks.js +45 -0
- package/dist/messaging/quicklinks.js.map +1 -0
- package/dist/messaging/session-configuration.d.ts +67 -0
- package/dist/messaging/session-configuration.d.ts.map +1 -0
- package/dist/messaging/session-configuration.js +2 -0
- package/dist/messaging/session-configuration.js.map +1 -0
- package/dist/messaging/sessions.d.ts +26 -0
- package/dist/messaging/sessions.d.ts.map +1 -0
- package/dist/messaging/sessions.js +108 -0
- package/dist/messaging/sessions.js.map +1 -0
- package/dist/messaging/templates.d.ts +15 -0
- package/dist/messaging/templates.d.ts.map +1 -0
- package/dist/messaging/templates.js +67 -0
- package/dist/messaging/templates.js.map +1 -0
- package/dist/messaging/testing-configuration.d.ts +89 -0
- package/dist/messaging/testing-configuration.d.ts.map +1 -0
- package/dist/messaging/testing-configuration.js +14 -0
- package/dist/messaging/testing-configuration.js.map +1 -0
- package/dist/messaging/types.d.ts +1793 -0
- package/dist/messaging/types.d.ts.map +1 -0
- package/dist/messaging/types.js +25 -0
- package/dist/messaging/types.js.map +1 -0
- package/dist/messaging/users.d.ts +9 -0
- package/dist/messaging/users.d.ts.map +1 -0
- package/dist/messaging/users.js +15 -0
- package/dist/messaging/users.js.map +1 -0
- package/dist/messaging/voip.d.ts +51 -0
- package/dist/messaging/voip.d.ts.map +1 -0
- package/dist/messaging/voip.js +293 -0
- package/dist/messaging/voip.js.map +1 -0
- package/dist/messaging/webhooks.d.ts +13 -0
- package/dist/messaging/webhooks.d.ts.map +1 -0
- package/dist/messaging/webhooks.js +48 -0
- package/dist/messaging/webhooks.js.map +1 -0
- package/dist/node.d.ts +55 -0
- package/dist/node.d.ts.map +1 -0
- package/dist/node.js +237 -0
- package/dist/node.js.map +1 -0
- package/dist/pagination.d.ts +24 -0
- package/dist/pagination.d.ts.map +1 -0
- package/dist/pagination.js +28 -0
- package/dist/pagination.js.map +1 -0
- package/dist/platform/api-keys.d.ts +10 -0
- package/dist/platform/api-keys.d.ts.map +1 -0
- package/dist/platform/api-keys.js +22 -0
- package/dist/platform/api-keys.js.map +1 -0
- package/dist/platform/audiences.d.ts +16 -0
- package/dist/platform/audiences.d.ts.map +1 -0
- package/dist/platform/audiences.js +46 -0
- package/dist/platform/audiences.js.map +1 -0
- package/dist/platform/audit-logs.d.ts +9 -0
- package/dist/platform/audit-logs.d.ts.map +1 -0
- package/dist/platform/audit-logs.js +20 -0
- package/dist/platform/audit-logs.js.map +1 -0
- package/dist/platform/bansafe.d.ts +24 -0
- package/dist/platform/bansafe.d.ts.map +1 -0
- package/dist/platform/bansafe.js +70 -0
- package/dist/platform/bansafe.js.map +1 -0
- package/dist/platform/billing.d.ts +13 -0
- package/dist/platform/billing.d.ts.map +1 -0
- package/dist/platform/billing.js +27 -0
- package/dist/platform/billing.js.map +1 -0
- package/dist/platform/campaigns.d.ts +28 -0
- package/dist/platform/campaigns.d.ts.map +1 -0
- package/dist/platform/campaigns.js +92 -0
- package/dist/platform/campaigns.js.map +1 -0
- package/dist/platform/customers.d.ts +23 -0
- package/dist/platform/customers.d.ts.map +1 -0
- package/dist/platform/customers.js +140 -0
- package/dist/platform/customers.js.map +1 -0
- package/dist/platform/developer-resources.d.ts +101 -0
- package/dist/platform/developer-resources.d.ts.map +1 -0
- package/dist/platform/developer-resources.js +250 -0
- package/dist/platform/developer-resources.js.map +1 -0
- package/dist/platform/developer-types.d.ts +378 -0
- package/dist/platform/developer-types.d.ts.map +1 -0
- package/dist/platform/developer-types.js +2 -0
- package/dist/platform/developer-types.js.map +1 -0
- package/dist/platform/event-stream.d.ts +114 -0
- package/dist/platform/event-stream.d.ts.map +1 -0
- package/dist/platform/event-stream.js +308 -0
- package/dist/platform/event-stream.js.map +1 -0
- package/dist/platform/media.d.ts +13 -0
- package/dist/platform/media.d.ts.map +1 -0
- package/dist/platform/media.js +33 -0
- package/dist/platform/media.js.map +1 -0
- package/dist/platform/members.d.ts +9 -0
- package/dist/platform/members.d.ts.map +1 -0
- package/dist/platform/members.js +15 -0
- package/dist/platform/members.js.map +1 -0
- package/dist/platform/opt-outs.d.ts +15 -0
- package/dist/platform/opt-outs.d.ts.map +1 -0
- package/dist/platform/opt-outs.js +36 -0
- package/dist/platform/opt-outs.js.map +1 -0
- package/dist/platform/organizations.d.ts +9 -0
- package/dist/platform/organizations.d.ts.map +1 -0
- package/dist/platform/organizations.js +15 -0
- package/dist/platform/organizations.js.map +1 -0
- package/dist/platform/project-tokens.d.ts +9 -0
- package/dist/platform/project-tokens.d.ts.map +1 -0
- package/dist/platform/project-tokens.js +16 -0
- package/dist/platform/project-tokens.js.map +1 -0
- package/dist/platform/projects.d.ts +24 -0
- package/dist/platform/projects.d.ts.map +1 -0
- package/dist/platform/projects.js +83 -0
- package/dist/platform/projects.js.map +1 -0
- package/dist/platform/quicklink-settings.d.ts +85 -0
- package/dist/platform/quicklink-settings.d.ts.map +1 -0
- package/dist/platform/quicklink-settings.js +35 -0
- package/dist/platform/quicklink-settings.js.map +1 -0
- package/dist/platform/response.d.ts +10 -0
- package/dist/platform/response.d.ts.map +1 -0
- package/dist/platform/response.js +41 -0
- package/dist/platform/response.js.map +1 -0
- package/dist/platform/security-incidents.d.ts +10 -0
- package/dist/platform/security-incidents.d.ts.map +1 -0
- package/dist/platform/security-incidents.js +22 -0
- package/dist/platform/security-incidents.js.map +1 -0
- package/dist/platform/session-bans.d.ts +13 -0
- package/dist/platform/session-bans.d.ts.map +1 -0
- package/dist/platform/session-bans.js +21 -0
- package/dist/platform/session-bans.js.map +1 -0
- package/dist/platform/session-configuration.d.ts +15 -0
- package/dist/platform/session-configuration.d.ts.map +1 -0
- package/dist/platform/session-configuration.js +36 -0
- package/dist/platform/session-configuration.js.map +1 -0
- package/dist/platform/sessions.d.ts +26 -0
- package/dist/platform/sessions.d.ts.map +1 -0
- package/dist/platform/sessions.js +121 -0
- package/dist/platform/sessions.js.map +1 -0
- package/dist/platform/sip-trunks.d.ts +141 -0
- package/dist/platform/sip-trunks.d.ts.map +1 -0
- package/dist/platform/sip-trunks.js +140 -0
- package/dist/platform/sip-trunks.js.map +1 -0
- package/dist/platform/types.d.ts +897 -0
- package/dist/platform/types.d.ts.map +1 -0
- package/dist/platform/types.js +2 -0
- package/dist/platform/types.js.map +1 -0
- package/dist/raw.d.ts +26 -0
- package/dist/raw.d.ts.map +1 -0
- package/dist/raw.js +79 -0
- package/dist/raw.js.map +1 -0
- package/dist/system.d.ts +37 -0
- package/dist/system.d.ts.map +1 -0
- package/dist/system.js +45 -0
- package/dist/system.js.map +1 -0
- package/dist/transport/body.d.ts +6 -0
- package/dist/transport/body.d.ts.map +1 -0
- package/dist/transport/body.js +33 -0
- package/dist/transport/body.js.map +1 -0
- package/dist/transport/content-disposition.d.ts +9 -0
- package/dist/transport/content-disposition.d.ts.map +1 -0
- package/dist/transport/content-disposition.js +107 -0
- package/dist/transport/content-disposition.js.map +1 -0
- package/dist/transport/http.d.ts +35 -0
- package/dist/transport/http.d.ts.map +1 -0
- package/dist/transport/http.js +660 -0
- package/dist/transport/http.js.map +1 -0
- package/dist/transport/idempotency.d.ts +10 -0
- package/dist/transport/idempotency.d.ts.map +1 -0
- package/dist/transport/idempotency.js +13 -0
- package/dist/transport/idempotency.js.map +1 -0
- package/dist/transport/retry.d.ts +11 -0
- package/dist/transport/retry.d.ts.map +1 -0
- package/dist/transport/retry.js +45 -0
- package/dist/transport/retry.js.map +1 -0
- package/dist/transport/types.d.ts +58 -0
- package/dist/transport/types.d.ts.map +1 -0
- package/dist/transport/types.js +2 -0
- package/dist/transport/types.js.map +1 -0
- package/dist/version.d.ts +2 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +2 -0
- package/dist/version.js.map +1 -0
- package/dist/webhooks/events.d.ts +741 -0
- package/dist/webhooks/events.d.ts.map +1 -0
- package/dist/webhooks/events.js +80 -0
- package/dist/webhooks/events.js.map +1 -0
- package/dist/webhooks/index.d.ts +4 -0
- package/dist/webhooks/index.d.ts.map +1 -0
- package/dist/webhooks/index.js +4 -0
- package/dist/webhooks/index.js.map +1 -0
- package/dist/webhooks/utilities.d.ts +33 -0
- package/dist/webhooks/utilities.d.ts.map +1 -0
- package/dist/webhooks/utilities.js +67 -0
- package/dist/webhooks/utilities.js.map +1 -0
- package/dist/webhooks/verify.d.ts +9 -0
- package/dist/webhooks/verify.d.ts.map +1 -0
- package/dist/webhooks/verify.js +77 -0
- package/dist/webhooks/verify.js.map +1 -0
- package/package.json +58 -0
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { HttpTransport } from "../transport/http.js";
|
|
2
|
+
import { PolymorfaValidationError } from "../errors.js";
|
|
3
|
+
export class PlatformSessionsResource {
|
|
4
|
+
transport;
|
|
5
|
+
constructor(transport) {
|
|
6
|
+
this.transport = transport;
|
|
7
|
+
}
|
|
8
|
+
list(params = {}, options = {}) {
|
|
9
|
+
return this.transport.request({
|
|
10
|
+
method: "GET",
|
|
11
|
+
path: "/platform/sessions",
|
|
12
|
+
...(params.projectId === undefined
|
|
13
|
+
? {}
|
|
14
|
+
: { query: { projectId: params.projectId } }),
|
|
15
|
+
...options,
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
retrieve(sessionId, options = {}) {
|
|
19
|
+
return this.transport.request({
|
|
20
|
+
method: "GET",
|
|
21
|
+
path: sessionPath(sessionId),
|
|
22
|
+
...options,
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
update(sessionId, body, options = {}) {
|
|
26
|
+
return this.transport.request({
|
|
27
|
+
method: "PUT",
|
|
28
|
+
path: sessionPath(sessionId),
|
|
29
|
+
body,
|
|
30
|
+
...options,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
start(sessionId, body = {}, options = {}) {
|
|
34
|
+
return this.transport.request({
|
|
35
|
+
method: "POST",
|
|
36
|
+
path: `${sessionPath(sessionId)}/start`,
|
|
37
|
+
body,
|
|
38
|
+
...options,
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
stop(sessionId, body = {}, options = {}) {
|
|
42
|
+
return this.transport.request({
|
|
43
|
+
method: "POST",
|
|
44
|
+
path: `${sessionPath(sessionId)}/stop`,
|
|
45
|
+
body,
|
|
46
|
+
...options,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
/** Requests asynchronous stops for the matching 1 through 100 sessions. */
|
|
50
|
+
stopMany(body, options = {}) {
|
|
51
|
+
return this.transport.request({
|
|
52
|
+
method: "POST",
|
|
53
|
+
path: "/platform/sessions/stop",
|
|
54
|
+
body,
|
|
55
|
+
...options,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
delete(sessionId, options = {}) {
|
|
59
|
+
return this.transport.request({
|
|
60
|
+
method: "DELETE",
|
|
61
|
+
path: sessionPath(sessionId),
|
|
62
|
+
...options,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
/** Permanently removes the matching 1 through 100 sessions. */
|
|
66
|
+
deleteMany(body, options = {}) {
|
|
67
|
+
return this.transport.request({
|
|
68
|
+
method: "POST",
|
|
69
|
+
path: "/platform/sessions/delete",
|
|
70
|
+
body,
|
|
71
|
+
...options,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
/** Review the returned charge and effective time before confirming this quote. */
|
|
75
|
+
quoteTierChange(sessionId, body, options = {}) {
|
|
76
|
+
return this.transport.request({
|
|
77
|
+
method: "POST",
|
|
78
|
+
path: `${sessionPath(sessionId)}/tier-quotes`,
|
|
79
|
+
body,
|
|
80
|
+
...options,
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
retrieveTierChange(sessionId, quoteId, options = {}) {
|
|
84
|
+
return this.transport.request({
|
|
85
|
+
method: "GET",
|
|
86
|
+
path: `${sessionPath(sessionId)}/tier-quotes/${encodeURIComponent(quoteId)}`,
|
|
87
|
+
...options,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
/** Confirms a reviewed quote. Poll retrieveTierChange until applied or rejected. */
|
|
91
|
+
setTierOverride(sessionId, body, options = {}) {
|
|
92
|
+
if (typeof body?.quoteId !== "string" || !body.quoteId.trim()) {
|
|
93
|
+
throw new PolymorfaValidationError("Review a tier quote and supply its quoteId before confirming a number tier change.");
|
|
94
|
+
}
|
|
95
|
+
return this.transport.request({
|
|
96
|
+
method: "PATCH",
|
|
97
|
+
path: sessionPath(sessionId),
|
|
98
|
+
body,
|
|
99
|
+
...options,
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
getSafeMode(sessionId, options = {}) {
|
|
103
|
+
return this.transport.request({
|
|
104
|
+
method: "GET",
|
|
105
|
+
path: `${sessionPath(sessionId)}/safe-mode`,
|
|
106
|
+
...options,
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
updateSafeMode(sessionId, body, options = {}) {
|
|
110
|
+
return this.transport.request({
|
|
111
|
+
method: "PUT",
|
|
112
|
+
path: `${sessionPath(sessionId)}/safe-mode`,
|
|
113
|
+
body,
|
|
114
|
+
...options,
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
function sessionPath(sessionId) {
|
|
119
|
+
return `/platform/sessions/${encodeURIComponent(sessionId)}`;
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=sessions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/platform/sessions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { HttpTransport } from "../transport/http.js";
|
|
2
|
+
import type { ApiResponse, RequestOptions } from "../transport/types.js";
|
|
3
|
+
import type { ClientOwner } from "./developer-types.js";
|
|
4
|
+
/** Which way calls cross the trunk. */
|
|
5
|
+
export type SipTrunkDirection = "outbound" | "inbound" | "both";
|
|
6
|
+
export type SipTransport = "udp" | "tcp" | "tls";
|
|
7
|
+
export type SipCodec = "PCMU" | "PCMA" | "opus";
|
|
8
|
+
/** Where Polymorfa sends the incoming WhatsApp calls routed to the trunk. */
|
|
9
|
+
export interface SipTrunkOutbound {
|
|
10
|
+
readonly targetUri: string;
|
|
11
|
+
readonly transport: SipTransport;
|
|
12
|
+
readonly authUsername: string | null;
|
|
13
|
+
/** Whether a password is stored for `authUsername`. Passwords are never returned. */
|
|
14
|
+
readonly hasPassword: boolean;
|
|
15
|
+
readonly fromUser: string | null;
|
|
16
|
+
}
|
|
17
|
+
/** How your PBX places WhatsApp calls through the trunk. */
|
|
18
|
+
export interface SipTrunkInbound {
|
|
19
|
+
readonly username: string;
|
|
20
|
+
readonly realm: string;
|
|
21
|
+
/** Session that places the calls, or `null` while calls are refused. */
|
|
22
|
+
readonly session: string | null;
|
|
23
|
+
readonly allowedAddresses: readonly string[];
|
|
24
|
+
/** E.164 prefixes your PBX may call. Empty allows every destination. */
|
|
25
|
+
readonly allowedDestinations: readonly string[];
|
|
26
|
+
}
|
|
27
|
+
export interface SipTrunk {
|
|
28
|
+
readonly id: string;
|
|
29
|
+
readonly projectId: string;
|
|
30
|
+
readonly name: string;
|
|
31
|
+
readonly enabled: boolean;
|
|
32
|
+
readonly direction: SipTrunkDirection;
|
|
33
|
+
readonly outbound: SipTrunkOutbound | null;
|
|
34
|
+
readonly inbound: SipTrunkInbound | null;
|
|
35
|
+
readonly codecs: readonly SipCodec[];
|
|
36
|
+
readonly maxConcurrentCalls: number;
|
|
37
|
+
/** Increases on every change. Send it as `expectedRevision` to guard updates. */
|
|
38
|
+
readonly revision: number;
|
|
39
|
+
readonly createdAt: string;
|
|
40
|
+
readonly updatedAt: string;
|
|
41
|
+
}
|
|
42
|
+
/** Digest credentials for your PBX. The password is returned only once. */
|
|
43
|
+
export interface SipTrunkCredentials {
|
|
44
|
+
readonly username: string;
|
|
45
|
+
readonly password: string;
|
|
46
|
+
readonly realm: string;
|
|
47
|
+
}
|
|
48
|
+
export interface SipTrunkCreated {
|
|
49
|
+
readonly trunk: SipTrunk;
|
|
50
|
+
/** Present when the trunk accepts calls from your PBX. */
|
|
51
|
+
readonly inboundCredentials?: SipTrunkCredentials;
|
|
52
|
+
}
|
|
53
|
+
export interface SipTrunkDeleted {
|
|
54
|
+
readonly id: string;
|
|
55
|
+
readonly deleted: true;
|
|
56
|
+
}
|
|
57
|
+
export interface SipTrunkOutboundInput {
|
|
58
|
+
readonly targetUri: string;
|
|
59
|
+
readonly transport: SipTransport;
|
|
60
|
+
/** Send `null` to remove the username and password. */
|
|
61
|
+
readonly authUsername?: string | null;
|
|
62
|
+
/** Write-only. Omit on update to keep the stored password. */
|
|
63
|
+
readonly authPassword?: string;
|
|
64
|
+
readonly fromUser?: string | null;
|
|
65
|
+
}
|
|
66
|
+
export interface SipTrunkInboundInput {
|
|
67
|
+
readonly session?: string | null;
|
|
68
|
+
readonly allowedAddresses: readonly string[];
|
|
69
|
+
readonly allowedDestinations?: readonly string[];
|
|
70
|
+
}
|
|
71
|
+
interface CreateSipTrunkBase {
|
|
72
|
+
readonly name: string;
|
|
73
|
+
readonly enabled?: boolean;
|
|
74
|
+
readonly codecs?: readonly SipCodec[];
|
|
75
|
+
readonly maxConcurrentCalls?: number;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* A new trunk. `direction` decides which configuration it takes: `outbound`
|
|
79
|
+
* for WhatsApp calls you send to your PBX, `inbound` for calls your PBX
|
|
80
|
+
* places, and both for `both`.
|
|
81
|
+
*/
|
|
82
|
+
export type CreateSipTrunkInput = (CreateSipTrunkBase & {
|
|
83
|
+
readonly direction: "outbound";
|
|
84
|
+
readonly outbound: SipTrunkOutboundInput;
|
|
85
|
+
readonly inbound?: never;
|
|
86
|
+
}) | (CreateSipTrunkBase & {
|
|
87
|
+
readonly direction: "inbound";
|
|
88
|
+
readonly inbound: SipTrunkInboundInput;
|
|
89
|
+
readonly outbound?: never;
|
|
90
|
+
}) | (CreateSipTrunkBase & {
|
|
91
|
+
readonly direction: "both";
|
|
92
|
+
readonly outbound: SipTrunkOutboundInput;
|
|
93
|
+
readonly inbound: SipTrunkInboundInput;
|
|
94
|
+
});
|
|
95
|
+
export interface UpdateSipTrunkInput {
|
|
96
|
+
/** Refuse the change with `sip_trunk_revision_conflict` if the trunk has another revision. */
|
|
97
|
+
readonly expectedRevision?: number;
|
|
98
|
+
readonly name?: string;
|
|
99
|
+
readonly enabled?: boolean;
|
|
100
|
+
readonly direction?: SipTrunkDirection;
|
|
101
|
+
readonly outbound?: Partial<SipTrunkOutboundInput>;
|
|
102
|
+
readonly inbound?: Partial<SipTrunkInboundInput>;
|
|
103
|
+
readonly codecs?: readonly SipCodec[];
|
|
104
|
+
readonly maxConcurrentCalls?: number;
|
|
105
|
+
}
|
|
106
|
+
type ProjectArgument<O extends ClientOwner> = O extends "project" ? [] : [projectId: string];
|
|
107
|
+
/**
|
|
108
|
+
* SIP trunks connect a PBX or carrier trunk to the WhatsApp calls of a
|
|
109
|
+
* project's sessions. Team clients name the project on `list` and `create`;
|
|
110
|
+
* project clients use their own project.
|
|
111
|
+
*/
|
|
112
|
+
export declare class SipTrunksResource<O extends ClientOwner> {
|
|
113
|
+
#private;
|
|
114
|
+
private readonly transport;
|
|
115
|
+
private readonly projectId;
|
|
116
|
+
/**
|
|
117
|
+
* Team keys can reach every trunk of the team by ID, so a project client
|
|
118
|
+
* built from one checks a trunk's project before acting on it.
|
|
119
|
+
*/
|
|
120
|
+
private readonly confineById;
|
|
121
|
+
constructor(transport: HttpTransport, projectId: string | null,
|
|
122
|
+
/**
|
|
123
|
+
* Team keys can reach every trunk of the team by ID, so a project client
|
|
124
|
+
* built from one checks a trunk's project before acting on it.
|
|
125
|
+
*/
|
|
126
|
+
confineById: boolean);
|
|
127
|
+
list(...args: [...ProjectArgument<O>, options?: RequestOptions]): Promise<ApiResponse<readonly SipTrunk[]>>;
|
|
128
|
+
create(...args: [
|
|
129
|
+
...ProjectArgument<O>,
|
|
130
|
+
input: CreateSipTrunkInput,
|
|
131
|
+
options?: RequestOptions
|
|
132
|
+
]): Promise<ApiResponse<SipTrunkCreated>>;
|
|
133
|
+
retrieve(trunkId: string, options?: RequestOptions): Promise<ApiResponse<SipTrunk>>;
|
|
134
|
+
update(trunkId: string, input: UpdateSipTrunkInput, options?: RequestOptions): Promise<ApiResponse<SipTrunk>>;
|
|
135
|
+
/** Fails with `sip_trunk_in_use` while a session routes incoming calls to the trunk. */
|
|
136
|
+
delete(trunkId: string, options?: RequestOptions): Promise<ApiResponse<SipTrunkDeleted>>;
|
|
137
|
+
/** Replaces the password your PBX uses. The previous one stops working within about a minute. */
|
|
138
|
+
rotateCredentials(trunkId: string, options?: RequestOptions): Promise<ApiResponse<SipTrunkCredentials>>;
|
|
139
|
+
}
|
|
140
|
+
export {};
|
|
141
|
+
//# sourceMappingURL=sip-trunks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sip-trunks.d.ts","sourceRoot":"","sources":["../../src/platform/sip-trunks.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { PolymorfaConfigurationError, PolymorfaNotFoundError, } from "../errors.js";
|
|
2
|
+
import { HttpTransport } from "../transport/http.js";
|
|
3
|
+
import { unwrapResponse } from "./response.js";
|
|
4
|
+
/**
|
|
5
|
+
* SIP trunks connect a PBX or carrier trunk to the WhatsApp calls of a
|
|
6
|
+
* project's sessions. Team clients name the project on `list` and `create`;
|
|
7
|
+
* project clients use their own project.
|
|
8
|
+
*/
|
|
9
|
+
export class SipTrunksResource {
|
|
10
|
+
transport;
|
|
11
|
+
projectId;
|
|
12
|
+
confineById;
|
|
13
|
+
constructor(transport, projectId,
|
|
14
|
+
/**
|
|
15
|
+
* Team keys can reach every trunk of the team by ID, so a project client
|
|
16
|
+
* built from one checks a trunk's project before acting on it.
|
|
17
|
+
*/
|
|
18
|
+
confineById) {
|
|
19
|
+
this.transport = transport;
|
|
20
|
+
this.projectId = projectId;
|
|
21
|
+
this.confineById = confineById;
|
|
22
|
+
}
|
|
23
|
+
list(...args) {
|
|
24
|
+
const [projectId, options] = this.#split(args);
|
|
25
|
+
return this.transport
|
|
26
|
+
.request({
|
|
27
|
+
method: "GET",
|
|
28
|
+
path: "/platform/sip-trunks",
|
|
29
|
+
query: { projectId },
|
|
30
|
+
...options,
|
|
31
|
+
})
|
|
32
|
+
.then(unwrapResponse);
|
|
33
|
+
}
|
|
34
|
+
create(...args) {
|
|
35
|
+
const values = args;
|
|
36
|
+
const projectId = this.projectId ?? requireProjectId(values.shift());
|
|
37
|
+
const input = values[0];
|
|
38
|
+
const options = values[1] ?? {};
|
|
39
|
+
return this.transport
|
|
40
|
+
.request({
|
|
41
|
+
method: "POST",
|
|
42
|
+
path: "/platform/sip-trunks",
|
|
43
|
+
body: { ...input, projectId },
|
|
44
|
+
...options,
|
|
45
|
+
})
|
|
46
|
+
.then(unwrapResponse);
|
|
47
|
+
}
|
|
48
|
+
retrieve(trunkId, options = {}) {
|
|
49
|
+
return this.#retrieve(trunkId, options).then((response) => {
|
|
50
|
+
this.#assertProject(trunkId, response.data);
|
|
51
|
+
return response;
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
async update(trunkId, input, options = {}) {
|
|
55
|
+
await this.#confine(trunkId, options);
|
|
56
|
+
return this.transport
|
|
57
|
+
.request({
|
|
58
|
+
method: "PATCH",
|
|
59
|
+
path: trunkPath(trunkId),
|
|
60
|
+
body: input,
|
|
61
|
+
...options,
|
|
62
|
+
})
|
|
63
|
+
.then(unwrapResponse);
|
|
64
|
+
}
|
|
65
|
+
/** Fails with `sip_trunk_in_use` while a session routes incoming calls to the trunk. */
|
|
66
|
+
async delete(trunkId, options = {}) {
|
|
67
|
+
await this.#confine(trunkId, options);
|
|
68
|
+
return this.transport
|
|
69
|
+
.request({
|
|
70
|
+
method: "DELETE",
|
|
71
|
+
path: trunkPath(trunkId),
|
|
72
|
+
...options,
|
|
73
|
+
})
|
|
74
|
+
.then(unwrapResponse);
|
|
75
|
+
}
|
|
76
|
+
/** Replaces the password your PBX uses. The previous one stops working within about a minute. */
|
|
77
|
+
async rotateCredentials(trunkId, options = {}) {
|
|
78
|
+
await this.#confine(trunkId, options);
|
|
79
|
+
return this.transport
|
|
80
|
+
.request({
|
|
81
|
+
method: "POST",
|
|
82
|
+
path: `${trunkPath(trunkId)}/credentials`,
|
|
83
|
+
...options,
|
|
84
|
+
})
|
|
85
|
+
.then(unwrapResponse);
|
|
86
|
+
}
|
|
87
|
+
#split(args) {
|
|
88
|
+
if (this.projectId !== null) {
|
|
89
|
+
return [this.projectId, args[0] ?? {}];
|
|
90
|
+
}
|
|
91
|
+
return [
|
|
92
|
+
requireProjectId(args[0]),
|
|
93
|
+
args[1] ?? {},
|
|
94
|
+
];
|
|
95
|
+
}
|
|
96
|
+
#retrieve(trunkId, options) {
|
|
97
|
+
return this.transport
|
|
98
|
+
.request({
|
|
99
|
+
method: "GET",
|
|
100
|
+
path: trunkPath(trunkId),
|
|
101
|
+
...options,
|
|
102
|
+
})
|
|
103
|
+
.then(unwrapResponse);
|
|
104
|
+
}
|
|
105
|
+
async #confine(trunkId, options) {
|
|
106
|
+
if (!this.confineById)
|
|
107
|
+
return;
|
|
108
|
+
// The check reads with the caller's options; the idempotency key belongs
|
|
109
|
+
// to the change that follows.
|
|
110
|
+
const read = {
|
|
111
|
+
...options,
|
|
112
|
+
};
|
|
113
|
+
delete read.idempotencyKey;
|
|
114
|
+
const response = await this.#retrieve(trunkId, read);
|
|
115
|
+
this.#assertProject(trunkId, response.data);
|
|
116
|
+
}
|
|
117
|
+
#assertProject(trunkId, trunk) {
|
|
118
|
+
if (this.projectId !== null &&
|
|
119
|
+
trunk.projectId.toLowerCase() !== this.projectId.toLowerCase()) {
|
|
120
|
+
throw new PolymorfaNotFoundError("SIP trunk not found.", {
|
|
121
|
+
code: "resource_not_found",
|
|
122
|
+
status: 404,
|
|
123
|
+
details: { trunkId },
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
function trunkPath(trunkId) {
|
|
129
|
+
if (typeof trunkId !== "string" || trunkId.trim().length === 0) {
|
|
130
|
+
throw new PolymorfaConfigurationError("A SIP trunk id is required.", "trunkId");
|
|
131
|
+
}
|
|
132
|
+
return `/platform/sip-trunks/${encodeURIComponent(trunkId)}`;
|
|
133
|
+
}
|
|
134
|
+
function requireProjectId(value) {
|
|
135
|
+
if (typeof value !== "string" || value.trim().length === 0) {
|
|
136
|
+
throw new PolymorfaConfigurationError("A projectId is required for team clients.", "projectId");
|
|
137
|
+
}
|
|
138
|
+
return value;
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=sip-trunks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sip-trunks.js","sourceRoot":"","sources":["../../src/platform/sip-trunks.ts"],"names":[],"mappings":"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"}
|