@azure/msal-common 4.5.0 → 4.5.1

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 (116) hide show
  1. package/CHANGELOG.json +15 -0
  2. package/LICENSE +21 -21
  3. package/README.md +61 -61
  4. package/changelog.md +398 -390
  5. package/dist/_virtual/_tslib.js +1 -1
  6. package/dist/account/AuthToken.js +7 -7
  7. package/dist/account/AuthToken.js.map +1 -1
  8. package/dist/account/CcsCredential.js +1 -1
  9. package/dist/account/CcsCredential.js.map +1 -1
  10. package/dist/account/ClientInfo.js +10 -10
  11. package/dist/account/ClientInfo.js.map +1 -1
  12. package/dist/authority/Authority.js +53 -53
  13. package/dist/authority/Authority.js.map +1 -1
  14. package/dist/authority/AuthorityFactory.js +9 -9
  15. package/dist/authority/AuthorityFactory.js.map +1 -1
  16. package/dist/authority/AuthorityType.js +1 -1
  17. package/dist/authority/AuthorityType.js.map +1 -1
  18. package/dist/authority/CloudInstanceDiscoveryResponse.js +1 -1
  19. package/dist/authority/CloudInstanceDiscoveryResponse.js.map +1 -1
  20. package/dist/authority/OpenIdConfigResponse.js +1 -1
  21. package/dist/authority/OpenIdConfigResponse.js.map +1 -1
  22. package/dist/authority/ProtocolMode.js +1 -1
  23. package/dist/authority/ProtocolMode.js.map +1 -1
  24. package/dist/authority/RegionDiscovery.js +9 -9
  25. package/dist/authority/RegionDiscovery.js.map +1 -1
  26. package/dist/cache/CacheManager.js +47 -47
  27. package/dist/cache/CacheManager.js.map +1 -1
  28. package/dist/cache/entities/AccessTokenEntity.js +11 -11
  29. package/dist/cache/entities/AccessTokenEntity.js.map +1 -1
  30. package/dist/cache/entities/AccountEntity.js +14 -14
  31. package/dist/cache/entities/AccountEntity.js.map +1 -1
  32. package/dist/cache/entities/AppMetadataEntity.js +1 -1
  33. package/dist/cache/entities/AppMetadataEntity.js.map +1 -1
  34. package/dist/cache/entities/AuthorityMetadataEntity.js +5 -5
  35. package/dist/cache/entities/AuthorityMetadataEntity.js.map +1 -1
  36. package/dist/cache/entities/CacheRecord.js +1 -1
  37. package/dist/cache/entities/CacheRecord.js.map +1 -1
  38. package/dist/cache/entities/CredentialEntity.js +5 -5
  39. package/dist/cache/entities/CredentialEntity.js.map +1 -1
  40. package/dist/cache/entities/IdTokenEntity.js +3 -3
  41. package/dist/cache/entities/IdTokenEntity.js.map +1 -1
  42. package/dist/cache/entities/RefreshTokenEntity.js +3 -3
  43. package/dist/cache/entities/RefreshTokenEntity.js.map +1 -1
  44. package/dist/cache/entities/ServerTelemetryEntity.js +1 -1
  45. package/dist/cache/entities/ServerTelemetryEntity.js.map +1 -1
  46. package/dist/cache/entities/ThrottlingEntity.js +1 -1
  47. package/dist/cache/entities/ThrottlingEntity.js.map +1 -1
  48. package/dist/cache/persistence/TokenCacheContext.js +3 -3
  49. package/dist/cache/persistence/TokenCacheContext.js.map +1 -1
  50. package/dist/client/AuthorizationCodeClient.js +32 -32
  51. package/dist/client/AuthorizationCodeClient.js.map +1 -1
  52. package/dist/client/BaseClient.js +11 -11
  53. package/dist/client/BaseClient.js.map +1 -1
  54. package/dist/client/ClientCredentialClient.js +17 -17
  55. package/dist/client/ClientCredentialClient.js.map +1 -1
  56. package/dist/client/DeviceCodeClient.js +25 -25
  57. package/dist/client/DeviceCodeClient.js.map +1 -1
  58. package/dist/client/OnBehalfOfClient.js +19 -19
  59. package/dist/client/OnBehalfOfClient.js.map +1 -1
  60. package/dist/client/RefreshTokenClient.js +25 -25
  61. package/dist/client/RefreshTokenClient.js.map +1 -1
  62. package/dist/client/SilentFlowClient.js +27 -27
  63. package/dist/client/SilentFlowClient.js.map +1 -1
  64. package/dist/client/UsernamePasswordClient.js +11 -11
  65. package/dist/client/UsernamePasswordClient.js.map +1 -1
  66. package/dist/config/ClientConfiguration.js +6 -6
  67. package/dist/config/ClientConfiguration.js.map +1 -1
  68. package/dist/crypto/ICrypto.js +8 -8
  69. package/dist/crypto/ICrypto.js.map +1 -1
  70. package/dist/crypto/PopTokenGenerator.js +9 -9
  71. package/dist/crypto/PopTokenGenerator.js.map +1 -1
  72. package/dist/error/AuthError.js +3 -3
  73. package/dist/error/AuthError.js.map +1 -1
  74. package/dist/error/ClientAuthError.js +3 -3
  75. package/dist/error/ClientAuthError.js.map +1 -1
  76. package/dist/error/ClientConfigurationError.js +3 -3
  77. package/dist/error/ClientConfigurationError.js.map +1 -1
  78. package/dist/error/InteractionRequiredAuthError.js +3 -3
  79. package/dist/error/InteractionRequiredAuthError.js.map +1 -1
  80. package/dist/error/ServerError.js +3 -3
  81. package/dist/error/ServerError.js.map +1 -1
  82. package/dist/index.cjs.js +70 -29
  83. package/dist/index.cjs.js.map +1 -1
  84. package/dist/index.js +29 -29
  85. package/dist/logger/Logger.js +7 -7
  86. package/dist/logger/Logger.js.map +1 -1
  87. package/dist/network/INetworkModule.js +4 -4
  88. package/dist/network/INetworkModule.js.map +1 -1
  89. package/dist/network/NetworkManager.js +8 -8
  90. package/dist/network/NetworkManager.js.map +1 -1
  91. package/dist/network/ThrottlingUtils.js +4 -4
  92. package/dist/network/ThrottlingUtils.js.map +1 -1
  93. package/dist/packageMetadata.d.ts +1 -1
  94. package/dist/packageMetadata.js +2 -2
  95. package/dist/packageMetadata.js.map +1 -1
  96. package/dist/request/RequestParameterBuilder.js +18 -18
  97. package/dist/request/RequestParameterBuilder.js.map +1 -1
  98. package/dist/request/RequestValidator.js +10 -10
  99. package/dist/request/RequestValidator.js.map +1 -1
  100. package/dist/request/ScopeSet.js +14 -14
  101. package/dist/request/ScopeSet.js.map +1 -1
  102. package/dist/response/ResponseHandler.js +61 -61
  103. package/dist/response/ResponseHandler.js.map +1 -1
  104. package/dist/telemetry/server/ServerTelemetryManager.js +13 -13
  105. package/dist/telemetry/server/ServerTelemetryManager.js.map +1 -1
  106. package/dist/url/UrlString.js +24 -24
  107. package/dist/url/UrlString.js.map +1 -1
  108. package/dist/utils/Constants.js +1 -1
  109. package/dist/utils/Constants.js.map +1 -1
  110. package/dist/utils/ProtocolUtils.js +13 -13
  111. package/dist/utils/ProtocolUtils.js.map +1 -1
  112. package/dist/utils/StringUtils.js +5 -5
  113. package/dist/utils/StringUtils.js.map +1 -1
  114. package/dist/utils/TimeUtils.js +1 -1
  115. package/dist/utils/TimeUtils.js.map +1 -1
  116. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1,31 +1,5 @@
1
- /*! @azure/msal-common v4.5.0 2021-07-22 */
1
+ /*! @azure/msal-common v4.5.1 2021-08-02 */
2
2
  'use strict';
3
- export { AuthenticationScheme, CacheAccountType, CacheSchemaType, CacheType, Constants, CredentialType, OIDC_DEFAULT_SCOPES, PersistentCacheKeys, PromptValue, ResponseMode } from './utils/Constants.js';
4
- export { AuthError, AuthErrorMessage } from './error/AuthError.js';
5
- export { DEFAULT_CRYPTO_IMPLEMENTATION } from './crypto/ICrypto.js';
6
- export { ClientAuthError, ClientAuthErrorMessage } from './error/ClientAuthError.js';
7
- export { StringUtils } from './utils/StringUtils.js';
8
- export { LogLevel, Logger } from './logger/Logger.js';
9
- export { CredentialEntity } from './cache/entities/CredentialEntity.js';
10
- export { ClientConfigurationError, ClientConfigurationErrorMessage } from './error/ClientConfigurationError.js';
11
- export { AuthorityType } from './authority/AuthorityType.js';
12
- export { AccountEntity } from './cache/entities/AccountEntity.js';
13
- export { AuthToken, AuthToken as IdToken } from './account/AuthToken.js';
14
- export { CacheManager, DefaultStorageClass } from './cache/CacheManager.js';
15
- export { DEFAULT_SYSTEM_OPTIONS } from './config/ClientConfiguration.js';
16
- export { ServerError } from './error/ServerError.js';
17
- export { ThrottlingUtils } from './network/ThrottlingUtils.js';
18
- export { NetworkManager } from './network/NetworkManager.js';
19
- export { CcsCredentialType } from './account/CcsCredential.js';
20
- export { IdTokenEntity } from './cache/entities/IdTokenEntity.js';
21
- export { TimeUtils } from './utils/TimeUtils.js';
22
- export { AccessTokenEntity } from './cache/entities/AccessTokenEntity.js';
23
- export { RefreshTokenEntity } from './cache/entities/RefreshTokenEntity.js';
24
- export { InteractionRequiredAuthError } from './error/InteractionRequiredAuthError.js';
25
- export { ProtocolUtils } from './utils/ProtocolUtils.js';
26
- export { UrlString } from './url/UrlString.js';
27
- export { AppMetadataEntity } from './cache/entities/AppMetadataEntity.js';
28
- export { TokenCacheContext } from './cache/persistence/TokenCacheContext.js';
29
3
  export { AuthorizationCodeClient } from './client/AuthorizationCodeClient.js';
30
4
  export { DeviceCodeClient } from './client/DeviceCodeClient.js';
31
5
  export { RefreshTokenClient } from './client/RefreshTokenClient.js';
@@ -33,12 +7,38 @@ export { ClientCredentialClient } from './client/ClientCredentialClient.js';
33
7
  export { OnBehalfOfClient } from './client/OnBehalfOfClient.js';
34
8
  export { SilentFlowClient } from './client/SilentFlowClient.js';
35
9
  export { UsernamePasswordClient } from './client/UsernamePasswordClient.js';
36
- export { ProtocolMode } from './authority/ProtocolMode.js';
37
- export { AuthorityMetadataEntity } from './cache/entities/AuthorityMetadataEntity.js';
10
+ export { DEFAULT_SYSTEM_OPTIONS } from './config/ClientConfiguration.js';
11
+ export { AuthToken, AuthToken as IdToken } from './account/AuthToken.js';
12
+ export { CcsCredentialType } from './account/CcsCredential.js';
38
13
  export { Authority } from './authority/Authority.js';
