@memberjunction/communication-twilio 5.49.0 → 5.51.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.
@@ -1,4 +1,4 @@
1
- import { BaseCommunicationProvider, CreateDraftParams, CreateDraftResult, ForwardMessageParams, ForwardMessageResult, GetMessagesParams, GetMessagesResult, MessageResult, ProcessedMessage, ProviderCredentialsBase, ReplyToMessageParams, ReplyToMessageResult, ProviderOperation } from "@memberjunction/communication-types";
1
+ import { BaseCommunicationProvider, BaseMessageResult, CreateDraftParams, CreateDraftResult, CreateSubscriptionParams, DeleteSubscriptionParams, ForwardMessageParams, ForwardMessageResult, GetMessagesParams, GetMessagesResult, MessageResult, ParseNotificationResult, ProcessedMessage, ProviderCredentialsBase, ReplyToMessageParams, ReplyToMessageResult, SubscriptionCapabilities, SubscriptionResult, WebhookNotificationInput, ProviderOperation } from "@memberjunction/communication-types";
2
2
  /**
3
3
  * Credentials for Twilio provider.
4
4
  * Extend ProviderCredentialsBase to support per-request credential override.
@@ -98,5 +98,71 @@ export declare class TwilioProvider extends BaseCommunicationProvider {
98
98
  * @param credentials - Optional credentials (not used for Twilio)
99
99
  */
100
100
  CreateDraft(params: CreateDraftParams, credentials?: TwilioCredentials): Promise<CreateDraftResult>;
101
+ /**
102
+ * Detects whether a Twilio SDK error represents a not-found condition, treated as
103
+ * success by the idempotent {@link DeleteSubscription}. Twilio surfaces this as HTTP
104
+ * status 404 and/or Twilio error code 20404.
105
+ */
106
+ private isNotFoundError;
107
+ /**
108
+ * Resolves {@link CreateSubscriptionParams.Identifier} to a phone-number SID. An
109
+ * identifier beginning with `PN` is already a SID and is returned verbatim (no network
110
+ * call). Otherwise it is treated as an E.164 number and looked up via
111
+ * `incomingPhoneNumbers.list`, returning the first matching number's SID or `null` when
112
+ * the account owns no such number.
113
+ */
114
+ private resolvePhoneNumberSid;
115
+ /**
116
+ * Points a phone number's inbound-SMS webhook (`smsUrl`) at the consumer's endpoint,
117
+ * making Twilio deliver inbound SMS notifications there. The number must belong to the
118
+ * authenticated account.
119
+ *
120
+ * Fail-fast: {@link CreateSubscriptionParams.NotificationUrl} must be https and
121
+ * {@link CreateSubscriptionParams.Identifier} (an E.164 number like `+15551234567` or a
122
+ * phone-number SID like `PN...`) must be provided.
123
+ *
124
+ * @param params - Identifier (target number/SID) and NotificationUrl (webhook target)
125
+ * @param credentials - Optional account credentials override for this request
126
+ * @returns Promise<SubscriptionResult> - SubscriptionID = the phone-number SID;
127
+ * ExpiresAt is undefined because Twilio webhooks never expire
128
+ */
129
+ CreateSubscription(params: CreateSubscriptionParams, credentials?: TwilioCredentials): Promise<SubscriptionResult>;
130
+ /**
131
+ * Clears a phone number's inbound-SMS webhook, so Twilio stops delivering inbound SMS
132
+ * notifications for it. Idempotent from the consumer's perspective: a not-found
133
+ * (HTTP 404 / Twilio code 20404) is treated as success.
134
+ *
135
+ * @param params - SubscriptionID = the phone-number SID returned by CreateSubscription
136
+ * @param credentials - Optional account credentials override for this request
137
+ * @returns Promise<BaseMessageResult> - Result of the delete operation
138
+ */
139
+ DeleteSubscription(params: DeleteSubscriptionParams, credentials?: TwilioCredentials): Promise<BaseMessageResult>;
140
+ /**
141
+ * Parses and verifies an inbound Twilio SMS webhook. Pure: no Twilio client, no network.
142
+ * Safe on hostile/garbage input — never throws; returns `Success: false` with a 400
143
+ * suggested status when the body cannot be parsed at all.
144
+ *
145
+ * Twilio posts `application/x-www-form-urlencoded`. The `X-Twilio-Signature` header is
146
+ * verified via the SDK's `validateRequest(authToken, signature, url, params)` using the
147
+ * account Auth Token (the "Messaging webhook signature" secret). The parsed notification
148
+ * is ALWAYS returned even when the signature is invalid — the flag is set so the consumer
149
+ * can decide — but an unparseable body is the 400 case.
150
+ *
151
+ * INLINE mode: the webhook carries the full message, so {@link NormalizedNotification.Message}
152
+ * is populated and consumers need not re-fetch. `MessageSid` is also surfaced in
153
+ * {@link NormalizedNotification.MessageIDs} as a still-useful pointer.
154
+ *
155
+ * @param input - Transport-neutral capture of the inbound webhook request
156
+ * @param credentials - Optional account credentials override (for signature verification)
157
+ * @returns Promise<ParseNotificationResult> - The normalized inbound message + signature outcome
158
+ */
159
+ ParseNotification(input: WebhookNotificationInput, credentials?: TwilioCredentials): Promise<ParseNotificationResult>;
160
+ /**
161
+ * Returns Twilio's subscription capabilities. Twilio is an INLINE-payload, inbound-parse
162
+ * provider: webhooks never expire (no renewal), only `created` notifications are
163
+ * delivered, no endpoint-validation handshake is performed, management is supported
164
+ * (pointing/clearing a number's `smsUrl`), and the full message is delivered inline.
165
+ */
166
+ GetSubscriptionCapabilities(): SubscriptionCapabilities;
101
167
  }
