@azure/msal-common 14.0.0-alpha.1 → 14.0.0-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 (187) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +62 -62
  3. package/dist/account/AccountInfo.d.ts +31 -31
  4. package/dist/account/AuthToken.d.ts +20 -20
  5. package/dist/account/AuthToken.js +48 -48
  6. package/dist/account/CcsCredential.d.ts +9 -8
  7. package/dist/account/CcsCredential.d.ts.map +1 -1
  8. package/dist/account/CcsCredential.js +9 -10
  9. package/dist/account/CcsCredential.js.map +1 -1
  10. package/dist/account/ClientCredentials.d.ts +14 -14
  11. package/dist/account/ClientInfo.d.ts +19 -19
  12. package/dist/account/ClientInfo.js +37 -37
  13. package/dist/account/DecodedAuthToken.d.ts +8 -8
  14. package/dist/account/TokenClaims.d.ts +65 -65
  15. package/dist/authority/Authority.d.ts +228 -215
  16. package/dist/authority/Authority.d.ts.map +1 -1
  17. package/dist/authority/Authority.js +716 -682
  18. package/dist/authority/Authority.js.map +1 -1
  19. package/dist/authority/AuthorityFactory.d.ts +30 -30
  20. package/dist/authority/AuthorityFactory.js +47 -47
  21. package/dist/authority/AuthorityMetadata.d.ts +622 -622
  22. package/dist/authority/AuthorityMetadata.js +876 -876
  23. package/dist/authority/AuthorityOptions.d.ts +19 -18
  24. package/dist/authority/AuthorityOptions.d.ts.map +1 -1
  25. package/dist/authority/AuthorityOptions.js +19 -20
  26. package/dist/authority/AuthorityOptions.js.map +1 -1
  27. package/dist/authority/AuthorityType.d.ts +10 -9
  28. package/dist/authority/AuthorityType.d.ts.map +1 -1
  29. package/dist/authority/AuthorityType.js +14 -15
  30. package/dist/authority/AuthorityType.js.map +1 -1
  31. package/dist/authority/AzureRegion.d.ts +1 -1
  32. package/dist/authority/AzureRegionConfiguration.d.ts +5 -5
  33. package/dist/authority/CloudDiscoveryMetadata.d.ts +5 -5
  34. package/dist/authority/CloudInstanceDiscoveryErrorResponse.d.ts +13 -13
  35. package/dist/authority/CloudInstanceDiscoveryErrorResponse.js +8 -8
  36. package/dist/authority/CloudInstanceDiscoveryResponse.d.ts +9 -9
  37. package/dist/authority/CloudInstanceDiscoveryResponse.js +8 -8
  38. package/dist/authority/ImdsOptions.d.ts +5 -5
  39. package/dist/authority/OpenIdConfigResponse.d.ts +11 -11
  40. package/dist/authority/OpenIdConfigResponse.js +10 -10
  41. package/dist/authority/ProtocolMode.d.ts +8 -7
  42. package/dist/authority/ProtocolMode.d.ts.map +1 -1
  43. package/dist/authority/ProtocolMode.js +12 -13
  44. package/dist/authority/ProtocolMode.js.map +1 -1
  45. package/dist/authority/RegionDiscovery.d.ts +30 -30
  46. package/dist/authority/RegionDiscovery.js +108 -108
  47. package/dist/authority/RegionDiscoveryMetadata.d.ts +6 -6
  48. package/dist/broker/nativeBroker/INativeBrokerPlugin.d.ts +15 -15
  49. package/dist/cache/CacheManager.d.ts +443 -443
  50. package/dist/cache/CacheManager.js +1011 -1011
  51. package/dist/cache/entities/AccessTokenEntity.d.ts +56 -56
  52. package/dist/cache/entities/AccessTokenEntity.js +111 -111
  53. package/dist/cache/entities/AccountEntity.d.ts +99 -99
  54. package/dist/cache/entities/AccountEntity.js +248 -248
  55. package/dist/cache/entities/AppMetadataEntity.d.ts +39 -39
  56. package/dist/cache/entities/AppMetadataEntity.js +66 -66
  57. package/dist/cache/entities/AuthorityMetadataEntity.d.ts +47 -47
  58. package/dist/cache/entities/AuthorityMetadataEntity.js +77 -77
  59. package/dist/cache/entities/CacheRecord.d.ts +13 -13
  60. package/dist/cache/entities/CacheRecord.js +13 -13
  61. package/dist/cache/entities/CredentialEntity.d.ts +88 -88
  62. package/dist/cache/entities/CredentialEntity.js +136 -136
  63. package/dist/cache/entities/IdTokenEntity.d.ts +34 -34
  64. package/dist/cache/entities/IdTokenEntity.js +56 -56
  65. package/dist/cache/entities/RefreshTokenEntity.d.ts +36 -36
  66. package/dist/cache/entities/RefreshTokenEntity.js +59 -59
  67. package/dist/cache/entities/ServerTelemetryEntity.d.ts +12 -12
  68. package/dist/cache/entities/ServerTelemetryEntity.js +27 -27
  69. package/dist/cache/entities/ThrottlingEntity.d.ts +13 -13
  70. package/dist/cache/entities/ThrottlingEntity.js +23 -23
  71. package/dist/cache/interface/ICacheManager.d.ts +165 -165
  72. package/dist/cache/interface/ICachePlugin.d.ts +5 -5
  73. package/dist/cache/interface/ISerializableTokenCache.d.ts +4 -4
  74. package/dist/cache/persistence/TokenCacheContext.d.ts +23 -23
  75. package/dist/cache/persistence/TokenCacheContext.js +25 -25
  76. package/dist/cache/utils/CacheTypes.d.ts +62 -62
  77. package/dist/client/AuthorizationCodeClient.d.ts +71 -71
  78. package/dist/client/AuthorizationCodeClient.js +433 -433
  79. package/dist/client/BaseClient.d.ts +50 -50
  80. package/dist/client/BaseClient.js +92 -92
  81. package/dist/client/RefreshTokenClient.d.ts +34 -34
  82. package/dist/client/RefreshTokenClient.js +239 -239
  83. package/dist/client/SilentFlowClient.d.ts +24 -24
  84. package/dist/client/SilentFlowClient.js +94 -94
  85. package/dist/config/AppTokenProvider.d.ts +38 -38
  86. package/dist/config/ClientConfiguration.d.ts +133 -133
  87. package/dist/config/ClientConfiguration.js +88 -88
  88. package/dist/crypto/ICrypto.d.ts +62 -62
  89. package/dist/crypto/ICrypto.js +42 -42
  90. package/dist/crypto/IGuidGenerator.d.ts +4 -4
  91. package/dist/crypto/JoseHeader.d.ts +21 -21
  92. package/dist/crypto/JoseHeader.js +36 -36
  93. package/dist/crypto/PopTokenGenerator.d.ts +58 -57
  94. package/dist/crypto/PopTokenGenerator.d.ts.map +1 -1
  95. package/dist/crypto/PopTokenGenerator.js +82 -83
  96. package/dist/crypto/PopTokenGenerator.js.map +1 -1
  97. package/dist/crypto/SignedHttpRequest.d.ts +11 -11
  98. package/dist/error/AuthError.d.ts +47 -47
  99. package/dist/error/AuthError.js +51 -51
  100. package/dist/error/ClientAuthError.d.ts +412 -412
  101. package/dist/error/ClientAuthError.js +519 -519
  102. package/dist/error/ClientConfigurationError.d.ts +206 -198
  103. package/dist/error/ClientConfigurationError.d.ts.map +1 -1
  104. package/dist/error/ClientConfigurationError.js +259 -249
  105. package/dist/error/ClientConfigurationError.js.map +1 -1
  106. package/dist/error/InteractionRequiredAuthError.d.ts +59 -59
  107. package/dist/error/InteractionRequiredAuthError.js +78 -78
  108. package/dist/error/JoseHeaderError.d.ts +28 -28
  109. package/dist/error/JoseHeaderError.js +39 -39
  110. package/dist/error/ServerError.d.ts +7 -7
  111. package/dist/error/ServerError.js +14 -14
  112. package/dist/index.cjs.js +8826 -8813
  113. package/dist/index.cjs.js.map +1 -1
  114. package/dist/index.d.ts +93 -93
  115. package/dist/index.js +1 -1
  116. package/dist/logger/Logger.d.ts +95 -95
  117. package/dist/logger/Logger.js +197 -197
  118. package/dist/network/INetworkModule.d.ts +29 -29
  119. package/dist/network/INetworkModule.js +14 -14
  120. package/dist/network/NetworkManager.d.ts +32 -32
  121. package/dist/network/NetworkManager.js +33 -33
  122. package/dist/network/RequestThumbprint.d.ts +16 -16
  123. package/dist/network/ThrottlingUtils.d.ts +41 -41
  124. package/dist/network/ThrottlingUtils.js +94 -94
  125. package/dist/packageMetadata.d.ts +2 -2
  126. package/dist/packageMetadata.d.ts.map +1 -1
  127. package/dist/packageMetadata.js +4 -4
  128. package/dist/request/AuthenticationHeaderParser.d.ts +19 -19
  129. package/dist/request/AuthenticationHeaderParser.js +55 -55
  130. package/dist/request/BaseAuthRequest.d.ts +37 -37
  131. package/dist/request/CommonAuthorizationCodeRequest.d.ts +27 -27
  132. package/dist/request/CommonAuthorizationUrlRequest.d.ts +50 -50
  133. package/dist/request/CommonClientCredentialRequest.d.ts +17 -17
  134. package/dist/request/CommonDeviceCodeRequest.d.ts +21 -21
  135. package/dist/request/CommonEndSessionRequest.d.ts +21 -21
  136. package/dist/request/CommonOnBehalfOfRequest.d.ts +13 -13
  137. package/dist/request/CommonRefreshTokenRequest.d.ts +19 -19
  138. package/dist/request/CommonSilentFlowRequest.d.ts +18 -18
  139. package/dist/request/CommonUsernamePasswordRequest.d.ts +17 -17
  140. package/dist/request/NativeRequest.d.ts +19 -19
  141. package/dist/request/NativeSignOutRequest.d.ts +5 -5
  142. package/dist/request/RequestParameterBuilder.d.ts +216 -216
  143. package/dist/request/RequestParameterBuilder.js +374 -374
  144. package/dist/request/RequestValidator.d.ts +33 -33
  145. package/dist/request/RequestValidator.js +82 -83
  146. package/dist/request/RequestValidator.js.map +1 -1
  147. package/dist/request/ScopeSet.d.ts +88 -88
  148. package/dist/request/ScopeSet.js +197 -197
  149. package/dist/response/AuthenticationResult.d.ts +39 -39
  150. package/dist/response/AuthorizationCodePayload.d.ts +13 -13
  151. package/dist/response/DeviceCodeResponse.d.ts +25 -25
  152. package/dist/response/ExternalTokenResponse.d.ts +15 -15
  153. package/dist/response/IMDSBadResponse.d.ts +4 -4
  154. package/dist/response/ResponseHandler.d.ts +72 -72
  155. package/dist/response/ResponseHandler.js +300 -300
  156. package/dist/response/ServerAuthorizationCodeResponse.d.ts +25 -25
  157. package/dist/response/ServerAuthorizationTokenResponse.d.ts +44 -44
  158. package/dist/telemetry/performance/IPerformanceClient.d.ts +42 -42
  159. package/dist/telemetry/performance/IPerformanceMeasurement.d.ts +5 -5
  160. package/dist/telemetry/performance/PerformanceClient.d.ts +189 -189
  161. package/dist/telemetry/performance/PerformanceClient.js +406 -406
  162. package/dist/telemetry/performance/PerformanceEvent.d.ts +441 -439
  163. package/dist/telemetry/performance/PerformanceEvent.d.ts.map +1 -1
  164. package/dist/telemetry/performance/PerformanceEvent.js +225 -227
  165. package/dist/telemetry/performance/PerformanceEvent.js.map +1 -1
  166. package/dist/telemetry/performance/StubPerformanceClient.d.ts +15 -19
  167. package/dist/telemetry/performance/StubPerformanceClient.d.ts.map +1 -1
  168. package/dist/telemetry/performance/StubPerformanceClient.js +22 -36
  169. package/dist/telemetry/performance/StubPerformanceClient.js.map +1 -1
  170. package/dist/telemetry/server/ServerTelemetryManager.d.ts +65 -65
  171. package/dist/telemetry/server/ServerTelemetryManager.js +196 -196
  172. package/dist/telemetry/server/ServerTelemetryRequest.d.ts +8 -8
  173. package/dist/url/IUri.d.ts +12 -12
  174. package/dist/url/UrlString.d.ts +70 -70
  175. package/dist/url/UrlString.js +242 -242
  176. package/dist/utils/Constants.d.ts +345 -331
  177. package/dist/utils/Constants.d.ts.map +1 -1
  178. package/dist/utils/Constants.js +353 -373
  179. package/dist/utils/Constants.js.map +1 -1
  180. package/dist/utils/MsalTypes.d.ts +6 -6
  181. package/dist/utils/ProtocolUtils.d.ts +42 -42
  182. package/dist/utils/ProtocolUtils.js +71 -71
  183. package/dist/utils/StringUtils.d.ts +53 -53
  184. package/dist/utils/StringUtils.js +124 -124
  185. package/dist/utils/TimeUtils.d.ts +27 -27
  186. package/dist/utils/TimeUtils.js +45 -45
  187. package/package.json +86 -79
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-common v14.0.0-alpha.1 2023-05-08 */
1
+ /*! @azure/msal-common v14.0.0-beta.0 2023-06-19 */
2
2
  'use strict';