39
14
  export { AuthorityFactory } from './authority/AuthorityFactory.js';
15
+ export { AuthorityType } from './authority/AuthorityType.js';
16
+ export { ProtocolMode } from './authority/ProtocolMode.js';
17
+ export { CacheManager, DefaultStorageClass } from './cache/CacheManager.js';
18
+ export { CredentialEntity } from './cache/entities/CredentialEntity.js';
19
+ export { AppMetadataEntity } from './cache/entities/AppMetadataEntity.js';
20
+ export { AccountEntity } from './cache/entities/AccountEntity.js';
21
+ export { IdTokenEntity } from './cache/entities/IdTokenEntity.js';
22
+ export { AccessTokenEntity } from './cache/entities/AccessTokenEntity.js';
23
+ export { RefreshTokenEntity } from './cache/entities/RefreshTokenEntity.js';
40
24
  export { ServerTelemetryEntity } from './cache/entities/ServerTelemetryEntity.js';
25
+ export { AuthorityMetadataEntity } from './cache/entities/AuthorityMetadataEntity.js';
41
26
  export { ThrottlingEntity } from './cache/entities/ThrottlingEntity.js';
27
+ export { TokenCacheContext } from './cache/persistence/TokenCacheContext.js';
42
28
  export { StubbedNetworkModule } from './network/INetworkModule.js';
29
+ export { NetworkManager } from './network/NetworkManager.js';
30
+ export { ThrottlingUtils } from './network/ThrottlingUtils.js';
31
+ export { UrlString } from './url/UrlString.js';
32
+ export { DEFAULT_CRYPTO_IMPLEMENTATION } from './crypto/ICrypto.js';
33
+ export { LogLevel, Logger } from './logger/Logger.js';
34
+ export { InteractionRequiredAuthError } from './error/InteractionRequiredAuthError.js';
35
+ export { AuthError, AuthErrorMessage } from './error/AuthError.js';
36
+ export { ServerError } from './error/ServerError.js';
37
+ export { ClientAuthError, ClientAuthErrorMessage } from './error/ClientAuthError.js';
38
+ export { ClientConfigurationError, ClientConfigurationErrorMessage } from './error/ClientConfigurationError.js';
39
+ export { AuthenticationScheme, CacheAccountType, CacheSchemaType, CacheType, Constants, CredentialType, OIDC_DEFAULT_SCOPES, PersistentCacheKeys, PromptValue, ResponseMode } from './utils/Constants.js';
40
+ export { StringUtils } from './utils/StringUtils.js';
41
+ export { ProtocolUtils } from './utils/ProtocolUtils.js';
42
+ export { TimeUtils } from './utils/TimeUtils.js';
43
43
  export { ServerTelemetryManager } from './telemetry/server/ServerTelemetryManager.js';
44
44
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
- /*! @azure/msal-common v4.5.0 2021-07-22 */
1
+ /*! @azure/msal-common v4.5.1 2021-08-02 */
2
2
  'use strict';
3
- import { Constants as Constants$1 } from '../utils/Constants.js';
4
- import { StringUtils as StringUtils$1 } from '../utils/StringUtils.js';
3
+ import { StringUtils } from '../utils/StringUtils.js';
4
+ import { Constants } from '../utils/Constants.js';
5
5
 