102
168
  //# sourceMappingURL=TwilioProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TwilioProvider.d.ts","sourceRoot":"","sources":["../src/TwilioProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EAGpB,iBAAiB,EAClB,MAAM,qCAAqC,CAAC;AAM7C;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAkB,SAAQ,uBAAuB;IAChE,yBAAyB;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6DAA6D;IAC7D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8DAA8D;IAC9D,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAaD;;GAEG;AACH,qBACa,cAAe,SAAQ,yBAAyB;IAC3D,uDAAuD;IACvD,OAAO,CAAC,eAAe,CAAuB;IAE9C;;;;;OAKG;IACH,OAAO,CAAC,WAAW,CAGhB;IAEH;;;;OAIG;IACa,sBAAsB,IAAI,iBAAiB,EAAE;IAW7D;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAyB1B;;OAEG;IACH,OAAO,CAAC,eAAe;IAyBvB;;OAEG;IACH,OAAO,CAAC,cAAc;IAUtB;;OAEG;IACH,OAAO,CAAC,UAAU;IAYlB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAkBhB;;;;;;OAMG;IACU,iBAAiB,CAC5B,OAAO,EAAE,gBAAgB,EACzB,WAAW,CAAC,EAAE,iBAAiB,GAC9B,OAAO,CAAC,aAAa,CAAC;IA6EzB;;;;;;OAMG;IACU,WAAW,CACtB,MAAM,EAAE,iBAAiB,EACzB,WAAW,CAAC,EAAE,iBAAiB,GAC9B,OAAO,CAAC,iBAAiB,CAAC;IAuD7B;;;;;;OAMG;IACU,cAAc,CACzB,MAAM,EAAE,oBAAoB,EAC5B,WAAW,CAAC,EAAE,iBAAiB,GAC9B,OAAO,CAAC,oBAAoB,CAAC;IAkEhC;;;;;;;;OAQG;IACU,cAAc,CACzB,MAAM,EAAE,oBAAoB,EAC5B,WAAW,CAAC,EAAE,iBAAiB,GAC9B,OAAO,CAAC,oBAAoB,CAAC;IA2DhC;;;;OAIG;IACU,WAAW,CACtB,MAAM,EAAE,iBAAiB,EACzB,WAAW,CAAC,EAAE,iBAAiB,GAC9B,OAAO,CAAC,iBAAiB,CAAC;CAM9B"}
