@visulima/notification 1.0.16 → 1.1.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.
Files changed (90) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +75 -15
  3. package/dist/channels/inapp/index.d.ts +4 -2
  4. package/dist/channels/inapp/index.js +1 -1
  5. package/dist/inbound/index.d.ts +97 -0
  6. package/dist/inbound/index.js +1 -0
  7. package/dist/packem_shared/chatReply-HANpcetF.js +1 -0
  8. package/dist/packem_shared/createDiscordReceiver-ErG7MJ_N.js +1 -0
  9. package/dist/packem_shared/createInboundRouter-DWk4xvCj.js +1 -0
  10. package/dist/packem_shared/createMessageBirdReceiver-DNPoScxB.js +1 -0
  11. package/dist/packem_shared/createMsTeamsReceiver-CKZsylzU.js +1 -0
  12. package/dist/packem_shared/createSlackReceiver-BHY2tumz.js +1 -0
  13. package/dist/packem_shared/{snsProvider-BtlNUN7u.js → createSnsProvider-Df9fqQ2A.js} +1 -1
  14. package/dist/packem_shared/createTelegramReceiver-BjZa0eVx.js +1 -0
  15. package/dist/packem_shared/createTelnyxReceiver-Ev-ThOtu.js +1 -0
  16. package/dist/packem_shared/createTwilioReceiver-CQmdSCMX.js +1 -0
  17. package/dist/packem_shared/createVonageReceiver-BWVR3E7q.js +1 -0
  18. package/dist/packem_shared/{webPushProvider-CUDMDRKw.js → createWebPushProvider-BNu3bPeV.js} +1 -1
  19. package/dist/packem_shared/hmacBase64-ocSXhrdQ.js +1 -0
  20. package/dist/packem_shared/isJwtTimeValid-CdCG24pW.js +1 -0
  21. package/dist/packem_shared/{slackWebhook-CGbFBgpo.js → slackWebhook-DILLGl3P.js} +1 -1
  22. package/dist/packem_shared/snsWebhook-DTBQW5U5.js +3 -0
  23. package/dist/packem_shared/{standardWebhook-DV_fVNtX.js → standardWebhook-CPjtIEKe.js} +1 -1
  24. package/dist/packem_shared/{twilioWebhook-DScQeZta.js → twilioWebhook-BjM8B0sB.js} +1 -1
  25. package/dist/packem_shared/types.d-4T7bNo4x.d.ts +182 -0
  26. package/dist/packem_shared/types.d-BXfGenMH.d.ts +34 -0
  27. package/dist/packem_shared/utils-DuaeYOiD.js +1 -0
  28. package/dist/packem_shared/verifyEd25519-lmU3nhP0.js +1 -0
  29. package/dist/packem_shared/{webcrypto-Cz40u9vp.js → webcrypto-BPm3NDEm.js} +1 -1
  30. package/dist/providers/chat/discord/index.d.ts +40 -3
  31. package/dist/providers/chat/discord/index.js +1 -1
  32. package/dist/providers/chat/msteams/index.d.ts +31 -3
  33. package/dist/providers/chat/msteams/index.js +1 -1
  34. package/dist/providers/chat/slack/index.d.ts +31 -3
  35. package/dist/providers/chat/slack/index.js +1 -1
  36. package/dist/providers/chat/telegram/index.d.ts +32 -3
  37. package/dist/providers/chat/telegram/index.js +1 -1
  38. package/dist/providers/failover/index.d.ts +4 -2
  39. package/dist/providers/failover/index.js +1 -1
  40. package/dist/providers/mock/index.d.ts +4 -2
  41. package/dist/providers/mock/index.js +1 -1
  42. package/dist/providers/opentelemetry/index.d.ts +4 -2
  43. package/dist/providers/opentelemetry/index.js +1 -1
  44. package/dist/providers/push/apns/index.d.ts +4 -2
  45. package/dist/providers/push/apns/index.js +1 -1
  46. package/dist/providers/push/expo/index.d.ts +4 -2
  47. package/dist/providers/push/expo/index.js +1 -1
  48. package/dist/providers/push/fcm/index.d.ts +4 -2
  49. package/dist/providers/push/fcm/index.js +1 -1
  50. package/dist/providers/push/web-push/index.d.ts +4 -2
  51. package/dist/providers/push/web-push/index.js +1 -1
  52. package/dist/providers/roundrobin/index.d.ts +4 -2
  53. package/dist/providers/roundrobin/index.js +1 -1
  54. package/dist/providers/sms/messagebird/index.d.ts +33 -3
  55. package/dist/providers/sms/messagebird/index.js +1 -1
  56. package/dist/providers/sms/plivo/index.d.ts +4 -2
  57. package/dist/providers/sms/plivo/index.js +1 -1
  58. package/dist/providers/sms/sns/index.d.ts +4 -2
  59. package/dist/providers/sms/sns/index.js +1 -1
  60. package/dist/providers/sms/telnyx/index.d.ts +28 -3
  61. package/dist/providers/sms/telnyx/index.js +1 -1
  62. package/dist/providers/sms/twilio/index.d.ts +36 -3
  63. package/dist/providers/sms/twilio/index.js +1 -1
  64. package/dist/providers/sms/vonage/index.d.ts +27 -3
  65. package/dist/providers/sms/vonage/index.js +1 -1
  66. package/dist/providers/webhook/index.d.ts +4 -2
  67. package/dist/providers/webhook/index.js +1 -1
  68. package/dist/webhooks/index.d.ts +35 -47
  69. package/dist/webhooks/index.js +1 -1
  70. package/package.json +10 -2
  71. package/dist/packem_shared/hmacBase64-Dtvoq4Ry.js +0 -1
  72. package/dist/packem_shared/snsWebhook-eOX1eh23.js +0 -1
  73. /package/dist/packem_shared/{apnsProvider-Dfgwt-6Z.js → createApnsProvider-Dfgwt-6Z.js} +0 -0
  74. /package/dist/packem_shared/{discordProvider-B9rc2nrV.js → createDiscordProvider-B9rc2nrV.js} +0 -0
  75. /package/dist/packem_shared/{expoProvider-DofT1sEf.js → createExpoProvider-DofT1sEf.js} +0 -0
  76. /package/dist/packem_shared/{failoverProvider-CyYOOitI.js → createFailoverProvider-CyYOOitI.js} +0 -0
  77. /package/dist/packem_shared/{fcmProvider-86S6m7zk.js → createFcmProvider-86S6m7zk.js} +0 -0
  78. /package/dist/packem_shared/{inAppProvider-DWO4D6VN.js → createInAppProvider-DWO4D6VN.js} +0 -0
  79. /package/dist/packem_shared/{messageBirdProvider-CnsBOuY6.js → createMessageBirdProvider-CnsBOuY6.js} +0 -0
  80. /package/dist/packem_shared/{mockProvider-OaWdPlKU.js → createMockProvider-OaWdPlKU.js} +0 -0
  81. /package/dist/packem_shared/{msTeamsProvider-BAgW_ba5.js → createMsTeamsProvider-BAgW_ba5.js} +0 -0
  82. /package/dist/packem_shared/{otelProvider-DdnT7q6B.js → createOtelProvider-DdnT7q6B.js} +0 -0
  83. /package/dist/packem_shared/{plivoProvider-C27zpwI3.js → createPlivoProvider-C27zpwI3.js} +0 -0
  84. /package/dist/packem_shared/{roundRobinProvider-BrujhDY6.js → createRoundRobinProvider-BrujhDY6.js} +0 -0
  85. /package/dist/packem_shared/{slackProvider-CP35fu9-.js → createSlackProvider-CP35fu9-.js} +0 -0
  86. /package/dist/packem_shared/{telegramProvider-CyaUiWkh.js → createTelegramProvider-CyaUiWkh.js} +0 -0
  87. /package/dist/packem_shared/{telnyxProvider-M23jXIyu.js → createTelnyxProvider-M23jXIyu.js} +0 -0
  88. /package/dist/packem_shared/{twilioProvider-CaoTEqz-.js → createTwilioProvider-CaoTEqz-.js} +0 -0
  89. /package/dist/packem_shared/{vonageProvider-CYNivc-x.js → createVonageProvider-CYNivc-x.js} +0 -0
  90. /package/dist/packem_shared/{webhookProvider-C13EqjLL.js → createWebhookProvider-C13EqjLL.js} +0 -0
