@azure/identity 4.14.0-beta.1 → 4.14.0-beta.3

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 (571) hide show
  1. package/README.md +4 -40
  2. package/dist/browser/client/identityClient.d.ts +5 -4
  3. package/dist/browser/client/identityClient.d.ts.map +1 -1
  4. package/dist/browser/client/identityClient.js +56 -18
  5. package/dist/browser/client/identityClient.js.map +1 -1
  6. package/dist/browser/constants.d.ts +1 -1
  7. package/dist/browser/constants.js +1 -1
  8. package/dist/browser/constants.js.map +1 -1
  9. package/dist/browser/credentials/authorizationCodeCredential.d.ts +3 -3
  10. package/dist/browser/credentials/authorizationCodeCredential.d.ts.map +1 -0
  11. package/dist/browser/credentials/authorizationCodeCredential.js +2 -2
  12. package/dist/browser/credentials/authorizationCodeCredential.js.map +1 -0
  13. package/dist/browser/credentials/authorizationCodeCredentialOptions.d.ts.map +1 -1
  14. package/dist/browser/credentials/authorizationCodeCredentialOptions.js.map +1 -1
  15. package/dist/browser/credentials/azureCliCredential.d.ts +5 -4
  16. package/dist/browser/credentials/azureCliCredential.d.ts.map +1 -0
  17. package/dist/browser/credentials/azureCliCredential.js +3 -3
  18. package/dist/browser/credentials/azureCliCredential.js.map +1 -0
  19. package/dist/browser/credentials/azureDeveloperCliCredential.d.ts +5 -4
  20. package/dist/browser/credentials/azureDeveloperCliCredential.d.ts.map +1 -0
  21. package/dist/browser/credentials/azureDeveloperCliCredential.js +3 -3
  22. package/dist/browser/credentials/azureDeveloperCliCredential.js.map +1 -0
  23. package/dist/browser/credentials/azurePipelinesCredential.d.ts +5 -4
  24. package/dist/browser/credentials/azurePipelinesCredential.d.ts.map +1 -0
  25. package/dist/browser/credentials/azurePipelinesCredential.js +3 -3
  26. package/dist/browser/credentials/azurePipelinesCredential.js.map +1 -0
  27. package/dist/browser/credentials/azurePipelinesCredentialOptions.d.ts.map +1 -1
  28. package/dist/browser/credentials/azurePipelinesCredentialOptions.js.map +1 -1
  29. package/dist/browser/credentials/azurePowerShellCredential.d.ts +5 -4
  30. package/dist/browser/credentials/azurePowerShellCredential.d.ts.map +1 -0
  31. package/dist/browser/credentials/azurePowerShellCredential.js +3 -3
  32. package/dist/browser/credentials/azurePowerShellCredential.js.map +1 -0
  33. package/dist/browser/credentials/brokerCredential.d.ts +2 -2
  34. package/dist/browser/credentials/brokerCredential.d.ts.map +1 -1
  35. package/dist/browser/credentials/brokerCredential.js +0 -1
  36. package/dist/browser/credentials/brokerCredential.js.map +1 -1
  37. package/dist/browser/credentials/clientAssertionCredential.d.ts +5 -4
  38. package/dist/browser/credentials/clientAssertionCredential.d.ts.map +1 -0
  39. package/dist/browser/credentials/clientAssertionCredential.js +3 -3
  40. package/dist/browser/credentials/clientAssertionCredential.js.map +1 -0
  41. package/dist/browser/credentials/clientAssertionCredentialOptions.d.ts.map +1 -1
  42. package/dist/browser/credentials/clientAssertionCredentialOptions.js.map +1 -1
  43. package/dist/browser/credentials/clientCertificateCredential.d.ts +6 -4
  44. package/dist/browser/credentials/clientCertificateCredential.d.ts.map +1 -0
  45. package/dist/browser/credentials/clientCertificateCredential.js +3 -3
  46. package/dist/browser/credentials/clientCertificateCredential.js.map +1 -0
  47. package/dist/browser/credentials/clientCertificateCredentialOptions.d.ts.map +1 -1
  48. package/dist/browser/credentials/clientCertificateCredentialOptions.js.map +1 -1
  49. package/dist/browser/credentials/clientSecretCredential.d.ts +1 -1
  50. package/dist/browser/credentials/clientSecretCredential.d.ts.map +1 -0
  51. package/dist/browser/credentials/clientSecretCredential.js +1 -1
  52. package/dist/browser/credentials/clientSecretCredential.js.map +1 -0
  53. package/dist/browser/credentials/clientSecretCredentialOptions.d.ts.map +1 -1
  54. package/dist/browser/credentials/clientSecretCredentialOptions.js.map +1 -1
  55. package/dist/browser/credentials/defaultAzureCredential.d.ts +3 -3
  56. package/dist/browser/credentials/defaultAzureCredential.d.ts.map +1 -0
  57. package/dist/browser/credentials/defaultAzureCredential.js +2 -2
  58. package/dist/browser/credentials/defaultAzureCredential.js.map +1 -0
  59. package/dist/browser/credentials/defaultAzureCredentialOptions.d.ts +2 -2
  60. package/dist/browser/credentials/defaultAzureCredentialOptions.d.ts.map +1 -1
  61. package/dist/browser/credentials/defaultAzureCredentialOptions.js.map +1 -1
  62. package/dist/browser/credentials/deviceCodeCredential.d.ts +5 -4
  63. package/dist/browser/credentials/deviceCodeCredential.d.ts.map +1 -0
  64. package/dist/browser/credentials/deviceCodeCredential.js +3 -3
  65. package/dist/browser/credentials/deviceCodeCredential.js.map +1 -0
  66. package/dist/browser/credentials/deviceCodeCredentialOptions.d.ts.map +1 -1
  67. package/dist/browser/credentials/deviceCodeCredentialOptions.js.map +1 -1
  68. package/dist/browser/credentials/environmentCredential.d.ts +5 -4
  69. package/dist/browser/credentials/environmentCredential.d.ts.map +1 -0
  70. package/dist/browser/credentials/environmentCredential.js +3 -3
  71. package/dist/browser/credentials/environmentCredential.js.map +1 -0
  72. package/dist/browser/credentials/environmentCredentialOptions.d.ts.map +1 -1
  73. package/dist/browser/credentials/environmentCredentialOptions.js.map +1 -1
  74. package/dist/browser/credentials/interactiveBrowserCredential.d.ts +1 -1
  75. package/dist/browser/credentials/interactiveBrowserCredential.d.ts.map +1 -0
  76. package/dist/browser/credentials/interactiveBrowserCredential.js +1 -1
  77. package/dist/browser/credentials/interactiveBrowserCredential.js.map +1 -0
  78. package/dist/browser/credentials/interactiveBrowserCredentialOptions.d.ts.map +1 -1
  79. package/dist/browser/credentials/interactiveBrowserCredentialOptions.js.map +1 -1
  80. package/dist/browser/credentials/interactiveCredentialOptions.d.ts.map +1 -1
  81. package/dist/browser/credentials/interactiveCredentialOptions.js.map +1 -1
  82. package/dist/browser/credentials/managedIdentityCredential/index.d.ts +9 -4
  83. package/dist/browser/credentials/managedIdentityCredential/index.d.ts.map +1 -0
  84. package/dist/browser/credentials/managedIdentityCredential/index.js +3 -3
  85. package/dist/browser/credentials/managedIdentityCredential/index.js.map +1 -0
  86. package/dist/browser/credentials/managedIdentityCredential/tokenExchangeMsi.js.map +1 -1
  87. package/dist/browser/credentials/onBehalfOfCredential.d.ts +5 -4
  88. package/dist/browser/credentials/onBehalfOfCredential.d.ts.map +1 -0
  89. package/dist/browser/credentials/onBehalfOfCredential.js +3 -3
  90. package/dist/browser/credentials/onBehalfOfCredential.js.map +1 -0
  91. package/dist/browser/credentials/usernamePasswordCredential.d.ts +1 -1
  92. package/dist/browser/credentials/usernamePasswordCredential.d.ts.map +1 -0
  93. package/dist/browser/credentials/usernamePasswordCredential.js +1 -1
  94. package/dist/browser/credentials/usernamePasswordCredential.js.map +1 -0
  95. package/dist/browser/credentials/usernamePasswordCredentialOptions.d.ts.map +1 -1
  96. package/dist/browser/credentials/usernamePasswordCredentialOptions.js.map +1 -1
  97. package/dist/browser/credentials/visualStudioCodeCredential.d.ts +5 -4
  98. package/dist/browser/credentials/visualStudioCodeCredential.d.ts.map +1 -0
  99. package/dist/browser/credentials/visualStudioCodeCredential.js +3 -3
  100. package/dist/browser/credentials/visualStudioCodeCredential.js.map +1 -0
  101. package/dist/browser/credentials/workloadIdentityCredential.d.ts +5 -4
  102. package/dist/browser/credentials/workloadIdentityCredential.d.ts.map +1 -0
  103. package/dist/browser/credentials/workloadIdentityCredential.js +3 -3
  104. package/dist/browser/credentials/workloadIdentityCredential.js.map +1 -0
  105. package/dist/browser/credentials/workloadIdentityCredentialOptions.d.ts +2 -2
  106. package/dist/browser/credentials/workloadIdentityCredentialOptions.d.ts.map +1 -1
  107. package/dist/browser/credentials/workloadIdentityCredentialOptions.js.map +1 -1
  108. package/dist/browser/index.d.ts +33 -33
  109. package/dist/browser/index.d.ts.map +1 -1
  110. package/dist/browser/index.js.map +1 -1
  111. package/dist/browser/msal/browserFlows/msalBrowserCommon.d.ts.map +1 -1
  112. package/dist/browser/msal/browserFlows/msalBrowserCommon.js +2 -3
  113. package/dist/browser/msal/browserFlows/msalBrowserCommon.js.map +1 -1
  114. package/dist/browser/msal/msal.d.ts +2 -3
  115. package/dist/browser/msal/msal.d.ts.map +1 -0
  116. package/dist/browser/msal/msal.js +2 -3
  117. package/dist/browser/msal/msal.js.map +1 -0
  118. package/dist/browser/msal/nodeFlows/msalClient.d.ts +14 -8
  119. package/dist/browser/msal/nodeFlows/msalClient.d.ts.map +1 -1
  120. package/dist/browser/msal/nodeFlows/msalClient.js +6 -6
  121. package/dist/browser/msal/nodeFlows/msalClient.js.map +1 -1
  122. package/dist/browser/msal/utils.d.ts +5 -13
  123. package/dist/browser/msal/utils.d.ts.map +1 -1
  124. package/dist/browser/msal/utils.js +12 -25
  125. package/dist/browser/msal/utils.js.map +1 -1
  126. package/dist/browser/plugins/consumer.d.ts +1 -1
  127. package/dist/browser/plugins/consumer.d.ts.map +1 -0
  128. package/dist/browser/plugins/consumer.js +1 -1
  129. package/dist/browser/plugins/consumer.js.map +1 -0
  130. package/dist/browser/util/authorityHost.d.ts +10 -0
  131. package/dist/browser/util/authorityHost.d.ts.map +1 -0
  132. package/dist/browser/util/authorityHost.js +18 -0
  133. package/dist/browser/util/authorityHost.js.map +1 -0
  134. package/dist/browser/util/processMultiTenantRequest.d.ts +3 -2
  135. package/dist/browser/util/processMultiTenantRequest.d.ts.map +1 -0
  136. package/dist/browser/util/processMultiTenantRequest.js +2 -2
  137. package/dist/browser/util/processMultiTenantRequest.js.map +1 -0
  138. package/dist/commonjs/client/identityClient.d.ts +5 -4
  139. package/dist/commonjs/client/identityClient.d.ts.map +1 -1
  140. package/dist/commonjs/client/identityClient.js +295 -252
  141. package/dist/commonjs/client/identityClient.js.map +7 -1
  142. package/dist/commonjs/constants.d.ts +1 -1
  143. package/dist/commonjs/constants.js +61 -78
  144. package/dist/commonjs/constants.js.map +7 -1
  145. package/dist/commonjs/credentials/authorityValidationOptions.js +16 -5
  146. package/dist/commonjs/credentials/authorityValidationOptions.js.map +7 -1
  147. package/dist/commonjs/credentials/authorizationCodeCredential.d.ts.map +1 -1
  148. package/dist/commonjs/credentials/authorizationCodeCredential.js +98 -75
  149. package/dist/commonjs/credentials/authorizationCodeCredential.js.map +7 -1
  150. package/dist/commonjs/credentials/authorizationCodeCredentialOptions.d.ts.map +1 -1
  151. package/dist/commonjs/credentials/authorizationCodeCredentialOptions.js +16 -5
  152. package/dist/commonjs/credentials/authorizationCodeCredentialOptions.js.map +7 -1
  153. package/dist/commonjs/credentials/azureCliCredential.js +245 -214
  154. package/dist/commonjs/credentials/azureCliCredential.js.map +7 -1
  155. package/dist/commonjs/credentials/azureCliCredentialOptions.js +16 -5
  156. package/dist/commonjs/credentials/azureCliCredentialOptions.js.map +7 -1
  157. package/dist/commonjs/credentials/azureDeveloperCliCredential.d.ts +10 -0
  158. package/dist/commonjs/credentials/azureDeveloperCliCredential.d.ts.map +1 -1
  159. package/dist/commonjs/credentials/azureDeveloperCliCredential.js +237 -202
  160. package/dist/commonjs/credentials/azureDeveloperCliCredential.js.map +7 -1
  161. package/dist/commonjs/credentials/azureDeveloperCliCredentialOptions.js +16 -5
  162. package/dist/commonjs/credentials/azureDeveloperCliCredentialOptions.js.map +7 -1
  163. package/dist/commonjs/credentials/azurePipelinesCredential.js +173 -135
  164. package/dist/commonjs/credentials/azurePipelinesCredential.js.map +7 -1
  165. package/dist/commonjs/credentials/azurePipelinesCredentialOptions.d.ts.map +1 -1
  166. package/dist/commonjs/credentials/azurePipelinesCredentialOptions.js +16 -5
  167. package/dist/commonjs/credentials/azurePipelinesCredentialOptions.js.map +7 -1
  168. package/dist/commonjs/credentials/azurePowerShellCredential.js +201 -205
  169. package/dist/commonjs/credentials/azurePowerShellCredential.js.map +7 -1
  170. package/dist/commonjs/credentials/azurePowerShellCredentialOptions.js +16 -5
  171. package/dist/commonjs/credentials/azurePowerShellCredentialOptions.js.map +7 -1
  172. package/dist/commonjs/credentials/brokerAuthOptions.js +16 -3
  173. package/dist/commonjs/credentials/brokerAuthOptions.js.map +7 -1
  174. package/dist/commonjs/credentials/brokerCredential.d.ts +2 -2
  175. package/dist/commonjs/credentials/brokerCredential.d.ts.map +1 -1
  176. package/dist/commonjs/credentials/brokerCredential.js +103 -71
  177. package/dist/commonjs/credentials/brokerCredential.js.map +7 -1
  178. package/dist/commonjs/credentials/browserCustomizationOptions.js +16 -5
  179. package/dist/commonjs/credentials/browserCustomizationOptions.js.map +7 -1
  180. package/dist/commonjs/credentials/chainedTokenCredential.js +113 -93
  181. package/dist/commonjs/credentials/chainedTokenCredential.js.map +7 -1
  182. package/dist/commonjs/credentials/clientAssertionCredential.d.ts.map +1 -1
  183. package/dist/commonjs/credentials/clientAssertionCredential.js +101 -64
  184. package/dist/commonjs/credentials/clientAssertionCredential.js.map +7 -1
  185. package/dist/commonjs/credentials/clientAssertionCredentialOptions.d.ts.map +1 -1
  186. package/dist/commonjs/credentials/clientAssertionCredentialOptions.js +16 -5
  187. package/dist/commonjs/credentials/clientAssertionCredentialOptions.js.map +7 -1
  188. package/dist/commonjs/credentials/clientCertificateCredential.d.ts.map +1 -1
  189. package/dist/commonjs/credentials/clientCertificateCredential.js +129 -124
  190. package/dist/commonjs/credentials/clientCertificateCredential.js.map +7 -1
  191. package/dist/commonjs/credentials/clientCertificateCredentialModels.js +16 -5
  192. package/dist/commonjs/credentials/clientCertificateCredentialModels.js.map +7 -1
  193. package/dist/commonjs/credentials/clientCertificateCredentialOptions.d.ts.map +1 -1
  194. package/dist/commonjs/credentials/clientCertificateCredentialOptions.js +16 -5
  195. package/dist/commonjs/credentials/clientCertificateCredentialOptions.js.map +7 -1
  196. package/dist/commonjs/credentials/clientSecretCredential.d.ts.map +1 -1
  197. package/dist/commonjs/credentials/clientSecretCredential.js +96 -68
  198. package/dist/commonjs/credentials/clientSecretCredential.js.map +7 -1
  199. package/dist/commonjs/credentials/clientSecretCredentialOptions.d.ts.map +1 -1
  200. package/dist/commonjs/credentials/clientSecretCredentialOptions.js +16 -5
  201. package/dist/commonjs/credentials/clientSecretCredentialOptions.js.map +7 -1
  202. package/dist/commonjs/credentials/credentialPersistenceOptions.js +16 -5
  203. package/dist/commonjs/credentials/credentialPersistenceOptions.js.map +7 -1
  204. package/dist/commonjs/credentials/defaultAzureCredential.js +121 -159
  205. package/dist/commonjs/credentials/defaultAzureCredential.js.map +7 -1
  206. package/dist/commonjs/credentials/defaultAzureCredentialFunctions.js +110 -140
  207. package/dist/commonjs/credentials/defaultAzureCredentialFunctions.js.map +7 -1
  208. package/dist/commonjs/credentials/defaultAzureCredentialOptions.d.ts +2 -2
  209. package/dist/commonjs/credentials/defaultAzureCredentialOptions.d.ts.map +1 -1
  210. package/dist/commonjs/credentials/defaultAzureCredentialOptions.js +16 -5
  211. package/dist/commonjs/credentials/defaultAzureCredentialOptions.js.map +7 -1
  212. package/dist/commonjs/credentials/deviceCodeCredential.d.ts.map +1 -1
  213. package/dist/commonjs/credentials/deviceCodeCredential.js +132 -104
  214. package/dist/commonjs/credentials/deviceCodeCredential.js.map +7 -1
  215. package/dist/commonjs/credentials/deviceCodeCredentialOptions.d.ts.map +1 -1
  216. package/dist/commonjs/credentials/deviceCodeCredentialOptions.js +16 -5
  217. package/dist/commonjs/credentials/deviceCodeCredentialOptions.js.map +7 -1
  218. package/dist/commonjs/credentials/environmentCredential.js +157 -123
  219. package/dist/commonjs/credentials/environmentCredential.js.map +7 -1
  220. package/dist/commonjs/credentials/environmentCredentialOptions.d.ts.map +1 -1
  221. package/dist/commonjs/credentials/environmentCredentialOptions.js +16 -5
  222. package/dist/commonjs/credentials/environmentCredentialOptions.js.map +7 -1
  223. package/dist/commonjs/credentials/interactiveBrowserCredential.d.ts.map +1 -1
  224. package/dist/commonjs/credentials/interactiveBrowserCredential.js +144 -108
  225. package/dist/commonjs/credentials/interactiveBrowserCredential.js.map +7 -1
  226. package/dist/commonjs/credentials/interactiveBrowserCredentialOptions.d.ts.map +1 -1
  227. package/dist/commonjs/credentials/interactiveBrowserCredentialOptions.js +16 -5
  228. package/dist/commonjs/credentials/interactiveBrowserCredentialOptions.js.map +7 -1
  229. package/dist/commonjs/credentials/interactiveCredentialOptions.d.ts.map +1 -1
  230. package/dist/commonjs/credentials/interactiveCredentialOptions.js +16 -5
  231. package/dist/commonjs/credentials/interactiveCredentialOptions.js.map +7 -1
  232. package/dist/commonjs/credentials/managedIdentityCredential/imdsMsi.js +92 -91
  233. package/dist/commonjs/credentials/managedIdentityCredential/imdsMsi.js.map +7 -1
  234. package/dist/commonjs/credentials/managedIdentityCredential/imdsRetryPolicy.js +51 -44
  235. package/dist/commonjs/credentials/managedIdentityCredential/imdsRetryPolicy.js.map +7 -1
  236. package/dist/commonjs/credentials/managedIdentityCredential/index.js +256 -242
  237. package/dist/commonjs/credentials/managedIdentityCredential/index.js.map +7 -1
  238. package/dist/commonjs/credentials/managedIdentityCredential/models.js +16 -5
  239. package/dist/commonjs/credentials/managedIdentityCredential/models.js.map +7 -1
  240. package/dist/commonjs/credentials/managedIdentityCredential/options.js +16 -5
  241. package/dist/commonjs/credentials/managedIdentityCredential/options.js.map +7 -1
  242. package/dist/commonjs/credentials/managedIdentityCredential/tokenExchangeMsi.js +56 -39
  243. package/dist/commonjs/credentials/managedIdentityCredential/tokenExchangeMsi.js.map +7 -1
  244. package/dist/commonjs/credentials/managedIdentityCredential/utils.js +79 -75
  245. package/dist/commonjs/credentials/managedIdentityCredential/utils.js.map +7 -1
  246. package/dist/commonjs/credentials/multiTenantTokenCredentialOptions.js +16 -5
  247. package/dist/commonjs/credentials/multiTenantTokenCredentialOptions.js.map +7 -1
  248. package/dist/commonjs/credentials/onBehalfOfCredential.d.ts.map +1 -1
  249. package/dist/commonjs/credentials/onBehalfOfCredential.js +168 -127
  250. package/dist/commonjs/credentials/onBehalfOfCredential.js.map +7 -1
  251. package/dist/commonjs/credentials/onBehalfOfCredentialOptions.js +16 -5
  252. package/dist/commonjs/credentials/onBehalfOfCredentialOptions.js.map +7 -1
  253. package/dist/commonjs/credentials/usernamePasswordCredential.d.ts.map +1 -1
  254. package/dist/commonjs/credentials/usernamePasswordCredential.js +112 -76
  255. package/dist/commonjs/credentials/usernamePasswordCredential.js.map +7 -1
  256. package/dist/commonjs/credentials/usernamePasswordCredentialOptions.d.ts.map +1 -1
  257. package/dist/commonjs/credentials/usernamePasswordCredentialOptions.js +16 -5
  258. package/dist/commonjs/credentials/usernamePasswordCredentialOptions.js.map +7 -1
  259. package/dist/commonjs/credentials/visualStudioCodeCredential.js +144 -132
  260. package/dist/commonjs/credentials/visualStudioCodeCredential.js.map +7 -1
  261. package/dist/commonjs/credentials/visualStudioCodeCredentialOptions.js +16 -5
  262. package/dist/commonjs/credentials/visualStudioCodeCredentialOptions.js.map +7 -1
  263. package/dist/commonjs/credentials/visualStudioCodeCredentialPlugin.js +16 -5
  264. package/dist/commonjs/credentials/visualStudioCodeCredentialPlugin.js.map +7 -1
  265. package/dist/commonjs/credentials/workloadIdentityCredential.js +284 -274
  266. package/dist/commonjs/credentials/workloadIdentityCredential.js.map +7 -1
  267. package/dist/commonjs/credentials/workloadIdentityCredentialOptions.d.ts +2 -2
  268. package/dist/commonjs/credentials/workloadIdentityCredentialOptions.d.ts.map +1 -1
  269. package/dist/commonjs/credentials/workloadIdentityCredentialOptions.js +16 -5
  270. package/dist/commonjs/credentials/workloadIdentityCredentialOptions.js.map +7 -1
  271. package/dist/commonjs/errors.js +131 -132
  272. package/dist/commonjs/errors.js.map +7 -1
  273. package/dist/commonjs/index.d.ts +33 -33
  274. package/dist/commonjs/index.d.ts.map +1 -1
  275. package/dist/commonjs/index.js +115 -67
  276. package/dist/commonjs/index.js.map +7 -1
  277. package/dist/commonjs/msal/browserFlows/msalBrowserCommon.d.ts.map +1 -1
  278. package/dist/commonjs/msal/browserFlows/msalBrowserCommon.js +226 -249
  279. package/dist/commonjs/msal/browserFlows/msalBrowserCommon.js.map +7 -1
  280. package/dist/commonjs/msal/browserFlows/msalBrowserOptions.js +16 -5
  281. package/dist/commonjs/msal/browserFlows/msalBrowserOptions.js.map +7 -1
  282. package/dist/commonjs/msal/credentials.js +16 -5
  283. package/dist/commonjs/msal/credentials.js.map +7 -1
  284. package/dist/commonjs/msal/msal.d.ts +1 -2
  285. package/dist/commonjs/msal/msal.d.ts.map +1 -1
  286. package/dist/commonjs/msal/msal.js +30 -9
  287. package/dist/commonjs/msal/msal.js.map +7 -1
  288. package/dist/commonjs/msal/nodeFlows/brokerOptions.js +16 -3
  289. package/dist/commonjs/msal/nodeFlows/brokerOptions.js.map +7 -1
  290. package/dist/commonjs/msal/nodeFlows/msalClient.d.ts +14 -8
  291. package/dist/commonjs/msal/nodeFlows/msalClient.d.ts.map +1 -1
  292. package/dist/commonjs/msal/nodeFlows/msalClient.js +450 -478
  293. package/dist/commonjs/msal/nodeFlows/msalClient.js.map +7 -1
  294. package/dist/commonjs/msal/nodeFlows/msalPlugins.js +140 -147
  295. package/dist/commonjs/msal/nodeFlows/msalPlugins.js.map +7 -1
  296. package/dist/commonjs/msal/nodeFlows/tokenCachePersistenceOptions.js +16 -5
  297. package/dist/commonjs/msal/nodeFlows/tokenCachePersistenceOptions.js.map +7 -1
  298. package/dist/commonjs/msal/types.js +16 -5
  299. package/dist/commonjs/msal/types.js.map +7 -1
  300. package/dist/commonjs/msal/utils.d.ts +5 -13
  301. package/dist/commonjs/msal/utils.d.ts.map +1 -1
  302. package/dist/commonjs/msal/utils.js +172 -226
  303. package/dist/commonjs/msal/utils.js.map +7 -1
  304. package/dist/commonjs/plugins/consumer.js +32 -40
  305. package/dist/commonjs/plugins/consumer.js.map +7 -1
  306. package/dist/commonjs/plugins/provider.js +16 -5
  307. package/dist/commonjs/plugins/provider.js.map +7 -1
  308. package/dist/commonjs/regionalAuthority.js +93 -141
  309. package/dist/commonjs/regionalAuthority.js.map +7 -1
  310. package/dist/commonjs/tokenCredentialOptions.js +16 -5
  311. package/dist/commonjs/tokenCredentialOptions.js.map +7 -1
  312. package/dist/commonjs/tokenProvider.js +52 -52
  313. package/dist/commonjs/tokenProvider.js.map +7 -1
  314. package/dist/commonjs/tsdoc-metadata.json +1 -1
  315. package/dist/commonjs/util/authorityHost.d.ts +10 -0
  316. package/dist/commonjs/util/authorityHost.d.ts.map +1 -0
  317. package/dist/commonjs/util/authorityHost.js +36 -0
  318. package/dist/commonjs/util/authorityHost.js.map +7 -0
  319. package/dist/commonjs/util/certificatesUtils.js +54 -45
  320. package/dist/commonjs/util/certificatesUtils.js.map +7 -1
  321. package/dist/commonjs/util/identityTokenEndpoint.js +32 -12
  322. package/dist/commonjs/util/identityTokenEndpoint.js.map +7 -1
  323. package/dist/commonjs/util/logging.js +91 -97
  324. package/dist/commonjs/util/logging.js.map +7 -1
  325. package/dist/commonjs/util/processMultiTenantRequest.js +43 -33
  326. package/dist/commonjs/util/processMultiTenantRequest.js.map +7 -1
  327. package/dist/commonjs/util/processUtils.js +60 -35
  328. package/dist/commonjs/util/processUtils.js.map +7 -1
  329. package/dist/commonjs/util/scopeUtils.js +39 -28
  330. package/dist/commonjs/util/scopeUtils.js.map +7 -1
  331. package/dist/commonjs/util/subscriptionUtils.js +35 -17
  332. package/dist/commonjs/util/subscriptionUtils.js.map +7 -1
  333. package/dist/commonjs/util/tenantIdUtils.js +61 -45
  334. package/dist/commonjs/util/tenantIdUtils.js.map +7 -1
  335. package/dist/commonjs/util/tracing.js +33 -16
  336. package/dist/commonjs/util/tracing.js.map +7 -1
  337. package/dist/esm/client/identityClient.d.ts +5 -4
  338. package/dist/esm/client/identityClient.d.ts.map +1 -1
  339. package/dist/esm/client/identityClient.js +56 -18
  340. package/dist/esm/client/identityClient.js.map +1 -1
  341. package/dist/esm/constants.d.ts +1 -1
  342. package/dist/esm/constants.js +1 -1
  343. package/dist/esm/constants.js.map +1 -1
  344. package/dist/esm/credentials/authorizationCodeCredential.d.ts.map +1 -1
  345. package/dist/esm/credentials/authorizationCodeCredential.js +0 -1
  346. package/dist/esm/credentials/authorizationCodeCredential.js.map +1 -1
  347. package/dist/esm/credentials/authorizationCodeCredentialOptions.d.ts.map +1 -1
  348. package/dist/esm/credentials/authorizationCodeCredentialOptions.js.map +1 -1
  349. package/dist/esm/credentials/azureDeveloperCliCredential.d.ts +10 -0
  350. package/dist/esm/credentials/azureDeveloperCliCredential.d.ts.map +1 -1
  351. package/dist/esm/credentials/azureDeveloperCliCredential.js +24 -1
  352. package/dist/esm/credentials/azureDeveloperCliCredential.js.map +1 -1
  353. package/dist/esm/credentials/azurePipelinesCredentialOptions.d.ts.map +1 -1
  354. package/dist/esm/credentials/azurePipelinesCredentialOptions.js.map +1 -1
  355. package/dist/esm/credentials/brokerCredential.d.ts +2 -2
  356. package/dist/esm/credentials/brokerCredential.d.ts.map +1 -1
  357. package/dist/esm/credentials/brokerCredential.js +0 -1
  358. package/dist/esm/credentials/brokerCredential.js.map +1 -1
  359. package/dist/esm/credentials/clientAssertionCredential.d.ts.map +1 -1
  360. package/dist/esm/credentials/clientAssertionCredential.js +1 -2
  361. package/dist/esm/credentials/clientAssertionCredential.js.map +1 -1
  362. package/dist/esm/credentials/clientAssertionCredentialOptions.d.ts.map +1 -1
  363. package/dist/esm/credentials/clientAssertionCredentialOptions.js.map +1 -1
  364. package/dist/esm/credentials/clientCertificateCredential.d.ts.map +1 -1
  365. package/dist/esm/credentials/clientCertificateCredential.js +0 -1
  366. package/dist/esm/credentials/clientCertificateCredential.js.map +1 -1
  367. package/dist/esm/credentials/clientCertificateCredentialOptions.d.ts.map +1 -1
  368. package/dist/esm/credentials/clientCertificateCredentialOptions.js.map +1 -1
  369. package/dist/esm/credentials/clientSecretCredential.d.ts.map +1 -1
  370. package/dist/esm/credentials/clientSecretCredential.js +0 -1
  371. package/dist/esm/credentials/clientSecretCredential.js.map +1 -1
  372. package/dist/esm/credentials/clientSecretCredentialOptions.d.ts.map +1 -1
  373. package/dist/esm/credentials/clientSecretCredentialOptions.js.map +1 -1
  374. package/dist/esm/credentials/defaultAzureCredentialOptions.d.ts +2 -2
  375. package/dist/esm/credentials/defaultAzureCredentialOptions.d.ts.map +1 -1
  376. package/dist/esm/credentials/defaultAzureCredentialOptions.js.map +1 -1
  377. package/dist/esm/credentials/deviceCodeCredential.d.ts.map +1 -1
  378. package/dist/esm/credentials/deviceCodeCredential.js +0 -1
  379. package/dist/esm/credentials/deviceCodeCredential.js.map +1 -1
  380. package/dist/esm/credentials/deviceCodeCredentialOptions.d.ts.map +1 -1
  381. package/dist/esm/credentials/deviceCodeCredentialOptions.js.map +1 -1
  382. package/dist/esm/credentials/environmentCredentialOptions.d.ts.map +1 -1
  383. package/dist/esm/credentials/environmentCredentialOptions.js.map +1 -1
  384. package/dist/esm/credentials/interactiveBrowserCredential.d.ts.map +1 -1
  385. package/dist/esm/credentials/interactiveBrowserCredential.js +0 -1
  386. package/dist/esm/credentials/interactiveBrowserCredential.js.map +1 -1
  387. package/dist/esm/credentials/interactiveBrowserCredentialOptions.d.ts.map +1 -1
  388. package/dist/esm/credentials/interactiveBrowserCredentialOptions.js.map +1 -1
  389. package/dist/esm/credentials/interactiveCredentialOptions.d.ts.map +1 -1
  390. package/dist/esm/credentials/interactiveCredentialOptions.js.map +1 -1
  391. package/dist/esm/credentials/managedIdentityCredential/tokenExchangeMsi.js.map +1 -1
  392. package/dist/esm/credentials/onBehalfOfCredential.d.ts.map +1 -1
  393. package/dist/esm/credentials/onBehalfOfCredential.js +0 -1
  394. package/dist/esm/credentials/onBehalfOfCredential.js.map +1 -1
  395. package/dist/esm/credentials/usernamePasswordCredential.d.ts.map +1 -1
  396. package/dist/esm/credentials/usernamePasswordCredential.js +0 -1
  397. package/dist/esm/credentials/usernamePasswordCredential.js.map +1 -1
  398. package/dist/esm/credentials/usernamePasswordCredentialOptions.d.ts.map +1 -1
  399. package/dist/esm/credentials/usernamePasswordCredentialOptions.js.map +1 -1
  400. package/dist/esm/credentials/visualStudioCodeCredential.js.map +1 -1
  401. package/dist/esm/credentials/workloadIdentityCredential.js +3 -3
  402. package/dist/esm/credentials/workloadIdentityCredential.js.map +1 -1
  403. package/dist/esm/credentials/workloadIdentityCredentialOptions.d.ts +2 -2
  404. package/dist/esm/credentials/workloadIdentityCredentialOptions.d.ts.map +1 -1
  405. package/dist/esm/credentials/workloadIdentityCredentialOptions.js.map +1 -1
  406. package/dist/esm/index.d.ts +33 -33
  407. package/dist/esm/index.d.ts.map +1 -1
  408. package/dist/esm/index.js.map +1 -1
  409. package/dist/esm/msal/browserFlows/msalBrowserCommon.d.ts.map +1 -1
  410. package/dist/esm/msal/browserFlows/msalBrowserCommon.js +2 -3
  411. package/dist/esm/msal/browserFlows/msalBrowserCommon.js.map +1 -1
  412. package/dist/esm/msal/msal.d.ts +1 -2
  413. package/dist/esm/msal/msal.d.ts.map +1 -1
  414. package/dist/esm/msal/msal.js +1 -2
  415. package/dist/esm/msal/msal.js.map +1 -1
  416. package/dist/esm/msal/nodeFlows/msalClient.d.ts +14 -8
  417. package/dist/esm/msal/nodeFlows/msalClient.d.ts.map +1 -1
  418. package/dist/esm/msal/nodeFlows/msalClient.js +6 -6
  419. package/dist/esm/msal/nodeFlows/msalClient.js.map +1 -1
  420. package/dist/esm/msal/utils.d.ts +5 -13
  421. package/dist/esm/msal/utils.d.ts.map +1 -1
  422. package/dist/esm/msal/utils.js +12 -25
  423. package/dist/esm/msal/utils.js.map +1 -1
  424. package/dist/esm/util/authorityHost.d.ts +10 -0
  425. package/dist/esm/util/authorityHost.d.ts.map +1 -0
  426. package/dist/esm/util/authorityHost.js +18 -0
  427. package/dist/esm/util/authorityHost.js.map +1 -0
  428. package/dist/workerd/client/identityClient.d.ts +5 -4
  429. package/dist/workerd/client/identityClient.d.ts.map +1 -1
  430. package/dist/workerd/client/identityClient.js +56 -18
  431. package/dist/workerd/client/identityClient.js.map +1 -1
  432. package/dist/workerd/constants.d.ts +1 -1
  433. package/dist/workerd/constants.js +1 -1
  434. package/dist/workerd/constants.js.map +1 -1
  435. package/dist/workerd/credentials/authorizationCodeCredential.d.ts.map +1 -1
  436. package/dist/workerd/credentials/authorizationCodeCredential.js +0 -1
  437. package/dist/workerd/credentials/authorizationCodeCredential.js.map +1 -1
  438. package/dist/workerd/credentials/authorizationCodeCredentialOptions.d.ts.map +1 -1
  439. package/dist/workerd/credentials/authorizationCodeCredentialOptions.js.map +1 -1
  440. package/dist/workerd/credentials/azureDeveloperCliCredential.d.ts +10 -0
  441. package/dist/workerd/credentials/azureDeveloperCliCredential.d.ts.map +1 -1
  442. package/dist/workerd/credentials/azureDeveloperCliCredential.js +24 -1
  443. package/dist/workerd/credentials/azureDeveloperCliCredential.js.map +1 -1
  444. package/dist/workerd/credentials/azurePipelinesCredentialOptions.d.ts.map +1 -1
  445. package/dist/workerd/credentials/azurePipelinesCredentialOptions.js.map +1 -1
  446. package/dist/workerd/credentials/brokerCredential.d.ts +2 -2
  447. package/dist/workerd/credentials/brokerCredential.d.ts.map +1 -1
  448. package/dist/workerd/credentials/brokerCredential.js +0 -1
  449. package/dist/workerd/credentials/brokerCredential.js.map +1 -1
  450. package/dist/workerd/credentials/clientAssertionCredential.d.ts.map +1 -1
  451. package/dist/workerd/credentials/clientAssertionCredential.js +1 -2
  452. package/dist/workerd/credentials/clientAssertionCredential.js.map +1 -1
  453. package/dist/workerd/credentials/clientAssertionCredentialOptions.d.ts.map +1 -1
  454. package/dist/workerd/credentials/clientAssertionCredentialOptions.js.map +1 -1
  455. package/dist/workerd/credentials/clientCertificateCredential.d.ts.map +1 -1
  456. package/dist/workerd/credentials/clientCertificateCredential.js +0 -1
  457. package/dist/workerd/credentials/clientCertificateCredential.js.map +1 -1
  458. package/dist/workerd/credentials/clientCertificateCredentialOptions.d.ts.map +1 -1
  459. package/dist/workerd/credentials/clientCertificateCredentialOptions.js.map +1 -1
  460. package/dist/workerd/credentials/clientSecretCredential.d.ts.map +1 -1
  461. package/dist/workerd/credentials/clientSecretCredential.js +0 -1
  462. package/dist/workerd/credentials/clientSecretCredential.js.map +1 -1
  463. package/dist/workerd/credentials/clientSecretCredentialOptions.d.ts.map +1 -1
  464. package/dist/workerd/credentials/clientSecretCredentialOptions.js.map +1 -1
  465. package/dist/workerd/credentials/defaultAzureCredentialOptions.d.ts +2 -2
  466. package/dist/workerd/credentials/defaultAzureCredentialOptions.d.ts.map +1 -1
  467. package/dist/workerd/credentials/defaultAzureCredentialOptions.js.map +1 -1
  468. package/dist/workerd/credentials/deviceCodeCredential.d.ts.map +1 -1
  469. package/dist/workerd/credentials/deviceCodeCredential.js +0 -1
  470. package/dist/workerd/credentials/deviceCodeCredential.js.map +1 -1
  471. package/dist/workerd/credentials/deviceCodeCredentialOptions.d.ts.map +1 -1
  472. package/dist/workerd/credentials/deviceCodeCredentialOptions.js.map +1 -1
  473. package/dist/workerd/credentials/environmentCredentialOptions.d.ts.map +1 -1
  474. package/dist/workerd/credentials/environmentCredentialOptions.js.map +1 -1
  475. package/dist/workerd/credentials/interactiveBrowserCredential.d.ts.map +1 -1
  476. package/dist/workerd/credentials/interactiveBrowserCredential.js +0 -1
  477. package/dist/workerd/credentials/interactiveBrowserCredential.js.map +1 -1
  478. package/dist/workerd/credentials/interactiveBrowserCredentialOptions.d.ts.map +1 -1
  479. package/dist/workerd/credentials/interactiveBrowserCredentialOptions.js.map +1 -1
  480. package/dist/workerd/credentials/interactiveCredentialOptions.d.ts.map +1 -1
  481. package/dist/workerd/credentials/interactiveCredentialOptions.js.map +1 -1
  482. package/dist/workerd/credentials/managedIdentityCredential/tokenExchangeMsi.js.map +1 -1
  483. package/dist/workerd/credentials/onBehalfOfCredential.d.ts.map +1 -1
  484. package/dist/workerd/credentials/onBehalfOfCredential.js +0 -1
  485. package/dist/workerd/credentials/onBehalfOfCredential.js.map +1 -1
  486. package/dist/workerd/credentials/usernamePasswordCredential.d.ts.map +1 -1
  487. package/dist/workerd/credentials/usernamePasswordCredential.js +0 -1
  488. package/dist/workerd/credentials/usernamePasswordCredential.js.map +1 -1
  489. package/dist/workerd/credentials/usernamePasswordCredentialOptions.d.ts.map +1 -1
  490. package/dist/workerd/credentials/usernamePasswordCredentialOptions.js.map +1 -1
  491. package/dist/workerd/credentials/visualStudioCodeCredential.js.map +1 -1
  492. package/dist/workerd/credentials/workloadIdentityCredential.js +3 -3
  493. package/dist/workerd/credentials/workloadIdentityCredential.js.map +1 -1
  494. package/dist/workerd/credentials/workloadIdentityCredentialOptions.d.ts +2 -2
  495. package/dist/workerd/credentials/workloadIdentityCredentialOptions.d.ts.map +1 -1
  496. package/dist/workerd/credentials/workloadIdentityCredentialOptions.js.map +1 -1
  497. package/dist/workerd/index.d.ts +33 -33
  498. package/dist/workerd/index.d.ts.map +1 -1
  499. package/dist/workerd/index.js.map +1 -1
  500. package/dist/workerd/msal/browserFlows/msalBrowserCommon.d.ts.map +1 -1
  501. package/dist/workerd/msal/browserFlows/msalBrowserCommon.js +2 -3
  502. package/dist/workerd/msal/browserFlows/msalBrowserCommon.js.map +1 -1
  503. package/dist/workerd/msal/msal.d.ts +1 -2
  504. package/dist/workerd/msal/msal.d.ts.map +1 -1
  505. package/dist/workerd/msal/msal.js +1 -2
  506. package/dist/workerd/msal/msal.js.map +1 -1
  507. package/dist/workerd/msal/nodeFlows/msalClient.d.ts +14 -8
  508. package/dist/workerd/msal/nodeFlows/msalClient.d.ts.map +1 -1
  509. package/dist/workerd/msal/nodeFlows/msalClient.js +6 -6
  510. package/dist/workerd/msal/nodeFlows/msalClient.js.map +1 -1
  511. package/dist/workerd/msal/utils.d.ts +5 -13
  512. package/dist/workerd/msal/utils.d.ts.map +1 -1
  513. package/dist/workerd/msal/utils.js +12 -25
  514. package/dist/workerd/msal/utils.js.map +1 -1
  515. package/dist/workerd/util/authorityHost.d.ts +10 -0
  516. package/dist/workerd/util/authorityHost.d.ts.map +1 -0
  517. package/dist/workerd/util/authorityHost.js +18 -0
  518. package/dist/workerd/util/authorityHost.js.map +1 -0
  519. package/package.json +17 -34
  520. package/dist/browser/credentials/authorizationCodeCredential-browser.d.mts.map +0 -1
  521. package/dist/browser/credentials/authorizationCodeCredential-browser.mjs.map +0 -1
  522. package/dist/browser/credentials/azureCliCredential-browser.d.mts.map +0 -1
  523. package/dist/browser/credentials/azureCliCredential-browser.mjs.map +0 -1
  524. package/dist/browser/credentials/azureDeveloperCliCredential-browser.d.mts.map +0 -1
  525. package/dist/browser/credentials/azureDeveloperCliCredential-browser.mjs.map +0 -1
  526. package/dist/browser/credentials/azurePipelinesCredential-browser.d.mts.map +0 -1
  527. package/dist/browser/credentials/azurePipelinesCredential-browser.mjs.map +0 -1
  528. package/dist/browser/credentials/azurePowerShellCredential-browser.d.mts.map +0 -1
  529. package/dist/browser/credentials/azurePowerShellCredential-browser.mjs.map +0 -1
  530. package/dist/browser/credentials/clientAssertionCredential-browser.d.mts.map +0 -1
  531. package/dist/browser/credentials/clientAssertionCredential-browser.mjs.map +0 -1
  532. package/dist/browser/credentials/clientCertificateCredential-browser.d.mts.map +0 -1
  533. package/dist/browser/credentials/clientCertificateCredential-browser.mjs.map +0 -1
  534. package/dist/browser/credentials/clientSecretCredential-browser.d.mts.map +0 -1
  535. package/dist/browser/credentials/clientSecretCredential-browser.mjs.map +0 -1
  536. package/dist/browser/credentials/defaultAzureCredential-browser.d.mts.map +0 -1
  537. package/dist/browser/credentials/defaultAzureCredential-browser.mjs.map +0 -1
  538. package/dist/browser/credentials/deviceCodeCredential-browser.d.mts.map +0 -1
  539. package/dist/browser/credentials/deviceCodeCredential-browser.mjs.map +0 -1
  540. package/dist/browser/credentials/environmentCredential-browser.d.mts.map +0 -1
  541. package/dist/browser/credentials/environmentCredential-browser.mjs.map +0 -1
  542. package/dist/browser/credentials/interactiveBrowserCredential-browser.d.mts.map +0 -1
  543. package/dist/browser/credentials/interactiveBrowserCredential-browser.mjs.map +0 -1
  544. package/dist/browser/credentials/managedIdentityCredential/index-browser.d.mts.map +0 -1
  545. package/dist/browser/credentials/managedIdentityCredential/index-browser.mjs.map +0 -1
  546. package/dist/browser/credentials/onBehalfOfCredential-browser.d.mts.map +0 -1
  547. package/dist/browser/credentials/onBehalfOfCredential-browser.mjs.map +0 -1
  548. package/dist/browser/credentials/usernamePasswordCredential-browser.d.mts.map +0 -1
  549. package/dist/browser/credentials/usernamePasswordCredential-browser.mjs.map +0 -1
  550. package/dist/browser/credentials/visualStudioCodeCredential-browser.d.mts.map +0 -1
  551. package/dist/browser/credentials/visualStudioCodeCredential-browser.mjs.map +0 -1
  552. package/dist/browser/credentials/workloadIdentityCredential-browser.d.mts.map +0 -1
  553. package/dist/browser/credentials/workloadIdentityCredential-browser.mjs.map +0 -1
  554. package/dist/browser/msal/msal-browser.d.mts.map +0 -1
  555. package/dist/browser/msal/msal-browser.mjs.map +0 -1
  556. package/dist/browser/plugins/consumer-browser.d.mts.map +0 -1
  557. package/dist/browser/plugins/consumer-browser.mjs.map +0 -1
  558. package/dist/browser/util/authHostEnv-browser.d.mts +0 -4
  559. package/dist/browser/util/authHostEnv-browser.d.mts.map +0 -1
  560. package/dist/browser/util/authHostEnv-browser.mjs +0 -7
  561. package/dist/browser/util/authHostEnv-browser.mjs.map +0 -1
  562. package/dist/browser/util/processMultiTenantRequest-browser.d.mts.map +0 -1
  563. package/dist/browser/util/processMultiTenantRequest-browser.mjs.map +0 -1
  564. package/dist/esm/util/authHostEnv-browser.d.mts +0 -4
  565. package/dist/esm/util/authHostEnv-browser.d.mts.map +0 -1
  566. package/dist/esm/util/authHostEnv-browser.mjs +0 -7
  567. package/dist/esm/util/authHostEnv-browser.mjs.map +0 -1
  568. package/dist/workerd/util/authHostEnv-browser.d.mts +0 -4
  569. package/dist/workerd/util/authHostEnv-browser.d.mts.map +0 -1
  570. package/dist/workerd/util/authHostEnv-browser.mjs +0 -7
  571. package/dist/workerd/util/authHostEnv-browser.mjs.map +0 -1