1
+ {"version":3,"file":"TwilioProvider.d.ts","sourceRoot":"","sources":["../src/TwilioProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,EACxB,wBAAwB,EACxB,oBAAoB,EACpB,oBAAoB,EAEpB,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EAEb,uBAAuB,EACvB,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EAEpB,wBAAwB,EACxB,kBAAkB,EAElB,wBAAwB,EACxB,iBAAiB,EAClB,MAAM,qCAAqC,CAAC;AAM7C;;;;;;;GAOG;AACH,MAAM,WAAW,iBAAkB,SAAQ,uBAAuB;IAChE,yBAAyB;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6DAA6D;IAC7D,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,8DAA8D;IAC9D,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAaD;;GAEG;AACH,qBACa,cAAe,SAAQ,yBAAyB;IAC3D,uDAAuD;IACvD,OAAO,CAAC,eAAe,CAAuB;IAE9C;;;;;OAKG;IACH,OAAO,CAAC,WAAW,CAGhB;IAEH;;;;OAIG;IACa,sBAAsB,IAAI,iBAAiB,EAAE;IAkB7D;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAyB1B;;OAEG;IACH,OAAO,CAAC,eAAe;IAyBvB;;OAEG;IACH,OAAO,CAAC,cAAc;IAUtB;;OAEG;IACH,OAAO,CAAC,UAAU;IAYlB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAkBhB;;;;;;OAMG;IACU,iBAAiB,CAC5B,OAAO,EAAE,gBAAgB,EACzB,WAAW,CAAC,EAAE,iBAAiB,GAC9B,OAAO,CAAC,aAAa,CAAC;IA6EzB;;;;;;OAMG;IACU,WAAW,CACtB,MAAM,EAAE,iBAAiB,EACzB,WAAW,CAAC,EAAE,iBAAiB,GAC9B,OAAO,CAAC,iBAAiB,CAAC;IAuD7B;;;;;;OAMG;IACU,cAAc,CACzB,MAAM,EAAE,oBAAoB,EAC5B,WAAW,CAAC,EAAE,iBAAiB,GAC9B,OAAO,CAAC,oBAAoB,CAAC;IAkEhC;;;;;;;;OAQG;IACU,cAAc,CACzB,MAAM,EAAE,oBAAoB,EAC5B,WAAW,CAAC,EAAE,iBAAiB,GAC9B,OAAO,CAAC,oBAAoB,CAAC;IA2DhC;;;;OAIG;IACU,WAAW,CACtB,MAAM,EAAE,iBAAiB,EACzB,WAAW,CAAC,EAAE,iBAAiB,GAC9B,OAAO,CAAC,iBAAiB,CAAC;IAuB7B;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAQvB;;;;;;OAMG;YACW,qBAAqB;IAQnC;;;;;;;;;;;;;OAaG;IACmB,kBAAkB,CACtC,MAAM,EAAE,wBAAwB,EAChC,WAAW,CAAC,EAAE,iBAAiB,GAC9B,OAAO,CAAC,kBAAkB,CAAC;IAyC9B;;;;;;;;OAQG;IACmB,kBAAkB,CACtC,MAAM,EAAE,wBAAwB,EAChC,WAAW,CAAC,EAAE,iBAAiB,GAC9B,OAAO,CAAC,iBAAiB,CAAC;IAmB7B;;;;;;;;;;;;;;;;;;OAkBG;IACmB,iBAAiB,CACrC,KAAK,EAAE,wBAAwB,EAC/B,WAAW,CAAC,EAAE,iBAAiB,GAC9B,OAAO,CAAC,uBAAuB,CAAC;IAyDnC;;;;;OAKG;IACa,2BAA2B,IAAI,wBAAwB;CASxE"}
@@ -38,8 +38,15 @@ let TwilioProvider = class TwilioProvider extends BaseCommunicationProvider {
38
38
  'SendSingleMessage',
39
39
  'GetMessages',
40
40
  'ForwardMessage',
41
- 'ReplyToMessage'
41
+ 'ReplyToMessage',
42
+ // Push-notification subscriptions (inbound-parse mode). Twilio's "subscription" is
43
+ // pointing a phone number's inbound SMS webhook at the consumer's URL. Webhooks never
44
+ // expire, so RenewSubscription is intentionally NOT supported.
45
+ 'CreateSubscription',
46
+ 'DeleteSubscription',
47
+ 'ParseNotification'
42
48
  // Note: CreateDraft is NOT supported - Twilio is real-time messaging only
49
+ // Note: RenewSubscription is NOT supported - Twilio webhooks never expire
43
50
  // Mailbox operations (folders, archive, attachments) are not applicable to SMS/messaging
44
51
  ];
45
52
  }
@@ -396,6 +403,214 @@ let TwilioProvider = class TwilioProvider extends BaseCommunicationProvider {
396
403
  ErrorMessage: 'Twilio does not support creating draft messages. Drafts are only supported by email providers with mailbox access (Gmail, MS Graph).'
397
404
  };
398
405
  }
