twilio 5.3.7 → 5.4.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 (578) hide show
  1. package/README.md +7 -0
  2. package/lib/auth_strategy/AuthStrategy.d.ts +7 -0
  3. package/lib/auth_strategy/AuthStrategy.js +11 -0
  4. package/lib/auth_strategy/BasicAuthStrategy.d.ts +8 -0
  5. package/lib/auth_strategy/BasicAuthStrategy.js +21 -0
  6. package/lib/auth_strategy/NoAuthStrategy.d.ts +6 -0
  7. package/lib/auth_strategy/NoAuthStrategy.js +18 -0
  8. package/lib/auth_strategy/TokenAuthStrategy.d.ts +16 -0
  9. package/lib/auth_strategy/TokenAuthStrategy.js +60 -0
  10. package/lib/base/BaseTwilio.d.ts +11 -2
  11. package/lib/base/BaseTwilio.js +44 -16
  12. package/lib/base/Page.js +3 -0
  13. package/lib/base/RequestClient.d.ts +6 -0
  14. package/lib/base/RequestClient.js +5 -1
  15. package/lib/credential_provider/ClientCredentialProvider.d.ts +22 -0
  16. package/lib/credential_provider/ClientCredentialProvider.js +50 -0
  17. package/lib/credential_provider/CredentialProvider.d.ts +7 -0
  18. package/lib/credential_provider/CredentialProvider.js +11 -0
  19. package/lib/credential_provider/NoAuthCredentialProvider.d.ts +9 -0
  20. package/lib/credential_provider/NoAuthCredentialProvider.js +19 -0
  21. package/lib/credential_provider/OrgsCredentialProvider.d.ts +22 -0
  22. package/lib/credential_provider/OrgsCredentialProvider.js +50 -0
  23. package/lib/http/bearer_token/ApiTokenManager.d.ts +8 -0
  24. package/lib/http/bearer_token/ApiTokenManager.js +33 -0
  25. package/lib/http/bearer_token/OrgsTokenManager.d.ts +8 -0
  26. package/lib/http/bearer_token/OrgsTokenManager.js +33 -0
  27. package/lib/http/bearer_token/TokenManager.d.ts +3 -0
  28. package/lib/http/bearer_token/TokenManager.js +5 -0
  29. package/lib/index.d.ts +9 -0
  30. package/lib/index.js +6 -0
  31. package/lib/rest/PreviewIam.d.ts +18 -0
  32. package/lib/rest/PreviewIam.js +29 -0
  33. package/lib/rest/PreviewIamBase.d.ts +13 -0
  34. package/lib/rest/PreviewIamBase.js +31 -0
  35. package/lib/rest/Twilio.d.ts +5 -0
  36. package/lib/rest/Twilio.js +6 -0
  37. package/lib/rest/accounts/v1/authTokenPromotion.js +3 -0
  38. package/lib/rest/accounts/v1/bulkConsents.js +1 -0
  39. package/lib/rest/accounts/v1/bulkContacts.js +1 -0
  40. package/lib/rest/accounts/v1/credential/aws.js +8 -0
  41. package/lib/rest/accounts/v1/credential/publicKey.js +8 -0
  42. package/lib/rest/accounts/v1/safelist.js +2 -0
  43. package/lib/rest/accounts/v1/secondaryAuthToken.js +5 -0
  44. package/lib/rest/api/v2010/account/address/dependentPhoneNumber.js +1 -0
  45. package/lib/rest/api/v2010/account/address.js +8 -0
  46. package/lib/rest/api/v2010/account/application.js +8 -0
  47. package/lib/rest/api/v2010/account/authorizedConnectApp.js +4 -0
  48. package/lib/rest/api/v2010/account/availablePhoneNumberCountry/local.js +1 -0
  49. package/lib/rest/api/v2010/account/availablePhoneNumberCountry/machineToMachine.js +1 -0
  50. package/lib/rest/api/v2010/account/availablePhoneNumberCountry/mobile.js +1 -0
  51. package/lib/rest/api/v2010/account/availablePhoneNumberCountry/national.js +1 -0
  52. package/lib/rest/api/v2010/account/availablePhoneNumberCountry/sharedCost.js +1 -0
  53. package/lib/rest/api/v2010/account/availablePhoneNumberCountry/tollFree.js +1 -0
  54. package/lib/rest/api/v2010/account/availablePhoneNumberCountry/voip.js +1 -0
  55. package/lib/rest/api/v2010/account/availablePhoneNumberCountry.js +4 -0
  56. package/lib/rest/api/v2010/account/balance.js +3 -0
  57. package/lib/rest/api/v2010/account/call/event.js +1 -0
  58. package/lib/rest/api/v2010/account/call/notification.js +4 -0
  59. package/lib/rest/api/v2010/account/call/payment.js +2 -0
  60. package/lib/rest/api/v2010/account/call/recording.js +8 -0
  61. package/lib/rest/api/v2010/account/call/siprec.js +2 -0
  62. package/lib/rest/api/v2010/account/call/stream.js +2 -0
  63. package/lib/rest/api/v2010/account/call/transcription.js +2 -0
  64. package/lib/rest/api/v2010/account/call/userDefinedMessage.js +1 -0
  65. package/lib/rest/api/v2010/account/call/userDefinedMessageSubscription.js +3 -0
  66. package/lib/rest/api/v2010/account/call.js +8 -0
  67. package/lib/rest/api/v2010/account/conference/participant.js +8 -0
  68. package/lib/rest/api/v2010/account/conference/recording.js +7 -0
  69. package/lib/rest/api/v2010/account/conference.js +5 -0
  70. package/lib/rest/api/v2010/account/connectApp.js +7 -0
  71. package/lib/rest/api/v2010/account/incomingPhoneNumber/assignedAddOn/assignedAddOnExtension.js +4 -0
  72. package/lib/rest/api/v2010/account/incomingPhoneNumber/assignedAddOn.js +7 -0
  73. package/lib/rest/api/v2010/account/incomingPhoneNumber/local.js +2 -0
  74. package/lib/rest/api/v2010/account/incomingPhoneNumber/mobile.js +2 -0
  75. package/lib/rest/api/v2010/account/incomingPhoneNumber/tollFree.js +2 -0
  76. package/lib/rest/api/v2010/account/incomingPhoneNumber.js +8 -0
  77. package/lib/rest/api/v2010/account/key.js +7 -0
  78. package/lib/rest/api/v2010/account/message/feedback.js +1 -0
  79. package/lib/rest/api/v2010/account/message/media.js +6 -0
  80. package/lib/rest/api/v2010/account/message.js +8 -0
  81. package/lib/rest/api/v2010/account/newKey.js +1 -0
  82. package/lib/rest/api/v2010/account/newSigningKey.js +1 -0
  83. package/lib/rest/api/v2010/account/notification.js +4 -0
  84. package/lib/rest/api/v2010/account/outgoingCallerId.js +7 -0
  85. package/lib/rest/api/v2010/account/queue/member.js +5 -0
  86. package/lib/rest/api/v2010/account/queue.js +8 -0
  87. package/lib/rest/api/v2010/account/recording/addOnResult/payload/data.js +3 -0
  88. package/lib/rest/api/v2010/account/recording/addOnResult/payload.js +6 -0
  89. package/lib/rest/api/v2010/account/recording/addOnResult.js +6 -0
  90. package/lib/rest/api/v2010/account/recording/transcription.js +6 -0
  91. package/lib/rest/api/v2010/account/recording.js +4 -0
  92. package/lib/rest/api/v2010/account/shortCode.js +5 -0
  93. package/lib/rest/api/v2010/account/signingKey.js +7 -0
  94. package/lib/rest/api/v2010/account/sip/credentialList/credential.js +8 -0
  95. package/lib/rest/api/v2010/account/sip/credentialList.js +8 -0
  96. package/lib/rest/api/v2010/account/sip/domain/authTypes/authTypeCalls/authCallsCredentialListMapping.js +7 -0
  97. package/lib/rest/api/v2010/account/sip/domain/authTypes/authTypeCalls/authCallsIpAccessControlListMapping.js +7 -0
  98. package/lib/rest/api/v2010/account/sip/domain/authTypes/authTypeRegistrations/authRegistrationsCredentialListMapping.js +7 -0
  99. package/lib/rest/api/v2010/account/sip/domain/credentialListMapping.js +7 -0
  100. package/lib/rest/api/v2010/account/sip/domain/ipAccessControlListMapping.js +7 -0
  101. package/lib/rest/api/v2010/account/sip/domain.js +8 -0
  102. package/lib/rest/api/v2010/account/sip/ipAccessControlList/ipAddress.js +8 -0
  103. package/lib/rest/api/v2010/account/sip/ipAccessControlList.js +8 -0
  104. package/lib/rest/api/v2010/account/token.js +1 -0
  105. package/lib/rest/api/v2010/account/transcription.js +6 -0
  106. package/lib/rest/api/v2010/account/usage/record/allTime.js +1 -0
  107. package/lib/rest/api/v2010/account/usage/record/daily.js +1 -0
  108. package/lib/rest/api/v2010/account/usage/record/lastMonth.js +1 -0
  109. package/lib/rest/api/v2010/account/usage/record/monthly.js +1 -0
  110. package/lib/rest/api/v2010/account/usage/record/thisMonth.js +1 -0
  111. package/lib/rest/api/v2010/account/usage/record/today.js +1 -0
  112. package/lib/rest/api/v2010/account/usage/record/yearly.js +1 -0
  113. package/lib/rest/api/v2010/account/usage/record/yesterday.js +1 -0
  114. package/lib/rest/api/v2010/account/usage/record.js +1 -0
  115. package/lib/rest/api/v2010/account/usage/trigger.js +8 -0
  116. package/lib/rest/api/v2010/account/validationRequest.js +1 -0
  117. package/lib/rest/api/v2010/account.js +6 -0
  118. package/lib/rest/assistants/v1/assistant/assistantsKnowledge.js +5 -0
  119. package/lib/rest/assistants/v1/assistant/assistantsTool.js +5 -0
  120. package/lib/rest/assistants/v1/assistant/feedback.d.ts +4 -3
  121. package/lib/rest/assistants/v1/assistant/feedback.js +6 -2
  122. package/lib/rest/assistants/v1/assistant/message.d.ts +3 -2
  123. package/lib/rest/assistants/v1/assistant/message.js +5 -2
  124. package/lib/rest/assistants/v1/assistant.d.ts +26 -23
  125. package/lib/rest/assistants/v1/assistant.js +16 -4
  126. package/lib/rest/assistants/v1/knowledge/chunk.js +1 -0
  127. package/lib/rest/assistants/v1/knowledge/knowledgeStatus.js +3 -0
  128. package/lib/rest/assistants/v1/knowledge.d.ts +11 -8
  129. package/lib/rest/assistants/v1/knowledge.js +16 -4
  130. package/lib/rest/assistants/v1/policy.js +1 -0
  131. package/lib/rest/assistants/v1/session/message.js +1 -0
  132. package/lib/rest/assistants/v1/session.js +4 -0
  133. package/lib/rest/assistants/v1/tool.d.ts +15 -12
  134. package/lib/rest/assistants/v1/tool.js +16 -4
  135. package/lib/rest/bulkexports/v1/export/day.js +4 -0
  136. package/lib/rest/bulkexports/v1/export/exportCustomJob.js +2 -0
  137. package/lib/rest/bulkexports/v1/export/job.js +5 -0
  138. package/lib/rest/bulkexports/v1/export.js +3 -0
  139. package/lib/rest/bulkexports/v1/exportConfiguration.js +4 -0
  140. package/lib/rest/chat/v1/credential.js +8 -0
  141. package/lib/rest/chat/v1/service/channel/invite.js +7 -0
  142. package/lib/rest/chat/v1/service/channel/member.js +8 -0
  143. package/lib/rest/chat/v1/service/channel/message.js +8 -0
  144. package/lib/rest/chat/v1/service/channel.js +8 -0
  145. package/lib/rest/chat/v1/service/role.js +8 -0
  146. package/lib/rest/chat/v1/service/user/userChannel.js +1 -0
  147. package/lib/rest/chat/v1/service/user.js +8 -0
  148. package/lib/rest/chat/v1/service.js +8 -0
  149. package/lib/rest/chat/v2/credential.js +8 -0
  150. package/lib/rest/chat/v2/service/binding.js +6 -0
  151. package/lib/rest/chat/v2/service/channel/invite.js +7 -0
  152. package/lib/rest/chat/v2/service/channel/member.js +6 -0
  153. package/lib/rest/chat/v2/service/channel/message.js +6 -0
  154. package/lib/rest/chat/v2/service/channel/webhook.js +8 -0
  155. package/lib/rest/chat/v2/service/channel.js +6 -0
  156. package/lib/rest/chat/v2/service/role.js +8 -0
  157. package/lib/rest/chat/v2/service/user/userBinding.js +6 -0
  158. package/lib/rest/chat/v2/service/user/userChannel.js +5 -0
  159. package/lib/rest/chat/v2/service/user.js +8 -0
  160. package/lib/rest/chat/v2/service.js +8 -0
  161. package/lib/rest/chat/v3/channel.js +1 -0
  162. package/lib/rest/content/v1/content/approvalCreate.d.ts +2 -1
  163. package/lib/rest/content/v1/content/approvalCreate.js +5 -2
  164. package/lib/rest/content/v1/content/approvalFetch.js +3 -0
  165. package/lib/rest/content/v1/content.d.ts +25 -24
  166. package/lib/rest/content/v1/content.js +11 -2
  167. package/lib/rest/content/v1/contentAndApprovals.js +1 -0
  168. package/lib/rest/content/v1/legacyContent.js +1 -0
  169. package/lib/rest/content/v2/content.js +1 -0
  170. package/lib/rest/content/v2/contentAndApprovals.js +1 -0
  171. package/lib/rest/conversations/v1/addressConfiguration.js +8 -0
  172. package/lib/rest/conversations/v1/configuration/webhook.js +4 -0
  173. package/lib/rest/conversations/v1/configuration.js +4 -0
  174. package/lib/rest/conversations/v1/conversation/message/deliveryReceipt.js +4 -0
  175. package/lib/rest/conversations/v1/conversation/message.js +6 -0
  176. package/lib/rest/conversations/v1/conversation/participant.js +6 -0
  177. package/lib/rest/conversations/v1/conversation/webhook.js +8 -0
  178. package/lib/rest/conversations/v1/conversation.js +6 -0
  179. package/lib/rest/conversations/v1/conversationWithParticipants.js +1 -0
  180. package/lib/rest/conversations/v1/credential.js +8 -0
  181. package/lib/rest/conversations/v1/participantConversation.js +1 -0
  182. package/lib/rest/conversations/v1/role.js +8 -0
  183. package/lib/rest/conversations/v1/service/binding.js +6 -0
  184. package/lib/rest/conversations/v1/service/configuration/notification.js +4 -0
  185. package/lib/rest/conversations/v1/service/configuration/webhook.js +4 -0
  186. package/lib/rest/conversations/v1/service/configuration.js +4 -0
  187. package/lib/rest/conversations/v1/service/conversation/message/deliveryReceipt.js +4 -0
  188. package/lib/rest/conversations/v1/service/conversation/message.js +6 -0
  189. package/lib/rest/conversations/v1/service/conversation/participant.js +6 -0
  190. package/lib/rest/conversations/v1/service/conversation/webhook.js +8 -0
  191. package/lib/rest/conversations/v1/service/conversation.js +6 -0
  192. package/lib/rest/conversations/v1/service/conversationWithParticipants.js +1 -0
  193. package/lib/rest/conversations/v1/service/participantConversation.js +1 -0
  194. package/lib/rest/conversations/v1/service/role.js +8 -0
  195. package/lib/rest/conversations/v1/service/user/userConversation.js +7 -0
  196. package/lib/rest/conversations/v1/service/user.js +6 -0
  197. package/lib/rest/conversations/v1/service.js +7 -0
  198. package/lib/rest/conversations/v1/user/userConversation.js +7 -0
  199. package/lib/rest/conversations/v1/user.js +6 -0
  200. package/lib/rest/events/v1/eventType.js +4 -0
  201. package/lib/rest/events/v1/schema/schemaVersion.js +4 -0
  202. package/lib/rest/events/v1/schema.js +3 -0
  203. package/lib/rest/events/v1/sink/sinkTest.js +3 -0
  204. package/lib/rest/events/v1/sink/sinkValidate.js +1 -0
  205. package/lib/rest/events/v1/sink.js +8 -0
  206. package/lib/rest/events/v1/subscription/subscribedEvent.js +8 -0
  207. package/lib/rest/events/v1/subscription.js +8 -0
  208. package/lib/rest/flexApi/v1/assessments.js +3 -0
  209. package/lib/rest/flexApi/v1/channel.js +7 -0
  210. package/lib/rest/flexApi/v1/configuration.d.ts +5 -3
  211. package/lib/rest/flexApi/v1/configuration.js +6 -2
  212. package/lib/rest/flexApi/v1/flexFlow.js +8 -0
  213. package/lib/rest/flexApi/v1/insightsAssessmentsComment.js +2 -0
  214. package/lib/rest/flexApi/v1/insightsConversations.js +1 -0
  215. package/lib/rest/flexApi/v1/insightsQuestionnaires.js +4 -0
  216. package/lib/rest/flexApi/v1/insightsQuestionnairesCategory.js +3 -0
  217. package/lib/rest/flexApi/v1/insightsQuestionnairesQuestion.js +3 -0
  218. package/lib/rest/flexApi/v1/insightsSegments.js +1 -0
  219. package/lib/rest/flexApi/v1/insightsSession.js +1 -0
  220. package/lib/rest/flexApi/v1/insightsSettingsAnswerSets.js +1 -0
  221. package/lib/rest/flexApi/v1/insightsSettingsComment.js +1 -0
  222. package/lib/rest/flexApi/v1/insightsUserRoles.js +1 -0
  223. package/lib/rest/flexApi/v1/interaction/interactionChannel/interactionChannelInvite.js +2 -0
  224. package/lib/rest/flexApi/v1/interaction/interactionChannel/interactionChannelParticipant.js +3 -0
  225. package/lib/rest/flexApi/v1/interaction/interactionChannel.js +5 -0
  226. package/lib/rest/flexApi/v1/interaction.js +4 -0
  227. package/lib/rest/flexApi/v1/plugin/pluginVersions.js +3 -0
  228. package/lib/rest/flexApi/v1/plugin.js +4 -0
  229. package/lib/rest/flexApi/v1/pluginArchive.js +1 -0
  230. package/lib/rest/flexApi/v1/pluginConfiguration/configuredPlugin.js +2 -0
  231. package/lib/rest/flexApi/v1/pluginConfiguration.js +3 -0
  232. package/lib/rest/flexApi/v1/pluginConfigurationArchive.js +1 -0
  233. package/lib/rest/flexApi/v1/pluginRelease.js +3 -0
  234. package/lib/rest/flexApi/v1/pluginVersionArchive.js +1 -0
  235. package/lib/rest/flexApi/v1/provisioningStatus.js +3 -0
  236. package/lib/rest/flexApi/v1/webChannel.js +8 -0
  237. package/lib/rest/flexApi/v2/flexUser.js +4 -0
  238. package/lib/rest/flexApi/v2/webChannels.js +1 -0
  239. package/lib/rest/frontlineApi/v1/user.js +4 -0
  240. package/lib/rest/iam/V1.d.ts +5 -5
  241. package/lib/rest/iam/V1.js +5 -5
  242. package/lib/rest/iam/v1/apiKey.js +6 -0
  243. package/lib/rest/iam/v1/getApiKeys.js +1 -0
  244. package/lib/rest/iam/v1/{key.d.ts → newApiKey.d.ts} +14 -14
  245. package/lib/rest/iam/v1/{key.js → newApiKey.js} +7 -6
  246. package/lib/rest/insights/v1/call/annotation.js +4 -0
  247. package/lib/rest/insights/v1/call/callSummary.js +1 -0
  248. package/lib/rest/insights/v1/call/event.js +1 -0
  249. package/lib/rest/insights/v1/call/metric.js +1 -0
  250. package/lib/rest/insights/v1/call.js +3 -0
  251. package/lib/rest/insights/v1/callSummaries.js +1 -0
  252. package/lib/rest/insights/v1/conference/conferenceParticipant.js +2 -0
  253. package/lib/rest/insights/v1/conference.js +4 -0
  254. package/lib/rest/insights/v1/room/participant.js +4 -0
  255. package/lib/rest/insights/v1/room.js +4 -0
  256. package/lib/rest/insights/v1/setting.js +2 -0
  257. package/lib/rest/intelligence/v2/customOperator.js +8 -0
  258. package/lib/rest/intelligence/v2/operator.js +4 -0
  259. package/lib/rest/intelligence/v2/operatorAttachment.js +5 -0
  260. package/lib/rest/intelligence/v2/operatorAttachments.js +3 -0
  261. package/lib/rest/intelligence/v2/operatorType.js +4 -0
  262. package/lib/rest/intelligence/v2/prebuiltOperator.js +4 -0
  263. package/lib/rest/intelligence/v2/service.js +8 -0
  264. package/lib/rest/intelligence/v2/transcript/media.js +1 -0
  265. package/lib/rest/intelligence/v2/transcript/operatorResult.js +2 -0
  266. package/lib/rest/intelligence/v2/transcript/sentence.js +1 -0
  267. package/lib/rest/intelligence/v2/transcript.js +7 -0
  268. package/lib/rest/ipMessaging/v1/credential.js +8 -0
  269. package/lib/rest/ipMessaging/v1/service/channel/invite.js +7 -0
  270. package/lib/rest/ipMessaging/v1/service/channel/member.js +8 -0
  271. package/lib/rest/ipMessaging/v1/service/channel/message.js +8 -0
  272. package/lib/rest/ipMessaging/v1/service/channel.js +8 -0
  273. package/lib/rest/ipMessaging/v1/service/role.js +8 -0
  274. package/lib/rest/ipMessaging/v1/service/user/userChannel.js +1 -0
  275. package/lib/rest/ipMessaging/v1/service/user.js +8 -0
  276. package/lib/rest/ipMessaging/v1/service.js +8 -0
  277. package/lib/rest/ipMessaging/v2/credential.js +8 -0
  278. package/lib/rest/ipMessaging/v2/service/binding.js +6 -0
  279. package/lib/rest/ipMessaging/v2/service/channel/invite.js +7 -0
  280. package/lib/rest/ipMessaging/v2/service/channel/member.js +6 -0
  281. package/lib/rest/ipMessaging/v2/service/channel/message.js +6 -0
  282. package/lib/rest/ipMessaging/v2/service/channel/webhook.js +8 -0
  283. package/lib/rest/ipMessaging/v2/service/channel.js +6 -0
  284. package/lib/rest/ipMessaging/v2/service/role.js +8 -0
  285. package/lib/rest/ipMessaging/v2/service/user/userBinding.js +6 -0
  286. package/lib/rest/ipMessaging/v2/service/user/userChannel.js +7 -0
  287. package/lib/rest/ipMessaging/v2/service/user.js +8 -0
  288. package/lib/rest/ipMessaging/v2/service.js +8 -0
  289. package/lib/rest/lookups/v1/phoneNumber.js +1 -0
  290. package/lib/rest/lookups/v2/phoneNumber.js +1 -0
  291. package/lib/rest/marketplace/v1/availableAddOn/availableAddOnExtension.js +4 -0
  292. package/lib/rest/marketplace/v1/availableAddOn.js +4 -0
  293. package/lib/rest/marketplace/v1/installedAddOn/installedAddOnExtension.js +5 -0
  294. package/lib/rest/marketplace/v1/installedAddOn/installedAddOnUsage.d.ts +4 -3
  295. package/lib/rest/marketplace/v1/installedAddOn/installedAddOnUsage.js +5 -2
  296. package/lib/rest/marketplace/v1/installedAddOn.js +8 -0
  297. package/lib/rest/marketplace/v1/moduleDataManagement.js +4 -0
  298. package/lib/rest/marketplace/v1/referralConversion.d.ts +3 -2
  299. package/lib/rest/marketplace/v1/referralConversion.js +5 -2
  300. package/lib/rest/messaging/v1/brandRegistration/brandRegistrationOtp.js +3 -0
  301. package/lib/rest/messaging/v1/brandRegistration/brandVetting.js +5 -0
  302. package/lib/rest/messaging/v1/brandRegistration.js +8 -0
  303. package/lib/rest/messaging/v1/deactivations.js +1 -0
  304. package/lib/rest/messaging/v1/domainCerts.js +6 -0
  305. package/lib/rest/messaging/v1/domainConfig.js +4 -0
  306. package/lib/rest/messaging/v1/domainConfigMessagingService.js +3 -0
  307. package/lib/rest/messaging/v1/externalCampaign.js +1 -0
  308. package/lib/rest/messaging/v1/linkshorteningMessagingService.js +5 -0
  309. package/lib/rest/messaging/v1/linkshorteningMessagingServiceDomainAssociation.js +3 -0
  310. package/lib/rest/messaging/v1/requestManagedCert.js +3 -0
  311. package/lib/rest/messaging/v1/service/alphaSender.js +7 -0
  312. package/lib/rest/messaging/v1/service/channelSender.js +7 -0
  313. package/lib/rest/messaging/v1/service/phoneNumber.js +7 -0
  314. package/lib/rest/messaging/v1/service/shortCode.js +7 -0
  315. package/lib/rest/messaging/v1/service/usAppToPerson.js +8 -0
  316. package/lib/rest/messaging/v1/service/usAppToPersonUsecase.js +1 -0
  317. package/lib/rest/messaging/v1/service.js +8 -0
  318. package/lib/rest/messaging/v1/tollfreeVerification.js +8 -0
  319. package/lib/rest/messaging/v1/usecase.js +3 -0
  320. package/lib/rest/microvisor/v1/accountConfig.js +8 -0
  321. package/lib/rest/microvisor/v1/accountSecret.js +8 -0
  322. package/lib/rest/microvisor/v1/app/appManifest.js +3 -0
  323. package/lib/rest/microvisor/v1/app.js +6 -0
  324. package/lib/rest/microvisor/v1/device/deviceConfig.js +8 -0
  325. package/lib/rest/microvisor/v1/device/deviceSecret.js +8 -0
  326. package/lib/rest/microvisor/v1/device.js +5 -0
  327. package/lib/rest/monitor/v1/alert.js +4 -0
  328. package/lib/rest/monitor/v1/event.js +4 -0
  329. package/lib/rest/notify/v1/credential.js +8 -0
  330. package/lib/rest/notify/v1/service/binding.js +7 -0
  331. package/lib/rest/notify/v1/service/notification.js +1 -0
  332. package/lib/rest/notify/v1/service.js +8 -0
  333. package/lib/rest/numbers/V1.d.ts +5 -5
  334. package/lib/rest/numbers/V1.js +6 -8
  335. package/lib/rest/numbers/v1/bulkEligibility.d.ts +2 -1
  336. package/lib/rest/numbers/v1/bulkEligibility.js +8 -2
  337. package/lib/rest/numbers/v1/eligibility.d.ts +2 -1
  338. package/lib/rest/numbers/v1/eligibility.js +5 -2
  339. package/lib/rest/numbers/v1/portingPortIn.d.ts +2 -1
  340. package/lib/rest/numbers/v1/portingPortIn.js +10 -2
  341. package/lib/rest/numbers/v1/portingPortInPhoneNumber.js +5 -0
  342. package/lib/rest/numbers/v1/portingPortability.js +1 -0
  343. package/lib/rest/numbers/v1/portingWebhookConfiguration.d.ts +2 -1
  344. package/lib/rest/numbers/v1/portingWebhookConfiguration.js +5 -2
  345. package/lib/rest/numbers/v1/portingWebhookConfigurationDelete.js +2 -0
  346. package/lib/rest/numbers/v1/signingRequestConfiguration.d.ts +2 -1
  347. package/lib/rest/numbers/v1/signingRequestConfiguration.js +6 -2
  348. package/lib/rest/numbers/v1/{portingWebhookConfigurationFetch.d.ts → webhook.d.ts} +10 -10
  349. package/lib/rest/numbers/v1/{portingWebhookConfigurationFetch.js → webhook.js} +9 -6
  350. package/lib/rest/numbers/v2/authorizationDocument/dependentHostedNumberOrder.js +1 -0
  351. package/lib/rest/numbers/v2/authorizationDocument.js +7 -0
  352. package/lib/rest/numbers/v2/bulkHostedNumberOrder.d.ts +2 -1
  353. package/lib/rest/numbers/v2/bulkHostedNumberOrder.js +6 -2
  354. package/lib/rest/numbers/v2/bundleClone.js +1 -0
  355. package/lib/rest/numbers/v2/hostedNumberOrder.js +8 -0
  356. package/lib/rest/numbers/v2/regulatoryCompliance/bundle/bundleCopy.js +2 -0
  357. package/lib/rest/numbers/v2/regulatoryCompliance/bundle/evaluation.js +7 -0
  358. package/lib/rest/numbers/v2/regulatoryCompliance/bundle/itemAssignment.js +7 -0
  359. package/lib/rest/numbers/v2/regulatoryCompliance/bundle/replaceItems.js +1 -0
  360. package/lib/rest/numbers/v2/regulatoryCompliance/bundle.js +8 -0
  361. package/lib/rest/numbers/v2/regulatoryCompliance/endUser.js +8 -0
  362. package/lib/rest/numbers/v2/regulatoryCompliance/endUserType.js +4 -0
  363. package/lib/rest/numbers/v2/regulatoryCompliance/regulation.js +2 -0
  364. package/lib/rest/numbers/v2/regulatoryCompliance/supportingDocument.js +8 -0
  365. package/lib/rest/numbers/v2/regulatoryCompliance/supportingDocumentType.js +4 -0
  366. package/lib/rest/oauth/v1/authorize.js +1 -0
  367. package/lib/rest/oauth/v1/token.js +1 -0
  368. package/lib/rest/preview/hosted_numbers/authorizationDocument/dependentHostedNumberOrder.js +1 -0
  369. package/lib/rest/preview/hosted_numbers/authorizationDocument.js +6 -0
  370. package/lib/rest/preview/hosted_numbers/hostedNumberOrder.js +8 -0
  371. package/lib/rest/preview/marketplace/availableAddOn/availableAddOnExtension.js +4 -0
  372. package/lib/rest/preview/marketplace/availableAddOn.js +4 -0
  373. package/lib/rest/preview/marketplace/installedAddOn/installedAddOnExtension.js +5 -0
  374. package/lib/rest/preview/marketplace/installedAddOn.js +8 -0
  375. package/lib/rest/preview/sync/service/document/documentPermission.js +7 -0
  376. package/lib/rest/preview/sync/service/document.js +8 -0
  377. package/lib/rest/preview/sync/service/syncList/syncListItem.js +6 -0
  378. package/lib/rest/preview/sync/service/syncList/syncListPermission.js +7 -0
  379. package/lib/rest/preview/sync/service/syncList.js +7 -0
  380. package/lib/rest/preview/sync/service/syncMap/syncMapItem.js +6 -0
  381. package/lib/rest/preview/sync/service/syncMap/syncMapPermission.js +7 -0
  382. package/lib/rest/preview/sync/service/syncMap.js +7 -0
  383. package/lib/rest/preview/sync/service.js +8 -0
  384. package/lib/rest/preview/wireless/command.js +5 -0
  385. package/lib/rest/preview/wireless/ratePlan.js +8 -0
  386. package/lib/rest/preview/wireless/sim/usage.js +1 -0
  387. package/lib/rest/preview/wireless/sim.js +5 -0
  388. package/lib/rest/previewIam/V1.d.ts +20 -0
  389. package/lib/rest/previewIam/V1.js +42 -0
  390. package/lib/rest/previewIam/Versionless.d.ts +15 -0
  391. package/lib/rest/previewIam/Versionless.js +36 -0
  392. package/lib/rest/previewIam/v1/authorize.d.ts +69 -0
  393. package/lib/rest/previewIam/v1/authorize.js +84 -0
  394. package/lib/rest/previewIam/v1/token.d.ts +88 -0
  395. package/lib/rest/previewIam/v1/token.js +99 -0
  396. package/lib/rest/previewIam/versionless/organization/account.d.ts +216 -0
  397. package/lib/rest/previewIam/versionless/organization/account.js +195 -0
  398. package/lib/rest/previewIam/versionless/organization/roleAssignment.d.ts +274 -0
  399. package/lib/rest/previewIam/versionless/organization/roleAssignment.js +221 -0
  400. package/lib/rest/previewIam/versionless/organization/user.d.ts +448 -0
  401. package/lib/rest/previewIam/versionless/organization/user.js +299 -0
  402. package/lib/rest/previewIam/versionless/organization.d.ts +53 -0
  403. package/lib/rest/previewIam/versionless/organization.js +80 -0
  404. package/lib/rest/pricing/v1/messaging/country.d.ts +6 -6
  405. package/lib/rest/pricing/v1/messaging/country.js +4 -0
  406. package/lib/rest/pricing/v1/phoneNumber/country.d.ts +3 -3
  407. package/lib/rest/pricing/v1/phoneNumber/country.js +4 -0
  408. package/lib/rest/pricing/v1/voice/country.d.ts +6 -6
  409. package/lib/rest/pricing/v1/voice/country.js +4 -0
  410. package/lib/rest/pricing/v1/voice/number.d.ts +5 -5
  411. package/lib/rest/pricing/v1/voice/number.js +3 -0
  412. package/lib/rest/pricing/v2/country.d.ts +8 -8
  413. package/lib/rest/pricing/v2/country.js +4 -0
  414. package/lib/rest/pricing/v2/number.d.ts +8 -8
  415. package/lib/rest/pricing/v2/number.js +1 -0
  416. package/lib/rest/pricing/v2/voice/country.d.ts +8 -8
  417. package/lib/rest/pricing/v2/voice/country.js +4 -0
  418. package/lib/rest/pricing/v2/voice/number.d.ts +6 -6
  419. package/lib/rest/pricing/v2/voice/number.js +1 -0
  420. package/lib/rest/proxy/v1/service/phoneNumber.js +8 -0
  421. package/lib/rest/proxy/v1/service/session/interaction.js +6 -0
  422. package/lib/rest/proxy/v1/service/session/participant/messageInteraction.js +5 -0
  423. package/lib/rest/proxy/v1/service/session/participant.js +7 -0
  424. package/lib/rest/proxy/v1/service/session.js +8 -0
  425. package/lib/rest/proxy/v1/service/shortCode.js +8 -0
  426. package/lib/rest/proxy/v1/service.js +8 -0
  427. package/lib/rest/routes/v2/phoneNumber.js +4 -0
  428. package/lib/rest/routes/v2/sipDomain.js +4 -0
  429. package/lib/rest/routes/v2/trunk.js +4 -0
  430. package/lib/rest/serverless/v1/service/asset/assetVersion.js +4 -0
  431. package/lib/rest/serverless/v1/service/asset.js +8 -0
  432. package/lib/rest/serverless/v1/service/build/buildStatus.js +3 -0
  433. package/lib/rest/serverless/v1/service/build.js +7 -0
  434. package/lib/rest/serverless/v1/service/environment/deployment.js +5 -0
  435. package/lib/rest/serverless/v1/service/environment/log.js +4 -0
  436. package/lib/rest/serverless/v1/service/environment/variable.js +8 -0
  437. package/lib/rest/serverless/v1/service/environment.js +7 -0
  438. package/lib/rest/serverless/v1/service/function/functionVersion/functionVersionContent.js +3 -0
  439. package/lib/rest/serverless/v1/service/function/functionVersion.js +4 -0
  440. package/lib/rest/serverless/v1/service/function.js +8 -0
  441. package/lib/rest/serverless/v1/service.js +8 -0
  442. package/lib/rest/studio/v1/flow/engagement/engagementContext.js +3 -0
  443. package/lib/rest/studio/v1/flow/engagement/step/stepContext.js +3 -0
  444. package/lib/rest/studio/v1/flow/engagement/step.js +4 -0
  445. package/lib/rest/studio/v1/flow/engagement.js +7 -0
  446. package/lib/rest/studio/v1/flow/execution/executionContext.js +3 -0
  447. package/lib/rest/studio/v1/flow/execution/executionStep/executionStepContext.js +3 -0
  448. package/lib/rest/studio/v1/flow/execution/executionStep.js +4 -0
  449. package/lib/rest/studio/v1/flow/execution.js +8 -0
  450. package/lib/rest/studio/v1/flow.js +6 -0
  451. package/lib/rest/studio/v2/flow/execution/executionContext.js +3 -0
  452. package/lib/rest/studio/v2/flow/execution/executionStep/executionStepContext.js +3 -0
  453. package/lib/rest/studio/v2/flow/execution/executionStep.js +4 -0
  454. package/lib/rest/studio/v2/flow/execution.js +8 -0
  455. package/lib/rest/studio/v2/flow/flowRevision.js +4 -0
  456. package/lib/rest/studio/v2/flow/flowTestUser.js +4 -0
  457. package/lib/rest/studio/v2/flow.js +8 -0
  458. package/lib/rest/studio/v2/flowValidate.js +1 -0
  459. package/lib/rest/supersim/v1/esimProfile.js +5 -0
  460. package/lib/rest/supersim/v1/fleet.js +6 -0
  461. package/lib/rest/supersim/v1/ipCommand.js +5 -0
  462. package/lib/rest/supersim/v1/network.js +4 -0
  463. package/lib/rest/supersim/v1/networkAccessProfile/networkAccessProfileNetwork.js +7 -0
  464. package/lib/rest/supersim/v1/networkAccessProfile.js +6 -0
  465. package/lib/rest/supersim/v1/settingsUpdate.js +1 -0
  466. package/lib/rest/supersim/v1/sim/billingPeriod.js +1 -0
  467. package/lib/rest/supersim/v1/sim/simIpAddress.js +1 -0
  468. package/lib/rest/supersim/v1/sim.js +6 -0
  469. package/lib/rest/supersim/v1/smsCommand.js +5 -0
  470. package/lib/rest/supersim/v1/usageRecord.js +1 -0
  471. package/lib/rest/sync/v1/service/document/documentPermission.js +7 -0
  472. package/lib/rest/sync/v1/service/document.js +8 -0
  473. package/lib/rest/sync/v1/service/syncList/syncListItem.js +6 -0
  474. package/lib/rest/sync/v1/service/syncList/syncListPermission.js +7 -0
  475. package/lib/rest/sync/v1/service/syncList.js +8 -0
  476. package/lib/rest/sync/v1/service/syncMap/syncMapItem.js +6 -0
  477. package/lib/rest/sync/v1/service/syncMap/syncMapPermission.js +7 -0
  478. package/lib/rest/sync/v1/service/syncMap.js +8 -0
  479. package/lib/rest/sync/v1/service/syncStream/streamMessage.js +1 -0
  480. package/lib/rest/sync/v1/service/syncStream.js +8 -0
  481. package/lib/rest/sync/v1/service.js +8 -0
  482. package/lib/rest/taskrouter/v1/workspace/activity.js +8 -0
  483. package/lib/rest/taskrouter/v1/workspace/event.js +4 -0
  484. package/lib/rest/taskrouter/v1/workspace/task/reservation.js +5 -0
  485. package/lib/rest/taskrouter/v1/workspace/task.js +6 -0
  486. package/lib/rest/taskrouter/v1/workspace/taskChannel.js +8 -0
  487. package/lib/rest/taskrouter/v1/workspace/taskQueue/taskQueueBulkRealTimeStatistics.d.ts +2 -1
  488. package/lib/rest/taskrouter/v1/workspace/taskQueue/taskQueueBulkRealTimeStatistics.js +5 -2
  489. package/lib/rest/taskrouter/v1/workspace/taskQueue/taskQueueCumulativeStatistics.js +1 -0
  490. package/lib/rest/taskrouter/v1/workspace/taskQueue/taskQueueRealTimeStatistics.js +1 -0
  491. package/lib/rest/taskrouter/v1/workspace/taskQueue/taskQueueStatistics.js +1 -0
  492. package/lib/rest/taskrouter/v1/workspace/taskQueue/taskQueuesStatistics.js +1 -0
  493. package/lib/rest/taskrouter/v1/workspace/taskQueue.js +8 -0
  494. package/lib/rest/taskrouter/v1/workspace/worker/reservation.js +5 -0
  495. package/lib/rest/taskrouter/v1/workspace/worker/workerChannel.js +5 -0
  496. package/lib/rest/taskrouter/v1/workspace/worker/workerStatistics.js +1 -0
  497. package/lib/rest/taskrouter/v1/workspace/worker/workersCumulativeStatistics.js +1 -0
  498. package/lib/rest/taskrouter/v1/workspace/worker/workersRealTimeStatistics.js +1 -0
  499. package/lib/rest/taskrouter/v1/workspace/worker/workersStatistics.js +1 -0
  500. package/lib/rest/taskrouter/v1/workspace/worker.js +6 -0
  501. package/lib/rest/taskrouter/v1/workspace/workflow/workflowCumulativeStatistics.js +1 -0
  502. package/lib/rest/taskrouter/v1/workspace/workflow/workflowRealTimeStatistics.js +1 -0
  503. package/lib/rest/taskrouter/v1/workspace/workflow/workflowStatistics.js +1 -0
  504. package/lib/rest/taskrouter/v1/workspace/workflow.js +8 -0
  505. package/lib/rest/taskrouter/v1/workspace/workspaceCumulativeStatistics.js +1 -0
  506. package/lib/rest/taskrouter/v1/workspace/workspaceRealTimeStatistics.js +1 -0
  507. package/lib/rest/taskrouter/v1/workspace/workspaceStatistics.js +1 -0
  508. package/lib/rest/taskrouter/v1/workspace.js +8 -0
  509. package/lib/rest/trunking/v1/trunk/credentialList.js +7 -0
  510. package/lib/rest/trunking/v1/trunk/ipAccessControlList.js +7 -0
  511. package/lib/rest/trunking/v1/trunk/originationUrl.js +8 -0
  512. package/lib/rest/trunking/v1/trunk/phoneNumber.js +7 -0
  513. package/lib/rest/trunking/v1/trunk/recording.js +4 -0
  514. package/lib/rest/trunking/v1/trunk.js +8 -0
  515. package/lib/rest/trusthub/v1/complianceInquiries.js +2 -0
  516. package/lib/rest/trusthub/v1/complianceRegistrationInquiries.js +2 -0
  517. package/lib/rest/trusthub/v1/complianceTollfreeInquiries.js +1 -0
  518. package/lib/rest/trusthub/v1/customerProfiles/customerProfilesChannelEndpointAssignment.js +7 -0
  519. package/lib/rest/trusthub/v1/customerProfiles/customerProfilesEntityAssignments.js +7 -0
  520. package/lib/rest/trusthub/v1/customerProfiles/customerProfilesEvaluations.js +5 -0
  521. package/lib/rest/trusthub/v1/customerProfiles.js +8 -0
  522. package/lib/rest/trusthub/v1/endUser.js +8 -0
  523. package/lib/rest/trusthub/v1/endUserType.js +4 -0
  524. package/lib/rest/trusthub/v1/policies.js +4 -0
  525. package/lib/rest/trusthub/v1/supportingDocument.js +8 -0
  526. package/lib/rest/trusthub/v1/supportingDocumentType.js +4 -0
  527. package/lib/rest/trusthub/v1/trustProducts/trustProductsChannelEndpointAssignment.js +7 -0
  528. package/lib/rest/trusthub/v1/trustProducts/trustProductsEntityAssignments.js +7 -0
  529. package/lib/rest/trusthub/v1/trustProducts/trustProductsEvaluations.js +5 -0
  530. package/lib/rest/trusthub/v1/trustProducts.js +8 -0
  531. package/lib/rest/verify/v2/form.js +3 -0
  532. package/lib/rest/verify/v2/safelist.js +6 -0
  533. package/lib/rest/verify/v2/service/accessToken.js +4 -0
  534. package/lib/rest/verify/v2/service/entity/challenge/notification.js +1 -0
  535. package/lib/rest/verify/v2/service/entity/challenge.js +6 -0
  536. package/lib/rest/verify/v2/service/entity/factor.js +7 -0
  537. package/lib/rest/verify/v2/service/entity/newFactor.js +1 -0
  538. package/lib/rest/verify/v2/service/entity.js +7 -0
  539. package/lib/rest/verify/v2/service/messagingConfiguration.js +8 -0
  540. package/lib/rest/verify/v2/service/rateLimit/bucket.js +8 -0
  541. package/lib/rest/verify/v2/service/rateLimit.js +8 -0
  542. package/lib/rest/verify/v2/service/verification.js +5 -0
  543. package/lib/rest/verify/v2/service/verificationCheck.js +1 -0
  544. package/lib/rest/verify/v2/service/webhook.js +8 -0
  545. package/lib/rest/verify/v2/service.js +8 -0
  546. package/lib/rest/verify/v2/template.js +1 -0
  547. package/lib/rest/verify/v2/verificationAttempt.js +4 -0
  548. package/lib/rest/verify/v2/verificationAttemptsSummary.js +1 -0
  549. package/lib/rest/video/v1/composition.js +7 -0
  550. package/lib/rest/video/v1/compositionHook.js +8 -0
  551. package/lib/rest/video/v1/compositionSettings.js +4 -0
  552. package/lib/rest/video/v1/recording.js +6 -0
  553. package/lib/rest/video/v1/recordingSettings.js +4 -0
  554. package/lib/rest/video/v1/room/participant/anonymize.js +3 -0
  555. package/lib/rest/video/v1/room/participant/publishedTrack.js +4 -0
  556. package/lib/rest/video/v1/room/participant/subscribeRules.js +4 -0
  557. package/lib/rest/video/v1/room/participant/subscribedTrack.js +4 -0
  558. package/lib/rest/video/v1/room/participant.js +5 -0
  559. package/lib/rest/video/v1/room/recordingRules.js +4 -0
  560. package/lib/rest/video/v1/room/roomRecording.js +6 -0
  561. package/lib/rest/video/v1/room.js +6 -0
  562. package/lib/rest/voice/v1/archivedCall.js +2 -0
  563. package/lib/rest/voice/v1/byocTrunk.js +8 -0
  564. package/lib/rest/voice/v1/connectionPolicy/connectionPolicyTarget.js +8 -0
  565. package/lib/rest/voice/v1/connectionPolicy.js +8 -0
  566. package/lib/rest/voice/v1/dialingPermissions/bulkCountryUpdate.js +1 -0
  567. package/lib/rest/voice/v1/dialingPermissions/country/highriskSpecialPrefix.js +1 -0
  568. package/lib/rest/voice/v1/dialingPermissions/country.js +4 -0
  569. package/lib/rest/voice/v1/dialingPermissions/settings.js +4 -0
  570. package/lib/rest/voice/v1/ipRecord.js +8 -0
  571. package/lib/rest/voice/v1/sourceIpMapping.js +8 -0
  572. package/lib/rest/wireless/v1/command.js +7 -0
  573. package/lib/rest/wireless/v1/ratePlan.js +8 -0
  574. package/lib/rest/wireless/v1/sim/dataSession.js +1 -0
  575. package/lib/rest/wireless/v1/sim/usageRecord.js +1 -0
  576. package/lib/rest/wireless/v1/sim.js +7 -0
  577. package/lib/rest/wireless/v1/usageRecord.js +1 -0
  578. package/package.json +1 -1