6
6
  /*
7
7
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -30,8 +30,8 @@ var Logger = /** @class */ (function () {
30
30
  this.piiLoggingEnabled = loggerOptions.piiLoggingEnabled || false;
31
31
  this.level = loggerOptions.logLevel || LogLevel.Info;
32
32
  this.correlationId = loggerOptions.correlationId || "";
33
- this.packageName = packageName || Constants$1.EMPTY_STRING;
34
- this.packageVersion = packageVersion || Constants$1.EMPTY_STRING;
33
+ this.packageName = packageName || Constants.EMPTY_STRING;
34
+ this.packageVersion = packageVersion || Constants.EMPTY_STRING;
35
35
  }
36
36
  /**
37
37
  * Create new Logger with existing configurations.
@@ -49,10 +49,10 @@ var Logger = /** @class */ (function () {
49
49
  var timestamp = new Date().toUTCString();
50
50
  // Add correlationId to logs if set, correlationId provided on log messages take precedence
51
51
  var logHeader;
52
- if (!StringUtils$1.isEmpty(options.correlationId)) {
52
+ if (!StringUtils.isEmpty(options.correlationId)) {
53
53
  logHeader = "[" + timestamp + "] : [" + options.correlationId + "]";
54
54
  }
55
- else if (!StringUtils$1.isEmpty(this.correlationId)) {
55
+ else if (!StringUtils.isEmpty(this.correlationId)) {
56
56
  logHeader = "[" + timestamp + "] : [" + this.correlationId + "]";
57
57
  }
58
58
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"Logger.js","sources":["../../src/logger/Logger.ts"],"sourcesContent":["/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n\r\nimport { StringUtils } from \"../utils/StringUtils\";\r\nimport { LoggerOptions } from \"../config/ClientConfiguration\";\r\nimport { Constants } from \"../utils/Constants\";\r\n\r\n/**\r\n * Options for logger messages.\r\n */\r\nexport type LoggerMessageOptions = {\r\n logLevel: LogLevel,\r\n containsPii?: boolean,\r\n context?: string,\r\n correlationId?: string\r\n};\r\n\r\n/**\r\n * Log message level.\r\n */\r\nexport enum LogLevel {\r\n Error,\r\n Warning,\r\n Info,\r\n Verbose,\r\n Trace\r\n}\r\n\r\n/**\r\n * Callback to send the messages to.\r\n */\r\nexport interface ILoggerCallback {\r\n (level: LogLevel, message: string, containsPii: boolean): void;\r\n}\r\n\r\n/**\r\n * Class which facilitates logging of messages to a specific place.\r\n */\r\nexport class Logger {\r\n\r\n // Correlation ID for request, usually set by user.\r\n private correlationId: string;\r\n\r\n // Current log level, defaults to info.\r\n private level: LogLevel = LogLevel.Info;\r\n\r\n // Boolean describing whether PII logging is allowed.\r\n private piiLoggingEnabled: boolean;\r\n\r\n // Callback to send messages to.\r\n private localCallback: ILoggerCallback;\r\n\r\n // Package name implementing this logger\r\n private packageName: string;\r\n\r\n // Package version implementing this logger\r\n private packageVersion: string;\r\n\r\n constructor(loggerOptions: LoggerOptions, packageName?: string, packageVersion?: string) {\r\n const defaultLoggerCallback = () => {};\r\n this.localCallback = loggerOptions.loggerCallback || defaultLoggerCallback;\r\n this.piiLoggingEnabled = loggerOptions.piiLoggingEnabled || false;\r\n this.level = loggerOptions.logLevel || LogLevel.Info;\r\n this.correlationId = loggerOptions.correlationId || \"\";\r\n\r\n this.packageName = packageName || Constants.EMPTY_STRING;\r\n this.packageVersion = packageVersion || Constants.EMPTY_STRING;\r\n }\r\n\r\n /**\r\n * Create new Logger with existing configurations.\r\n */\r\n public clone(packageName: string, packageVersion: string, correlationId?: string): Logger {\r\n return new Logger({loggerCallback: this.localCallback, piiLoggingEnabled: this.piiLoggingEnabled, logLevel: this.level, correlationId: correlationId || this.correlationId}, packageName, packageVersion);\r\n }\r\n\r\n /**\r\n * Log message with required options.\r\n */\r\n private logMessage(logMessage: string, options: LoggerMessageOptions): void {\r\n if ((options.logLevel > this.level) || (!this.piiLoggingEnabled && options.containsPii)) {\r\n return;\r\n }\r\n const timestamp = new Date().toUTCString();\r\n\r\n // Add correlationId to logs if set, correlationId provided on log messages take precedence\r\n let logHeader: string;\r\n if (!StringUtils.isEmpty(options.correlationId)) {\r\n logHeader = `[${timestamp}] : [${options.correlationId}]`;\r\n } else if (!StringUtils.isEmpty(this.correlationId)) {\r\n logHeader = `[${timestamp}] : [${this.correlationId}]`;\r\n } else {\r\n logHeader = `[${timestamp}]`;\r\n }\r\n\r\n const log = `${logHeader} : ${this.packageName}@${this.packageVersion} : ${LogLevel[options.logLevel]} - ${logMessage}`;\r\n // debug(`msal:${LogLevel[options.logLevel]}${options.containsPii ? \"-Pii\": \"\"}${options.context ? `:${options.context}` : \"\"}`)(logMessage);\r\n this.executeCallback(options.logLevel, log, options.containsPii || false);\r\n }\r\n\r\n /**\r\n * Execute callback with message.\r\n */\r\n executeCallback(level: LogLevel, message: string, containsPii: boolean): void {\r\n if (this.localCallback) {\r\n this.localCallback(level, message, containsPii);\r\n }\r\n }\r\n\r\n /**\r\n * Logs error messages.\r\n */\r\n error(message: string, correlationId?: string): void {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Error,\r\n containsPii: false,\r\n correlationId: correlationId || \"\"\r\n });\r\n }\r\n\r\n /**\r\n * Logs error messages with PII.\r\n */\r\n errorPii(message: string, correlationId?: string): void {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Error,\r\n containsPii: true,\r\n correlationId: correlationId || \"\"\r\n });\r\n }\r\n\r\n /**\r\n * Logs warning messages.\r\n */\r\n warning(message: string, correlationId?: string): void {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Warning,\r\n containsPii: false,\r\n correlationId: correlationId || \"\"\r\n });\r\n }\r\n\r\n /**\r\n * Logs warning messages with PII.\r\n */\r\n warningPii(message: string, correlationId?: string): void {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Warning,\r\n containsPii: true,\r\n correlationId: correlationId || \"\"\r\n });\r\n }\r\n\r\n /**\r\n * Logs info messages.\r\n */\r\n info(message: string, correlationId?: string): void {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Info,\r\n containsPii: false,\r\n correlationId: correlationId || \"\"\r\n });\r\n }\r\n\r\n /**\r\n * Logs info messages with PII.\r\n */\r\n infoPii(message: string, correlationId?: string): void {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Info,\r\n containsPii: true,\r\n correlationId: correlationId || \"\"\r\n });\r\n }\r\n\r\n /**\r\n * Logs verbose messages.\r\n */\r\n verbose(message: string, correlationId?: string): void {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Verbose,\r\n containsPii: false,\r\n correlationId: correlationId || \"\"\r\n });\r\n }\r\n\r\n /**\r\n * Logs verbose messages with PII.\r\n */\r\n verbosePii(message: string, correlationId?: string): void {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Verbose,\r\n containsPii: true,\r\n correlationId: correlationId || \"\"\r\n });\r\n }\r\n\r\n /**\r\n * Logs trace messages.\r\n */\r\n trace(message: string, correlationId?: string): void {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Trace,\r\n containsPii: false,\r\n correlationId: correlationId || \"\"\r\n });\r\n }\r\n\r\n /**\r\n * Logs trace messages with PII.\r\n */\r\n tracePii(message: string, correlationId?: string): void {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Trace,\r\n containsPii: true,\r\n correlationId: correlationId || \"\"\r\n });\r\n }\r\n\r\n /**\r\n * Returns whether PII Logging is enabled or not.\r\n */\r\n isPiiLoggingEnabled(): boolean {\r\n return this.piiLoggingEnabled || false;\r\n }\r\n}\r\n"],"names":["Constants","StringUtils"],"mappings":"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"}
1
+ {"version":3,"file":"Logger.js","sources":["../../src/logger/Logger.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { StringUtils } from \"../utils/StringUtils\";\nimport { LoggerOptions } from \"../config/ClientConfiguration\";\nimport { Constants } from \"../utils/Constants\";\n\n/**\n * Options for logger messages.\n */\nexport type LoggerMessageOptions = {\n logLevel: LogLevel,\n containsPii?: boolean,\n context?: string,\n correlationId?: string\n};\n\n/**\n * Log message level.\n */\nexport enum LogLevel {\n Error,\n Warning,\n Info,\n Verbose,\n Trace\n}\n\n/**\n * Callback to send the messages to.\n */\nexport interface ILoggerCallback {\n (level: LogLevel, message: string, containsPii: boolean): void;\n}\n\n/**\n * Class which facilitates logging of messages to a specific place.\n */\nexport class Logger {\n\n // Correlation ID for request, usually set by user.\n private correlationId: string;\n\n // Current log level, defaults to info.\n private level: LogLevel = LogLevel.Info;\n\n // Boolean describing whether PII logging is allowed.\n private piiLoggingEnabled: boolean;\n\n // Callback to send messages to.\n private localCallback: ILoggerCallback;\n\n // Package name implementing this logger\n private packageName: string;\n\n // Package version implementing this logger\n private packageVersion: string;\n\n constructor(loggerOptions: LoggerOptions, packageName?: string, packageVersion?: string) {\n const defaultLoggerCallback = () => {};\n this.localCallback = loggerOptions.loggerCallback || defaultLoggerCallback;\n this.piiLoggingEnabled = loggerOptions.piiLoggingEnabled || false;\n this.level = loggerOptions.logLevel || LogLevel.Info;\n this.correlationId = loggerOptions.correlationId || \"\";\n\n this.packageName = packageName || Constants.EMPTY_STRING;\n this.packageVersion = packageVersion || Constants.EMPTY_STRING;\n }\n\n /**\n * Create new Logger with existing configurations.\n */\n public clone(packageName: string, packageVersion: string, correlationId?: string): Logger {\n return new Logger({loggerCallback: this.localCallback, piiLoggingEnabled: this.piiLoggingEnabled, logLevel: this.level, correlationId: correlationId || this.correlationId}, packageName, packageVersion);\n }\n\n /**\n * Log message with required options.\n */\n private logMessage(logMessage: string, options: LoggerMessageOptions): void {\n if ((options.logLevel > this.level) || (!this.piiLoggingEnabled && options.containsPii)) {\n return;\n }\n const timestamp = new Date().toUTCString();\n\n // Add correlationId to logs if set, correlationId provided on log messages take precedence\n let logHeader: string;\n if (!StringUtils.isEmpty(options.correlationId)) {\n logHeader = `[${timestamp}] : [${options.correlationId}]`;\n } else if (!StringUtils.isEmpty(this.correlationId)) {\n logHeader = `[${timestamp}] : [${this.correlationId}]`;\n } else {\n logHeader = `[${timestamp}]`;\n }\n\n const log = `${logHeader} : ${this.packageName}@${this.packageVersion} : ${LogLevel[options.logLevel]} - ${logMessage}`;\n // debug(`msal:${LogLevel[options.logLevel]}${options.containsPii ? \"-Pii\": \"\"}${options.context ? `:${options.context}` : \"\"}`)(logMessage);\n this.executeCallback(options.logLevel, log, options.containsPii || false);\n }\n\n /**\n * Execute callback with message.\n */\n executeCallback(level: LogLevel, message: string, containsPii: boolean): void {\n if (this.localCallback) {\n this.localCallback(level, message, containsPii);\n }\n }\n\n /**\n * Logs error messages.\n */\n error(message: string, correlationId?: string): void {\n this.logMessage(message, {\n logLevel: LogLevel.Error,\n containsPii: false,\n correlationId: correlationId || \"\"\n });\n }\n\n /**\n * Logs error messages with PII.\n */\n errorPii(message: string, correlationId?: string): void {\n this.logMessage(message, {\n logLevel: LogLevel.Error,\n containsPii: true,\n correlationId: correlationId || \"\"\n });\n }\n\n /**\n * Logs warning messages.\n */\n warning(message: string, correlationId?: string): void {\n this.logMessage(message, {\n logLevel: LogLevel.Warning,\n containsPii: false,\n correlationId: correlationId || \"\"\n });\n }\n\n /**\n * Logs warning messages with PII.\n */\n warningPii(message: string, correlationId?: string): void {\n this.logMessage(message, {\n logLevel: LogLevel.Warning,\n containsPii: true,\n correlationId: correlationId || \"\"\n });\n }\n\n /**\n * Logs info messages.\n */\n info(message: string, correlationId?: string): void {\n this.logMessage(message, {\n logLevel: LogLevel.Info,\n containsPii: false,\n correlationId: correlationId || \"\"\n });\n }\n\n /**\n * Logs info messages with PII.\n */\n infoPii(message: string, correlationId?: string): void {\n this.logMessage(message, {\n logLevel: LogLevel.Info,\n containsPii: true,\n correlationId: correlationId || \"\"\n });\n }\n\n /**\n * Logs verbose messages.\n */\n verbose(message: string, correlationId?: string): void {\n this.logMessage(message, {\n logLevel: LogLevel.Verbose,\n containsPii: false,\n correlationId: correlationId || \"\"\n });\n }\n\n /**\n * Logs verbose messages with PII.\n */\n verbosePii(message: string, correlationId?: string): void {\n this.logMessage(message, {\n logLevel: LogLevel.Verbose,\n containsPii: true,\n correlationId: correlationId || \"\"\n });\n }\n\n /**\n * Logs trace messages.\n */\n trace(message: string, correlationId?: string): void {\n this.logMessage(message, {\n logLevel: LogLevel.Trace,\n containsPii: false,\n correlationId: correlationId || \"\"\n });\n }\n\n /**\n * Logs trace messages with PII.\n */\n tracePii(message: string, correlationId?: string): void {\n this.logMessage(message, {\n logLevel: LogLevel.Trace,\n containsPii: true,\n correlationId: correlationId || \"\"\n });\n }\n\n /**\n * Returns whether PII Logging is enabled or not.\n */\n isPiiLoggingEnabled(): boolean {\n return this.piiLoggingEnabled || false;\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- /*! @azure/msal-common v4.5.0 2021-07-22 */
1
+ /*! @azure/msal-common v4.5.1 2021-08-02 */
2
2
  'use strict';
3
- import { AuthError as AuthError$1 } from '../error/AuthError.js';
3
+ import { AuthError } from '../error/AuthError.js';
4
4
 
5
5
  /*
6
6
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -9,11 +9,11 @@ import { AuthError as AuthError$1 } from '../error/AuthError.js';
9
9
  var StubbedNetworkModule = {
10
10
  sendGetRequestAsync: function () {
11
11
  var notImplErr = "Network interface - sendGetRequestAsync() has not been implemented for the Network interface.";
12
- return Promise.reject(AuthError$1.createUnexpectedError(notImplErr));
12
+ return Promise.reject(AuthError.createUnexpectedError(notImplErr));
13
13
  },
14
14
  sendPostRequestAsync: function () {
15
15
  var notImplErr = "Network interface - sendPostRequestAsync() has not been implemented for the Network interface.";
16
- return Promise.reject(AuthError$1.createUnexpectedError(notImplErr));
16
+ return Promise.reject(AuthError.createUnexpectedError(notImplErr));
17
17
  }
18
18
  };
19
19
 
@@ -1 +1 @@
1
- {"version":3,"file":"INetworkModule.js","sources":["../../src/network/INetworkModule.ts"],"sourcesContent":["/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n\r\nimport { AuthError } from \"../error/AuthError\";\r\nimport { NetworkResponse } from \"./NetworkManager\";\r\n\r\n/**\r\n * Options allowed by network request APIs.\r\n */\r\nexport type NetworkRequestOptions = {\r\n headers?: Record<string, string>,\r\n body?: string;\r\n};\r\n\r\n/**\r\n * Client network interface to send backend requests.\r\n * @interface\r\n */\r\nexport interface INetworkModule {\r\n\r\n /**\r\n * Interface function for async network \"GET\" requests. Based on the Fetch standard: https://fetch.spec.whatwg.org/\r\n * @param url\r\n * @param requestParams\r\n * @param enableCaching\r\n */\r\n sendGetRequestAsync<T>(url: string, options?: NetworkRequestOptions, cancellationToken?: number): Promise<NetworkResponse<T>>;\r\n\r\n /**\r\n * Interface function for async network \"POST\" requests. Based on the Fetch standard: https://fetch.spec.whatwg.org/\r\n * @param url\r\n * @param requestParams\r\n * @param enableCaching\r\n */\r\n sendPostRequestAsync<T>(url: string, options?: NetworkRequestOptions): Promise<NetworkResponse<T>>;\r\n}\r\n\r\nexport const StubbedNetworkModule: INetworkModule = {\r\n sendGetRequestAsync: () => {\r\n const notImplErr = \"Network interface - sendGetRequestAsync() has not been implemented for the Network interface.\";\r\n return Promise.reject(AuthError.createUnexpectedError(notImplErr));\r\n },\r\n sendPostRequestAsync: () => {\r\n const notImplErr = \"Network interface - sendPostRequestAsync() has not been implemented for the Network interface.\";\r\n return Promise.reject(AuthError.createUnexpectedError(notImplErr));\r\n }\r\n};\r\n"],"names":["AuthError"],"mappings":";;;;AAAA;;;;IAuCa,oBAAoB,GAAmB;IAChD,mBAAmB,EAAE;QACjB,IAAM,UAAU,GAAG,+FAA+F,CAAC;QACnH,OAAO,OAAO,CAAC,MAAM,CAACA,WAAS,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC;KACtE;IACD,oBAAoB,EAAE;QAClB,IAAM,UAAU,GAAG,gGAAgG,CAAC;QACpH,OAAO,OAAO,CAAC,MAAM,CAACA,WAAS,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC;KACtE;;;;;"}
1
+ {"version":3,"file":"INetworkModule.js","sources":["../../src/network/INetworkModule.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { AuthError } from \"../error/AuthError\";\nimport { NetworkResponse } from \"./NetworkManager\";\n\n/**\n * Options allowed by network request APIs.\n */\nexport type NetworkRequestOptions = {\n headers?: Record<string, string>,\n body?: string;\n};\n\n/**\n * Client network interface to send backend requests.\n * @interface\n */\nexport interface INetworkModule {\n\n /**\n * Interface function for async network \"GET\" requests. Based on the Fetch standard: https://fetch.spec.whatwg.org/\n * @param url\n * @param requestParams\n * @param enableCaching\n */\n sendGetRequestAsync<T>(url: string, options?: NetworkRequestOptions, cancellationToken?: number): Promise<NetworkResponse<T>>;\n\n /**\n * Interface function for async network \"POST\" requests. Based on the Fetch standard: https://fetch.spec.whatwg.org/\n * @param url\n * @param requestParams\n * @param enableCaching\n */\n sendPostRequestAsync<T>(url: string, options?: NetworkRequestOptions): Promise<NetworkResponse<T>>;\n}\n\nexport const StubbedNetworkModule: INetworkModule = {\n sendGetRequestAsync: () => {\n const notImplErr = \"Network interface - sendGetRequestAsync() has not been implemented for the Network interface.\";\n return Promise.reject(AuthError.createUnexpectedError(notImplErr));\n },\n sendPostRequestAsync: () => {\n const notImplErr = \"Network interface - sendPostRequestAsync() has not been implemented for the Network interface.\";\n return Promise.reject(AuthError.createUnexpectedError(notImplErr));\n }\n};\n"],"names":[],"mappings":";;;;AAAA;;;;IAuCa,oBAAoB,GAAmB;IAChD,mBAAmB,EAAE;QACjB,IAAM,UAAU,GAAG,+FAA+F,CAAC;QACnH,OAAO,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC;KACtE;IACD,oBAAoB,EAAE;QAClB,IAAM,UAAU,GAAG,gGAAgG,CAAC;QACpH,OAAO,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC;KACtE;;;;;"}
@@ -1,9 +1,9 @@
1
- /*! @azure/msal-common v4.5.0 2021-07-22 */
1
+ /*! @azure/msal-common v4.5.1 2021-08-02 */
2
2
  'use strict';
3
3
  import { __awaiter, __generator } from '../_virtual/_tslib.js';
4
- import { AuthError as AuthError$1 } from '../error/AuthError.js';
5
- import { ClientAuthError as ClientAuthError$1 } from '../error/ClientAuthError.js';
6
- import { ThrottlingUtils as ThrottlingUtils$1 } from './ThrottlingUtils.js';
4
+ import { ThrottlingUtils } from './ThrottlingUtils.js';
5
+ import { ClientAuthError } from '../error/ClientAuthError.js';
6
+ import { AuthError } from '../error/AuthError.js';
7
7
 
8
8
  /*
9
9
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -26,7 +26,7 @@ var NetworkManager = /** @class */ (function () {
26
26
  return __generator(this, function (_a) {
27
27
  switch (_a.label) {
28
28
  case 0:
29
- ThrottlingUtils$1.preProcess(this.cacheManager, thumbprint);
29
+ ThrottlingUtils.preProcess(this.cacheManager, thumbprint);
30
30
  _a.label = 1;
31
31
  case 1:
32
32
  _a.trys.push([1, 3, , 4]);
@@ -36,14 +36,14 @@ var NetworkManager = /** @class */ (function () {
36
36
  return [3 /*break*/, 4];
37
37
  case 3:
38
38
  e_1 = _a.sent();
39
- if (e_1 instanceof AuthError$1) {
39
+ if (e_1 instanceof AuthError) {
40
40
  throw e_1;
41
41
  }
42
42
  else {
43
- throw ClientAuthError$1.createNetworkError(tokenEndpoint, e_1);
43
+ throw ClientAuthError.createNetworkError(tokenEndpoint, e_1);
44
44
  }
45
45
  case 4:
46
- ThrottlingUtils$1.postProcess(this.cacheManager, thumbprint, response);
46
+ ThrottlingUtils.postProcess(this.cacheManager, thumbprint, response);
47
47
  return [2 /*return*/, response];
48
48
  }
49
49
  });
@@ -1 +1 @@
1
- {"version":3,"file":"NetworkManager.js","sources":["../../src/network/NetworkManager.ts"],"sourcesContent":["/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n\r\nimport { INetworkModule, NetworkRequestOptions } from \"./INetworkModule\";\r\nimport { RequestThumbprint } from \"./RequestThumbprint\";\r\nimport { ThrottlingUtils } from \"./ThrottlingUtils\";\r\nimport { CacheManager } from \"../cache/CacheManager\";\r\nimport { ClientAuthError } from \"../error/ClientAuthError\";\r\nimport { AuthError } from \"../error/AuthError\";\r\n\r\nexport type NetworkResponse<T> = {\r\n headers: Record<string, string>;\r\n body: T;\r\n status: number;\r\n};\r\n\r\nexport class NetworkManager {\r\n private networkClient: INetworkModule;\r\n private cacheManager: CacheManager;\r\n\r\n constructor(networkClient: INetworkModule, cacheManager: CacheManager) {\r\n this.networkClient = networkClient;\r\n this.cacheManager = cacheManager;\r\n }\r\n\r\n /**\r\n * Wraps sendPostRequestAsync with necessary preflight and postflight logic\r\n * @param thumbprint\r\n * @param tokenEndpoint\r\n * @param options\r\n */\r\n async sendPostRequest<T>(thumbprint: RequestThumbprint, tokenEndpoint: string, options: NetworkRequestOptions): Promise<NetworkResponse<T>> {\r\n ThrottlingUtils.preProcess(this.cacheManager, thumbprint);\r\n\r\n let response;\r\n try {\r\n response = await this.networkClient.sendPostRequestAsync<T>(tokenEndpoint, options);\r\n } catch (e) {\r\n if (e instanceof AuthError) {\r\n throw e;\r\n } else {\r\n throw ClientAuthError.createNetworkError(tokenEndpoint, e);\r\n }\r\n }\r\n\r\n ThrottlingUtils.postProcess(this.cacheManager, thumbprint, response);\r\n\r\n return response;\r\n }\r\n}\r\n"],"names":["ThrottlingUtils","AuthError","ClientAuthError"],"mappings":";;;;;;;AAAA;;;;;IAsBI,wBAAY,aAA6B,EAAE,YAA0B;QACjE,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;KACpC;;;;;;;IAQK,wCAAe,GAArB,UAAyB,UAA6B,EAAE,aAAqB,EAAE,OAA8B;;;;;;wBACzGA,iBAAe,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;;;;wBAI3C,qBAAM,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAI,aAAa,EAAE,OAAO,CAAC,EAAA;;wBAAnF,QAAQ,GAAG,SAAwE,CAAC;;;;wBAEpF,IAAI,GAAC,YAAYC,WAAS,EAAE;4BACxB,MAAM,GAAC,CAAC;yBACX;6BAAM;4BACH,MAAMC,iBAAe,CAAC,kBAAkB,CAAC,aAAa,EAAE,GAAC,CAAC,CAAC;yBAC9D;;wBAGLF,iBAAe,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;wBAErE,sBAAO,QAAQ,EAAC;;;;KACnB;IACL,qBAAC;AAAD,CAAC;;;;"}
1
+ {"version":3,"file":"NetworkManager.js","sources":["../../src/network/NetworkManager.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { INetworkModule, NetworkRequestOptions } from \"./INetworkModule\";\nimport { RequestThumbprint } from \"./RequestThumbprint\";\nimport { ThrottlingUtils } from \"./ThrottlingUtils\";\nimport { CacheManager } from \"../cache/CacheManager\";\nimport { ClientAuthError } from \"../error/ClientAuthError\";\nimport { AuthError } from \"../error/AuthError\";\n\nexport type NetworkResponse<T> = {\n headers: Record<string, string>;\n body: T;\n status: number;\n};\n\nexport class NetworkManager {\n private networkClient: INetworkModule;\n private cacheManager: CacheManager;\n\n constructor(networkClient: INetworkModule, cacheManager: CacheManager) {\n this.networkClient = networkClient;\n this.cacheManager = cacheManager;\n }\n\n /**\n * Wraps sendPostRequestAsync with necessary preflight and postflight logic\n * @param thumbprint\n * @param tokenEndpoint\n * @param options\n */\n async sendPostRequest<T>(thumbprint: RequestThumbprint, tokenEndpoint: string, options: NetworkRequestOptions): Promise<NetworkResponse<T>> {\n ThrottlingUtils.preProcess(this.cacheManager, thumbprint);\n\n let response;\n try {\n response = await this.networkClient.sendPostRequestAsync<T>(tokenEndpoint, options);\n } catch (e) {\n if (e instanceof AuthError) {\n throw e;\n } else {\n throw ClientAuthError.createNetworkError(tokenEndpoint, e);\n }\n }\n\n ThrottlingUtils.postProcess(this.cacheManager, thumbprint, response);\n\n return response;\n }\n}\n"],"names":[],"mappings":";;;;;;;AAAA;;;;;IAsBI,wBAAY,aAA6B,EAAE,YAA0B;QACjE,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;KACpC;;;;;;;IAQK,wCAAe,GAArB,UAAyB,UAA6B,EAAE,aAAqB,EAAE,OAA8B;;;;;;wBACzG,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;;;;wBAI3C,qBAAM,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAI,aAAa,EAAE,OAAO,CAAC,EAAA;;wBAAnF,QAAQ,GAAG,SAAwE,CAAC;;;;wBAEpF,IAAI,GAAC,YAAY,SAAS,EAAE;4BACxB,MAAM,GAAC,CAAC;yBACX;6BAAM;4BACH,MAAM,eAAe,CAAC,kBAAkB,CAAC,aAAa,EAAE,GAAC,CAAC,CAAC;yBAC9D;;wBAGL,eAAe,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;wBAErE,sBAAO,QAAQ,EAAC;;;;KACnB;IACL,qBAAC;AAAD,CAAC;;;;"}
@@ -1,7 +1,7 @@
1
- /*! @azure/msal-common v4.5.0 2021-07-22 */
1
+ /*! @azure/msal-common v4.5.1 2021-08-02 */
2
2
  'use strict';
3
- import { ThrottlingConstants, CacheSchemaType, Constants as Constants$1, HeaderNames } from '../utils/Constants.js';
4
- import { ServerError as ServerError$1 } from '../error/ServerError.js';
3
+ import { ThrottlingConstants, CacheSchemaType, Constants, HeaderNames } from '../utils/Constants.js';
4
+ import { ServerError } from '../error/ServerError.js';
5
5
 
6
6
  /*
7
7
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -31,7 +31,7 @@ var ThrottlingUtils = /** @class */ (function () {
31
31
  cacheManager.removeItem(key, CacheSchemaType.THROTTLING);
32
32
  return;
33
33
  }
34
- throw new ServerError$1(((_a = value.errorCodes) === null || _a === void 0 ? void 0 : _a.join(" ")) || Constants$1.EMPTY_STRING, value.errorMessage, value.subError);
34
+ throw new ServerError(((_a = value.errorCodes) === null || _a === void 0 ? void 0 : _a.join(" ")) || Constants.EMPTY_STRING, value.errorMessage, value.subError);
35
35
  }
36
36
  };
37
37
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ThrottlingUtils.js","sources":["../../src/network/ThrottlingUtils.ts"],"sourcesContent":["/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n\r\nimport { NetworkResponse } from \"./NetworkManager\";\r\nimport { ServerAuthorizationTokenResponse } from \"../response/ServerAuthorizationTokenResponse\";\r\nimport { HeaderNames, CacheSchemaType, ThrottlingConstants, Constants } from \"../utils/Constants\";\r\nimport { CacheManager } from \"../cache/CacheManager\";\r\nimport { ServerError } from \"../error/ServerError\";\r\nimport { RequestThumbprint } from \"./RequestThumbprint\";\r\nimport { ThrottlingEntity } from \"../cache/entities/ThrottlingEntity\";\r\n\r\nexport class ThrottlingUtils {\r\n\r\n /**\r\n * Prepares a RequestThumbprint to be stored as a key.\r\n * @param thumbprint\r\n */\r\n static generateThrottlingStorageKey(thumbprint: RequestThumbprint): string {\r\n return `${ThrottlingConstants.THROTTLING_PREFIX}.${JSON.stringify(thumbprint)}`;\r\n }\r\n\r\n /**\r\n * Performs necessary throttling checks before a network request.\r\n * @param cacheManager\r\n * @param thumbprint\r\n */\r\n static preProcess(cacheManager: CacheManager, thumbprint: RequestThumbprint): void {\r\n const key = ThrottlingUtils.generateThrottlingStorageKey(thumbprint);\r\n const value = cacheManager.getThrottlingCache(key);\r\n\r\n if (value) {\r\n if (value.throttleTime < Date.now()) {\r\n cacheManager.removeItem(key, CacheSchemaType.THROTTLING);\r\n return;\r\n }\r\n throw new ServerError(value.errorCodes?.join(\" \") || Constants.EMPTY_STRING, value.errorMessage, value.subError);\r\n }\r\n }\r\n\r\n /**\r\n * Performs necessary throttling checks after a network request.\r\n * @param cacheManager\r\n * @param thumbprint\r\n * @param response\r\n */\r\n static postProcess(cacheManager: CacheManager, thumbprint: RequestThumbprint, response: NetworkResponse<ServerAuthorizationTokenResponse>): void {\r\n if (ThrottlingUtils.checkResponseStatus(response) || ThrottlingUtils.checkResponseForRetryAfter(response)) {\r\n const thumbprintValue: ThrottlingEntity = {\r\n throttleTime: ThrottlingUtils.calculateThrottleTime(parseInt(response.headers[HeaderNames.RETRY_AFTER])),\r\n error: response.body.error,\r\n errorCodes: response.body.error_codes,\r\n errorMessage: response.body.error_description,\r\n subError: response.body.suberror\r\n };\r\n cacheManager.setThrottlingCache(\r\n ThrottlingUtils.generateThrottlingStorageKey(thumbprint),\r\n thumbprintValue\r\n );\r\n }\r\n }\r\n\r\n /**\r\n * Checks a NetworkResponse object's status codes against 429 or 5xx\r\n * @param response\r\n */\r\n static checkResponseStatus(response: NetworkResponse<ServerAuthorizationTokenResponse>): boolean {\r\n return response.status === 429 || response.status >= 500 && response.status < 600;\r\n }\r\n\r\n /**\r\n * Checks a NetworkResponse object's RetryAfter header\r\n * @param response\r\n */\r\n static checkResponseForRetryAfter(response: NetworkResponse<ServerAuthorizationTokenResponse>): boolean {\r\n if (response.headers) {\r\n return response.headers.hasOwnProperty(HeaderNames.RETRY_AFTER) && (response.status < 200 || response.status >= 300);\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Calculates the Unix-time value for a throttle to expire given throttleTime in seconds.\r\n * @param throttleTime\r\n */\r\n static calculateThrottleTime(throttleTime: number): number {\r\n const time = throttleTime <= 0 ? 0 : throttleTime;\r\n\r\n const currentSeconds = Date.now() / 1000;\r\n return Math.floor(Math.min(\r\n currentSeconds + (time || ThrottlingConstants.DEFAULT_THROTTLE_TIME_SECONDS),\r\n currentSeconds + ThrottlingConstants.DEFAULT_MAX_THROTTLE_TIME_SECONDS\r\n ) * 1000);\r\n }\r\n\r\n static removeThrottle(cacheManager: CacheManager, clientId: string, authority: string, scopes: Array<string>, homeAccountIdentifier?: string): boolean {\r\n const thumbprint: RequestThumbprint = {\r\n clientId,\r\n authority,\r\n scopes,\r\n homeAccountIdentifier\r\n };\r\n\r\n const key = this.generateThrottlingStorageKey(thumbprint);\r\n return cacheManager.removeItem(key, CacheSchemaType.THROTTLING);\r\n }\r\n}\r\n"],"names":["ServerError","Constants"],"mappings":"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"}
1
+ {"version":3,"file":"ThrottlingUtils.js","sources":["../../src/network/ThrottlingUtils.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { NetworkResponse } from \"./NetworkManager\";\nimport { ServerAuthorizationTokenResponse } from \"../response/ServerAuthorizationTokenResponse\";\nimport { HeaderNames, CacheSchemaType, ThrottlingConstants, Constants } from \"../utils/Constants\";\nimport { CacheManager } from \"../cache/CacheManager\";\nimport { ServerError } from \"../error/ServerError\";\nimport { RequestThumbprint } from \"./RequestThumbprint\";\nimport { ThrottlingEntity } from \"../cache/entities/ThrottlingEntity\";\n\nexport class ThrottlingUtils {\n\n /**\n * Prepares a RequestThumbprint to be stored as a key.\n * @param thumbprint\n */\n static generateThrottlingStorageKey(thumbprint: RequestThumbprint): string {\n return `${ThrottlingConstants.THROTTLING_PREFIX}.${JSON.stringify(thumbprint)}`;\n }\n\n /**\n * Performs necessary throttling checks before a network request.\n * @param cacheManager\n * @param thumbprint\n */\n static preProcess(cacheManager: CacheManager, thumbprint: RequestThumbprint): void {\n const key = ThrottlingUtils.generateThrottlingStorageKey(thumbprint);\n const value = cacheManager.getThrottlingCache(key);\n\n if (value) {\n if (value.throttleTime < Date.now()) {\n cacheManager.removeItem(key, CacheSchemaType.THROTTLING);\n return;\n }\n throw new ServerError(value.errorCodes?.join(\" \") || Constants.EMPTY_STRING, value.errorMessage, value.subError);\n }\n }\n\n /**\n * Performs necessary throttling checks after a network request.\n * @param cacheManager\n * @param thumbprint\n * @param response\n */\n static postProcess(cacheManager: CacheManager, thumbprint: RequestThumbprint, response: NetworkResponse<ServerAuthorizationTokenResponse>): void {\n if (ThrottlingUtils.checkResponseStatus(response) || ThrottlingUtils.checkResponseForRetryAfter(response)) {\n const thumbprintValue: ThrottlingEntity = {\n throttleTime: ThrottlingUtils.calculateThrottleTime(parseInt(response.headers[HeaderNames.RETRY_AFTER])),\n error: response.body.error,\n errorCodes: response.body.error_codes,\n errorMessage: response.body.error_description,\n subError: response.body.suberror\n };\n cacheManager.setThrottlingCache(\n ThrottlingUtils.generateThrottlingStorageKey(thumbprint),\n thumbprintValue\n );\n }\n }\n\n /**\n * Checks a NetworkResponse object's status codes against 429 or 5xx\n * @param response\n */\n static checkResponseStatus(response: NetworkResponse<ServerAuthorizationTokenResponse>): boolean {\n return response.status === 429 || response.status >= 500 && response.status < 600;\n }\n\n /**\n * Checks a NetworkResponse object's RetryAfter header\n * @param response\n */\n static checkResponseForRetryAfter(response: NetworkResponse<ServerAuthorizationTokenResponse>): boolean {\n if (response.headers) {\n return response.headers.hasOwnProperty(HeaderNames.RETRY_AFTER) && (response.status < 200 || response.status >= 300);\n }\n return false;\n }\n\n /**\n * Calculates the Unix-time value for a throttle to expire given throttleTime in seconds.\n * @param throttleTime\n */\n static calculateThrottleTime(throttleTime: number): number {\n const time = throttleTime <= 0 ? 0 : throttleTime;\n\n const currentSeconds = Date.now() / 1000;\n return Math.floor(Math.min(\n currentSeconds + (time || ThrottlingConstants.DEFAULT_THROTTLE_TIME_SECONDS),\n currentSeconds + ThrottlingConstants.DEFAULT_MAX_THROTTLE_TIME_SECONDS\n ) * 1000);\n }\n\n static removeThrottle(cacheManager: CacheManager, clientId: string, authority: string, scopes: Array<string>, homeAccountIdentifier?: string): boolean {\n const thumbprint: RequestThumbprint = {\n clientId,\n authority,\n scopes,\n homeAccountIdentifier\n };\n\n const key = this.generateThrottlingStorageKey(thumbprint);\n return cacheManager.removeItem(key, CacheSchemaType.THROTTLING);\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  export declare const name = "@azure/msal-common";
2
- export declare const version = "4.5.0";
2
+ export declare const version = "4.5.1";
3
3
  //# sourceMappingURL=packageMetadata.d.ts.map
@@ -1,8 +1,8 @@
1
- /*! @azure/msal-common v4.5.0 2021-07-22 */
1
+ /*! @azure/msal-common v4.5.1 2021-08-02 */
2
2
  'use strict';
3
3
  /* eslint-disable header/header */
4
4
  var name = "@azure/msal-common";
5
- var version = "4.5.0";
5
+ var version = "4.5.1";
6
6
 
7
7
  export { name, version };
8
8
  //# sourceMappingURL=packageMetadata.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"packageMetadata.js","sources":["../src/packageMetadata.ts"],"sourcesContent":["/* eslint-disable header/header */\nexport const name = \"@azure/msal-common\";\nexport const version = \"4.5.0\";\n"],"names":[],"mappings":";;AAAA;IACa,IAAI,GAAG,qBAAqB;IAC5B,OAAO,GAAG;;;;"}
1
+ {"version":3,"file":"packageMetadata.js","sources":["../src/packageMetadata.ts"],"sourcesContent":["/* eslint-disable header/header */\nexport const name = \"@azure/msal-common\";\nexport const version = \"4.5.1\";\n"],"names":[],"mappings":";;AAAA;IACa,IAAI,GAAG,qBAAqB;IAC5B,OAAO,GAAG;;;;"}
@@ -1,11 +1,11 @@
1
- /*! @azure/msal-common v4.5.0 2021-07-22 */
1
+ /*! @azure/msal-common v4.5.1 2021-08-02 */
2
2
  'use strict';
3
3
  import { __spreadArrays } from '../_virtual/_tslib.js';
4
- import { AADServerParamKeys, Constants as Constants$1, ResponseMode, OIDC_DEFAULT_SCOPES, SSOTypes, HeaderNames, CLIENT_INFO, ClaimsRequestKeys, PasswordGrantConstants, AuthenticationScheme, ThrottlingConstants } from '../utils/Constants.js';
5
- import { StringUtils as StringUtils$1 } from '../utils/StringUtils.js';
6
- import { ClientConfigurationError as ClientConfigurationError$1 } from '../error/ClientConfigurationError.js';
7
- import { ScopeSet as ScopeSet$1 } from './ScopeSet.js';
8
- import { RequestValidator as RequestValidator$1 } from './RequestValidator.js';
4
+ import { AADServerParamKeys, Constants, ResponseMode, OIDC_DEFAULT_SCOPES, SSOTypes, HeaderNames, CLIENT_INFO, ClaimsRequestKeys, PasswordGrantConstants, AuthenticationScheme, ThrottlingConstants } from '../utils/Constants.js';
5
+ import { ScopeSet } from './ScopeSet.js';
6
+ import { ClientConfigurationError } from '../error/ClientConfigurationError.js';
7
+ import { RequestValidator } from './RequestValidator.js';
8
+ import { StringUtils } from '../utils/StringUtils.js';
9
9
 
10
10
  /*
11
11
  * Copyright (c) Microsoft Corporation. All rights reserved.
@@ -19,7 +19,7 @@ var RequestParameterBuilder = /** @class */ (function () {
19
19
  * add response_type = code
20
20
  */
21
21
  RequestParameterBuilder.prototype.addResponseTypeCode = function () {
22
- this.parameters.set(AADServerParamKeys.RESPONSE_TYPE, encodeURIComponent(Constants$1.CODE_RESPONSE_TYPE));
22
+ this.parameters.set(AADServerParamKeys.RESPONSE_TYPE, encodeURIComponent(Constants.CODE_RESPONSE_TYPE));
23
23
  };
24
24
  /**
25
25
  * add response_mode. defaults to query.
@@ -36,7 +36,7 @@ var RequestParameterBuilder = /** @class */ (function () {
36
36
  RequestParameterBuilder.prototype.addScopes = function (scopes, addOidcScopes) {
37
37
  if (addOidcScopes === void 0) { addOidcScopes = true; }
38
38
  var requestScopes = addOidcScopes ? __spreadArrays(scopes || [], OIDC_DEFAULT_SCOPES) : scopes || [];
39
- var scopeSet = new ScopeSet$1(requestScopes);
39
+ var scopeSet = new ScopeSet(requestScopes);
40
40
  this.parameters.set(AADServerParamKeys.SCOPE, encodeURIComponent(scopeSet.printScopes()));
41
41
  };
42
42
  /**
@@ -51,7 +51,7 @@ var RequestParameterBuilder = /** @class */ (function () {
51
51
  * @param redirectUri
52
52
  */
53
53
  RequestParameterBuilder.prototype.addRedirectUri = function (redirectUri) {
54
- RequestValidator$1.validateRedirectUri(redirectUri);
54
+ RequestValidator.validateRedirectUri(redirectUri);
55
55
  this.parameters.set(AADServerParamKeys.REDIRECT_URI, encodeURIComponent(redirectUri));
56
56
  };
57
57
  /**
@@ -59,7 +59,7 @@ var RequestParameterBuilder = /** @class */ (function () {
59
59
  * @param redirectUri
60
60
  */
61
61
  RequestParameterBuilder.prototype.addPostLogoutRedirectUri = function (redirectUri) {
62
- RequestValidator$1.validateRedirectUri(redirectUri);
62
+ RequestValidator.validateRedirectUri(redirectUri);
63
63
  this.parameters.set(AADServerParamKeys.POST_LOGOUT_URI, encodeURIComponent(redirectUri));
64
64
  };
65
65
  /**
@@ -110,7 +110,7 @@ var RequestParameterBuilder = /** @class */ (function () {
110
110
  */
111
111
  RequestParameterBuilder.prototype.addClaims = function (claims, clientCapabilities) {
112
112
  var mergedClaims = this.addClientCapabilitiesToClaims(claims, clientCapabilities);
113
- RequestValidator$1.validateClaims(mergedClaims);
113
+ RequestValidator.validateClaims(mergedClaims);
114
114
  this.parameters.set(AADServerParamKeys.CLAIMS, encodeURIComponent(mergedClaims));
115
115
  };
116
116
  /**
@@ -136,7 +136,7 @@ var RequestParameterBuilder = /** @class */ (function () {
136
136
  * @param prompt
137
137
  */
138
138
  RequestParameterBuilder.prototype.addPrompt = function (prompt) {
139
- RequestValidator$1.validatePrompt(prompt);
139
+ RequestValidator.validatePrompt(prompt);
140
140
  this.parameters.set("" + AADServerParamKeys.PROMPT, encodeURIComponent(prompt));
141
141
  };
142
142
  /**
@@ -144,7 +144,7 @@ var RequestParameterBuilder = /** @class */ (function () {
144
144
  * @param state
145
145
  */
146
146
  RequestParameterBuilder.prototype.addState = function (state) {
147
- if (!StringUtils$1.isEmpty(state)) {
147
+ if (!StringUtils.isEmpty(state)) {
148
148
  this.parameters.set(AADServerParamKeys.STATE, encodeURIComponent(state));
149
149
  }
150
150
  };
@@ -162,13 +162,13 @@ var RequestParameterBuilder = /** @class */ (function () {
162
162
  * @param codeChallengeMethod
163
163
  */
164
164
  RequestParameterBuilder.prototype.addCodeChallengeParams = function (codeChallenge, codeChallengeMethod) {
165
- RequestValidator$1.validateCodeChallengeParams(codeChallenge, codeChallengeMethod);
165
+ RequestValidator.validateCodeChallengeParams(codeChallenge, codeChallengeMethod);
166
166
  if (codeChallenge && codeChallengeMethod) {
167
167
  this.parameters.set(AADServerParamKeys.CODE_CHALLENGE, encodeURIComponent(codeChallenge));
168
168
  this.parameters.set(AADServerParamKeys.CODE_CHALLENGE_METHOD, encodeURIComponent(codeChallengeMethod));
169
169
  }
170
170
  else {
171
- throw ClientConfigurationError$1.createInvalidCodeChallengeParamsError();
171
+ throw ClientConfigurationError.createInvalidCodeChallengeParamsError();
172
172
  }
173
173
  };
174
174
  /**
@@ -254,7 +254,7 @@ var RequestParameterBuilder = /** @class */ (function () {
254
254
  */
255
255
  RequestParameterBuilder.prototype.addExtraQueryParameters = function (eQparams) {
256
256
  var _this = this;
257
- RequestValidator$1.sanitizeEQParams(eQparams, this.parameters);
257
+ RequestValidator.sanitizeEQParams(eQparams, this.parameters);
258
258
  Object.keys(eQparams).forEach(function (key) {
259
259
  _this.parameters.set(key, eQparams[key]);
260
260
  });
@@ -270,7 +270,7 @@ var RequestParameterBuilder = /** @class */ (function () {
270
270
  mergedClaims = JSON.parse(claims);
271
271
  }
272
272
  catch (e) {
273
- throw ClientConfigurationError$1.createInvalidClaimsRequestError();
273
+ throw ClientConfigurationError.createInvalidClaimsRequestError();
274
274
  }
275
275
  }
276
276
  if (clientCapabilities && clientCapabilities.length > 0) {
@@ -304,7 +304,7 @@ var RequestParameterBuilder = /** @class */ (function () {
304
304
  * @param cnfString
305
305
  */
306
306
  RequestParameterBuilder.prototype.addPopToken = function (cnfString) {
307
- if (!StringUtils$1.isEmpty(cnfString)) {
307
+ if (!StringUtils.isEmpty(cnfString)) {
308
308
  this.parameters.set(AADServerParamKeys.TOKEN_TYPE, AuthenticationScheme.POP);
309
309
  this.parameters.set(AADServerParamKeys.REQ_CNF, encodeURIComponent(cnfString));
310
310
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RequestParameterBuilder.js","sources":["../../src/request/RequestParameterBuilder.ts"],"sourcesContent":["/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n\r\nimport { AADServerParamKeys, Constants, ResponseMode, SSOTypes, CLIENT_INFO, AuthenticationScheme, ClaimsRequestKeys, PasswordGrantConstants, OIDC_DEFAULT_SCOPES, ThrottlingConstants, HeaderNames} from \"../utils/Constants\";\r\nimport { ScopeSet } from \"./ScopeSet\";\r\nimport { ClientConfigurationError } from \"../error/ClientConfigurationError\";\r\nimport { StringDict } from \"../utils/MsalTypes\";\r\nimport { RequestValidator } from \"./RequestValidator\";\r\nimport { LibraryInfo } from \"../config/ClientConfiguration\";\r\nimport { StringUtils } from \"../utils/StringUtils\";\r\nimport { ServerTelemetryManager } from \"../telemetry/server/ServerTelemetryManager\";\r\nimport { ClientInfo } from \"../account/ClientInfo\";\r\n\r\nexport class RequestParameterBuilder {\r\n\r\n private parameters: Map<string, string>;\r\n\r\n constructor() {\r\n this.parameters = new Map<string, string>();\r\n }\r\n\r\n /**\r\n * add response_type = code\r\n */\r\n addResponseTypeCode(): void {\r\n this.parameters.set(\r\n AADServerParamKeys.RESPONSE_TYPE, encodeURIComponent(Constants.CODE_RESPONSE_TYPE)\r\n );\r\n }\r\n\r\n /**\r\n * add response_mode. defaults to query.\r\n * @param responseMode\r\n */\r\n addResponseMode(responseMode?: ResponseMode): void {\r\n this.parameters.set(\r\n AADServerParamKeys.RESPONSE_MODE,\r\n encodeURIComponent((responseMode) ? responseMode : ResponseMode.QUERY)\r\n );\r\n }\r\n\r\n /**\r\n * add scopes. set addOidcScopes to false to prevent default scopes in non-user scenarios\r\n * @param scopeSet\r\n * @param addOidcScopes\r\n */\r\n addScopes(scopes: string[], addOidcScopes: boolean = true): void {\r\n const requestScopes = addOidcScopes ? [...scopes || [], ...OIDC_DEFAULT_SCOPES] : scopes || [];\r\n const scopeSet = new ScopeSet(requestScopes);\r\n this.parameters.set(AADServerParamKeys.SCOPE, encodeURIComponent(scopeSet.printScopes()));\r\n }\r\n\r\n /**\r\n * add clientId\r\n * @param clientId\r\n */\r\n addClientId(clientId: string): void {\r\n this.parameters.set(AADServerParamKeys.CLIENT_ID, encodeURIComponent(clientId));\r\n }\r\n\r\n /**\r\n * add redirect_uri\r\n * @param redirectUri\r\n */\r\n addRedirectUri(redirectUri: string): void {\r\n RequestValidator.validateRedirectUri(redirectUri);\r\n this.parameters.set(AADServerParamKeys.REDIRECT_URI, encodeURIComponent(redirectUri));\r\n }\r\n\r\n /**\r\n * add post logout redirectUri\r\n * @param redirectUri\r\n */\r\n addPostLogoutRedirectUri(redirectUri: string): void {\r\n RequestValidator.validateRedirectUri(redirectUri);\r\n this.parameters.set(AADServerParamKeys.POST_LOGOUT_URI, encodeURIComponent(redirectUri));\r\n }\r\n\r\n /**\r\n * add id_token_hint to logout request\r\n * @param idTokenHint\r\n */\r\n addIdTokenHint(idTokenHint: string): void {\r\n this.parameters.set(AADServerParamKeys.ID_TOKEN_HINT, encodeURIComponent(idTokenHint));\r\n }\r\n\r\n /**\r\n * add domain_hint\r\n * @param domainHint\r\n */\r\n addDomainHint(domainHint: string): void {\r\n this.parameters.set(SSOTypes.DOMAIN_HINT, encodeURIComponent(domainHint));\r\n }\r\n\r\n /**\r\n * add login_hint\r\n * @param loginHint\r\n */\r\n addLoginHint(loginHint: string): void {\r\n this.parameters.set(SSOTypes.LOGIN_HINT, encodeURIComponent(loginHint));\r\n }\r\n\r\n /**\r\n * Adds the CCS (Cache Credential Service) query parameter for login_hint\r\n * @param loginHint \r\n */\r\n addCcsUpn(loginHint: string): void {\r\n this.parameters.set(HeaderNames.CCS_HEADER, encodeURIComponent(`UPN:${loginHint}`));\r\n }\r\n\r\n /**\r\n * Adds the CCS (Cache Credential Service) query parameter for account object\r\n * @param loginHint \r\n */\r\n addCcsOid(clientInfo: ClientInfo): void {\r\n this.parameters.set(HeaderNames.CCS_HEADER, encodeURIComponent(`Oid:${clientInfo.uid}@${clientInfo.utid}`));\r\n }\r\n\r\n /**\r\n * add sid\r\n * @param sid\r\n */\r\n addSid(sid: string): void {\r\n this.parameters.set(SSOTypes.SID, encodeURIComponent(sid));\r\n }\r\n\r\n /**\r\n * add claims\r\n * @param claims\r\n */\r\n addClaims(claims?: string, clientCapabilities?: Array<string>): void {\r\n const mergedClaims = this.addClientCapabilitiesToClaims(claims, clientCapabilities);\r\n RequestValidator.validateClaims(mergedClaims);\r\n this.parameters.set(AADServerParamKeys.CLAIMS, encodeURIComponent(mergedClaims));\r\n }\r\n\r\n /**\r\n * add correlationId\r\n * @param correlationId\r\n */\r\n addCorrelationId(correlationId: string): void {\r\n this.parameters.set(AADServerParamKeys.CLIENT_REQUEST_ID, encodeURIComponent(correlationId));\r\n }\r\n\r\n /**\r\n * add library info query params\r\n * @param libraryInfo\r\n */\r\n addLibraryInfo(libraryInfo: LibraryInfo): void {\r\n // Telemetry Info\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_SKU, libraryInfo.sku);\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_VER, libraryInfo.version);\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_OS, libraryInfo.os);\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_CPU, libraryInfo.cpu);\r\n }\r\n\r\n /**\r\n * add prompt\r\n * @param prompt\r\n */\r\n addPrompt(prompt: string): void {\r\n RequestValidator.validatePrompt(prompt);\r\n this.parameters.set(`${AADServerParamKeys.PROMPT}`, encodeURIComponent(prompt));\r\n }\r\n\r\n /**\r\n * add state\r\n * @param state\r\n */\r\n addState(state: string): void {\r\n if (!StringUtils.isEmpty(state)) {\r\n this.parameters.set(AADServerParamKeys.STATE, encodeURIComponent(state));\r\n }\r\n }\r\n\r\n /**\r\n * add nonce\r\n * @param nonce\r\n */\r\n addNonce(nonce: string): void {\r\n this.parameters.set(AADServerParamKeys.NONCE, encodeURIComponent(nonce));\r\n }\r\n\r\n /**\r\n * add code_challenge and code_challenge_method\r\n * - throw if either of them are not passed\r\n * @param codeChallenge\r\n * @param codeChallengeMethod\r\n */\r\n addCodeChallengeParams(\r\n codeChallenge: string,\r\n codeChallengeMethod: string\r\n ): void {\r\n RequestValidator.validateCodeChallengeParams(codeChallenge, codeChallengeMethod);\r\n if (codeChallenge && codeChallengeMethod) {\r\n this.parameters.set(AADServerParamKeys.CODE_CHALLENGE, encodeURIComponent(codeChallenge));\r\n this.parameters.set(AADServerParamKeys.CODE_CHALLENGE_METHOD, encodeURIComponent(codeChallengeMethod));\r\n } else {\r\n throw ClientConfigurationError.createInvalidCodeChallengeParamsError();\r\n }\r\n }\r\n\r\n /**\r\n * add the `authorization_code` passed by the user to exchange for a token\r\n * @param code\r\n */\r\n addAuthorizationCode(code: string): void {\r\n this.parameters.set(AADServerParamKeys.CODE, encodeURIComponent(code));\r\n }\r\n\r\n /**\r\n * add the `authorization_code` passed by the user to exchange for a token\r\n * @param code\r\n */\r\n addDeviceCode(code: string): void {\r\n this.parameters.set(AADServerParamKeys.DEVICE_CODE, encodeURIComponent(code));\r\n }\r\n\r\n /**\r\n * add the `refreshToken` passed by the user\r\n * @param refreshToken\r\n */\r\n addRefreshToken(refreshToken: string): void {\r\n this.parameters.set(AADServerParamKeys.REFRESH_TOKEN, encodeURIComponent(refreshToken));\r\n }\r\n\r\n /**\r\n * add the `code_verifier` passed by the user to exchange for a token\r\n * @param codeVerifier\r\n */\r\n addCodeVerifier(codeVerifier: string): void {\r\n this.parameters.set(AADServerParamKeys.CODE_VERIFIER, encodeURIComponent(codeVerifier));\r\n }\r\n\r\n /**\r\n * add client_secret\r\n * @param clientSecret\r\n */\r\n addClientSecret(clientSecret: string): void {\r\n this.parameters.set(AADServerParamKeys.CLIENT_SECRET, encodeURIComponent(clientSecret));\r\n }\r\n\r\n /**\r\n * add clientAssertion for confidential client flows\r\n * @param clientAssertion\r\n */\r\n addClientAssertion(clientAssertion: string): void {\r\n this.parameters.set(AADServerParamKeys.CLIENT_ASSERTION, encodeURIComponent(clientAssertion));\r\n }\r\n\r\n /**\r\n * add clientAssertionType for confidential client flows\r\n * @param clientAssertionType\r\n */\r\n addClientAssertionType(clientAssertionType: string): void {\r\n this.parameters.set(AADServerParamKeys.CLIENT_ASSERTION_TYPE, encodeURIComponent(clientAssertionType));\r\n }\r\n\r\n /**\r\n * add OBO assertion for confidential client flows\r\n * @param clientAssertion\r\n */\r\n addOboAssertion(oboAssertion: string): void {\r\n this.parameters.set(AADServerParamKeys.OBO_ASSERTION, encodeURIComponent(oboAssertion));\r\n }\r\n\r\n /**\r\n * add grant type\r\n * @param grantType\r\n */\r\n addRequestTokenUse(tokenUse: string): void {\r\n this.parameters.set(AADServerParamKeys.REQUESTED_TOKEN_USE, encodeURIComponent(tokenUse));\r\n }\r\n\r\n /**\r\n * add grant type\r\n * @param grantType\r\n */\r\n addGrantType(grantType: string): void {\r\n this.parameters.set(AADServerParamKeys.GRANT_TYPE, encodeURIComponent(grantType));\r\n }\r\n\r\n /**\r\n * add client info\r\n *\r\n */\r\n addClientInfo(): void {\r\n this.parameters.set(CLIENT_INFO, \"1\");\r\n }\r\n\r\n /**\r\n * add extraQueryParams\r\n * @param eQparams\r\n */\r\n addExtraQueryParameters(eQparams: StringDict): void {\r\n RequestValidator.sanitizeEQParams(eQparams, this.parameters);\r\n Object.keys(eQparams).forEach((key) => {\r\n this.parameters.set(key, eQparams[key]);\r\n });\r\n }\r\n\r\n addClientCapabilitiesToClaims(claims?: string, clientCapabilities?: Array<string>): string {\r\n let mergedClaims: object;\r\n\r\n // Parse provided claims into JSON object or initialize empty object\r\n if (!claims) {\r\n mergedClaims = {};\r\n } else {\r\n try {\r\n mergedClaims = JSON.parse(claims);\r\n } catch(e) {\r\n throw ClientConfigurationError.createInvalidClaimsRequestError();\r\n }\r\n }\r\n\r\n if (clientCapabilities && clientCapabilities.length > 0) {\r\n if (!mergedClaims.hasOwnProperty(ClaimsRequestKeys.ACCESS_TOKEN)){\r\n // Add access_token key to claims object\r\n mergedClaims[ClaimsRequestKeys.ACCESS_TOKEN] = {};\r\n }\r\n\r\n // Add xms_cc claim with provided clientCapabilities to access_token key\r\n mergedClaims[ClaimsRequestKeys.ACCESS_TOKEN][ClaimsRequestKeys.XMS_CC] = {\r\n values: clientCapabilities\r\n };\r\n }\r\n\r\n return JSON.stringify(mergedClaims);\r\n }\r\n\r\n /**\r\n * adds `username` for Password Grant flow\r\n * @param username\r\n */\r\n addUsername(username: string): void {\r\n this.parameters.set(PasswordGrantConstants.username, username);\r\n }\r\n\r\n /**\r\n * adds `password` for Password Grant flow\r\n * @param password\r\n */\r\n addPassword(password: string): void {\r\n this.parameters.set(PasswordGrantConstants.password, password);\r\n }\r\n\r\n /**\r\n * add pop_jwk to query params\r\n * @param cnfString\r\n */\r\n addPopToken(cnfString: string): void {\r\n if (!StringUtils.isEmpty(cnfString)) {\r\n this.parameters.set(AADServerParamKeys.TOKEN_TYPE, AuthenticationScheme.POP);\r\n this.parameters.set(AADServerParamKeys.REQ_CNF, encodeURIComponent(cnfString));\r\n }\r\n }\r\n\r\n /**\r\n * add server telemetry fields\r\n * @param serverTelemetryManager \r\n */\r\n addServerTelemetry(serverTelemetryManager: ServerTelemetryManager): void {\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_CURR_TELEM, serverTelemetryManager.generateCurrentRequestHeaderValue());\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_LAST_TELEM, serverTelemetryManager.generateLastRequestHeaderValue());\r\n }\r\n\r\n /**\r\n * Adds parameter that indicates to the server that throttling is supported\r\n */\r\n addThrottling(): void {\r\n this.parameters.set(AADServerParamKeys.X_MS_LIB_CAPABILITY, ThrottlingConstants.X_MS_LIB_CAPABILITY_VALUE);\r\n }\r\n\r\n /**\r\n * Utility to create a URL from the params map\r\n */\r\n createQueryString(): string {\r\n const queryParameterArray: Array<string> = new Array<string>();\r\n\r\n this.parameters.forEach((value, key) => {\r\n queryParameterArray.push(`${key}=${value}`);\r\n });\r\n\r\n return queryParameterArray.join(\"&\");\r\n }\r\n}\r\n"],"names":["Constants","ScopeSet","RequestValidator","StringUtils","ClientConfigurationError"],"mappings":"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"}
1
+ {"version":3,"file":"RequestParameterBuilder.js","sources":["../../src/request/RequestParameterBuilder.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { AADServerParamKeys, Constants, ResponseMode, SSOTypes, CLIENT_INFO, AuthenticationScheme, ClaimsRequestKeys, PasswordGrantConstants, OIDC_DEFAULT_SCOPES, ThrottlingConstants, HeaderNames} from \"../utils/Constants\";\nimport { ScopeSet } from \"./ScopeSet\";\nimport { ClientConfigurationError } from \"../error/ClientConfigurationError\";\nimport { StringDict } from \"../utils/MsalTypes\";\nimport { RequestValidator } from \"./RequestValidator\";\nimport { LibraryInfo } from \"../config/ClientConfiguration\";\nimport { StringUtils } from \"../utils/StringUtils\";\nimport { ServerTelemetryManager } from \"../telemetry/server/ServerTelemetryManager\";\nimport { ClientInfo } from \"../account/ClientInfo\";\n\nexport class RequestParameterBuilder {\n\n private parameters: Map<string, string>;\n\n constructor() {\n this.parameters = new Map<string, string>();\n }\n\n /**\n * add response_type = code\n */\n addResponseTypeCode(): void {\n this.parameters.set(\n AADServerParamKeys.RESPONSE_TYPE, encodeURIComponent(Constants.CODE_RESPONSE_TYPE)\n );\n }\n\n /**\n * add response_mode. defaults to query.\n * @param responseMode\n */\n addResponseMode(responseMode?: ResponseMode): void {\n this.parameters.set(\n AADServerParamKeys.RESPONSE_MODE,\n encodeURIComponent((responseMode) ? responseMode : ResponseMode.QUERY)\n );\n }\n\n /**\n * add scopes. set addOidcScopes to false to prevent default scopes in non-user scenarios\n * @param scopeSet\n * @param addOidcScopes\n */\n addScopes(scopes: string[], addOidcScopes: boolean = true): void {\n const requestScopes = addOidcScopes ? [...scopes || [], ...OIDC_DEFAULT_SCOPES] : scopes || [];\n const scopeSet = new ScopeSet(requestScopes);\n this.parameters.set(AADServerParamKeys.SCOPE, encodeURIComponent(scopeSet.printScopes()));\n }\n\n /**\n * add clientId\n * @param clientId\n */\n addClientId(clientId: string): void {\n this.parameters.set(AADServerParamKeys.CLIENT_ID, encodeURIComponent(clientId));\n }\n\n /**\n * add redirect_uri\n * @param redirectUri\n */\n addRedirectUri(redirectUri: string): void {\n RequestValidator.validateRedirectUri(redirectUri);\n this.parameters.set(AADServerParamKeys.REDIRECT_URI, encodeURIComponent(redirectUri));\n }\n\n /**\n * add post logout redirectUri\n * @param redirectUri\n */\n addPostLogoutRedirectUri(redirectUri: string): void {\n RequestValidator.validateRedirectUri(redirectUri);\n this.parameters.set(AADServerParamKeys.POST_LOGOUT_URI, encodeURIComponent(redirectUri));\n }\n\n /**\n * add id_token_hint to logout request\n * @param idTokenHint\n */\n addIdTokenHint(idTokenHint: string): void {\n this.parameters.set(AADServerParamKeys.ID_TOKEN_HINT, encodeURIComponent(idTokenHint));\n }\n\n /**\n * add domain_hint\n * @param domainHint\n */\n addDomainHint(domainHint: string): void {\n this.parameters.set(SSOTypes.DOMAIN_HINT, encodeURIComponent(domainHint));\n }\n\n /**\n * add login_hint\n * @param loginHint\n */\n addLoginHint(loginHint: string): void {\n this.parameters.set(SSOTypes.LOGIN_HINT, encodeURIComponent(loginHint));\n }\n\n /**\n * Adds the CCS (Cache Credential Service) query parameter for login_hint\n * @param loginHint \n */\n addCcsUpn(loginHint: string): void {\n this.parameters.set(HeaderNames.CCS_HEADER, encodeURIComponent(`UPN:${loginHint}`));\n }\n\n /**\n * Adds the CCS (Cache Credential Service) query parameter for account object\n * @param loginHint \n */\n addCcsOid(clientInfo: ClientInfo): void {\n this.parameters.set(HeaderNames.CCS_HEADER, encodeURIComponent(`Oid:${clientInfo.uid}@${clientInfo.utid}`));\n }\n\n /**\n * add sid\n * @param sid\n */\n addSid(sid: string): void {\n this.parameters.set(SSOTypes.SID, encodeURIComponent(sid));\n }\n\n /**\n * add claims\n * @param claims\n */\n addClaims(claims?: string, clientCapabilities?: Array<string>): void {\n const mergedClaims = this.addClientCapabilitiesToClaims(claims, clientCapabilities);\n RequestValidator.validateClaims(mergedClaims);\n this.parameters.set(AADServerParamKeys.CLAIMS, encodeURIComponent(mergedClaims));\n }\n\n /**\n * add correlationId\n * @param correlationId\n */\n addCorrelationId(correlationId: string): void {\n this.parameters.set(AADServerParamKeys.CLIENT_REQUEST_ID, encodeURIComponent(correlationId));\n }\n\n /**\n * add library info query params\n * @param libraryInfo\n */\n addLibraryInfo(libraryInfo: LibraryInfo): void {\n // Telemetry Info\n this.parameters.set(AADServerParamKeys.X_CLIENT_SKU, libraryInfo.sku);\n this.parameters.set(AADServerParamKeys.X_CLIENT_VER, libraryInfo.version);\n this.parameters.set(AADServerParamKeys.X_CLIENT_OS, libraryInfo.os);\n this.parameters.set(AADServerParamKeys.X_CLIENT_CPU, libraryInfo.cpu);\n }\n\n /**\n * add prompt\n * @param prompt\n */\n addPrompt(prompt: string): void {\n RequestValidator.validatePrompt(prompt);\n this.parameters.set(`${AADServerParamKeys.PROMPT}`, encodeURIComponent(prompt));\n }\n\n /**\n * add state\n * @param state\n */\n addState(state: string): void {\n if (!StringUtils.isEmpty(state)) {\n this.parameters.set(AADServerParamKeys.STATE, encodeURIComponent(state));\n }\n }\n\n /**\n * add nonce\n * @param nonce\n */\n addNonce(nonce: string): void {\n this.parameters.set(AADServerParamKeys.NONCE, encodeURIComponent(nonce));\n }\n\n /**\n * add code_challenge and code_challenge_method\n * - throw if either of them are not passed\n * @param codeChallenge\n * @param codeChallengeMethod\n */\n addCodeChallengeParams(\n codeChallenge: string,\n codeChallengeMethod: string\n ): void {\n RequestValidator.validateCodeChallengeParams(codeChallenge, codeChallengeMethod);\n if (codeChallenge && codeChallengeMethod) {\n this.parameters.set(AADServerParamKeys.CODE_CHALLENGE, encodeURIComponent(codeChallenge));\n this.parameters.set(AADServerParamKeys.CODE_CHALLENGE_METHOD, encodeURIComponent(codeChallengeMethod));\n } else {\n throw ClientConfigurationError.createInvalidCodeChallengeParamsError();\n }\n }\n\n /**\n * add the `authorization_code` passed by the user to exchange for a token\n * @param code\n */\n addAuthorizationCode(code: string): void {\n this.parameters.set(AADServerParamKeys.CODE, encodeURIComponent(code));\n }\n\n /**\n * add the `authorization_code` passed by the user to exchange for a token\n * @param code\n */\n addDeviceCode(code: string): void {\n this.parameters.set(AADServerParamKeys.DEVICE_CODE, encodeURIComponent(code));\n }\n\n /**\n * add the `refreshToken` passed by the user\n * @param refreshToken\n */\n addRefreshToken(refreshToken: string): void {\n this.parameters.set(AADServerParamKeys.REFRESH_TOKEN, encodeURIComponent(refreshToken));\n }\n\n /**\n * add the `code_verifier` passed by the user to exchange for a token\n * @param codeVerifier\n */\n addCodeVerifier(codeVerifier: string): void {\n this.parameters.set(AADServerParamKeys.CODE_VERIFIER, encodeURIComponent(codeVerifier));\n }\n\n /**\n * add client_secret\n * @param clientSecret\n */\n addClientSecret(clientSecret: string): void {\n this.parameters.set(AADServerParamKeys.CLIENT_SECRET, encodeURIComponent(clientSecret));\n }\n\n /**\n * add clientAssertion for confidential client flows\n * @param clientAssertion\n */\n addClientAssertion(clientAssertion: string): void {\n this.parameters.set(AADServerParamKeys.CLIENT_ASSERTION, encodeURIComponent(clientAssertion));\n }\n\n /**\n * add clientAssertionType for confidential client flows\n * @param clientAssertionType\n */\n addClientAssertionType(clientAssertionType: string): void {\n this.parameters.set(AADServerParamKeys.CLIENT_ASSERTION_TYPE, encodeURIComponent(clientAssertionType));\n }\n\n /**\n * add OBO assertion for confidential client flows\n * @param clientAssertion\n */\n addOboAssertion(oboAssertion: string): void {\n this.parameters.set(AADServerParamKeys.OBO_ASSERTION, encodeURIComponent(oboAssertion));\n }\n\n /**\n * add grant type\n * @param grantType\n */\n addRequestTokenUse(tokenUse: string): void {\n this.parameters.set(AADServerParamKeys.REQUESTED_TOKEN_USE, encodeURIComponent(tokenUse));\n }\n\n /**\n * add grant type\n * @param grantType\n */\n addGrantType(grantType: string): void {\n this.parameters.set(AADServerParamKeys.GRANT_TYPE, encodeURIComponent(grantType));\n }\n\n /**\n * add client info\n *\n */\n addClientInfo(): void {\n this.parameters.set(CLIENT_INFO, \"1\");\n }\n\n /**\n * add extraQueryParams\n * @param eQparams\n */\n addExtraQueryParameters(eQparams: StringDict): void {\n RequestValidator.sanitizeEQParams(eQparams, this.parameters);\n Object.keys(eQparams).forEach((key) => {\n this.parameters.set(key, eQparams[key]);\n });\n }\n\n addClientCapabilitiesToClaims(claims?: string, clientCapabilities?: Array<string>): string {\n let mergedClaims: object;\n\n // Parse provided claims into JSON object or initialize empty object\n if (!claims) {\n mergedClaims = {};\n } else {\n try {\n mergedClaims = JSON.parse(claims);\n } catch(e) {\n throw ClientConfigurationError.createInvalidClaimsRequestError();\n }\n }\n\n if (clientCapabilities && clientCapabilities.length > 0) {\n if (!mergedClaims.hasOwnProperty(ClaimsRequestKeys.ACCESS_TOKEN)){\n // Add access_token key to claims object\n mergedClaims[ClaimsRequestKeys.ACCESS_TOKEN] = {};\n }\n\n // Add xms_cc claim with provided clientCapabilities to access_token key\n mergedClaims[ClaimsRequestKeys.ACCESS_TOKEN][ClaimsRequestKeys.XMS_CC] = {\n values: clientCapabilities\n };\n }\n\n return JSON.stringify(mergedClaims);\n }\n\n /**\n * adds `username` for Password Grant flow\n * @param username\n */\n addUsername(username: string): void {\n this.parameters.set(PasswordGrantConstants.username, username);\n }\n\n /**\n * adds `password` for Password Grant flow\n * @param password\n */\n addPassword(password: string): void {\n this.parameters.set(PasswordGrantConstants.password, password);\n }\n\n /**\n * add pop_jwk to query params\n * @param cnfString\n */\n addPopToken(cnfString: string): void {\n if (!StringUtils.isEmpty(cnfString)) {\n this.parameters.set(AADServerParamKeys.TOKEN_TYPE, AuthenticationScheme.POP);\n this.parameters.set(AADServerParamKeys.REQ_CNF, encodeURIComponent(cnfString));\n }\n }\n\n /**\n * add server telemetry fields\n * @param serverTelemetryManager \n */\n addServerTelemetry(serverTelemetryManager: ServerTelemetryManager): void {\n this.parameters.set(AADServerParamKeys.X_CLIENT_CURR_TELEM, serverTelemetryManager.generateCurrentRequestHeaderValue());\n this.parameters.set(AADServerParamKeys.X_CLIENT_LAST_TELEM, serverTelemetryManager.generateLastRequestHeaderValue());\n }\n\n /**\n * Adds parameter that indicates to the server that throttling is supported\n */\n addThrottling(): void {\n this.parameters.set(AADServerParamKeys.X_MS_LIB_CAPABILITY, ThrottlingConstants.X_MS_LIB_CAPABILITY_VALUE);\n }\n\n /**\n * Utility to create a URL from the params map\n */\n createQueryString(): string {\n const queryParameterArray: Array<string> = new Array<string>();\n\n this.parameters.forEach((value, key) => {\n queryParameterArray.push(`${key}=${value}`);\n });\n\n return queryParameterArray.join(\"&\");\n }\n}\n"],"names":[],"mappings":"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"}