406
+ // ========================================================================
407
+ // PUSH-NOTIFICATION SUBSCRIPTIONS (inbound-parse mode)
408
+ //
409
+ // Twilio has no "subscription" resource. Instead, each phone number owned by the
410
+ // account carries an inbound-SMS webhook (`smsUrl`); Twilio POSTs an
411
+ // application/x-www-form-urlencoded body carrying the FULL inbound message to that URL
412
+ // whenever an SMS arrives. So a "subscription" here is simply pointing a number's
413
+ // `smsUrl` at the consumer's endpoint, and "deleting" it is clearing that URL. These
414
+ // registrations never expire — hence no RenewSubscription.
415
+ //
416
+ // AUTH NOTE: CreateSubscription/DeleteSubscription ride the account credentials (Account
417
+ // SID + Auth Token) and require the target phone number to belong to that account.
418
+ // ParseNotification verifies the inbound webhook's `X-Twilio-Signature` using the same
419
+ // account Auth Token (the "Messaging webhook signature" secret).
420
+ // ========================================================================
421
+ /**
422
+ * Detects whether a Twilio SDK error represents a not-found condition, treated as
423
+ * success by the idempotent {@link DeleteSubscription}. Twilio surfaces this as HTTP
424
+ * status 404 and/or Twilio error code 20404.
425
+ */
426
+ isNotFoundError(error) {
427
+ if (error && typeof error === 'object') {
428
+ const e = error;
429
+ return e.status === 404 || e.code === 20404;
430
+ }
431
+ return false;
432
+ }
433
+ /**
434
+ * Resolves {@link CreateSubscriptionParams.Identifier} to a phone-number SID. An
435
+ * identifier beginning with `PN` is already a SID and is returned verbatim (no network
436
+ * call). Otherwise it is treated as an E.164 number and looked up via
437
+ * `incomingPhoneNumbers.list`, returning the first matching number's SID or `null` when
438
+ * the account owns no such number.
439
+ */
440
+ async resolvePhoneNumberSid(client, identifier) {
441
+ if (identifier.startsWith('PN')) {
442
+ return identifier;
443
+ }
444
+ const matches = await client.incomingPhoneNumbers.list({ phoneNumber: identifier, limit: 1 });
445
+ return matches.length > 0 ? matches[0].sid : null;
446
+ }
447
+ /**
448
+ * Points a phone number's inbound-SMS webhook (`smsUrl`) at the consumer's endpoint,
449
+ * making Twilio deliver inbound SMS notifications there. The number must belong to the
450
+ * authenticated account.
451
+ *
452
+ * Fail-fast: {@link CreateSubscriptionParams.NotificationUrl} must be https and
453
+ * {@link CreateSubscriptionParams.Identifier} (an E.164 number like `+15551234567` or a
454
+ * phone-number SID like `PN...`) must be provided.
455
+ *
456
+ * @param params - Identifier (target number/SID) and NotificationUrl (webhook target)
457
+ * @param credentials - Optional account credentials override for this request
458
+ * @returns Promise<SubscriptionResult> - SubscriptionID = the phone-number SID;
459
+ * ExpiresAt is undefined because Twilio webhooks never expire
460
+ */
461
+ async CreateSubscription(params, credentials) {
462
+ // Fail-fast input validation (before any Twilio call).
463
+ if (!params.Identifier) {
464
+ return { Success: false, ErrorMessage: 'CreateSubscription requires an Identifier (an E.164 phone number or a phone-number SID)' };
465
+ }
466
+ if (!params.NotificationUrl || !params.NotificationUrl.toLowerCase().startsWith('https://')) {
467
+ return { Success: false, ErrorMessage: 'NotificationUrl must be an https:// URL' };
468
+ }
469
+ try {
470
+ const creds = this.resolveCredentials(credentials);
471
+ const client = this.getTwilioClient(creds);
472
+ const sid = await this.resolvePhoneNumberSid(client, params.Identifier);
473
+ if (!sid) {
474
+ return {
475
+ Success: false,
476
+ ErrorMessage: `No phone number matching '${params.Identifier}' found on this Twilio account`
477
+ };
478
+ }
479
+ const result = await client.incomingPhoneNumbers(sid).update({
480
+ smsUrl: params.NotificationUrl,
481
+ smsMethod: 'POST'
482
+ });
483
+ return {
484
+ Success: true,
485
+ SubscriptionID: sid,
486
+ ExpiresAt: undefined, // Twilio webhooks never expire
487
+ Result: result
488
+ };
489
+ }
490
+ catch (error) {
491
+ LogError('Error creating subscription via Twilio', undefined, error);
492
+ return {
493
+ Success: false,
494
+ ErrorMessage: `Error creating subscription: ${error instanceof Error ? error.message : String(error)}`
495
+ };
496
+ }
497
+ }
498
+ /**
499
+ * Clears a phone number's inbound-SMS webhook, so Twilio stops delivering inbound SMS
500
+ * notifications for it. Idempotent from the consumer's perspective: a not-found
501
+ * (HTTP 404 / Twilio code 20404) is treated as success.
502
+ *
503
+ * @param params - SubscriptionID = the phone-number SID returned by CreateSubscription
504
+ * @param credentials - Optional account credentials override for this request
505
+ * @returns Promise<BaseMessageResult> - Result of the delete operation
506
+ */
507
+ async DeleteSubscription(params, credentials) {
508
+ try {
509
+ const creds = this.resolveCredentials(credentials);
510
+ const client = this.getTwilioClient(creds);
511
+ await client.incomingPhoneNumbers(params.SubscriptionID).update({ smsUrl: '' });
512
+ return { Success: true };
513
+ }
514
+ catch (error) {
515
+ if (this.isNotFoundError(error)) {
516
+ // Already gone - deletion is idempotent from the consumer's perspective.
517
+ return { Success: true };
518
+ }
519
+ LogError('Error deleting subscription via Twilio', undefined, error);
520
+ return {
521
+ Success: false,
522
+ ErrorMessage: `Error deleting subscription: ${error instanceof Error ? error.message : String(error)}`
523
+ };
524
+ }
525
+ }
526
+ /**
527
+ * Parses and verifies an inbound Twilio SMS webhook. Pure: no Twilio client, no network.
528
+ * Safe on hostile/garbage input — never throws; returns `Success: false` with a 400
529
+ * suggested status when the body cannot be parsed at all.
530
+ *
531
+ * Twilio posts `application/x-www-form-urlencoded`. The `X-Twilio-Signature` header is
532
+ * verified via the SDK's `validateRequest(authToken, signature, url, params)` using the
533
+ * account Auth Token (the "Messaging webhook signature" secret). The parsed notification
534
+ * is ALWAYS returned even when the signature is invalid — the flag is set so the consumer
535
+ * can decide — but an unparseable body is the 400 case.
536
+ *
537
+ * INLINE mode: the webhook carries the full message, so {@link NormalizedNotification.Message}
538
+ * is populated and consumers need not re-fetch. `MessageSid` is also surfaced in
539
+ * {@link NormalizedNotification.MessageIDs} as a still-useful pointer.
540
+ *
541
+ * @param input - Transport-neutral capture of the inbound webhook request
542
+ * @param credentials - Optional account credentials override (for signature verification)
543
+ * @returns Promise<ParseNotificationResult> - The normalized inbound message + signature outcome
544
+ */
545
+ async ParseNotification(input, credentials) {
546
+ // Parse the urlencoded body. Never throw on bad input.
547
+ let params;
548
+ try {
549
+ if (!input?.RawBody) {
550
+ throw new Error('empty body');
551
+ }
552
+ params = Object.fromEntries(new URLSearchParams(input.RawBody));
553
+ if (Object.keys(params).length === 0) {
554
+ throw new Error('no parameters parsed from body');
555
+ }
556
+ }
557
+ catch (error) {
558
+ return {
559
+ Success: false,
560
+ ErrorMessage: `Malformed Twilio notification body: ${error instanceof Error ? error.message : String(error)}`,
561
+ Notifications: [],
562
+ SuggestedResponseStatus: 400
563
+ };
564
+ }
565
+ // Verify the Twilio signature (pure crypto, no network). Resolve the account Auth Token
566
+ // for the HMAC secret; on missing/invalid credentials treat the signature as invalid
567
+ // rather than throwing — the notification is still returned for the consumer to judge.
568
+ let signatureValid = false;
569
+ try {
570
+ const creds = this.resolveCredentials(credentials);
571
+ const signatureHeader = input.Headers?.['x-twilio-signature'] ?? '';
572
+ const url = input.RequestUrl ?? '';
573
+ signatureValid = twilio.validateRequest(creds.authToken, signatureHeader, url, params);
574
+ }
575
+ catch (error) {
576
+ LogError('Error verifying Twilio signature', undefined, error);
577
+ signatureValid = false;
578
+ }
579
+ const message = {
580
+ From: params.From ?? '',
581
+ To: params.To ?? '',
582
+ Body: params.Body ?? ''
583
+ };
584
+ const notification = {
585
+ Kind: 'message',
586
+ ChangeType: 'created',
587
+ MessageIDs: params.MessageSid ? [params.MessageSid] : [],
588
+ Identifier: params.To,
589
+ Message: message, // INLINE payload
590
+ RawData: params
591
+ };
592
+ return {
593
+ Success: true,
594
+ SignatureValid: signatureValid,
595
+ Notifications: [notification],
596
+ SuggestedResponseStatus: 200
597
+ };
598
+ }
599
+ /**
600
+ * Returns Twilio's subscription capabilities. Twilio is an INLINE-payload, inbound-parse
601
+ * provider: webhooks never expire (no renewal), only `created` notifications are
602
+ * delivered, no endpoint-validation handshake is performed, management is supported
603
+ * (pointing/clearing a number's `smsUrl`), and the full message is delivered inline.
604
+ */
605
+ GetSubscriptionCapabilities() {
606
+ return {
607
+ MaxLifetimeMinutes: undefined, // Twilio webhooks never expire
608
+ SupportedChangeTypes: ['created'],
609
+ RequiresEndpointValidation: false,
610
+ SupportsSubscriptionManagement: true,
611
+ DeliversPayloadInline: true
612
+ };
613
+ }
399
614
  };