@@ -1,114 +1,150 @@
1
- "use strict";
2
- // Copyright (c) Microsoft Corporation.
3
- // Licensed under the MIT License.
4
- Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.InteractiveBrowserCredential = void 0;
6
- const tenantIdUtils_js_1 = require("../util/tenantIdUtils.js");
7
- const logging_js_1 = require("../util/logging.js");
8
- const scopeUtils_js_1 = require("../util/scopeUtils.js");
9
- const tracing_js_1 = require("../util/tracing.js");
10
- const msalClient_js_1 = require("../msal/nodeFlows/msalClient.js");
11
- const constants_js_1 = require("../constants.js");
12
- const logger = (0, logging_js_1.credentialLogger)("InteractiveBrowserCredential");
13
- /**
14
- * Enables authentication to Microsoft Entra ID inside of the web browser
15
- * using the interactive login flow.
16
- */
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var interactiveBrowserCredential_exports = {};
19
+ __export(interactiveBrowserCredential_exports, {
20
+ InteractiveBrowserCredential: () => InteractiveBrowserCredential
21
+ });
22
+ module.exports = __toCommonJS(interactiveBrowserCredential_exports);
23
+ var import_tenantIdUtils = require("../util/tenantIdUtils.js");
24
+ var import_logging = require("../util/logging.js");
25
+ var import_scopeUtils = require("../util/scopeUtils.js");
26
+ var import_tracing = require("../util/tracing.js");
27
+ var import_msalClient = require("../msal/nodeFlows/msalClient.js");
28
+ var import_constants = require("../constants.js");
29
+ const logger = (0, import_logging.credentialLogger)("InteractiveBrowserCredential");
17
30
  class InteractiveBrowserCredential {
18
- tenantId;
19
- additionallyAllowedTenantIds;
20
- msalClient;
21
- disableAutomaticAuthentication;
22
- browserCustomizationOptions;
23
- loginHint;
24
- /**
25
- * Creates an instance of InteractiveBrowserCredential with the details needed.
26
- *
27
- * This credential uses the [Authorization Code Flow](https://learn.microsoft.com/entra/identity-platform/v2-oauth2-auth-code-flow).
28
- * On Node.js, it will open a browser window while it listens for a redirect response from the authentication service.
29
- * On browsers, it authenticates via popups. The `loginStyle` optional parameter can be set to `redirect` to authenticate by redirecting the user to an Azure secure login page, which then will redirect the user back to the web application where the authentication started.
30
- *
31
- * For Node.js, if a `clientId` is provided, the Microsoft Entra application will need to be configured to have a "Mobile and desktop applications" redirect endpoint.
32
- * Follow our guide on [setting up Redirect URIs for Desktop apps that calls to web APIs](https://learn.microsoft.com/entra/identity-platform/scenario-desktop-app-registration#redirect-uris).
33
- *
34
- * @param options - Options for configuring the client which makes the authentication requests.
35
- */
36
- constructor(options) {
37
- this.tenantId = (0, tenantIdUtils_js_1.resolveTenantId)(logger, options.tenantId, options.clientId);
38
- this.additionallyAllowedTenantIds = (0, tenantIdUtils_js_1.resolveAdditionallyAllowedTenantIds)(options?.additionallyAllowedTenants);
39
- const msalClientOptions = {
40
- ...options,
41
- tokenCredentialOptions: options,
42
- logger,
31
+ tenantId;
32
+ additionallyAllowedTenantIds;
33
+ msalClient;
34
+ disableAutomaticAuthentication;
35
+ browserCustomizationOptions;
36
+ loginHint;
37
+ /**
38
+ * Creates an instance of InteractiveBrowserCredential with the details needed.
39
+ *
40
+ * This credential uses the [Authorization Code Flow](https://learn.microsoft.com/entra/identity-platform/v2-oauth2-auth-code-flow).
41
+ * On Node.js, it will open a browser window while it listens for a redirect response from the authentication service.
42
+ * On browsers, it authenticates via popups. The `loginStyle` optional parameter can be set to `redirect` to authenticate by redirecting the user to an Azure secure login page, which then will redirect the user back to the web application where the authentication started.
43
+ *
44
+ * For Node.js, if a `clientId` is provided, the Microsoft Entra application will need to be configured to have a "Mobile and desktop applications" redirect endpoint.
45
+ * Follow our guide on [setting up Redirect URIs for Desktop apps that calls to web APIs](https://learn.microsoft.com/entra/identity-platform/scenario-desktop-app-registration#redirect-uris).
46
+ *
47
+ * @param options - Options for configuring the client which makes the authentication requests.
48
+ */
49
+ constructor(options) {
50
+ this.tenantId = (0, import_tenantIdUtils.resolveTenantId)(logger, options.tenantId, options.clientId);
51
+ this.additionallyAllowedTenantIds = (0, import_tenantIdUtils.resolveAdditionallyAllowedTenantIds)(
52
+ options?.additionallyAllowedTenants
53
+ );
54
+ const msalClientOptions = {
55
+ ...options,
56
+ logger
57
+ };
58
+ const ibcNodeOptions = options;
59
+ this.browserCustomizationOptions = ibcNodeOptions.browserCustomizationOptions;
60
+ this.loginHint = ibcNodeOptions.loginHint;
61
+ if (ibcNodeOptions?.brokerOptions?.enabled) {
62
+ if (!ibcNodeOptions?.brokerOptions?.parentWindowHandle) {
63
+ throw new Error(
64
+ "In order to do WAM authentication, `parentWindowHandle` under `brokerOptions` is a required parameter"
65
+ );
66
+ } else {
67
+ msalClientOptions.brokerOptions = {
68
+ enabled: true,
69
+ parentWindowHandle: ibcNodeOptions.brokerOptions.parentWindowHandle,
70
+ legacyEnableMsaPassthrough: ibcNodeOptions.brokerOptions?.legacyEnableMsaPassthrough,
71
+ useDefaultBrokerAccount: ibcNodeOptions.brokerOptions?.useDefaultBrokerAccount
43
72
  };
44
- const ibcNodeOptions = options;
45
- this.browserCustomizationOptions = ibcNodeOptions.browserCustomizationOptions;
46
- this.loginHint = ibcNodeOptions.loginHint;
47
- if (ibcNodeOptions?.brokerOptions?.enabled) {
48
- if (!ibcNodeOptions?.brokerOptions?.parentWindowHandle) {
49
- throw new Error("In order to do WAM authentication, `parentWindowHandle` under `brokerOptions` is a required parameter");
50
- }
51
- else {
52
- msalClientOptions.brokerOptions = {
53
- enabled: true,
54
- parentWindowHandle: ibcNodeOptions.brokerOptions.parentWindowHandle,
55
- legacyEnableMsaPassthrough: ibcNodeOptions.brokerOptions?.legacyEnableMsaPassthrough,
56
- useDefaultBrokerAccount: ibcNodeOptions.brokerOptions?.useDefaultBrokerAccount,
57
- };
58
- }
59
- }
60
- this.msalClient = (0, msalClient_js_1.createMsalClient)(options.clientId ?? constants_js_1.DeveloperSignOnClientId, this.tenantId, msalClientOptions);
61
- this.disableAutomaticAuthentication = options?.disableAutomaticAuthentication;
73
+ }
62
74
  }
63
- /**
64
- * Authenticates with Microsoft Entra ID and returns an access token if successful.
65
- * If authentication fails, a {@link CredentialUnavailableError} will be thrown with the details of the failure.
66
- *
67
- * If the user provided the option `disableAutomaticAuthentication`,
68
- * once the token can't be retrieved silently,
69
- * this method won't attempt to request user interaction to retrieve the token.
70
- *
71
- * @param scopes - The list of scopes for which the token will have access.
72
- * @param options - The options used to configure any requests this
73
- * TokenCredential implementation might make.
74
- */
75
- async getToken(scopes, options = {}) {
76
- return tracing_js_1.tracingClient.withSpan(`${this.constructor.name}.getToken`, options, async (newOptions) => {
77
- newOptions.tenantId = (0, tenantIdUtils_js_1.processMultiTenantRequest)(this.tenantId, newOptions, this.additionallyAllowedTenantIds, logger);
78
- const arrayScopes = (0, scopeUtils_js_1.ensureScopes)(scopes);
79
- return this.msalClient.getTokenByInteractiveRequest(arrayScopes, {
80
- ...newOptions,
81
- disableAutomaticAuthentication: this.disableAutomaticAuthentication,
82
- browserCustomizationOptions: this.browserCustomizationOptions,
83
- loginHint: this.loginHint,
84
- });
75
+ this.msalClient = (0, import_msalClient.createMsalClient)(
76
+ options.clientId ?? import_constants.DeveloperSignOnClientId,
77
+ this.tenantId,
78
+ msalClientOptions
79
+ );
80
+ this.disableAutomaticAuthentication = options?.disableAutomaticAuthentication;
81
+ }
82
+ /**
83
+ * Authenticates with Microsoft Entra ID and returns an access token if successful.
84
+ * If authentication fails, a {@link CredentialUnavailableError} will be thrown with the details of the failure.
85
+ *
86
+ * If the user provided the option `disableAutomaticAuthentication`,
87
+ * once the token can't be retrieved silently,
88
+ * this method won't attempt to request user interaction to retrieve the token.
89
+ *
90
+ * @param scopes - The list of scopes for which the token will have access.
91
+ * @param options - The options used to configure any requests this
92
+ * TokenCredential implementation might make.
93
+ */
94
+ async getToken(scopes, options = {}) {
95
+ return import_tracing.tracingClient.withSpan(
96
+ `${this.constructor.name}.getToken`,
97
+ options,
98
+ async (newOptions) => {
99
+ newOptions.tenantId = (0, import_tenantIdUtils.processMultiTenantRequest)(
100
+ this.tenantId,
101
+ newOptions,
102
+ this.additionallyAllowedTenantIds,
103
+ logger
104
+ );
105
+ const arrayScopes = (0, import_scopeUtils.ensureScopes)(scopes);
106
+ return this.msalClient.getTokenByInteractiveRequest(arrayScopes, {
107
+ ...newOptions,
108
+ disableAutomaticAuthentication: this.disableAutomaticAuthentication,
109
+ browserCustomizationOptions: this.browserCustomizationOptions,
110
+ loginHint: this.loginHint
85
111
  });
86
- }
87
- /**
88
- * Authenticates with Microsoft Entra ID and returns an access token if successful.
89
- * If authentication fails, a {@link CredentialUnavailableError} will be thrown with the details of the failure.
90
- *
91
- * If the token can't be retrieved silently, this method will always generate a challenge for the user.
92
- *
93
- * On Node.js, this credential has [Proof Key for Code Exchange (PKCE)](https://datatracker.ietf.org/doc/html/rfc7636) enabled by default.
94
- * PKCE is a security feature that mitigates authentication code interception attacks.
95
- *
96
- * @param scopes - The list of scopes for which the token will have access.
97
- * @param options - The options used to configure any requests this
98
- * TokenCredential implementation might make.
99
- */
100
- async authenticate(scopes, options = {}) {
101
- return tracing_js_1.tracingClient.withSpan(`${this.constructor.name}.authenticate`, options, async (newOptions) => {
102
- const arrayScopes = (0, scopeUtils_js_1.ensureScopes)(scopes);
103
- await this.msalClient.getTokenByInteractiveRequest(arrayScopes, {
104
- ...newOptions,
105
- disableAutomaticAuthentication: false, // this method should always allow user interaction
106
- browserCustomizationOptions: this.browserCustomizationOptions,
107
- loginHint: this.loginHint,
108
- });
109
- return this.msalClient.getActiveAccount();
112
+ }
113
+ );
114
+ }
115
+ /**
116
+ * Authenticates with Microsoft Entra ID and returns an access token if successful.
117
+ * If authentication fails, a {@link CredentialUnavailableError} will be thrown with the details of the failure.
118
+ *
119
+ * If the token can't be retrieved silently, this method will always generate a challenge for the user.
120
+ *
121
+ * On Node.js, this credential has [Proof Key for Code Exchange (PKCE)](https://datatracker.ietf.org/doc/html/rfc7636) enabled by default.
122
+ * PKCE is a security feature that mitigates authentication code interception attacks.
123
+ *
124
+ * @param scopes - The list of scopes for which the token will have access.
125
+ * @param options - The options used to configure any requests this
126
+ * TokenCredential implementation might make.
127
+ */
128
+ async authenticate(scopes, options = {}) {
129
+ return import_tracing.tracingClient.withSpan(
130
+ `${this.constructor.name}.authenticate`,
131
+ options,
132
+ async (newOptions) => {
133
+ const arrayScopes = (0, import_scopeUtils.ensureScopes)(scopes);
134
+ await this.msalClient.getTokenByInteractiveRequest(arrayScopes, {
135
+ ...newOptions,
136
+ disableAutomaticAuthentication: false,
137
+ // this method should always allow user interaction
138
+ browserCustomizationOptions: this.browserCustomizationOptions,
139
+ loginHint: this.loginHint
110
140
  });
111
- }
141
+ return this.msalClient.getActiveAccount();
142
+ }
143
+ );
144
+ }
112
145
  }
113
- exports.InteractiveBrowserCredential = InteractiveBrowserCredential;
114
- //# sourceMappingURL=interactiveBrowserCredential.js.map
146
+ // Annotate the CommonJS export names for ESM import in node:
147
+ 0 && (module.exports = {
148
+ InteractiveBrowserCredential
149
+ });
150
+ //# sourceMappingURL=interactiveBrowserCredential.js.map
@@ -1 +1,7 @@
1
- {"version":3,"file":"interactiveBrowserCredential.js","sourceRoot":"","sources":["../../../src/credentials/interactiveBrowserCredential.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC;;;AAOlC,+DAIkC;AAGlC,mDAAsD;AACtD,yDAAqD;AACrD,mDAAmD;AAEnD,mEAAmE;AACnE,kDAA0D;AAE1D,MAAM,MAAM,GAAG,IAAA,6BAAgB,EAAC,8BAA8B,CAAC,CAAC;AAEhE;;;GAGG;AACH,MAAa,4BAA4B;IAC/B,QAAQ,CAAU;IAClB,4BAA4B,CAAW;IACvC,UAAU,CAAa;IACvB,8BAA8B,CAAW;IACzC,2BAA2B,CAAyE;IACpG,SAAS,CAAU;IAE3B;;;;;;;;;;;OAWG;IACH,YACE,OAA+F;QAE/F,IAAI,CAAC,QAAQ,GAAG,IAAA,kCAAe,EAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC5E,IAAI,CAAC,4BAA4B,GAAG,IAAA,sDAAmC,EACrE,OAAO,EAAE,0BAA0B,CACpC,CAAC;QAEF,MAAM,iBAAiB,GAAsB;YAC3C,GAAG,OAAO;YACV,sBAAsB,EAAE,OAAO;YAC/B,MAAM;SACP,CAAC;QACF,MAAM,cAAc,GAAG,OAAkD,CAAC;QAC1E,IAAI,CAAC,2BAA2B,GAAG,cAAc,CAAC,2BAA2B,CAAC;QAC9E,IAAI,CAAC,SAAS,GAAG,cAAc,CAAC,SAAS,CAAC;QAC1C,IAAI,cAAc,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC;YAC3C,IAAI,CAAC,cAAc,EAAE,aAAa,EAAE,kBAAkB,EAAE,CAAC;gBACvD,MAAM,IAAI,KAAK,CACb,uGAAuG,CACxG,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,iBAAiB,CAAC,aAAa,GAAG;oBAChC,OAAO,EAAE,IAAI;oBACb,kBAAkB,EAAE,cAAc,CAAC,aAAa,CAAC,kBAAkB;oBACnE,0BAA0B,EAAE,cAAc,CAAC,aAAa,EAAE,0BAA0B;oBACpF,uBAAuB,EAAE,cAAc,CAAC,aAAa,EAAE,uBAAuB;iBAC/E,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,IAAA,gCAAgB,EAChC,OAAO,CAAC,QAAQ,IAAI,sCAAuB,EAC3C,IAAI,CAAC,QAAQ,EACb,iBAAiB,CAClB,CAAC;QACF,IAAI,CAAC,8BAA8B,GAAG,OAAO,EAAE,8BAA8B,CAAC;IAChF,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,QAAQ,CAAC,MAAyB,EAAE,UAA2B,EAAE;QACrE,OAAO,0BAAa,CAAC,QAAQ,CAC3B,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,WAAW,EACnC,OAAO,EACP,KAAK,EAAE,UAAU,EAAE,EAAE;YACnB,UAAU,CAAC,QAAQ,GAAG,IAAA,4CAAyB,EAC7C,IAAI,CAAC,QAAQ,EACb,UAAU,EACV,IAAI,CAAC,4BAA4B,EACjC,MAAM,CACP,CAAC;YAEF,MAAM,WAAW,GAAG,IAAA,4BAAY,EAAC,MAAM,CAAC,CAAC;YACzC,OAAO,IAAI,CAAC,UAAU,CAAC,4BAA4B,CAAC,WAAW,EAAE;gBAC/D,GAAG,UAAU;gBACb,8BAA8B,EAAE,IAAI,CAAC,8BAA8B;gBACnE,2BAA2B,EAAE,IAAI,CAAC,2BAA2B;gBAC7D,SAAS,EAAE,IAAI,CAAC,SAAS;aAC1B,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,YAAY,CAChB,MAAyB,EACzB,UAA2B,EAAE;QAE7B,OAAO,0BAAa,CAAC,QAAQ,CAC3B,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,eAAe,EACvC,OAAO,EACP,KAAK,EAAE,UAAU,EAAE,EAAE;YACnB,MAAM,WAAW,GAAG,IAAA,4BAAY,EAAC,MAAM,CAAC,CAAC;YACzC,MAAM,IAAI,CAAC,UAAU,CAAC,4BAA4B,CAAC,WAAW,EAAE;gBAC9D,GAAG,UAAU;gBACb,8BAA8B,EAAE,KAAK,EAAE,mDAAmD;gBAC1F,2BAA2B,EAAE,IAAI,CAAC,2BAA2B;gBAC7D,SAAS,EAAE,IAAI,CAAC,SAAS;aAC1B,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC;QAC5C,CAAC,CACF,CAAC;IACJ,CAAC;CACF;AA7HD,oEA6HC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { AccessToken, GetTokenOptions, TokenCredential } from \"@azure/core-auth\";\nimport type {\n InteractiveBrowserCredentialInBrowserOptions,\n InteractiveBrowserCredentialNodeOptions,\n} from \"./interactiveBrowserCredentialOptions.js\";\nimport {\n processMultiTenantRequest,\n resolveAdditionallyAllowedTenantIds,\n resolveTenantId,\n} from \"../util/tenantIdUtils.js\";\n\nimport type { AuthenticationRecord } from \"../msal/types.js\";\nimport { credentialLogger } from \"../util/logging.js\";\nimport { ensureScopes } from \"../util/scopeUtils.js\";\nimport { tracingClient } from \"../util/tracing.js\";\nimport type { MsalClient, MsalClientOptions } from \"../msal/nodeFlows/msalClient.js\";\nimport { createMsalClient } from \"../msal/nodeFlows/msalClient.js\";\nimport { DeveloperSignOnClientId } from \"../constants.js\";\n\nconst logger = credentialLogger(\"InteractiveBrowserCredential\");\n\n/**\n * Enables authentication to Microsoft Entra ID inside of the web browser\n * using the interactive login flow.\n */\nexport class InteractiveBrowserCredential implements TokenCredential {\n private tenantId?: string;\n private additionallyAllowedTenantIds: string[];\n private msalClient: MsalClient;\n private disableAutomaticAuthentication?: boolean;\n private browserCustomizationOptions: InteractiveBrowserCredentialNodeOptions[\"browserCustomizationOptions\"];\n private loginHint?: string;\n\n /**\n * Creates an instance of InteractiveBrowserCredential with the details needed.\n *\n * This credential uses the [Authorization Code Flow](https://learn.microsoft.com/entra/identity-platform/v2-oauth2-auth-code-flow).\n * On Node.js, it will open a browser window while it listens for a redirect response from the authentication service.\n * On browsers, it authenticates via popups. The `loginStyle` optional parameter can be set to `redirect` to authenticate by redirecting the user to an Azure secure login page, which then will redirect the user back to the web application where the authentication started.\n *\n * For Node.js, if a `clientId` is provided, the Microsoft Entra application will need to be configured to have a \"Mobile and desktop applications\" redirect endpoint.\n * Follow our guide on [setting up Redirect URIs for Desktop apps that calls to web APIs](https://learn.microsoft.com/entra/identity-platform/scenario-desktop-app-registration#redirect-uris).\n *\n * @param options - Options for configuring the client which makes the authentication requests.\n */\n constructor(\n options: InteractiveBrowserCredentialNodeOptions | InteractiveBrowserCredentialInBrowserOptions,\n ) {\n this.tenantId = resolveTenantId(logger, options.tenantId, options.clientId);\n this.additionallyAllowedTenantIds = resolveAdditionallyAllowedTenantIds(\n options?.additionallyAllowedTenants,\n );\n\n const msalClientOptions: MsalClientOptions = {\n ...options,\n tokenCredentialOptions: options,\n logger,\n };\n const ibcNodeOptions = options as InteractiveBrowserCredentialNodeOptions;\n this.browserCustomizationOptions = ibcNodeOptions.browserCustomizationOptions;\n this.loginHint = ibcNodeOptions.loginHint;\n if (ibcNodeOptions?.brokerOptions?.enabled) {\n if (!ibcNodeOptions?.brokerOptions?.parentWindowHandle) {\n throw new Error(\n \"In order to do WAM authentication, `parentWindowHandle` under `brokerOptions` is a required parameter\",\n );\n } else {\n msalClientOptions.brokerOptions = {\n enabled: true,\n parentWindowHandle: ibcNodeOptions.brokerOptions.parentWindowHandle,\n legacyEnableMsaPassthrough: ibcNodeOptions.brokerOptions?.legacyEnableMsaPassthrough,\n useDefaultBrokerAccount: ibcNodeOptions.brokerOptions?.useDefaultBrokerAccount,\n };\n }\n }\n this.msalClient = createMsalClient(\n options.clientId ?? DeveloperSignOnClientId,\n this.tenantId,\n msalClientOptions,\n );\n this.disableAutomaticAuthentication = options?.disableAutomaticAuthentication;\n }\n\n /**\n * Authenticates with Microsoft Entra ID and returns an access token if successful.\n * If authentication fails, a {@link CredentialUnavailableError} will be thrown with the details of the failure.\n *\n * If the user provided the option `disableAutomaticAuthentication`,\n * once the token can't be retrieved silently,\n * this method won't attempt to request user interaction to retrieve the token.\n *\n * @param scopes - The list of scopes for which the token will have access.\n * @param options - The options used to configure any requests this\n * TokenCredential implementation might make.\n */\n async getToken(scopes: string | string[], options: GetTokenOptions = {}): Promise<AccessToken> {\n return tracingClient.withSpan(\n `${this.constructor.name}.getToken`,\n options,\n async (newOptions) => {\n newOptions.tenantId = processMultiTenantRequest(\n this.tenantId,\n newOptions,\n this.additionallyAllowedTenantIds,\n logger,\n );\n\n const arrayScopes = ensureScopes(scopes);\n return this.msalClient.getTokenByInteractiveRequest(arrayScopes, {\n ...newOptions,\n disableAutomaticAuthentication: this.disableAutomaticAuthentication,\n browserCustomizationOptions: this.browserCustomizationOptions,\n loginHint: this.loginHint,\n });\n },\n );\n }\n\n /**\n * Authenticates with Microsoft Entra ID and returns an access token if successful.\n * If authentication fails, a {@link CredentialUnavailableError} will be thrown with the details of the failure.\n *\n * If the token can't be retrieved silently, this method will always generate a challenge for the user.\n *\n * On Node.js, this credential has [Proof Key for Code Exchange (PKCE)](https://datatracker.ietf.org/doc/html/rfc7636) enabled by default.\n * PKCE is a security feature that mitigates authentication code interception attacks.\n *\n * @param scopes - The list of scopes for which the token will have access.\n * @param options - The options used to configure any requests this\n * TokenCredential implementation might make.\n */\n async authenticate(\n scopes: string | string[],\n options: GetTokenOptions = {},\n ): Promise<AuthenticationRecord | undefined> {\n return tracingClient.withSpan(\n `${this.constructor.name}.authenticate`,\n options,\n async (newOptions) => {\n const arrayScopes = ensureScopes(scopes);\n await this.msalClient.getTokenByInteractiveRequest(arrayScopes, {\n ...newOptions,\n disableAutomaticAuthentication: false, // this method should always allow user interaction\n browserCustomizationOptions: this.browserCustomizationOptions,\n loginHint: this.loginHint,\n });\n return this.msalClient.getActiveAccount();\n },\n );\n }\n}\n"]}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/credentials/interactiveBrowserCredential.ts"],
4
+ "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { AccessToken, GetTokenOptions, TokenCredential } from \"@azure/core-auth\";\nimport type {\n InteractiveBrowserCredentialInBrowserOptions,\n InteractiveBrowserCredentialNodeOptions,\n} from \"./interactiveBrowserCredentialOptions.js\";\nimport {\n processMultiTenantRequest,\n resolveAdditionallyAllowedTenantIds,\n resolveTenantId,\n} from \"../util/tenantIdUtils.js\";\n\nimport type { AuthenticationRecord } from \"../msal/types.js\";\nimport { credentialLogger } from \"../util/logging.js\";\nimport { ensureScopes } from \"../util/scopeUtils.js\";\nimport { tracingClient } from \"../util/tracing.js\";\nimport type { MsalClient, MsalClientOptions } from \"../msal/nodeFlows/msalClient.js\";\nimport { createMsalClient } from \"../msal/nodeFlows/msalClient.js\";\nimport { DeveloperSignOnClientId } from \"../constants.js\";\n\nconst logger = credentialLogger(\"InteractiveBrowserCredential\");\n\n/**\n * Enables authentication to Microsoft Entra ID inside of the web browser\n * using the interactive login flow.\n */\nexport class InteractiveBrowserCredential implements TokenCredential {\n private tenantId?: string;\n private additionallyAllowedTenantIds: string[];\n private msalClient: MsalClient;\n private disableAutomaticAuthentication?: boolean;\n private browserCustomizationOptions: InteractiveBrowserCredentialNodeOptions[\"browserCustomizationOptions\"];\n private loginHint?: string;\n\n /**\n * Creates an instance of InteractiveBrowserCredential with the details needed.\n *\n * This credential uses the [Authorization Code Flow](https://learn.microsoft.com/entra/identity-platform/v2-oauth2-auth-code-flow).\n * On Node.js, it will open a browser window while it listens for a redirect response from the authentication service.\n * On browsers, it authenticates via popups. The `loginStyle` optional parameter can be set to `redirect` to authenticate by redirecting the user to an Azure secure login page, which then will redirect the user back to the web application where the authentication started.\n *\n * For Node.js, if a `clientId` is provided, the Microsoft Entra application will need to be configured to have a \"Mobile and desktop applications\" redirect endpoint.\n * Follow our guide on [setting up Redirect URIs for Desktop apps that calls to web APIs](https://learn.microsoft.com/entra/identity-platform/scenario-desktop-app-registration#redirect-uris).\n *\n * @param options - Options for configuring the client which makes the authentication requests.\n */\n constructor(\n options: InteractiveBrowserCredentialNodeOptions | InteractiveBrowserCredentialInBrowserOptions,\n ) {\n this.tenantId = resolveTenantId(logger, options.tenantId, options.clientId);\n this.additionallyAllowedTenantIds = resolveAdditionallyAllowedTenantIds(\n options?.additionallyAllowedTenants,\n );\n\n const msalClientOptions: MsalClientOptions = {\n ...options,\n logger,\n };\n const ibcNodeOptions = options as InteractiveBrowserCredentialNodeOptions;\n this.browserCustomizationOptions = ibcNodeOptions.browserCustomizationOptions;\n this.loginHint = ibcNodeOptions.loginHint;\n if (ibcNodeOptions?.brokerOptions?.enabled) {\n if (!ibcNodeOptions?.brokerOptions?.parentWindowHandle) {\n throw new Error(\n \"In order to do WAM authentication, `parentWindowHandle` under `brokerOptions` is a required parameter\",\n );\n } else {\n msalClientOptions.brokerOptions = {\n enabled: true,\n parentWindowHandle: ibcNodeOptions.brokerOptions.parentWindowHandle,\n legacyEnableMsaPassthrough: ibcNodeOptions.brokerOptions?.legacyEnableMsaPassthrough,\n useDefaultBrokerAccount: ibcNodeOptions.brokerOptions?.useDefaultBrokerAccount,\n };\n }\n }\n this.msalClient = createMsalClient(\n options.clientId ?? DeveloperSignOnClientId,\n this.tenantId,\n msalClientOptions,\n );\n this.disableAutomaticAuthentication = options?.disableAutomaticAuthentication;\n }\n\n /**\n * Authenticates with Microsoft Entra ID and returns an access token if successful.\n * If authentication fails, a {@link CredentialUnavailableError} will be thrown with the details of the failure.\n *\n * If the user provided the option `disableAutomaticAuthentication`,\n * once the token can't be retrieved silently,\n * this method won't attempt to request user interaction to retrieve the token.\n *\n * @param scopes - The list of scopes for which the token will have access.\n * @param options - The options used to configure any requests this\n * TokenCredential implementation might make.\n */\n async getToken(scopes: string | string[], options: GetTokenOptions = {}): Promise<AccessToken> {\n return tracingClient.withSpan(\n `${this.constructor.name}.getToken`,\n options,\n async (newOptions) => {\n newOptions.tenantId = processMultiTenantRequest(\n this.tenantId,\n newOptions,\n this.additionallyAllowedTenantIds,\n logger,\n );\n\n const arrayScopes = ensureScopes(scopes);\n return this.msalClient.getTokenByInteractiveRequest(arrayScopes, {\n ...newOptions,\n disableAutomaticAuthentication: this.disableAutomaticAuthentication,\n browserCustomizationOptions: this.browserCustomizationOptions,\n loginHint: this.loginHint,\n });\n },\n );\n }\n\n /**\n * Authenticates with Microsoft Entra ID and returns an access token if successful.\n * If authentication fails, a {@link CredentialUnavailableError} will be thrown with the details of the failure.\n *\n * If the token can't be retrieved silently, this method will always generate a challenge for the user.\n *\n * On Node.js, this credential has [Proof Key for Code Exchange (PKCE)](https://datatracker.ietf.org/doc/html/rfc7636) enabled by default.\n * PKCE is a security feature that mitigates authentication code interception attacks.\n *\n * @param scopes - The list of scopes for which the token will have access.\n * @param options - The options used to configure any requests this\n * TokenCredential implementation might make.\n */\n async authenticate(\n scopes: string | string[],\n options: GetTokenOptions = {},\n ): Promise<AuthenticationRecord | undefined> {\n return tracingClient.withSpan(\n `${this.constructor.name}.authenticate`,\n options,\n async (newOptions) => {\n const arrayScopes = ensureScopes(scopes);\n await this.msalClient.getTokenByInteractiveRequest(arrayScopes, {\n ...newOptions,\n disableAutomaticAuthentication: false, // this method should always allow user interaction\n browserCustomizationOptions: this.browserCustomizationOptions,\n loginHint: this.loginHint,\n });\n return this.msalClient.getActiveAccount();\n },\n );\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,2BAIO;AAGP,qBAAiC;AACjC,wBAA6B;AAC7B,qBAA8B;AAE9B,wBAAiC;AACjC,uBAAwC;AAExC,MAAM,aAAS,iCAAiB,8BAA8B;AAMvD,MAAM,6BAAwD;AAAA,EAC3D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcR,YACE,SACA;AACA,SAAK,eAAW,sCAAgB,QAAQ,QAAQ,UAAU,QAAQ,QAAQ;AAC1E,SAAK,mCAA+B;AAAA,MAClC,SAAS;AAAA,IACX;AAEA,UAAM,oBAAuC;AAAA,MAC3C,GAAG;AAAA,MACH;AAAA,IACF;AACA,UAAM,iBAAiB;AACvB,SAAK,8BAA8B,eAAe;AAClD,SAAK,YAAY,eAAe;AAChC,QAAI,gBAAgB,eAAe,SAAS;AAC1C,UAAI,CAAC,gBAAgB,eAAe,oBAAoB;AACtD,cAAM,IAAI;AAAA,UACR;AAAA,QACF;AAAA,MACF,OAAO;AACL,0BAAkB,gBAAgB;AAAA,UAChC,SAAS;AAAA,UACT,oBAAoB,eAAe,cAAc;AAAA,UACjD,4BAA4B,eAAe,eAAe;AAAA,UAC1D,yBAAyB,eAAe,eAAe;AAAA,QACzD;AAAA,MACF;AAAA,IACF;AACA,SAAK,iBAAa;AAAA,MAChB,QAAQ,YAAY;AAAA,MACpB,KAAK;AAAA,MACL;AAAA,IACF;AACA,SAAK,iCAAiC,SAAS;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcA,MAAM,SAAS,QAA2B,UAA2B,CAAC,GAAyB;AAC7F,WAAO,6BAAc;AAAA,MACnB,GAAG,KAAK,YAAY,IAAI;AAAA,MACxB;AAAA,MACA,OAAO,eAAe;AACpB,mBAAW,eAAW;AAAA,UACpB,KAAK;AAAA,UACL;AAAA,UACA,KAAK;AAAA,UACL;AAAA,QACF;AAEA,cAAM,kBAAc,gCAAa,MAAM;AACvC,eAAO,KAAK,WAAW,6BAA6B,aAAa;AAAA,UAC/D,GAAG;AAAA,UACH,gCAAgC,KAAK;AAAA,UACrC,6BAA6B,KAAK;AAAA,UAClC,WAAW,KAAK;AAAA,QAClB,CAAC;AAAA,MACH;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAeA,MAAM,aACJ,QACA,UAA2B,CAAC,GACe;AAC3C,WAAO,6BAAc;AAAA,MACnB,GAAG,KAAK,YAAY,IAAI;AAAA,MACxB;AAAA,MACA,OAAO,eAAe;AACpB,cAAM,kBAAc,gCAAa,MAAM;AACvC,cAAM,KAAK,WAAW,6BAA6B,aAAa;AAAA,UAC9D,GAAG;AAAA,UACH,gCAAgC;AAAA;AAAA,UAChC,6BAA6B,KAAK;AAAA,UAClC,WAAW,KAAK;AAAA,QAClB,CAAC;AACD,eAAO,KAAK,WAAW,iBAAiB;AAAA,MAC1C;AAAA,IACF;AAAA,EACF;AACF;",
6
+ "names": []
7
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"interactiveBrowserCredentialOptions.d.ts","sourceRoot":"","sources":["../../../src/credentials/interactiveBrowserCredentialOptions.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACtF,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AAEtF;;;;;;;;GAQG;AACH,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,OAAO,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,uCACf,SAAQ,4BAA4B,EAClC,4BAA4B,EAC5B,2BAA2B,EAC3B,iBAAiB;IACnB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IAEtC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,4CAA6C,SAAQ,4BAA4B;IAChG;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IAEtC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAE/B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"interactiveBrowserCredentialOptions.d.ts","sourceRoot":"","sources":["../../../src/credentials/interactiveBrowserCredentialOptions.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACtF,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AAEtF;;;;;;;;GAQG;AACH,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,OAAO,CAAC;AAErD;;GAEG;AACH,MAAM,WAAW,uCACf,SACE,4BAA4B,EAC5B,4BAA4B,EAC5B,2BAA2B,EAC3B,iBAAiB;IACnB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IAEtC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,4CAA6C,SAAQ,4BAA4B;IAChG;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IAEtC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;OAKG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAE/B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
@@ -1,5 +1,16 @@
1
- "use strict";
2
- // Copyright (c) Microsoft Corporation.
3
- // Licensed under the MIT License.
4
- Object.defineProperty(exports, "__esModule", { value: true });
5
- //# sourceMappingURL=interactiveBrowserCredentialOptions.js.map
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __copyProps = (to, from, except, desc) => {
6
+ if (from && typeof from === "object" || typeof from === "function") {
7
+ for (let key of __getOwnPropNames(from))
8
+ if (!__hasOwnProp.call(to, key) && key !== except)
9
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
+ }
11
+ return to;
12
+ };
13
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
14
+ var interactiveBrowserCredentialOptions_exports = {};
15
+ module.exports = __toCommonJS(interactiveBrowserCredentialOptions_exports);
16
+ //# sourceMappingURL=interactiveBrowserCredentialOptions.js.map
@@ -1 +1,7 @@
1
- {"version":3,"file":"interactiveBrowserCredentialOptions.js","sourceRoot":"","sources":["../../../src/credentials/interactiveBrowserCredentialOptions.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { BrowserCustomizationOptions } from \"./browserCustomizationOptions.js\";\nimport type { BrokerAuthOptions } from \"./brokerAuthOptions.js\";\nimport type { CredentialPersistenceOptions } from \"./credentialPersistenceOptions.js\";\nimport type { InteractiveCredentialOptions } from \"./interactiveCredentialOptions.js\";\n\n/**\n * (Browser-only feature)\n * The \"login style\" to use in the authentication flow:\n * - \"redirect\" redirects the user to the authentication page and then\n * redirects them back to the page once authentication is completed.\n * - \"popup\" opens a new browser window through with the redirect flow\n * is initiated. The user's existing browser window does not leave\n * the current page\n */\nexport type BrowserLoginStyle = \"redirect\" | \"popup\";\n\n/**\n * Defines the common options for the InteractiveBrowserCredential class.\n */\nexport interface InteractiveBrowserCredentialNodeOptions\n extends InteractiveCredentialOptions,\n CredentialPersistenceOptions,\n BrowserCustomizationOptions,\n BrokerAuthOptions {\n /**\n * Gets the redirect URI of the application. This should be same as the value\n * in the application registration portal. Defaults to `window.location.href`.\n * This field is no longer required for Node.js.\n */\n redirectUri?: string | (() => string);\n\n /**\n * The Microsoft Entra tenant (directory) ID.\n */\n tenantId?: string;\n\n /**\n * The Client ID of the Microsoft Entra application that users will sign into.\n * It is recommended that developers register their applications and assign appropriate roles.\n * For more information, visit https://aka.ms/identity/AppRegistrationAndRoleAssignment.\n * If not specified, users will authenticate to an Azure development application,\n * which is not recommended for production scenarios.\n */\n clientId?: string;\n\n /**\n * loginHint allows a user name to be pre-selected for interactive logins.\n * Setting this option skips the account selection prompt and immediately attempts to login with the specified account.\n */\n loginHint?: string;\n}\n\n/**\n * Defines the common options for the InteractiveBrowserCredential class.\n */\nexport interface InteractiveBrowserCredentialInBrowserOptions extends InteractiveCredentialOptions {\n /**\n * Gets the redirect URI of the application. This should be same as the value\n * in the application registration portal. Defaults to `window.location.href`.\n * This field is no longer required for Node.js.\n */\n redirectUri?: string | (() => string);\n\n /**\n * The Microsoft Entra tenant (directory) ID.\n */\n tenantId?: string;\n\n /**\n * The Client ID of the Microsoft Entra application that users will sign into.\n * This parameter is required on the browser.\n * Developers need to register their applications and assign appropriate roles.\n * For more information, visit https://aka.ms/identity/AppRegistrationAndRoleAssignment.\n */\n clientId: string;\n\n /**\n * Specifies whether a redirect or a popup window should be used to\n * initiate the user authentication flow. Possible values are \"redirect\"\n * or \"popup\" (default) for browser and \"popup\" (default) for node.\n *\n */\n loginStyle?: BrowserLoginStyle;\n\n /**\n * loginHint allows a user name to be pre-selected for interactive logins.\n * Setting this option skips the account selection prompt and immediately attempts to login with the specified account.\n */\n loginHint?: string;\n}\n"]}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/credentials/interactiveBrowserCredentialOptions.ts"],
4
+ "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { BrowserCustomizationOptions } from \"./browserCustomizationOptions.js\";\nimport type { BrokerAuthOptions } from \"./brokerAuthOptions.js\";\nimport type { CredentialPersistenceOptions } from \"./credentialPersistenceOptions.js\";\nimport type { InteractiveCredentialOptions } from \"./interactiveCredentialOptions.js\";\n\n/**\n * (Browser-only feature)\n * The \"login style\" to use in the authentication flow:\n * - \"redirect\" redirects the user to the authentication page and then\n * redirects them back to the page once authentication is completed.\n * - \"popup\" opens a new browser window through with the redirect flow\n * is initiated. The user's existing browser window does not leave\n * the current page\n */\nexport type BrowserLoginStyle = \"redirect\" | \"popup\";\n\n/**\n * Defines the common options for the InteractiveBrowserCredential class.\n */\nexport interface InteractiveBrowserCredentialNodeOptions\n extends\n InteractiveCredentialOptions,\n CredentialPersistenceOptions,\n BrowserCustomizationOptions,\n BrokerAuthOptions {\n /**\n * Gets the redirect URI of the application. This should be same as the value\n * in the application registration portal. Defaults to `window.location.href`.\n * This field is no longer required for Node.js.\n */\n redirectUri?: string | (() => string);\n\n /**\n * The Microsoft Entra tenant (directory) ID.\n */\n tenantId?: string;\n\n /**\n * The Client ID of the Microsoft Entra application that users will sign into.\n * It is recommended that developers register their applications and assign appropriate roles.\n * For more information, visit https://aka.ms/identity/AppRegistrationAndRoleAssignment.\n * If not specified, users will authenticate to an Azure development application,\n * which is not recommended for production scenarios.\n */\n clientId?: string;\n\n /**\n * loginHint allows a user name to be pre-selected for interactive logins.\n * Setting this option skips the account selection prompt and immediately attempts to login with the specified account.\n */\n loginHint?: string;\n}\n\n/**\n * Defines the common options for the InteractiveBrowserCredential class.\n */\nexport interface InteractiveBrowserCredentialInBrowserOptions extends InteractiveCredentialOptions {\n /**\n * Gets the redirect URI of the application. This should be same as the value\n * in the application registration portal. Defaults to `window.location.href`.\n * This field is no longer required for Node.js.\n */\n redirectUri?: string | (() => string);\n\n /**\n * The Microsoft Entra tenant (directory) ID.\n */\n tenantId?: string;\n\n /**\n * The Client ID of the Microsoft Entra application that users will sign into.\n * This parameter is required on the browser.\n * Developers need to register their applications and assign appropriate roles.\n * For more information, visit https://aka.ms/identity/AppRegistrationAndRoleAssignment.\n */\n clientId: string;\n\n /**\n * Specifies whether a redirect or a popup window should be used to\n * initiate the user authentication flow. Possible values are \"redirect\"\n * or \"popup\" (default) for browser and \"popup\" (default) for node.\n *\n */\n loginStyle?: BrowserLoginStyle;\n\n /**\n * loginHint allows a user name to be pre-selected for interactive logins.\n * Setting this option skips the account selection prompt and immediately attempts to login with the specified account.\n */\n loginHint?: string;\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;AAAA;AAAA;",
6
+ "names": []
7
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"interactiveCredentialOptions.d.ts","sourceRoot":"","sources":["../../../src/credentials/interactiveCredentialOptions.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAClF,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,wCAAwC,CAAC;AAEhG;;GAEG;AACH,MAAM,WAAW,4BACf,SAAQ,iCAAiC,EACvC,0BAA0B;IAC5B;;;;;;;;;OASG;IACH,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAE5C;;;OAGG;IACH,8BAA8B,CAAC,EAAE,OAAO,CAAC;CAC1C"}
1
+ {"version":3,"file":"interactiveCredentialOptions.d.ts","sourceRoot":"","sources":["../../../src/credentials/interactiveCredentialOptions.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAClF,OAAO,KAAK,EAAE,iCAAiC,EAAE,MAAM,wCAAwC,CAAC;AAEhG;;GAEG;AACH,MAAM,WAAW,4BACf,SAAQ,iCAAiC,EAAE,0BAA0B;IACrE;;;;;;;;;OASG;IACH,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAE5C;;;OAGG;IACH,8BAA8B,CAAC,EAAE,OAAO,CAAC;CAC1C"}
@@ -1,5 +1,16 @@
1
- "use strict";
2
- // Copyright (c) Microsoft Corporation.
3
- // Licensed under the MIT License.
4
- Object.defineProperty(exports, "__esModule", { value: true });
5
- //# sourceMappingURL=interactiveCredentialOptions.js.map
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __copyProps = (to, from, except, desc) => {
6
+ if (from && typeof from === "object" || typeof from === "function") {
7
+ for (let key of __getOwnPropNames(from))
8
+ if (!__hasOwnProp.call(to, key) && key !== except)
9
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
+ }
11
+ return to;
12
+ };
13
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
14
+ var interactiveCredentialOptions_exports = {};
15
+ module.exports = __toCommonJS(interactiveCredentialOptions_exports);
16
+ //# sourceMappingURL=interactiveCredentialOptions.js.map
@@ -1 +1,7 @@
1
- {"version":3,"file":"interactiveCredentialOptions.js","sourceRoot":"","sources":["../../../src/credentials/interactiveCredentialOptions.ts"],"names":[],"mappings":";AAAA,uCAAuC;AACvC,kCAAkC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { AuthenticationRecord } from \"../msal/types.js\";\nimport type { AuthorityValidationOptions } from \"./authorityValidationOptions.js\";\nimport type { MultiTenantTokenCredentialOptions } from \"./multiTenantTokenCredentialOptions.js\";\n\n/**\n * Common constructor options for the Identity credentials that requires user interaction.\n */\nexport interface InteractiveCredentialOptions\n extends MultiTenantTokenCredentialOptions,\n AuthorityValidationOptions {\n /**\n * Result of a previous authentication that can be used to retrieve the cached credentials of each individual account.\n * This is necessary to provide in case the application wants to work with more than one account per\n * Client ID and Tenant ID pair.\n *\n * This record can be retrieved by calling to the credential's `authenticate()` method, as follows:\n *\n * const authenticationRecord = await credential.authenticate();\n *\n */\n authenticationRecord?: AuthenticationRecord;\n\n /**\n * Makes getToken throw if a manual authentication is necessary.\n * Developers will need to call to `authenticate()` to control when to manually authenticate.\n */\n disableAutomaticAuthentication?: boolean;\n}\n"]}
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/credentials/interactiveCredentialOptions.ts"],
4
+ "sourcesContent": ["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type { AuthenticationRecord } from \"../msal/types.js\";\nimport type { AuthorityValidationOptions } from \"./authorityValidationOptions.js\";\nimport type { MultiTenantTokenCredentialOptions } from \"./multiTenantTokenCredentialOptions.js\";\n\n/**\n * Common constructor options for the Identity credentials that requires user interaction.\n */\nexport interface InteractiveCredentialOptions\n extends MultiTenantTokenCredentialOptions, AuthorityValidationOptions {\n /**\n * Result of a previous authentication that can be used to retrieve the cached credentials of each individual account.\n * This is necessary to provide in case the application wants to work with more than one account per\n * Client ID and Tenant ID pair.\n *\n * This record can be retrieved by calling to the credential's `authenticate()` method, as follows:\n *\n * const authenticationRecord = await credential.authenticate();\n *\n */\n authenticationRecord?: AuthenticationRecord;\n\n /**\n * Makes getToken throw if a manual authentication is necessary.\n * Developers will need to call to `authenticate()` to control when to manually authenticate.\n */\n disableAutomaticAuthentication?: boolean;\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;AAAA;AAAA;",
6
+ "names": []
7
+ }
@@ -1,100 +1,101 @@
1
- "use strict";
2
- // Copyright (c) Microsoft Corporation.
3
- // Licensed under the MIT License.
4
- Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.imdsMsi = void 0;
6
- const core_rest_pipeline_1 = require("@azure/core-rest-pipeline");
7
- const core_util_1 = require("@azure/core-util");
8
- const logging_js_1 = require("../../util/logging.js");
9
- const utils_js_1 = require("./utils.js");
10
- const tracing_js_1 = require("../../util/tracing.js");
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var imdsMsi_exports = {};
19
+ __export(imdsMsi_exports, {
20
+ imdsMsi: () => imdsMsi
21
+ });
22
+ module.exports = __toCommonJS(imdsMsi_exports);
23
+ var import_core_rest_pipeline = require("@azure/core-rest-pipeline");
24
+ var import_core_util = require("@azure/core-util");
25
+ var import_logging = require("../../util/logging.js");
26
+ var import_utils = require("./utils.js");
27
+ var import_tracing = require("../../util/tracing.js");
11
28
  const msiName = "ManagedIdentityCredential - IMDS";
12
- const logger = (0, logging_js_1.credentialLogger)(msiName);
29
+ const logger = (0, import_logging.credentialLogger)(msiName);
13
30
  const imdsHost = "http://169.254.169.254";
14
31
  const imdsEndpointPath = "/metadata/identity/oauth2/token";
15
- /**
16
- * Generates an invalid request options to get a response quickly from IMDS endpoint.
17
- * The response indicates the availability of IMSD service; otherwise the request would time out.
18
- */
19
32
  function prepareInvalidRequestOptions(scopes) {
20
- const resource = (0, utils_js_1.mapScopesToResource)(scopes);
33
+ const resource = (0, import_utils.mapScopesToResource)(scopes);
34
+ if (!resource) {
35
+ throw new Error(`${msiName}: Multiple scopes are not supported.`);
36
+ }
37
+ const url = new URL(imdsEndpointPath, process.env.AZURE_POD_IDENTITY_AUTHORITY_HOST ?? imdsHost);
38
+ const rawHeaders = {
39
+ Accept: "application/json"
40
+ // intentionally leave out the Metadata header to invoke an error from IMDS endpoint.
41
+ };
42
+ return {
43
+ // intentionally not including any query
44
+ url: `${url}`,
45
+ method: "GET",
46
+ headers: (0, import_core_rest_pipeline.createHttpHeaders)(rawHeaders)
47
+ };
48
+ }
49
+ const imdsMsi = {
50
+ name: "imdsMsi",
51
+ async isAvailable(options) {
52
+ const { scopes, identityClient, getTokenOptions } = options;
53
+ const resource = (0, import_utils.mapScopesToResource)(scopes);
21
54
  if (!resource) {
22
- throw new Error(`${msiName}: Multiple scopes are not supported.`);
55
+ logger.info(`${msiName}: Unavailable. Multiple scopes are not supported.`);
56
+ return false;
23
57
  }
24
- // Pod Identity will try to process this request even if the Metadata header is missing.
25
- // We can exclude the request query to ensure no IMDS endpoint tries to process the ping request.
26
- const url = new URL(imdsEndpointPath, process.env.AZURE_POD_IDENTITY_AUTHORITY_HOST ?? imdsHost);
27
- const rawHeaders = {
28
- Accept: "application/json",
29
- // intentionally leave out the Metadata header to invoke an error from IMDS endpoint.
30
- };
31
- return {
32
- // intentionally not including any query
33
- url: `${url}`,
34
- method: "GET",
35
- headers: (0, core_rest_pipeline_1.createHttpHeaders)(rawHeaders),
36
- };
37
- }
38
- /**
39
- * Defines how to determine whether the Azure IMDS MSI is available.
40
- *
41
- * Actually getting the token once we determine IMDS is available is handled by MSAL.
42
- */
43
- exports.imdsMsi = {
44
- name: "imdsMsi",
45
- async isAvailable(options) {
46
- const { scopes, identityClient, getTokenOptions } = options;
47
- const resource = (0, utils_js_1.mapScopesToResource)(scopes);
48
- if (!resource) {
49
- logger.info(`${msiName}: Unavailable. Multiple scopes are not supported.`);
50
- return false;
51
- }
52
- // if the PodIdentityEndpoint environment variable was set no need to probe the endpoint, it can be assumed to exist
53
- if (process.env.AZURE_POD_IDENTITY_AUTHORITY_HOST) {
54
- return true;
58
+ if (process.env.AZURE_POD_IDENTITY_AUTHORITY_HOST) {
59
+ return true;
60
+ }
61
+ if (!identityClient) {
62
+ throw new Error("Missing IdentityClient");
63
+ }
64
+ const requestOptions = prepareInvalidRequestOptions(resource);
65
+ return import_tracing.tracingClient.withSpan(
66
+ "ManagedIdentityCredential-pingImdsEndpoint",
67
+ getTokenOptions ?? {},
68
+ async (updatedOptions) => {
69
+ requestOptions.tracingOptions = updatedOptions.tracingOptions;
70
+ const request = (0, import_core_rest_pipeline.createPipelineRequest)(requestOptions);
71
+ request.timeout = updatedOptions.requestOptions?.timeout || 1e3;
72
+ request.allowInsecureConnection = true;
73
+ let response;
74
+ try {
75
+ logger.info(`${msiName}: Pinging the Azure IMDS endpoint`);
76
+ response = await identityClient.sendRequest(request);
77
+ } catch (err) {
78
+ if ((0, import_core_util.isError)(err)) {
79
+ logger.verbose(`${msiName}: Caught error ${err.name}: ${err.message}`);
80
+ }
81
+ logger.info(`${msiName}: The Azure IMDS endpoint is unavailable`);
82
+ return false;
55
83
  }
56
- if (!identityClient) {
57
- throw new Error("Missing IdentityClient");
84
+ if (response.status === 403) {
85
+ if (response.bodyAsText?.includes("unreachable")) {
86
+ logger.info(`${msiName}: The Azure IMDS endpoint is unavailable`);
87
+ logger.info(`${msiName}: ${response.bodyAsText}`);
88
+ return false;
89
+ }
58
90
  }
59
- const requestOptions = prepareInvalidRequestOptions(resource);
60
- return tracing_js_1.tracingClient.withSpan("ManagedIdentityCredential-pingImdsEndpoint", getTokenOptions ?? {}, async (updatedOptions) => {
61
- requestOptions.tracingOptions = updatedOptions.tracingOptions;
62
- // Create a request with a timeout since we expect that
63
- // not having a "Metadata" header should cause an error to be
64
- // returned quickly from the endpoint, proving its availability.
65
- const request = (0, core_rest_pipeline_1.createPipelineRequest)(requestOptions);
66
- // Default to 1000 if the default of 0 is used.
67
- // Negative values can still be used to disable the timeout.
68
- request.timeout = updatedOptions.requestOptions?.timeout || 1000;
69
- // This MSI uses the imdsEndpoint to get the token, which only uses http://
70
- request.allowInsecureConnection = true;
71
- let response;
72
- try {
73
- logger.info(`${msiName}: Pinging the Azure IMDS endpoint`);
74
- response = await identityClient.sendRequest(request);
75
- }
76
- catch (err) {
77
- // If the request failed, or Node.js was unable to establish a connection,
78
- // or the host was down, we'll assume the IMDS endpoint isn't available.
79
- if ((0, core_util_1.isError)(err)) {
80
- logger.verbose(`${msiName}: Caught error ${err.name}: ${err.message}`);
81
- }
82
- // This is a special case for Docker Desktop which responds with a 403 with a message that contains "A socket operation was attempted to an unreachable network" or "A socket operation was attempted to an unreachable host"
83
- // rather than just timing out, as expected.
84
- logger.info(`${msiName}: The Azure IMDS endpoint is unavailable`);
85
- return false;
86
- }
87
- if (response.status === 403) {
88
- if (response.bodyAsText?.includes("unreachable")) {
89
- logger.info(`${msiName}: The Azure IMDS endpoint is unavailable`);
90
- logger.info(`${msiName}: ${response.bodyAsText}`);
91
- return false;
92
- }
93
- }
94
- // If we received any response, the endpoint is available
95
- logger.info(`${msiName}: The Azure IMDS endpoint is available`);
96
- return true;
97
- });
98
- },
91
+ logger.info(`${msiName}: The Azure IMDS endpoint is available`);
92
+ return true;
93
+ }
94
+ );
95
+ }
99
96
  };
100
- //# sourceMappingURL=imdsMsi.js.map
97
+ // Annotate the CommonJS export names for ESM import in node:
98
+ 0 && (module.exports = {
99
+ imdsMsi
100
+ });
101
+ //# sourceMappingURL=imdsMsi.js.map