@@ -0,0 +1,34 @@
1
+ import { N as NotificationEvent } from "./types.d-C7l7qdMG.js";
2
+ /**
3
+ * Case-insensitive map of inbound request headers. Values may be a single string or
4
+ * an array (mirroring `node:http` and `Headers`); verifiers normalise both forms.
5
+ */
6
+ type WebhookHeaders = Record<string, string | string[] | undefined>;
7
+ /**
8
+ * A provider inbound-webhook verifier: validates the request signature and normalises
9
+ * the body into a {@link NotificationEvent}.
10
+ */
11
+ interface WebhookVerifier {
12
+ /**
13
+ * Normalises a verified webhook body into a {@link NotificationEvent}.
14
+ * @param body The raw request body (string).
15
+ * @returns The normalised event, or `undefined` when the body is not a delivery event.
16
+ */
17
+ parse: (body: string) => NotificationEvent | undefined;
18
+ /**
19
+ * Verifies the request signature against the shared secret.
20
+ * @param payload The raw request body (string).
21
+ * @param headers The inbound request headers.
22
+ * @param secret The provider signing secret / auth token.
23
+ * @returns `true` when the signature is valid.
24
+ */
25
+ verify: (payload: string, headers: WebhookHeaders, secret: string) => Promise<boolean>;
26
+ }
27
+ /**
28
+ * Reads a header value case-insensitively, coercing array values to their first entry.
29
+ * @param headers The inbound headers.
30
+ * @param name The header name to read.
31
+ * @returns The header value, or `undefined` when absent.
32
+ */
33
+ declare const getHeader: (headers: WebhookHeaders, name: string) => string | undefined;
34
+ export { WebhookHeaders as W, WebhookVerifier as a, getHeader as g };
@@ -0,0 +1 @@
1
+ const a=n=>{if(typeof n=="string")return n},i=n=>{if(typeof n=="string")return n;if(typeof n=="number")return String(n)},c=n=>{const s=n===void 0?Number.NaN:Date.parse(n);return Number.isNaN(s)?new Date:new Date(s)},d=n=>{const s={};return n.forEach((e,t)=>{s[t]=e}),s},o=(n,s=200)=>Response.json(n,{headers:{"content-type":"application/json"},status:s}),p=()=>new Response(void 0,{status:204}),u=async(n,s,e)=>{const t=await e?.(n,s);return t instanceof Response?t:o({error:n},n==="invalid_body"?400:401)},f=n=>{if(n instanceof Response)return n},R=n=>{if(!(n===void 0||n instanceof Response))return n};export{a,f as b,R as c,c as d,i as e,d as h,o as j,p as n,u as r};
@@ -0,0 +1 @@
1
+ import{s as n,u as y,f}from"./webcrypto-BPm3NDEm.js";const u=/^[0-9a-f]*$/iu,o=t=>{if(t.length%2!==0||!u.test(t))return;const r=new Uint8Array(new ArrayBuffer(t.length/2));for(let e=0;e<r.length;e+=1)r[e]=Number.parseInt(t.slice(e*2,e*2+2),16);return r},l=async(t,r,e,a)=>{const s=o(t),i=o(r);if(s===void 0||i===void 0)return!1;try{const c=await n().importKey("raw",s,{name:"Ed25519"},!1,["verify"]);return await n().verify({name:"Ed25519"},c,i,y(`${e}${a}`))}catch{return!1}},m=async(t,r,e)=>{try{const a=await n().importKey("raw",f(t),{name:"Ed25519"},!1,["verify"]);return await n().verify({name:"Ed25519"},a,f(r),y(e))}catch{return!1}};export{o as hexToBytes,l as verifyEd25519,m as verifyEd25519Base64};
@@ -1 +1 @@
1
- const c=e=>new Uint8Array(new ArrayBuffer(e)),i=e=>{if(e.buffer instanceof ArrayBuffer)return e;const t=c(e.length);return t.set(e),t},r=()=>globalThis.crypto.subtle,d=e=>{const t=c(e);return globalThis.crypto.getRandomValues(t),t},l=e=>{const t=new TextEncoder().encode(e),n=c(t.length);return n.set(t),n},h=(...e)=>{let t=0;for(const o of e)t+=o.length;const n=c(t);let s=0;for(const o of e)n.set(o,s),s+=o.length;return n},u=e=>{let t="";for(const n of e)t+=n.toString(16).padStart(2,"0");return t},f=e=>{let t="";for(const n of e)t+=String.fromCodePoint(n);return btoa(t)},g=e=>{let t=f(e).replaceAll("+","-").replaceAll("/","_");for(;t.endsWith("=");)t=t.slice(0,-1);return t},A=e=>{const t=e.replaceAll("-","+").replaceAll("_","/"),n=t.padEnd(t.length+(4-t.length%4)%4,"="),s=atob(n),o=c(s.length);for(let a=0;a<s.length;a+=1)o[a]=s.codePointAt(a)??0;return o},b=(e,t)=>{const n=c(t);let s=e;for(let o=t-1;o>=0;o-=1)n[o]=s%256,s=Math.floor(s/256);return n},p=async e=>{const t=await r().digest("SHA-256",e);return new Uint8Array(t)},w=async(e,t)=>{const n=await r().importKey("raw",e,{hash:"SHA-256",name:"HMAC"},!1,["sign"]),s=await r().sign("HMAC",n,t);return new Uint8Array(s)},m=async(e,t,n)=>{const s=typeof e=="string"?l(e):i(e),o=typeof t=="string"?l(t):i(t),a=await r().importKey("raw",s,{hash:n,name:"HMAC"},!1,["sign"]),y=await r().sign("HMAC",a,o);return new Uint8Array(y)},B=async(e,t,n,s)=>{const o=await r().importKey("raw",t,"HKDF",!1,["deriveBits"]),a=await r().deriveBits({hash:"SHA-256",info:n,name:"HKDF",salt:e},o,s*8);return new Uint8Array(a)};export{u as a,g as b,h as c,B as d,b as e,A as f,p as g,m as h,w as i,d as r,r as s,f as t,l as u};
1
+ const c=e=>new Uint8Array(new ArrayBuffer(e)),i=e=>{if(e.buffer instanceof ArrayBuffer)return e;const t=c(e.length);return t.set(e),t},r=()=>globalThis.crypto.subtle,d=e=>{const t=c(e);return globalThis.crypto.getRandomValues(t),t},l=e=>{const t=new TextEncoder().encode(e),n=c(t.length);return n.set(t),n},h=(...e)=>{let t=0;for(const o of e)t+=o.length;const n=c(t);let s=0;for(const o of e)n.set(o,s),s+=o.length;return n},u=e=>{let t="";for(const n of e)t+=n.toString(16).padStart(2,"0");return t},f=e=>{let t="";for(const n of e)t+=String.fromCodePoint(n);return btoa(t)},g=e=>{let t=f(e).replaceAll("+","-").replaceAll("/","_");for(;t.endsWith("=");)t=t.slice(0,-1);return t},A=e=>{const t=e.replaceAll("-","+").replaceAll("_","/"),n=t.padEnd(t.length+(4-t.length%4)%4,"="),s=atob(n),o=c(s.length);for(let a=0;a<s.length;a+=1)o[a]=s.codePointAt(a)??0;return o},b=(e,t)=>{const n=c(t);let s=e;for(let o=t-1;o>=0;o-=1)n[o]=s%256,s=Math.floor(s/256);return n},p=async e=>{const t=await r().digest("SHA-256",e);return new Uint8Array(t)},w=async(e,t)=>{const n=await r().importKey("raw",e,{hash:"SHA-256",name:"HMAC"},!1,["sign"]),s=await r().sign("HMAC",n,t);return new Uint8Array(s)},m=async(e,t,n)=>{const s=typeof e=="string"?l(e):i(e),o=typeof t=="string"?l(t):i(t),a=await r().importKey("raw",s,{hash:n,name:"HMAC"},!1,["sign"]),y=await r().sign("HMAC",a,o);return new Uint8Array(y)},B=async(e,t,n,s)=>{const o=await r().importKey("raw",t,"HKDF",!1,["deriveBits"]),a=await r().deriveBits({hash:"SHA-256",info:n,name:"HKDF",salt:e},o,s*8);return new Uint8Array(a)};export{p as a,g as b,f as c,h as d,B as e,A as f,b as g,m as h,w as i,d as r,r as s,u as t,l as u};
@@ -1,5 +1,7 @@
1
1
  import { d as BaseConfig, b as ChatPayload } from "../../../packem_shared/types.d-C7l7qdMG.js";
