@azure/msal-common 14.3.0 → 14.4.1-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (246) hide show
  1. package/dist/account/AccountInfo.d.ts +31 -31
  2. package/dist/account/AuthToken.d.ts +17 -17
  3. package/dist/account/AuthToken.mjs +58 -58
  4. package/dist/account/CcsCredential.d.ts +9 -9
  5. package/dist/account/CcsCredential.mjs +8 -8
  6. package/dist/account/ClientCredentials.d.ts +14 -14
  7. package/dist/account/ClientInfo.d.ts +19 -19
  8. package/dist/account/ClientInfo.mjs +37 -37
  9. package/dist/account/TokenClaims.d.ts +65 -65
  10. package/dist/authority/Authority.d.ts +249 -249
  11. package/dist/authority/Authority.d.ts.map +1 -1
  12. package/dist/authority/Authority.mjs +788 -789
  13. package/dist/authority/Authority.mjs.map +1 -1
  14. package/dist/authority/AuthorityFactory.d.ts +31 -31
  15. package/dist/authority/AuthorityFactory.mjs +47 -47
  16. package/dist/authority/AuthorityMetadata.d.ts +503 -503
  17. package/dist/authority/AuthorityMetadata.mjs +603 -603
  18. package/dist/authority/AuthorityOptions.d.ts +27 -27
  19. package/dist/authority/AuthorityOptions.mjs +18 -18
  20. package/dist/authority/AuthorityType.d.ts +10 -10
  21. package/dist/authority/AuthorityType.mjs +13 -13
  22. package/dist/authority/AzureRegion.d.ts +1 -1
  23. package/dist/authority/AzureRegionConfiguration.d.ts +5 -5
  24. package/dist/authority/CloudDiscoveryMetadata.d.ts +5 -5
  25. package/dist/authority/CloudInstanceDiscoveryErrorResponse.d.ts +13 -13
  26. package/dist/authority/CloudInstanceDiscoveryErrorResponse.mjs +8 -8
  27. package/dist/authority/CloudInstanceDiscoveryResponse.d.ts +9 -9
  28. package/dist/authority/CloudInstanceDiscoveryResponse.mjs +8 -8
  29. package/dist/authority/ImdsOptions.d.ts +5 -5
  30. package/dist/authority/OIDCOptions.d.ts +8 -8
  31. package/dist/authority/OpenIdConfigResponse.d.ts +11 -11
  32. package/dist/authority/OpenIdConfigResponse.mjs +10 -10
  33. package/dist/authority/ProtocolMode.d.ts +8 -8
  34. package/dist/authority/ProtocolMode.mjs +11 -11
  35. package/dist/authority/RegionDiscovery.d.ts +32 -32
  36. package/dist/authority/RegionDiscovery.mjs +106 -106
  37. package/dist/authority/RegionDiscoveryMetadata.d.ts +6 -6
  38. package/dist/broker/nativeBroker/INativeBrokerPlugin.d.ts +15 -15
  39. package/dist/cache/CacheManager.d.ts +485 -480
  40. package/dist/cache/CacheManager.d.ts.map +1 -1
  41. package/dist/cache/CacheManager.mjs +1102 -1089
  42. package/dist/cache/CacheManager.mjs.map +1 -1
  43. package/dist/cache/entities/AccessTokenEntity.d.ts +25 -25
  44. package/dist/cache/entities/AccountEntity.d.ts +101 -101
  45. package/dist/cache/entities/AccountEntity.mjs +218 -218
  46. package/dist/cache/entities/AppMetadataEntity.d.ts +39 -39
  47. package/dist/cache/entities/AppMetadataEntity.mjs +66 -66
  48. package/dist/cache/entities/AuthorityMetadataEntity.d.ts +48 -48
  49. package/dist/cache/entities/AuthorityMetadataEntity.mjs +78 -78
  50. package/dist/cache/entities/CacheRecord.d.ts +14 -14
  51. package/dist/cache/entities/CacheRecord.mjs +14 -14
  52. package/dist/cache/entities/CredentialEntity.d.ts +30 -30
  53. package/dist/cache/entities/IdTokenEntity.d.ts +8 -8
  54. package/dist/cache/entities/RefreshTokenEntity.d.ts +7 -5
  55. package/dist/cache/entities/RefreshTokenEntity.d.ts.map +1 -1
  56. package/dist/cache/entities/ServerTelemetryEntity.d.ts +5 -12
  57. package/dist/cache/entities/ServerTelemetryEntity.d.ts.map +1 -1
  58. package/dist/cache/entities/ThrottlingEntity.d.ts +13 -13
  59. package/dist/cache/entities/ThrottlingEntity.mjs +23 -23
  60. package/dist/cache/interface/ICacheManager.d.ts +166 -166
  61. package/dist/cache/interface/ICachePlugin.d.ts +5 -5
  62. package/dist/cache/interface/ISerializableTokenCache.d.ts +4 -4
  63. package/dist/cache/persistence/TokenCacheContext.d.ts +23 -23
  64. package/dist/cache/persistence/TokenCacheContext.mjs +25 -25
  65. package/dist/cache/utils/CacheHelpers.d.ts +64 -58
  66. package/dist/cache/utils/CacheHelpers.d.ts.map +1 -1
  67. package/dist/cache/utils/CacheHelpers.mjs +236 -217
  68. package/dist/cache/utils/CacheHelpers.mjs.map +1 -1
  69. package/dist/cache/utils/CacheTypes.d.ts +67 -67
  70. package/dist/client/AuthorizationCodeClient.d.ts +74 -73
  71. package/dist/client/AuthorizationCodeClient.d.ts.map +1 -1
  72. package/dist/client/AuthorizationCodeClient.mjs +402 -408
  73. package/dist/client/AuthorizationCodeClient.mjs.map +1 -1
  74. package/dist/client/BaseClient.d.ts +51 -51
  75. package/dist/client/BaseClient.mjs +100 -100
  76. package/dist/client/RefreshTokenClient.d.ts +35 -35
  77. package/dist/client/RefreshTokenClient.d.ts.map +1 -1
  78. package/dist/client/RefreshTokenClient.mjs +193 -187
  79. package/dist/client/RefreshTokenClient.mjs.map +1 -1
  80. package/dist/client/SilentFlowClient.d.ts +27 -27
  81. package/dist/client/SilentFlowClient.d.ts.map +1 -1
  82. package/dist/client/SilentFlowClient.mjs +118 -116
  83. package/dist/client/SilentFlowClient.mjs.map +1 -1
  84. package/dist/config/AppTokenProvider.d.ts +38 -38
  85. package/dist/config/ClientConfiguration.d.ts +150 -150
  86. package/dist/config/ClientConfiguration.mjs +97 -97
  87. package/dist/crypto/ICrypto.d.ts +58 -58
  88. package/dist/crypto/ICrypto.d.ts.map +1 -1
  89. package/dist/crypto/ICrypto.mjs +30 -30
  90. package/dist/crypto/ICrypto.mjs.map +1 -1
  91. package/dist/crypto/IGuidGenerator.d.ts +4 -4
  92. package/dist/crypto/JoseHeader.d.ts +22 -22
  93. package/dist/crypto/JoseHeader.d.ts.map +1 -1
  94. package/dist/crypto/JoseHeader.mjs +38 -38
  95. package/dist/crypto/JoseHeader.mjs.map +1 -1
  96. package/dist/crypto/PopTokenGenerator.d.ts +60 -60
  97. package/dist/crypto/PopTokenGenerator.d.ts.map +1 -1
  98. package/dist/crypto/PopTokenGenerator.mjs +82 -82
  99. package/dist/crypto/PopTokenGenerator.mjs.map +1 -1
  100. package/dist/crypto/SignedHttpRequest.d.ts +15 -11
  101. package/dist/crypto/SignedHttpRequest.d.ts.map +1 -1
  102. package/dist/error/AuthError.d.ts +44 -44
  103. package/dist/error/AuthError.mjs +46 -46
  104. package/dist/error/AuthErrorCodes.d.ts +5 -5
  105. package/dist/error/AuthErrorCodes.mjs +9 -9
  106. package/dist/error/ClientAuthError.d.ts +237 -237
  107. package/dist/error/ClientAuthError.mjs +249 -249
  108. package/dist/error/ClientAuthErrorCodes.d.ts +44 -44
  109. package/dist/error/ClientAuthErrorCodes.mjs +48 -48
  110. package/dist/error/ClientConfigurationError.d.ts +128 -128
  111. package/dist/error/ClientConfigurationError.mjs +135 -135
  112. package/dist/error/ClientConfigurationErrorCodes.d.ts +22 -22
  113. package/dist/error/ClientConfigurationErrorCodes.mjs +26 -26
  114. package/dist/error/InteractionRequiredAuthError.d.ts +57 -57
  115. package/dist/error/InteractionRequiredAuthError.d.ts.map +1 -1
  116. package/dist/error/InteractionRequiredAuthError.mjs +78 -77
  117. package/dist/error/InteractionRequiredAuthError.mjs.map +1 -1
  118. package/dist/error/InteractionRequiredAuthErrorCodes.d.ts +6 -5
  119. package/dist/error/InteractionRequiredAuthErrorCodes.d.ts.map +1 -1
  120. package/dist/error/InteractionRequiredAuthErrorCodes.mjs +13 -12
  121. package/dist/error/InteractionRequiredAuthErrorCodes.mjs.map +1 -1
  122. package/dist/error/JoseHeaderError.d.ts +15 -15
  123. package/dist/error/JoseHeaderError.mjs +22 -22
  124. package/dist/error/JoseHeaderErrorCodes.d.ts +2 -2
  125. package/dist/error/JoseHeaderErrorCodes.mjs +6 -6
  126. package/dist/error/ServerError.d.ts +7 -7
  127. package/dist/error/ServerError.mjs +14 -14
  128. package/dist/index.cjs +8300 -8350
  129. package/dist/index.cjs.map +1 -1
  130. package/dist/index.d.ts +98 -97
  131. package/dist/index.d.ts.map +1 -1
  132. package/dist/index.mjs +4 -3
  133. package/dist/index.mjs.map +1 -1
  134. package/dist/logger/Logger.d.ts +95 -95
  135. package/dist/logger/Logger.mjs +188 -188
  136. package/dist/network/INetworkModule.d.ts +29 -29
  137. package/dist/network/INetworkModule.mjs +12 -12
  138. package/dist/network/NetworkManager.d.ts +33 -33
  139. package/dist/network/NetworkManager.mjs +34 -34
  140. package/dist/network/RequestThumbprint.d.ts +18 -16
  141. package/dist/network/RequestThumbprint.d.ts.map +1 -1
  142. package/dist/network/ThrottlingUtils.d.ts +42 -42
  143. package/dist/network/ThrottlingUtils.mjs +95 -95
  144. package/dist/packageMetadata.d.ts +2 -2
  145. package/dist/packageMetadata.mjs +4 -4
  146. package/dist/request/AuthenticationHeaderParser.d.ts +19 -19
  147. package/dist/request/AuthenticationHeaderParser.mjs +55 -55
  148. package/dist/request/BaseAuthRequest.d.ts +43 -40
  149. package/dist/request/BaseAuthRequest.d.ts.map +1 -1
  150. package/dist/request/CommonAuthorizationCodeRequest.d.ts +27 -27
  151. package/dist/request/CommonAuthorizationUrlRequest.d.ts +50 -50
  152. package/dist/request/CommonClientCredentialRequest.d.ts +17 -17
  153. package/dist/request/CommonDeviceCodeRequest.d.ts +21 -21
  154. package/dist/request/CommonEndSessionRequest.d.ts +21 -21
  155. package/dist/request/CommonOnBehalfOfRequest.d.ts +13 -13
  156. package/dist/request/CommonRefreshTokenRequest.d.ts +23 -22
  157. package/dist/request/CommonRefreshTokenRequest.d.ts.map +1 -1
  158. package/dist/request/CommonSilentFlowRequest.d.ts +21 -20
  159. package/dist/request/CommonSilentFlowRequest.d.ts.map +1 -1
  160. package/dist/request/CommonUsernamePasswordRequest.d.ts +17 -17
  161. package/dist/request/NativeRequest.d.ts +19 -19
  162. package/dist/request/NativeSignOutRequest.d.ts +5 -5
  163. package/dist/request/RequestParameterBuilder.d.ts +217 -217
  164. package/dist/request/RequestParameterBuilder.mjs +381 -381
  165. package/dist/request/RequestValidator.d.ts +33 -33
  166. package/dist/request/RequestValidator.mjs +81 -81
  167. package/dist/request/ScopeSet.d.ts +88 -88
  168. package/dist/request/ScopeSet.mjs +197 -197
  169. package/dist/request/StoreInCache.d.ts +8 -8
  170. package/dist/response/AuthenticationResult.d.ts +41 -41
  171. package/dist/response/AuthorizationCodePayload.d.ts +13 -13
  172. package/dist/response/DeviceCodeResponse.d.ts +25 -25
  173. package/dist/response/ExternalTokenResponse.d.ts +15 -15
  174. package/dist/response/IMDSBadResponse.d.ts +4 -4
  175. package/dist/response/ResponseHandler.d.ts +67 -67
  176. package/dist/response/ResponseHandler.d.ts.map +1 -1
  177. package/dist/response/ResponseHandler.mjs +312 -312
  178. package/dist/response/ResponseHandler.mjs.map +1 -1
  179. package/dist/response/ServerAuthorizationCodeResponse.d.ts +25 -25
  180. package/dist/response/ServerAuthorizationTokenResponse.d.ts +46 -46
  181. package/dist/telemetry/performance/IPerformanceClient.d.ts +51 -51
  182. package/dist/telemetry/performance/IPerformanceMeasurement.d.ts +5 -5
  183. package/dist/telemetry/performance/PerformanceClient.d.ts +191 -191
  184. package/dist/telemetry/performance/PerformanceClient.mjs +409 -409
  185. package/dist/telemetry/performance/PerformanceEvent.d.ts +464 -457
  186. package/dist/telemetry/performance/PerformanceEvent.d.ts.map +1 -1
  187. package/dist/telemetry/performance/PerformanceEvent.mjs +253 -249
  188. package/dist/telemetry/performance/PerformanceEvent.mjs.map +1 -1
  189. package/dist/telemetry/performance/StubPerformanceClient.d.ts +24 -24
  190. package/dist/telemetry/performance/StubPerformanceClient.mjs +76 -76
  191. package/dist/telemetry/server/ServerTelemetryManager.d.ts +66 -66
  192. package/dist/telemetry/server/ServerTelemetryManager.d.ts.map +1 -1
  193. package/dist/telemetry/server/ServerTelemetryManager.mjs +201 -198
  194. package/dist/telemetry/server/ServerTelemetryManager.mjs.map +1 -1
  195. package/dist/telemetry/server/ServerTelemetryRequest.d.ts +8 -8
  196. package/dist/url/IUri.d.ts +12 -12
  197. package/dist/url/UrlString.d.ts +48 -83
  198. package/dist/url/UrlString.d.ts.map +1 -1
  199. package/dist/url/UrlString.mjs +163 -282
  200. package/dist/url/UrlString.mjs.map +1 -1
  201. package/dist/utils/Constants.d.ts +365 -366
  202. package/dist/utils/Constants.d.ts.map +1 -1
  203. package/dist/utils/Constants.mjs +376 -377
  204. package/dist/utils/Constants.mjs.map +1 -1
  205. package/dist/utils/FunctionWrappers.d.ts +27 -27
  206. package/dist/utils/FunctionWrappers.mjs +84 -84
  207. package/dist/utils/MsalTypes.d.ts +6 -6
  208. package/dist/utils/ProtocolUtils.d.ts +42 -42
  209. package/dist/utils/ProtocolUtils.mjs +69 -69
  210. package/dist/utils/StringUtils.d.ts +40 -40
  211. package/dist/utils/StringUtils.mjs +95 -95
  212. package/dist/utils/TimeUtils.d.ts +27 -27
  213. package/dist/utils/TimeUtils.mjs +45 -45
  214. package/dist/utils/UrlUtils.d.ts +11 -0
  215. package/dist/utils/UrlUtils.d.ts.map +1 -0
  216. package/dist/utils/UrlUtils.mjs +52 -0
  217. package/dist/utils/UrlUtils.mjs.map +1 -0
  218. package/package.json +92 -92
  219. package/src/authority/Authority.ts +2 -3
  220. package/src/cache/CacheManager.ts +63 -22
  221. package/src/cache/entities/RefreshTokenEntity.ts +3 -1
  222. package/src/cache/entities/ServerTelemetryEntity.ts +2 -30
  223. package/src/cache/utils/CacheHelpers.ts +27 -1
  224. package/src/client/AuthorizationCodeClient.ts +5 -14
  225. package/src/client/RefreshTokenClient.ts +20 -2
  226. package/src/client/SilentFlowClient.ts +8 -4
  227. package/src/crypto/ICrypto.ts +7 -2
  228. package/src/crypto/JoseHeader.ts +4 -4
  229. package/src/crypto/PopTokenGenerator.ts +2 -0
  230. package/src/crypto/SignedHttpRequest.ts +6 -0
  231. package/src/error/InteractionRequiredAuthError.ts +2 -0
  232. package/src/error/InteractionRequiredAuthErrorCodes.ts +1 -0
  233. package/src/index.ts +3 -1
  234. package/src/network/RequestThumbprint.ts +2 -0
  235. package/src/packageMetadata.ts +1 -1
  236. package/src/request/BaseAuthRequest.ts +3 -0
  237. package/src/request/CommonRefreshTokenRequest.ts +1 -0
  238. package/src/request/CommonSilentFlowRequest.ts +1 -0
  239. package/src/response/ResponseHandler.ts +8 -4
  240. package/src/telemetry/performance/PerformanceEvent.ts +12 -1
  241. package/src/telemetry/server/ServerTelemetryManager.ts +12 -6
  242. package/src/url/UrlString.ts +6 -153
  243. package/src/utils/Constants.ts +3 -3
  244. package/src/utils/UrlUtils.ts +60 -0
  245. package/dist/cache/entities/ServerTelemetryEntity.mjs +0 -34
  246. package/dist/cache/entities/ServerTelemetryEntity.mjs.map +0 -1
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-common v14.3.0 2023-10-30 */
1
+ /*! @azure/msal-common v14.4.1-beta.0 2023-11-14 */
2
2
  'use strict';
