telnyx 7.28.0 → 7.30.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/README.md +27 -0
- package/client.d.mts +37 -6
- package/client.d.mts.map +1 -1
- package/client.d.ts +37 -6
- package/client.d.ts.map +1 -1
- package/client.js +31 -0
- package/client.js.map +1 -1
- package/client.mjs +31 -0
- package/client.mjs.map +1 -1
- package/lib/login-token.d.mts +87 -0
- package/lib/login-token.d.mts.map +1 -0
- package/lib/login-token.d.ts +87 -0
- package/lib/login-token.d.ts.map +1 -0
- package/lib/login-token.js +190 -0
- package/lib/login-token.js.map +1 -0
- package/lib/login-token.mjs +151 -0
- package/lib/login-token.mjs.map +1 -0
- package/package.json +1 -1
- package/resources/addresses/actions.d.mts +19 -4
- package/resources/addresses/actions.d.mts.map +1 -1
- package/resources/addresses/actions.d.ts +19 -4
- package/resources/addresses/actions.d.ts.map +1 -1
- package/resources/ai/ai.d.mts +4 -0
- package/resources/ai/ai.d.mts.map +1 -1
- package/resources/ai/ai.d.ts +4 -0
- package/resources/ai/ai.d.ts.map +1 -1
- package/resources/ai/ai.js +4 -0
- package/resources/ai/ai.js.map +1 -1
- package/resources/ai/ai.mjs +4 -0
- package/resources/ai/ai.mjs.map +1 -1
- package/resources/ai/assistants/assistants.d.mts +31 -27
- package/resources/ai/assistants/assistants.d.mts.map +1 -1
- package/resources/ai/assistants/assistants.d.ts +31 -27
- package/resources/ai/assistants/assistants.d.ts.map +1 -1
- package/resources/ai/assistants/assistants.js.map +1 -1
- package/resources/ai/assistants/assistants.mjs.map +1 -1
- package/resources/ai/avatars.d.mts +9 -9
- package/resources/ai/avatars.d.ts +9 -9
- package/resources/ai/avatars.js +9 -9
- package/resources/ai/avatars.mjs +9 -9
- package/resources/ai/index.d.mts +1 -0
- package/resources/ai/index.d.mts.map +1 -1
- package/resources/ai/index.d.ts +1 -0
- package/resources/ai/index.d.ts.map +1 -1
- package/resources/ai/index.js +5 -3
- package/resources/ai/index.js.map +1 -1
- package/resources/ai/index.mjs +1 -0
- package/resources/ai/index.mjs.map +1 -1
- package/resources/ai/tests/index.d.mts +4 -0
- package/resources/ai/tests/index.d.mts.map +1 -0
- package/resources/ai/tests/index.d.ts +4 -0
- package/resources/ai/tests/index.d.ts.map +1 -0
- package/resources/ai/tests/index.js +11 -0
- package/resources/ai/tests/index.js.map +1 -0
- package/resources/ai/tests/index.mjs +5 -0
- package/resources/ai/tests/index.mjs.map +1 -0
- package/resources/ai/tests/schedules/index.d.mts +3 -0
- package/resources/ai/tests/schedules/index.d.mts.map +1 -0
- package/resources/ai/tests/schedules/index.d.ts +3 -0
- package/resources/ai/tests/schedules/index.d.ts.map +1 -0
- package/resources/ai/tests/schedules/index.js +9 -0
- package/resources/ai/tests/schedules/index.js.map +1 -0
- package/resources/ai/tests/schedules/index.mjs +4 -0
- package/resources/ai/tests/schedules/index.mjs.map +1 -0
- package/resources/ai/tests/schedules/schedules.d.mts +10 -0
- package/resources/ai/tests/schedules/schedules.d.mts.map +1 -0
- package/resources/ai/tests/schedules/schedules.d.ts +10 -0
- package/resources/ai/tests/schedules/schedules.d.ts.map +1 -0
- package/resources/ai/tests/schedules/schedules.js +17 -0
- package/resources/ai/tests/schedules/schedules.js.map +1 -0
- package/resources/ai/tests/schedules/schedules.mjs +12 -0
- package/resources/ai/tests/schedules/schedules.mjs.map +1 -0
- package/resources/ai/tests/schedules/v1/cron-jobs.d.mts +171 -0
- package/resources/ai/tests/schedules/v1/cron-jobs.d.mts.map +1 -0
- package/resources/ai/tests/schedules/v1/cron-jobs.d.ts +171 -0
- package/resources/ai/tests/schedules/v1/cron-jobs.d.ts.map +1 -0
- package/resources/ai/tests/schedules/v1/cron-jobs.js +88 -0
- package/resources/ai/tests/schedules/v1/cron-jobs.js.map +1 -0
- package/resources/ai/tests/schedules/v1/cron-jobs.mjs +84 -0
- package/resources/ai/tests/schedules/v1/cron-jobs.mjs.map +1 -0
- package/resources/ai/tests/schedules/v1/index.d.mts +3 -0
- package/resources/ai/tests/schedules/v1/index.d.mts.map +1 -0
- package/resources/ai/tests/schedules/v1/index.d.ts +3 -0
- package/resources/ai/tests/schedules/v1/index.d.ts.map +1 -0
- package/resources/ai/tests/schedules/v1/index.js +9 -0
- package/resources/ai/tests/schedules/v1/index.js.map +1 -0
- package/resources/ai/tests/schedules/v1/index.mjs +4 -0
- package/resources/ai/tests/schedules/v1/index.mjs.map +1 -0
- package/resources/ai/tests/schedules/v1/v1.d.mts +10 -0
- package/resources/ai/tests/schedules/v1/v1.d.mts.map +1 -0
- package/resources/ai/tests/schedules/v1/v1.d.ts +10 -0
- package/resources/ai/tests/schedules/v1/v1.d.ts.map +1 -0
- package/resources/ai/tests/schedules/v1/v1.js +17 -0
- package/resources/ai/tests/schedules/v1/v1.js.map +1 -0
- package/resources/ai/tests/schedules/v1/v1.mjs +12 -0
- package/resources/ai/tests/schedules/v1/v1.mjs.map +1 -0
- package/resources/ai/tests/schedules/v1.d.mts +2 -0
- package/resources/ai/tests/schedules/v1.d.mts.map +1 -0
- package/resources/ai/tests/schedules/v1.d.ts +2 -0
- package/resources/ai/tests/schedules/v1.d.ts.map +1 -0
- package/resources/ai/tests/schedules/v1.js +6 -0
- package/resources/ai/tests/schedules/v1.js.map +1 -0
- package/resources/ai/tests/schedules/v1.mjs +3 -0
- package/resources/ai/tests/schedules/v1.mjs.map +1 -0
- package/resources/ai/tests/schedules.d.mts +2 -0
- package/resources/ai/tests/schedules.d.mts.map +1 -0
- package/resources/ai/tests/schedules.d.ts +2 -0
- package/resources/ai/tests/schedules.d.ts.map +1 -0
- package/resources/ai/tests/schedules.js +6 -0
- package/resources/ai/tests/schedules.js.map +1 -0
- package/resources/ai/tests/schedules.mjs +3 -0
- package/resources/ai/tests/schedules.mjs.map +1 -0
- package/resources/ai/tests/test-framework/index.d.mts +3 -0
- package/resources/ai/tests/test-framework/index.d.mts.map +1 -0
- package/resources/ai/tests/test-framework/index.d.ts +3 -0
- package/resources/ai/tests/test-framework/index.d.ts.map +1 -0
- package/resources/ai/tests/test-framework/index.js +9 -0
- package/resources/ai/tests/test-framework/index.js.map +1 -0
- package/resources/ai/tests/test-framework/index.mjs +4 -0
- package/resources/ai/tests/test-framework/index.mjs.map +1 -0
- package/resources/ai/tests/test-framework/test-framework.d.mts +10 -0
- package/resources/ai/tests/test-framework/test-framework.d.mts.map +1 -0
- package/resources/ai/tests/test-framework/test-framework.d.ts +10 -0
- package/resources/ai/tests/test-framework/test-framework.d.ts.map +1 -0
- package/resources/ai/tests/test-framework/test-framework.js +17 -0
- package/resources/ai/tests/test-framework/test-framework.js.map +1 -0
- package/resources/ai/tests/test-framework/test-framework.mjs +12 -0
- package/resources/ai/tests/test-framework/test-framework.mjs.map +1 -0
- package/resources/ai/tests/test-framework/v1/aiagents.d.mts +216 -0
- package/resources/ai/tests/test-framework/v1/aiagents.d.mts.map +1 -0
- package/resources/ai/tests/test-framework/v1/aiagents.d.ts +216 -0
- package/resources/ai/tests/test-framework/v1/aiagents.d.ts.map +1 -0
- package/resources/ai/tests/test-framework/v1/aiagents.js +93 -0
- package/resources/ai/tests/test-framework/v1/aiagents.js.map +1 -0
- package/resources/ai/tests/test-framework/v1/aiagents.mjs +89 -0
- package/resources/ai/tests/test-framework/v1/aiagents.mjs.map +1 -0
- package/resources/ai/tests/test-framework/v1/index.d.mts +6 -0
- package/resources/ai/tests/test-framework/v1/index.d.mts.map +1 -0
- package/resources/ai/tests/test-framework/v1/index.d.ts +6 -0
- package/resources/ai/tests/test-framework/v1/index.d.ts.map +1 -0
- package/resources/ai/tests/test-framework/v1/index.js +15 -0
- package/resources/ai/tests/test-framework/v1/index.js.map +1 -0
- package/resources/ai/tests/test-framework/v1/index.mjs +7 -0
- package/resources/ai/tests/test-framework/v1/index.mjs.map +1 -0
- package/resources/ai/tests/test-framework/v1/metrics.d.mts +339 -0
- package/resources/ai/tests/test-framework/v1/metrics.d.mts.map +1 -0
- package/resources/ai/tests/test-framework/v1/metrics.d.ts +339 -0
- package/resources/ai/tests/test-framework/v1/metrics.d.ts.map +1 -0
- package/resources/ai/tests/test-framework/v1/metrics.js +145 -0
- package/resources/ai/tests/test-framework/v1/metrics.js.map +1 -0
- package/resources/ai/tests/test-framework/v1/metrics.mjs +141 -0
- package/resources/ai/tests/test-framework/v1/metrics.mjs.map +1 -0
- package/resources/ai/tests/test-framework/v1/results.d.mts +207 -0
- package/resources/ai/tests/test-framework/v1/results.d.mts.map +1 -0
- package/resources/ai/tests/test-framework/v1/results.d.ts +207 -0
- package/resources/ai/tests/test-framework/v1/results.d.ts.map +1 -0
- package/resources/ai/tests/test-framework/v1/results.js +65 -0
- package/resources/ai/tests/test-framework/v1/results.js.map +1 -0
- package/resources/ai/tests/test-framework/v1/results.mjs +61 -0
- package/resources/ai/tests/test-framework/v1/results.mjs.map +1 -0
- package/resources/ai/tests/test-framework/v1/scenarios.d.mts +528 -0
- package/resources/ai/tests/test-framework/v1/scenarios.d.mts.map +1 -0
- package/resources/ai/tests/test-framework/v1/scenarios.d.ts +528 -0
- package/resources/ai/tests/test-framework/v1/scenarios.d.ts.map +1 -0
- package/resources/ai/tests/test-framework/v1/scenarios.js +222 -0
- package/resources/ai/tests/test-framework/v1/scenarios.js.map +1 -0
- package/resources/ai/tests/test-framework/v1/scenarios.mjs +218 -0
- package/resources/ai/tests/test-framework/v1/scenarios.mjs.map +1 -0
- package/resources/ai/tests/test-framework/v1/v1.d.mts +83 -0
- package/resources/ai/tests/test-framework/v1/v1.d.mts.map +1 -0
- package/resources/ai/tests/test-framework/v1/v1.d.ts +83 -0
- package/resources/ai/tests/test-framework/v1/v1.d.ts.map +1 -0
- package/resources/ai/tests/test-framework/v1/v1.js +46 -0
- package/resources/ai/tests/test-framework/v1/v1.js.map +1 -0
- package/resources/ai/tests/test-framework/v1/v1.mjs +41 -0
- package/resources/ai/tests/test-framework/v1/v1.mjs.map +1 -0
- package/resources/ai/tests/test-framework/v1.d.mts +2 -0
- package/resources/ai/tests/test-framework/v1.d.mts.map +1 -0
- package/resources/ai/tests/test-framework/v1.d.ts +2 -0
- package/resources/ai/tests/test-framework/v1.d.ts.map +1 -0
- package/resources/ai/tests/test-framework/v1.js +6 -0
- package/resources/ai/tests/test-framework/v1.js.map +1 -0
- package/resources/ai/tests/test-framework/v1.mjs +3 -0
- package/resources/ai/tests/test-framework/v1.mjs.map +1 -0
- package/resources/ai/tests/test-framework.d.mts +2 -0
- package/resources/ai/tests/test-framework.d.mts.map +1 -0
- package/resources/ai/tests/test-framework.d.ts +2 -0
- package/resources/ai/tests/test-framework.d.ts.map +1 -0
- package/resources/ai/tests/test-framework.js +6 -0
- package/resources/ai/tests/test-framework.js.map +1 -0
- package/resources/ai/tests/test-framework.mjs +3 -0
- package/resources/ai/tests/test-framework.mjs.map +1 -0
- package/resources/ai/tests/tests.d.mts +14 -0
- package/resources/ai/tests/tests.d.mts.map +1 -0
- package/resources/ai/tests/tests.d.ts +14 -0
- package/resources/ai/tests/tests.d.ts.map +1 -0
- package/resources/ai/tests/tests.js +21 -0
- package/resources/ai/tests/tests.js.map +1 -0
- package/resources/ai/tests/tests.mjs +16 -0
- package/resources/ai/tests/tests.mjs.map +1 -0
- package/resources/ai/tests.d.mts +2 -0
- package/resources/ai/tests.d.mts.map +1 -0
- package/resources/ai/tests.d.ts +2 -0
- package/resources/ai/tests.d.ts.map +1 -0
- package/resources/ai/tests.js +6 -0
- package/resources/ai/tests.js.map +1 -0
- package/resources/ai/tests.mjs +3 -0
- package/resources/ai/tests.mjs.map +1 -0
- package/resources/artifact-downloads.d.mts +21 -0
- package/resources/artifact-downloads.d.mts.map +1 -0
- package/resources/artifact-downloads.d.ts +21 -0
- package/resources/artifact-downloads.d.ts.map +1 -0
- package/resources/artifact-downloads.js +26 -0
- package/resources/artifact-downloads.js.map +1 -0
- package/resources/artifact-downloads.mjs +22 -0
- package/resources/artifact-downloads.mjs.map +1 -0
- package/resources/bot-challenge.js +1 -1
- package/resources/bot-challenge.js.map +1 -1
- package/resources/bot-challenge.mjs +1 -1
- package/resources/bot-challenge.mjs.map +1 -1
- package/resources/bot-sessions.js +1 -1
- package/resources/bot-sessions.js.map +1 -1
- package/resources/bot-sessions.mjs +1 -1
- package/resources/bot-sessions.mjs.map +1 -1
- package/resources/bot-signup.js +2 -2
- package/resources/bot-signup.js.map +1 -1
- package/resources/bot-signup.mjs +2 -2
- package/resources/bot-signup.mjs.map +1 -1
- package/resources/browser-sessions/actions.d.mts +542 -0
- package/resources/browser-sessions/actions.d.mts.map +1 -0
- package/resources/browser-sessions/actions.d.ts +542 -0
- package/resources/browser-sessions/actions.d.ts.map +1 -0
- package/resources/browser-sessions/actions.js +55 -0
- package/resources/browser-sessions/actions.js.map +1 -0
- package/resources/browser-sessions/actions.mjs +51 -0
- package/resources/browser-sessions/actions.mjs.map +1 -0
- package/resources/browser-sessions/browser-sessions.d.mts +165 -0
- package/resources/browser-sessions/browser-sessions.d.mts.map +1 -0
- package/resources/browser-sessions/browser-sessions.d.ts +165 -0
- package/resources/browser-sessions/browser-sessions.d.ts.map +1 -0
- package/resources/browser-sessions/browser-sessions.js +87 -0
- package/resources/browser-sessions/browser-sessions.js.map +1 -0
- package/resources/browser-sessions/browser-sessions.mjs +82 -0
- package/resources/browser-sessions/browser-sessions.mjs.map +1 -0
- package/resources/browser-sessions/index.d.mts +3 -0
- package/resources/browser-sessions/index.d.mts.map +1 -0
- package/resources/browser-sessions/index.d.ts +3 -0
- package/resources/browser-sessions/index.d.ts.map +1 -0
- package/resources/browser-sessions/index.js +9 -0
- package/resources/browser-sessions/index.js.map +1 -0
- package/resources/browser-sessions/index.mjs +4 -0
- package/resources/browser-sessions/index.mjs.map +1 -0
- package/resources/browser-sessions.d.mts +2 -0
- package/resources/browser-sessions.d.mts.map +1 -0
- package/resources/browser-sessions.d.ts +2 -0
- package/resources/browser-sessions.d.ts.map +1 -0
- package/resources/browser-sessions.js +6 -0
- package/resources/browser-sessions.js.map +1 -0
- package/resources/browser-sessions.mjs +3 -0
- package/resources/browser-sessions.mjs.map +1 -0
- package/resources/call-control-applications.d.mts +2 -2
- package/resources/call-control-applications.d.ts +2 -2
- package/resources/calls/actions.d.mts +35 -28
- package/resources/calls/actions.d.mts.map +1 -1
- package/resources/calls/actions.d.ts +35 -28
- package/resources/calls/actions.d.ts.map +1 -1
- package/resources/conferences/actions.d.mts +3 -2
- package/resources/conferences/actions.d.mts.map +1 -1
- package/resources/conferences/actions.d.ts +3 -2
- package/resources/conferences/actions.d.ts.map +1 -1
- package/resources/email/dedicated-ips/actions.d.mts +73 -0
- package/resources/email/dedicated-ips/actions.d.mts.map +1 -0
- package/resources/email/dedicated-ips/actions.d.ts +73 -0
- package/resources/email/dedicated-ips/actions.d.ts.map +1 -0
- package/resources/email/dedicated-ips/actions.js +84 -0
- package/resources/email/dedicated-ips/actions.js.map +1 -0
- package/resources/email/dedicated-ips/actions.mjs +80 -0
- package/resources/email/dedicated-ips/actions.mjs.map +1 -0
- package/resources/email/dedicated-ips/dedicated-ips.d.mts +444 -0
- package/resources/email/dedicated-ips/dedicated-ips.d.mts.map +1 -0
- package/resources/email/dedicated-ips/dedicated-ips.d.ts +444 -0
- package/resources/email/dedicated-ips/dedicated-ips.d.ts.map +1 -0
- package/resources/email/dedicated-ips/dedicated-ips.js +142 -0
- package/resources/email/dedicated-ips/dedicated-ips.js.map +1 -0
- package/resources/email/dedicated-ips/dedicated-ips.mjs +137 -0
- package/resources/email/dedicated-ips/dedicated-ips.mjs.map +1 -0
- package/resources/email/dedicated-ips/index.d.mts +3 -0
- package/resources/email/dedicated-ips/index.d.mts.map +1 -0
- package/resources/email/dedicated-ips/index.d.ts +3 -0
- package/resources/email/dedicated-ips/index.d.ts.map +1 -0
- package/resources/email/dedicated-ips/index.js +9 -0
- package/resources/email/dedicated-ips/index.js.map +1 -0
- package/resources/email/dedicated-ips/index.mjs +4 -0
- package/resources/email/dedicated-ips/index.mjs.map +1 -0
- package/resources/email/dedicated-ips.d.mts +2 -0
- package/resources/email/dedicated-ips.d.mts.map +1 -0
- package/resources/email/dedicated-ips.d.ts +2 -0
- package/resources/email/dedicated-ips.d.ts.map +1 -0
- package/resources/email/dedicated-ips.js +6 -0
- package/resources/email/dedicated-ips.js.map +1 -0
- package/resources/email/dedicated-ips.mjs +3 -0
- package/resources/email/dedicated-ips.mjs.map +1 -0
- package/resources/email/email.d.mts +14 -0
- package/resources/email/email.d.mts.map +1 -0
- package/resources/email/email.d.ts +14 -0
- package/resources/email/email.d.ts.map +1 -0
- package/resources/email/email.js +21 -0
- package/resources/email/email.js.map +1 -0
- package/resources/email/email.mjs +16 -0
- package/resources/email/email.mjs.map +1 -0
- package/resources/email/index.d.mts +4 -0
- package/resources/email/index.d.mts.map +1 -0
- package/resources/email/index.d.ts +4 -0
- package/resources/email/index.d.ts.map +1 -0
- package/resources/email/index.js +11 -0
- package/resources/email/index.js.map +1 -0
- package/resources/email/index.mjs +5 -0
- package/resources/email/index.mjs.map +1 -0
- package/resources/email/ip-pools/index.d.mts +3 -0
- package/resources/email/ip-pools/index.d.mts.map +1 -0
- package/resources/email/ip-pools/index.d.ts +3 -0
- package/resources/email/ip-pools/index.d.ts.map +1 -0
- package/resources/email/ip-pools/index.js +9 -0
- package/resources/email/ip-pools/index.js.map +1 -0
- package/resources/email/ip-pools/index.mjs +4 -0
- package/resources/email/ip-pools/index.mjs.map +1 -0
- package/resources/email/ip-pools/ip-pools.d.mts +184 -0
- package/resources/email/ip-pools/ip-pools.d.mts.map +1 -0
- package/resources/email/ip-pools/ip-pools.d.ts +184 -0
- package/resources/email/ip-pools/ip-pools.d.ts.map +1 -0
- package/resources/email/ip-pools/ip-pools.js +102 -0
- package/resources/email/ip-pools/ip-pools.js.map +1 -0
- package/resources/email/ip-pools/ip-pools.mjs +97 -0
- package/resources/email/ip-pools/ip-pools.mjs.map +1 -0
- package/resources/email/ip-pools/ips.d.mts +83 -0
- package/resources/email/ip-pools/ips.d.mts.map +1 -0
- package/resources/email/ip-pools/ips.d.ts +83 -0
- package/resources/email/ip-pools/ips.d.ts.map +1 -0
- package/resources/email/ip-pools/ips.js +54 -0
- package/resources/email/ip-pools/ips.js.map +1 -0
- package/resources/email/ip-pools/ips.mjs +50 -0
- package/resources/email/ip-pools/ips.mjs.map +1 -0
- package/resources/email/ip-pools.d.mts +2 -0
- package/resources/email/ip-pools.d.mts.map +1 -0
- package/resources/email/ip-pools.d.ts +2 -0
- package/resources/email/ip-pools.d.ts.map +1 -0
- package/resources/email/ip-pools.js +6 -0
- package/resources/email/ip-pools.js.map +1 -0
- package/resources/email/ip-pools.mjs +3 -0
- package/resources/email/ip-pools.mjs.map +1 -0
- package/resources/email.d.mts +2 -0
- package/resources/email.d.mts.map +1 -0
- package/resources/email.d.ts +2 -0
- package/resources/email.d.ts.map +1 -0
- package/resources/email.js +6 -0
- package/resources/email.js.map +1 -0
- package/resources/email.mjs +3 -0
- package/resources/email.mjs.map +1 -0
- package/resources/fax-applications.d.mts +6 -6
- package/resources/fax-applications.d.ts +6 -6
- package/resources/fqdn-connections/fqdn-connections.d.mts +2 -2
- package/resources/fqdn-connections/fqdn-connections.d.ts +2 -2
- package/resources/index.d.mts +8 -2
- package/resources/index.d.mts.map +1 -1
- package/resources/index.d.ts +8 -2
- package/resources/index.d.ts.map +1 -1
- package/resources/index.js +16 -4
- package/resources/index.js.map +1 -1
- package/resources/index.mjs +6 -0
- package/resources/index.mjs.map +1 -1
- package/resources/ip-connections.d.mts +4 -4
- package/resources/ip-connections.d.ts +4 -4
- package/resources/messaging-profiles/index.d.mts +1 -1
- package/resources/messaging-profiles/index.d.mts.map +1 -1
- package/resources/messaging-profiles/index.d.ts +1 -1
- package/resources/messaging-profiles/index.d.ts.map +1 -1
- package/resources/messaging-profiles/index.js.map +1 -1
- package/resources/messaging-profiles/index.mjs.map +1 -1
- package/resources/messaging-profiles/messaging-profiles.d.mts +26 -1
- package/resources/messaging-profiles/messaging-profiles.d.mts.map +1 -1
- package/resources/messaging-profiles/messaging-profiles.d.ts +26 -1
- package/resources/messaging-profiles/messaging-profiles.d.ts.map +1 -1
- package/resources/messaging-profiles/messaging-profiles.js.map +1 -1
- package/resources/messaging-profiles/messaging-profiles.mjs.map +1 -1
- package/resources/network-routes.d.mts +257 -0
- package/resources/network-routes.d.mts.map +1 -0
- package/resources/network-routes.d.ts +257 -0
- package/resources/network-routes.d.ts.map +1 -0
- package/resources/network-routes.js +83 -0
- package/resources/network-routes.js.map +1 -0
- package/resources/network-routes.mjs +79 -0
- package/resources/network-routes.mjs.map +1 -0
- package/resources/pay-connectors.d.mts +378 -0
- package/resources/pay-connectors.d.mts.map +1 -0
- package/resources/pay-connectors.d.ts +378 -0
- package/resources/pay-connectors.d.ts.map +1 -0
- package/resources/pay-connectors.js +116 -0
- package/resources/pay-connectors.js.map +1 -0
- package/resources/pay-connectors.mjs +112 -0
- package/resources/pay-connectors.mjs.map +1 -0
- package/resources/public-internet-gateways.d.mts +0 -8
- package/resources/public-internet-gateways.d.mts.map +1 -1
- package/resources/public-internet-gateways.d.ts +0 -8
- package/resources/public-internet-gateways.d.ts.map +1 -1
- package/resources/spend-limits.d.mts +150 -32
- package/resources/spend-limits.d.mts.map +1 -1
- package/resources/spend-limits.d.ts +150 -32
- package/resources/spend-limits.d.ts.map +1 -1
- package/resources/spend-limits.js +26 -7
- package/resources/spend-limits.js.map +1 -1
- package/resources/spend-limits.mjs +26 -7
- package/resources/spend-limits.mjs.map +1 -1
- package/resources/telephony-credentials.d.mts +48 -2
- package/resources/telephony-credentials.d.mts.map +1 -1
- package/resources/telephony-credentials.d.ts +48 -2
- package/resources/telephony-credentials.d.ts.map +1 -1
- package/resources/telephony-credentials.js +46 -2
- package/resources/telephony-credentials.js.map +1 -1
- package/resources/telephony-credentials.mjs +46 -2
- package/resources/telephony-credentials.mjs.map +1 -1
- package/resources/texml-applications.d.mts +6 -6
- package/resources/texml-applications.d.ts +6 -6
- package/resources/text-to-speech/text-to-speech.d.mts +1 -6
- package/resources/text-to-speech/text-to-speech.d.mts.map +1 -1
- package/resources/text-to-speech/text-to-speech.d.ts +1 -6
- package/resources/text-to-speech/text-to-speech.d.ts.map +1 -1
- package/resources/text-to-speech/text-to-speech.js +1 -2
- package/resources/text-to-speech/text-to-speech.js.map +1 -1
- package/resources/text-to-speech/text-to-speech.mjs +1 -2
- package/resources/text-to-speech/text-to-speech.mjs.map +1 -1
- package/resources/tunnels/actions.d.mts +29 -0
- package/resources/tunnels/actions.d.mts.map +1 -0
- package/resources/tunnels/actions.d.ts +29 -0
- package/resources/tunnels/actions.d.ts.map +1 -0
- package/resources/tunnels/actions.js +28 -0
- package/resources/tunnels/actions.js.map +1 -0
- package/resources/tunnels/actions.mjs +24 -0
- package/resources/tunnels/actions.mjs.map +1 -0
- package/resources/tunnels/index.d.mts +3 -0
- package/resources/tunnels/index.d.mts.map +1 -0
- package/resources/tunnels/index.d.ts +3 -0
- package/resources/tunnels/index.d.ts.map +1 -0
- package/resources/tunnels/index.js +9 -0
- package/resources/tunnels/index.js.map +1 -0
- package/resources/tunnels/index.mjs +4 -0
- package/resources/tunnels/index.mjs.map +1 -0
- package/resources/tunnels/tunnels.d.mts +194 -0
- package/resources/tunnels/tunnels.d.mts.map +1 -0
- package/resources/tunnels/tunnels.d.ts +194 -0
- package/resources/tunnels/tunnels.d.ts.map +1 -0
- package/resources/tunnels/tunnels.js +82 -0
- package/resources/tunnels/tunnels.js.map +1 -0
- package/resources/tunnels/tunnels.mjs +77 -0
- package/resources/tunnels/tunnels.mjs.map +1 -0
- package/resources/tunnels.d.mts +2 -0
- package/resources/tunnels.d.mts.map +1 -0
- package/resources/tunnels.d.ts +2 -0
- package/resources/tunnels.d.ts.map +1 -0
- package/resources/tunnels.js +6 -0
- package/resources/tunnels.js.map +1 -0
- package/resources/tunnels.mjs +3 -0
- package/resources/tunnels.mjs.map +1 -0
- package/resources/voice-clones.d.mts +54 -8
- package/resources/voice-clones.d.mts.map +1 -1
- package/resources/voice-clones.d.ts +54 -8
- package/resources/voice-clones.d.ts.map +1 -1
- package/resources/voice-clones.js +6 -5
- package/resources/voice-clones.js.map +1 -1
- package/resources/voice-clones.mjs +6 -5
- package/resources/voice-clones.mjs.map +1 -1
- package/resources/whatsapp/hosted-signups.d.mts +2 -1
- package/resources/whatsapp/hosted-signups.d.mts.map +1 -1
- package/resources/whatsapp/hosted-signups.d.ts +2 -1
- package/resources/whatsapp/hosted-signups.d.ts.map +1 -1
- package/resources/wireguard-interfaces.d.mts +0 -8
- package/resources/wireguard-interfaces.d.mts.map +1 -1
- package/resources/wireguard-interfaces.d.ts +0 -8
- package/resources/wireguard-interfaces.d.ts.map +1 -1
- package/src/client.ts +130 -0
- package/src/lib/login-token.ts +219 -0
- package/src/resources/addresses/actions.ts +23 -4
- package/src/resources/ai/ai.ts +6 -0
- package/src/resources/ai/assistants/assistants.ts +31 -24
- package/src/resources/ai/avatars.ts +9 -9
- package/src/resources/ai/index.ts +1 -0
- package/src/resources/ai/tests/index.ts +5 -0
- package/src/resources/ai/tests/schedules/index.ts +4 -0
- package/src/resources/ai/tests/schedules/schedules.ts +15 -0
- package/src/resources/ai/tests/schedules/v1/cron-jobs.ts +248 -0
- package/src/resources/ai/tests/schedules/v1/index.ts +12 -0
- package/src/resources/ai/tests/schedules/v1/v1.ts +31 -0
- package/src/resources/ai/tests/schedules/v1.ts +3 -0
- package/src/resources/ai/tests/schedules.ts +3 -0
- package/src/resources/ai/tests/test-framework/index.ts +4 -0
- package/src/resources/ai/tests/test-framework/test-framework.ts +15 -0
- package/src/resources/ai/tests/test-framework/v1/aiagents.ts +304 -0
- package/src/resources/ai/tests/test-framework/v1/index.ts +54 -0
- package/src/resources/ai/tests/test-framework/v1/metrics.ts +491 -0
- package/src/resources/ai/tests/test-framework/v1/results.ts +304 -0
- package/src/resources/ai/tests/test-framework/v1/scenarios.ts +774 -0
- package/src/resources/ai/tests/test-framework/v1/v1.ts +214 -0
- package/src/resources/ai/tests/test-framework/v1.ts +3 -0
- package/src/resources/ai/tests/test-framework.ts +3 -0
- package/src/resources/ai/tests/tests.ts +21 -0
- package/src/resources/ai/tests.ts +3 -0
- package/src/resources/artifact-downloads.ts +39 -0
- package/src/resources/bot-challenge.ts +1 -1
- package/src/resources/bot-sessions.ts +1 -1
- package/src/resources/bot-signup.ts +2 -2
- package/src/resources/browser-sessions/actions.ts +778 -0
- package/src/resources/browser-sessions/browser-sessions.ts +278 -0
- package/src/resources/browser-sessions/index.ts +31 -0
- package/src/resources/browser-sessions.ts +3 -0
- package/src/resources/call-control-applications.ts +2 -2
- package/src/resources/calls/actions.ts +38 -27
- package/src/resources/conferences/actions.ts +3 -2
- package/src/resources/email/dedicated-ips/actions.ts +87 -0
- package/src/resources/email/dedicated-ips/dedicated-ips.ts +563 -0
- package/src/resources/email/dedicated-ips/index.ts +13 -0
- package/src/resources/email/dedicated-ips.ts +3 -0
- package/src/resources/email/email.ts +55 -0
- package/src/resources/email/index.ts +22 -0
- package/src/resources/email/ip-pools/index.ts +12 -0
- package/src/resources/email/ip-pools/ip-pools.ts +247 -0
- package/src/resources/email/ip-pools/ips.ts +112 -0
- package/src/resources/email/ip-pools.ts +3 -0
- package/src/resources/email.ts +3 -0
- package/src/resources/fax-applications.ts +6 -6
- package/src/resources/fqdn-connections/fqdn-connections.ts +2 -2
- package/src/resources/index.ts +46 -0
- package/src/resources/ip-connections.ts +4 -4
- package/src/resources/messaging-profiles/index.ts +1 -0
- package/src/resources/messaging-profiles/messaging-profiles.ts +31 -0
- package/src/resources/network-routes.ts +332 -0
- package/src/resources/pay-connectors.ts +482 -0
- package/src/resources/public-internet-gateways.ts +0 -10
- package/src/resources/spend-limits.ts +179 -36
- package/src/resources/telephony-credentials.ts +75 -2
- package/src/resources/texml-applications.ts +6 -6
- package/src/resources/text-to-speech/text-to-speech.ts +1 -7
- package/src/resources/tunnels/actions.ts +36 -0
- package/src/resources/tunnels/index.ts +13 -0
- package/src/resources/tunnels/tunnels.ts +260 -0
- package/src/resources/tunnels.ts +3 -0
- package/src/resources/voice-clones.ts +88 -8
- package/src/resources/whatsapp/hosted-signups.ts +2 -1
- package/src/resources/wireguard-interfaces.ts +0 -10
- package/src/version.ts +1 -1
- package/version.d.mts +1 -1
- package/version.d.mts.map +1 -1
- package/version.d.ts +1 -1
- package/version.d.ts.map +1 -1
- package/version.js +1 -1
- package/version.js.map +1 -1
- package/version.mjs +1 -1
- package/version.mjs.map +1 -1
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WebRTC login tokens minted locally, with no request to Telnyx.
|
|
3
|
+
*
|
|
4
|
+
* The token has the same shape as the one
|
|
5
|
+
* `POST /v2/telephony_credentials/{id}/token` returns, so it is used the same
|
|
6
|
+
* way: pass it to the WebRTC SDK as `login_token`. Telnyx verifies it on login.
|
|
7
|
+
* It is the same computation as `TelephonyCredential#to_jwt` in telnyx-ruby.
|
|
8
|
+
*
|
|
9
|
+
* The signing material comes from the credential: `token_material` is in the
|
|
10
|
+
* response of `POST /v2/telephony_credentials` and of
|
|
11
|
+
* `GET /v2/telephony_credentials/{id}/token_material`. It is as sensitive as
|
|
12
|
+
* the SIP password, so keep it on the server; never ship it to a browser.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* const { data: credential } = await client.telephonyCredentials.create({
|
|
16
|
+
* connection_id: '123',
|
|
17
|
+
* include: 'token_material', // the API returns the material only when asked
|
|
18
|
+
* });
|
|
19
|
+
* const loginToken = await client.telephonyCredentials.toJwt(credential); // 1 hour
|
|
20
|
+
* const shortLived = await client.telephonyCredentials.toJwt(credential, { ttl: 600 });
|
|
21
|
+
*
|
|
22
|
+
* To mint later with no request at all, store these with the user the credential
|
|
23
|
+
* belongs to, server side: `id`, `user_id`, `sip_username`, `expires_at` and
|
|
24
|
+
* `token_material`. The token is built from all of them.
|
|
25
|
+
*
|
|
26
|
+
* @example From stored values, without a request at all
|
|
27
|
+
* import { createLoginToken } from 'telnyx/lib/login-token';
|
|
28
|
+
* const loginToken = await createLoginToken({
|
|
29
|
+
* id: '...', user_id: '...', sip_username: 'gencred...', expires_at: '2027-01-01T00:00:00Z',
|
|
30
|
+
* token_material: { kid: 'v1', tel_token: '...', signing_secret: '...' },
|
|
31
|
+
* });
|
|
32
|
+
*/
|
|
33
|
+
|
|
34
|
+
import { TelnyxError } from '../core/error';
|
|
35
|
+
import { fromBase64, toBase64 } from '../internal/utils/base64';
|
|
36
|
+
import { decodeUTF8, encodeUTF8 } from '../internal/utils/bytes';
|
|
37
|
+
|
|
38
|
+
/** Token lifetime when `ttl` is not given: one hour. */
|
|
39
|
+
export const LOGIN_TOKEN_DEFAULT_TTL = 3600;
|
|
40
|
+
/** Longest lifetime a login token can have: one day, the same as API-minted tokens. */
|
|
41
|
+
export const LOGIN_TOKEN_MAX_TTL = 86400;
|
|
42
|
+
/** `cty` header of a locally minted token; voice-sdk-proxy selects the verification path by it. */
|
|
43
|
+
export const LOGIN_TOKEN_CONTENT_TYPE = 'telnyx-webrtc;v=1';
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* What the API returns as `token_material`. `signing_secret` is base64url
|
|
47
|
+
* (unpadded) bytes of the HS256 key; `tel_token` goes into the token as is.
|
|
48
|
+
*/
|
|
49
|
+
export interface TokenMaterial {
|
|
50
|
+
/** Which key the material was derived with (`v1` today). Goes in the JWT header. */
|
|
51
|
+
kid: string;
|
|
52
|
+
/** The SIP credential encrypted for the gateway, the same value `/token` puts in the `tel_token` claim. */
|
|
53
|
+
tel_token: string;
|
|
54
|
+
/** The HS256 key the token is signed with, base64url. */
|
|
55
|
+
signing_secret: string;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/** The fields of a telephony credential that a login token is built from. */
|
|
59
|
+
export interface LoginTokenCredential {
|
|
60
|
+
/** The telephony credential `id`. */
|
|
61
|
+
id?: string | undefined;
|
|
62
|
+
/** The credential's `user_id`. */
|
|
63
|
+
user_id?: string | undefined;
|
|
64
|
+
/** The credential's `sip_username`; the token's `identity`. */
|
|
65
|
+
sip_username?: string | undefined;
|
|
66
|
+
/** The credential's `expires_at`, as the API returns it, or null. */
|
|
67
|
+
expires_at?: string | null | undefined;
|
|
68
|
+
/** `kid`, `tel_token`, `signing_secret`; present on a credential from `create`. */
|
|
69
|
+
token_material?: TokenMaterial | undefined;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export interface LoginTokenOptions {
|
|
73
|
+
/** Token lifetime in seconds, 1..86400. Default one hour. */
|
|
74
|
+
ttl?: number | undefined;
|
|
75
|
+
/** Signing material to use instead of `credential.token_material`. */
|
|
76
|
+
tokenMaterial?: TokenMaterial | undefined;
|
|
77
|
+
/** The token's issue time; defaults to now. */
|
|
78
|
+
now?: Date | number | undefined;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export class TelnyxLoginTokenError extends TelnyxError {
|
|
82
|
+
constructor(message: string) {
|
|
83
|
+
super(message);
|
|
84
|
+
this.name = 'TelnyxLoginTokenError';
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Mints a login token for `credential`, valid from `now` for `ttl` seconds.
|
|
90
|
+
* Pure computation: HMAC-SHA256 over the token with `token_material.signing_secret`.
|
|
91
|
+
*/
|
|
92
|
+
export async function createLoginToken(
|
|
93
|
+
credential: LoginTokenCredential,
|
|
94
|
+
options: LoginTokenOptions = {},
|
|
95
|
+
): Promise<string> {
|
|
96
|
+
const credentialId = required(credential.id, 'id');
|
|
97
|
+
const userId = required(credential.user_id, 'user_id');
|
|
98
|
+
const identity = required(credential.sip_username, 'sip_username');
|
|
99
|
+
const material = normalizeMaterial(options.tokenMaterial ?? credential.token_material);
|
|
100
|
+
const ttl = clampTtl(options.ttl);
|
|
101
|
+
const now = options.now === undefined ? Date.now() : Number(options.now);
|
|
102
|
+
const iat = Math.floor(now / 1000);
|
|
103
|
+
|
|
104
|
+
// Same field order as the Ruby SDK, so the two produce the same bytes.
|
|
105
|
+
const header = { alg: 'HS256', typ: 'JWT', cty: LOGIN_TOKEN_CONTENT_TYPE, kid: material.kid };
|
|
106
|
+
const payload = {
|
|
107
|
+
sub: credentialId,
|
|
108
|
+
user_id: userId,
|
|
109
|
+
identity,
|
|
110
|
+
cred_exp: credential.expires_at ?? null,
|
|
111
|
+
tel_token: material.tel_token,
|
|
112
|
+
iat,
|
|
113
|
+
nbf: iat,
|
|
114
|
+
exp: iat + ttl,
|
|
115
|
+
jti: `${credentialId}-${iat}`,
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
const signingInput = `${base64url(JSON.stringify(header))}.${base64url(JSON.stringify(payload))}`;
|
|
119
|
+
return `${signingInput}.${base64url(await sign(signingInput, material.signing_secret))}`;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Checks a token minted by `createLoginToken` against `signingSecret` and
|
|
124
|
+
* returns its claims. For tests and debugging: Telnyx does the real
|
|
125
|
+
* verification on login.
|
|
126
|
+
*/
|
|
127
|
+
export async function decodeLoginToken(jwt: string, signingSecret: string): Promise<Record<string, unknown>> {
|
|
128
|
+
const [head, body, sig, ...rest] = String(jwt).split('.');
|
|
129
|
+
if (!head || !body || sig === undefined || rest.length) {
|
|
130
|
+
throw new TelnyxLoginTokenError('not a JWT');
|
|
131
|
+
}
|
|
132
|
+
const expected = await sign(`${head}.${body}`, signingSecret);
|
|
133
|
+
const given = fromBase64url(sig);
|
|
134
|
+
if (!bytesEqual(given, expected)) {
|
|
135
|
+
throw new TelnyxLoginTokenError('Signature is invalid and does not match the payload');
|
|
136
|
+
}
|
|
137
|
+
return JSON.parse(decodeUTF8(fromBase64url(body))) as Record<string, unknown>;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
function required(value: string | null | undefined, name: string): string {
|
|
141
|
+
if (value === undefined || value === null || String(value) === '') {
|
|
142
|
+
throw new TelnyxLoginTokenError(`${name} is required to mint a token`);
|
|
143
|
+
}
|
|
144
|
+
return String(value);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
function normalizeMaterial(material: TokenMaterial | null | undefined): TokenMaterial {
|
|
148
|
+
if (!material || typeof material !== 'object') {
|
|
149
|
+
throw new TelnyxLoginTokenError('token_material is required to mint a token');
|
|
150
|
+
}
|
|
151
|
+
const out = {} as Record<keyof TokenMaterial, string>;
|
|
152
|
+
for (const field of ['kid', 'tel_token', 'signing_secret'] as const) {
|
|
153
|
+
const value = material[field];
|
|
154
|
+
if (value === undefined || value === null || String(value) === '') {
|
|
155
|
+
throw new TelnyxLoginTokenError(`token_material.${field} is missing`);
|
|
156
|
+
}
|
|
157
|
+
out[field] = String(value);
|
|
158
|
+
}
|
|
159
|
+
return out;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
function clampTtl(ttl: number | undefined): number {
|
|
163
|
+
const n = ttl === undefined ? LOGIN_TOKEN_DEFAULT_TTL : Math.trunc(Number(ttl));
|
|
164
|
+
if (!Number.isFinite(n)) return LOGIN_TOKEN_DEFAULT_TTL;
|
|
165
|
+
return Math.min(LOGIN_TOKEN_MAX_TTL, Math.max(1, n));
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
function base64url(data: string | Uint8Array): string {
|
|
169
|
+
// Base64 pads with at most two '=': a bounded match keeps this linear on any input.
|
|
170
|
+
return toBase64(data)
|
|
171
|
+
.replace(/\+/g, '-')
|
|
172
|
+
.replace(/\//g, '_')
|
|
173
|
+
.replace(/={1,2}$/, '');
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
function fromBase64url(str: string): Uint8Array {
|
|
177
|
+
const b64 = str.replace(/-/g, '+').replace(/_/g, '/');
|
|
178
|
+
return fromBase64(b64 + '='.repeat((4 - (b64.length % 4)) % 4));
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
function bytesEqual(a: Uint8Array, b: Uint8Array): boolean {
|
|
182
|
+
if (a.length !== b.length) return false;
|
|
183
|
+
let diff = 0;
|
|
184
|
+
for (let i = 0; i < a.length; i++) diff |= a[i]! ^ b[i]!;
|
|
185
|
+
return diff === 0;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
// HMAC-SHA256 through WebCrypto, which Node, Deno, Bun, browsers and edge runtimes all provide.
|
|
189
|
+
interface SubtleCryptoLike {
|
|
190
|
+
importKey(
|
|
191
|
+
format: string,
|
|
192
|
+
keyData: Uint8Array,
|
|
193
|
+
algorithm: { name: string; hash: string },
|
|
194
|
+
extractable: boolean,
|
|
195
|
+
keyUsages: string[],
|
|
196
|
+
): Promise<unknown>;
|
|
197
|
+
sign(algorithm: string, key: unknown, data: Uint8Array): Promise<ArrayBuffer>;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
async function getSubtle(): Promise<SubtleCryptoLike> {
|
|
201
|
+
if (typeof globalThis.crypto !== 'undefined' && globalThis.crypto.subtle) {
|
|
202
|
+
return globalThis.crypto.subtle as unknown as SubtleCryptoLike;
|
|
203
|
+
}
|
|
204
|
+
// Node.js < 19 may need webcrypto from crypto module
|
|
205
|
+
const nodeCrypto = await import('crypto');
|
|
206
|
+
return (nodeCrypto.webcrypto as unknown as { subtle: SubtleCryptoLike }).subtle;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
async function sign(signingInput: string, signingSecret: string): Promise<Uint8Array> {
|
|
210
|
+
const subtle = await getSubtle();
|
|
211
|
+
const key = await subtle.importKey(
|
|
212
|
+
'raw',
|
|
213
|
+
fromBase64url(signingSecret),
|
|
214
|
+
{ name: 'HMAC', hash: 'SHA-256' },
|
|
215
|
+
false,
|
|
216
|
+
['sign'],
|
|
217
|
+
);
|
|
218
|
+
return new Uint8Array(await subtle.sign('HMAC', key, encodeUTF8(signingInput)));
|
|
219
|
+
}
|
|
@@ -78,10 +78,7 @@ export interface ActionValidateResponse {
|
|
|
78
78
|
|
|
79
79
|
export namespace ActionValidateResponse {
|
|
80
80
|
export interface Data {
|
|
81
|
-
|
|
82
|
-
* Indicates whether an address is valid or invalid.
|
|
83
|
-
*/
|
|
84
|
-
result: 'valid' | 'invalid';
|
|
81
|
+
result: 'valid';
|
|
85
82
|
|
|
86
83
|
/**
|
|
87
84
|
* Provides normalized address when available.
|
|
@@ -107,6 +104,12 @@ export namespace ActionValidateResponse {
|
|
|
107
104
|
*/
|
|
108
105
|
administrative_area?: string;
|
|
109
106
|
|
|
107
|
+
/**
|
|
108
|
+
* The borough of the address. This field is not used for addresses in the US but
|
|
109
|
+
* is used for some international addresses.
|
|
110
|
+
*/
|
|
111
|
+
borough?: string;
|
|
112
|
+
|
|
110
113
|
/**
|
|
111
114
|
* The two-character (ISO 3166-1 alpha-2) country code of the address.
|
|
112
115
|
*/
|
|
@@ -118,12 +121,28 @@ export namespace ActionValidateResponse {
|
|
|
118
121
|
*/
|
|
119
122
|
extended_address?: string;
|
|
120
123
|
|
|
124
|
+
/**
|
|
125
|
+
* Latitude of the suggested address, when available.
|
|
126
|
+
*/
|
|
127
|
+
latitude?: number | null;
|
|
128
|
+
|
|
121
129
|
/**
|
|
122
130
|
* The locality of the address. For US addresses, this corresponds to the city of
|
|
123
131
|
* the address.
|
|
124
132
|
*/
|
|
125
133
|
locality?: string;
|
|
126
134
|
|
|
135
|
+
/**
|
|
136
|
+
* Longitude of the suggested address, when available.
|
|
137
|
+
*/
|
|
138
|
+
longitude?: number | null;
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* The neighborhood of the address. This field is not used for addresses in the US
|
|
142
|
+
* but is used for some international addresses.
|
|
143
|
+
*/
|
|
144
|
+
neighborhood?: string;
|
|
145
|
+
|
|
127
146
|
/**
|
|
128
147
|
* The postal code of the address.
|
|
129
148
|
*/
|
package/src/resources/ai/ai.ts
CHANGED
|
@@ -193,6 +193,8 @@ import {
|
|
|
193
193
|
} from './missions/missions';
|
|
194
194
|
import * as OpenAIAPI from './openai/openai';
|
|
195
195
|
import { OpenAI, OpenAICreateResponseParams, OpenAICreateResponseResponse } from './openai/openai';
|
|
196
|
+
import * as TestsAPI from './tests/tests';
|
|
197
|
+
import { Tests } from './tests/tests';
|
|
196
198
|
import * as TypesafeAPI from './typesafe/typesafe';
|
|
197
199
|
import { Typesafe } from './typesafe/typesafe';
|
|
198
200
|
import { APIPromise } from '../../core/api-promise';
|
|
@@ -219,6 +221,7 @@ export class AI extends APIResource {
|
|
|
219
221
|
typesafe: TypesafeAPI.Typesafe = new TypesafeAPI.Typesafe(this._client);
|
|
220
222
|
memory: MemoryAPI.Memory = new MemoryAPI.Memory(this._client);
|
|
221
223
|
avatars: AvatarsAPI.Avatars = new AvatarsAPI.Avatars(this._client);
|
|
224
|
+
tests: TestsAPI.Tests = new TestsAPI.Tests(this._client);
|
|
222
225
|
|
|
223
226
|
/**
|
|
224
227
|
* Generate a summary of a file's contents.
|
|
@@ -674,6 +677,7 @@ AI.Knowledge = Knowledge;
|
|
|
674
677
|
AI.Typesafe = Typesafe;
|
|
675
678
|
AI.Memory = Memory;
|
|
676
679
|
AI.Avatars = Avatars;
|
|
680
|
+
AI.Tests = Tests;
|
|
677
681
|
|
|
678
682
|
export declare namespace AI {
|
|
679
683
|
export {
|
|
@@ -887,4 +891,6 @@ export declare namespace AI {
|
|
|
887
891
|
type AvatarCreateParams as AvatarCreateParams,
|
|
888
892
|
type AvatarUpdateParams as AvatarUpdateParams,
|
|
889
893
|
};
|
|
894
|
+
|
|
895
|
+
export { Tests as Tests };
|
|
890
896
|
}
|
|
@@ -3804,9 +3804,10 @@ export interface TranscriptionSettings {
|
|
|
3804
3804
|
* auto-detect; set `language` from Speechmatics' Realtime language list
|
|
3805
3805
|
* (defaults to `en`).
|
|
3806
3806
|
* - `azure/fast` is a multilingual Azure transcription model.
|
|
3807
|
-
* - `assemblyai/universal-3-
|
|
3808
|
-
* configurable turn detection. The legacy
|
|
3809
|
-
*
|
|
3807
|
+
* - `assemblyai/universal-3-6-pro` (AssemblyAI Universal-3.6 Pro) is a
|
|
3808
|
+
* multilingual streaming model with configurable turn detection. The legacy
|
|
3809
|
+
* aliases `assemblyai/universal-3-5-pro` and `assemblyai/universal-streaming`
|
|
3810
|
+
* are still accepted and run the same model.
|
|
3810
3811
|
* - `xai/grok-stt` is a multilingual Grok STT model.
|
|
3811
3812
|
* - `soniox/stt-rt-v4` and `soniox/stt-rt-v5` are multilingual streaming models
|
|
3812
3813
|
* with automatic language detection, configurable endpointing, term biasing
|
|
@@ -3829,6 +3830,7 @@ export interface TranscriptionSettings {
|
|
|
3829
3830
|
| 'speechmatics/standard'
|
|
3830
3831
|
| 'speechmatics/linden-1'
|
|
3831
3832
|
| 'azure/fast'
|
|
3833
|
+
| 'assemblyai/universal-3-6-pro'
|
|
3832
3834
|
| 'assemblyai/universal-3-5-pro'
|
|
3833
3835
|
| 'assemblyai/universal-streaming'
|
|
3834
3836
|
| 'xai/grok-stt'
|
|
@@ -3861,11 +3863,11 @@ export namespace TranscriptionSettings {
|
|
|
3861
3863
|
/**
|
|
3862
3864
|
* The language booster's model. It must be the same kind of model as
|
|
3863
3865
|
* `transcription.model`: both streaming (`deepgram/flux`, `deepgram/nova-3`,
|
|
3864
|
-
* `deepgram/nova-2`, `assemblyai/universal-3-
|
|
3865
|
-
* `assemblyai/universal-
|
|
3866
|
-
* `soniox/stt-rt-v5`, `humain/realtime`,
|
|
3867
|
-
* (`azure/fast`, `nvidia/parakeet-v3`,
|
|
3868
|
-
* `cohere/ar-stt`, `distil-whisper/distil-large-v2`,
|
|
3866
|
+
* `deepgram/nova-2`, `assemblyai/universal-3-6-pro` or its legacy aliases
|
|
3867
|
+
* `assemblyai/universal-3-5-pro` and `assemblyai/universal-streaming`,
|
|
3868
|
+
* `xai/grok-stt`, `soniox/stt-rt-v4`, `soniox/stt-rt-v5`, `humain/realtime`,
|
|
3869
|
+
* `reson8/turns`) or both non-streaming (`azure/fast`, `nvidia/parakeet-v3`,
|
|
3870
|
+
* `omi-health/omi-med-stt-v1`, `cohere/ar-stt`, `distil-whisper/distil-large-v2`,
|
|
3869
3871
|
* `openai/whisper-large-v3-turbo`, `telnyx/basira`). It can be the same model as
|
|
3870
3872
|
* `transcription.model` on a different `language`.
|
|
3871
3873
|
*/
|
|
@@ -3874,6 +3876,7 @@ export namespace TranscriptionSettings {
|
|
|
3874
3876
|
| 'deepgram/nova-3'
|
|
3875
3877
|
| 'deepgram/nova-2'
|
|
3876
3878
|
| 'azure/fast'
|
|
3879
|
+
| 'assemblyai/universal-3-6-pro'
|
|
3877
3880
|
| 'assemblyai/universal-3-5-pro'
|
|
3878
3881
|
| 'assemblyai/universal-streaming'
|
|
3879
3882
|
| 'xai/grok-stt'
|
|
@@ -3936,14 +3939,16 @@ export namespace TranscriptionSettings {
|
|
|
3936
3939
|
/**
|
|
3937
3940
|
* The fallback model. It must be a streaming model other than
|
|
3938
3941
|
* `transcription.model` and the other fallbacks: `deepgram/flux`,
|
|
3939
|
-
* `deepgram/nova-3`, `deepgram/nova-2`, `assemblyai/universal-3-
|
|
3940
|
-
* legacy
|
|
3941
|
-
* `
|
|
3942
|
+
* `deepgram/nova-3`, `deepgram/nova-2`, `assemblyai/universal-3-6-pro` (or its
|
|
3943
|
+
* legacy aliases `assemblyai/universal-3-5-pro` and
|
|
3944
|
+
* `assemblyai/universal-streaming`), `xai/grok-stt`, `soniox/stt-rt-v4`,
|
|
3945
|
+
* `soniox/stt-rt-v5`, `humain/realtime`, or `reson8/turns`.
|
|
3942
3946
|
*/
|
|
3943
3947
|
model:
|
|
3944
3948
|
| 'deepgram/flux'
|
|
3945
3949
|
| 'deepgram/nova-3'
|
|
3946
3950
|
| 'deepgram/nova-2'
|
|
3951
|
+
| 'assemblyai/universal-3-6-pro'
|
|
3947
3952
|
| 'assemblyai/universal-3-5-pro'
|
|
3948
3953
|
| 'assemblyai/universal-streaming'
|
|
3949
3954
|
| 'xai/grok-stt'
|
|
@@ -4026,9 +4031,9 @@ export interface TranscriptionSettingsConfig {
|
|
|
4026
4031
|
* transcription, used by Deepgram, Reson8, Speechmatics Linden 1 and AssemblyAI
|
|
4027
4032
|
* models. Helps improve accuracy for domain-specific terminology, proper nouns, or
|
|
4028
4033
|
* uncommon words. At most 1000 characters in total. For
|
|
4029
|
-
* assemblyai/universal-3-
|
|
4030
|
-
* assemblyai/universal-streaming), also at most
|
|
4031
|
-
* each. This field may be templated with
|
|
4034
|
+
* assemblyai/universal-3-6-pro (and its legacy aliases
|
|
4035
|
+
* assemblyai/universal-3-5-pro and assemblyai/universal-streaming), also at most
|
|
4036
|
+
* 100 terms of up to 50 characters each. This field may be templated with
|
|
4032
4037
|
* [dynamic variables](https://developers.telnyx.com/docs/inference/ai-assistants/dynamic-variables)
|
|
4033
4038
|
* using mustache syntax (e.g. `Telnyx,{{customer_name}},VoIP`). Variables are
|
|
4034
4039
|
* resolved at call time before the value is sent to the speech-to-text engine.
|
|
@@ -4050,26 +4055,28 @@ export interface TranscriptionSettingsConfig {
|
|
|
4050
4055
|
max_endpoint_delay_ms?: number;
|
|
4051
4056
|
|
|
4052
4057
|
/**
|
|
4053
|
-
* Available only for assemblyai/universal-3-
|
|
4054
|
-
* assemblyai/universal-streaming). Maximum
|
|
4055
|
-
* before forcing an end of turn.
|
|
4058
|
+
* Available only for assemblyai/universal-3-6-pro (and its legacy aliases
|
|
4059
|
+
* assemblyai/universal-3-5-pro and assemblyai/universal-streaming). Maximum
|
|
4060
|
+
* duration of silence in milliseconds before forcing an end of turn.
|
|
4056
4061
|
*/
|
|
4057
4062
|
max_turn_silence?: number;
|
|
4058
4063
|
|
|
4059
4064
|
/**
|
|
4060
|
-
* Available only for assemblyai/universal-3-
|
|
4061
|
-
* assemblyai/universal-streaming). Minimum
|
|
4062
|
-
* before a turn can end. Must be less than or
|
|
4065
|
+
* Available only for assemblyai/universal-3-6-pro (and its legacy aliases
|
|
4066
|
+
* assemblyai/universal-3-5-pro and assemblyai/universal-streaming). Minimum
|
|
4067
|
+
* duration of silence in milliseconds before a turn can end. Must be less than or
|
|
4068
|
+
* equal to max_turn_silence.
|
|
4063
4069
|
*/
|
|
4064
4070
|
min_turn_silence?: number;
|
|
4065
4071
|
|
|
4066
4072
|
numerals?: boolean;
|
|
4067
4073
|
|
|
4068
4074
|
/**
|
|
4069
|
-
* Available only for assemblyai/universal-3-
|
|
4070
|
-
* assemblyai/universal-streaming). Context about
|
|
4071
|
-
* terms) to improve transcription; describe the
|
|
4072
|
-
* Leave empty unless needed. At most 1750
|
|
4075
|
+
* Available only for assemblyai/universal-3-6-pro (and its legacy aliases
|
|
4076
|
+
* assemblyai/universal-3-5-pro and assemblyai/universal-streaming). Context about
|
|
4077
|
+
* the conversation (domain, names, terms) to improve transcription; describe the
|
|
4078
|
+
* content, do not give instructions. Leave empty unless needed. At most 1750
|
|
4079
|
+
* characters.
|
|
4073
4080
|
*/
|
|
4074
4081
|
prompt?: string;
|
|
4075
4082
|
|
|
@@ -44,15 +44,15 @@ export class Avatars extends APIResource {
|
|
|
44
44
|
* is stored independently from the rendering model and background, which are
|
|
45
45
|
* selected where the avatar is consumed. Supported image types are JPEG, PNG, and
|
|
46
46
|
* WebP. Images may be up to 10 MiB, must be between 256 and 8192 pixels on each
|
|
47
|
-
* side, and may contain at most 40 megapixels.
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
* content.
|
|
47
|
+
* side, and may contain at most 40 megapixels. A per-organization custom-avatar
|
|
48
|
+
* quota applies; the create request returns an error when the quota is reached.
|
|
49
|
+
* For best results, use a 16:9 landscape image, preferably 1920 by 1080 pixels and
|
|
50
|
+
* at least 1280 by 720 pixels. Show one centered, front-facing person from the
|
|
51
|
+
* shoulders up, keep the full head and hair visible with space around it, and use
|
|
52
|
+
* a sharp, evenly lit image with unobstructed eyes and mouth. Use a transparent
|
|
53
|
+
* PNG or WebP when the avatar will be combined with a selectable background. These
|
|
54
|
+
* composition recommendations are not enforced in the first release; the first
|
|
55
|
+
* release does not validate the number of faces, pose, or image content.
|
|
56
56
|
*
|
|
57
57
|
* @example
|
|
58
58
|
* ```ts
|
|
@@ -174,6 +174,7 @@ export {
|
|
|
174
174
|
type MissionDataDefaultFlatPagination,
|
|
175
175
|
} from './missions/index';
|
|
176
176
|
export { OpenAI, type OpenAICreateResponseResponse, type OpenAICreateResponseParams } from './openai/index';
|
|
177
|
+
export { Tests } from './tests/index';
|
|
177
178
|
export {
|
|
178
179
|
Tools,
|
|
179
180
|
type PayToolParams,
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { APIResource } from '../../../../core/resource';
|
|
4
|
+
import * as V1API from './v1/v1';
|
|
5
|
+
import { V1 } from './v1/v1';
|
|
6
|
+
|
|
7
|
+
export class Schedules extends APIResource {
|
|
8
|
+
v1: V1API.V1 = new V1API.V1(this._client);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
Schedules.V1 = V1;
|
|
12
|
+
|
|
13
|
+
export declare namespace Schedules {
|
|
14
|
+
export { V1 as V1 };
|
|
15
|
+
}
|