contiguity 0.0.5 → 0.0.7
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/dist/cjs/client.d.ts +27 -0
- package/dist/cjs/client.d.ts.map +1 -0
- package/dist/cjs/client.js +43 -0
- package/dist/cjs/index.d.ts +13 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +11 -0
- package/dist/cjs/resources/conversations.d.ts +30 -0
- package/dist/cjs/resources/conversations.d.ts.map +1 -0
- package/dist/cjs/resources/conversations.js +24 -0
- package/dist/cjs/resources/domains.d.ts +39 -0
- package/dist/cjs/resources/domains.d.ts.map +1 -0
- package/dist/cjs/resources/domains.js +28 -0
- package/dist/cjs/resources/email.d.ts +17 -0
- package/dist/cjs/resources/email.d.ts.map +1 -0
- package/dist/cjs/resources/email.js +19 -0
- package/dist/cjs/resources/imessage.d.ts +49 -0
- package/dist/cjs/resources/imessage.d.ts.map +1 -0
- package/dist/cjs/resources/imessage.js +42 -0
- package/dist/cjs/resources/lease.d.ts +55 -0
- package/dist/cjs/resources/lease.d.ts.map +1 -0
- package/dist/cjs/resources/lease.js +34 -0
- package/dist/cjs/resources/otp.d.ts +63 -0
- package/dist/cjs/resources/otp.d.ts.map +1 -0
- package/dist/cjs/resources/otp.js +48 -0
- package/dist/cjs/resources/text.d.ts +17 -0
- package/dist/cjs/resources/text.d.ts.map +1 -0
- package/dist/cjs/resources/text.js +19 -0
- package/dist/cjs/resources/voice.d.ts +129 -0
- package/dist/cjs/resources/voice.d.ts.map +1 -0
- package/dist/cjs/resources/voice.js +95 -0
- package/dist/cjs/resources/webhook.d.ts +21 -0
- package/dist/cjs/resources/webhook.d.ts.map +1 -0
- package/dist/cjs/resources/webhook.js +47 -0
- package/dist/cjs/resources/whatsapp.d.ts +33 -0
- package/dist/cjs/resources/whatsapp.d.ts.map +1 -0
- package/dist/cjs/resources/whatsapp.js +32 -0
- package/dist/cjs/schemas/conversations.d.ts +5 -0
- package/dist/cjs/schemas/conversations.d.ts.map +1 -0
- package/dist/cjs/schemas/conversations.js +5 -0
- package/dist/cjs/schemas/domains.d.ts +7 -0
- package/dist/cjs/schemas/domains.d.ts.map +1 -0
- package/dist/cjs/schemas/domains.js +10 -0
- package/dist/cjs/schemas/email.d.ts +16 -0
- package/dist/cjs/schemas/email.d.ts.map +1 -0
- package/dist/cjs/schemas/email.js +16 -0
- package/dist/cjs/schemas/imessage.d.ts +25 -0
- package/dist/cjs/schemas/imessage.d.ts.map +1 -0
- package/dist/cjs/schemas/imessage.js +25 -0
- package/dist/cjs/schemas/index.d.ts +10 -0
- package/dist/cjs/schemas/index.d.ts.map +1 -0
- package/dist/cjs/schemas/index.js +25 -0
- package/dist/cjs/schemas/leases.d.ts +9 -0
- package/dist/cjs/schemas/leases.d.ts.map +1 -0
- package/dist/cjs/schemas/leases.js +9 -0
- package/dist/cjs/schemas/otp.d.ts +25 -0
- package/dist/cjs/schemas/otp.d.ts.map +1 -0
- package/dist/cjs/schemas/otp.js +16 -0
- package/dist/cjs/schemas/text.d.ts +9 -0
- package/dist/cjs/schemas/text.d.ts.map +1 -0
- package/dist/cjs/schemas/text.js +12 -0
- package/dist/cjs/schemas/voice.d.ts +5 -0
- package/dist/cjs/schemas/voice.d.ts.map +1 -0
- package/dist/cjs/schemas/voice.js +5 -0
- package/dist/cjs/schemas/whatsapp.d.ts +25 -0
- package/dist/cjs/schemas/whatsapp.d.ts.map +1 -0
- package/dist/cjs/schemas/whatsapp.js +25 -0
- package/dist/cjs/types/index.d.ts +3 -0
- package/dist/cjs/types/index.d.ts.map +1 -0
- package/dist/cjs/types/index.js +18 -0
- package/dist/cjs/types/responses.d.ts +8 -0
- package/dist/cjs/types/responses.d.ts.map +1 -0
- package/dist/cjs/types/responses.js +2 -0
- package/dist/cjs/types/webhooks.d.ts +10 -0
- package/dist/cjs/types/webhooks.d.ts.map +1 -0
- package/dist/cjs/types/webhooks.js +2 -0
- package/dist/cjs/utils/errors.d.ts +6 -0
- package/dist/cjs/utils/errors.d.ts.map +1 -0
- package/dist/cjs/utils/errors.js +15 -0
- package/dist/cjs/utils/request.d.ts +27 -0
- package/dist/cjs/utils/request.d.ts.map +1 -0
- package/dist/cjs/utils/request.js +36 -0
- package/dist/cjs/utils/response.d.ts +12 -0
- package/dist/cjs/utils/response.d.ts.map +1 -0
- package/dist/cjs/utils/response.js +12 -0
- package/dist/cjs/webhook/parse.d.ts +6 -0
- package/dist/cjs/webhook/parse.d.ts.map +1 -0
- package/dist/cjs/webhook/parse.js +14 -0
- package/dist/cjs/webhook/verify.d.ts +6 -0
- package/dist/cjs/webhook/verify.d.ts.map +1 -0
- package/dist/cjs/webhook/verify.js +39 -0
- package/dist/client.d.ts +23 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +44 -0
- package/dist/esm/client.d.ts +27 -0
- package/dist/esm/client.d.ts.map +1 -0
- package/dist/esm/client.js +39 -0
- package/dist/esm/index.d.ts +13 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +4 -0
- package/dist/esm/resources/conversations.d.ts +30 -0
- package/dist/esm/resources/conversations.d.ts.map +1 -0
- package/dist/esm/resources/conversations.js +20 -0
- package/dist/esm/resources/domains.d.ts +39 -0
- package/dist/esm/resources/domains.d.ts.map +1 -0
- package/dist/esm/resources/domains.js +24 -0
- package/dist/esm/resources/email.d.ts +17 -0
- package/dist/esm/resources/email.d.ts.map +1 -0
- package/dist/esm/resources/email.js +15 -0
- package/dist/esm/resources/imessage.d.ts +49 -0
- package/dist/esm/resources/imessage.d.ts.map +1 -0
- package/dist/esm/resources/imessage.js +38 -0
- package/dist/esm/resources/lease.d.ts +55 -0
- package/dist/esm/resources/lease.d.ts.map +1 -0
- package/dist/esm/resources/lease.js +30 -0
- package/dist/esm/resources/otp.d.ts +63 -0
- package/dist/esm/resources/otp.d.ts.map +1 -0
- package/dist/esm/resources/otp.js +44 -0
- package/dist/esm/resources/text.d.ts +17 -0
- package/dist/esm/resources/text.d.ts.map +1 -0
- package/dist/esm/resources/text.js +15 -0
- package/dist/esm/resources/voice.d.ts +129 -0
- package/dist/esm/resources/voice.d.ts.map +1 -0
- package/dist/esm/resources/voice.js +91 -0
- package/dist/esm/resources/webhook.d.ts +21 -0
- package/dist/esm/resources/webhook.d.ts.map +1 -0
- package/dist/esm/resources/webhook.js +43 -0
- package/dist/esm/resources/whatsapp.d.ts +33 -0
- package/dist/esm/resources/whatsapp.d.ts.map +1 -0
- package/dist/esm/resources/whatsapp.js +28 -0
- package/dist/esm/schemas/conversations.d.ts +5 -0
- package/dist/esm/schemas/conversations.d.ts.map +1 -0
- package/dist/esm/schemas/conversations.js +2 -0
- package/dist/esm/schemas/domains.d.ts +7 -0
- package/dist/esm/schemas/domains.d.ts.map +1 -0
- package/dist/esm/schemas/domains.js +7 -0
- package/dist/esm/schemas/email.d.ts +16 -0
- package/dist/esm/schemas/email.d.ts.map +1 -0
- package/dist/esm/schemas/email.js +13 -0
- package/dist/esm/schemas/imessage.d.ts +25 -0
- package/dist/esm/schemas/imessage.d.ts.map +1 -0
- package/dist/esm/schemas/imessage.js +22 -0
- package/dist/esm/schemas/index.d.ts +10 -0
- package/dist/esm/schemas/index.d.ts.map +1 -0
- package/dist/esm/schemas/index.js +9 -0
- package/dist/esm/schemas/leases.d.ts +9 -0
- package/dist/esm/schemas/leases.d.ts.map +1 -0
- package/dist/esm/schemas/leases.js +6 -0
- package/dist/esm/schemas/otp.d.ts +25 -0
- package/dist/esm/schemas/otp.d.ts.map +1 -0
- package/dist/esm/schemas/otp.js +13 -0
- package/dist/esm/schemas/text.d.ts +9 -0
- package/dist/esm/schemas/text.d.ts.map +1 -0
- package/dist/esm/schemas/text.js +9 -0
- package/dist/esm/schemas/voice.d.ts +5 -0
- package/dist/esm/schemas/voice.d.ts.map +1 -0
- package/dist/esm/schemas/voice.js +2 -0
- package/dist/esm/schemas/whatsapp.d.ts +25 -0
- package/dist/esm/schemas/whatsapp.d.ts.map +1 -0
- package/dist/esm/schemas/whatsapp.js +22 -0
- package/dist/esm/types/index.d.ts +3 -0
- package/dist/esm/types/index.d.ts.map +1 -0
- package/dist/esm/types/index.js +2 -0
- package/dist/esm/types/responses.d.ts +8 -0
- package/dist/esm/types/responses.d.ts.map +1 -0
- package/dist/esm/types/webhooks.d.ts +10 -0
- package/dist/esm/types/webhooks.d.ts.map +1 -0
- package/dist/esm/types/webhooks.js +1 -0
- package/dist/esm/utils/errors.d.ts +6 -0
- package/dist/esm/utils/errors.d.ts.map +1 -0
- package/dist/esm/utils/errors.js +11 -0
- package/dist/esm/utils/request.d.ts +27 -0
- package/dist/esm/utils/request.d.ts.map +1 -0
- package/dist/esm/utils/request.js +33 -0
- package/dist/esm/utils/response.d.ts +12 -0
- package/dist/esm/utils/response.d.ts.map +1 -0
- package/dist/esm/utils/response.js +9 -0
- package/dist/esm/webhook/parse.d.ts +6 -0
- package/dist/esm/webhook/parse.d.ts.map +1 -0
- package/dist/esm/webhook/parse.js +11 -0
- package/dist/esm/webhook/verify.d.ts +6 -0
- package/dist/esm/webhook/verify.d.ts.map +1 -0
- package/dist/esm/webhook/verify.js +36 -0
- package/dist/index.d.ts +13 -27
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -12423
- package/dist/resources/conversations.d.ts +31 -0
- package/dist/resources/conversations.d.ts.map +1 -0
- package/dist/resources/conversations.js +21 -0
- package/dist/resources/domains.d.ts +39 -0
- package/dist/resources/domains.d.ts.map +1 -0
- package/dist/resources/domains.js +24 -0
- package/dist/resources/email.d.ts +17 -0
- package/dist/resources/email.d.ts.map +1 -0
- package/dist/resources/email.js +15 -0
- package/dist/resources/identity.d.ts +56 -0
- package/dist/resources/identity.d.ts.map +1 -0
- package/dist/resources/identity.js +43 -0
- package/dist/resources/imessage.d.ts +58 -0
- package/dist/resources/imessage.d.ts.map +1 -0
- package/dist/resources/imessage.js +47 -0
- package/dist/resources/lease.d.ts +55 -0
- package/dist/resources/lease.d.ts.map +1 -0
- package/dist/resources/lease.js +30 -0
- package/dist/resources/otp.d.ts +63 -0
- package/dist/resources/otp.d.ts.map +1 -0
- package/dist/resources/otp.js +44 -0
- package/dist/resources/product.d.ts +23 -0
- package/dist/resources/product.d.ts.map +1 -0
- package/dist/resources/product.js +19 -0
- package/dist/resources/text.d.ts +44 -0
- package/dist/resources/text.d.ts.map +1 -0
- package/dist/resources/text.js +33 -0
- package/dist/resources/voice.d.ts +129 -0
- package/dist/resources/voice.d.ts.map +1 -0
- package/dist/resources/voice.js +91 -0
- package/dist/resources/webhook.d.ts +21 -0
- package/dist/resources/webhook.d.ts.map +1 -0
- package/dist/resources/webhook.js +43 -0
- package/dist/resources/whatsapp.d.ts +33 -0
- package/dist/resources/whatsapp.d.ts.map +1 -0
- package/dist/resources/whatsapp.js +31 -0
- package/dist/schemas/conversations.d.ts +8 -0
- package/dist/schemas/conversations.d.ts.map +1 -0
- package/dist/schemas/conversations.js +8 -0
- package/dist/schemas/domains.d.ts +7 -0
- package/dist/schemas/domains.d.ts.map +1 -0
- package/dist/schemas/domains.js +7 -0
- package/dist/schemas/email.d.ts +16 -0
- package/dist/schemas/email.d.ts.map +1 -0
- package/dist/schemas/email.js +13 -0
- package/dist/schemas/imessage.d.ts +44 -0
- package/dist/schemas/imessage.d.ts.map +1 -0
- package/dist/schemas/imessage.js +36 -0
- package/dist/schemas/index.d.ts +10 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +9 -0
- package/dist/schemas/leases.d.ts +9 -0
- package/dist/schemas/leases.d.ts.map +1 -0
- package/dist/schemas/leases.js +6 -0
- package/dist/schemas/otp.d.ts +25 -0
- package/dist/schemas/otp.d.ts.map +1 -0
- package/dist/schemas/otp.js +13 -0
- package/dist/schemas/product.d.ts +12 -0
- package/dist/schemas/product.d.ts.map +1 -0
- package/dist/schemas/product.js +9 -0
- package/dist/schemas/text.d.ts +24 -0
- package/dist/schemas/text.d.ts.map +1 -0
- package/dist/schemas/text.js +18 -0
- package/dist/schemas/voice.d.ts +5 -0
- package/dist/schemas/voice.d.ts.map +1 -0
- package/dist/schemas/voice.js +2 -0
- package/dist/schemas/whatsapp.d.ts +31 -0
- package/dist/schemas/whatsapp.d.ts.map +1 -0
- package/dist/schemas/whatsapp.js +29 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/responses.d.ts +8 -0
- package/dist/types/responses.d.ts.map +1 -0
- package/dist/types/responses.js +1 -0
- package/dist/types/webhooks.d.ts +10 -0
- package/dist/types/webhooks.d.ts.map +1 -0
- package/dist/types/webhooks.js +1 -0
- package/dist/utils/errors.d.ts +6 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +11 -0
- package/dist/utils/request.d.ts +26 -5
- package/dist/utils/request.d.ts.map +1 -1
- package/dist/utils/request.js +31 -45
- package/dist/utils/response.d.ts +12 -0
- package/dist/utils/response.d.ts.map +1 -0
- package/dist/utils/response.js +9 -0
- package/dist/webhook/parse.d.ts +6 -0
- package/dist/webhook/parse.d.ts.map +1 -0
- package/dist/webhook/parse.js +11 -0
- package/dist/webhook/verify.d.ts +6 -0
- package/dist/webhook/verify.d.ts.map +1 -0
- package/dist/webhook/verify.js +36 -0
- package/package.json +30 -33
- package/LICENSE.md +0 -8
- package/dist/.DS_Store +0 -0
- package/dist/client/fetch.d.ts +0 -25
- package/dist/client/fetch.d.ts.map +0 -1
- package/dist/client/fetch.js +0 -85
- package/dist/contiguity.d.ts +0 -81
- package/dist/contiguity.d.ts.map +0 -1
- package/dist/contiguity.js +0 -106
- package/dist/services/domains/delete.d.ts +0 -28
- package/dist/services/domains/delete.d.ts.map +0 -1
- package/dist/services/domains/delete.js +0 -37
- package/dist/services/domains/get.d.ts +0 -98
- package/dist/services/domains/get.d.ts.map +0 -1
- package/dist/services/domains/get.js +0 -89
- package/dist/services/domains/index.d.ts +0 -34
- package/dist/services/domains/index.d.ts.map +0 -1
- package/dist/services/domains/index.js +0 -37
- package/dist/services/domains/list.d.ts +0 -36
- package/dist/services/domains/list.d.ts.map +0 -1
- package/dist/services/domains/list.js +0 -42
- package/dist/services/domains/register.d.ts +0 -67
- package/dist/services/domains/register.d.ts.map +0 -1
- package/dist/services/domains/register.js +0 -67
- package/dist/services/email/index.d.ts +0 -17
- package/dist/services/email/index.d.ts.map +0 -1
- package/dist/services/email/index.js +0 -16
- package/dist/services/email/send.d.ts +0 -66
- package/dist/services/email/send.d.ts.map +0 -1
- package/dist/services/email/send.js +0 -78
- package/dist/services/imessage/index.d.ts +0 -24
- package/dist/services/imessage/index.d.ts.map +0 -1
- package/dist/services/imessage/index.js +0 -23
- package/dist/services/imessage/send.d.ts +0 -57
- package/dist/services/imessage/send.d.ts.map +0 -1
- package/dist/services/imessage/send.js +0 -60
- package/dist/services/imessage/typing.d.ts +0 -40
- package/dist/services/imessage/typing.d.ts.map +0 -1
- package/dist/services/imessage/typing.js +0 -49
- package/dist/services/lease/available.d.ts +0 -193
- package/dist/services/lease/available.d.ts.map +0 -1
- package/dist/services/lease/available.js +0 -103
- package/dist/services/lease/create.d.ts +0 -108
- package/dist/services/lease/create.d.ts.map +0 -1
- package/dist/services/lease/create.js +0 -78
- package/dist/services/lease/details.d.ts +0 -133
- package/dist/services/lease/details.d.ts.map +0 -1
- package/dist/services/lease/details.js +0 -65
- package/dist/services/lease/get.d.ts +0 -96
- package/dist/services/lease/get.d.ts.map +0 -1
- package/dist/services/lease/get.js +0 -68
- package/dist/services/lease/index.d.ts +0 -50
- package/dist/services/lease/index.d.ts.map +0 -1
- package/dist/services/lease/index.js +0 -51
- package/dist/services/lease/leased.d.ts +0 -228
- package/dist/services/lease/leased.d.ts.map +0 -1
- package/dist/services/lease/leased.js +0 -108
- package/dist/services/lease/terminate.d.ts +0 -71
- package/dist/services/lease/terminate.d.ts.map +0 -1
- package/dist/services/lease/terminate.js +0 -78
- package/dist/services/otp/index.d.ts +0 -33
- package/dist/services/otp/index.d.ts.map +0 -1
- package/dist/services/otp/index.js +0 -37
- package/dist/services/otp/new.d.ts +0 -29
- package/dist/services/otp/new.d.ts.map +0 -1
- package/dist/services/otp/new.js +0 -44
- package/dist/services/otp/resend.d.ts +0 -22
- package/dist/services/otp/resend.d.ts.map +0 -1
- package/dist/services/otp/resend.js +0 -31
- package/dist/services/otp/send.d.ts +0 -26
- package/dist/services/otp/send.d.ts.map +0 -1
- package/dist/services/otp/send.js +0 -38
- package/dist/services/otp/verify.d.ts +0 -24
- package/dist/services/otp/verify.d.ts.map +0 -1
- package/dist/services/otp/verify.js +0 -34
- package/dist/services/text/index.d.ts +0 -17
- package/dist/services/text/index.d.ts.map +0 -1
- package/dist/services/text/index.js +0 -16
- package/dist/services/text/send.d.ts +0 -25
- package/dist/services/text/send.d.ts.map +0 -1
- package/dist/services/text/send.js +0 -37
- package/dist/services/whatsapp/index.d.ts +0 -24
- package/dist/services/whatsapp/index.d.ts.map +0 -1
- package/dist/services/whatsapp/index.js +0 -23
- package/dist/services/whatsapp/send.d.ts +0 -57
- package/dist/services/whatsapp/send.d.ts.map +0 -1
- package/dist/services/whatsapp/send.js +0 -60
- package/dist/services/whatsapp/typing.d.ts +0 -40
- package/dist/services/whatsapp/typing.d.ts.map +0 -1
- package/dist/services/whatsapp/typing.js +0 -49
- package/dist/types/base.d.ts +0 -17
- package/dist/types/base.d.ts.map +0 -1
- package/dist/types/base.js +0 -20
- package/dist/types/common.d.ts +0 -56
- package/dist/types/common.d.ts.map +0 -1
- package/dist/types/common.js +0 -48
- package/dist/types/error.d.ts +0 -37
- package/dist/types/error.d.ts.map +0 -1
- package/dist/types/error.js +0 -54
- package/dist/types/metadata.d.ts +0 -10
- package/dist/types/metadata.d.ts.map +0 -1
- package/dist/types/response.d.ts +0 -10
- package/dist/types/response.d.ts.map +0 -1
- package/dist/types/response.js +0 -10
- package/dist/utils/parse.d.ts +0 -8
- package/dist/utils/parse.d.ts.map +0 -1
- package/dist/utils/parse.js +0 -36
- /package/dist/{types/metadata.js → esm/types/responses.js} +0 -0
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { verifyWebhookSignature } from "../webhook/verify.js";
|
|
2
|
+
import { parseWebhookPayload } from "../webhook/parse.js";
|
|
3
|
+
function getHeader(req, name) {
|
|
4
|
+
const h = req.headers;
|
|
5
|
+
if (!h)
|
|
6
|
+
return undefined;
|
|
7
|
+
if (typeof h.get === "function") {
|
|
8
|
+
return h.get(name) ?? h[name];
|
|
9
|
+
}
|
|
10
|
+
const key = Object.keys(h).find((k) => k.toLowerCase() === name.toLowerCase());
|
|
11
|
+
return key ? h[key] : h["contiguity-signature"];
|
|
12
|
+
}
|
|
13
|
+
function getRawBody(req) {
|
|
14
|
+
return req.rawBody ?? req.body;
|
|
15
|
+
}
|
|
16
|
+
export class WebhookResource {
|
|
17
|
+
/**
|
|
18
|
+
* Verify webhook signature.
|
|
19
|
+
* Call as verify(req, secret, toleranceSeconds?) or verify(rawBody, signatureHeader, secret, toleranceSeconds?).
|
|
20
|
+
*/
|
|
21
|
+
verify(rawBodyOrReq, signatureHeaderOrSecret, secretOrTolerance, toleranceSeconds) {
|
|
22
|
+
if (typeof rawBodyOrReq === "string" ||
|
|
23
|
+
(typeof rawBodyOrReq === "object" && rawBodyOrReq != null && Buffer.isBuffer(rawBodyOrReq))) {
|
|
24
|
+
const secretStr = typeof secretOrTolerance === "string" ? secretOrTolerance : null;
|
|
25
|
+
const tol = typeof secretOrTolerance === "number" ? secretOrTolerance : toleranceSeconds;
|
|
26
|
+
return verifyWebhookSignature(rawBodyOrReq, signatureHeaderOrSecret ?? null, secretStr, tol);
|
|
27
|
+
}
|
|
28
|
+
const req = rawBodyOrReq;
|
|
29
|
+
const raw = getRawBody(req);
|
|
30
|
+
const sig = getHeader(req, "contiguity-signature");
|
|
31
|
+
if (raw == null)
|
|
32
|
+
return false;
|
|
33
|
+
const secretVal = signatureHeaderOrSecret ?? null;
|
|
34
|
+
const toleranceVal = typeof secretOrTolerance === "number" ? secretOrTolerance : toleranceSeconds;
|
|
35
|
+
return verifyWebhookSignature(raw, sig ?? null, secretVal, toleranceVal);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Parse raw webhook body to a typed event (v2 format).
|
|
39
|
+
*/
|
|
40
|
+
parse(rawBody) {
|
|
41
|
+
return parseWebhookPayload(rawBody);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type WhatsappSendParams, type WhatsappTypingParams } from "../schemas/whatsapp.js";
|
|
2
|
+
import type { RequestConfig } from "../utils/request.js";
|
|
3
|
+
export declare class WhatsappResource {
|
|
4
|
+
private readonly config;
|
|
5
|
+
constructor(config: RequestConfig);
|
|
6
|
+
send(params: WhatsappSendParams): Promise<{
|
|
7
|
+
message_id: string;
|
|
8
|
+
} & {
|
|
9
|
+
metadata: {
|
|
10
|
+
id: string;
|
|
11
|
+
timestamp: string;
|
|
12
|
+
api_version: string;
|
|
13
|
+
object: string;
|
|
14
|
+
};
|
|
15
|
+
}>;
|
|
16
|
+
typing(params: WhatsappTypingParams): Promise<Record<string, unknown> & {
|
|
17
|
+
metadata: {
|
|
18
|
+
id: string;
|
|
19
|
+
timestamp: string;
|
|
20
|
+
api_version: string;
|
|
21
|
+
object: string;
|
|
22
|
+
};
|
|
23
|
+
}>;
|
|
24
|
+
reactions(params: Record<string, unknown>): Promise<Record<string, unknown> & {
|
|
25
|
+
metadata: {
|
|
26
|
+
id: string;
|
|
27
|
+
timestamp: string;
|
|
28
|
+
api_version: string;
|
|
29
|
+
object: string;
|
|
30
|
+
};
|
|
31
|
+
}>;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=whatsapp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whatsapp.d.ts","sourceRoot":"","sources":["../../../src/resources/whatsapp.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EAC1B,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,aAAa;IAE5C,IAAI,CAAC,MAAM,EAAE,kBAAkB;oBAEN,MAAM;;;;;;;;;IAM/B,MAAM,CAAC,MAAM,EAAE,oBAAoB;;;;;;;;IAQnC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;;;;CAMhD"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { request } from "../utils/request.js";
|
|
2
|
+
import { whatsappSendSchema, whatsappTypingSchema, } from "../schemas/whatsapp.js";
|
|
3
|
+
export class WhatsappResource {
|
|
4
|
+
config;
|
|
5
|
+
constructor(config) {
|
|
6
|
+
this.config = config;
|
|
7
|
+
}
|
|
8
|
+
async send(params) {
|
|
9
|
+
const parsed = whatsappSendSchema.parse(params);
|
|
10
|
+
return request(this.config, "/whatsapp", {
|
|
11
|
+
method: "POST",
|
|
12
|
+
body: parsed,
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
async typing(params) {
|
|
16
|
+
const parsed = whatsappTypingSchema.parse(params);
|
|
17
|
+
return request(this.config, "/whatsapp/typing", {
|
|
18
|
+
method: "POST",
|
|
19
|
+
body: parsed,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
async reactions(params) {
|
|
23
|
+
return request(this.config, "/whatsapp/reactions", {
|
|
24
|
+
method: "POST",
|
|
25
|
+
body: params,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"conversations.d.ts","sourceRoot":"","sources":["../../../src/schemas/conversations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,yBAAyB;;iBAA2D,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const domainsRegisterSchema: z.ZodObject<{
|
|
3
|
+
region: z.ZodOptional<z.ZodString>;
|
|
4
|
+
custom_return_path: z.ZodOptional<z.ZodString>;
|
|
5
|
+
}, z.core.$loose>;
|
|
6
|
+
export type DomainsRegisterOptions = z.infer<typeof domainsRegisterSchema>;
|
|
7
|
+
//# sourceMappingURL=domains.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"domains.d.ts","sourceRoot":"","sources":["../../../src/schemas/domains.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,qBAAqB;;;iBAKlB,CAAC;AAEjB,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const emailSendSchema: z.ZodObject<{
|
|
3
|
+
to: z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>;
|
|
4
|
+
from: z.ZodString;
|
|
5
|
+
subject: z.ZodString;
|
|
6
|
+
body: z.ZodObject<{
|
|
7
|
+
text: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
8
|
+
html: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
9
|
+
}, z.core.$strip>;
|
|
10
|
+
reply_to: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
11
|
+
cc: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>>;
|
|
12
|
+
bcc: z.ZodOptional<z.ZodNullable<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>>;
|
|
13
|
+
headers: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodString>>>;
|
|
14
|
+
}, z.core.$loose>;
|
|
15
|
+
export type EmailSendParams = z.infer<typeof emailSendSchema>;
|
|
16
|
+
//# sourceMappingURL=email.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../../src/schemas/email.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,eAAe;;;;;;;;;;;;iBAWV,CAAC;AAEnB,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export const emailSendSchema = z
|
|
3
|
+
.object({
|
|
4
|
+
to: z.union([z.string(), z.array(z.string()).max(10)]),
|
|
5
|
+
from: z.string(),
|
|
6
|
+
subject: z.string(),
|
|
7
|
+
body: z.object({ text: z.string().nullable().optional(), html: z.string().nullable().optional() }),
|
|
8
|
+
reply_to: z.string().nullable().optional(),
|
|
9
|
+
cc: z.union([z.string(), z.array(z.string()).max(10)]).nullable().optional(),
|
|
10
|
+
bcc: z.union([z.string(), z.array(z.string()).max(10)]).nullable().optional(),
|
|
11
|
+
headers: z.record(z.string(), z.string()).nullable().optional(),
|
|
12
|
+
})
|
|
13
|
+
.passthrough();
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const imessageSendSchema: z.ZodObject<{
|
|
3
|
+
to: z.ZodString;
|
|
4
|
+
message: z.ZodString;
|
|
5
|
+
from: z.ZodOptional<z.ZodString>;
|
|
6
|
+
fallback: z.ZodOptional<z.ZodObject<{
|
|
7
|
+
when: z.ZodArray<z.ZodEnum<{
|
|
8
|
+
imessage_unsupported: "imessage_unsupported";
|
|
9
|
+
imessage_fails: "imessage_fails";
|
|
10
|
+
}>>;
|
|
11
|
+
from: z.ZodOptional<z.ZodString>;
|
|
12
|
+
}, z.core.$strip>>;
|
|
13
|
+
attachments: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
14
|
+
}, z.core.$loose>;
|
|
15
|
+
export declare const imessageTypingSchema: z.ZodObject<{
|
|
16
|
+
to: z.ZodString;
|
|
17
|
+
action: z.ZodEnum<{
|
|
18
|
+
start: "start";
|
|
19
|
+
stop: "stop";
|
|
20
|
+
}>;
|
|
21
|
+
from: z.ZodOptional<z.ZodString>;
|
|
22
|
+
}, z.core.$loose>;
|
|
23
|
+
export type ImessageSendParams = z.infer<typeof imessageSendSchema>;
|
|
24
|
+
export type ImessageTypingParams = z.infer<typeof imessageTypingSchema>;
|
|
25
|
+
//# sourceMappingURL=imessage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imessage.d.ts","sourceRoot":"","sources":["../../../src/schemas/imessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;iBAaf,CAAC;AAEjB,eAAO,MAAM,oBAAoB;;;;;;;iBAMjB,CAAC;AAEjB,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AACpE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export const imessageSendSchema = z
|
|
3
|
+
.object({
|
|
4
|
+
to: z.string(),
|
|
5
|
+
message: z.string(),
|
|
6
|
+
from: z.string().optional(),
|
|
7
|
+
fallback: z
|
|
8
|
+
.object({
|
|
9
|
+
when: z.array(z.enum(["imessage_unsupported", "imessage_fails"])),
|
|
10
|
+
from: z.string().optional(),
|
|
11
|
+
})
|
|
12
|
+
.optional(),
|
|
13
|
+
attachments: z.array(z.string()).optional(),
|
|
14
|
+
})
|
|
15
|
+
.passthrough();
|
|
16
|
+
export const imessageTypingSchema = z
|
|
17
|
+
.object({
|
|
18
|
+
to: z.string(),
|
|
19
|
+
action: z.enum(["start", "stop"]),
|
|
20
|
+
from: z.string().optional(),
|
|
21
|
+
})
|
|
22
|
+
.passthrough();
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export * from "./text.js";
|
|
2
|
+
export * from "./email.js";
|
|
3
|
+
export * from "./otp.js";
|
|
4
|
+
export * from "./domains.js";
|
|
5
|
+
export * from "./leases.js";
|
|
6
|
+
export * from "./imessage.js";
|
|
7
|
+
export * from "./whatsapp.js";
|
|
8
|
+
export * from "./conversations.js";
|
|
9
|
+
export * from "./voice.js";
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/schemas/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from "./text.js";
|
|
2
|
+
export * from "./email.js";
|
|
3
|
+
export * from "./otp.js";
|
|
4
|
+
export * from "./domains.js";
|
|
5
|
+
export * from "./leases.js";
|
|
6
|
+
export * from "./imessage.js";
|
|
7
|
+
export * from "./whatsapp.js";
|
|
8
|
+
export * from "./conversations.js";
|
|
9
|
+
export * from "./voice.js";
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const leaseCreateSchema: z.ZodObject<{
|
|
3
|
+
billing_method: z.ZodOptional<z.ZodEnum<{
|
|
4
|
+
monthly: "monthly";
|
|
5
|
+
service_contract: "service_contract";
|
|
6
|
+
}>>;
|
|
7
|
+
}, z.core.$loose>;
|
|
8
|
+
export type LeaseCreateOptions = z.infer<typeof leaseCreateSchema>;
|
|
9
|
+
//# sourceMappingURL=leases.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"leases.d.ts","sourceRoot":"","sources":["../../../src/schemas/leases.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,iBAAiB;;;;;iBAId,CAAC;AAEjB,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const otpNewSchema: z.ZodObject<{
|
|
3
|
+
to: z.ZodString;
|
|
4
|
+
language: z.ZodString;
|
|
5
|
+
name: z.ZodString;
|
|
6
|
+
}, z.core.$loose>;
|
|
7
|
+
export declare const otpVerifySchema: z.ZodObject<{
|
|
8
|
+
otp_id: z.ZodString;
|
|
9
|
+
otp: z.ZodString;
|
|
10
|
+
}, z.core.$loose>;
|
|
11
|
+
export declare const otpResendSchema: z.ZodObject<{
|
|
12
|
+
otp_id: z.ZodString;
|
|
13
|
+
}, z.core.$loose>;
|
|
14
|
+
export declare const otpReverseInitiateSchema: z.ZodObject<{
|
|
15
|
+
number: z.ZodString;
|
|
16
|
+
factor: z.ZodOptional<z.ZodString>;
|
|
17
|
+
to: z.ZodOptional<z.ZodString>;
|
|
18
|
+
language: z.ZodOptional<z.ZodString>;
|
|
19
|
+
success_url: z.ZodOptional<z.ZodString>;
|
|
20
|
+
}, z.core.$loose>;
|
|
21
|
+
export type OtpNewParams = z.infer<typeof otpNewSchema>;
|
|
22
|
+
export type OtpVerifyParams = z.infer<typeof otpVerifySchema>;
|
|
23
|
+
export type OtpResendParams = z.infer<typeof otpResendSchema>;
|
|
24
|
+
export type OtpReverseInitiateParams = z.infer<typeof otpReverseInitiateSchema>;
|
|
25
|
+
//# sourceMappingURL=otp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"otp.d.ts","sourceRoot":"","sources":["../../../src/schemas/otp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,YAAY;;;;iBAAqF,CAAC;AAC/G,eAAO,MAAM,eAAe;;;iBAAkE,CAAC;AAC/F,eAAO,MAAM,eAAe;;iBAAiD,CAAC;AAC9E,eAAO,MAAM,wBAAwB;;;;;;iBAQrB,CAAC;AAEjB,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AACxD,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAC9D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAC9D,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export const otpNewSchema = z.object({ to: z.string(), language: z.string(), name: z.string() }).passthrough();
|
|
3
|
+
export const otpVerifySchema = z.object({ otp_id: z.string(), otp: z.string() }).passthrough();
|
|
4
|
+
export const otpResendSchema = z.object({ otp_id: z.string() }).passthrough();
|
|
5
|
+
export const otpReverseInitiateSchema = z
|
|
6
|
+
.object({
|
|
7
|
+
number: z.string(),
|
|
8
|
+
factor: z.string().max(16).optional(),
|
|
9
|
+
to: z.string().optional(),
|
|
10
|
+
language: z.string().optional(),
|
|
11
|
+
success_url: z.string().url().optional(),
|
|
12
|
+
})
|
|
13
|
+
.passthrough();
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const textSendSchema: z.ZodObject<{
|
|
3
|
+
to: z.ZodString;
|
|
4
|
+
message: z.ZodString;
|
|
5
|
+
from: z.ZodOptional<z.ZodString>;
|
|
6
|
+
attachments: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
7
|
+
}, z.core.$loose>;
|
|
8
|
+
export type TextSendParams = z.infer<typeof textSendSchema>;
|
|
9
|
+
//# sourceMappingURL=text.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../src/schemas/text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,cAAc;;;;;iBAOX,CAAC;AAEjB,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"voice.d.ts","sourceRoot":"","sources":["../../../src/schemas/voice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,eAAe;;iBAAoD,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const whatsappSendSchema: z.ZodObject<{
|
|
3
|
+
to: z.ZodString;
|
|
4
|
+
message: z.ZodString;
|
|
5
|
+
from: z.ZodOptional<z.ZodString>;
|
|
6
|
+
fallback: z.ZodOptional<z.ZodObject<{
|
|
7
|
+
when: z.ZodArray<z.ZodEnum<{
|
|
8
|
+
whatsapp_unsupported: "whatsapp_unsupported";
|
|
9
|
+
whatsapp_fails: "whatsapp_fails";
|
|
10
|
+
}>>;
|
|
11
|
+
from: z.ZodOptional<z.ZodString>;
|
|
12
|
+
}, z.core.$strip>>;
|
|
13
|
+
attachments: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
14
|
+
}, z.core.$loose>;
|
|
15
|
+
export declare const whatsappTypingSchema: z.ZodObject<{
|
|
16
|
+
to: z.ZodString;
|
|
17
|
+
action: z.ZodEnum<{
|
|
18
|
+
start: "start";
|
|
19
|
+
stop: "stop";
|
|
20
|
+
}>;
|
|
21
|
+
from: z.ZodOptional<z.ZodString>;
|
|
22
|
+
}, z.core.$loose>;
|
|
23
|
+
export type WhatsappSendParams = z.infer<typeof whatsappSendSchema>;
|
|
24
|
+
export type WhatsappTypingParams = z.infer<typeof whatsappTypingSchema>;
|
|
25
|
+
//# sourceMappingURL=whatsapp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whatsapp.d.ts","sourceRoot":"","sources":["../../../src/schemas/whatsapp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;iBAaf,CAAC;AAEjB,eAAO,MAAM,oBAAoB;;;;;;;iBAMjB,CAAC;AAEjB,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AACpE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export const whatsappSendSchema = z
|
|
3
|
+
.object({
|
|
4
|
+
to: z.string(),
|
|
5
|
+
message: z.string(),
|
|
6
|
+
from: z.string().optional(),
|
|
7
|
+
fallback: z
|
|
8
|
+
.object({
|
|
9
|
+
when: z.array(z.enum(["whatsapp_unsupported", "whatsapp_fails"])),
|
|
10
|
+
from: z.string().optional(),
|
|
11
|
+
})
|
|
12
|
+
.optional(),
|
|
13
|
+
attachments: z.array(z.string()).optional(),
|
|
14
|
+
})
|
|
15
|
+
.passthrough();
|
|
16
|
+
export const whatsappTypingSchema = z
|
|
17
|
+
.object({
|
|
18
|
+
to: z.string(),
|
|
19
|
+
action: z.enum(["start", "stop"]),
|
|
20
|
+
from: z.string().optional(),
|
|
21
|
+
})
|
|
22
|
+
.passthrough();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"responses.d.ts","sourceRoot":"","sources":["../../../src/types/responses.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** Webhook event types (v2 format) */
|
|
2
|
+
export type WebhookEventType = "text.incoming.sms" | "text.incoming.mms" | "text.delivery.confirmed" | "text.delivery.failed" | "imessage.incoming" | "numbers.substitution" | "otp.reverse.verified" | "email.incoming" | "identity.verification_session.started" | "identity.verification_session.processing" | "identity.verification_session.verified" | "identity.verification_session.failed" | "identity.verification_session.requires_input" | "identity.verification_session.manually_approved" | "identity.verification_session.manually_denied" | "identity.verification_report.generated";
|
|
3
|
+
export interface WebhookEventBase {
|
|
4
|
+
id: string;
|
|
5
|
+
type: WebhookEventType;
|
|
6
|
+
timestamp: number;
|
|
7
|
+
api_version: string;
|
|
8
|
+
data: Record<string, unknown>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=webhooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../../../src/types/webhooks.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,MAAM,MAAM,gBAAgB,GACxB,mBAAmB,GACnB,mBAAmB,GACnB,yBAAyB,GACzB,sBAAsB,GACtB,mBAAmB,GACnB,sBAAsB,GACtB,sBAAsB,GACtB,gBAAgB,GAChB,uCAAuC,GACvC,0CAA0C,GAC1C,wCAAwC,GACxC,sCAAsC,GACtC,8CAA8C,GAC9C,iDAAiD,GACjD,+CAA+C,GAC/C,wCAAwC,CAAC;AAE7C,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,gBAAgB,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/utils/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,eAAgB,SAAQ,KAAK;aAGtB,MAAM,CAAC,EAAE,MAAM;aACf,IAAI,CAAC,EAAE,MAAM;gBAF7B,OAAO,EAAE,MAAM,EACC,MAAM,CAAC,EAAE,MAAM,YAAA,EACf,IAAI,CAAC,EAAE,MAAM,YAAA;CAMhC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export class ContiguityError extends Error {
|
|
2
|
+
status;
|
|
3
|
+
code;
|
|
4
|
+
constructor(message, status, code) {
|
|
5
|
+
super(message);
|
|
6
|
+
this.status = status;
|
|
7
|
+
this.code = code;
|
|
8
|
+
this.name = "ContiguityError";
|
|
9
|
+
Object.setPrototypeOf(this, ContiguityError.prototype);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
declare const BASE_URLS: {
|
|
2
|
+
readonly send: "https://api.contiguity.com/send";
|
|
3
|
+
readonly otp: "https://api.contiguity.com/otp";
|
|
4
|
+
readonly domains: "https://api.contiguity.com/domains";
|
|
5
|
+
readonly numbers: "https://api.contiguity.com/numbers";
|
|
6
|
+
readonly conversations: "https://api.contiguity.com/conversations";
|
|
7
|
+
readonly voice: "https://api.contiguity.com/voice";
|
|
8
|
+
};
|
|
9
|
+
export type ApiBase = keyof typeof BASE_URLS;
|
|
10
|
+
export interface RequestConfig {
|
|
11
|
+
token: string;
|
|
12
|
+
base: ApiBase;
|
|
13
|
+
debug?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export declare function request<T = Record<string, unknown>>(config: RequestConfig, path: string, options?: {
|
|
16
|
+
method?: "GET" | "POST" | "DELETE";
|
|
17
|
+
body?: Record<string, unknown>;
|
|
18
|
+
}): Promise<T & {
|
|
19
|
+
metadata: {
|
|
20
|
+
id: string;
|
|
21
|
+
timestamp: string;
|
|
22
|
+
api_version: string;
|
|
23
|
+
object: string;
|
|
24
|
+
};
|
|
25
|
+
}>;
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=request.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../src/utils/request.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,SAAS;;;;;;;CAOL,CAAC;AAEX,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,SAAS,CAAC;AAE7C,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvD,MAAM,EAAE,aAAa,EACrB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,QAAQ,CAAC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC3B,GACL,OAAO,CAAC,CAAC,GAAG;IAAE,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC,CAwBnG"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { transformResponse } from "./response.js";
|
|
2
|
+
import { ContiguityError } from "./errors.js";
|
|
3
|
+
const BASE_URLS = {
|
|
4
|
+
send: "https://api.contiguity.com/send",
|
|
5
|
+
otp: "https://api.contiguity.com/otp",
|
|
6
|
+
domains: "https://api.contiguity.com/domains",
|
|
7
|
+
numbers: "https://api.contiguity.com/numbers",
|
|
8
|
+
conversations: "https://api.contiguity.com/conversations",
|
|
9
|
+
voice: "https://api.contiguity.com/voice",
|
|
10
|
+
};
|
|
11
|
+
export async function request(config, path, options = {}) {
|
|
12
|
+
const { token, base, debug } = config;
|
|
13
|
+
const url = `${BASE_URLS[base]}${path}`;
|
|
14
|
+
const headers = {
|
|
15
|
+
"Content-Type": "application/json",
|
|
16
|
+
Authorization: `Token ${token}`,
|
|
17
|
+
};
|
|
18
|
+
if (debug) {
|
|
19
|
+
console.debug("[contiguity]", options.method ?? "GET", url, options.body ?? "");
|
|
20
|
+
}
|
|
21
|
+
const res = await fetch(url, {
|
|
22
|
+
method: options.method ?? "GET",
|
|
23
|
+
headers,
|
|
24
|
+
body: options.body ? JSON.stringify(options.body) : undefined,
|
|
25
|
+
});
|
|
26
|
+
const json = (await res.json());
|
|
27
|
+
if (!res.ok) {
|
|
28
|
+
const errMsg = json.data?.error ?? json.object ?? "Unknown error";
|
|
29
|
+
const status = json.data?.status ?? res.status;
|
|
30
|
+
throw new ContiguityError(errMsg, status);
|
|
31
|
+
}
|
|
32
|
+
return transformResponse(json);
|
|
33
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ResponseMetadata } from "../types/responses.js";
|
|
2
|
+
export interface RawApiResponse {
|
|
3
|
+
id: string;
|
|
4
|
+
timestamp: number;
|
|
5
|
+
api_version: string;
|
|
6
|
+
object: string;
|
|
7
|
+
data: Record<string, unknown>;
|
|
8
|
+
}
|
|
9
|
+
export declare function transformResponse(res: RawApiResponse): Record<string, unknown> & {
|
|
10
|
+
metadata: ResponseMetadata;
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=response.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../../src/utils/response.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,QAAQ,EAAE,gBAAgB,CAAA;CAAE,CAQ/G"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../src/webhook/parse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAoB,MAAM,sBAAsB,CAAC;AAE/E;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,gBAAgB,CAO/E"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parse raw webhook body (v2 format) into a typed event.
|
|
3
|
+
*/
|
|
4
|
+
export function parseWebhookPayload(raw_body) {
|
|
5
|
+
const str = typeof raw_body === "string" ? raw_body : raw_body.toString("utf-8");
|
|
6
|
+
const event = JSON.parse(str);
|
|
7
|
+
if (typeof event.id !== "string" || typeof event.type !== "string" || typeof event.timestamp !== "number") {
|
|
8
|
+
throw new Error("Invalid webhook payload: missing id, type, or timestamp");
|
|
9
|
+
}
|
|
10
|
+
return event;
|
|
11
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Verify webhook signature (HMAC-SHA256, format t=timestamp,v1=hex).
|
|
3
|
+
* Use raw body as received — do not re-serialize JSON.
|
|
4
|
+
*/
|
|
5
|
+
export declare function verifyWebhookSignature(raw_body: string | Buffer, signature_header: string | null | undefined, secret: string | null | undefined, tolerance_seconds?: number): boolean;
|
|
6
|
+
//# sourceMappingURL=verify.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/webhook/verify.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,wBAAgB,sBAAsB,CAClC,QAAQ,EAAE,MAAM,GAAG,MAAM,EACzB,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC3C,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACjC,iBAAiB,CAAC,EAAE,MAAM,GAC3B,OAAO,CAsBT"}
|