3
3
  import { DEFAULT_CRYPTO_IMPLEMENTATION } from '../crypto/ICrypto.mjs';
4
4
  import { Logger, LogLevel } from '../logger/Logger.mjs';
@@ -10,102 +10,102 @@ import { ProtocolMode } from '../authority/ProtocolMode.mjs';
10
10
  import { createClientAuthError } from '../error/ClientAuthError.mjs';
11
11
  import { methodNotImplemented } from '../error/ClientAuthErrorCodes.mjs';
12
12
 
13
- /*
14
- * Copyright (c) Microsoft Corporation. All rights reserved.
15
- * Licensed under the MIT License.
16
- */
17
- // Token renewal offset default in seconds
18
- const DEFAULT_TOKEN_RENEWAL_OFFSET_SEC = 300;
19
- const DEFAULT_SYSTEM_OPTIONS = {
20
- tokenRenewalOffsetSeconds: DEFAULT_TOKEN_RENEWAL_OFFSET_SEC,
21
- preventCorsPreflight: false,
22
- };
23
- const DEFAULT_LOGGER_IMPLEMENTATION = {
24
- loggerCallback: () => {
25
- // allow users to not set loggerCallback
26
- },
27
- piiLoggingEnabled: false,
28
- logLevel: LogLevel.Info,
29
- correlationId: Constants.EMPTY_STRING,
30
- };
31
- const DEFAULT_CACHE_OPTIONS = {
32
- claimsBasedCachingEnabled: false,
33
- };
34
- const DEFAULT_NETWORK_IMPLEMENTATION = {
35
- async sendGetRequestAsync() {
36
- throw createClientAuthError(methodNotImplemented);
37
- },
38
- async sendPostRequestAsync() {
39
- throw createClientAuthError(methodNotImplemented);
40
- },
41
- };
42
- const DEFAULT_LIBRARY_INFO = {
43
- sku: Constants.SKU,
44
- version: version,
45
- cpu: Constants.EMPTY_STRING,
46
- os: Constants.EMPTY_STRING,
47
- };
48
- const DEFAULT_CLIENT_CREDENTIALS = {
49
- clientSecret: Constants.EMPTY_STRING,
50
- clientAssertion: undefined,
51
- };
52
- const DEFAULT_AZURE_CLOUD_OPTIONS = {
53
- azureCloudInstance: AzureCloudInstance.None,
54
- tenant: `${Constants.DEFAULT_COMMON_TENANT}`,
55
- };
56
- const DEFAULT_TELEMETRY_OPTIONS = {
57
- application: {
58
- appName: "",
59
- appVersion: "",
60
- },
61
- };
62
- /**
63
- * Function that sets the default options when not explicitly configured from app developer
64
- *
65
- * @param Configuration
66
- *
67
- * @returns Configuration
68
- */
69
- function buildClientConfiguration({ authOptions: userAuthOptions, systemOptions: userSystemOptions, loggerOptions: userLoggerOption, cacheOptions: userCacheOptions, storageInterface: storageImplementation, networkInterface: networkImplementation, cryptoInterface: cryptoImplementation, clientCredentials: clientCredentials, libraryInfo: libraryInfo, telemetry: telemetry, serverTelemetryManager: serverTelemetryManager, persistencePlugin: persistencePlugin, serializableCache: serializableCache, }) {
70
- const loggerOptions = {
71
- ...DEFAULT_LOGGER_IMPLEMENTATION,
72
- ...userLoggerOption,
73
- };
74
- return {
75
- authOptions: buildAuthOptions(userAuthOptions),
76
- systemOptions: { ...DEFAULT_SYSTEM_OPTIONS, ...userSystemOptions },
77
- loggerOptions: loggerOptions,
78
- cacheOptions: { ...DEFAULT_CACHE_OPTIONS, ...userCacheOptions },
79
- storageInterface: storageImplementation ||
80
- new DefaultStorageClass(userAuthOptions.clientId, DEFAULT_CRYPTO_IMPLEMENTATION, new Logger(loggerOptions)),
81
- networkInterface: networkImplementation || DEFAULT_NETWORK_IMPLEMENTATION,
82
- cryptoInterface: cryptoImplementation || DEFAULT_CRYPTO_IMPLEMENTATION,
83
- clientCredentials: clientCredentials || DEFAULT_CLIENT_CREDENTIALS,
84
- libraryInfo: { ...DEFAULT_LIBRARY_INFO, ...libraryInfo },
85
- telemetry: { ...DEFAULT_TELEMETRY_OPTIONS, ...telemetry },
86
- serverTelemetryManager: serverTelemetryManager || null,
87
- persistencePlugin: persistencePlugin || null,
88
- serializableCache: serializableCache || null,
89
- };
90
- }
91
- /**
92
- * Construct authoptions from the client and platform passed values
93
- * @param authOptions
94
- */
95
- function buildAuthOptions(authOptions) {
96
- return {
97
- clientCapabilities: [],
98
- azureCloudOptions: DEFAULT_AZURE_CLOUD_OPTIONS,
99
- skipAuthorityMetadataCache: false,
100
- ...authOptions,
101
- };
102
- }
103
- /**
104
- * Returns true if config has protocolMode set to ProtocolMode.OIDC, false otherwise
105
- * @param ClientConfiguration
106
- */
107
- function isOidcProtocolMode(config) {
108
- return (config.authOptions.authority.options.protocolMode === ProtocolMode.OIDC);
13
+ /*
14
+ * Copyright (c) Microsoft Corporation. All rights reserved.
15
+ * Licensed under the MIT License.
16
+ */
17
+ // Token renewal offset default in seconds
18
+ const DEFAULT_TOKEN_RENEWAL_OFFSET_SEC = 300;
19
+ const DEFAULT_SYSTEM_OPTIONS = {
20
+ tokenRenewalOffsetSeconds: DEFAULT_TOKEN_RENEWAL_OFFSET_SEC,
21
+ preventCorsPreflight: false,
22
+ };
23
+ const DEFAULT_LOGGER_IMPLEMENTATION = {
24
+ loggerCallback: () => {
25
+ // allow users to not set loggerCallback
26
+ },
27
+ piiLoggingEnabled: false,
28
+ logLevel: LogLevel.Info,
29
+ correlationId: Constants.EMPTY_STRING,
30
+ };
31
+ const DEFAULT_CACHE_OPTIONS = {
32
+ claimsBasedCachingEnabled: false,
33
+ };
34
+ const DEFAULT_NETWORK_IMPLEMENTATION = {
35
+ async sendGetRequestAsync() {
36
+ throw createClientAuthError(methodNotImplemented);
37
+ },
38
+ async sendPostRequestAsync() {
39
+ throw createClientAuthError(methodNotImplemented);
40
+ },
41
+ };
42
+ const DEFAULT_LIBRARY_INFO = {
43
+ sku: Constants.SKU,
44
+ version: version,
45
+ cpu: Constants.EMPTY_STRING,
46
+ os: Constants.EMPTY_STRING,
47
+ };
48
+ const DEFAULT_CLIENT_CREDENTIALS = {
49
+ clientSecret: Constants.EMPTY_STRING,
50
+ clientAssertion: undefined,
51
+ };
52
+ const DEFAULT_AZURE_CLOUD_OPTIONS = {
53
+ azureCloudInstance: AzureCloudInstance.None,
54
+ tenant: `${Constants.DEFAULT_COMMON_TENANT}`,
55
+ };
56
+ const DEFAULT_TELEMETRY_OPTIONS = {
57
+ application: {
58
+ appName: "",
59
+ appVersion: "",
60
+ },
61
+ };
62
+ /**
63
+ * Function that sets the default options when not explicitly configured from app developer
64
+ *
65
+ * @param Configuration
66
+ *
67
+ * @returns Configuration
68
+ */
69
+ function buildClientConfiguration({ authOptions: userAuthOptions, systemOptions: userSystemOptions, loggerOptions: userLoggerOption, cacheOptions: userCacheOptions, storageInterface: storageImplementation, networkInterface: networkImplementation, cryptoInterface: cryptoImplementation, clientCredentials: clientCredentials, libraryInfo: libraryInfo, telemetry: telemetry, serverTelemetryManager: serverTelemetryManager, persistencePlugin: persistencePlugin, serializableCache: serializableCache, }) {
70
+ const loggerOptions = {
71
+ ...DEFAULT_LOGGER_IMPLEMENTATION,
72
+ ...userLoggerOption,
73
+ };
74
+ return {
75
+ authOptions: buildAuthOptions(userAuthOptions),
76
+ systemOptions: { ...DEFAULT_SYSTEM_OPTIONS, ...userSystemOptions },
77
+ loggerOptions: loggerOptions,
78
+ cacheOptions: { ...DEFAULT_CACHE_OPTIONS, ...userCacheOptions },
79
+ storageInterface: storageImplementation ||
80
+ new DefaultStorageClass(userAuthOptions.clientId, DEFAULT_CRYPTO_IMPLEMENTATION, new Logger(loggerOptions)),
81
+ networkInterface: networkImplementation || DEFAULT_NETWORK_IMPLEMENTATION,
82
+ cryptoInterface: cryptoImplementation || DEFAULT_CRYPTO_IMPLEMENTATION,
83
+ clientCredentials: clientCredentials || DEFAULT_CLIENT_CREDENTIALS,
84
+ libraryInfo: { ...DEFAULT_LIBRARY_INFO, ...libraryInfo },
85
+ telemetry: { ...DEFAULT_TELEMETRY_OPTIONS, ...telemetry },
86
+ serverTelemetryManager: serverTelemetryManager || null,
87
+ persistencePlugin: persistencePlugin || null,
88
+ serializableCache: serializableCache || null,
89
+ };
90
+ }
91
+ /**
92
+ * Construct authoptions from the client and platform passed values
93
+ * @param authOptions
94
+ */
95
+ function buildAuthOptions(authOptions) {
96
+ return {
97
+ clientCapabilities: [],
98
+ azureCloudOptions: DEFAULT_AZURE_CLOUD_OPTIONS,
99
+ skipAuthorityMetadataCache: false,
100
+ ...authOptions,
101
+ };
102
+ }
103
+ /**
104
+ * Returns true if config has protocolMode set to ProtocolMode.OIDC, false otherwise
105
+ * @param ClientConfiguration
106
+ */
107
+ function isOidcProtocolMode(config) {
108
+ return (config.authOptions.authority.options.protocolMode === ProtocolMode.OIDC);
109
109
  }
110
110
 
111
111
  export { DEFAULT_SYSTEM_OPTIONS, buildClientConfiguration, isOidcProtocolMode };
@@ -1,59 +1,59 @@
1
- import { BaseAuthRequest } from "../request/BaseAuthRequest";
2
- import { SignedHttpRequest } from "./SignedHttpRequest";
3
- /**
4
- * The PkceCodes type describes the structure
5
- * of objects that contain PKCE code
6
- * challenge and verifier pairs
7
- */
8
- export type PkceCodes = {
9
- verifier: string;
10
- challenge: string;
11
- };
12
- export type SignedHttpRequestParameters = Pick<BaseAuthRequest, "resourceRequestMethod" | "resourceRequestUri" | "shrClaims" | "shrNonce"> & {
13
- correlationId?: string;
14
- };
15
- /**
16
- * Interface for crypto functions used by library
17
- */
18
- export interface ICrypto {
19
- /**
20
- * Creates a guid randomly.
21
- */
22
- createNewGuid(): string;
23
- /**
24
- * base64 Encode string
25
- * @param input
26
- */
27
- base64Encode(input: string): string;
28
- /**
29
- * base64 decode string
30
- * @param input
31
- */
32
- base64Decode(input: string): string;
33
- /**
34
- * Generates an JWK RSA S256 Thumbprint
35
- * @param request
36
- */
37
- getPublicKeyThumbprint(request: SignedHttpRequestParameters): Promise<string>;
38
- /**
39
- * Removes cryptographic keypair from key store matching the keyId passed in
40
- * @param kid
41
- */
42
- removeTokenBindingKey(kid: string): Promise<boolean>;
43
- /**
44
- * Removes all cryptographic keys from IndexedDB storage
45
- */
46
- clearKeystore(): Promise<boolean>;
47
- /**
48
- * Returns a signed proof-of-possession token with a given acces token that contains a cnf claim with the required kid.
49
- * @param accessToken
50
- */
51
- signJwt(payload: SignedHttpRequest, kid: string, correlationId?: string): Promise<string>;
52
- /**
53
- * Returns the SHA-256 hash of an input string
54
- * @param plainText
55
- */
56
- hashString(plainText: string): Promise<string>;
57
- }
58
- export declare const DEFAULT_CRYPTO_IMPLEMENTATION: ICrypto;
1
+ import { BaseAuthRequest } from "../request/BaseAuthRequest";
2
+ import { ShrOptions, SignedHttpRequest } from "./SignedHttpRequest";
3
+ /**
4
+ * The PkceCodes type describes the structure
5
+ * of objects that contain PKCE code
6
+ * challenge and verifier pairs
7
+ */
8
+ export type PkceCodes = {
9
+ verifier: string;
10
+ challenge: string;
11
+ };
12
+ export type SignedHttpRequestParameters = Pick<BaseAuthRequest, "resourceRequestMethod" | "resourceRequestUri" | "shrClaims" | "shrNonce" | "shrOptions"> & {
13
+ correlationId?: string;
14
+ };
15
+ /**
16
+ * Interface for crypto functions used by library
17
+ */
18
+ export interface ICrypto {
19
+ /**
20
+ * Creates a guid randomly.
21
+ */
22
+ createNewGuid(): string;
23
+ /**
24
+ * base64 Encode string
25
+ * @param input
26
+ */
27
+ base64Encode(input: string): string;
28
+ /**
29
+ * base64 decode string
30
+ * @param input
31
+ */
32
+ base64Decode(input: string): string;
33
+ /**
34
+ * Generates an JWK RSA S256 Thumbprint
35
+ * @param request
36
+ */
37
+ getPublicKeyThumbprint(request: SignedHttpRequestParameters): Promise<string>;
38
+ /**
39
+ * Removes cryptographic keypair from key store matching the keyId passed in
40
+ * @param kid
41
+ */
42
+ removeTokenBindingKey(kid: string): Promise<boolean>;
43
+ /**
44
+ * Removes all cryptographic keys from IndexedDB storage
45
+ */
46
+ clearKeystore(): Promise<boolean>;
47
+ /**
48
+ * Returns a signed proof-of-possession token with a given acces token that contains a cnf claim with the required kid.
49
+ * @param accessToken
50
+ */
51
+ signJwt(payload: SignedHttpRequest, kid: string, shrOptions?: ShrOptions, correlationId?: string): Promise<string>;
52
+ /**
53
+ * Returns the SHA-256 hash of an input string
54
+ * @param plainText
55
+ */
56
+ hashString(plainText: string): Promise<string>;
57
+ }
58
+ export declare const DEFAULT_CRYPTO_IMPLEMENTATION: ICrypto;
59
59
  //# sourceMappingURL=ICrypto.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ICrypto.d.ts","sourceRoot":"","sources":["../../src/crypto/ICrypto.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,IAAI,CAC1C,eAAe,EACf,uBAAuB,GAAG,oBAAoB,GAAG,WAAW,GAAG,UAAU,CAC5E,GAAG;IACA,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,OAAO;IACpB;;OAEG;IACH,aAAa,IAAI,MAAM,CAAC;IACxB;;;OAGG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACpC;;;OAGG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACpC;;;OAGG;IACH,sBAAsB,CAClB,OAAO,EAAE,2BAA2B,GACrC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB;;;OAGG;IACH,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD;;OAEG;IACH,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC;;;OAGG;IACH,OAAO,CACH,OAAO,EAAE,iBAAiB,EAC1B,GAAG,EAAE,MAAM,EACX,aAAa,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB;;;OAGG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAClD;AAED,eAAO,MAAM,6BAA6B,EAAE,OAyB3C,CAAC"}
1
+ {"version":3,"file":"ICrypto.d.ts","sourceRoot":"","sources":["../../src/crypto/ICrypto.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEpE;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,2BAA2B,GAAG,IAAI,CAC1C,eAAe,EACb,uBAAuB,GACvB,oBAAoB,GACpB,WAAW,GACX,UAAU,GACV,YAAY,CACjB,GAAG;IACA,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,OAAO;IACpB;;OAEG;IACH,aAAa,IAAI,MAAM,CAAC;IACxB;;;OAGG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACpC;;;OAGG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACpC;;;OAGG;IACH,sBAAsB,CAClB,OAAO,EAAE,2BAA2B,GACrC,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB;;;OAGG;IACH,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrD;;OAEG;IACH,aAAa,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAClC;;;OAGG;IACH,OAAO,CACH,OAAO,EAAE,iBAAiB,EAC1B,GAAG,EAAE,MAAM,EACX,UAAU,CAAC,EAAE,UAAU,EACvB,aAAa,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB;;;OAGG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAClD;AAED,eAAO,MAAM,6BAA6B,EAAE,OAyB3C,CAAC"}
@@ -1,37 +1,37 @@
1
- /*! @azure/msal-common v14.3.0 2023-10-30 */
1
+ /*! @azure/msal-common v14.4.1-beta.0 2023-11-14 */
2
2
  'use strict';
3
3
  import { createClientAuthError } from '../error/ClientAuthError.mjs';
4
4
  import { methodNotImplemented } from '../error/ClientAuthErrorCodes.mjs';
5
5
 
6
- /*
7
- * Copyright (c) Microsoft Corporation. All rights reserved.
8
- * Licensed under the MIT License.
9
- */
10
- const DEFAULT_CRYPTO_IMPLEMENTATION = {
11
- createNewGuid: () => {
12
- throw createClientAuthError(methodNotImplemented);
13
- },
14
- base64Decode: () => {
15
- throw createClientAuthError(methodNotImplemented);
16
- },
17
- base64Encode: () => {
18
- throw createClientAuthError(methodNotImplemented);
19
- },
20
- async getPublicKeyThumbprint() {
21
- throw createClientAuthError(methodNotImplemented);
22
- },
23
- async removeTokenBindingKey() {
24
- throw createClientAuthError(methodNotImplemented);
25
- },
26
- async clearKeystore() {
27
- throw createClientAuthError(methodNotImplemented);
28
- },
29
- async signJwt() {
30
- throw createClientAuthError(methodNotImplemented);
31
- },
32
- async hashString() {
33
- throw createClientAuthError(methodNotImplemented);
34
- },
6
+ /*
7
+ * Copyright (c) Microsoft Corporation. All rights reserved.
8
+ * Licensed under the MIT License.
9
+ */
10
+ const DEFAULT_CRYPTO_IMPLEMENTATION = {
11
+ createNewGuid: () => {
12
+ throw createClientAuthError(methodNotImplemented);
13
+ },
14
+ base64Decode: () => {
15
+ throw createClientAuthError(methodNotImplemented);
16
+ },
17
+ base64Encode: () => {
18
+ throw createClientAuthError(methodNotImplemented);
19
+ },
20
+ async getPublicKeyThumbprint() {
21
+ throw createClientAuthError(methodNotImplemented);
22
+ },
23
+ async removeTokenBindingKey() {
24
+ throw createClientAuthError(methodNotImplemented);
25
+ },
26
+ async clearKeystore() {
27
+ throw createClientAuthError(methodNotImplemented);
28
+ },
29
+ async signJwt() {
30
+ throw createClientAuthError(methodNotImplemented);
31
+ },
32
+ async hashString() {
33
+ throw createClientAuthError(methodNotImplemented);
34
+ },
35
35
  };
36
36
 
37
37
  export { DEFAULT_CRYPTO_IMPLEMENTATION };
@@ -1 +1 @@
1
- {"version":3,"file":"ICrypto.mjs","sources":["../../src/crypto/ICrypto.ts"],"sourcesContent":[null],"names":["ClientAuthErrorCodes.methodNotImplemented"],"mappings":";;;;;AASA;AACA;AAEA;;;AAIG,IAAA,aAAA,EAAA,MAAA;AACH,QAAM,2BAAkB,CAAAA,oBAAA,CAAA,CAAA;KACZ;IACR,oBAAkB;QACpB,MAAA,qBAAA,CAAAA,oBAAA,CAAA,CAAA;AAEF,KAAA;IAII,YAAa,EAAC,MAAE;QAClB,MAAA,qBAAA,CAAAA,oBAAA,CAAA,CAAA;AAEF,KAAA;;AAEG,QAAA,MAAA,qBAAA,CAAAA,oBAAA,CAAA,CAAA;AACH,KAAA;AACI,IAAA,MAAA,qBAAA,GAAA;;AAEG,KAAA;IACH,MAAa;AACb,QAAA,MAAA,qBAAA,CAAAA,oBAAA,CAAA,CAAA;;;AAGG,QAAA,MAAA,qBAAA,CAAAA,oBAAA,CAAA,CAAA;AACH,KAAA;AACA,IAAA,MAAA,UAAA,GAAA;;;AAGG;;;;"}
1
+ {"version":3,"file":"ICrypto.mjs","sources":["../../src/crypto/ICrypto.ts"],"sourcesContent":[null],"names":["ClientAuthErrorCodes.methodNotImplemented"],"mappings":";;;;;AASA;AACA;AAEA;;;AAIG,IAAA,aAAA,EAAA,MAAA;AACH,QAAM,2BAAkB,CAAAA,oBAAA,CAAA,CAAA;KACZ;IACR,oBAAkB;QACpB,MAAA,qBAAA,CAAAA,oBAAA,CAAA,CAAA;AAEF,KAAA;IAQI,YAAa,EAAC,MAAE;QAClB,MAAA,qBAAA,CAAAA,oBAAA,CAAA,CAAA;AAEF,KAAA;;AAEG,QAAA,MAAA,qBAAA,CAAAA,oBAAA,CAAA,CAAA;AACH,KAAA;AACI,IAAA,MAAA,qBAAA,GAAA;;AAEG,KAAA;IACH,MAAa;AACb,QAAA,MAAA,qBAAA,CAAAA,oBAAA,CAAA,CAAA;;;AAGG,QAAA,MAAA,qBAAA,CAAAA,oBAAA,CAAA,CAAA;AACH,KAAA;AACA,IAAA,MAAA,UAAA,GAAA;;;AAGG;;;;"}
@@ -1,5 +1,5 @@
1
- export interface IGuidGenerator {
2
- generateGuid(): string;
3
- isGuid(guid: string): boolean;
4
- }
1
+ export interface IGuidGenerator {
2
+ generateGuid(): string;
3
+ isGuid(guid: string): boolean;
4
+ }
5
5
  //# sourceMappingURL=IGuidGenerator.d.ts.map
@@ -1,23 +1,23 @@
1
- import { JsonTypes } from "../utils/Constants";
2
- export type JoseHeaderOptions = {
3
- typ?: JsonTypes;
4
- alg?: string;
5
- kid?: string;
6
- };
7
- /** @internal */
8
- export declare class JoseHeader {
9
- typ?: JsonTypes;
10
- alg?: string;
11
- kid?: string;
12
- constructor(options: JoseHeaderOptions);
13
- /**
14
- * Builds SignedHttpRequest formatted JOSE Header from the
15
- * JOSE Header options provided or previously set on the object and returns
16
- * the stringified header object.
17
- * Throws if keyId or algorithm aren't provided since they are required for Access Token Binding.
18
- * @param shrHeaderOptions
19
- * @returns
20
- */
21
- static getShrHeaderString(shrHeaderOptions: JoseHeaderOptions): string;
22
- }
1
+ import { JsonWebTokenTypes } from "../utils/Constants";
2
+ export type JoseHeaderOptions = {
3
+ typ?: JsonWebTokenTypes;
4
+ alg?: string;
5
+ kid?: string;
6
+ };
7
+ /** @internal */
8
+ export declare class JoseHeader {
9
+ typ?: JsonWebTokenTypes;
10
+ alg?: string;
11
+ kid?: string;
12
+ constructor(options: JoseHeaderOptions);
13
+ /**
14
+ * Builds SignedHttpRequest formatted JOSE Header from the
15
+ * JOSE Header options provided or previously set on the object and returns
16
+ * the stringified header object.
17
+ * Throws if keyId or algorithm aren't provided since they are required for Access Token Binding.
18
+ * @param shrHeaderOptions
19
+ * @returns
20
+ */
21
+ static getShrHeaderString(shrHeaderOptions: JoseHeaderOptions): string;
22
+ }
23
23
  //# sourceMappingURL=JoseHeader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"JoseHeader.d.ts","sourceRoot":"","sources":["../../src/crypto/JoseHeader.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,MAAM,MAAM,iBAAiB,GAAG;IAC5B,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,gBAAgB;AAChB,qBAAa,UAAU;IACZ,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;gBAER,OAAO,EAAE,iBAAiB;IAMtC;;;;;;;OAOG;IACH,MAAM,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,iBAAiB,GAAG,MAAM;CAoBzE"}
1
+ {"version":3,"file":"JoseHeader.d.ts","sourceRoot":"","sources":["../../src/crypto/JoseHeader.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,MAAM,iBAAiB,GAAG;IAC5B,GAAG,CAAC,EAAE,iBAAiB,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,gBAAgB;AAChB,qBAAa,UAAU;IACZ,GAAG,CAAC,EAAE,iBAAiB,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;gBAER,OAAO,EAAE,iBAAiB;IAMtC;;;;;;;OAOG;IACH,MAAM,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,iBAAiB,GAAG,MAAM;CAoBzE"}
@@ -1,45 +1,45 @@
1
- /*! @azure/msal-common v14.3.0 2023-10-30 */
1
+ /*! @azure/msal-common v14.4.1-beta.0 2023-11-14 */
2
2
  'use strict';
3
3
  import { createJoseHeaderError } from '../error/JoseHeaderError.mjs';
4
- import { JsonTypes } from '../utils/Constants.mjs';
4
+ import { JsonWebTokenTypes } from '../utils/Constants.mjs';
5
5
  import { missingKidError, missingAlgError } from '../error/JoseHeaderErrorCodes.mjs';
6
6
 
7
- /*
8
- * Copyright (c) Microsoft Corporation. All rights reserved.
9
- * Licensed under the MIT License.
10
- */
11
- /** @internal */
12
- class JoseHeader {
13
- constructor(options) {
14
- this.typ = options.typ;
15
- this.alg = options.alg;
16
- this.kid = options.kid;
17
- }
18
- /**
19
- * Builds SignedHttpRequest formatted JOSE Header from the
20
- * JOSE Header options provided or previously set on the object and returns
21
- * the stringified header object.
22
- * Throws if keyId or algorithm aren't provided since they are required for Access Token Binding.
23
- * @param shrHeaderOptions
24
- * @returns
25
- */
26
- static getShrHeaderString(shrHeaderOptions) {
27
- // KeyID is required on the SHR header
28
- if (!shrHeaderOptions.kid) {
29
- throw createJoseHeaderError(missingKidError);
30
- }
31
- // Alg is required on the SHR header
32
- if (!shrHeaderOptions.alg) {
33
- throw createJoseHeaderError(missingAlgError);
34
- }
35
- const shrHeader = new JoseHeader({
36
- // Access Token PoP headers must have type pop, but the type header can be overriden for special cases
37
- typ: shrHeaderOptions.typ || JsonTypes.Pop,
38
- kid: shrHeaderOptions.kid,
39
- alg: shrHeaderOptions.alg,
40
- });
41
- return JSON.stringify(shrHeader);
42
- }
7
+ /*
8
+ * Copyright (c) Microsoft Corporation. All rights reserved.
9
+ * Licensed under the MIT License.
10
+ */
11
+ /** @internal */
12
+ class JoseHeader {
13
+ constructor(options) {
14
+ this.typ = options.typ;
15
+ this.alg = options.alg;
16
+ this.kid = options.kid;
17
+ }
18
+ /**
19
+ * Builds SignedHttpRequest formatted JOSE Header from the
20
+ * JOSE Header options provided or previously set on the object and returns
21
+ * the stringified header object.
22
+ * Throws if keyId or algorithm aren't provided since they are required for Access Token Binding.
23
+ * @param shrHeaderOptions
24
+ * @returns
25
+ */
26
+ static getShrHeaderString(shrHeaderOptions) {
27
+ // KeyID is required on the SHR header
28
+ if (!shrHeaderOptions.kid) {
29
+ throw createJoseHeaderError(missingKidError);
30
+ }
31
+ // Alg is required on the SHR header
32
+ if (!shrHeaderOptions.alg) {
33
+ throw createJoseHeaderError(missingAlgError);
34
+ }
35
+ const shrHeader = new JoseHeader({
36
+ // Access Token PoP headers must have type pop, but the type header can be overriden for special cases
37
+ typ: shrHeaderOptions.typ || JsonWebTokenTypes.Pop,
38
+ kid: shrHeaderOptions.kid,
39
+ alg: shrHeaderOptions.alg,
40
+ });
41
+ return JSON.stringify(shrHeader);
42
+ }
43
43
  }
44
44
 
45
45
  export { JoseHeader };
@@ -1 +1 @@
1
- {"version":3,"file":"JoseHeader.mjs","sources":["../../src/crypto/JoseHeader.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AASA;AAEA;;;AAMA;AACA,MAAA,UAAuB,CAAA;IACZ,WAAM,CAAA,OAAU,EAAA;QACZ,IAAE,CAAA,GAAM,GAAC,OAAA,CAAA,GAAA,CAAA;QACT,IAAE,CAAA,GAAM,GAAC,OAAA,CAAA,GAAA,CAAA;AAER,QAAA,IAAA,CAAA,GAAA,GAAA,OAA0B,CAAA,GAAA,CAAA;AAMtC,KAAA;;;;;;;AAOG;AACH;AAoBH,IAAA,OAAA,kBAAA,CAAA,gBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"JoseHeader.mjs","sources":["../../src/crypto/JoseHeader.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AASA;AAEA;;;AAMA;AACA,MAAA,UAAuB,CAAA;IACZ,WAAM,CAAA,OAAA,EAAA;QACF,IAAE,CAAA,GAAM,GAAC,OAAA,CAAA,GAAA,CAAA;QACT,IAAE,CAAA,GAAM,GAAC,OAAA,CAAA,GAAA,CAAA;AAER,QAAA,IAAA,CAAA,GAAA,GAAA,OAA0B,CAAA,GAAA,CAAA;AAMtC,KAAA;;;;;;;AAOG;AACH;AAoBH,IAAA,OAAA,kBAAA,CAAA,gBAAA,EAAA;;;;;;;;;;;;;;;;;;;;;"}