@azure/msal-common 4.5.0 → 5.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.json +178 -0
- package/{changelog.md → CHANGELOG.md} +446 -390
- package/LICENSE +21 -21
- package/README.md +62 -61
- package/dist/_virtual/_tslib.js +1 -1
- package/dist/account/AuthToken.js +7 -7
- package/dist/account/AuthToken.js.map +1 -1
- package/dist/account/CcsCredential.js +1 -1
- package/dist/account/CcsCredential.js.map +1 -1
- package/dist/account/ClientInfo.js +10 -10
- package/dist/account/ClientInfo.js.map +1 -1
- package/dist/account/TokenClaims.d.ts +5 -0
- package/dist/account/TokenClaims.d.ts.map +1 -1
- package/dist/authority/Authority.d.ts.map +1 -1
- package/dist/authority/Authority.js +60 -54
- package/dist/authority/Authority.js.map +1 -1
- package/dist/authority/AuthorityFactory.js +9 -9
- package/dist/authority/AuthorityFactory.js.map +1 -1
- package/dist/authority/AuthorityType.js +1 -1
- package/dist/authority/AuthorityType.js.map +1 -1
- package/dist/authority/CloudInstanceDiscoveryResponse.js +1 -1
- package/dist/authority/CloudInstanceDiscoveryResponse.js.map +1 -1
- package/dist/authority/OpenIdConfigResponse.d.ts +1 -1
- package/dist/authority/OpenIdConfigResponse.d.ts.map +1 -1
- package/dist/authority/OpenIdConfigResponse.js +1 -2
- package/dist/authority/OpenIdConfigResponse.js.map +1 -1
- package/dist/authority/ProtocolMode.js +1 -1
- package/dist/authority/ProtocolMode.js.map +1 -1
- package/dist/authority/RegionDiscovery.js +9 -9
- package/dist/authority/RegionDiscovery.js.map +1 -1
- package/dist/cache/CacheManager.d.ts +23 -9
- package/dist/cache/CacheManager.d.ts.map +1 -1
- package/dist/cache/CacheManager.js +244 -114
- package/dist/cache/CacheManager.js.map +1 -1
- package/dist/cache/entities/AccessTokenEntity.d.ts +3 -2
- package/dist/cache/entities/AccessTokenEntity.d.ts.map +1 -1
- package/dist/cache/entities/AccessTokenEntity.js +23 -17
- package/dist/cache/entities/AccessTokenEntity.js.map +1 -1
- package/dist/cache/entities/AccountEntity.d.ts +2 -2
- package/dist/cache/entities/AccountEntity.d.ts.map +1 -1
- package/dist/cache/entities/AccountEntity.js +18 -18
- package/dist/cache/entities/AccountEntity.js.map +1 -1
- package/dist/cache/entities/AppMetadataEntity.js +1 -1
- package/dist/cache/entities/AppMetadataEntity.js.map +1 -1
- package/dist/cache/entities/AuthorityMetadataEntity.d.ts +1 -1
- package/dist/cache/entities/AuthorityMetadataEntity.d.ts.map +1 -1
- package/dist/cache/entities/AuthorityMetadataEntity.js +5 -6
- package/dist/cache/entities/AuthorityMetadataEntity.js.map +1 -1
- package/dist/cache/entities/CacheRecord.js +1 -1
- package/dist/cache/entities/CacheRecord.js.map +1 -1
- package/dist/cache/entities/CredentialEntity.d.ts +7 -3
- package/dist/cache/entities/CredentialEntity.d.ts.map +1 -1
- package/dist/cache/entities/CredentialEntity.js +16 -9
- package/dist/cache/entities/CredentialEntity.js.map +1 -1
- package/dist/cache/entities/IdTokenEntity.js +3 -3
- package/dist/cache/entities/IdTokenEntity.js.map +1 -1
- package/dist/cache/entities/RefreshTokenEntity.js +3 -3
- package/dist/cache/entities/RefreshTokenEntity.js.map +1 -1
- package/dist/cache/entities/ServerTelemetryEntity.js +1 -1
- package/dist/cache/entities/ServerTelemetryEntity.js.map +1 -1
- package/dist/cache/entities/ThrottlingEntity.js +1 -1
- package/dist/cache/entities/ThrottlingEntity.js.map +1 -1
- package/dist/cache/interface/ICacheManager.d.ts +5 -5
- package/dist/cache/interface/ICacheManager.d.ts.map +1 -1
- package/dist/cache/persistence/TokenCacheContext.js +3 -3
- package/dist/cache/persistence/TokenCacheContext.js.map +1 -1
- package/dist/cache/utils/CacheTypes.d.ts +4 -1
- package/dist/cache/utils/CacheTypes.d.ts.map +1 -1
- package/dist/client/AuthorizationCodeClient.d.ts +1 -1
- package/dist/client/AuthorizationCodeClient.d.ts.map +1 -1
- package/dist/client/AuthorizationCodeClient.js +56 -43
- package/dist/client/AuthorizationCodeClient.js.map +1 -1
- package/dist/client/BaseClient.js +11 -11
- package/dist/client/BaseClient.js.map +1 -1
- package/dist/client/ClientCredentialClient.d.ts.map +1 -1
- package/dist/client/ClientCredentialClient.js +24 -18
- package/dist/client/ClientCredentialClient.js.map +1 -1
- package/dist/client/DeviceCodeClient.d.ts.map +1 -1
- package/dist/client/DeviceCodeClient.js +39 -27
- package/dist/client/DeviceCodeClient.js.map +1 -1
- package/dist/client/OnBehalfOfClient.d.ts.map +1 -1
- package/dist/client/OnBehalfOfClient.js +26 -20
- package/dist/client/OnBehalfOfClient.js.map +1 -1
- package/dist/client/RefreshTokenClient.d.ts.map +1 -1
- package/dist/client/RefreshTokenClient.js +49 -32
- package/dist/client/RefreshTokenClient.js.map +1 -1
- package/dist/client/SilentFlowClient.d.ts.map +1 -1
- package/dist/client/SilentFlowClient.js +40 -35
- package/dist/client/SilentFlowClient.js.map +1 -1
- package/dist/client/UsernamePasswordClient.d.ts.map +1 -1
- package/dist/client/UsernamePasswordClient.js +18 -12
- package/dist/client/UsernamePasswordClient.js.map +1 -1
- package/dist/config/ClientConfiguration.d.ts.map +1 -1
- package/dist/config/ClientConfiguration.js +8 -7
- package/dist/config/ClientConfiguration.js.map +1 -1
- package/dist/crypto/ICrypto.d.ts +11 -1
- package/dist/crypto/ICrypto.d.ts.map +1 -1
- package/dist/crypto/ICrypto.js +26 -8
- package/dist/crypto/ICrypto.js.map +1 -1
- package/dist/crypto/PopTokenGenerator.d.ts +21 -4
- package/dist/crypto/PopTokenGenerator.d.ts.map +1 -1
- package/dist/crypto/PopTokenGenerator.js +42 -31
- package/dist/crypto/PopTokenGenerator.js.map +1 -1
- package/dist/error/AuthError.d.ts +5 -0
- package/dist/error/AuthError.d.ts.map +1 -1
- package/dist/error/AuthError.js +6 -3
- package/dist/error/AuthError.js.map +1 -1
- package/dist/error/ClientAuthError.d.ts +13 -4
- package/dist/error/ClientAuthError.d.ts.map +1 -1
- package/dist/error/ClientAuthError.js +20 -9
- package/dist/error/ClientAuthError.js.map +1 -1
- package/dist/error/ClientConfigurationError.d.ts +29 -0
- package/dist/error/ClientConfigurationError.d.ts.map +1 -1
- package/dist/error/ClientConfigurationError.js +45 -5
- package/dist/error/ClientConfigurationError.js.map +1 -1
- package/dist/error/InteractionRequiredAuthError.d.ts +24 -5
- package/dist/error/InteractionRequiredAuthError.d.ts.map +1 -1
- package/dist/error/InteractionRequiredAuthError.js +30 -9
- package/dist/error/InteractionRequiredAuthError.js.map +1 -1
- package/dist/error/ServerError.js +3 -3
- package/dist/error/ServerError.js.map +1 -1
- package/dist/index.cjs.js +675 -244
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +7 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +33 -29
- package/dist/index.js.map +1 -1
- package/dist/logger/Logger.d.ts.map +1 -1
- package/dist/logger/Logger.js +11 -9
- package/dist/logger/Logger.js.map +1 -1
- package/dist/network/INetworkModule.js +4 -4
- package/dist/network/INetworkModule.js.map +1 -1
- package/dist/network/NetworkManager.js +8 -8
- package/dist/network/NetworkManager.js.map +1 -1
- package/dist/network/RequestThumbprint.d.ts +7 -0
- package/dist/network/RequestThumbprint.d.ts.map +1 -1
- package/dist/network/ThrottlingUtils.d.ts +2 -1
- package/dist/network/ThrottlingUtils.d.ts.map +1 -1
- package/dist/network/ThrottlingUtils.js +14 -8
- package/dist/network/ThrottlingUtils.js.map +1 -1
- package/dist/packageMetadata.d.ts +1 -1
- package/dist/packageMetadata.js +2 -2
- package/dist/packageMetadata.js.map +1 -1
- package/dist/request/AuthenticationHeaderParser.d.ts +20 -0
- package/dist/request/AuthenticationHeaderParser.d.ts.map +1 -0
- package/dist/request/AuthenticationHeaderParser.js +64 -0
- package/dist/request/AuthenticationHeaderParser.js.map +1 -0
- package/dist/request/BaseAuthRequest.d.ts +7 -1
- package/dist/request/BaseAuthRequest.d.ts.map +1 -1
- package/dist/request/CommonEndSessionRequest.d.ts +4 -0
- package/dist/request/CommonEndSessionRequest.d.ts.map +1 -1
- package/dist/request/RequestParameterBuilder.d.ts +4 -0
- package/dist/request/RequestParameterBuilder.d.ts.map +1 -1
- package/dist/request/RequestParameterBuilder.js +27 -18
- package/dist/request/RequestParameterBuilder.js.map +1 -1
- package/dist/request/RequestValidator.js +10 -10
- package/dist/request/RequestValidator.js.map +1 -1
- package/dist/request/ScopeSet.js +14 -14
- package/dist/request/ScopeSet.js.map +1 -1
- package/dist/response/AuthenticationResult.d.ts +2 -1
- package/dist/response/AuthenticationResult.d.ts.map +1 -1
- package/dist/response/ExternalTokenResponse.d.ts +15 -0
- package/dist/response/ExternalTokenResponse.d.ts.map +1 -0
- package/dist/response/ResponseHandler.d.ts.map +1 -1
- package/dist/response/ResponseHandler.js +74 -69
- package/dist/response/ResponseHandler.js.map +1 -1
- package/dist/response/ServerAuthorizationTokenResponse.d.ts +5 -2
- package/dist/response/ServerAuthorizationTokenResponse.d.ts.map +1 -1
- package/dist/telemetry/server/ServerTelemetryManager.js +13 -13
- package/dist/telemetry/server/ServerTelemetryManager.js.map +1 -1
- package/dist/url/UrlString.d.ts +0 -6
- package/dist/url/UrlString.d.ts.map +1 -1
- package/dist/url/UrlString.js +25 -40
- package/dist/url/UrlString.js.map +1 -1
- package/dist/utils/Constants.d.ts +5 -2
- package/dist/utils/Constants.d.ts.map +1 -1
- package/dist/utils/Constants.js +5 -2
- package/dist/utils/Constants.js.map +1 -1
- package/dist/utils/ProtocolUtils.js +13 -13
- package/dist/utils/ProtocolUtils.js.map +1 -1
- package/dist/utils/StringUtils.d.ts.map +1 -1
- package/dist/utils/StringUtils.js +15 -14
- package/dist/utils/StringUtils.js.map +1 -1
- package/dist/utils/TimeUtils.js +1 -1
- package/dist/utils/TimeUtils.js.map +1 -1
- package/package.json +1 -1
package/dist/url/UrlString.d.ts
CHANGED
|
@@ -16,12 +16,6 @@ export declare class UrlString {
|
|
|
16
16
|
* Throws if urlString passed is not a valid authority URI string.
|
|
17
17
|
*/
|
|
18
18
|
validateAsUri(): void;
|
|
19
|
-
/**
|
|
20
|
-
* Function to remove query string params from url. Returns the new url.
|
|
21
|
-
* @param url
|
|
22
|
-
* @param name
|
|
23
|
-
*/
|
|
24
|
-
urlRemoveQueryStringParameter(name: string): string;
|
|
25
19
|
/**
|
|
26
20
|
* Given a url and a query string return the url with provided query string appended
|
|
27
21
|
* @param url
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UrlString.d.ts","sourceRoot":"","sources":["../../src/url/UrlString.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,+BAA+B,EAAE,MAAM,6CAA6C,CAAC;AAI9F,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAG9B;;GAEG;AACH,qBAAa,SAAS;IAGlB,OAAO,CAAC,UAAU,CAAS;IAC3B,IAAW,SAAS,IAAI,MAAM,CAE7B;gBAEW,GAAG,EAAE,MAAM;IAYvB;;;OAGG;IACH,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAoB3C;;OAEG;IACH,aAAa,IAAI,IAAI;IAoBrB;;;;OAIG;IACH,
|
|
1
|
+
{"version":3,"file":"UrlString.d.ts","sourceRoot":"","sources":["../../src/url/UrlString.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,+BAA+B,EAAE,MAAM,6CAA6C,CAAC;AAI9F,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAG9B;;GAEG;AACH,qBAAa,SAAS;IAGlB,OAAO,CAAC,UAAU,CAAS;IAC3B,IAAW,SAAS,IAAI,MAAM,CAE7B;gBAEW,GAAG,EAAE,MAAM;IAYvB;;;OAGG;IACH,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAoB3C;;OAEG;IACH,aAAa,IAAI,IAAI;IAoBrB;;;;OAIG;IACH,MAAM,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM;IAQlE;;;OAGG;IACH,MAAM,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAI7C;;;;OAIG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS;IAS9C;;OAEG;IACH,OAAO,IAAI,MAAM;IAIjB;;;OAGG;IACH,gBAAgB,IAAI,IAAI;IA4BxB,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAY5C,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM;IAWnE;;;OAGG;IACH,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAW5C,MAAM,CAAC,+BAA+B,CAAC,SAAS,EAAE,IAAI,GAAG,SAAS;IAIlE;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,+BAA+B;IAgBzE;;OAEG;IACH,MAAM,CAAC,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAc5D"}
|
package/dist/url/UrlString.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
/*! @azure/msal-common
|
|
1
|
+
/*! @azure/msal-common v5.1.0 2021-11-02 */
|
|
2
2
|
'use strict';
|
|
3
|
-
import {
|
|
4
|
-
import { ClientAuthError
|
|
5
|
-
import { StringUtils
|
|
6
|
-
import {
|
|
3
|
+
import { ClientConfigurationError } from '../error/ClientConfigurationError.js';
|
|
4
|
+
import { ClientAuthError } from '../error/ClientAuthError.js';
|
|
5
|
+
import { StringUtils } from '../utils/StringUtils.js';
|
|
6
|
+
import { AADAuthorityConstants, Constants } from '../utils/Constants.js';
|
|
7
7
|
|
|
8
8
|
/*
|
|
9
9
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -15,11 +15,11 @@ import { ClientConfigurationError as ClientConfigurationError$1 } from '../error
|
|
|
15
15
|
var UrlString = /** @class */ (function () {
|
|
16
16
|
function UrlString(url) {
|
|
17
17
|
this._urlString = url;
|
|
18
|
-
if (StringUtils
|
|
18
|
+
if (StringUtils.isEmpty(this._urlString)) {
|
|
19
19
|
// Throws error if url is empty
|
|
20
|
-
throw ClientConfigurationError
|
|
20
|
+
throw ClientConfigurationError.createUrlEmptyError();
|
|
21
21
|
}
|
|
22
|
-
if (StringUtils
|
|
22
|
+
if (StringUtils.isEmpty(this.getHash())) {
|
|
23
23
|
this._urlString = UrlString.canonicalizeUri(url);
|
|
24
24
|
}
|
|
25
25
|
}
|
|
@@ -27,7 +27,7 @@ var UrlString = /** @class */ (function () {
|
|
|
27
27
|
get: function () {
|
|
28
28
|
return this._urlString;
|
|
29
29
|
},
|
|
30
|
-
enumerable:
|
|
30
|
+
enumerable: false,
|
|
31
31
|
configurable: true
|
|
32
32
|
});
|
|
33
33
|
/**
|
|
@@ -37,13 +37,13 @@ var UrlString = /** @class */ (function () {
|
|
|
37
37
|
UrlString.canonicalizeUri = function (url) {
|
|
38
38
|
if (url) {
|
|
39
39
|
var lowerCaseUrl = url.toLowerCase();
|
|
40
|
-
if (StringUtils
|
|
40
|
+
if (StringUtils.endsWith(lowerCaseUrl, "?")) {
|
|
41
41
|
lowerCaseUrl = lowerCaseUrl.slice(0, -1);
|
|
42
42
|
}
|
|
43
|
-
else if (StringUtils
|
|
43
|
+
else if (StringUtils.endsWith(lowerCaseUrl, "?/")) {
|
|
44
44
|
lowerCaseUrl = lowerCaseUrl.slice(0, -2);
|
|
45
45
|
}
|
|
46
|
-
if (!StringUtils
|
|
46
|
+
if (!StringUtils.endsWith(lowerCaseUrl, "/")) {
|
|
47
47
|
lowerCaseUrl += "/";
|
|
48
48
|
}
|
|
49
49
|
return lowerCaseUrl;
|
|
@@ -60,40 +60,24 @@ var UrlString = /** @class */ (function () {
|
|
|
60
60
|
components = this.getUrlComponents();
|
|
61
61
|
}
|
|
62
62
|
catch (e) {
|
|
63
|
-
throw ClientConfigurationError
|
|
63
|
+
throw ClientConfigurationError.createUrlParseError(e);
|
|
64
64
|
}
|
|
65
65
|
// Throw error if URI or path segments are not parseable.
|
|
66
66
|
if (!components.HostNameAndPort || !components.PathSegments) {
|
|
67
|
-
throw ClientConfigurationError
|
|
67
|
+
throw ClientConfigurationError.createUrlParseError("Given url string: " + this.urlString);
|
|
68
68
|
}
|
|
69
69
|
// Throw error if uri is insecure.
|
|
70
70
|
if (!components.Protocol || components.Protocol.toLowerCase() !== "https:") {
|
|
71
|
-
throw ClientConfigurationError
|
|
71
|
+
throw ClientConfigurationError.createInsecureAuthorityUriError(this.urlString);
|
|
72
72
|
}
|
|
73
73
|
};
|
|
74
|
-
/**
|
|
75
|
-
* Function to remove query string params from url. Returns the new url.
|
|
76
|
-
* @param url
|
|
77
|
-
* @param name
|
|
78
|
-
*/
|
|
79
|
-
UrlString.prototype.urlRemoveQueryStringParameter = function (name) {
|
|
80
|
-
var regex = new RegExp("(\\&" + name + "=)[^\&]+");
|
|
81
|
-
this._urlString = this.urlString.replace(regex, "");
|
|
82
|
-
// name=value&
|
|
83
|
-
regex = new RegExp("(" + name + "=)[^\&]+&");
|
|
84
|
-
this._urlString = this.urlString.replace(regex, "");
|
|
85
|
-
// name=value
|
|
86
|
-
regex = new RegExp("(" + name + "=)[^\&]+");
|
|
87
|
-
this._urlString = this.urlString.replace(regex, "");
|
|
88
|
-
return this.urlString;
|
|
89
|
-
};
|
|
90
74
|
/**
|
|
91
75
|
* Given a url and a query string return the url with provided query string appended
|
|
92
76
|
* @param url
|
|
93
77
|
* @param queryString
|
|
94
78
|
*/
|
|
95
79
|
UrlString.appendQueryString = function (url, queryString) {
|
|
96
|
-
if (StringUtils
|
|
80
|
+
if (StringUtils.isEmpty(queryString)) {
|
|
97
81
|
return url;
|
|
98
82
|
}
|
|
99
83
|
return url.indexOf("?") < 0 ? url + "?" + queryString : url + "&" + queryString;
|
|
@@ -134,7 +118,7 @@ var UrlString = /** @class */ (function () {
|
|
|
134
118
|
// If url string does not match regEx, we throw an error
|
|
135
119
|
var match = this.urlString.match(regEx);
|
|
136
120
|
if (!match) {
|
|
137
|
-
throw ClientConfigurationError
|
|
121
|
+
throw ClientConfigurationError.createUrlParseError("Given url string: " + this.urlString);
|
|
138
122
|
}
|
|
139
123
|
// Url component object
|
|
140
124
|
var urlComponents = {
|
|
@@ -146,7 +130,7 @@ var UrlString = /** @class */ (function () {
|
|
|
146
130
|
var pathSegments = urlComponents.AbsolutePath.split("/");
|
|
147
131
|
pathSegments = pathSegments.filter(function (val) { return val && val.length > 0; }); // remove empty elements
|
|
148
132
|
urlComponents.PathSegments = pathSegments;
|
|
149
|
-
if (!StringUtils
|
|
133
|
+
if (!StringUtils.isEmpty(urlComponents.QueryString) && urlComponents.QueryString.endsWith("/")) {
|
|
150
134
|
urlComponents.QueryString = urlComponents.QueryString.substring(0, urlComponents.QueryString.length - 1);
|
|
151
135
|
}
|
|
152
136
|
return urlComponents;
|
|
@@ -155,12 +139,12 @@ var UrlString = /** @class */ (function () {
|
|
|
155
139
|
var regEx = RegExp("^([^:/?#]+://)?([^/?#]*)");
|
|
156
140
|
var match = url.match(regEx);
|
|
157
141
|
if (!match) {
|
|
158
|
-
throw ClientConfigurationError
|
|
142
|
+
throw ClientConfigurationError.createUrlParseError("Given url string: " + url);
|
|
159
143
|
}
|
|
160
144
|
return match[2];
|
|
161
145
|
};
|
|
162
146
|
UrlString.getAbsoluteUrl = function (relativeUrl, baseUrl) {
|
|
163
|
-
if (relativeUrl[0] === Constants
|
|
147
|
+
if (relativeUrl[0] === Constants.FORWARD_SLASH) {
|
|
164
148
|
var url = new UrlString(baseUrl);
|
|
165
149
|
var baseComponents = url.getUrlComponents();
|
|
166
150
|
return baseComponents.Protocol + "//" + baseComponents.HostNameAndPort + relativeUrl;
|
|
@@ -190,16 +174,16 @@ var UrlString = /** @class */ (function () {
|
|
|
190
174
|
*/
|
|
191
175
|
UrlString.getDeserializedHash = function (hash) {
|
|
192
176
|
// Check if given hash is empty
|
|
193
|
-
if (StringUtils
|
|
177
|
+
if (StringUtils.isEmpty(hash)) {
|
|
194
178
|
return {};
|
|
195
179
|
}
|
|
196
180
|
// Strip the # symbol if present
|
|
197
181
|
var parsedHash = UrlString.parseHash(hash);
|
|
198
182
|
// If # symbol was not present, above will return empty string, so give original hash value
|
|
199
|
-
var deserializedHash = StringUtils
|
|
183
|
+
var deserializedHash = StringUtils.queryStringToObject(StringUtils.isEmpty(parsedHash) ? hash : parsedHash);
|
|
200
184
|
// Check if deserialization didn't work
|
|
201
185
|
if (!deserializedHash) {
|
|
202
|
-
throw ClientAuthError
|
|
186
|
+
throw ClientAuthError.createHashNotDeserializedError(JSON.stringify(deserializedHash));
|
|
203
187
|
}
|
|
204
188
|
return deserializedHash;
|
|
205
189
|
};
|
|
@@ -207,7 +191,8 @@ var UrlString = /** @class */ (function () {
|
|
|
207
191
|
* Check if the hash of the URL string contains known properties
|
|
208
192
|
*/
|
|
209
193
|
UrlString.hashContainsKnownProperties = function (hash) {
|
|
210
|
-
if (StringUtils
|
|
194
|
+
if (StringUtils.isEmpty(hash) || hash.indexOf("=") < 0) {
|
|
195
|
+
// Hash doesn't contain key/value pairs
|
|
211
196
|
return false;
|
|
212
197
|
}
|
|
213
198
|
var parameters = UrlString.getDeserializedHash(hash);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UrlString.js","sources":["../../src/url/UrlString.ts"],"sourcesContent":["/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n\r\nimport { ServerAuthorizationCodeResponse } from \"../response/ServerAuthorizationCodeResponse\";\r\nimport { ClientConfigurationError } from \"../error/ClientConfigurationError\";\r\nimport { ClientAuthError } from \"../error/ClientAuthError\";\r\nimport { StringUtils } from \"../utils/StringUtils\";\r\nimport { IUri } from \"./IUri\";\r\nimport { AADAuthorityConstants, Constants } from \"../utils/Constants\";\r\n\r\n/**\r\n * Url object class which can perform various transformations on url strings.\r\n */\r\nexport class UrlString {\r\n\r\n // internal url string field\r\n private _urlString: string;\r\n public get urlString(): string {\r\n return this._urlString;\r\n }\r\n \r\n constructor(url: string) {\r\n this._urlString = url;\r\n if (StringUtils.isEmpty(this._urlString)) {\r\n // Throws error if url is empty\r\n throw ClientConfigurationError.createUrlEmptyError();\r\n }\r\n\r\n if (StringUtils.isEmpty(this.getHash())) {\r\n this._urlString = UrlString.canonicalizeUri(url);\r\n }\r\n }\r\n\r\n /**\r\n * Ensure urls are lower case and end with a / character.\r\n * @param url \r\n */\r\n static canonicalizeUri(url: string): string {\r\n if (url) {\r\n let lowerCaseUrl = url.toLowerCase();\r\n\r\n if (StringUtils.endsWith(lowerCaseUrl, \"?\")) {\r\n lowerCaseUrl = lowerCaseUrl.slice(0, -1);\r\n } else if (StringUtils.endsWith(lowerCaseUrl, \"?/\")) {\r\n lowerCaseUrl = lowerCaseUrl.slice(0, -2);\r\n }\r\n\r\n if (!StringUtils.endsWith(lowerCaseUrl, \"/\")) {\r\n lowerCaseUrl += \"/\";\r\n }\r\n\r\n return lowerCaseUrl;\r\n }\r\n\r\n return url;\r\n }\r\n\r\n /**\r\n * Throws if urlString passed is not a valid authority URI string.\r\n */\r\n validateAsUri(): void {\r\n // Attempts to parse url for uri components\r\n let components;\r\n try {\r\n components = this.getUrlComponents();\r\n } catch (e) {\r\n throw ClientConfigurationError.createUrlParseError(e);\r\n }\r\n\r\n // Throw error if URI or path segments are not parseable.\r\n if (!components.HostNameAndPort || !components.PathSegments) {\r\n throw ClientConfigurationError.createUrlParseError(`Given url string: ${this.urlString}`);\r\n }\r\n\r\n // Throw error if uri is insecure.\r\n if(!components.Protocol || components.Protocol.toLowerCase() !== \"https:\") {\r\n throw ClientConfigurationError.createInsecureAuthorityUriError(this.urlString);\r\n }\r\n }\r\n\r\n /**\r\n * Function to remove query string params from url. Returns the new url.\r\n * @param url\r\n * @param name\r\n */\r\n urlRemoveQueryStringParameter(name: string): string {\r\n let regex = new RegExp(\"(\\\\&\" + name + \"=)[^\\&]+\");\r\n this._urlString = this.urlString.replace(regex, \"\");\r\n // name=value&\r\n regex = new RegExp(\"(\" + name + \"=)[^\\&]+&\");\r\n this._urlString = this.urlString.replace(regex, \"\");\r\n // name=value\r\n regex = new RegExp(\"(\" + name + \"=)[^\\&]+\");\r\n this._urlString = this.urlString.replace(regex, \"\");\r\n return this.urlString;\r\n }\r\n\r\n /**\r\n * Given a url and a query string return the url with provided query string appended\r\n * @param url \r\n * @param queryString \r\n */\r\n static appendQueryString(url: string, queryString: string): string {\r\n if (StringUtils.isEmpty(queryString)) {\r\n return url;\r\n }\r\n\r\n return url.indexOf(\"?\") < 0 ? `${url}?${queryString}` : `${url}&${queryString}`;\r\n }\r\n\r\n /**\r\n * Returns a url with the hash removed\r\n * @param url \r\n */\r\n static removeHashFromUrl(url: string): string {\r\n return UrlString.canonicalizeUri(url.split(\"#\")[0]);\r\n }\r\n\r\n /**\r\n * Given a url like https://a:b/common/d?e=f#g, and a tenantId, returns https://a:b/tenantId/d\r\n * @param href The url\r\n * @param tenantId The tenant id to replace\r\n */\r\n replaceTenantPath(tenantId: string): UrlString {\r\n const urlObject = this.getUrlComponents();\r\n const pathArray = urlObject.PathSegments;\r\n if (tenantId && (pathArray.length !== 0 && (pathArray[0] === AADAuthorityConstants.COMMON || pathArray[0] === AADAuthorityConstants.ORGANIZATIONS))) {\r\n pathArray[0] = tenantId;\r\n }\r\n return UrlString.constructAuthorityUriFromObject(urlObject);\r\n }\r\n\r\n /**\r\n * Returns the anchor part(#) of the URL\r\n */\r\n getHash(): string {\r\n return UrlString.parseHash(this.urlString);\r\n }\r\n\r\n /**\r\n * Parses out the components from a url string.\r\n * @returns An object with the various components. Please cache this value insted of calling this multiple times on the same url.\r\n */\r\n getUrlComponents(): IUri {\r\n // https://gist.github.com/curtisz/11139b2cfcaef4a261e0\r\n const regEx = RegExp(\"^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\\\?([^#]*))?(#(.*))?\");\r\n\r\n // If url string does not match regEx, we throw an error\r\n const match = this.urlString.match(regEx);\r\n if (!match) {\r\n throw ClientConfigurationError.createUrlParseError(`Given url string: ${this.urlString}`);\r\n }\r\n\r\n // Url component object\r\n const urlComponents = {\r\n Protocol: match[1],\r\n HostNameAndPort: match[4],\r\n AbsolutePath: match[5],\r\n QueryString: match[7]\r\n } as IUri;\r\n\r\n let pathSegments = urlComponents.AbsolutePath.split(\"/\");\r\n pathSegments = pathSegments.filter((val) => val && val.length > 0); // remove empty elements\r\n urlComponents.PathSegments = pathSegments;\r\n\r\n if (!StringUtils.isEmpty(urlComponents.QueryString) && urlComponents.QueryString.endsWith(\"/\")) {\r\n urlComponents.QueryString = urlComponents.QueryString.substring(0, urlComponents.QueryString.length-1);\r\n }\r\n return urlComponents;\r\n }\r\n\r\n static getDomainFromUrl(url: string): string {\r\n const regEx = RegExp(\"^([^:/?#]+://)?([^/?#]*)\");\r\n\r\n const match = url.match(regEx);\r\n\r\n if (!match) {\r\n throw ClientConfigurationError.createUrlParseError(`Given url string: ${url}`);\r\n }\r\n\r\n return match[2];\r\n }\r\n\r\n static getAbsoluteUrl(relativeUrl: string, baseUrl: string): string {\r\n if (relativeUrl[0] === Constants.FORWARD_SLASH) {\r\n const url = new UrlString(baseUrl);\r\n const baseComponents = url.getUrlComponents();\r\n\r\n return baseComponents.Protocol + \"//\" + baseComponents.HostNameAndPort + relativeUrl;\r\n }\r\n \r\n return relativeUrl;\r\n }\r\n \r\n /**\r\n * Parses hash string from given string. Returns empty string if no hash symbol is found.\r\n * @param hashString \r\n */\r\n static parseHash(hashString: string): string {\r\n const hashIndex1 = hashString.indexOf(\"#\");\r\n const hashIndex2 = hashString.indexOf(\"#/\");\r\n if (hashIndex2 > -1) {\r\n return hashString.substring(hashIndex2 + 2);\r\n } else if (hashIndex1 > -1) {\r\n return hashString.substring(hashIndex1 + 1);\r\n }\r\n return \"\";\r\n }\r\n\r\n static constructAuthorityUriFromObject(urlObject: IUri): UrlString {\r\n return new UrlString(urlObject.Protocol + \"//\" + urlObject.HostNameAndPort + \"/\" + urlObject.PathSegments.join(\"/\"));\r\n }\r\n\r\n /**\r\n * Returns URL hash as server auth code response object.\r\n */\r\n static getDeserializedHash(hash: string): ServerAuthorizationCodeResponse {\r\n // Check if given hash is empty\r\n if (StringUtils.isEmpty(hash)) {\r\n return {};\r\n }\r\n // Strip the # symbol if present\r\n const parsedHash = UrlString.parseHash(hash);\r\n // If # symbol was not present, above will return empty string, so give original hash value\r\n const deserializedHash: ServerAuthorizationCodeResponse = StringUtils.queryStringToObject<ServerAuthorizationCodeResponse>(StringUtils.isEmpty(parsedHash) ? hash : parsedHash);\r\n // Check if deserialization didn't work\r\n if (!deserializedHash) {\r\n throw ClientAuthError.createHashNotDeserializedError(JSON.stringify(deserializedHash));\r\n }\r\n return deserializedHash;\r\n }\r\n\r\n /**\r\n * Check if the hash of the URL string contains known properties\r\n */\r\n static hashContainsKnownProperties(hash: string): boolean {\r\n if (StringUtils.isEmpty(hash)) {\r\n return false;\r\n }\r\n\r\n const parameters: ServerAuthorizationCodeResponse = UrlString.getDeserializedHash(hash);\r\n return !!(\r\n parameters.code ||\r\n parameters.error_description ||\r\n parameters.error ||\r\n parameters.state\r\n );\r\n }\r\n}\r\n"],"names":["StringUtils","ClientConfigurationError","Constants","ClientAuthError"],"mappings":";;;;;;;AAAA;;;;AAYA;;;;IAWI,mBAAY,GAAW;QACnB,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;QACtB,IAAIA,aAAW,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;;YAEtC,MAAMC,0BAAwB,CAAC,mBAAmB,EAAE,CAAC;SACxD;QAED,IAAID,aAAW,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE;YACrC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;SACpD;KACJ;IAdD,sBAAW,gCAAS;aAApB;YACI,OAAO,IAAI,CAAC,UAAU,CAAC;SAC1B;;;OAAA;;;;;IAkBM,yBAAe,GAAtB,UAAuB,GAAW;QAC9B,IAAI,GAAG,EAAE;YACL,IAAI,YAAY,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YAErC,IAAIA,aAAW,CAAC,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE;gBACzC,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;aAC5C;iBAAM,IAAIA,aAAW,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE;gBACjD,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;aAC5C;YAED,IAAI,CAACA,aAAW,CAAC,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE;gBAC1C,YAAY,IAAI,GAAG,CAAC;aACvB;YAED,OAAO,YAAY,CAAC;SACvB;QAED,OAAO,GAAG,CAAC;KACd;;;;IAKD,iCAAa,GAAb;;QAEI,IAAI,UAAU,CAAC;QACf,IAAI;YACA,UAAU,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACxC;QAAC,OAAO,CAAC,EAAE;YACR,MAAMC,0BAAwB,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;SACzD;;QAGD,IAAI,CAAC,UAAU,CAAC,eAAe,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE;YACzD,MAAMA,0BAAwB,CAAC,mBAAmB,CAAC,uBAAqB,IAAI,CAAC,SAAW,CAAC,CAAC;SAC7F;;QAGD,IAAG,CAAC,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,QAAQ,EAAE;YACvE,MAAMA,0BAAwB,CAAC,+BAA+B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAClF;KACJ;;;;;;IAOD,iDAA6B,GAA7B,UAA8B,IAAY;QACtC,IAAI,KAAK,GAAG,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI,GAAG,UAAU,CAAC,CAAC;QACnD,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;;QAEpD,KAAK,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,IAAI,GAAG,WAAW,CAAC,CAAC;QAC7C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;;QAEpD,KAAK,GAAG,IAAI,MAAM,CAAC,GAAG,GAAG,IAAI,GAAG,UAAU,CAAC,CAAC;QAC5C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;;;;;;IAOM,2BAAiB,GAAxB,UAAyB,GAAW,EAAE,WAAmB;QACrD,IAAID,aAAW,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;YAClC,OAAO,GAAG,CAAC;SACd;QAED,OAAO,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAM,GAAG,SAAI,WAAa,GAAM,GAAG,SAAI,WAAa,CAAC;KACnF;;;;;IAMM,2BAAiB,GAAxB,UAAyB,GAAW;QAChC,OAAO,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACvD;;;;;;IAOD,qCAAiB,GAAjB,UAAkB,QAAgB;QAC9B,IAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1C,IAAM,SAAS,GAAG,SAAS,CAAC,YAAY,CAAC;QACzC,IAAI,QAAQ,KAAK,SAAS,CAAC,MAAM,KAAK,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,qBAAqB,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,qBAAqB,CAAC,aAAa,CAAC,CAAC,EAAE;YACjJ,SAAS,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;SAC3B;QACD,OAAO,SAAS,CAAC,+BAA+B,CAAC,SAAS,CAAC,CAAC;KAC/D;;;;IAKD,2BAAO,GAAP;QACI,OAAO,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC9C;;;;;IAMD,oCAAgB,GAAhB;;QAEI,IAAM,KAAK,GAAG,MAAM,CAAC,4DAA4D,CAAC,CAAC;;QAGnF,IAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,EAAE;YACR,MAAMC,0BAAwB,CAAC,mBAAmB,CAAC,uBAAqB,IAAI,CAAC,SAAW,CAAC,CAAC;SAC7F;;QAGD,IAAM,aAAa,GAAG;YAClB,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;YAClB,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC;YACzB,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;YACtB,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;SAChB,CAAC;QAEV,IAAI,YAAY,GAAG,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzD,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,UAAC,GAAG,IAAK,OAAA,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,GAAA,CAAC,CAAC;QACnE,aAAa,CAAC,YAAY,GAAG,YAAY,CAAC;QAE1C,IAAI,CAACD,aAAW,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC5F,aAAa,CAAC,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC;SAC1G;QACD,OAAO,aAAa,CAAC;KACxB;IAEM,0BAAgB,GAAvB,UAAwB,GAAW;QAC/B,IAAM,KAAK,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC;QAEjD,IAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAE/B,IAAI,CAAC,KAAK,EAAE;YACR,MAAMC,0BAAwB,CAAC,mBAAmB,CAAC,uBAAqB,GAAK,CAAC,CAAC;SAClF;QAED,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;KACnB;IAEM,wBAAc,GAArB,UAAsB,WAAmB,EAAE,OAAe;QACtD,IAAI,WAAW,CAAC,CAAC,CAAC,KAAKC,WAAS,CAAC,aAAa,EAAE;YAC5C,IAAM,GAAG,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;YACnC,IAAM,cAAc,GAAG,GAAG,CAAC,gBAAgB,EAAE,CAAC;YAE9C,OAAO,cAAc,CAAC,QAAQ,GAAG,IAAI,GAAG,cAAc,CAAC,eAAe,GAAG,WAAW,CAAC;SACxF;QAED,OAAO,WAAW,CAAC;KACtB;;;;;IAMM,mBAAS,GAAhB,UAAiB,UAAkB;QAC/B,IAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,UAAU,GAAG,CAAC,CAAC,EAAE;YACjB,OAAO,UAAU,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;SAC/C;aAAM,IAAI,UAAU,GAAG,CAAC,CAAC,EAAE;YACxB,OAAO,UAAU,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;SAC/C;QACD,OAAO,EAAE,CAAC;KACb;IAEM,yCAA+B,GAAtC,UAAuC,SAAe;QAClD,OAAO,IAAI,SAAS,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAC,eAAe,GAAG,GAAG,GAAG,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;KACxH;;;;IAKM,6BAAmB,GAA1B,UAA2B,IAAY;;QAEnC,IAAIF,aAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC3B,OAAO,EAAE,CAAC;SACb;;QAED,IAAM,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;;QAE7C,IAAM,gBAAgB,GAAoCA,aAAW,CAAC,mBAAmB,CAAkCA,aAAW,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,UAAU,CAAC,CAAC;;QAEhL,IAAI,CAAC,gBAAgB,EAAE;YACnB,MAAMG,iBAAe,CAAC,8BAA8B,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC;SAC1F;QACD,OAAO,gBAAgB,CAAC;KAC3B;;;;IAKM,qCAA2B,GAAlC,UAAmC,IAAY;QAC3C,IAAIH,aAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC3B,OAAO,KAAK,CAAC;SAChB;QAED,IAAM,UAAU,GAAoC,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACxF,OAAO,CAAC,EACJ,UAAU,CAAC,IAAI;YACf,UAAU,CAAC,iBAAiB;YAC5B,UAAU,CAAC,KAAK;YAChB,UAAU,CAAC,KAAK,CACnB,CAAC;KACL;IACL,gBAAC;AAAD,CAAC;;;;"}
|
|
1
|
+
{"version":3,"file":"UrlString.js","sources":["../../src/url/UrlString.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ServerAuthorizationCodeResponse } from \"../response/ServerAuthorizationCodeResponse\";\nimport { ClientConfigurationError } from \"../error/ClientConfigurationError\";\nimport { ClientAuthError } from \"../error/ClientAuthError\";\nimport { StringUtils } from \"../utils/StringUtils\";\nimport { IUri } from \"./IUri\";\nimport { AADAuthorityConstants, Constants } from \"../utils/Constants\";\n\n/**\n * Url object class which can perform various transformations on url strings.\n */\nexport class UrlString {\n\n // internal url string field\n private _urlString: string;\n public get urlString(): string {\n return this._urlString;\n }\n \n constructor(url: string) {\n this._urlString = url;\n if (StringUtils.isEmpty(this._urlString)) {\n // Throws error if url is empty\n throw ClientConfigurationError.createUrlEmptyError();\n }\n\n if (StringUtils.isEmpty(this.getHash())) {\n this._urlString = UrlString.canonicalizeUri(url);\n }\n }\n\n /**\n * Ensure urls are lower case and end with a / character.\n * @param url \n */\n static canonicalizeUri(url: string): string {\n if (url) {\n let lowerCaseUrl = url.toLowerCase();\n\n if (StringUtils.endsWith(lowerCaseUrl, \"?\")) {\n lowerCaseUrl = lowerCaseUrl.slice(0, -1);\n } else if (StringUtils.endsWith(lowerCaseUrl, \"?/\")) {\n lowerCaseUrl = lowerCaseUrl.slice(0, -2);\n }\n\n if (!StringUtils.endsWith(lowerCaseUrl, \"/\")) {\n lowerCaseUrl += \"/\";\n }\n\n return lowerCaseUrl;\n }\n\n return url;\n }\n\n /**\n * Throws if urlString passed is not a valid authority URI string.\n */\n validateAsUri(): void {\n // Attempts to parse url for uri components\n let components;\n try {\n components = this.getUrlComponents();\n } catch (e) {\n throw ClientConfigurationError.createUrlParseError(e);\n }\n\n // Throw error if URI or path segments are not parseable.\n if (!components.HostNameAndPort || !components.PathSegments) {\n throw ClientConfigurationError.createUrlParseError(`Given url string: ${this.urlString}`);\n }\n\n // Throw error if uri is insecure.\n if(!components.Protocol || components.Protocol.toLowerCase() !== \"https:\") {\n throw ClientConfigurationError.createInsecureAuthorityUriError(this.urlString);\n }\n }\n\n /**\n * Given a url and a query string return the url with provided query string appended\n * @param url \n * @param queryString \n */\n static appendQueryString(url: string, queryString: string): string {\n if (StringUtils.isEmpty(queryString)) {\n return url;\n }\n\n return url.indexOf(\"?\") < 0 ? `${url}?${queryString}` : `${url}&${queryString}`;\n }\n\n /**\n * Returns a url with the hash removed\n * @param url \n */\n static removeHashFromUrl(url: string): string {\n return UrlString.canonicalizeUri(url.split(\"#\")[0]);\n }\n\n /**\n * Given a url like https://a:b/common/d?e=f#g, and a tenantId, returns https://a:b/tenantId/d\n * @param href The url\n * @param tenantId The tenant id to replace\n */\n replaceTenantPath(tenantId: string): UrlString {\n const urlObject = this.getUrlComponents();\n const pathArray = urlObject.PathSegments;\n if (tenantId && (pathArray.length !== 0 && (pathArray[0] === AADAuthorityConstants.COMMON || pathArray[0] === AADAuthorityConstants.ORGANIZATIONS))) {\n pathArray[0] = tenantId;\n }\n return UrlString.constructAuthorityUriFromObject(urlObject);\n }\n\n /**\n * Returns the anchor part(#) of the URL\n */\n getHash(): string {\n return UrlString.parseHash(this.urlString);\n }\n\n /**\n * Parses out the components from a url string.\n * @returns An object with the various components. Please cache this value insted of calling this multiple times on the same url.\n */\n getUrlComponents(): IUri {\n // https://gist.github.com/curtisz/11139b2cfcaef4a261e0\n const regEx = RegExp(\"^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\\\?([^#]*))?(#(.*))?\");\n\n // If url string does not match regEx, we throw an error\n const match = this.urlString.match(regEx);\n if (!match) {\n throw ClientConfigurationError.createUrlParseError(`Given url string: ${this.urlString}`);\n }\n\n // Url component object\n const urlComponents = {\n Protocol: match[1],\n HostNameAndPort: match[4],\n AbsolutePath: match[5],\n QueryString: match[7]\n } as IUri;\n\n let pathSegments = urlComponents.AbsolutePath.split(\"/\");\n pathSegments = pathSegments.filter((val) => val && val.length > 0); // remove empty elements\n urlComponents.PathSegments = pathSegments;\n\n if (!StringUtils.isEmpty(urlComponents.QueryString) && urlComponents.QueryString.endsWith(\"/\")) {\n urlComponents.QueryString = urlComponents.QueryString.substring(0, urlComponents.QueryString.length-1);\n }\n return urlComponents;\n }\n\n static getDomainFromUrl(url: string): string {\n const regEx = RegExp(\"^([^:/?#]+://)?([^/?#]*)\");\n\n const match = url.match(regEx);\n\n if (!match) {\n throw ClientConfigurationError.createUrlParseError(`Given url string: ${url}`);\n }\n\n return match[2];\n }\n\n static getAbsoluteUrl(relativeUrl: string, baseUrl: string): string {\n if (relativeUrl[0] === Constants.FORWARD_SLASH) {\n const url = new UrlString(baseUrl);\n const baseComponents = url.getUrlComponents();\n\n return baseComponents.Protocol + \"//\" + baseComponents.HostNameAndPort + relativeUrl;\n }\n \n return relativeUrl;\n }\n \n /**\n * Parses hash string from given string. Returns empty string if no hash symbol is found.\n * @param hashString \n */\n static parseHash(hashString: string): string {\n const hashIndex1 = hashString.indexOf(\"#\");\n const hashIndex2 = hashString.indexOf(\"#/\");\n if (hashIndex2 > -1) {\n return hashString.substring(hashIndex2 + 2);\n } else if (hashIndex1 > -1) {\n return hashString.substring(hashIndex1 + 1);\n }\n return \"\";\n }\n\n static constructAuthorityUriFromObject(urlObject: IUri): UrlString {\n return new UrlString(urlObject.Protocol + \"//\" + urlObject.HostNameAndPort + \"/\" + urlObject.PathSegments.join(\"/\"));\n }\n\n /**\n * Returns URL hash as server auth code response object.\n */\n static getDeserializedHash(hash: string): ServerAuthorizationCodeResponse {\n // Check if given hash is empty\n if (StringUtils.isEmpty(hash)) {\n return {};\n }\n // Strip the # symbol if present\n const parsedHash = UrlString.parseHash(hash);\n // If # symbol was not present, above will return empty string, so give original hash value\n const deserializedHash: ServerAuthorizationCodeResponse = StringUtils.queryStringToObject<ServerAuthorizationCodeResponse>(StringUtils.isEmpty(parsedHash) ? hash : parsedHash);\n // Check if deserialization didn't work\n if (!deserializedHash) {\n throw ClientAuthError.createHashNotDeserializedError(JSON.stringify(deserializedHash));\n }\n return deserializedHash;\n }\n\n /**\n * Check if the hash of the URL string contains known properties\n */\n static hashContainsKnownProperties(hash: string): boolean {\n if (StringUtils.isEmpty(hash) || hash.indexOf(\"=\") < 0) {\n // Hash doesn't contain key/value pairs\n return false;\n }\n\n const parameters: ServerAuthorizationCodeResponse = UrlString.getDeserializedHash(hash);\n return !!(\n parameters.code ||\n parameters.error_description ||\n parameters.error ||\n parameters.state\n );\n }\n}\n"],"names":[],"mappings":";;;;;;;AAAA;;;;AAYA;;;;IAWI,mBAAY,GAAW;QACnB,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;QACtB,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;;YAEtC,MAAM,wBAAwB,CAAC,mBAAmB,EAAE,CAAC;SACxD;QAED,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE;YACrC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;SACpD;KACJ;IAdD,sBAAW,gCAAS;aAApB;YACI,OAAO,IAAI,CAAC,UAAU,CAAC;SAC1B;;;OAAA;;;;;IAkBM,yBAAe,GAAtB,UAAuB,GAAW;QAC9B,IAAI,GAAG,EAAE;YACL,IAAI,YAAY,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YAErC,IAAI,WAAW,CAAC,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE;gBACzC,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;aAC5C;iBAAM,IAAI,WAAW,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE;gBACjD,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;aAC5C;YAED,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE;gBAC1C,YAAY,IAAI,GAAG,CAAC;aACvB;YAED,OAAO,YAAY,CAAC;SACvB;QAED,OAAO,GAAG,CAAC;KACd;;;;IAKD,iCAAa,GAAb;;QAEI,IAAI,UAAU,CAAC;QACf,IAAI;YACA,UAAU,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACxC;QAAC,OAAO,CAAC,EAAE;YACR,MAAM,wBAAwB,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;SACzD;;QAGD,IAAI,CAAC,UAAU,CAAC,eAAe,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE;YACzD,MAAM,wBAAwB,CAAC,mBAAmB,CAAC,uBAAqB,IAAI,CAAC,SAAW,CAAC,CAAC;SAC7F;;QAGD,IAAG,CAAC,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,QAAQ,EAAE;YACvE,MAAM,wBAAwB,CAAC,+BAA+B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SAClF;KACJ;;;;;;IAOM,2BAAiB,GAAxB,UAAyB,GAAW,EAAE,WAAmB;QACrD,IAAI,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;YAClC,OAAO,GAAG,CAAC;SACd;QAED,OAAO,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAM,GAAG,SAAI,WAAa,GAAM,GAAG,SAAI,WAAa,CAAC;KACnF;;;;;IAMM,2BAAiB,GAAxB,UAAyB,GAAW;QAChC,OAAO,SAAS,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACvD;;;;;;IAOD,qCAAiB,GAAjB,UAAkB,QAAgB;QAC9B,IAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1C,IAAM,SAAS,GAAG,SAAS,CAAC,YAAY,CAAC;QACzC,IAAI,QAAQ,KAAK,SAAS,CAAC,MAAM,KAAK,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,qBAAqB,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,KAAK,qBAAqB,CAAC,aAAa,CAAC,CAAC,EAAE;YACjJ,SAAS,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC;SAC3B;QACD,OAAO,SAAS,CAAC,+BAA+B,CAAC,SAAS,CAAC,CAAC;KAC/D;;;;IAKD,2BAAO,GAAP;QACI,OAAO,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;KAC9C;;;;;IAMD,oCAAgB,GAAhB;;QAEI,IAAM,KAAK,GAAG,MAAM,CAAC,4DAA4D,CAAC,CAAC;;QAGnF,IAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,EAAE;YACR,MAAM,wBAAwB,CAAC,mBAAmB,CAAC,uBAAqB,IAAI,CAAC,SAAW,CAAC,CAAC;SAC7F;;QAGD,IAAM,aAAa,GAAG;YAClB,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC;YAClB,eAAe,EAAE,KAAK,CAAC,CAAC,CAAC;YACzB,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC;YACtB,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;SAChB,CAAC;QAEV,IAAI,YAAY,GAAG,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACzD,YAAY,GAAG,YAAY,CAAC,MAAM,CAAC,UAAC,GAAG,IAAK,OAAA,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,GAAA,CAAC,CAAC;QACnE,aAAa,CAAC,YAAY,GAAG,YAAY,CAAC;QAE1C,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,aAAa,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YAC5F,aAAa,CAAC,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC;SAC1G;QACD,OAAO,aAAa,CAAC;KACxB;IAEM,0BAAgB,GAAvB,UAAwB,GAAW;QAC/B,IAAM,KAAK,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC;QAEjD,IAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAE/B,IAAI,CAAC,KAAK,EAAE;YACR,MAAM,wBAAwB,CAAC,mBAAmB,CAAC,uBAAqB,GAAK,CAAC,CAAC;SAClF;QAED,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;KACnB;IAEM,wBAAc,GAArB,UAAsB,WAAmB,EAAE,OAAe;QACtD,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,aAAa,EAAE;YAC5C,IAAM,GAAG,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;YACnC,IAAM,cAAc,GAAG,GAAG,CAAC,gBAAgB,EAAE,CAAC;YAE9C,OAAO,cAAc,CAAC,QAAQ,GAAG,IAAI,GAAG,cAAc,CAAC,eAAe,GAAG,WAAW,CAAC;SACxF;QAED,OAAO,WAAW,CAAC;KACtB;;;;;IAMM,mBAAS,GAAhB,UAAiB,UAAkB;QAC/B,IAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3C,IAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,UAAU,GAAG,CAAC,CAAC,EAAE;YACjB,OAAO,UAAU,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;SAC/C;aAAM,IAAI,UAAU,GAAG,CAAC,CAAC,EAAE;YACxB,OAAO,UAAU,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;SAC/C;QACD,OAAO,EAAE,CAAC;KACb;IAEM,yCAA+B,GAAtC,UAAuC,SAAe;QAClD,OAAO,IAAI,SAAS,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAC,eAAe,GAAG,GAAG,GAAG,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;KACxH;;;;IAKM,6BAAmB,GAA1B,UAA2B,IAAY;;QAEnC,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;YAC3B,OAAO,EAAE,CAAC;SACb;;QAED,IAAM,UAAU,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;;QAE7C,IAAM,gBAAgB,GAAoC,WAAW,CAAC,mBAAmB,CAAkC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,UAAU,CAAC,CAAC;;QAEhL,IAAI,CAAC,gBAAgB,EAAE;YACnB,MAAM,eAAe,CAAC,8BAA8B,CAAC,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC;SAC1F;QACD,OAAO,gBAAgB,CAAC;KAC3B;;;;IAKM,qCAA2B,GAAlC,UAAmC,IAAY;QAC3C,IAAI,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;;YAEpD,OAAO,KAAK,CAAC;SAChB;QAED,IAAM,UAAU,GAAoC,SAAS,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACxF,OAAO,CAAC,EACJ,UAAU,CAAC,IAAI;YACf,UAAU,CAAC,iBAAiB;YAC5B,UAAU,CAAC,KAAK;YAChB,UAAU,CAAC,KAAK,CACnB,CAAC;KACL;IACL,gBAAC;AAAD,CAAC;;;;"}
|
|
@@ -39,7 +39,9 @@ export declare const OIDC_SCOPES: string[];
|
|
|
39
39
|
export declare enum HeaderNames {
|
|
40
40
|
CONTENT_TYPE = "Content-Type",
|
|
41
41
|
RETRY_AFTER = "Retry-After",
|
|
42
|
-
CCS_HEADER = "X-AnchorMailbox"
|
|
42
|
+
CCS_HEADER = "X-AnchorMailbox",
|
|
43
|
+
WWWAuthenticate = "WWW-Authenticate",
|
|
44
|
+
AuthenticationInfo = "Authentication-Info"
|
|
43
45
|
}
|
|
44
46
|
/**
|
|
45
47
|
* Persistent cache keys MSAL which stay while user is logged in.
|
|
@@ -263,8 +265,9 @@ export declare const SERVER_TELEM_CONSTANTS: {
|
|
|
263
265
|
* Type of the authentication request
|
|
264
266
|
*/
|
|
265
267
|
export declare enum AuthenticationScheme {
|
|
268
|
+
BEARER = "Bearer",
|
|
266
269
|
POP = "pop",
|
|
267
|
-
|
|
270
|
+
SSH = "ssh-cert"
|
|
268
271
|
}
|
|
269
272
|
/**
|
|
270
273
|
* Constants related to throttling
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Constants.d.ts","sourceRoot":"","sources":["../../src/utils/Constants.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0CrB,CAAC;AAEF,eAAO,MAAM,mBAAmB,UAI/B,CAAC;AAEF,eAAO,MAAM,WAAW,UAGvB,CAAC;AAEF;;GAEG;AACH,oBAAY,WAAW;IACnB,YAAY,iBAAiB;IAC7B,WAAW,gBAAgB;IAC3B,UAAU,oBAAoB;
|
|
1
|
+
{"version":3,"file":"Constants.d.ts","sourceRoot":"","sources":["../../src/utils/Constants.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/Constants.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @azure/msal-common
|
|
1
|
+
/*! @azure/msal-common v5.1.0 2021-11-02 */
|
|
2
2
|
'use strict';
|
|
3
3
|
import { __spreadArrays } from '../_virtual/_tslib.js';
|
|
4
4
|
|
|
@@ -65,6 +65,8 @@ var HeaderNames;
|
|
|
65
65
|
HeaderNames["CONTENT_TYPE"] = "Content-Type";
|
|
66
66
|
HeaderNames["RETRY_AFTER"] = "Retry-After";
|
|
67
67
|
HeaderNames["CCS_HEADER"] = "X-AnchorMailbox";
|
|
68
|
+
HeaderNames["WWWAuthenticate"] = "WWW-Authenticate";
|
|
69
|
+
HeaderNames["AuthenticationInfo"] = "Authentication-Info";
|
|
68
70
|
})(HeaderNames || (HeaderNames = {}));
|
|
69
71
|
/**
|
|
70
72
|
* Persistent cache keys MSAL which stay while user is logged in.
|
|
@@ -292,8 +294,9 @@ var SERVER_TELEM_CONSTANTS = {
|
|
|
292
294
|
*/
|
|
293
295
|
var AuthenticationScheme;
|
|
294
296
|
(function (AuthenticationScheme) {
|
|
295
|
-
AuthenticationScheme["POP"] = "pop";
|
|
296
297
|
AuthenticationScheme["BEARER"] = "Bearer";
|
|
298
|
+
AuthenticationScheme["POP"] = "pop";
|
|
299
|
+
AuthenticationScheme["SSH"] = "ssh-cert";
|
|
297
300
|
})(AuthenticationScheme || (AuthenticationScheme = {}));
|
|
298
301
|
/**
|
|
299
302
|
* Constants related to throttling
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Constants.js","sources":["../../src/utils/Constants.ts"],"sourcesContent":["/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n\r\nexport const Constants = {\r\n LIBRARY_NAME: \"MSAL.JS\",\r\n SKU: \"msal.js.common\",\r\n // Prefix for all library cache entries\r\n CACHE_PREFIX: \"msal\",\r\n // default authority\r\n DEFAULT_AUTHORITY: \"https://login.microsoftonline.com/common/\",\r\n DEFAULT_AUTHORITY_HOST: \"login.microsoftonline.com\",\r\n // ADFS String\r\n ADFS: \"adfs\",\r\n // Default AAD Instance Discovery Endpoint\r\n AAD_INSTANCE_DISCOVERY_ENDPT: \"https://login.microsoftonline.com/common/discovery/instance?api-version=1.1&authorization_endpoint=\",\r\n // Resource delimiter - used for certain cache entries\r\n RESOURCE_DELIM: \"|\",\r\n // Placeholder for non-existent account ids/objects\r\n NO_ACCOUNT: \"NO_ACCOUNT\",\r\n // Claims\r\n CLAIMS: \"claims\",\r\n // Consumer UTID\r\n CONSUMER_UTID: \"9188040d-6c67-4c5b-b112-36a304b66dad\",\r\n // Default scopes\r\n OPENID_SCOPE: \"openid\",\r\n PROFILE_SCOPE: \"profile\",\r\n OFFLINE_ACCESS_SCOPE: \"offline_access\",\r\n EMAIL_SCOPE: \"email\",\r\n // Default response type for authorization code flow\r\n CODE_RESPONSE_TYPE: \"code\",\r\n CODE_GRANT_TYPE: \"authorization_code\",\r\n RT_GRANT_TYPE: \"refresh_token\",\r\n FRAGMENT_RESPONSE_MODE: \"fragment\",\r\n S256_CODE_CHALLENGE_METHOD: \"S256\",\r\n URL_FORM_CONTENT_TYPE: \"application/x-www-form-urlencoded;charset=utf-8\",\r\n AUTHORIZATION_PENDING: \"authorization_pending\",\r\n NOT_DEFINED: \"not_defined\",\r\n EMPTY_STRING: \"\",\r\n FORWARD_SLASH: \"/\",\r\n IMDS_ENDPOINT: \"http://169.254.169.254/metadata/instance/compute/location\",\r\n IMDS_VERSION: \"2020-06-01\",\r\n IMDS_TIMEOUT: 2000,\r\n AZURE_REGION_AUTO_DISCOVER_FLAG: \"TryAutoDetect\",\r\n REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX: \"login.microsoft.com\",\r\n KNOWN_PUBLIC_CLOUDS: [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"]\r\n};\r\n\r\nexport const OIDC_DEFAULT_SCOPES = [\r\n Constants.OPENID_SCOPE,\r\n Constants.PROFILE_SCOPE,\r\n Constants.OFFLINE_ACCESS_SCOPE\r\n];\r\n\r\nexport const OIDC_SCOPES = [\r\n ...OIDC_DEFAULT_SCOPES,\r\n Constants.EMAIL_SCOPE\r\n];\r\n\r\n/**\r\n * Request header names\r\n */\r\nexport enum HeaderNames {\r\n CONTENT_TYPE = \"Content-Type\",\r\n RETRY_AFTER = \"Retry-After\",\r\n CCS_HEADER = \"X-AnchorMailbox\"\r\n}\r\n\r\n/**\r\n * Persistent cache keys MSAL which stay while user is logged in.\r\n */\r\nexport enum PersistentCacheKeys {\r\n ID_TOKEN = \"idtoken\",\r\n CLIENT_INFO = \"client.info\",\r\n ADAL_ID_TOKEN = \"adal.idtoken\",\r\n ERROR = \"error\",\r\n ERROR_DESC = \"error.description\",\r\n ACTIVE_ACCOUNT = \"active-account\"\r\n}\r\n\r\n/**\r\n * String constants related to AAD Authority\r\n */\r\nexport enum AADAuthorityConstants {\r\n COMMON = \"common\",\r\n ORGANIZATIONS = \"organizations\",\r\n CONSUMERS = \"consumers\"\r\n}\r\n\r\n/**\r\n * Keys in the hashParams sent by AAD Server\r\n */\r\nexport enum AADServerParamKeys {\r\n CLIENT_ID = \"client_id\",\r\n REDIRECT_URI = \"redirect_uri\",\r\n RESPONSE_TYPE = \"response_type\",\r\n RESPONSE_MODE = \"response_mode\",\r\n GRANT_TYPE = \"grant_type\",\r\n CLAIMS = \"claims\",\r\n SCOPE = \"scope\",\r\n ERROR = \"error\",\r\n ERROR_DESCRIPTION = \"error_description\",\r\n ACCESS_TOKEN = \"access_token\",\r\n ID_TOKEN = \"id_token\",\r\n REFRESH_TOKEN = \"refresh_token\",\r\n EXPIRES_IN = \"expires_in\",\r\n STATE = \"state\",\r\n NONCE = \"nonce\",\r\n PROMPT = \"prompt\",\r\n SESSION_STATE = \"session_state\",\r\n CLIENT_INFO = \"client_info\",\r\n CODE = \"code\",\r\n CODE_CHALLENGE = \"code_challenge\",\r\n CODE_CHALLENGE_METHOD = \"code_challenge_method\",\r\n CODE_VERIFIER = \"code_verifier\",\r\n CLIENT_REQUEST_ID = \"client-request-id\",\r\n X_CLIENT_SKU = \"x-client-SKU\",\r\n X_CLIENT_VER = \"x-client-VER\",\r\n X_CLIENT_OS = \"x-client-OS\",\r\n X_CLIENT_CPU = \"x-client-CPU\",\r\n X_CLIENT_CURR_TELEM = \"x-client-current-telemetry\",\r\n X_CLIENT_LAST_TELEM = \"x-client-last-telemetry\",\r\n X_MS_LIB_CAPABILITY = \"x-ms-lib-capability\",\r\n POST_LOGOUT_URI = \"post_logout_redirect_uri\",\r\n ID_TOKEN_HINT= \"id_token_hint\",\r\n DEVICE_CODE = \"device_code\",\r\n CLIENT_SECRET = \"client_secret\",\r\n CLIENT_ASSERTION = \"client_assertion\",\r\n CLIENT_ASSERTION_TYPE = \"client_assertion_type\",\r\n TOKEN_TYPE = \"token_type\",\r\n REQ_CNF = \"req_cnf\",\r\n OBO_ASSERTION = \"assertion\",\r\n REQUESTED_TOKEN_USE = \"requested_token_use\",\r\n ON_BEHALF_OF = \"on_behalf_of\",\r\n FOCI = \"foci\",\r\n CCS_HEADER = \"X-AnchorMailbox\"\r\n}\r\n\r\n/**\r\n * Claims request keys\r\n */\r\nexport enum ClaimsRequestKeys {\r\n ACCESS_TOKEN = \"access_token\",\r\n XMS_CC = \"xms_cc\"\r\n}\r\n\r\n/**\r\n * we considered making this \"enum\" in the request instead of string, however it looks like the allowed list of\r\n * prompt values kept changing over past couple of years. There are some undocumented prompt values for some\r\n * internal partners too, hence the choice of generic \"string\" type instead of the \"enum\"\r\n */\r\nexport const PromptValue = {\r\n LOGIN: \"login\",\r\n SELECT_ACCOUNT: \"select_account\",\r\n CONSENT: \"consent\",\r\n NONE: \"none\",\r\n CREATE: \"create\"\r\n};\r\n\r\n/**\r\n * SSO Types - generated to populate hints\r\n */\r\nexport enum SSOTypes {\r\n ACCOUNT = \"account\",\r\n SID = \"sid\",\r\n LOGIN_HINT = \"login_hint\",\r\n ID_TOKEN = \"id_token\",\r\n DOMAIN_HINT = \"domain_hint\",\r\n ORGANIZATIONS = \"organizations\",\r\n CONSUMERS = \"consumers\",\r\n ACCOUNT_ID = \"accountIdentifier\",\r\n HOMEACCOUNT_ID = \"homeAccountIdentifier\"\r\n}\r\n\r\n/**\r\n * Disallowed extra query parameters.\r\n */\r\nexport const BlacklistedEQParams = [\r\n SSOTypes.SID,\r\n SSOTypes.LOGIN_HINT\r\n];\r\n\r\n/**\r\n * allowed values for codeVerifier\r\n */\r\nexport const CodeChallengeMethodValues = {\r\n PLAIN: \"plain\",\r\n S256: \"S256\"\r\n};\r\n\r\n/**\r\n * The method used to encode the code verifier for the code challenge parameter. can be one\r\n * of plain or s256. if excluded, code challenge is assumed to be plaintext. for more\r\n * information, see the pkce rcf: https://tools.ietf.org/html/rfc7636\r\n */\r\nexport const CodeChallengeMethodValuesArray: string[] = [\r\n CodeChallengeMethodValues.PLAIN,\r\n CodeChallengeMethodValues.S256\r\n];\r\n\r\n/**\r\n * allowed values for response_mode\r\n */\r\nexport enum ResponseMode {\r\n QUERY = \"query\",\r\n FRAGMENT = \"fragment\",\r\n FORM_POST = \"form_post\"\r\n}\r\n\r\n/**\r\n * allowed grant_type\r\n */\r\nexport enum GrantType {\r\n IMPLICIT_GRANT = \"implicit\",\r\n AUTHORIZATION_CODE_GRANT = \"authorization_code\",\r\n CLIENT_CREDENTIALS_GRANT = \"client_credentials\",\r\n RESOURCE_OWNER_PASSWORD_GRANT = \"password\",\r\n REFRESH_TOKEN_GRANT = \"refresh_token\",\r\n DEVICE_CODE_GRANT = \"device_code\",\r\n JWT_BEARER = \"urn:ietf:params:oauth:grant-type:jwt-bearer\"\r\n}\r\n\r\n/**\r\n * Account types in Cache\r\n */\r\nexport enum CacheAccountType {\r\n MSSTS_ACCOUNT_TYPE = \"MSSTS\",\r\n ADFS_ACCOUNT_TYPE = \"ADFS\",\r\n MSAV1_ACCOUNT_TYPE = \"MSA\",\r\n GENERIC_ACCOUNT_TYPE = \"Generic\" // NTLM, Kerberos, FBA, Basic etc\r\n}\r\n\r\n/**\r\n * Separators used in cache\r\n */\r\nexport enum Separators {\r\n CACHE_KEY_SEPARATOR = \"-\",\r\n CLIENT_INFO_SEPARATOR = \".\"\r\n}\r\n\r\n/**\r\n * Credential Type stored in the cache\r\n */\r\nexport enum CredentialType {\r\n ID_TOKEN = \"IdToken\",\r\n ACCESS_TOKEN = \"AccessToken\",\r\n ACCESS_TOKEN_WITH_AUTH_SCHEME = \"AccessToken_With_AuthScheme\",\r\n REFRESH_TOKEN = \"RefreshToken\",\r\n}\r\n\r\n/**\r\n * Credential Type stored in the cache\r\n */\r\nexport enum CacheSchemaType {\r\n ACCOUNT = \"Account\",\r\n CREDENTIAL = \"Credential\",\r\n ID_TOKEN = \"IdToken\",\r\n ACCESS_TOKEN = \"AccessToken\",\r\n REFRESH_TOKEN = \"RefreshToken\",\r\n APP_METADATA = \"AppMetadata\",\r\n TEMPORARY = \"TempCache\",\r\n TELEMETRY = \"Telemetry\",\r\n UNDEFINED = \"Undefined\",\r\n THROTTLING = \"Throttling\"\r\n}\r\n\r\n/**\r\n * Combine all cache types\r\n */\r\nexport enum CacheType {\r\n ADFS = 1001,\r\n MSA = 1002,\r\n MSSTS = 1003,\r\n GENERIC = 1004,\r\n ACCESS_TOKEN = 2001,\r\n REFRESH_TOKEN = 2002,\r\n ID_TOKEN = 2003,\r\n APP_METADATA = 3001,\r\n UNDEFINED = 9999\r\n}\r\n\r\n/**\r\n * More Cache related constants\r\n */\r\nexport const APP_METADATA = \"appmetadata\";\r\nexport const CLIENT_INFO = \"client_info\";\r\nexport const THE_FAMILY_ID = \"1\";\r\n\r\nexport const AUTHORITY_METADATA_CONSTANTS = {\r\n CACHE_KEY: \"authority-metadata\",\r\n REFRESH_TIME_SECONDS: 3600 * 24 // 24 Hours\r\n};\r\n\r\nexport enum AuthorityMetadataSource {\r\n CONFIG = \"config\",\r\n CACHE = \"cache\",\r\n NETWORK = \"network\"\r\n}\r\n\r\nexport const SERVER_TELEM_CONSTANTS = {\r\n SCHEMA_VERSION: 5,\r\n MAX_CUR_HEADER_BYTES: 80, // ESTS limit is 100B, set to 80 to provide a 20B buffer\r\n MAX_LAST_HEADER_BYTES: 330, // ESTS limit is 350B, set to 330 to provide a 20B buffer,\r\n MAX_CACHED_ERRORS: 50, // Limit the number of errors that can be stored to prevent uncontrolled size gains\r\n CACHE_KEY: \"server-telemetry\",\r\n CATEGORY_SEPARATOR: \"|\",\r\n VALUE_SEPARATOR: \",\",\r\n OVERFLOW_TRUE: \"1\",\r\n OVERFLOW_FALSE: \"0\",\r\n UNKNOWN_ERROR: \"unknown_error\"\r\n};\r\n\r\n/**\r\n * Type of the authentication request\r\n */\r\nexport enum AuthenticationScheme {\r\n POP = \"pop\",\r\n BEARER = \"Bearer\"\r\n}\r\n\r\n/**\r\n * Constants related to throttling\r\n */\r\nexport const ThrottlingConstants = {\r\n // Default time to throttle RequestThumbprint in seconds\r\n DEFAULT_THROTTLE_TIME_SECONDS: 60,\r\n // Default maximum time to throttle in seconds, overrides what the server sends back\r\n DEFAULT_MAX_THROTTLE_TIME_SECONDS: 3600,\r\n // Prefix for storing throttling entries\r\n THROTTLING_PREFIX: \"throttling\",\r\n // Value assigned to the x-ms-lib-capability header to indicate to the server the library supports throttling\r\n X_MS_LIB_CAPABILITY_VALUE: \"retry-after, h429\"\r\n};\r\n\r\nexport const Errors = {\r\n INVALID_GRANT_ERROR: \"invalid_grant\",\r\n CLIENT_MISMATCH_ERROR: \"client_mismatch\",\r\n};\r\n\r\n/**\r\n * Password grant parameters\r\n */\r\nexport enum PasswordGrantConstants {\r\n username = \"username\",\r\n password = \"password\"\r\n}\r\n\r\n/**\r\n * Response codes\r\n */\r\nexport enum ResponseCodes {\r\n httpSuccess = 200,\r\n httpBadRequest = 400\r\n}\r\n\r\n/**\r\n * Region Discovery Sources\r\n */\r\nexport enum RegionDiscoverySources {\r\n FAILED_AUTO_DETECTION = \"1\",\r\n INTERNAL_CACHE = \"2\",\r\n ENVIRONMENT_VARIABLE = \"3\",\r\n IMDS = \"4\",\r\n}\r\n\r\n/**\r\n * Region Discovery Outcomes\r\n */\r\nexport enum RegionDiscoveryOutcomes {\r\n CONFIGURED_MATCHES_DETECTED = \"1\",\r\n CONFIGURED_NO_AUTO_DETECTION = \"2\",\r\n CONFIGURED_NOT_DETECTED = \"3\",\r\n AUTO_DETECTION_REQUESTED_SUCCESSFUL = \"4\",\r\n AUTO_DETECTION_REQUESTED_FAILED = \"5\"\r\n}\r\n\r\nexport enum CacheOutcome {\r\n NO_CACHE_HIT = \"0\",\r\n FORCE_REFRESH = \"1\",\r\n NO_CACHED_ACCESS_TOKEN = \"2\",\r\n CACHED_ACCESS_TOKEN_EXPIRED = \"3\",\r\n REFRESH_CACHED_ACCESS_TOKEN = \"4\"\r\n}\r\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Constants.js","sources":["../../src/utils/Constants.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport const Constants = {\n LIBRARY_NAME: \"MSAL.JS\",\n SKU: \"msal.js.common\",\n // Prefix for all library cache entries\n CACHE_PREFIX: \"msal\",\n // default authority\n DEFAULT_AUTHORITY: \"https://login.microsoftonline.com/common/\",\n DEFAULT_AUTHORITY_HOST: \"login.microsoftonline.com\",\n // ADFS String\n ADFS: \"adfs\",\n // Default AAD Instance Discovery Endpoint\n AAD_INSTANCE_DISCOVERY_ENDPT: \"https://login.microsoftonline.com/common/discovery/instance?api-version=1.1&authorization_endpoint=\",\n // Resource delimiter - used for certain cache entries\n RESOURCE_DELIM: \"|\",\n // Placeholder for non-existent account ids/objects\n NO_ACCOUNT: \"NO_ACCOUNT\",\n // Claims\n CLAIMS: \"claims\",\n // Consumer UTID\n CONSUMER_UTID: \"9188040d-6c67-4c5b-b112-36a304b66dad\",\n // Default scopes\n OPENID_SCOPE: \"openid\",\n PROFILE_SCOPE: \"profile\",\n OFFLINE_ACCESS_SCOPE: \"offline_access\",\n EMAIL_SCOPE: \"email\",\n // Default response type for authorization code flow\n CODE_RESPONSE_TYPE: \"code\",\n CODE_GRANT_TYPE: \"authorization_code\",\n RT_GRANT_TYPE: \"refresh_token\",\n FRAGMENT_RESPONSE_MODE: \"fragment\",\n S256_CODE_CHALLENGE_METHOD: \"S256\",\n URL_FORM_CONTENT_TYPE: \"application/x-www-form-urlencoded;charset=utf-8\",\n AUTHORIZATION_PENDING: \"authorization_pending\",\n NOT_DEFINED: \"not_defined\",\n EMPTY_STRING: \"\",\n FORWARD_SLASH: \"/\",\n IMDS_ENDPOINT: \"http://169.254.169.254/metadata/instance/compute/location\",\n IMDS_VERSION: \"2020-06-01\",\n IMDS_TIMEOUT: 2000,\n AZURE_REGION_AUTO_DISCOVER_FLAG: \"TryAutoDetect\",\n REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX: \"login.microsoft.com\",\n KNOWN_PUBLIC_CLOUDS: [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"]\n};\n\nexport const OIDC_DEFAULT_SCOPES = [\n Constants.OPENID_SCOPE,\n Constants.PROFILE_SCOPE,\n Constants.OFFLINE_ACCESS_SCOPE\n];\n\nexport const OIDC_SCOPES = [\n ...OIDC_DEFAULT_SCOPES,\n Constants.EMAIL_SCOPE\n];\n\n/**\n * Request header names\n */\nexport enum HeaderNames {\n CONTENT_TYPE = \"Content-Type\",\n RETRY_AFTER = \"Retry-After\",\n CCS_HEADER = \"X-AnchorMailbox\",\n WWWAuthenticate = \"WWW-Authenticate\",\n AuthenticationInfo = \"Authentication-Info\"\n}\n\n/**\n * Persistent cache keys MSAL which stay while user is logged in.\n */\nexport enum PersistentCacheKeys {\n ID_TOKEN = \"idtoken\",\n CLIENT_INFO = \"client.info\",\n ADAL_ID_TOKEN = \"adal.idtoken\",\n ERROR = \"error\",\n ERROR_DESC = \"error.description\",\n ACTIVE_ACCOUNT = \"active-account\"\n}\n\n/**\n * String constants related to AAD Authority\n */\nexport enum AADAuthorityConstants {\n COMMON = \"common\",\n ORGANIZATIONS = \"organizations\",\n CONSUMERS = \"consumers\"\n}\n\n/**\n * Keys in the hashParams sent by AAD Server\n */\nexport enum AADServerParamKeys {\n CLIENT_ID = \"client_id\",\n REDIRECT_URI = \"redirect_uri\",\n RESPONSE_TYPE = \"response_type\",\n RESPONSE_MODE = \"response_mode\",\n GRANT_TYPE = \"grant_type\",\n CLAIMS = \"claims\",\n SCOPE = \"scope\",\n ERROR = \"error\",\n ERROR_DESCRIPTION = \"error_description\",\n ACCESS_TOKEN = \"access_token\",\n ID_TOKEN = \"id_token\",\n REFRESH_TOKEN = \"refresh_token\",\n EXPIRES_IN = \"expires_in\",\n STATE = \"state\",\n NONCE = \"nonce\",\n PROMPT = \"prompt\",\n SESSION_STATE = \"session_state\",\n CLIENT_INFO = \"client_info\",\n CODE = \"code\",\n CODE_CHALLENGE = \"code_challenge\",\n CODE_CHALLENGE_METHOD = \"code_challenge_method\",\n CODE_VERIFIER = \"code_verifier\",\n CLIENT_REQUEST_ID = \"client-request-id\",\n X_CLIENT_SKU = \"x-client-SKU\",\n X_CLIENT_VER = \"x-client-VER\",\n X_CLIENT_OS = \"x-client-OS\",\n X_CLIENT_CPU = \"x-client-CPU\",\n X_CLIENT_CURR_TELEM = \"x-client-current-telemetry\",\n X_CLIENT_LAST_TELEM = \"x-client-last-telemetry\",\n X_MS_LIB_CAPABILITY = \"x-ms-lib-capability\",\n POST_LOGOUT_URI = \"post_logout_redirect_uri\",\n ID_TOKEN_HINT= \"id_token_hint\",\n DEVICE_CODE = \"device_code\",\n CLIENT_SECRET = \"client_secret\",\n CLIENT_ASSERTION = \"client_assertion\",\n CLIENT_ASSERTION_TYPE = \"client_assertion_type\",\n TOKEN_TYPE = \"token_type\",\n REQ_CNF = \"req_cnf\",\n OBO_ASSERTION = \"assertion\",\n REQUESTED_TOKEN_USE = \"requested_token_use\",\n ON_BEHALF_OF = \"on_behalf_of\",\n FOCI = \"foci\",\n CCS_HEADER = \"X-AnchorMailbox\"\n}\n\n/**\n * Claims request keys\n */\nexport enum ClaimsRequestKeys {\n ACCESS_TOKEN = \"access_token\",\n XMS_CC = \"xms_cc\"\n}\n\n/**\n * we considered making this \"enum\" in the request instead of string, however it looks like the allowed list of\n * prompt values kept changing over past couple of years. There are some undocumented prompt values for some\n * internal partners too, hence the choice of generic \"string\" type instead of the \"enum\"\n */\nexport const PromptValue = {\n LOGIN: \"login\",\n SELECT_ACCOUNT: \"select_account\",\n CONSENT: \"consent\",\n NONE: \"none\",\n CREATE: \"create\"\n};\n\n/**\n * SSO Types - generated to populate hints\n */\nexport enum SSOTypes {\n ACCOUNT = \"account\",\n SID = \"sid\",\n LOGIN_HINT = \"login_hint\",\n ID_TOKEN = \"id_token\",\n DOMAIN_HINT = \"domain_hint\",\n ORGANIZATIONS = \"organizations\",\n CONSUMERS = \"consumers\",\n ACCOUNT_ID = \"accountIdentifier\",\n HOMEACCOUNT_ID = \"homeAccountIdentifier\"\n}\n\n/**\n * Disallowed extra query parameters.\n */\nexport const BlacklistedEQParams = [\n SSOTypes.SID,\n SSOTypes.LOGIN_HINT\n];\n\n/**\n * allowed values for codeVerifier\n */\nexport const CodeChallengeMethodValues = {\n PLAIN: \"plain\",\n S256: \"S256\"\n};\n\n/**\n * The method used to encode the code verifier for the code challenge parameter. can be one\n * of plain or s256. if excluded, code challenge is assumed to be plaintext. for more\n * information, see the pkce rcf: https://tools.ietf.org/html/rfc7636\n */\nexport const CodeChallengeMethodValuesArray: string[] = [\n CodeChallengeMethodValues.PLAIN,\n CodeChallengeMethodValues.S256\n];\n\n/**\n * allowed values for response_mode\n */\nexport enum ResponseMode {\n QUERY = \"query\",\n FRAGMENT = \"fragment\",\n FORM_POST = \"form_post\"\n}\n\n/**\n * allowed grant_type\n */\nexport enum GrantType {\n IMPLICIT_GRANT = \"implicit\",\n AUTHORIZATION_CODE_GRANT = \"authorization_code\",\n CLIENT_CREDENTIALS_GRANT = \"client_credentials\",\n RESOURCE_OWNER_PASSWORD_GRANT = \"password\",\n REFRESH_TOKEN_GRANT = \"refresh_token\",\n DEVICE_CODE_GRANT = \"device_code\",\n JWT_BEARER = \"urn:ietf:params:oauth:grant-type:jwt-bearer\"\n}\n\n/**\n * Account types in Cache\n */\nexport enum CacheAccountType {\n MSSTS_ACCOUNT_TYPE = \"MSSTS\",\n ADFS_ACCOUNT_TYPE = \"ADFS\",\n MSAV1_ACCOUNT_TYPE = \"MSA\",\n GENERIC_ACCOUNT_TYPE = \"Generic\" // NTLM, Kerberos, FBA, Basic etc\n}\n\n/**\n * Separators used in cache\n */\nexport enum Separators {\n CACHE_KEY_SEPARATOR = \"-\",\n CLIENT_INFO_SEPARATOR = \".\"\n}\n\n/**\n * Credential Type stored in the cache\n */\nexport enum CredentialType {\n ID_TOKEN = \"IdToken\",\n ACCESS_TOKEN = \"AccessToken\",\n ACCESS_TOKEN_WITH_AUTH_SCHEME = \"AccessToken_With_AuthScheme\",\n REFRESH_TOKEN = \"RefreshToken\",\n}\n\n/**\n * Credential Type stored in the cache\n */\nexport enum CacheSchemaType {\n ACCOUNT = \"Account\",\n CREDENTIAL = \"Credential\",\n ID_TOKEN = \"IdToken\",\n ACCESS_TOKEN = \"AccessToken\",\n REFRESH_TOKEN = \"RefreshToken\",\n APP_METADATA = \"AppMetadata\",\n TEMPORARY = \"TempCache\",\n TELEMETRY = \"Telemetry\",\n UNDEFINED = \"Undefined\",\n THROTTLING = \"Throttling\"\n}\n\n/**\n * Combine all cache types\n */\nexport enum CacheType {\n ADFS = 1001,\n MSA = 1002,\n MSSTS = 1003,\n GENERIC = 1004,\n ACCESS_TOKEN = 2001,\n REFRESH_TOKEN = 2002,\n ID_TOKEN = 2003,\n APP_METADATA = 3001,\n UNDEFINED = 9999\n}\n\n/**\n * More Cache related constants\n */\nexport const APP_METADATA = \"appmetadata\";\nexport const CLIENT_INFO = \"client_info\";\nexport const THE_FAMILY_ID = \"1\";\n\nexport const AUTHORITY_METADATA_CONSTANTS = {\n CACHE_KEY: \"authority-metadata\",\n REFRESH_TIME_SECONDS: 3600 * 24 // 24 Hours\n};\n\nexport enum AuthorityMetadataSource {\n CONFIG = \"config\",\n CACHE = \"cache\",\n NETWORK = \"network\"\n}\n\nexport const SERVER_TELEM_CONSTANTS = {\n SCHEMA_VERSION: 5,\n MAX_CUR_HEADER_BYTES: 80, // ESTS limit is 100B, set to 80 to provide a 20B buffer\n MAX_LAST_HEADER_BYTES: 330, // ESTS limit is 350B, set to 330 to provide a 20B buffer,\n MAX_CACHED_ERRORS: 50, // Limit the number of errors that can be stored to prevent uncontrolled size gains\n CACHE_KEY: \"server-telemetry\",\n CATEGORY_SEPARATOR: \"|\",\n VALUE_SEPARATOR: \",\",\n OVERFLOW_TRUE: \"1\",\n OVERFLOW_FALSE: \"0\",\n UNKNOWN_ERROR: \"unknown_error\"\n};\n\n/**\n * Type of the authentication request\n */\nexport enum AuthenticationScheme {\n BEARER = \"Bearer\",\n POP = \"pop\",\n SSH = \"ssh-cert\"\n}\n\n/**\n * Constants related to throttling\n */\nexport const ThrottlingConstants = {\n // Default time to throttle RequestThumbprint in seconds\n DEFAULT_THROTTLE_TIME_SECONDS: 60,\n // Default maximum time to throttle in seconds, overrides what the server sends back\n DEFAULT_MAX_THROTTLE_TIME_SECONDS: 3600,\n // Prefix for storing throttling entries\n THROTTLING_PREFIX: \"throttling\",\n // Value assigned to the x-ms-lib-capability header to indicate to the server the library supports throttling\n X_MS_LIB_CAPABILITY_VALUE: \"retry-after, h429\"\n};\n\nexport const Errors = {\n INVALID_GRANT_ERROR: \"invalid_grant\",\n CLIENT_MISMATCH_ERROR: \"client_mismatch\",\n};\n\n/**\n * Password grant parameters\n */\nexport enum PasswordGrantConstants {\n username = \"username\",\n password = \"password\"\n}\n\n/**\n * Response codes\n */\nexport enum ResponseCodes {\n httpSuccess = 200,\n httpBadRequest = 400\n}\n\n/**\n * Region Discovery Sources\n */\nexport enum RegionDiscoverySources {\n FAILED_AUTO_DETECTION = \"1\",\n INTERNAL_CACHE = \"2\",\n ENVIRONMENT_VARIABLE = \"3\",\n IMDS = \"4\",\n}\n\n/**\n * Region Discovery Outcomes\n */\nexport enum RegionDiscoveryOutcomes {\n CONFIGURED_MATCHES_DETECTED = \"1\",\n CONFIGURED_NO_AUTO_DETECTION = \"2\",\n CONFIGURED_NOT_DETECTED = \"3\",\n AUTO_DETECTION_REQUESTED_SUCCESSFUL = \"4\",\n AUTO_DETECTION_REQUESTED_FAILED = \"5\"\n}\n\nexport enum CacheOutcome {\n NO_CACHE_HIT = \"0\",\n FORCE_REFRESH = \"1\",\n NO_CACHED_ACCESS_TOKEN = \"2\",\n CACHED_ACCESS_TOKEN_EXPIRED = \"3\",\n REFRESH_CACHED_ACCESS_TOKEN = \"4\"\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
/*! @azure/msal-common
|
|
1
|
+
/*! @azure/msal-common v5.1.0 2021-11-02 */
|
|
2
2
|
'use strict';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
3
|
+
import { StringUtils } from './StringUtils.js';
|
|
4
|
+
import { Constants } from './Constants.js';
|
|
5
|
+
import { ClientAuthError } from '../error/ClientAuthError.js';
|
|
6
6
|
|
|
7
7
|
/*
|
|
8
8
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -21,7 +21,7 @@ var ProtocolUtils = /** @class */ (function () {
|
|
|
21
21
|
*/
|
|
22
22
|
ProtocolUtils.setRequestState = function (cryptoObj, userState, meta) {
|
|
23
23
|
var libraryState = ProtocolUtils.generateLibraryState(cryptoObj, meta);
|
|
24
|
-
return !StringUtils
|
|
24
|
+
return !StringUtils.isEmpty(userState) ? "" + libraryState + Constants.RESOURCE_DELIM + userState : libraryState;
|
|
25
25
|
};
|
|
26
26
|
/**
|
|
27
27
|
* Generates the state value used by the common library.
|
|
@@ -30,7 +30,7 @@ var ProtocolUtils = /** @class */ (function () {
|
|
|
30
30
|
*/
|
|
31
31
|
ProtocolUtils.generateLibraryState = function (cryptoObj, meta) {
|
|
32
32
|
if (!cryptoObj) {
|
|
33
|
-
throw ClientAuthError
|
|
33
|
+
throw ClientAuthError.createNoCryptoObjectError("generateLibraryState");
|
|
34
34
|
}
|
|
35
35
|
// Create a state object containing a unique id and the timestamp of the request creation
|
|
36
36
|
var stateObj = {
|
|
@@ -49,25 +49,25 @@ var ProtocolUtils = /** @class */ (function () {
|
|
|
49
49
|
*/
|
|
50
50
|
ProtocolUtils.parseRequestState = function (cryptoObj, state) {
|
|
51
51
|
if (!cryptoObj) {
|
|
52
|
-
throw ClientAuthError
|
|
52
|
+
throw ClientAuthError.createNoCryptoObjectError("parseRequestState");
|
|
53
53
|
}
|
|
54
|
-
if (StringUtils
|
|
55
|
-
throw ClientAuthError
|
|
54
|
+
if (StringUtils.isEmpty(state)) {
|
|
55
|
+
throw ClientAuthError.createInvalidStateError(state, "Null, undefined or empty state");
|
|
56
56
|
}
|
|
57
57
|
try {
|
|
58
58
|
// Split the state between library state and user passed state and decode them separately
|
|
59
|
-
var splitState =
|
|
59
|
+
var splitState = state.split(Constants.RESOURCE_DELIM);
|
|
60
60
|
var libraryState = splitState[0];
|
|
61
|
-
var userState = splitState.length > 1 ? splitState.slice(1).join(Constants
|
|
61
|
+
var userState = splitState.length > 1 ? splitState.slice(1).join(Constants.RESOURCE_DELIM) : "";
|
|
62
62
|
var libraryStateString = cryptoObj.base64Decode(libraryState);
|
|
63
63
|
var libraryStateObj = JSON.parse(libraryStateString);
|
|
64
64
|
return {
|
|
65
|
-
userRequestState: !StringUtils
|
|
65
|
+
userRequestState: !StringUtils.isEmpty(userState) ? userState : "",
|
|
66
66
|
libraryState: libraryStateObj
|
|
67
67
|
};
|
|
68
68
|
}
|
|
69
69
|
catch (e) {
|
|
70
|
-
throw ClientAuthError
|
|
70
|
+
throw ClientAuthError.createInvalidStateError(state, e);
|
|
71
71
|
}
|
|
72
72
|
};
|
|
73
73
|
return ProtocolUtils;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProtocolUtils.js","sources":["../../src/utils/ProtocolUtils.ts"],"sourcesContent":["/*\
|
|
1
|
+
{"version":3,"file":"ProtocolUtils.js","sources":["../../src/utils/ProtocolUtils.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { StringUtils } from \"./StringUtils\";\nimport { Constants } from \"./Constants\";\nimport { ICrypto } from \"../crypto/ICrypto\";\nimport { ClientAuthError } from \"../error/ClientAuthError\";\n\n/**\n * Type which defines the object that is stringified, encoded and sent in the state value.\n * Contains the following:\n * - id - unique identifier for this request\n * - ts - timestamp for the time the request was made. Used to ensure that token expiration is not calculated incorrectly.\n * - platformState - string value sent from the platform.\n */\nexport type LibraryStateObject = {\n id: string,\n meta?: Record<string, string>\n};\n\n/**\n * Type which defines the stringified and encoded object sent to the service in the authorize request.\n */\nexport type RequestStateObject = {\n userRequestState: string,\n libraryState: LibraryStateObject\n};\n\n/**\n * Class which provides helpers for OAuth 2.0 protocol specific values\n */\nexport class ProtocolUtils {\n\n /**\n * Appends user state with random guid, or returns random guid.\n * @param userState \n * @param randomGuid \n */\n static setRequestState(cryptoObj: ICrypto, userState?: string, meta?: Record<string, string>): string {\n const libraryState = ProtocolUtils.generateLibraryState(cryptoObj, meta);\n return !StringUtils.isEmpty(userState) ? `${libraryState}${Constants.RESOURCE_DELIM}${userState}` : libraryState;\n }\n\n /**\n * Generates the state value used by the common library.\n * @param randomGuid \n * @param cryptoObj \n */\n static generateLibraryState(cryptoObj: ICrypto, meta?: Record<string, string>): string {\n if (!cryptoObj) {\n throw ClientAuthError.createNoCryptoObjectError(\"generateLibraryState\");\n }\n\n // Create a state object containing a unique id and the timestamp of the request creation\n const stateObj: LibraryStateObject = {\n id: cryptoObj.createNewGuid()\n };\n\n if (meta) {\n stateObj.meta = meta;\n }\n\n const stateString = JSON.stringify(stateObj);\n\n return cryptoObj.base64Encode(stateString);\n }\n\n /**\n * Parses the state into the RequestStateObject, which contains the LibraryState info and the state passed by the user.\n * @param state \n * @param cryptoObj \n */\n static parseRequestState(cryptoObj: ICrypto, state: string): RequestStateObject {\n if (!cryptoObj) {\n throw ClientAuthError.createNoCryptoObjectError(\"parseRequestState\");\n }\n\n if (StringUtils.isEmpty(state)) {\n throw ClientAuthError.createInvalidStateError(state, \"Null, undefined or empty state\");\n }\n\n try {\n // Split the state between library state and user passed state and decode them separately\n const splitState = state.split(Constants.RESOURCE_DELIM);\n const libraryState = splitState[0];\n const userState = splitState.length > 1 ? splitState.slice(1).join(Constants.RESOURCE_DELIM) : \"\";\n const libraryStateString = cryptoObj.base64Decode(libraryState);\n const libraryStateObj = JSON.parse(libraryStateString) as LibraryStateObject;\n return {\n userRequestState: !StringUtils.isEmpty(userState) ? userState : \"\",\n libraryState: libraryStateObj\n };\n } catch(e) {\n throw ClientAuthError.createInvalidStateError(state, e);\n }\n }\n}\n"],"names":[],"mappings":";;;;;;AAAA;;;;AA8BA;;;;IAGA;KAiEC;;;;;;IA1DU,6BAAe,GAAtB,UAAuB,SAAkB,EAAE,SAAkB,EAAE,IAA6B;QACxF,IAAM,YAAY,GAAG,aAAa,CAAC,oBAAoB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACzE,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,KAAG,YAAY,GAAG,SAAS,CAAC,cAAc,GAAG,SAAW,GAAG,YAAY,CAAC;KACpH;;;;;;IAOM,kCAAoB,GAA3B,UAA4B,SAAkB,EAAE,IAA6B;QACzE,IAAI,CAAC,SAAS,EAAE;YACZ,MAAM,eAAe,CAAC,yBAAyB,CAAC,sBAAsB,CAAC,CAAC;SAC3E;;QAGD,IAAM,QAAQ,GAAuB;YACjC,EAAE,EAAE,SAAS,CAAC,aAAa,EAAE;SAChC,CAAC;QAEF,IAAI,IAAI,EAAE;YACN,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;SACxB;QAED,IAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAE7C,OAAO,SAAS,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;KAC9C;;;;;;IAOM,+BAAiB,GAAxB,UAAyB,SAAkB,EAAE,KAAa;QACtD,IAAI,CAAC,SAAS,EAAE;YACZ,MAAM,eAAe,CAAC,yBAAyB,CAAC,mBAAmB,CAAC,CAAC;SACxE;QAED,IAAI,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YAC5B,MAAM,eAAe,CAAC,uBAAuB,CAAC,KAAK,EAAE,gCAAgC,CAAC,CAAC;SAC1F;QAED,IAAI;;YAEA,IAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YACzD,IAAM,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YACnC,IAAM,SAAS,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC;YAClG,IAAM,kBAAkB,GAAG,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;YAChE,IAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAuB,CAAC;YAC7E,OAAO;gBACH,gBAAgB,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,SAAS,GAAG,EAAE;gBAClE,YAAY,EAAE,eAAe;aAChC,CAAC;SACL;QAAC,OAAM,CAAC,EAAE;YACP,MAAM,eAAe,CAAC,uBAAuB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;SAC3D;KACJ;IACL,oBAAC;AAAD,CAAC;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StringUtils.d.ts","sourceRoot":"","sources":["../../src/utils/StringUtils.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAG/D;;GAEG;AACH,qBAAa,WAAW;IAEpB;;;;OAIG;IACH,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB;IAiB3D;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO;IAIrC;;;OAGG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO;IAU3C,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAIvD,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAIrD;;;;OAIG;IACH,MAAM,CAAC,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"StringUtils.d.ts","sourceRoot":"","sources":["../../src/utils/StringUtils.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAG/D;;GAEG;AACH,qBAAa,WAAW;IAEpB;;;;OAIG;IACH,MAAM,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB;IAiB3D;;;;OAIG;IACH,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO;IAIrC;;;OAGG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO;IAU3C,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAIvD,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAIrD;;;;OAIG;IACH,MAAM,CAAC,mBAAmB,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC;IAe/C;;;;OAIG;IACH,MAAM,CAAC,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IAI1D;;;OAGG;IACH,MAAM,CAAC,2BAA2B,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IAMrE;;;OAGG;IACH,MAAM,CAAC,eAAe,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAQhD;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;CAS/D"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
/*! @azure/msal-common
|
|
1
|
+
/*! @azure/msal-common v5.1.0 2021-11-02 */
|
|
2
2
|
'use strict';
|
|
3
|
-
import { ClientAuthError
|
|
3
|
+
import { ClientAuthError } from '../error/ClientAuthError.js';
|
|
4
4
|
|
|
5
5
|
/*
|
|
6
6
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
@@ -19,12 +19,12 @@ var StringUtils = /** @class */ (function () {
|
|
|
19
19
|
*/
|
|
20
20
|
StringUtils.decodeAuthToken = function (authToken) {
|
|
21
21
|
if (StringUtils.isEmpty(authToken)) {
|
|
22
|
-
throw ClientAuthError
|
|
22
|
+
throw ClientAuthError.createTokenNullOrEmptyError(authToken);
|
|
23
23
|
}
|
|
24
24
|
var tokenPartsRegex = /^([^\.\s]*)\.([^\.\s]+)\.([^\.\s]*)$/;
|
|
25
25
|
var matches = tokenPartsRegex.exec(authToken);
|
|
26
26
|
if (!matches || matches.length < 4) {
|
|
27
|
-
throw ClientAuthError
|
|
27
|
+
throw ClientAuthError.createTokenParsingError("Given token is malformed: " + JSON.stringify(authToken));
|
|
28
28
|
}
|
|
29
29
|
var crackedToken = {
|
|
30
30
|
header: matches[1],
|
|
@@ -67,16 +67,17 @@ var StringUtils = /** @class */ (function () {
|
|
|
67
67
|
* @param query
|
|
68
68
|
*/
|
|
69
69
|
StringUtils.queryStringToObject = function (query) {
|
|
70
|
-
var match; // Regex for replacing addition symbol with a space
|
|
71
|
-
var pl = /\+/g;
|
|
72
|
-
var search = /([^&=]+)=([^&]*)/g;
|
|
73
|
-
var decode = function (s) { return decodeURIComponent(decodeURIComponent(s.replace(pl, " "))); };
|
|
74
70
|
var obj = {};
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
71
|
+
var params = query.split("&");
|
|
72
|
+
var decode = function (s) { return decodeURIComponent(s.replace(/\+/g, " ")); };
|
|
73
|
+
params.forEach(function (pair) {
|
|
74
|
+
if (pair.trim()) {
|
|
75
|
+
var _a = pair.split(/=(.+)/g, 2), key = _a[0], value = _a[1]; // Split on the first occurence of the '=' character
|
|
76
|
+
if (key && value) {
|
|
77
|
+
obj[decode(key)] = decode(value);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
});
|
|
80
81
|
return obj;
|
|
81
82
|
};
|
|
82
83
|
/**
|
|
@@ -118,7 +119,7 @@ var StringUtils = /** @class */ (function () {
|
|
|
118
119
|
* Wildcard support: https://stackoverflow.com/a/3117248/4888559
|
|
119
120
|
* Queries: replaces "?" in string with escaped "\?" for regex test
|
|
120
121
|
*/
|
|
121
|
-
var regex = new RegExp(pattern.replace(/\*/g, "[^ ]*").replace(/\?/g, "\\\?"));
|
|
122
|
+
var regex = new RegExp(pattern.replace(/\\/g, "\\\\").replace(/\*/g, "[^ ]*").replace(/\?/g, "\\\?")); // eslint-disable-line security/detect-non-literal-regexp
|
|
122
123
|
return regex.test(input);
|
|
123
124
|
};
|
|
124
125
|
return StringUtils;
|