2
- import { a as ProviderFactory } from "../../../packem_shared/provider.d-Dh32nRm9.js";
2
+ import { a as ProviderFactory, P as Provider } from "../../../packem_shared/provider.d-Dh32nRm9.js";
3
+ import { l as ReceiverOptions, R as Receiver } from "../../../packem_shared/types.d-4T7bNo4x.js";
4
+ import "../../../packem_shared/types.d-BXfGenMH.js";
3
5
  interface DiscordConfig extends BaseConfig {
4
6
  /** Override the bot username for the message. */
5
7
  username?: string;
@@ -10,5 +12,40 @@ interface DiscordConfig extends BaseConfig {
10
12
  * Discord chat provider via Incoming Webhooks. Edge-safe — `fetch` only.
11
13
  * @see https://discord.com/developers/docs/resources/webhook#execute-webhook
12
14
  */
13
- declare const discordProvider: ProviderFactory<DiscordConfig, ChatPayload>;
14
- export { type DiscordConfig, discordProvider };
15
+ declare const discordProvider$1: ProviderFactory<DiscordConfig, ChatPayload>;
16
+ /**
17
+ * Options for the Discord inbound receiver.
18
+ */
19
+ interface DiscordReceiverOptions extends ReceiverOptions {
20
+ /**
21
+ * How long the handler may run before the interaction is deferred, in milliseconds.
22
+ *
23
+ * Discord discards an interaction whose endpoint does not answer within three seconds, so a
24
+ * handler that outruns this deadline gets a `DEFERRED_CHANNEL_MESSAGE` sent on its behalf and
25
+ * keeps running; its eventual reply has to go out through the Discord API (or `provider`).
26
+ * @default 2000
27
+ */
28
+ deferAfterMs?: number;
29
+ /**
30
+ * The outbound Discord chat provider used by `context.reply()`, which posts a message to
31
+ * the originating channel (use this instead of the deferred HTTP response). Optional.
32
+ */
33
+ provider?: Provider<unknown, ChatPayload>;
34
+ /** The application's Ed25519 public key (hex), from the Discord developer dashboard. */
35
+ publicKey: string;
36
+ }
37
+ /**
38
+ * Creates a Discord inbound receiver for the interactions endpoint. Requests are verified
39
+ * with Ed25519 (`X-Signature-Ed25519` over `timestamp + body`) before dispatch, and the
40
+ * `PING` handshake is answered with a `PONG` automatically.
41
+ *
42
+ * A handler may return an {@link ../types.InboundReply} to respond with a channel message
43
+ * (`CHANNEL_MESSAGE_WITH_SOURCE`); returning nothing defers the interaction
44
+ * (`DEFERRED_CHANNEL_MESSAGE`), after which you follow up through the Discord API.
45
+ * @param options Verification config, the message handler and an optional reply provider.
46
+ * @returns The inbound channel.
47
+ */
48
+ declare const createDiscordReceiver: (options: DiscordReceiverOptions) => Receiver;
49
+ /** @deprecated Renamed to `createDiscordProvider`; removed in the next major. */
50
+ declare const discordProvider: typeof discordProvider$1;
51
+ export { type DiscordConfig, type DiscordReceiverOptions, discordProvider$1 as createDiscordProvider, createDiscordReceiver, discordProvider };
@@ -1 +1 @@
1
- import{default as o}from"../../../packem_shared/discordProvider-B9rc2nrV.js";export{o as discordProvider};
1
+ import r from"../../../packem_shared/createDiscordProvider-B9rc2nrV.js";import{createDiscordReceiver as c}from"../../../packem_shared/createDiscordReceiver-ErG7MJ_N.js";const e=r;export{r as createDiscordProvider,c as createDiscordReceiver,e as discordProvider};
@@ -1,5 +1,7 @@
1
1
  import { d as BaseConfig, b as ChatPayload } from "../../../packem_shared/types.d-C7l7qdMG.js";
2
- import { a as ProviderFactory } from "../../../packem_shared/provider.d-Dh32nRm9.js";
2
+ import { a as ProviderFactory, P as Provider } from "../../../packem_shared/provider.d-Dh32nRm9.js";
3
+ import { l as ReceiverOptions, R as Receiver } from "../../../packem_shared/types.d-4T7bNo4x.js";
4
+ import "../../../packem_shared/types.d-BXfGenMH.js";
3
5
  interface MsTeamsConfig extends BaseConfig {
4
6
  /** Microsoft Teams Incoming Webhook URL. Required. */
5
7
  webhookUrl: string;
@@ -10,5 +12,31 @@ interface MsTeamsConfig extends BaseConfig {
10
12
  * built from `text`. Edge-safe — `fetch` only.
11
13
  * @see https://learn.microsoft.com/en-us/microsoftteams/platform/webhooks-and-connectors/how-to/connectors-using
12
14
  */
13
- declare const msTeamsProvider: ProviderFactory<MsTeamsConfig, ChatPayload>;
14
- export { type MsTeamsConfig, msTeamsProvider };
15
+ declare const msTeamsProvider$1: ProviderFactory<MsTeamsConfig, ChatPayload>;
16
+ /**
17
+ * Options for the Microsoft Teams inbound receiver (outgoing webhook).
18
+ */
19
+ interface MsTeamsReceiverOptions extends ReceiverOptions {
20
+ /** The outbound Teams chat provider used by `context.reply()`. Optional. */
21
+ provider?: Provider<unknown, ChatPayload>;
22
+ /**
23
+ * The security token (HMAC key) Teams issued when the outgoing webhook was created. It is
24
+ * base64-decoded to key the HMAC that verifies the `Authorization` header.
25
+ */
26
+ securityToken: string;
27
+ }
28
+ /**
29
+ * Creates a Microsoft Teams inbound receiver for outgoing webhooks. Requests are verified with
30
+ * Teams' HMAC scheme — base64 HMAC-SHA256 over the raw request body, keyed by the
31
+ * base64-decoded security token, carried in the `Authorization` header as `HMAC` plus the
32
+ * signature.
33
+ *
34
+ * A handler may return an {@link ../types.InboundReply}; its `text` is serialised into a Bot
35
+ * Framework message activity in the HTTP response, which Teams renders as the reply.
36
+ * @param options Verification config, the message handler and an optional reply provider.
37
+ * @returns The inbound channel.
38
+ */
39
+ declare const createMsTeamsReceiver: (options: MsTeamsReceiverOptions) => Receiver;
40
+ /** @deprecated Renamed to `createMsTeamsProvider`; removed in the next major. */
41
+ declare const msTeamsProvider: typeof msTeamsProvider$1;
42
+ export { type MsTeamsConfig, type MsTeamsReceiverOptions, msTeamsProvider$1 as createMsTeamsProvider, createMsTeamsReceiver, msTeamsProvider };
@@ -1 +1 @@
1
- import{default as a}from"../../../packem_shared/msTeamsProvider-BAgW_ba5.js";export{a as msTeamsProvider};
1
+ import e from"../../../packem_shared/createMsTeamsProvider-BAgW_ba5.js";import{createMsTeamsReceiver as a}from"../../../packem_shared/createMsTeamsReceiver-CKZsylzU.js";const s=e;export{e as createMsTeamsProvider,a as createMsTeamsReceiver,s as msTeamsProvider};
@@ -1,5 +1,7 @@
1
1
  import { d as BaseConfig, b as ChatPayload } from "../../../packem_shared/types.d-C7l7qdMG.js";
2
- import { a as ProviderFactory } from "../../../packem_shared/provider.d-Dh32nRm9.js";
2
+ import { a as ProviderFactory, P as Provider } from "../../../packem_shared/provider.d-Dh32nRm9.js";
3
+ import { l as ReceiverOptions, R as Receiver } from "../../../packem_shared/types.d-4T7bNo4x.js";
4
+ import "../../../packem_shared/types.d-BXfGenMH.js";
3
5
  interface SlackConfig extends BaseConfig {
4
6
  /** Default channel id/name used when the payload omits `to` (Web API mode). */
5
7
  defaultChannel?: string;
@@ -15,5 +17,31 @@ interface SlackConfig extends BaseConfig {
15
17
  * (`token` + channel). Edge-safe — `fetch` only.
16
18
  * @see https://api.slack.com/methods/chat.postMessage
17
19
  */
18
- declare const slackProvider: ProviderFactory<SlackConfig, ChatPayload>;
19
- export { type SlackConfig, slackProvider };
20
+ declare const slackProvider$1: ProviderFactory<SlackConfig, ChatPayload>;
21
+ /**
22
+ * Options for the Slack inbound receiver.
23
+ */
24
+ interface SlackReceiverOptions extends ReceiverOptions {
25
+ /**
26
+ * The outbound Slack chat provider used by `context.reply()` (and for replying to Events
27
+ * API deliveries, which cannot answer in the HTTP response). Optional.
28
+ */
29
+ provider?: Provider<unknown, ChatPayload>;
30
+ /** The Slack app signing secret, used to verify `X-Slack-Signature`. */
31
+ signingSecret: string;
32
+ }
33
+ /**
34
+ * Creates a Slack inbound receiver covering the Events API, slash commands and interactive
35
+ * components. Requests are verified with Slack's v0 signing scheme (5-minute replay window)
36
+ * before dispatch, and the `url_verification` handshake is answered automatically.
37
+ *
38
+ * Slash-command and interaction handlers may return an {@link ../types.InboundReply} to post
39
+ * a synchronous message in the HTTP response; Events API deliveries are acknowledged with
40
+ * `200` and should be replied to through the outbound Slack provider.
41
+ * @param options Verification config, the message handler and an optional reply provider.
42
+ * @returns The inbound channel.
43
+ */
44
+ declare const createSlackReceiver: (options: SlackReceiverOptions) => Receiver;
45
+ /** @deprecated Renamed to `createSlackProvider`; removed in the next major. */
46
+ declare const slackProvider: typeof slackProvider$1;
47
+ export { type SlackConfig, type SlackReceiverOptions, slackProvider$1 as createSlackProvider, createSlackReceiver, slackProvider };
@@ -1 +1 @@
1
- import{default as e}from"../../../packem_shared/slackProvider-CP35fu9-.js";export{e as slackProvider};
1
+ import r from"../../../packem_shared/createSlackProvider-CP35fu9-.js";import{createSlackReceiver as t}from"../../../packem_shared/createSlackReceiver-BHY2tumz.js";const o=r;export{r as createSlackProvider,t as createSlackReceiver,o as slackProvider};
@@ -1,5 +1,7 @@
1
1
  import { d as BaseConfig, b as ChatPayload } from "../../../packem_shared/types.d-C7l7qdMG.js";
2
- import { a as ProviderFactory } from "../../../packem_shared/provider.d-Dh32nRm9.js";
2
+ import { a as ProviderFactory, P as Provider } from "../../../packem_shared/provider.d-Dh32nRm9.js";
3
+ import { l as ReceiverOptions, R as Receiver } from "../../../packem_shared/types.d-4T7bNo4x.js";
4
+ import "../../../packem_shared/types.d-BXfGenMH.js";
3
5
  interface TelegramConfig extends BaseConfig {
4
6
  /** Telegram bot token (`123456:ABC-DEF...`). Required. */
5
7
  botToken: string;
@@ -14,5 +16,32 @@ interface TelegramConfig extends BaseConfig {
14
16
  * Telegram chat provider via the Bot API. Edge-safe — `fetch` only.
15
17
  * @see https://core.telegram.org/bots/api#sendmessage
16
18
  */
17
- declare const telegramProvider: ProviderFactory<TelegramConfig, ChatPayload>;
18
- export { type TelegramConfig, telegramProvider };
19
+ declare const telegramProvider$1: ProviderFactory<TelegramConfig, ChatPayload>;
20
+ /**
21
+ * Options for the Telegram inbound receiver.
22
+ */
23
+ interface TelegramReceiverOptions extends ReceiverOptions {
24
+ /** The outbound Telegram chat provider used by `context.reply()`. Optional. */
25
+ provider?: Provider<unknown, ChatPayload>;
26
+ /**
27
+ * The secret token configured via `setWebhook`'s `secret_token`. When set, the receiver
28
+ * requires a matching `X-Telegram-Bot-Api-Secret-Token` header. Strongly recommended —
29
+ * Telegram updates are otherwise unauthenticated.
30
+ */
31
+ secretToken?: string;
32
+ }
33
+ /**
34
+ * Creates a Telegram inbound receiver for bot webhook updates. When {@link
35
+ * TelegramReceiverOptions.secretToken} is set, the `X-Telegram-Bot-Api-Secret-Token` header is
36
+ * verified before dispatch.
37
+ *
38
+ * A handler may return an {@link ../types.InboundReply}; it is serialised into a Telegram
39
+ * `sendMessage` method call in the response body (`chat_id` taken from the originating chat),
40
+ * which Telegram executes as the reply. Return `raw` to invoke a different method.
41
+ * @param options Verification config, the message handler and an optional reply provider.
42
+ * @returns The inbound channel.
43
+ */
44
+ declare const createTelegramReceiver: (options: TelegramReceiverOptions) => Receiver;
45
+ /** @deprecated Renamed to `createTelegramProvider`; removed in the next major. */
46
+ declare const telegramProvider: typeof telegramProvider$1;
47
+ export { type TelegramConfig, type TelegramReceiverOptions, telegramProvider$1 as createTelegramProvider, createTelegramReceiver, telegramProvider };
@@ -1 +1 @@
1
- import{default as a}from"../../../packem_shared/telegramProvider-CyaUiWkh.js";export{a as telegramProvider};
1
+ import e from"../../../packem_shared/createTelegramProvider-CyaUiWkh.js";import{createTelegramReceiver as m}from"../../../packem_shared/createTelegramReceiver-BjZa0eVx.js";const o=e;export{e as createTelegramProvider,m as createTelegramReceiver,o as telegramProvider};
@@ -12,5 +12,7 @@ interface FailoverConfig {
12
12
  * @param config Optional config.
13
13
  * @returns A composite provider.
14
14
  */
15
- declare const failoverProvider: <PayloadT extends BaseNotificationPayload>(providers: Provider<unknown, PayloadT>[], config?: FailoverConfig) => Provider<unknown, PayloadT>;
16
- export { type FailoverConfig, failoverProvider };
15
+ declare const failoverProvider$1: <PayloadT extends BaseNotificationPayload>(providers: Provider<unknown, PayloadT>[], config?: FailoverConfig) => Provider<unknown, PayloadT>;
16
+ /** @deprecated Renamed to `createFailoverProvider`; removed in the next major. */
17
+ declare const failoverProvider: typeof failoverProvider$1;
18
+ export { type FailoverConfig, failoverProvider$1 as createFailoverProvider, failoverProvider };
@@ -1 +1 @@
1
- import{failoverProvider as e}from"../../packem_shared/failoverProvider-CyYOOitI.js";export{e as failoverProvider};
1
+ import{failoverProvider as r}from"../../packem_shared/createFailoverProvider-CyYOOitI.js";const e=r;export{r as createFailoverProvider,e as failoverProvider};
@@ -25,5 +25,7 @@ interface MockProviderInstance {
25
25
  * In-memory provider for tests and local development. Records every payload it is
26
26
  * asked to send and can be configured to fail deterministically.
27
27
  */
28
- declare const mockProvider: ProviderFactory<MockProviderConfig, BaseNotificationPayload, MockProviderInstance>;
29
- export { type MockProviderConfig, type MockProviderInstance, type MockSentMessage, mockProvider };
28
+ declare const mockProvider$1: ProviderFactory<MockProviderConfig, BaseNotificationPayload, MockProviderInstance>;
29
+ /** @deprecated Renamed to `createMockProvider`; removed in the next major. */
30
+ declare const mockProvider: typeof mockProvider$1;
31
+ export { type MockProviderConfig, type MockProviderInstance, type MockSentMessage, mockProvider$1 as createMockProvider, mockProvider };
@@ -1 +1 @@
1
- import{mockProvider as e}from"../../packem_shared/mockProvider-OaWdPlKU.js";export{e as mockProvider};
1
+ import{mockProvider as o}from"../../packem_shared/createMockProvider-OaWdPlKU.js";const e=o;export{o as createMockProvider,e as mockProvider};
@@ -17,5 +17,7 @@ interface OtelProviderConfig {
17
17
  * @param config Optional config; supply a `tracer` to emit real spans.
18
18
  * @returns A provider that delegates to `inner` while tracing each send.
19
19
  */
20
- declare const otelProvider: <PayloadT extends BaseNotificationPayload>(inner: Provider<unknown, PayloadT>, config?: OtelProviderConfig) => Provider<unknown, PayloadT>;
21
- export { type OtelProviderConfig, otelProvider };
20
+ declare const otelProvider$1: <PayloadT extends BaseNotificationPayload>(inner: Provider<unknown, PayloadT>, config?: OtelProviderConfig) => Provider<unknown, PayloadT>;
21
+ /** @deprecated Renamed to `createOtelProvider`; removed in the next major. */
22
+ declare const otelProvider: typeof otelProvider$1;
23
+ export { type OtelProviderConfig, otelProvider$1 as createOtelProvider, otelProvider };
@@ -1 +1 @@
1
- import{otelProvider as e}from"../../packem_shared/otelProvider-DdnT7q6B.js";export{e as otelProvider};
1
+ import{otelProvider as r}from"../../packem_shared/createOtelProvider-DdnT7q6B.js";const o=r;export{r as createOtelProvider,o as otelProvider};
@@ -20,5 +20,7 @@ interface ApnsConfig extends BaseConfig {
20
20
  * Web-only runtimes that lack `node:http2`.
21
21
  * @see https://developer.apple.com/documentation/usernotifications/sending-notification-requests-to-apns
22
22
  */
23
- declare const apnsProvider: ProviderFactory<ApnsConfig, PushPayload>;
24
- export { type ApnsConfig, apnsProvider };
23
+ declare const apnsProvider$1: ProviderFactory<ApnsConfig, PushPayload>;
24
+ /** @deprecated Renamed to `createApnsProvider`; removed in the next major. */
25
+ declare const apnsProvider: typeof apnsProvider$1;
26
+ export { type ApnsConfig, apnsProvider, apnsProvider$1 as createApnsProvider };
@@ -1 +1 @@
1
- import{default as e}from"../../../packem_shared/apnsProvider-Dfgwt-6Z.js";export{e as apnsProvider};
1
+ import r from"../../../packem_shared/createApnsProvider-Dfgwt-6Z.js";const e=r;export{e as apnsProvider,r as createApnsProvider};
@@ -10,5 +10,7 @@ interface ExpoConfig extends BaseConfig {
10
10
  * Expo push provider. Sends a batch of device tokens in one call. Edge-safe — `fetch` only.
11
11
  * @see https://docs.expo.dev/push-notifications/sending-notifications/
12
12
  */
13
- declare const expoProvider: ProviderFactory<ExpoConfig, PushPayload>;
14
- export { type ExpoConfig, expoProvider };
13
+ declare const expoProvider$1: ProviderFactory<ExpoConfig, PushPayload>;
14
+ /** @deprecated Renamed to `createExpoProvider`; removed in the next major. */
15
+ declare const expoProvider: typeof expoProvider$1;
16
+ export { type ExpoConfig, expoProvider$1 as createExpoProvider, expoProvider };
@@ -1 +1 @@
1
- import{default as r}from"../../../packem_shared/expoProvider-DofT1sEf.js";export{r as expoProvider};
1
+ import o from"../../../packem_shared/createExpoProvider-DofT1sEf.js";const e=o;export{o as createExpoProvider,e as expoProvider};
@@ -22,5 +22,7 @@ interface FcmConfig extends BaseConfig {
22
22
  * (static or via `getAccessToken`), so no `node:crypto`/Google SDK is bundled.
23
23
  * @see https://firebase.google.com/docs/cloud-messaging/send-message
24
24
  */
25
- declare const fcmProvider: ProviderFactory<FcmConfig, PushPayload>;
26
- export { type FcmConfig, fcmProvider };
25
+ declare const fcmProvider$1: ProviderFactory<FcmConfig, PushPayload>;
26
+ /** @deprecated Renamed to `createFcmProvider`; removed in the next major. */
27
+ declare const fcmProvider: typeof fcmProvider$1;
28
+ export { type FcmConfig, fcmProvider$1 as createFcmProvider, fcmProvider };
@@ -1 +1 @@
1
- import{default as f}from"../../../packem_shared/fcmProvider-86S6m7zk.js";export{f as fcmProvider};
1
+ import r from"../../../packem_shared/createFcmProvider-86S6m7zk.js";const e=r;export{r as createFcmProvider,e as fcmProvider};
@@ -32,5 +32,7 @@ interface WebPushConfig extends BaseConfig {
32
32
  * @see https://datatracker.ietf.org/doc/html/rfc8291
33
33
  * @see https://datatracker.ietf.org/doc/html/rfc8292
34
34
  */
35
- declare const webPushProvider: ProviderFactory<WebPushConfig, PushPayload>;
36
- export { type PushSubscriptionLike, type WebPushConfig, webPushProvider };
35
+ declare const webPushProvider$1: ProviderFactory<WebPushConfig, PushPayload>;
36
+ /** @deprecated Renamed to `createWebPushProvider`; removed in the next major. */
37
+ declare const webPushProvider: typeof webPushProvider$1;
38
+ export { type PushSubscriptionLike, type WebPushConfig, webPushProvider$1 as createWebPushProvider, webPushProvider };
@@ -1 +1 @@
1
- import{default as o}from"../../../packem_shared/webPushProvider-CUDMDRKw.js";export{o as webPushProvider};
1
+ import r from"../../../packem_shared/createWebPushProvider-BNu3bPeV.js";const o=r;export{r as createWebPushProvider,o as webPushProvider};
@@ -13,5 +13,7 @@ interface RoundRobinConfig {
13
13
  * @param config Optional config.
14
14
  * @returns A composite provider.
15
15
  */
16
- declare const roundRobinProvider: <PayloadT extends BaseNotificationPayload>(providers: Provider<unknown, PayloadT>[], config?: RoundRobinConfig) => Provider<unknown, PayloadT>;
17
- export { type RoundRobinConfig, roundRobinProvider };
16
+ declare const roundRobinProvider$1: <PayloadT extends BaseNotificationPayload>(providers: Provider<unknown, PayloadT>[], config?: RoundRobinConfig) => Provider<unknown, PayloadT>;
17
+ /** @deprecated Renamed to `createRoundRobinProvider`; removed in the next major. */
18
+ declare const roundRobinProvider: typeof roundRobinProvider$1;
19
+ export { type RoundRobinConfig, roundRobinProvider$1 as createRoundRobinProvider, roundRobinProvider };
@@ -1 +1 @@
1
- import{roundRobinProvider as d}from"../../packem_shared/roundRobinProvider-BrujhDY6.js";export{d as roundRobinProvider};
1
+ import{roundRobinProvider as o}from"../../packem_shared/createRoundRobinProvider-BrujhDY6.js";const i=o;export{o as createRoundRobinProvider,i as roundRobinProvider};
@@ -1,5 +1,7 @@
1
1
  import { d as BaseConfig, S as SmsPayload } from "../../../packem_shared/types.d-C7l7qdMG.js";
2
- import { a as ProviderFactory } from "../../../packem_shared/provider.d-Dh32nRm9.js";
2
+ import { a as ProviderFactory, P as Provider } from "../../../packem_shared/provider.d-Dh32nRm9.js";
3
+ import { l as ReceiverOptions, R as Receiver } from "../../../packem_shared/types.d-4T7bNo4x.js";
4
+ import "../../../packem_shared/types.d-BXfGenMH.js";
3
5
  interface MessageBirdConfig extends BaseConfig {
4
6
  /** MessageBird (Bird) access key. */
5
7
  accessKey: string;
@@ -12,5 +14,33 @@ interface MessageBirdConfig extends BaseConfig {
12
14
  * MessageBird (Bird) SMS provider. Sends to many recipients in one call.
13
15
  * @see https://docs.bird.com/api/sms-messaging
14
16
  */
15
- declare const messageBirdProvider: ProviderFactory<MessageBirdConfig, SmsPayload>;
16
- export { type MessageBirdConfig, messageBirdProvider };
17
+ declare const messageBirdProvider$1: ProviderFactory<MessageBirdConfig, SmsPayload>;
18
+ /**
19
+ * Options for the MessageBird inbound receiver.
20
+ */
21
+ interface MessageBirdReceiverOptions extends ReceiverOptions {
22
+ /** The outbound MessageBird SMS provider used by `context.reply()`. Optional. */
23
+ provider?: Provider<unknown, SmsPayload>;
24
+ /** The webhook signing key from the MessageBird dashboard (verifies the JWT signature). */
25
+ signingKey: string;
26
+ /**
27
+ * The public URL MessageBird signed (the `url_hash` claim covers the full URL). Set this
28
+ * when `request.url` differs from the configured webhook URL (proxy/rewrite). Defaults to
29
+ * `request.url`.
30
+ */
31
+ url?: string;
32
+ }
33
+ /**
34
+ * Creates a MessageBird inbound receiver. Requests are verified with MessageBird's
35
+ * `messagebird-signature-jwt` scheme: an HS256 JWT signed with the signing key whose claims
36
+ * bind the request — `iss` (`MessageBird`), `jti`, `exp`, `url_hash` (SHA-256 of the full URL)
37
+ * and `payload_hash` (SHA-256 of the body) — each of which is checked before dispatch.
38
+ *
39
+ * MessageBird has no synchronous reply; acknowledge and answer via `context.reply()`.
40
+ * @param options Verification config, the message handler and an optional reply provider.
41
+ * @returns The inbound channel.
42
+ */
43
+ declare const createMessageBirdReceiver: (options: MessageBirdReceiverOptions) => Receiver;
44
+ /** @deprecated Renamed to `createMessageBirdProvider`; removed in the next major. */
45
+ declare const messageBirdProvider: typeof messageBirdProvider$1;
46
+ export { type MessageBirdConfig, type MessageBirdReceiverOptions, messageBirdProvider$1 as createMessageBirdProvider, createMessageBirdReceiver, messageBirdProvider };
@@ -1 +1 @@
1
- import{default as a}from"../../../packem_shared/messageBirdProvider-CnsBOuY6.js";export{a as messageBirdProvider};
1
+ import e from"../../../packem_shared/createMessageBirdProvider-CnsBOuY6.js";import{createMessageBirdReceiver as a}from"../../../packem_shared/createMessageBirdReceiver-DNPoScxB.js";const s=e;export{e as createMessageBirdProvider,a as createMessageBirdReceiver,s as messageBirdProvider};
@@ -14,5 +14,7 @@ interface PlivoConfig extends BaseConfig {
14
14
  * Plivo SMS provider. Sends to many recipients in one call (`dst` joined by `&lt;`).
15
15
  * @see https://www.plivo.com/docs/sms/api/message
16
16
  */
17
- declare const plivoProvider: ProviderFactory<PlivoConfig, SmsPayload>;
18
- export { type PlivoConfig, plivoProvider };
17
+ declare const plivoProvider$1: ProviderFactory<PlivoConfig, SmsPayload>;
18
+ /** @deprecated Renamed to `createPlivoProvider`; removed in the next major. */
19
+ declare const plivoProvider: typeof plivoProvider$1;
20
+ export { type PlivoConfig, plivoProvider$1 as createPlivoProvider, plivoProvider };
@@ -1 +1 @@
1
- import{default as e}from"../../../packem_shared/plivoProvider-C27zpwI3.js";export{e as plivoProvider};
1
+ import o from"../../../packem_shared/createPlivoProvider-C27zpwI3.js";const i=o;export{o as createPlivoProvider,i as plivoProvider};
@@ -17,5 +17,7 @@ interface SnsConfig extends BaseConfig {
17
17
  * computed entirely via Web Crypto (HMAC-SHA256 + SHA-256), no `node:crypto`.
18
18
  * @see https://docs.aws.amazon.com/sns/latest/api/API_Publish.html
19
19
  */
20
- declare const snsProvider: ProviderFactory<SnsConfig, SmsPayload>;
21
- export { type SnsConfig, snsProvider };
20
+ declare const snsProvider$1: ProviderFactory<SnsConfig, SmsPayload>;
21
+ /** @deprecated Renamed to `createSnsProvider`; removed in the next major. */
22
+ declare const snsProvider: typeof snsProvider$1;
23
+ export { type SnsConfig, snsProvider$1 as createSnsProvider, snsProvider };
@@ -1 +1 @@
1
- import{default as o}from"../../../packem_shared/snsProvider-BtlNUN7u.js";export{o as snsProvider};
1
+ import r from"../../../packem_shared/createSnsProvider-Df9fqQ2A.js";const s=r;export{r as createSnsProvider,s as snsProvider};
@@ -1,5 +1,7 @@
1
1
  import { d as BaseConfig, S as SmsPayload } from "../../../packem_shared/types.d-C7l7qdMG.js";
2
- import { a as ProviderFactory } from "../../../packem_shared/provider.d-Dh32nRm9.js";
2
+ import { a as ProviderFactory, P as Provider } from "../../../packem_shared/provider.d-Dh32nRm9.js";
3
+ import { l as ReceiverOptions, R as Receiver } from "../../../packem_shared/types.d-4T7bNo4x.js";
4
+ import "../../../packem_shared/types.d-BXfGenMH.js";
3
5
  interface TelnyxConfig extends BaseConfig {
4
6
  /** Telnyx API key (v2). */
5
7
  apiKey: string;
@@ -14,5 +16,28 @@ interface TelnyxConfig extends BaseConfig {
14
16
  * Telnyx SMS/MMS provider (v2 API). Edge-safe — `fetch` + Bearer auth.
15
17
  * @see https://developers.telnyx.com/api/messaging/send-message
16
18
  */
17
- declare const telnyxProvider: ProviderFactory<TelnyxConfig, SmsPayload>;
18
- export { type TelnyxConfig, telnyxProvider };
19
+ declare const telnyxProvider$1: ProviderFactory<TelnyxConfig, SmsPayload>;
20
+ /**
21
+ * Options for the Telnyx inbound receiver.
22
+ */
23
+ interface TelnyxReceiverOptions extends ReceiverOptions {
24
+ /** The outbound Telnyx SMS provider used by `context.reply()`. Optional. */
25
+ provider?: Provider<unknown, SmsPayload>;
26
+ /** The account's Ed25519 public key (base64), from the Telnyx Mission Control portal. */
27
+ publicKey: string;
28
+ }
29
+ /**
30
+ * Creates a Telnyx inbound receiver for incoming SMS/MMS. Requests are verified with Telnyx's
31
+ * Ed25519 scheme — the `telnyx-signature-ed25519` header (base64) over `{timestamp}|{body}`,
32
+ * checked against the account public key, with the `telnyx-timestamp` held to a 5-minute
33
+ * replay window.
34
+ *
35
+ * Telnyx has no synchronous reply, so acknowledge and answer through `context.reply()` (or the
36
+ * outbound Telnyx provider).
37
+ * @param options Verification config, the message handler and an optional reply provider.
38
+ * @returns The inbound channel.
39
+ */
40
+ declare const createTelnyxReceiver: (options: TelnyxReceiverOptions) => Receiver;
41
+ /** @deprecated Renamed to `createTelnyxProvider`; removed in the next major. */
42
+ declare const telnyxProvider: typeof telnyxProvider$1;
43
+ export { type TelnyxConfig, type TelnyxReceiverOptions, telnyxProvider$1 as createTelnyxProvider, createTelnyxReceiver, telnyxProvider };
@@ -1 +1 @@
1
- import{default as o}from"../../../packem_shared/telnyxProvider-M23jXIyu.js";export{o as telnyxProvider};
1
+ import e from"../../../packem_shared/createTelnyxProvider-M23jXIyu.js";import{createTelnyxReceiver as i}from"../../../packem_shared/createTelnyxReceiver-Ev-ThOtu.js";const o=e;export{e as createTelnyxProvider,i as createTelnyxReceiver,o as telnyxProvider};
@@ -1,5 +1,7 @@
1
1
  import { d as BaseConfig, S as SmsPayload } from "../../../packem_shared/types.d-C7l7qdMG.js";
2
- import { a as ProviderFactory } from "../../../packem_shared/provider.d-Dh32nRm9.js";
2
+ import { a as ProviderFactory, P as Provider } from "../../../packem_shared/provider.d-Dh32nRm9.js";
3
+ import { l as ReceiverOptions, R as Receiver } from "../../../packem_shared/types.d-4T7bNo4x.js";
4
+ import "../../../packem_shared/types.d-BXfGenMH.js";
3
5
  interface TwilioConfig extends BaseConfig {
4
6
  /** Twilio Account SID. */
5
7
  accountSid: string;
@@ -16,5 +18,36 @@ interface TwilioConfig extends BaseConfig {
16
18
  * Twilio SMS/MMS provider. Edge-safe — uses `fetch` + Basic auth, no Node built-ins.
17
19
  * @see https://www.twilio.com/docs/sms/api/message-resource
18
20
  */
19
- declare const twilioProvider: ProviderFactory<TwilioConfig, SmsPayload>;
20
- export { type TwilioConfig, twilioProvider };
21
+ declare const twilioProvider$1: ProviderFactory<TwilioConfig, SmsPayload>;
22
+ /**
23
+ * Options for the Twilio inbound receiver (SMS and WhatsApp).
24
+ */
25
+ interface TwilioReceiverOptions extends ReceiverOptions {
26
+ /** The Twilio auth token, used to verify `X-Twilio-Signature`. */
27
+ authToken: string;
28
+ /**
29
+ * The outbound Twilio SMS provider used by `context.reply()`, which addresses the reply
30
+ * back to the sender (re-applying the `whatsapp:` prefix for WhatsApp). Optional.
31
+ */
32
+ provider?: Provider<unknown, SmsPayload>;
33
+ /**
34
+ * The public URL Twilio signed the request against. Twilio's signature covers the exact
35
+ * webhook URL it was configured with, so behind a proxy or rewrite (where `request.url`
36
+ * differs) set this to the configured URL. Defaults to `request.url`.
37
+ */
38
+ url?: string;
39
+ }
40
+ /**
41
+ * Creates a Twilio inbound receiver for incoming SMS and WhatsApp messages. Requests are
42
+ * verified with Twilio's signature scheme (base64 HMAC-SHA1 over the request URL plus sorted
43
+ * form parameters) before dispatch.
44
+ *
45
+ * A handler may return an {@link ../types.InboundReply}; its `text` is serialised into a TwiML
46
+ * message element. Returning nothing acknowledges with an empty TwiML document.
47
+ * @param options Verification config, the message handler and an optional reply provider.
48
+ * @returns The inbound channel.
49
+ */
50
+ declare const createTwilioReceiver: (options: TwilioReceiverOptions) => Receiver;
51
+ /** @deprecated Renamed to `createTwilioProvider`; removed in the next major. */
52
+ declare const twilioProvider: typeof twilioProvider$1;
53
+ export { type TwilioConfig, type TwilioReceiverOptions, twilioProvider$1 as createTwilioProvider, createTwilioReceiver, twilioProvider };
@@ -1 +1 @@
1
- import{default as e}from"../../../packem_shared/twilioProvider-CaoTEqz-.js";export{e as twilioProvider};
1
+ import r from"../../../packem_shared/createTwilioProvider-CaoTEqz-.js";import{createTwilioReceiver as c}from"../../../packem_shared/createTwilioReceiver-CQmdSCMX.js";const o=r;export{r as createTwilioProvider,c as createTwilioReceiver,o as twilioProvider};
@@ -1,5 +1,7 @@
1
1
  import { d as BaseConfig, S as SmsPayload } from "../../../packem_shared/types.d-C7l7qdMG.js";
2
- import { a as ProviderFactory } from "../../../packem_shared/provider.d-Dh32nRm9.js";
2
+ import { a as ProviderFactory, P as Provider } from "../../../packem_shared/provider.d-Dh32nRm9.js";
3
+ import { l as ReceiverOptions, R as Receiver } from "../../../packem_shared/types.d-4T7bNo4x.js";
4
+ import "../../../packem_shared/types.d-BXfGenMH.js";
3
5
  interface VonageConfig extends BaseConfig {
4
6
  /** Vonage (Nexmo) API key. */
5
7
  apiKey: string;
@@ -14,5 +16,27 @@ interface VonageConfig extends BaseConfig {
14
16
  * Vonage (Nexmo) SMS provider. Edge-safe — `fetch` + form auth.
15
17
  * @see https://developer.vonage.com/en/api/sms
16
18
  */
17
- declare const vonageProvider: ProviderFactory<VonageConfig, SmsPayload>;
18
- export { type VonageConfig, vonageProvider };
19
+ declare const vonageProvider$1: ProviderFactory<VonageConfig, SmsPayload>;
20
+ /**
21
+ * Options for the Vonage inbound receiver.
22
+ */
23
+ interface VonageReceiverOptions extends ReceiverOptions {
24
+ /** The outbound Vonage SMS provider used by `context.reply()`. Optional. */
25
+ provider?: Provider<unknown, SmsPayload>;
26
+ /** The account signature secret (verifies the `Authorization: Bearer` JWT). */
27
+ signatureSecret: string;
28
+ }
29
+ /**
30
+ * Creates a Vonage inbound receiver for the Messages API. Requests carry an HS256 JWT in the
31
+ * `Authorization: Bearer` header, signed with the account signature secret; the JWT's
32
+ * `payload_hash` claim (SHA-256 of the raw body) binds it to this request. Both the signature
33
+ * and `payload_hash` are checked, along with the token's validity window, before dispatch.
34
+ *
35
+ * Vonage has no synchronous reply; acknowledge and answer via `context.reply()`.
36
+ * @param options Verification config, the message handler and an optional reply provider.
37
+ * @returns The inbound channel.
38
+ */
39
+ declare const createVonageReceiver: (options: VonageReceiverOptions) => Receiver;
40
+ /** @deprecated Renamed to `createVonageProvider`; removed in the next major. */
41
+ declare const vonageProvider: typeof vonageProvider$1;
42
+ export { type VonageConfig, type VonageReceiverOptions, vonageProvider$1 as createVonageProvider, createVonageReceiver, vonageProvider };
@@ -1 +1 @@
1
- import{default as r}from"../../../packem_shared/vonageProvider-CYNivc-x.js";export{r as vonageProvider};
1
+ import e from"../../../packem_shared/createVonageProvider-CYNivc-x.js";import{createVonageReceiver as v}from"../../../packem_shared/createVonageReceiver-BWVR3E7q.js";const o=e;export{e as createVonageProvider,v as createVonageReceiver,o as vonageProvider};