400
615
  TwilioProvider = __decorate([
401
616
  RegisterClass(BaseCommunicationProvider, 'Twilio')
@@ -1 +1 @@
1
- {"version":3,"file":"TwilioProvider.js","sourceRoot":"","sources":["../src/TwilioProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TwilioProvider.js","sourceRoot":"","sources":["../src/TwilioProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Subscriptions.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Subscriptions.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/Subscriptions.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,258 @@
1
+ /**
2
+ * Unit tests for the Twilio provider's push-notification subscription support
3
+ * (inbound-parse mode): getSupportedOperations, SupportsPush, subscription capabilities,
4
+ * CreateSubscription / DeleteSubscription, and ParseNotification.
5
+ */
6
+ import { describe, it, expect, vi, beforeEach } from 'vitest';
7
+ // ---------------------------------------------------------------------------
8
+ // Mocks
9
+ // ---------------------------------------------------------------------------
10
+ const { mockPnList, mockPnUpdate, mockIncomingPhoneNumbers, mockValidateRequest } = vi.hoisted(() => {
11
+ const mockPnList = vi.fn();
12
+ const mockPnUpdate = vi.fn();
13
+ // incomingPhoneNumbers is callable (returns a context with update()) AND has a list() method,
14
+ // mirroring the Twilio SDK's IncomingPhoneNumberListInstance shape.
15
+ const mockIncomingPhoneNumbers = Object.assign(vi.fn(() => ({ update: mockPnUpdate })), { list: mockPnList });
16
+ const mockValidateRequest = vi.fn();
17
+ return { mockPnList, mockPnUpdate, mockIncomingPhoneNumbers, mockValidateRequest };
18
+ });
19
+ // Mock dotenv
20
+ vi.mock('dotenv', () => ({
21
+ default: { config: vi.fn() },
22
+ }));
23
+ // Mock config.ts directly to avoid dotenv import issues
24
+ vi.mock('../config', () => ({
25
+ TWILIO_ACCOUNT_SID: 'test-account-sid',
26
+ TWILIO_AUTH_TOKEN: 'test-auth-token',
27
+ TWILIO_PHONE_NUMBER: '+15551234567',
28
+ TWILIO_WHATSAPP_NUMBER: '+15559876543',
29
+ TWILIO_FACEBOOK_PAGE_ID: 'fb-page-123',
30
+ }));
31
+ vi.mock('twilio', () => {
32
+ const twilioFn = vi.fn().mockReturnValue({
33
+ incomingPhoneNumbers: mockIncomingPhoneNumbers,
34
+ });
35
+ // twilio.validateRequest is a static on the default export namespace.
36
+ return {
37
+ default: Object.assign(twilioFn, { validateRequest: mockValidateRequest }),
38
+ Twilio: class {
39
+ },
40
+ };
41
+ });
42
+ vi.mock('@memberjunction/communication-types', () => ({
43
+ BaseCommunicationProvider: class {
44
+ getSupportedOperations() { return []; }
45
+ GetSubscriptionCapabilities() { return undefined; }
46
+ // SupportsPush derives from GetSubscriptionCapabilities, as in the real base class.
47
+ get SupportsPush() { return this.GetSubscriptionCapabilities() !== undefined; }
48
+ },
49
+ resolveCredentialValue: (requestVal, envVal, disableFallback) => {
50
+ if (requestVal)
51
+ return requestVal;
52
+ if (!disableFallback && envVal)
53
+ return envVal;
54
+ return undefined;
55
+ },
56
+ validateRequiredCredentials: (creds, required, provider) => {
57
+ for (const key of required) {
58
+ if (!creds[key])
59
+ throw new Error(`${provider}: Missing required credential: ${key}`);
60
+ }
61
+ },
62
+ }));
63
+ vi.mock('@memberjunction/global', async (importOriginal) => {
64
+ const actual = await importOriginal();
65
+ return {
66
+ ...actual,
67
+ RegisterClass: () => (target) => target,
68
+ };
69
+ });
70
+ vi.mock('@memberjunction/core', () => ({
71
+ LogError: vi.fn(),
72
+ LogStatus: vi.fn(),
73
+ }));
74
+ // ---------------------------------------------------------------------------
75
+ // Import after mocks
76
+ // ---------------------------------------------------------------------------
77
+ import { TwilioProvider } from '../TwilioProvider.js';
78
+ // ---------------------------------------------------------------------------
79
+ // Tests
80
+ // ---------------------------------------------------------------------------
81
+ describe('TwilioProvider — push subscriptions', () => {
82
+ let provider;
83
+ beforeEach(() => {
84
+ vi.clearAllMocks();
85
+ provider = new TwilioProvider();
86
+ });
87
+ describe('getSupportedOperations (subscriptions)', () => {
88
+ it('includes CreateSubscription, DeleteSubscription and ParseNotification, but NOT RenewSubscription', () => {
89
+ const ops = provider.getSupportedOperations();
90
+ expect(ops).toContain('CreateSubscription');
91
+ expect(ops).toContain('DeleteSubscription');
92
+ expect(ops).toContain('ParseNotification');
93
+ expect(ops).not.toContain('RenewSubscription');
94
+ });
95
+ });
96
+ describe('SupportsPush', () => {
97
+ it('is true (derived from GetSubscriptionCapabilities)', () => {
98
+ expect(provider.SupportsPush).toBe(true);
99
+ });
100
+ });
101
+ describe('GetSubscriptionCapabilities', () => {
102
+ it('describes an inline-payload, non-expiring, managed provider', () => {
103
+ const caps = provider.GetSubscriptionCapabilities();
104
+ expect(caps).toEqual({
105
+ MaxLifetimeMinutes: undefined,
106
+ SupportedChangeTypes: ['created'],
107
+ RequiresEndpointValidation: false,
108
+ SupportsSubscriptionManagement: true,
109
+ DeliversPayloadInline: true,
110
+ });
111
+ });
112
+ });
113
+ describe('CreateSubscription', () => {
114
+ const baseParams = () => ({
115
+ ChangeTypes: ['created'],
116
+ NotificationUrl: 'https://api.example.com/twilio/sms',
117
+ ClientState: '',
118
+ Identifier: '+15551234567',
119
+ });
120
+ it('resolves an E.164 number to its SID then points smsUrl at the notification URL', async () => {
121
+ mockPnList.mockResolvedValue([{ sid: 'PN123' }]);
122
+ mockPnUpdate.mockResolvedValue({ sid: 'PN123', smsUrl: 'https://api.example.com/twilio/sms' });
123
+ const result = await provider.CreateSubscription(baseParams());
124
+ expect(result.Success).toBe(true);
125
+ expect(result.SubscriptionID).toBe('PN123');
126
+ expect(result.ExpiresAt).toBeUndefined(); // never expires
127
+ // E.164 → SID resolution happened.
128
+ expect(mockPnList).toHaveBeenCalledWith(expect.objectContaining({ phoneNumber: '+15551234567' }));
129
+ // The context was addressed by the resolved SID, and the webhook was set.
130
+ expect(mockIncomingPhoneNumbers).toHaveBeenCalledWith('PN123');
131
+ expect(mockPnUpdate).toHaveBeenCalledWith({
132
+ smsUrl: 'https://api.example.com/twilio/sms',
133
+ smsMethod: 'POST',
134
+ });
135
+ });
136
+ it('uses a phone-number SID (PN...) directly without a list lookup', async () => {
137
+ mockPnUpdate.mockResolvedValue({ sid: 'PNabc' });
138
+ const result = await provider.CreateSubscription({ ...baseParams(), Identifier: 'PNabc' });
139
+ expect(result.Success).toBe(true);
140
+ expect(result.SubscriptionID).toBe('PNabc');
141
+ expect(mockPnList).not.toHaveBeenCalled();
142
+ expect(mockIncomingPhoneNumbers).toHaveBeenCalledWith('PNabc');
143
+ });
144
+ it('fail-fast: rejects a non-https NotificationUrl without touching Twilio', async () => {
145
+ const result = await provider.CreateSubscription({
146
+ ...baseParams(),
147
+ NotificationUrl: 'http://insecure.example.com/hook',
148
+ });
149
+ expect(result.Success).toBe(false);
150
+ expect(result.ErrorMessage).toContain('https');
151
+ expect(mockPnList).not.toHaveBeenCalled();
152
+ expect(mockPnUpdate).not.toHaveBeenCalled();
153
+ });
154
+ it('fail-fast: rejects a missing Identifier without touching Twilio', async () => {
155
+ const result = await provider.CreateSubscription({ ...baseParams(), Identifier: '' });
156
+ expect(result.Success).toBe(false);
157
+ expect(result.ErrorMessage).toContain('Identifier');
158
+ expect(mockPnList).not.toHaveBeenCalled();
159
+ });
160
+ it('fails clearly when the account owns no matching phone number', async () => {
161
+ mockPnList.mockResolvedValue([]);
162
+ const result = await provider.CreateSubscription(baseParams());
163
+ expect(result.Success).toBe(false);
164
+ expect(result.ErrorMessage).toContain('No phone number matching');
165
+ expect(mockPnUpdate).not.toHaveBeenCalled();
166
+ });
167
+ it('surfaces a Twilio error in ErrorMessage', async () => {
168
+ mockPnList.mockResolvedValue([{ sid: 'PN123' }]);
169
+ mockPnUpdate.mockRejectedValue(new Error('phone number not owned by account'));
170
+ const result = await provider.CreateSubscription(baseParams());
171
+ expect(result.Success).toBe(false);
172
+ expect(result.ErrorMessage).toContain('phone number not owned by account');
173
+ });
174
+ });
175
+ describe('DeleteSubscription', () => {
176
+ it('clears the smsUrl and returns success', async () => {
177
+ mockPnUpdate.mockResolvedValue({ sid: 'PN123', smsUrl: '' });
178
+ const result = await provider.DeleteSubscription({ SubscriptionID: 'PN123' });
179
+ expect(result.Success).toBe(true);
180
+ expect(mockIncomingPhoneNumbers).toHaveBeenCalledWith('PN123');
181
+ expect(mockPnUpdate).toHaveBeenCalledWith({ smsUrl: '' });
182
+ });
183
+ it('treats an HTTP 404 as success (idempotent delete)', async () => {
184
+ mockPnUpdate.mockRejectedValue({ status: 404 });
185
+ const result = await provider.DeleteSubscription({ SubscriptionID: 'already-gone' });
186
+ expect(result.Success).toBe(true);
187
+ });
188
+ it('treats Twilio error code 20404 as success (idempotent delete)', async () => {
189
+ mockPnUpdate.mockRejectedValue({ code: 20404 });
190
+ const result = await provider.DeleteSubscription({ SubscriptionID: 'already-gone' });
191
+ expect(result.Success).toBe(true);
192
+ });
193
+ it('surfaces non-not-found errors as failures', async () => {
194
+ mockPnUpdate.mockRejectedValue(new Error('permission denied'));
195
+ const result = await provider.DeleteSubscription({ SubscriptionID: 'PN123' });
196
+ expect(result.Success).toBe(false);
197
+ expect(result.ErrorMessage).toContain('permission denied');
198
+ });
199
+ });
200
+ describe('ParseNotification', () => {
201
+ const validBody = () => new URLSearchParams({
202
+ MessageSid: 'SM123',
203
+ From: '+15559998888',
204
+ To: '+15551234567',
205
+ Body: 'Hello inbound',
206
+ AccountSid: 'test-account-sid',
207
+ }).toString();
208
+ const buildInput = (overrides = {}) => ({
209
+ Headers: { 'x-twilio-signature': 'sig-abc' },
210
+ QueryParams: {},
211
+ RawBody: validBody(),
212
+ RequestUrl: 'https://api.example.com/twilio/sms',
213
+ ...overrides,
214
+ });
215
+ it('parses a valid urlencoded body into a normalized notification with inline Message', async () => {
216
+ mockValidateRequest.mockReturnValue(true);
217
+ const result = await provider.ParseNotification(buildInput());
218
+ expect(result.Success).toBe(true);
219
+ expect(result.SignatureValid).toBe(true);
220
+ expect(result.SuggestedResponseStatus).toBe(200);
221
+ expect(result.Notifications).toHaveLength(1);
222
+ const n = result.Notifications[0];
223
+ expect(n.Kind).toBe('message');
224
+ expect(n.ChangeType).toBe('created');
225
+ expect(n.MessageIDs).toEqual(['SM123']); // pointer still surfaced
226
+ expect(n.Identifier).toBe('+15551234567');
227
+ // INLINE payload populated.
228
+ expect(n.Message).toEqual({ From: '+15559998888', To: '+15551234567', Body: 'Hello inbound' });
229
+ // validateRequest was called with the account auth token, header, url, and parsed params.
230
+ expect(mockValidateRequest).toHaveBeenCalledWith('test-auth-token', 'sig-abc', 'https://api.example.com/twilio/sms', expect.objectContaining({ MessageSid: 'SM123', Body: 'Hello inbound' }));
231
+ });
232
+ it('still returns the parsed notification when the signature is invalid', async () => {
233
+ mockValidateRequest.mockReturnValue(false);
234
+ const result = await provider.ParseNotification(buildInput({ Headers: { 'x-twilio-signature': 'bad' } }));
235
+ expect(result.Success).toBe(true);
236
+ expect(result.SignatureValid).toBe(false);
237
+ expect(result.Notifications).toHaveLength(1);
238
+ expect(result.Notifications[0].Message?.Body).toBe('Hello inbound');
239
+ });
240
+ it('returns Success:false + 400 on an empty body, without throwing', async () => {
241
+ const result = await provider.ParseNotification(buildInput({ RawBody: '' }));
242
+ expect(result.Success).toBe(false);
243
+ expect(result.SuggestedResponseStatus).toBe(400);
244
+ expect(result.Notifications).toEqual([]);
245
+ expect(mockValidateRequest).not.toHaveBeenCalled();
246
+ });
247
+ it('never throws on hostile/garbage input', async () => {
248
+ mockValidateRequest.mockReturnValue(false);
249
+ const garbage = ['', ' ', '&&&', '=', '%', 'not-a-query'];
250
+ for (const raw of garbage) {
251
+ const result = await provider.ParseNotification(buildInput({ RawBody: raw }));
252
+ expect(typeof result.Success).toBe('boolean');
253
+ expect(Array.isArray(result.Notifications)).toBe(true);
254
+ }
255
+ });
256
+ });
257
+ });
258
+ //# sourceMappingURL=Subscriptions.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Subscriptions.test.js","sourceRoot":"","sources":["../../src/__tests__/Subscriptions.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@memberjunction/communication-twilio",
3
3
  "type": "module",
4
- "version": "5.49.0",
4
+ "version": "5.51.0",
5
5
  "description": "Twilio provider for MemberJunction Communication framework",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -14,9 +14,9 @@
14
14
  "test": "vitest run"
15
15
  },
16
16
  "dependencies": {
17
- "@memberjunction/communication-types": "5.49.0",
18
- "@memberjunction/core": "5.49.0",
19
- "@memberjunction/global": "5.49.0",
17
+ "@memberjunction/communication-types": "5.51.0",
18
+ "@memberjunction/core": "5.51.0",
19
+ "@memberjunction/global": "5.51.0",
20
20
  "dotenv": "^17.2.4",
21
21
  "env-var": "^7.4.1",
22
22
  "twilio": "^5.12.1"