3
3
  import { DEFAULT_CRYPTO_IMPLEMENTATION } from '../crypto/ICrypto.js';
4
4
  import { AuthError } from '../error/AuthError.js';
@@ -8,93 +8,93 @@ import { version } from '../packageMetadata.js';
8
8
  import { AzureCloudInstance } from '../authority/AuthorityOptions.js';
9
9
  import { DefaultStorageClass } from '../cache/CacheManager.js';
10
10
 
11
- /*
12
- * Copyright (c) Microsoft Corporation. All rights reserved.
13
- * Licensed under the MIT License.
14
- */
15
- // Token renewal offset default in seconds
16
- const DEFAULT_TOKEN_RENEWAL_OFFSET_SEC = 300;
17
- const DEFAULT_SYSTEM_OPTIONS = {
18
- tokenRenewalOffsetSeconds: DEFAULT_TOKEN_RENEWAL_OFFSET_SEC,
19
- preventCorsPreflight: false,
20
- };
21
- const DEFAULT_LOGGER_IMPLEMENTATION = {
22
- loggerCallback: () => {
23
- // allow users to not set loggerCallback
24
- },
25
- piiLoggingEnabled: false,
26
- logLevel: LogLevel.Info,
27
- correlationId: Constants.EMPTY_STRING,
28
- };
29
- const DEFAULT_NETWORK_IMPLEMENTATION = {
30
- async sendGetRequestAsync() {
31
- const notImplErr = "Network interface - sendGetRequestAsync() has not been implemented";
32
- throw AuthError.createUnexpectedError(notImplErr);
33
- },
34
- async sendPostRequestAsync() {
35
- const notImplErr = "Network interface - sendPostRequestAsync() has not been implemented";
36
- throw AuthError.createUnexpectedError(notImplErr);
37
- },
38
- };
39
- const DEFAULT_LIBRARY_INFO = {
40
- sku: Constants.SKU,
41
- version: version,
42
- cpu: Constants.EMPTY_STRING,
43
- os: Constants.EMPTY_STRING,
44
- };
45
- const DEFAULT_CLIENT_CREDENTIALS = {
46
- clientSecret: Constants.EMPTY_STRING,
47
- clientAssertion: undefined,
48
- };
49
- const DEFAULT_AZURE_CLOUD_OPTIONS = {
50
- azureCloudInstance: AzureCloudInstance.None,
51
- tenant: `${Constants.DEFAULT_COMMON_TENANT}`,
52
- };
53
- const DEFAULT_TELEMETRY_OPTIONS = {
54
- application: {
55
- appName: "",
56
- appVersion: "",
57
- },
58
- };
59
- /**
60
- * Function that sets the default options when not explicitly configured from app developer
61
- *
62
- * @param Configuration
63
- *
64
- * @returns Configuration
65
- */
66
- function buildClientConfiguration({ authOptions: userAuthOptions, systemOptions: userSystemOptions, loggerOptions: userLoggerOption, storageInterface: storageImplementation, networkInterface: networkImplementation, cryptoInterface: cryptoImplementation, clientCredentials: clientCredentials, libraryInfo: libraryInfo, telemetry: telemetry, serverTelemetryManager: serverTelemetryManager, persistencePlugin: persistencePlugin, serializableCache: serializableCache, }) {
67
- const loggerOptions = {
68
- ...DEFAULT_LOGGER_IMPLEMENTATION,
69
- ...userLoggerOption,
70
- };
71
- return {
72
- authOptions: buildAuthOptions(userAuthOptions),
73
- systemOptions: { ...DEFAULT_SYSTEM_OPTIONS, ...userSystemOptions },
74
- loggerOptions: loggerOptions,
75
- storageInterface: storageImplementation ||
76
- new DefaultStorageClass(userAuthOptions.clientId, DEFAULT_CRYPTO_IMPLEMENTATION, new Logger(loggerOptions)),
77
- networkInterface: networkImplementation || DEFAULT_NETWORK_IMPLEMENTATION,
78
- cryptoInterface: cryptoImplementation || DEFAULT_CRYPTO_IMPLEMENTATION,
79
- clientCredentials: clientCredentials || DEFAULT_CLIENT_CREDENTIALS,
80
- libraryInfo: { ...DEFAULT_LIBRARY_INFO, ...libraryInfo },
81
- telemetry: { ...DEFAULT_TELEMETRY_OPTIONS, ...telemetry },
82
- serverTelemetryManager: serverTelemetryManager || null,
83
- persistencePlugin: persistencePlugin || null,
84
- serializableCache: serializableCache || null,
85
- };
86
- }
87
- /**
88
- * Construct authoptions from the client and platform passed values
89
- * @param authOptions
90
- */
91
- function buildAuthOptions(authOptions) {
92
- return {
93
- clientCapabilities: [],
94
- azureCloudOptions: DEFAULT_AZURE_CLOUD_OPTIONS,
95
- skipAuthorityMetadataCache: false,
96
- ...authOptions,
97
- };
11
+ /*
12
+ * Copyright (c) Microsoft Corporation. All rights reserved.
13
+ * Licensed under the MIT License.
14
+ */
15
+ // Token renewal offset default in seconds
16
+ const DEFAULT_TOKEN_RENEWAL_OFFSET_SEC = 300;
17
+ const DEFAULT_SYSTEM_OPTIONS = {
18
+ tokenRenewalOffsetSeconds: DEFAULT_TOKEN_RENEWAL_OFFSET_SEC,
19
+ preventCorsPreflight: false,
20
+ };
21
+ const DEFAULT_LOGGER_IMPLEMENTATION = {
22
+ loggerCallback: () => {
23
+ // allow users to not set loggerCallback
24
+ },
25
+ piiLoggingEnabled: false,
26
+ logLevel: LogLevel.Info,
27
+ correlationId: Constants.EMPTY_STRING,
28
+ };
29
+ const DEFAULT_NETWORK_IMPLEMENTATION = {
30
+ async sendGetRequestAsync() {
31
+ const notImplErr = "Network interface - sendGetRequestAsync() has not been implemented";
32
+ throw AuthError.createUnexpectedError(notImplErr);
33
+ },
34
+ async sendPostRequestAsync() {
35
+ const notImplErr = "Network interface - sendPostRequestAsync() has not been implemented";
36
+ throw AuthError.createUnexpectedError(notImplErr);
37
+ },
38
+ };
39
+ const DEFAULT_LIBRARY_INFO = {
40
+ sku: Constants.SKU,
41
+ version: version,
42
+ cpu: Constants.EMPTY_STRING,
43
+ os: Constants.EMPTY_STRING,
44
+ };
45
+ const DEFAULT_CLIENT_CREDENTIALS = {
46
+ clientSecret: Constants.EMPTY_STRING,
47
+ clientAssertion: undefined,
48
+ };
49
+ const DEFAULT_AZURE_CLOUD_OPTIONS = {
50
+ azureCloudInstance: AzureCloudInstance.None,
51
+ tenant: `${Constants.DEFAULT_COMMON_TENANT}`,
52
+ };
53
+ const DEFAULT_TELEMETRY_OPTIONS = {
54
+ application: {
55
+ appName: "",
56
+ appVersion: "",
57
+ },
58
+ };
59
+ /**
60
+ * Function that sets the default options when not explicitly configured from app developer
61
+ *
62
+ * @param Configuration
63
+ *
64
+ * @returns Configuration
65
+ */
66
+ function buildClientConfiguration({ authOptions: userAuthOptions, systemOptions: userSystemOptions, loggerOptions: userLoggerOption, storageInterface: storageImplementation, networkInterface: networkImplementation, cryptoInterface: cryptoImplementation, clientCredentials: clientCredentials, libraryInfo: libraryInfo, telemetry: telemetry, serverTelemetryManager: serverTelemetryManager, persistencePlugin: persistencePlugin, serializableCache: serializableCache, }) {
67
+ const loggerOptions = {
68
+ ...DEFAULT_LOGGER_IMPLEMENTATION,
69
+ ...userLoggerOption,
70
+ };
71
+ return {
72
+ authOptions: buildAuthOptions(userAuthOptions),
73
+ systemOptions: { ...DEFAULT_SYSTEM_OPTIONS, ...userSystemOptions },
74
+ loggerOptions: loggerOptions,
75
+ storageInterface: storageImplementation ||
76
+ new DefaultStorageClass(userAuthOptions.clientId, DEFAULT_CRYPTO_IMPLEMENTATION, new Logger(loggerOptions)),
77
+ networkInterface: networkImplementation || DEFAULT_NETWORK_IMPLEMENTATION,
78
+ cryptoInterface: cryptoImplementation || DEFAULT_CRYPTO_IMPLEMENTATION,
79
+ clientCredentials: clientCredentials || DEFAULT_CLIENT_CREDENTIALS,
80
+ libraryInfo: { ...DEFAULT_LIBRARY_INFO, ...libraryInfo },
81
+ telemetry: { ...DEFAULT_TELEMETRY_OPTIONS, ...telemetry },
82
+ serverTelemetryManager: serverTelemetryManager || null,
83
+ persistencePlugin: persistencePlugin || null,
84
+ serializableCache: serializableCache || null,
85
+ };
86
+ }
87
+ /**
88
+ * Construct authoptions from the client and platform passed values
89
+ * @param authOptions
90
+ */
91
+ function buildAuthOptions(authOptions) {
92
+ return {
93
+ clientCapabilities: [],
94
+ azureCloudOptions: DEFAULT_AZURE_CLOUD_OPTIONS,
95
+ skipAuthorityMetadataCache: false,
96
+ ...authOptions,
97
+ };
98
98
  }
99
99
 
100
100
  export { DEFAULT_SYSTEM_OPTIONS, buildClientConfiguration };
@@ -1,63 +1,63 @@
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
- * Generate PKCE codes for OAuth. See RFC here: https://tools.ietf.org/html/rfc7636
35
- */
36
- generatePkceCodes(): Promise<PkceCodes>;
37
- /**
38
- * Generates an JWK RSA S256 Thumbprint
39
- * @param request
40
- */
41
- getPublicKeyThumbprint(request: SignedHttpRequestParameters): Promise<string>;
42
- /**
43
- * Removes cryptographic keypair from key store matching the keyId passed in
44
- * @param kid
45
- */
46
- removeTokenBindingKey(kid: string): Promise<boolean>;
47
- /**
48
- * Removes all cryptographic keys from IndexedDB storage
49
- */
50
- clearKeystore(): Promise<boolean>;
51
- /**
52
- * Returns a signed proof-of-possession token with a given acces token that contains a cnf claim with the required kid.
53
- * @param accessToken
54
- */
55
- signJwt(payload: SignedHttpRequest, kid: string, correlationId?: string): Promise<string>;
56
- /**
57
- * Returns the SHA-256 hash of an input string
58
- * @param plainText
59
- */
60
- hashString(plainText: string): Promise<string>;
61
- }
62
- export declare const DEFAULT_CRYPTO_IMPLEMENTATION: ICrypto;
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
+ * Generate PKCE codes for OAuth. See RFC here: https://tools.ietf.org/html/rfc7636
35
+ */
36
+ generatePkceCodes(): Promise<PkceCodes>;
37
+ /**
38
+ * Generates an JWK RSA S256 Thumbprint
39
+ * @param request
40
+ */
41
+ getPublicKeyThumbprint(request: SignedHttpRequestParameters): Promise<string>;
42
+ /**
43
+ * Removes cryptographic keypair from key store matching the keyId passed in
44
+ * @param kid
45
+ */
46
+ removeTokenBindingKey(kid: string): Promise<boolean>;
47
+ /**
48
+ * Removes all cryptographic keys from IndexedDB storage
49
+ */
50
+ clearKeystore(): Promise<boolean>;
51
+ /**
52
+ * Returns a signed proof-of-possession token with a given acces token that contains a cnf claim with the required kid.
53
+ * @param accessToken
54
+ */
55
+ signJwt(payload: SignedHttpRequest, kid: string, correlationId?: string): Promise<string>;
56
+ /**
57
+ * Returns the SHA-256 hash of an input string
58
+ * @param plainText
59
+ */
60
+ hashString(plainText: string): Promise<string>;
61
+ }
62
+ export declare const DEFAULT_CRYPTO_IMPLEMENTATION: ICrypto;
63
63
  //# sourceMappingURL=ICrypto.d.ts.map
