@azure/msal-common 14.0.0-alpha.1 → 14.0.0-alpha.2

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 (167) 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 +8 -8
  7. package/dist/account/CcsCredential.js +9 -9
  8. package/dist/account/ClientCredentials.d.ts +14 -14
  9. package/dist/account/ClientInfo.d.ts +19 -19
  10. package/dist/account/ClientInfo.js +37 -37
  11. package/dist/account/DecodedAuthToken.d.ts +8 -8
  12. package/dist/account/TokenClaims.d.ts +65 -65
  13. package/dist/authority/Authority.d.ts +228 -215
  14. package/dist/authority/Authority.d.ts.map +1 -1
  15. package/dist/authority/Authority.js +716 -682
  16. package/dist/authority/Authority.js.map +1 -1
  17. package/dist/authority/AuthorityFactory.d.ts +30 -30
  18. package/dist/authority/AuthorityFactory.js +47 -47
  19. package/dist/authority/AuthorityMetadata.d.ts +622 -622
  20. package/dist/authority/AuthorityMetadata.js +876 -876
  21. package/dist/authority/AuthorityOptions.d.ts +18 -18
  22. package/dist/authority/AuthorityOptions.js +19 -19
  23. package/dist/authority/AuthorityType.d.ts +9 -9
  24. package/dist/authority/AuthorityType.js +14 -14
  25. package/dist/authority/AzureRegion.d.ts +1 -1
  26. package/dist/authority/AzureRegionConfiguration.d.ts +5 -5
  27. package/dist/authority/CloudDiscoveryMetadata.d.ts +5 -5
  28. package/dist/authority/CloudInstanceDiscoveryErrorResponse.d.ts +13 -13
  29. package/dist/authority/CloudInstanceDiscoveryErrorResponse.js +8 -8
  30. package/dist/authority/CloudInstanceDiscoveryResponse.d.ts +9 -9
  31. package/dist/authority/CloudInstanceDiscoveryResponse.js +8 -8
  32. package/dist/authority/ImdsOptions.d.ts +5 -5
  33. package/dist/authority/OpenIdConfigResponse.d.ts +11 -11
  34. package/dist/authority/OpenIdConfigResponse.js +10 -10
  35. package/dist/authority/ProtocolMode.d.ts +7 -7
  36. package/dist/authority/ProtocolMode.js +12 -12
  37. package/dist/authority/RegionDiscovery.d.ts +30 -30
  38. package/dist/authority/RegionDiscovery.js +108 -108
  39. package/dist/authority/RegionDiscoveryMetadata.d.ts +6 -6
  40. package/dist/broker/nativeBroker/INativeBrokerPlugin.d.ts +15 -15
  41. package/dist/cache/CacheManager.d.ts +443 -443
  42. package/dist/cache/CacheManager.js +1011 -1011
  43. package/dist/cache/entities/AccessTokenEntity.d.ts +56 -56
  44. package/dist/cache/entities/AccessTokenEntity.js +111 -111
  45. package/dist/cache/entities/AccountEntity.d.ts +99 -99
  46. package/dist/cache/entities/AccountEntity.js +248 -248
  47. package/dist/cache/entities/AppMetadataEntity.d.ts +39 -39
  48. package/dist/cache/entities/AppMetadataEntity.js +66 -66
  49. package/dist/cache/entities/AuthorityMetadataEntity.d.ts +47 -47
  50. package/dist/cache/entities/AuthorityMetadataEntity.js +77 -77
  51. package/dist/cache/entities/CacheRecord.d.ts +13 -13
  52. package/dist/cache/entities/CacheRecord.js +13 -13
  53. package/dist/cache/entities/CredentialEntity.d.ts +88 -88
  54. package/dist/cache/entities/CredentialEntity.js +136 -136
  55. package/dist/cache/entities/IdTokenEntity.d.ts +34 -34
  56. package/dist/cache/entities/IdTokenEntity.js +56 -56
  57. package/dist/cache/entities/RefreshTokenEntity.d.ts +36 -36
  58. package/dist/cache/entities/RefreshTokenEntity.js +59 -59
  59. package/dist/cache/entities/ServerTelemetryEntity.d.ts +12 -12
  60. package/dist/cache/entities/ServerTelemetryEntity.js +27 -27
  61. package/dist/cache/entities/ThrottlingEntity.d.ts +13 -13
  62. package/dist/cache/entities/ThrottlingEntity.js +23 -23
  63. package/dist/cache/interface/ICacheManager.d.ts +165 -165
  64. package/dist/cache/interface/ICachePlugin.d.ts +5 -5
  65. package/dist/cache/interface/ISerializableTokenCache.d.ts +4 -4
  66. package/dist/cache/persistence/TokenCacheContext.d.ts +23 -23
  67. package/dist/cache/persistence/TokenCacheContext.js +25 -25
  68. package/dist/cache/utils/CacheTypes.d.ts +62 -62
  69. package/dist/client/AuthorizationCodeClient.d.ts +71 -71
  70. package/dist/client/AuthorizationCodeClient.js +433 -433
  71. package/dist/client/BaseClient.d.ts +50 -50
  72. package/dist/client/BaseClient.js +92 -92
  73. package/dist/client/RefreshTokenClient.d.ts +34 -34
  74. package/dist/client/RefreshTokenClient.js +239 -239
  75. package/dist/client/SilentFlowClient.d.ts +24 -24
  76. package/dist/client/SilentFlowClient.js +94 -94
  77. package/dist/config/AppTokenProvider.d.ts +38 -38
  78. package/dist/config/ClientConfiguration.d.ts +133 -133
  79. package/dist/config/ClientConfiguration.js +88 -88
  80. package/dist/crypto/ICrypto.d.ts +62 -62
  81. package/dist/crypto/ICrypto.js +42 -42
  82. package/dist/crypto/IGuidGenerator.d.ts +4 -4
  83. package/dist/crypto/JoseHeader.d.ts +21 -21
  84. package/dist/crypto/JoseHeader.js +36 -36
  85. package/dist/crypto/PopTokenGenerator.d.ts +57 -57
  86. package/dist/crypto/PopTokenGenerator.js +83 -83
  87. package/dist/crypto/SignedHttpRequest.d.ts +11 -11
  88. package/dist/error/AuthError.d.ts +47 -47
  89. package/dist/error/AuthError.js +51 -51
  90. package/dist/error/ClientAuthError.d.ts +412 -412
  91. package/dist/error/ClientAuthError.js +519 -519
  92. package/dist/error/ClientConfigurationError.d.ts +198 -198
  93. package/dist/error/ClientConfigurationError.js +249 -249
  94. package/dist/error/InteractionRequiredAuthError.d.ts +59 -59
  95. package/dist/error/InteractionRequiredAuthError.js +78 -78
  96. package/dist/error/JoseHeaderError.d.ts +28 -28
  97. package/dist/error/JoseHeaderError.js +39 -39
  98. package/dist/error/ServerError.d.ts +7 -7
  99. package/dist/error/ServerError.js +14 -14
  100. package/dist/index.cjs.js +8843 -8809
  101. package/dist/index.cjs.js.map +1 -1
  102. package/dist/index.d.ts +93 -93
  103. package/dist/index.js +1 -1
  104. package/dist/logger/Logger.d.ts +95 -95
  105. package/dist/logger/Logger.js +197 -197
  106. package/dist/network/INetworkModule.d.ts +29 -29
  107. package/dist/network/INetworkModule.js +14 -14
  108. package/dist/network/NetworkManager.d.ts +32 -32
  109. package/dist/network/NetworkManager.js +33 -33
  110. package/dist/network/RequestThumbprint.d.ts +16 -16
  111. package/dist/network/ThrottlingUtils.d.ts +41 -41
  112. package/dist/network/ThrottlingUtils.js +94 -94
  113. package/dist/packageMetadata.d.ts +2 -2
  114. package/dist/packageMetadata.js +4 -4
  115. package/dist/request/AuthenticationHeaderParser.d.ts +19 -19
  116. package/dist/request/AuthenticationHeaderParser.js +55 -55
  117. package/dist/request/BaseAuthRequest.d.ts +37 -37
  118. package/dist/request/CommonAuthorizationCodeRequest.d.ts +27 -27
  119. package/dist/request/CommonAuthorizationUrlRequest.d.ts +50 -50
  120. package/dist/request/CommonClientCredentialRequest.d.ts +17 -17
  121. package/dist/request/CommonDeviceCodeRequest.d.ts +21 -21
  122. package/dist/request/CommonEndSessionRequest.d.ts +21 -21
  123. package/dist/request/CommonOnBehalfOfRequest.d.ts +13 -13
  124. package/dist/request/CommonRefreshTokenRequest.d.ts +19 -19
  125. package/dist/request/CommonSilentFlowRequest.d.ts +18 -18
  126. package/dist/request/CommonUsernamePasswordRequest.d.ts +17 -17
  127. package/dist/request/NativeRequest.d.ts +19 -19
  128. package/dist/request/NativeSignOutRequest.d.ts +5 -5
  129. package/dist/request/RequestParameterBuilder.d.ts +216 -216
  130. package/dist/request/RequestParameterBuilder.js +374 -374
  131. package/dist/request/RequestValidator.d.ts +33 -33
  132. package/dist/request/RequestValidator.js +83 -83
  133. package/dist/request/ScopeSet.d.ts +88 -88
  134. package/dist/request/ScopeSet.js +197 -197
  135. package/dist/response/AuthenticationResult.d.ts +39 -39
  136. package/dist/response/AuthorizationCodePayload.d.ts +13 -13
  137. package/dist/response/DeviceCodeResponse.d.ts +25 -25
  138. package/dist/response/ExternalTokenResponse.d.ts +15 -15
  139. package/dist/response/IMDSBadResponse.d.ts +4 -4
  140. package/dist/response/ResponseHandler.d.ts +72 -72
  141. package/dist/response/ResponseHandler.js +300 -300
  142. package/dist/response/ServerAuthorizationCodeResponse.d.ts +25 -25
  143. package/dist/response/ServerAuthorizationTokenResponse.d.ts +44 -44
  144. package/dist/telemetry/performance/IPerformanceClient.d.ts +42 -42
  145. package/dist/telemetry/performance/IPerformanceMeasurement.d.ts +5 -5
  146. package/dist/telemetry/performance/PerformanceClient.d.ts +189 -189
  147. package/dist/telemetry/performance/PerformanceClient.js +406 -406
  148. package/dist/telemetry/performance/PerformanceEvent.d.ts +439 -439
  149. package/dist/telemetry/performance/PerformanceEvent.js +227 -227
  150. package/dist/telemetry/performance/StubPerformanceClient.d.ts +19 -19
  151. package/dist/telemetry/performance/StubPerformanceClient.js +36 -36
  152. package/dist/telemetry/server/ServerTelemetryManager.d.ts +65 -65
  153. package/dist/telemetry/server/ServerTelemetryManager.js +196 -196
  154. package/dist/telemetry/server/ServerTelemetryRequest.d.ts +8 -8
  155. package/dist/url/IUri.d.ts +12 -12
  156. package/dist/url/UrlString.d.ts +70 -70
  157. package/dist/url/UrlString.js +242 -242
  158. package/dist/utils/Constants.d.ts +331 -331
  159. package/dist/utils/Constants.js +373 -373
  160. package/dist/utils/MsalTypes.d.ts +6 -6
  161. package/dist/utils/ProtocolUtils.d.ts +42 -42
  162. package/dist/utils/ProtocolUtils.js +71 -71
  163. package/dist/utils/StringUtils.d.ts +53 -53
  164. package/dist/utils/StringUtils.js +124 -124
  165. package/dist/utils/TimeUtils.d.ts +27 -27
  166. package/dist/utils/TimeUtils.js +45 -45
  167. package/package.json +79 -79
@@ -1,4 +1,4 @@
1
- /*! @azure/msal-common v14.0.0-alpha.1 2023-05-08 */
1
+ /*! @azure/msal-common v14.0.0-alpha.2 2023-05-17 */
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-alpha.2 2023-05-17 */
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-alpha.2 2023-05-17 */
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,58 @@
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 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 {};
58
58
  //# sourceMappingURL=PopTokenGenerator.d.ts.map