From d23cb19335aa28e41a6cf021e6965c5c187120ae Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 1 Aug 2025 07:01:02 +0000 Subject: [PATCH 1/3] Initial plan From b4053fb54be81d9d7b4f321fb8120a18b47a66d1 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 1 Aug 2025 07:34:24 +0000 Subject: [PATCH 2/3] Fix TypeScript named import support for Twilio client - Replace `export = TwilioSDK` with ES6-compatible export pattern in src/index.ts - Add explicit named exports (export const Twilio, jwt, twiml, etc.) - Add default export for backward compatibility (export default TwilioSDK) - Generated lib/index.d.ts now provides both CommonJS and ES6 import support - Fixes GitHub issue #935 where import { Twilio } returned 'any' type The change allows users to use both import patterns: - import { Twilio } from 'twilio' (ES6 named import - previously broken) - import twilio from 'twilio' (default import - continues to work) - twilio() function calls and new twilio.Twilio() - continues to work Resolves: #935 Co-authored-by: manisha1997 <28821901+manisha1997@users.noreply.github.com> --- src/index.ts | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/index.ts b/src/index.ts index 4ddbe4d27..fa8b3351d 100644 --- a/src/index.ts +++ b/src/index.ts @@ -88,5 +88,23 @@ namespace TwilioSDK { export type ClientOpts = IClientOpts; } -// Public module interface is a function, which passes through to RestClient constructor -export = TwilioSDK; +// Named exports for ES6 import compatibility: import { Twilio } from 'twilio' +export const Twilio = TwilioSDK.Twilio; +export const jwt = TwilioSDK.jwt; +export const twiml = TwilioSDK.twiml; +export const RequestClient = TwilioSDK.RequestClient; +export const ClientCredentialProviderBuilder = TwilioSDK.ClientCredentialProviderBuilder; +export const OrgsCredentialProviderBuilder = TwilioSDK.OrgsCredentialProviderBuilder; +export const NoAuthCredentialProvider = TwilioSDK.NoAuthCredentialProvider; +export const validateBody = TwilioSDK.validateBody; +export const validateRequest = TwilioSDK.validateRequest; +export const validateRequestWithBody = TwilioSDK.validateRequestWithBody; +export const validateExpressRequest = TwilioSDK.validateExpressRequest; +export const validateIncomingRequest = TwilioSDK.validateIncomingRequest; +export const getExpectedBodyHash = TwilioSDK.getExpectedBodyHash; +export const getExpectedTwilioSignature = TwilioSDK.getExpectedTwilioSignature; +export const webhook = TwilioSDK.webhook; +export type ClientOpts = TwilioSDK.ClientOpts; + +// Default export for CommonJS compatibility: import twilio from 'twilio' +export default TwilioSDK; From cd879dfcdf739f1b42028b3448c1130d6ae4ce26 Mon Sep 17 00:00:00 2001 From: manisha1997 Date: Fri, 1 Aug 2025 13:28:06 +0530 Subject: [PATCH 3/3] chore: run prettier --- src/index.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/index.ts b/src/index.ts index fa8b3351d..65760acba 100644 --- a/src/index.ts +++ b/src/index.ts @@ -93,8 +93,10 @@ export const Twilio = TwilioSDK.Twilio; export const jwt = TwilioSDK.jwt; export const twiml = TwilioSDK.twiml; export const RequestClient = TwilioSDK.RequestClient; -export const ClientCredentialProviderBuilder = TwilioSDK.ClientCredentialProviderBuilder; -export const OrgsCredentialProviderBuilder = TwilioSDK.OrgsCredentialProviderBuilder; +export const ClientCredentialProviderBuilder = + TwilioSDK.ClientCredentialProviderBuilder; +export const OrgsCredentialProviderBuilder = + TwilioSDK.OrgsCredentialProviderBuilder; export const NoAuthCredentialProvider = TwilioSDK.NoAuthCredentialProvider; export const validateBody = TwilioSDK.validateBody; export const validateRequest = TwilioSDK.validateRequest;