@@ -1,48 +1,48 @@
1
- /*! @azure/msal-common v14.0.0-alpha.1 2023-05-08 */
1
+ /*! @azure/msal-common v14.0.0-beta.0 2023-06-19 */
2
2
  'use strict';
3
3
  import { AuthError } from '../error/AuthError.js';
4
4
 
5
- /*
6
- * Copyright (c) Microsoft Corporation. All rights reserved.
7
- * Licensed under the MIT License.
8
- */
9
- const DEFAULT_CRYPTO_IMPLEMENTATION = {
10
- createNewGuid: () => {
11
- const notImplErr = "Crypto interface - createNewGuid() has not been implemented";
12
- throw AuthError.createUnexpectedError(notImplErr);
13
- },
14
- base64Decode: () => {
15
- const notImplErr = "Crypto interface - base64Decode() has not been implemented";
16
- throw AuthError.createUnexpectedError(notImplErr);
17
- },
18
- base64Encode: () => {
19
- const notImplErr = "Crypto interface - base64Encode() has not been implemented";
20
- throw AuthError.createUnexpectedError(notImplErr);
21
- },
22
- async generatePkceCodes() {
23
- const notImplErr = "Crypto interface - generatePkceCodes() has not been implemented";
24
- throw AuthError.createUnexpectedError(notImplErr);
25
- },
26
- async getPublicKeyThumbprint() {
27
- const notImplErr = "Crypto interface - getPublicKeyThumbprint() has not been implemented";
28
- throw AuthError.createUnexpectedError(notImplErr);
29
- },
30
- async removeTokenBindingKey() {
31
- const notImplErr = "Crypto interface - removeTokenBindingKey() has not been implemented";
32
- throw AuthError.createUnexpectedError(notImplErr);
33
- },
34
- async clearKeystore() {
35
- const notImplErr = "Crypto interface - clearKeystore() has not been implemented";
36
- throw AuthError.createUnexpectedError(notImplErr);
37
- },
38
- async signJwt() {
39
- const notImplErr = "Crypto interface - signJwt() has not been implemented";
40
- throw AuthError.createUnexpectedError(notImplErr);
41
- },
42
- async hashString() {
43
- const notImplErr = "Crypto interface - hashString() has not been implemented";
44
- throw AuthError.createUnexpectedError(notImplErr);
45
- },
5
+ /*
6
+ * Copyright (c) Microsoft Corporation. All rights reserved.
7
+ * Licensed under the MIT License.
8
+ */
9
+ const DEFAULT_CRYPTO_IMPLEMENTATION = {
10
+ createNewGuid: () => {
11
+ const notImplErr = "Crypto interface - createNewGuid() has not been implemented";
12
+ throw AuthError.createUnexpectedError(notImplErr);
13
+ },
14
+ base64Decode: () => {
15
+ const notImplErr = "Crypto interface - base64Decode() has not been implemented";
16
+ throw AuthError.createUnexpectedError(notImplErr);
17
+ },
18
+ base64Encode: () => {
19
+ const notImplErr = "Crypto interface - base64Encode() has not been implemented";
20
+ throw AuthError.createUnexpectedError(notImplErr);
21
+ },
22
+ async generatePkceCodes() {
23
+ const notImplErr = "Crypto interface - generatePkceCodes() has not been implemented";
24
+ throw AuthError.createUnexpectedError(notImplErr);
25
+ },
26
+ async getPublicKeyThumbprint() {
27
+ const notImplErr = "Crypto interface - getPublicKeyThumbprint() has not been implemented";
28
+ throw AuthError.createUnexpectedError(notImplErr);
29
+ },
30
+ async removeTokenBindingKey() {
31
+ const notImplErr = "Crypto interface - removeTokenBindingKey() has not been implemented";
32
+ throw AuthError.createUnexpectedError(notImplErr);
33
+ },
34
+ async clearKeystore() {
35
+ const notImplErr = "Crypto interface - clearKeystore() has not been implemented";
36
+ throw AuthError.createUnexpectedError(notImplErr);
37
+ },
38
+ async signJwt() {
39
+ const notImplErr = "Crypto interface - signJwt() has not been implemented";
40
+ throw AuthError.createUnexpectedError(notImplErr);
41
+ },
42
+ async hashString() {
43
+ const notImplErr = "Crypto interface - hashString() has not been implemented";
44
+ throw AuthError.createUnexpectedError(notImplErr);
45
+ },
46
46
  };
47
47
 
48
48
  export { DEFAULT_CRYPTO_IMPLEMENTATION };
@@ -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,22 +1,22 @@
1
- import { JsonTypes } from "../utils/Constants";
2
- export type JoseHeaderOptions = {
3
- typ?: JsonTypes;
4
- alg?: string;
5
- kid?: string;
6
- };
7
- export declare class JoseHeader {
8
- typ?: JsonTypes;
9
- alg?: string;
10
- kid?: string;
11
- constructor(options: JoseHeaderOptions);
12
- /**
13
- * Builds SignedHttpRequest formatted JOSE Header from the
14
- * JOSE Header options provided or previously set on the object and returns
15
- * the stringified header object.
16
- * Throws if keyId or algorithm aren't provided since they are required for Access Token Binding.
17
- * @param shrHeaderOptions
18
- * @returns
19
- */
20
- static getShrHeaderString(shrHeaderOptions: JoseHeaderOptions): string;
21
- }
1
+ import { JsonTypes } from "../utils/Constants";
2
+ export type JoseHeaderOptions = {
3
+ typ?: JsonTypes;
4
+ alg?: string;
5
+ kid?: string;
6
+ };
7
+ export declare class JoseHeader {
8
+ typ?: JsonTypes;
9
+ alg?: string;
10
+ kid?: string;
11
+ constructor(options: JoseHeaderOptions);
12
+ /**
13
+ * Builds SignedHttpRequest formatted JOSE Header from the
14
+ * JOSE Header options provided or previously set on the object and returns
15
+ * the stringified header object.
16
+ * Throws if keyId or algorithm aren't provided since they are required for Access Token Binding.
17
+ * @param shrHeaderOptions
18
+ * @returns
19
+ */
20
+ static getShrHeaderString(shrHeaderOptions: JoseHeaderOptions): string;
21
+ }
22
22
  //# sourceMappingURL=JoseHeader.d.ts.map
@@ -1,43 +1,43 @@
1
- /*! @azure/msal-common v14.0.0-alpha.1 2023-05-08 */
1
+ /*! @azure/msal-common v14.0.0-beta.0 2023-06-19 */
2
2
  'use strict';
3
3
  import { JoseHeaderError } from '../error/JoseHeaderError.js';
4
4
  import { JsonTypes } from '../utils/Constants.js';
5
5
 
6
- /*
7
- * Copyright (c) Microsoft Corporation. All rights reserved.
8
- * Licensed under the MIT License.
9
- */
10
- class JoseHeader {
11
- constructor(options) {
12
- this.typ = options.typ;
13
- this.alg = options.alg;
14
- this.kid = options.kid;
15
- }
16
- /**
17
- * Builds SignedHttpRequest formatted JOSE Header from the
18
- * JOSE Header options provided or previously set on the object and returns
19
- * the stringified header object.
20
- * Throws if keyId or algorithm aren't provided since they are required for Access Token Binding.
21
- * @param shrHeaderOptions
22
- * @returns
23
- */
24
- static getShrHeaderString(shrHeaderOptions) {
25
- // KeyID is required on the SHR header
26
- if (!shrHeaderOptions.kid) {
27
- throw JoseHeaderError.createMissingKidError();
28
- }
29
- // Alg is required on the SHR header
30
- if (!shrHeaderOptions.alg) {
31
- throw JoseHeaderError.createMissingAlgError();
32
- }
33
- const shrHeader = new JoseHeader({
34
- // Access Token PoP headers must have type pop, but the type header can be overriden for special cases
35
- typ: shrHeaderOptions.typ || JsonTypes.Pop,
36
- kid: shrHeaderOptions.kid,
37
- alg: shrHeaderOptions.alg,
38
- });
39
- return JSON.stringify(shrHeader);
40
- }
6
+ /*
7
+ * Copyright (c) Microsoft Corporation. All rights reserved.
8
+ * Licensed under the MIT License.
9
+ */
10
+ class JoseHeader {
11
+ constructor(options) {
12
+ this.typ = options.typ;
13
+ this.alg = options.alg;
14
+ this.kid = options.kid;
15
+ }
16
+ /**
17
+ * Builds SignedHttpRequest formatted JOSE Header from the
18
+ * JOSE Header options provided or previously set on the object and returns
19
+ * the stringified header object.
20
+ * Throws if keyId or algorithm aren't provided since they are required for Access Token Binding.
21
+ * @param shrHeaderOptions
22
+ * @returns
23
+ */
24
+ static getShrHeaderString(shrHeaderOptions) {
25
+ // KeyID is required on the SHR header
26
+ if (!shrHeaderOptions.kid) {
27
+ throw JoseHeaderError.createMissingKidError();
28
+ }
29
+ // Alg is required on the SHR header
30
+ if (!shrHeaderOptions.alg) {
31
+ throw JoseHeaderError.createMissingAlgError();
32
+ }
33
+ const shrHeader = new JoseHeader({
34
+ // Access Token PoP headers must have type pop, but the type header can be overriden for special cases
35
+ typ: shrHeaderOptions.typ || JsonTypes.Pop,
36
+ kid: shrHeaderOptions.kid,
37
+ alg: shrHeaderOptions.alg,
38
+ });
39
+ return JSON.stringify(shrHeader);
40
+ }
41
41
  }
42
42
 
43
43
  export { JoseHeader };
@@ -1,58 +1,59 @@
1
- import { ICrypto, SignedHttpRequestParameters } from "./ICrypto";
2
- import { IPerformanceClient } from "../telemetry/performance/IPerformanceClient";
3
- /**
4
- * See eSTS docs for more info.
5
- * - A kid element, with the value containing an RFC 7638-compliant JWK thumbprint that is base64 encoded.
6
- * - xms_ksl element, representing the storage location of the key's secret component on the client device. One of two values:
7
- * - sw: software storage
8
- * - uhw: hardware storage
9
- */
10
- type ReqCnf = {
11
- kid: string;
12
- xms_ksl: KeyLocation;
13
- };
14
- export type ReqCnfData = {
15
- kid: string;
16
- reqCnfString: string;
17
- reqCnfHash: string;
18
- };
19
- declare enum KeyLocation {
20
- SW = "sw",
21
- UHW = "uhw"
22
- }
23
- export declare class PopTokenGenerator {
24
- private cryptoUtils;
25
- private performanceClient?;
26
- constructor(cryptoUtils: ICrypto, performanceClient?: IPerformanceClient);
27
- /**
28
- * Generates the req_cnf validated at the RP in the POP protocol for SHR parameters
29
- * and returns an object containing the keyid, the full req_cnf string and the req_cnf string hash
30
- * @param request
31
- * @returns
32
- */
33
- generateCnf(request: SignedHttpRequestParameters): Promise<ReqCnfData>;
34
- /**
35
- * Generates key_id for a SHR token request
36
- * @param request
37
- * @returns
38
- */
39
- generateKid(request: SignedHttpRequestParameters): Promise<ReqCnf>;
40
- /**
41
- * Signs the POP access_token with the local generated key-pair
42
- * @param accessToken
43
- * @param request
44
- * @returns
45
- */
46
- signPopToken(accessToken: string, keyId: string, request: SignedHttpRequestParameters): Promise<string>;
47
- /**
48
- * Utility function to generate the signed JWT for an access_token
49
- * @param payload
50
- * @param kid
51
- * @param request
52
- * @param claims
53
- * @returns
54
- */
55
- signPayload(payload: string, keyId: string, request: SignedHttpRequestParameters, claims?: object): Promise<string>;
56
- }
57
- export {};
1
+ import { ICrypto, SignedHttpRequestParameters } from "./ICrypto";
2
+ import { IPerformanceClient } from "../telemetry/performance/IPerformanceClient";
3
+ /**
4
+ * See eSTS docs for more info.
5
+ * - A kid element, with the value containing an RFC 7638-compliant JWK thumbprint that is base64 encoded.
6
+ * - xms_ksl element, representing the storage location of the key's secret component on the client device. One of two values:
7
+ * - sw: software storage
8
+ * - uhw: hardware storage
9
+ */
10
+ type ReqCnf = {
11
+ kid: string;
12
+ xms_ksl: KeyLocation;
13
+ };
14
+ export type ReqCnfData = {
15
+ kid: string;
16
+ reqCnfString: string;
17
+ reqCnfHash: string;
18
+ };
19
+ declare const KeyLocation: {
20
+ readonly SW: "sw";
21
+ readonly UHW: "uhw";
22
+ };
23
+ export type KeyLocation = typeof KeyLocation[keyof typeof KeyLocation];
24
+ export declare class PopTokenGenerator {
25
+ private cryptoUtils;
26
+ private performanceClient?;
27
+ constructor(cryptoUtils: ICrypto, performanceClient?: IPerformanceClient);
28
+ /**
29
+ * Generates the req_cnf validated at the RP in the POP protocol for SHR parameters
30
+ * and returns an object containing the keyid, the full req_cnf string and the req_cnf string hash
31
+ * @param request
32
+ * @returns
33
+ */
34
+ generateCnf(request: SignedHttpRequestParameters): Promise<ReqCnfData>;
35
+ /**
36
+ * Generates key_id for a SHR token request
37
+ * @param request
38
+ * @returns
39
+ */
40
+ generateKid(request: SignedHttpRequestParameters): Promise<ReqCnf>;
41
+ /**
42
+ * Signs the POP access_token with the local generated key-pair
43
+ * @param accessToken
44
+ * @param request
45
+ * @returns
46
+ */
47
+ signPopToken(accessToken: string, keyId: string, request: SignedHttpRequestParameters): Promise<string>;
48
+ /**
49
+ * Utility function to generate the signed JWT for an access_token
50
+ * @param payload
51
+ * @param kid
52
+ * @param request
53
+ * @param claims
54
+ * @returns
55
+ */
56
+ signPayload(payload: string, keyId: string, request: SignedHttpRequestParameters, claims?: object): Promise<string>;
57
+ }
58
+ export {};
58
59
  //# sourceMappingURL=PopTokenGenerator.d.ts.map