package/README.md CHANGED
@@ -58,6 +58,13 @@ After a brief delay, you will receive the text message on your phone.
58
58
  > **Warning**
59
59
  > It's okay to hardcode your credentials when testing locally, but you should use environment variables to keep them secret before committing any code or deploying to production. Check out [How to Set Environment Variables](https://www.twilio.com/blog/2017/01/how-to-set-environment-variables.html) for more information.
60
60
 
61
+ ## OAuth Feature for Twilio APIs
62
+ We are introducing Client Credentials Flow-based OAuth 2.0 authentication. This feature is currently in beta and its implementation is subject to change.
63
+
64
+ API examples [here](https://github.com/twilio/twilio-node/blob/main/examples/public_oauth.js)
65
+
66
+ Organisation API examples [here](https://github.com/twilio/twilio-node/blob/main/examples/orgs_api.js)
67
+
61
68
  ## Usage
62
69
 
63
70
  Check out these [code examples](examples) in JavaScript and TypeScript to get up and running quickly.
@@ -0,0 +1,7 @@
1
+ export default abstract class AuthStrategy {
2
+ private authType;
3
+ protected constructor(authType: string);
4
+ getAuthType(): string;
5
+ abstract getAuthString(): Promise<string>;
6
+ abstract requiresAuthentication(): boolean;
7
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class AuthStrategy {
4
+ constructor(authType) {
5
+ this.authType = authType;
6
+ }
7
+ getAuthType() {
8
+ return this.authType;
9
+ }
10
+ }
11
+ exports.default = AuthStrategy;
@@ -0,0 +1,8 @@
1
+ import AuthStrategy from "./AuthStrategy";
2
+ export default class BasicAuthStrategy extends AuthStrategy {
3
+ private username;
4
+ private password;
5
+ constructor(username: string, password: string);
6
+ getAuthString(): Promise<string>;
7
+ requiresAuthentication(): boolean;
8
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const AuthStrategy_1 = __importDefault(require("./AuthStrategy"));
7
+ class BasicAuthStrategy extends AuthStrategy_1.default {
8
+ constructor(username, password) {
9
+ super("basic");
10
+ this.username = username;
11
+ this.password = password;
12
+ }
13
+ getAuthString() {
14
+ const auth = Buffer.from(this.username + ":" + this.password).toString("base64");
15
+ return Promise.resolve(`Basic ${auth}`);
16
+ }
17
+ requiresAuthentication() {
18
+ return true;
19
+ }
20
+ }
21
+ exports.default = BasicAuthStrategy;
@@ -0,0 +1,6 @@
1
+ import AuthStrategy from "./AuthStrategy";
2
+ export default class NoAuthStrategy extends AuthStrategy {
3
+ constructor();
4
+ getAuthString(): Promise<string>;
5
+ requiresAuthentication(): boolean;
6
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const AuthStrategy_1 = __importDefault(require("./AuthStrategy"));
7
+ class NoAuthStrategy extends AuthStrategy_1.default {
8
+ constructor() {
9
+ super("noauth");
10
+ }
11
+ getAuthString() {
12
+ return Promise.resolve("");
13
+ }
14
+ requiresAuthentication() {
15
+ return false;
16
+ }
17
+ }
18
+ exports.default = NoAuthStrategy;
@@ -0,0 +1,16 @@
1
+ import AuthStrategy from "./AuthStrategy";
2
+ import TokenManager from "../http/bearer_token/TokenManager";
3
+ export default class TokenAuthStrategy extends AuthStrategy {
4
+ private token;
5
+ private tokenManager;
6
+ constructor(tokenManager: TokenManager);
7
+ getAuthString(): Promise<string>;
8
+ requiresAuthentication(): boolean;
9
+ fetchToken(): Promise<string>;
10
+ /**
11
+ * Function to check if the token is expired with a buffer of 30 seconds.
12
+ * @param token - The JWT token as a string.
13
+ * @returns Boolean indicating if the token is expired.
14
+ */
15
+ isTokenExpired(token: string): boolean;
16
+ }
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const AuthStrategy_1 = __importDefault(require("./AuthStrategy"));
7
+ const jsonwebtoken_1 = __importDefault(require("jsonwebtoken"));
8
+ class TokenAuthStrategy extends AuthStrategy_1.default {
9
+ constructor(tokenManager) {
10
+ super("token");
11
+ this.token = "";
12
+ this.tokenManager = tokenManager;
13
+ }
14
+ async getAuthString() {
15
+ return this.fetchToken()
16
+ .then((token) => {
17
+ this.token = token;
18
+ return `Bearer ${this.token}`;
19
+ })
20
+ .catch((error) => {
21
+ throw new Error(`Failed to fetch access token: ${error.message}`);
22
+ });
23
+ }
24
+ requiresAuthentication() {
25
+ return true;
26
+ }
27
+ async fetchToken() {
28
+ if (this.token == null ||
29
+ this.token.length === 0 ||
30
+ this.isTokenExpired(this.token)) {
31
+ return this.tokenManager.fetchToken();
32
+ }
33
+ return Promise.resolve(this.token);
34
+ }
35
+ /**
36
+ * Function to check if the token is expired with a buffer of 30 seconds.
37
+ * @param token - The JWT token as a string.
38
+ * @returns Boolean indicating if the token is expired.
39
+ */
40
+ isTokenExpired(token) {
41
+ try {
42
+ // Decode the token without verifying the signature, as we only want to read the expiration for this check
43
+ const decoded = jsonwebtoken_1.default.decode(token);
44
+ if (!decoded || !decoded.exp) {
45
+ // If the token doesn't have an expiration, consider it expired
46
+ return true;
47
+ }
48
+ const expiresAt = decoded.exp * 1000;
49
+ const bufferMilliseconds = 30 * 1000;
50
+ const bufferExpiresAt = expiresAt - bufferMilliseconds;
51
+ // Return true if the current time is after the expiration time with buffer
52
+ return Date.now() > bufferExpiresAt;
53
+ }
54
+ catch (error) {
55
+ // If there's an error decoding the token, consider it expired
56
+ return true;
57
+ }
58
+ }
59
+ }
60
+ exports.default = TokenAuthStrategy;
@@ -4,6 +4,8 @@
4
4
  import RequestClient from "./RequestClient";
5
5
  import { HttpMethod } from "../interfaces";
6
6
  import { Headers } from "../http/request";
7
+ import AuthStrategy from "../auth_strategy/AuthStrategy";
8
+ import CredentialProvider from "../credential_provider/CredentialProvider";
7
9
  declare namespace Twilio {
8
10
  interface ClientOpts {
9
11
  httpClient?: RequestClient;
@@ -34,6 +36,7 @@ declare namespace Twilio {
34
36
  uri?: string;
35
37
  username?: string;
36
38
  password?: string;
39
+ authStrategy?: AuthStrategy;
37
40
  headers?: Headers;
38
41
  params?: object;
39
42
  data?: object;
@@ -45,9 +48,10 @@ declare namespace Twilio {
45
48
  * Parent class for Twilio Client that implements request & validation logic
46
49
  */
47
50
  class Client {
48
- username: string;
49
- password: string;
51
+ username?: string;
52
+ password?: string;
50
53
  accountSid: string;
54
+ credentialProvider?: CredentialProvider;
51
55
  opts?: ClientOpts;
52
56
  env?: NodeJS.ProcessEnv;
53
57
  edge?: string;
@@ -83,6 +87,11 @@ declare namespace Twilio {
83
87
  * @returns A new instance of BaseTwilio
84
88
  */
85
89
  constructor(username?: string, password?: string, opts?: ClientOpts);
90
+ setOpts(opts?: ClientOpts): void;
91
+ setAccountSid(accountSid?: string): void;
92
+ setCredentialProvider(credentialProvider: CredentialProvider): void;
93
+ invalidateBasicAuth(): void;
94
+ invalidateOAuth(): void;
86
95
  get httpClient(): RequestClient;
87
96
  /**
88
97
  * Makes a request to the Twilio API using the configured http client.
@@ -32,23 +32,22 @@ var Twilio;
32
32
  */
33
33
  /* jshint ignore:end */
34
34
  constructor(username, password, opts) {
35
- this.opts = opts || {};
36
- this.env = this.opts.env || {};
35
+ this.setOpts(opts);
37
36
  this.username =
38
37
  username ??
39
- this.env.TWILIO_ACCOUNT_SID ??
40
- process.env.TWILIO_ACCOUNT_SID ??
41
- (() => {
42
- throw new Error("username is required");
43
- })();
38
+ this.env?.TWILIO_ACCOUNT_SID ??
39
+ process.env.TWILIO_ACCOUNT_SID;
44
40
  this.password =
45
41
  password ??
46
- this.env.TWILIO_AUTH_TOKEN ??
47
- process.env.TWILIO_AUTH_TOKEN ??
48
- (() => {
49
- throw new Error("password is required");
50
- })();
51
- this.accountSid = this.opts.accountSid || this.username;
42
+ this.env?.TWILIO_AUTH_TOKEN ??
43
+ process.env.TWILIO_AUTH_TOKEN;
44
+ this.accountSid = "";
45
+ this.setAccountSid(this.opts?.accountSid || this.username);
46
+ this.invalidateOAuth();
47
+ }
48
+ setOpts(opts) {
49
+ this.opts = opts || {};
50
+ this.env = this.opts.env || {};
52
51
  this.edge =
53
52
  this.opts.edge ?? this.env.TWILIO_EDGE ?? process.env.TWILIO_EDGE;
54
53
  this.region =
@@ -73,13 +72,28 @@ var Twilio;
73
72
  if (this.opts.lazyLoading === false) {
74
73
  this._httpClient = this.httpClient;
75
74
  }
76
- if (!this.accountSid.startsWith("AC")) {
77
- const apiKeyMsg = this.accountSid.startsWith("SK")
75
+ }
76
+ setAccountSid(accountSid) {
77
+ this.accountSid = accountSid || "";
78
+ if (this.accountSid && !this.accountSid?.startsWith("AC")) {
79
+ const apiKeyMsg = this.accountSid?.startsWith("SK")
78
80
  ? ". The given SID indicates an API Key which requires the accountSid to be passed as an additional option"
79
81
  : "";
80
82
  throw new Error("accountSid must start with AC" + apiKeyMsg);
81
83
  }
82
84
  }
85
+ setCredentialProvider(credentialProvider) {
86
+ this.credentialProvider = credentialProvider;
87
+ this.accountSid = "";
88
+ this.invalidateBasicAuth();
89
+ }
90
+ invalidateBasicAuth() {
91
+ this.username = undefined;
92
+ this.password = undefined;
93
+ }
94
+ invalidateOAuth() {
95
+ this.credentialProvider = undefined;
96
+ }
83
97
  get httpClient() {
84
98
  if (!this._httpClient) {
85
99
  this._httpClient = new RequestClient_1.default({
@@ -116,6 +130,19 @@ var Twilio;
116
130
  }
117
131
  const username = opts.username || this.username;
118
132
  const password = opts.password || this.password;
133
+ const authStrategy = opts.authStrategy || this.credentialProvider?.toAuthStrategy();
134
+ if (!authStrategy) {
135
+ if (!username) {
136
+ (() => {
137
+ throw new Error("username is required");
138
+ })();
139
+ }
140
+ if (!password) {
141
+ (() => {
142
+ throw new Error("password is required");
143
+ })();
144
+ }
145
+ }
119
146
  const headers = opts.headers || {};
120
147
  const pkgVersion = moduleInfo.version;
121
148
  const osName = os.platform();
@@ -130,7 +157,7 @@ var Twilio;
130
157
  !headers["Content-Type"]) {
131
158
  headers["Content-Type"] = "application/x-www-form-urlencoded";
132
159
  }
133
- if (!headers["Accept"]) {
160
+ if (opts.method !== "delete" && !headers["Accept"]) {
134
161
  headers["Accept"] = "application/json";
135
162
  }
136
163
  var uri = new url.URL(opts.uri);
@@ -140,6 +167,7 @@ var Twilio;
140
167
  uri: uri.href,
141
168
  username: username,
142
169
  password: password,
170
+ authStrategy: authStrategy,
143
171
  headers: headers,
144
172
  params: opts.params,
145
173
  data: opts.data,
package/lib/base/Page.js CHANGED
@@ -153,6 +153,9 @@ class Page {
153
153
  if (keys.length === 1) {
154
154
  return payload[keys[0]];
155
155
  }
156
+ for (const key of keys)
157
+ if (Array.isArray(payload[key]))
158
+ return payload[key];
156
159
  throw new Error("Page Records cannot be deserialized");
157
160
  }
158
161
  forOwn(obj, iteratee) {
@@ -4,6 +4,7 @@ import { HttpMethod } from "../interfaces";
4
4
  import { AxiosInstance } from "axios";
5
5
  import Response from "../http/response";
6
6
  import Request, { Headers } from "../http/request";
7
+ import AuthStrategy from "../auth_strategy/AuthStrategy";
7
8
  declare class RequestClient {
8
9
  defaultTimeout: number;
9
10
  axios: AxiosInstance;
@@ -35,6 +36,7 @@ declare class RequestClient {
35
36
  * @param opts.uri - The request uri
36
37
  * @param opts.username - The username used for auth
37
38
  * @param opts.password - The password used for auth
39
+ * @param opts.authStrategy - The authStrategy for API call
38
40
  * @param opts.headers - The request headers
39
41
  * @param opts.params - The request params
40
42
  * @param opts.data - The request data
@@ -65,6 +67,10 @@ declare namespace RequestClient {
65
67
  * The password used for auth
66
68
  */
67
69
  password?: string;
70
+ /**
71
+ * The AuthStrategy for API Call
72
+ */
73
+ authStrategy?: AuthStrategy;
68
74
  /**
69
75
  * The request headers
70
76
  */
@@ -126,6 +126,7 @@ class RequestClient {
126
126
  * @param opts.uri - The request uri
127
127
  * @param opts.username - The username used for auth
128
128
  * @param opts.password - The password used for auth
129
+ * @param opts.authStrategy - The authStrategy for API call
129
130
  * @param opts.headers - The request headers
130
131
  * @param opts.params - The request params
131
132
  * @param opts.data - The request data
@@ -134,7 +135,7 @@ class RequestClient {
134
135
  * @param opts.forever - Set to true to use the forever-agent
135
136
  * @param opts.logLevel - Show debug logs
136
137
  */
137
- request(opts) {
138
+ async request(opts) {
138
139
  if (!opts.method) {
139
140
  throw new Error("http method is required");
140
141
  }
@@ -149,6 +150,9 @@ class RequestClient {
149
150
  auth = Buffer.from(opts.username + ":" + opts.password).toString("base64");
150
151
  headers.Authorization = "Basic " + auth;
151
152
  }
153
+ else if (opts.authStrategy) {
154
+ headers.Authorization = await opts.authStrategy.getAuthString();
155
+ }
152
156
  const options = {
153
157
  timeout: opts.timeout || this.defaultTimeout,
154
158
  maxRedirects: opts.allowRedirects ? 10 : 0,
@@ -0,0 +1,22 @@
1
+ import CredentialProvider from "./CredentialProvider";
2
+ import TokenManager from "../http/bearer_token/TokenManager";
3
+ import AuthStrategy from "../auth_strategy/AuthStrategy";
4
+ declare class ClientCredentialProvider extends CredentialProvider {
5
+ grantType: string;
6
+ clientId: string;
7
+ clientSecret: string;
8
+ tokenManager: TokenManager | null;
9
+ constructor();
10
+ toAuthStrategy(): AuthStrategy;
11
+ }
12
+ declare namespace ClientCredentialProvider {
13
+ class ClientCredentialProviderBuilder {
14
+ private readonly instance;
15
+ constructor();
16
+ setClientId(clientId: string): ClientCredentialProviderBuilder;
17
+ setClientSecret(clientSecret: string): ClientCredentialProviderBuilder;
18
+ setTokenManager(tokenManager: TokenManager): ClientCredentialProviderBuilder;
19
+ build(): ClientCredentialProvider;
20
+ }
21
+ }
22
+ export = ClientCredentialProvider;
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ const CredentialProvider_1 = __importDefault(require("./CredentialProvider"));
6
+ const ApiTokenManager_1 = __importDefault(require("../http/bearer_token/ApiTokenManager"));
7
+ const TokenAuthStrategy_1 = __importDefault(require("../auth_strategy/TokenAuthStrategy"));
8
+ class ClientCredentialProvider extends CredentialProvider_1.default {
9
+ constructor() {
10
+ super("client-credentials");
11
+ this.grantType = "client_credentials";
12
+ this.clientId = "";
13
+ this.clientSecret = "";
14
+ this.tokenManager = null;
15
+ }
16
+ toAuthStrategy() {
17
+ if (this.tokenManager == null) {
18
+ this.tokenManager = new ApiTokenManager_1.default({
19
+ grantType: this.grantType,
20
+ clientId: this.clientId,
21
+ clientSecret: this.clientSecret,
22
+ });
23
+ }
24
+ return new TokenAuthStrategy_1.default(this.tokenManager);
25
+ }
26
+ }
27
+ (function (ClientCredentialProvider) {
28
+ class ClientCredentialProviderBuilder {
29
+ constructor() {
30
+ this.instance = new ClientCredentialProvider();
31
+ }
32
+ setClientId(clientId) {
33
+ this.instance.clientId = clientId;
34
+ return this;
35
+ }
36
+ setClientSecret(clientSecret) {
37
+ this.instance.clientSecret = clientSecret;
38
+ return this;
39
+ }
40
+ setTokenManager(tokenManager) {
41
+ this.instance.tokenManager = tokenManager;
42
+ return this;
43
+ }
44
+ build() {
45
+ return this.instance;
46
+ }
47
+ }
48
+ ClientCredentialProvider.ClientCredentialProviderBuilder = ClientCredentialProviderBuilder;
49
+ })(ClientCredentialProvider || (ClientCredentialProvider = {}));
50
+ module.exports = ClientCredentialProvider;
@@ -0,0 +1,7 @@
1
+ import AuthStrategy from "../auth_strategy/AuthStrategy";
2
+ export default abstract class CredentialProvider {
3
+ private authType;
4
+ protected constructor(authType: string);
5
+ getAuthType(): string;
6
+ abstract toAuthStrategy(): AuthStrategy;
7
+ }
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class CredentialProvider {
4
+ constructor(authType) {
5
+ this.authType = authType;
6
+ }
7
+ getAuthType() {
8
+ return this.authType;
9
+ }
10
+ }
11
+ exports.default = CredentialProvider;
@@ -0,0 +1,9 @@
1
+ import CredentialProvider from "./CredentialProvider";
2
+ import AuthStrategy from "../auth_strategy/AuthStrategy";
3
+ declare namespace NoAuthCredentialProvider {
4
+ class NoAuthCredentialProvider extends CredentialProvider {
5
+ constructor();
6
+ toAuthStrategy(): AuthStrategy;
7
+ }
8
+ }
9
+ export = NoAuthCredentialProvider;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ const CredentialProvider_1 = __importDefault(require("./CredentialProvider"));
6
+ const NoAuthStrategy_1 = __importDefault(require("../auth_strategy/NoAuthStrategy"));
7
+ var NoAuthCredentialProvider;
8
+ (function (NoAuthCredentialProvider_1) {
9
+ class NoAuthCredentialProvider extends CredentialProvider_1.default {
10
+ constructor() {
11
+ super("noauth");
12
+ }
13
+ toAuthStrategy() {
14
+ return new NoAuthStrategy_1.default();
15
+ }
16
+ }
17
+ NoAuthCredentialProvider_1.NoAuthCredentialProvider = NoAuthCredentialProvider;
18
+ })(NoAuthCredentialProvider || (NoAuthCredentialProvider = {}));
19
+ module.exports = NoAuthCredentialProvider;
@@ -0,0 +1,22 @@
1
+ import CredentialProvider from "./CredentialProvider";
2
+ import TokenManager from "../http/bearer_token/TokenManager";
3
+ import AuthStrategy from "../auth_strategy/AuthStrategy";
4
+ declare class OrgsCredentialProvider extends CredentialProvider {
5
+ grantType: string;
6
+ clientId: string;
7
+ clientSecret: string;
8
+ tokenManager: TokenManager | null;
9
+ constructor();
10
+ toAuthStrategy(): AuthStrategy;
11
+ }
12
+ declare namespace OrgsCredentialProvider {
13
+ class OrgsCredentialProviderBuilder {
14
+ private readonly instance;
15
+ constructor();
16
+ setClientId(clientId: string): OrgsCredentialProviderBuilder;
17
+ setClientSecret(clientSecret: string): OrgsCredentialProviderBuilder;
18
+ setTokenManager(tokenManager: TokenManager): OrgsCredentialProviderBuilder;
19
+ build(): OrgsCredentialProvider;
20
+ }
21
+ }
22
+ export = OrgsCredentialProvider;
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ const CredentialProvider_1 = __importDefault(require("./CredentialProvider"));
6
+ const OrgsTokenManager_1 = __importDefault(require("../http/bearer_token/OrgsTokenManager"));
7
+ const TokenAuthStrategy_1 = __importDefault(require("../auth_strategy/TokenAuthStrategy"));
8
+ class OrgsCredentialProvider extends CredentialProvider_1.default {
9
+ constructor() {
10
+ super("client-credentials");
11
+ this.grantType = "client_credentials";
12
+ this.clientId = "";
13
+ this.clientSecret = "";
14
+ this.tokenManager = null;
15
+ }
16
+ toAuthStrategy() {
17
+ if (this.tokenManager == null) {
18
+ this.tokenManager = new OrgsTokenManager_1.default({
19
+ grantType: this.grantType,
20
+ clientId: this.clientId,
21
+ clientSecret: this.clientSecret,
22
+ });
23
+ }
24
+ return new TokenAuthStrategy_1.default(this.tokenManager);
25
+ }
26
+ }
27
+ (function (OrgsCredentialProvider) {
28
+ class OrgsCredentialProviderBuilder {
29
+ constructor() {
30
+ this.instance = new OrgsCredentialProvider();
31
+ }
32
+ setClientId(clientId) {
33
+ this.instance.clientId = clientId;
34
+ return this;
35
+ }
36
+ setClientSecret(clientSecret) {
37
+ this.instance.clientSecret = clientSecret;
38
+ return this;
39
+ }
40
+ setTokenManager(tokenManager) {
41
+ this.instance.tokenManager = tokenManager;
42
+ return this;
43
+ }
44
+ build() {
45
+ return this.instance;
46
+ }
47
+ }
48
+ OrgsCredentialProvider.OrgsCredentialProviderBuilder = OrgsCredentialProviderBuilder;
49
+ })(OrgsCredentialProvider || (OrgsCredentialProvider = {}));
50
+ module.exports = OrgsCredentialProvider;
@@ -0,0 +1,8 @@
1
+ import TokenManager from "./TokenManager";
2
+ import { TokenListInstanceCreateOptions } from "../../rest/previewIam/v1/token";
3
+ export default class ApiTokenManager implements TokenManager {
4
+ private params;
5
+ constructor(params: TokenListInstanceCreateOptions);
6
+ getParams(): TokenListInstanceCreateOptions;
7
+ fetchToken(): Promise<string>;
8
+ }
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const token_1 = require("../../rest/previewIam/v1/token");
7
+ const PreviewIamBase_1 = __importDefault(require("../../rest/PreviewIamBase"));
8
+ const V1_1 = __importDefault(require("../../rest/previewIam/V1"));
9
+ const NoAuthCredentialProvider_1 = __importDefault(require("../../credential_provider/NoAuthCredentialProvider"));
10
+ const BaseTwilio_1 = require("../../base/BaseTwilio");
11
+ class ApiTokenManager {
12
+ constructor(params) {
13
+ this.params = params;
14
+ }
15
+ getParams() {
16
+ return this.params;
17
+ }
18
+ async fetchToken() {
19
+ const noAuthCredentialProvider = new NoAuthCredentialProvider_1.default.NoAuthCredentialProvider();
20
+ const client = new BaseTwilio_1.Client();
21
+ client.setCredentialProvider(noAuthCredentialProvider);
22
+ const tokenListInstance = (0, token_1.TokenListInstance)(new V1_1.default(new PreviewIamBase_1.default(client)));
23
+ return tokenListInstance
24
+ .create(this.params)
25
+ .then((token) => {
26
+ return token.accessToken;
27
+ })
28
+ .catch((error) => {
29
+ throw new Error(`Error Status Code: ${error.status}\nFailed to fetch access token: ${error.message}`);
30
+ });
31
+ }
32
+ }
33
+ exports.default = ApiTokenManager;
@@ -0,0 +1,8 @@
1
+ import TokenManager from "./TokenManager";
2
+ import { TokenListInstanceCreateOptions } from "../../rest/previewIam/v1/token";
3
+ export default class OrgsTokenManager implements TokenManager {
4
+ private readonly params;
5
+ constructor(params: TokenListInstanceCreateOptions);
6
+ getParams(): TokenListInstanceCreateOptions;
7
+ fetchToken(): Promise<string>;
8
+ }