@azure/msal-browser 2.24.0 → 2.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/README.md +1 -1
  2. package/dist/_virtual/_tslib.js +1 -1
  3. package/dist/app/ClientApplication.js +2 -2
  4. package/dist/app/ClientApplication.js.map +1 -1
  5. package/dist/app/IPublicClientApplication.js +1 -1
  6. package/dist/app/PublicClientApplication.js +1 -1
  7. package/dist/broker/nativeBroker/NativeMessageHandler.js +1 -1
  8. package/dist/broker/nativeBroker/NativeRequest.d.ts +3 -3
  9. package/dist/broker/nativeBroker/NativeRequest.d.ts.map +1 -1
  10. package/dist/cache/AsyncMemoryStorage.js +1 -1
  11. package/dist/cache/BrowserCacheManager.js +1 -1
  12. package/dist/cache/BrowserStorage.js +1 -1
  13. package/dist/cache/DatabaseStorage.js +1 -1
  14. package/dist/cache/MemoryStorage.js +1 -1
  15. package/dist/cache/TokenCache.d.ts +1 -0
  16. package/dist/cache/TokenCache.d.ts.map +1 -1
  17. package/dist/cache/TokenCache.js +2 -2
  18. package/dist/cache/TokenCache.js.map +1 -1
  19. package/dist/config/Configuration.js +1 -1
  20. package/dist/crypto/BrowserCrypto.js +1 -1
  21. package/dist/crypto/CryptoOps.d.ts.map +1 -1
  22. package/dist/crypto/CryptoOps.js +7 -10
  23. package/dist/crypto/CryptoOps.js.map +1 -1
  24. package/dist/crypto/GuidGenerator.js +1 -1
  25. package/dist/crypto/PkceGenerator.js +1 -1
  26. package/dist/crypto/SignedHttpRequest.js +1 -1
  27. package/dist/encode/Base64Decode.js +1 -1
  28. package/dist/encode/Base64Encode.js +1 -1
  29. package/dist/error/BrowserAuthError.js +3 -3
  30. package/dist/error/BrowserAuthError.js.map +1 -1
  31. package/dist/error/BrowserConfigurationAuthError.js +1 -1
  32. package/dist/error/NativeAuthError.d.ts +2 -1
  33. package/dist/error/NativeAuthError.d.ts.map +1 -1
  34. package/dist/error/NativeAuthError.js +3 -2
  35. package/dist/error/NativeAuthError.js.map +1 -1
  36. package/dist/event/EventHandler.js +1 -1
  37. package/dist/event/EventMessage.js +1 -1
  38. package/dist/event/EventType.js +1 -1
  39. package/dist/index.cjs.js +535 -435
  40. package/dist/index.cjs.js.map +1 -1
  41. package/dist/index.js +1 -1
  42. package/dist/interaction_client/BaseInteractionClient.js +1 -1
  43. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.js +1 -1
  44. package/dist/interaction_client/NativeInteractionClient.d.ts.map +1 -1
  45. package/dist/interaction_client/NativeInteractionClient.js +20 -17
  46. package/dist/interaction_client/NativeInteractionClient.js.map +1 -1
  47. package/dist/interaction_client/PopupClient.d.ts +75 -2
  48. package/dist/interaction_client/PopupClient.d.ts.map +1 -1
  49. package/dist/interaction_client/PopupClient.js +281 -41
  50. package/dist/interaction_client/PopupClient.js.map +1 -1
  51. package/dist/interaction_client/RedirectClient.js +1 -1
  52. package/dist/interaction_client/SilentAuthCodeClient.js +1 -1
  53. package/dist/interaction_client/SilentCacheClient.js +1 -1
  54. package/dist/interaction_client/SilentIframeClient.js +1 -1
  55. package/dist/interaction_client/SilentRefreshClient.js +1 -1
  56. package/dist/interaction_client/StandardInteractionClient.js +1 -1
  57. package/dist/interaction_handler/InteractionHandler.d.ts +3 -8
  58. package/dist/interaction_handler/InteractionHandler.d.ts.map +1 -1
  59. package/dist/interaction_handler/InteractionHandler.js +5 -5
  60. package/dist/interaction_handler/InteractionHandler.js.map +1 -1
  61. package/dist/interaction_handler/RedirectHandler.d.ts +1 -1
  62. package/dist/interaction_handler/RedirectHandler.d.ts.map +1 -1
  63. package/dist/interaction_handler/RedirectHandler.js +12 -12
  64. package/dist/interaction_handler/RedirectHandler.js.map +1 -1
  65. package/dist/interaction_handler/SilentHandler.d.ts +1 -1
  66. package/dist/interaction_handler/SilentHandler.d.ts.map +1 -1
  67. package/dist/interaction_handler/SilentHandler.js +5 -5
  68. package/dist/interaction_handler/SilentHandler.js.map +1 -1
  69. package/dist/internals.d.ts +0 -1
  70. package/dist/internals.d.ts.map +1 -1
  71. package/dist/internals.js +1 -2
  72. package/dist/internals.js.map +1 -1
  73. package/dist/navigation/NavigationClient.js +1 -1
  74. package/dist/network/FetchClient.js +1 -1
  75. package/dist/network/XhrClient.js +1 -1
  76. package/dist/packageMetadata.d.ts +1 -1
  77. package/dist/packageMetadata.js +2 -2
  78. package/dist/packageMetadata.js.map +1 -1
  79. package/dist/request/EndSessionPopupRequest.d.ts +1 -1
  80. package/dist/request/EndSessionPopupRequest.d.ts.map +1 -1
  81. package/dist/request/PopupRequest.d.ts +1 -1
  82. package/dist/request/PopupRequest.d.ts.map +1 -1
  83. package/dist/request/PopupWindowAttributes.d.ts +16 -0
  84. package/dist/request/PopupWindowAttributes.d.ts.map +1 -0
  85. package/dist/request/SsoSilentRequest.d.ts +1 -1
  86. package/dist/telemetry/BrowserPerformanceClient.js +1 -1
  87. package/dist/telemetry/BrowserPerformanceMeasurement.js +1 -1
  88. package/dist/utils/BrowserConstants.js +1 -1
  89. package/dist/utils/BrowserProtocolUtils.js +1 -1
  90. package/dist/utils/BrowserStringUtils.js +1 -1
  91. package/dist/utils/BrowserUtils.js +1 -1
  92. package/dist/utils/MathUtils.js +1 -1
  93. package/lib/msal-browser.js +535 -435
  94. package/lib/msal-browser.js.map +1 -1
  95. package/lib/msal-browser.min.js +40 -40
  96. package/package.json +2 -2
  97. package/dist/interaction_handler/PopupHandler.d.ts +0 -29
  98. package/dist/interaction_handler/PopupHandler.d.ts.map +0 -1
  99. package/dist/interaction_handler/PopupHandler.js +0 -69
  100. package/dist/interaction_handler/PopupHandler.js.map +0 -1
  101. package/dist/utils/PopupUtils.d.ts +0 -73
  102. package/dist/utils/PopupUtils.d.ts.map +0 -1
  103. package/dist/utils/PopupUtils.js +0 -185
  104. package/dist/utils/PopupUtils.js.map +0 -1
package/package.json CHANGED
@@ -10,7 +10,7 @@
10
10
  "type": "git",
11
11
  "url": "https://github.com/AzureAD/microsoft-authentication-library-for-js.git"
12
12
  },
13
- "version": "2.24.0",
13
+ "version": "2.25.0",
14
14
  "description": "Microsoft Authentication Library for js",
15
15
  "keywords": [
16
16
  "implicit",
@@ -91,6 +91,6 @@
91
91
  "typescript": "^3.8.3"
92
92
  },
93
93
  "dependencies": {
94
- "@azure/msal-common": "^6.3.0"
94
+ "@azure/msal-common": "^6.4.0"
95
95
  }
96
96
  }
@@ -1,29 +0,0 @@
1
- import { CommonAuthorizationCodeRequest, AuthorizationCodeClient, Logger } from "@azure/msal-common";
2
- import { InteractionHandler, InteractionParams } from "./InteractionHandler";
3
- import { BrowserCacheManager } from "../cache/BrowserCacheManager";
4
- import { PopupWindowAttributes } from "../utils/PopupUtils";
5
- export declare type PopupParams = InteractionParams & {
6
- popup?: Window | null;
7
- popupName: string;
8
- popupWindowAttributes: PopupWindowAttributes;
9
- };
10
- /**
11
- * This class implements the interaction handler base class for browsers. It is written specifically for handling
12
- * popup window scenarios. It includes functions for monitoring the popup window for a hash.
13
- */
14
- export declare class PopupHandler extends InteractionHandler {
15
- private popupUtils;
16
- constructor(authCodeModule: AuthorizationCodeClient, storageImpl: BrowserCacheManager, authCodeRequest: CommonAuthorizationCodeRequest, browserRequestLogger: Logger);
17
- /**
18
- * Opens a popup window with given request Url.
19
- * @param requestUrl
20
- */
21
- initiateAuthRequest(requestUrl: string, params: PopupParams): Window;
22
- /**
23
- * Monitors a window until it loads a url with a known hash, or hits a specified timeout.
24
- * @param popupWindow - window that is being monitored
25
- * @param timeout - milliseconds until timeout
26
- */
27
- monitorPopupForHash(popupWindow: Window): Promise<string>;
28
- }
29
- //# sourceMappingURL=PopupHandler.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PopupHandler.d.ts","sourceRoot":"","sources":["../../src/interaction_handler/PopupHandler.ts"],"names":[],"mappings":"AAKA,OAAO,EAA0B,8BAA8B,EAAE,uBAAuB,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC7H,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAc,MAAM,qBAAqB,CAAC;AAGxE,oBAAY,WAAW,GAAG,iBAAiB,GAAG;IAC1C,KAAK,CAAC,EAAE,MAAM,GAAC,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,qBAAqB,EAAE,qBAAqB,CAAA;CAC/C,CAAC;AAEF;;;GAGG;AACH,qBAAa,YAAa,SAAQ,kBAAkB;IAChD,OAAO,CAAC,UAAU,CAAa;gBAEnB,cAAc,EAAE,uBAAuB,EAAE,WAAW,EAAE,mBAAmB,EAAE,eAAe,EAAE,8BAA8B,EAAE,oBAAoB,EAAE,MAAM;IAOpK;;;OAGG;IACH,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM;IAapE;;;;OAIG;IACH,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAkB5D"}
@@ -1,69 +0,0 @@
1
- /*! @azure/msal-browser v2.24.0 2022-05-02 */
2
- 'use strict';
3
- import { __extends } from '../_virtual/_tslib.js';
4
- import { StringUtils, UrlString } from '@azure/msal-common';
5
- import { InteractionHandler } from './InteractionHandler.js';
6
- import { BrowserAuthError } from '../error/BrowserAuthError.js';
7
- import { PopupUtils } from '../utils/PopupUtils.js';
8
- import { BrowserUtils } from '../utils/BrowserUtils.js';
9
-
10
- /*
11
- * Copyright (c) Microsoft Corporation. All rights reserved.
12
- * Licensed under the MIT License.
13
- */
14
- /**
15
- * This class implements the interaction handler base class for browsers. It is written specifically for handling
16
- * popup window scenarios. It includes functions for monitoring the popup window for a hash.
17
- */
18
- var PopupHandler = /** @class */ (function (_super) {
19
- __extends(PopupHandler, _super);
20
- function PopupHandler(authCodeModule, storageImpl, authCodeRequest, browserRequestLogger) {
21
- var _this = _super.call(this, authCodeModule, storageImpl, authCodeRequest, browserRequestLogger) || this;
22
- // Properly sets this reference for the unload event.
23
- _this.popupUtils = new PopupUtils(storageImpl, browserRequestLogger);
24
- return _this;
25
- }
26
- /**
27
- * Opens a popup window with given request Url.
28
- * @param requestUrl
29
- */
30
- PopupHandler.prototype.initiateAuthRequest = function (requestUrl, params) {
31
- // Check that request url is not empty.
32
- if (!StringUtils.isEmpty(requestUrl)) {
33
- this.browserRequestLogger.infoPii("Navigate to: " + requestUrl);
34
- // Open the popup window to requestUrl.
35
- return this.popupUtils.openPopup(requestUrl, params);
36
- }
37
- else {
38
- // Throw error if request URL is empty.
39
- this.browserRequestLogger.error("Navigate url is empty");
40
- throw BrowserAuthError.createEmptyNavigationUriError();
41
- }
42
- };
43
- /**
44
- * Monitors a window until it loads a url with a known hash, or hits a specified timeout.
45
- * @param popupWindow - window that is being monitored
46
- * @param timeout - milliseconds until timeout
47
- */
48
- PopupHandler.prototype.monitorPopupForHash = function (popupWindow) {
49
- var _this = this;
50
- return this.popupUtils.monitorPopupForSameOrigin(popupWindow).then(function () {
51
- var contentHash = popupWindow.location.hash;
52
- BrowserUtils.clearHash(popupWindow);
53
- _this.popupUtils.cleanPopup(popupWindow);
54
- if (!contentHash) {
55
- throw BrowserAuthError.createEmptyHashError(popupWindow.location.href);
56
- }
57
- if (UrlString.hashContainsKnownProperties(contentHash)) {
58
- return contentHash;
59
- }
60
- else {
61
- throw BrowserAuthError.createHashDoesNotContainKnownPropertiesError();
62
- }
63
- });
64
- };
65
- return PopupHandler;
66
- }(InteractionHandler));
67
-
68
- export { PopupHandler };
69
- //# sourceMappingURL=PopupHandler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PopupHandler.js","sources":["../../src/interaction_handler/PopupHandler.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { UrlString, StringUtils, CommonAuthorizationCodeRequest, AuthorizationCodeClient, Logger } from \"@azure/msal-common\";\nimport { InteractionHandler, InteractionParams } from \"./InteractionHandler\";\nimport { BrowserAuthError } from \"../error/BrowserAuthError\";\nimport { BrowserCacheManager } from \"../cache/BrowserCacheManager\";\nimport { PopupWindowAttributes, PopupUtils } from \"../utils/PopupUtils\";\nimport { BrowserUtils } from \"../utils/BrowserUtils\";\n\nexport type PopupParams = InteractionParams & {\n popup?: Window|null;\n popupName: string;\n popupWindowAttributes: PopupWindowAttributes\n};\n\n/**\n * This class implements the interaction handler base class for browsers. It is written specifically for handling\n * popup window scenarios. It includes functions for monitoring the popup window for a hash.\n */\nexport class PopupHandler extends InteractionHandler {\n private popupUtils: PopupUtils;\n\n constructor(authCodeModule: AuthorizationCodeClient, storageImpl: BrowserCacheManager, authCodeRequest: CommonAuthorizationCodeRequest, browserRequestLogger: Logger) {\n super(authCodeModule, storageImpl, authCodeRequest, browserRequestLogger);\n\n // Properly sets this reference for the unload event.\n this.popupUtils = new PopupUtils(storageImpl, browserRequestLogger);\n }\n\n /**\n * Opens a popup window with given request Url.\n * @param requestUrl\n */\n initiateAuthRequest(requestUrl: string, params: PopupParams): Window {\n // Check that request url is not empty.\n if (!StringUtils.isEmpty(requestUrl)) {\n this.browserRequestLogger.infoPii(`Navigate to: ${requestUrl}`);\n // Open the popup window to requestUrl.\n return this.popupUtils.openPopup(requestUrl, params);\n } else {\n // Throw error if request URL is empty.\n this.browserRequestLogger.error(\"Navigate url is empty\");\n throw BrowserAuthError.createEmptyNavigationUriError();\n }\n }\n\n /**\n * Monitors a window until it loads a url with a known hash, or hits a specified timeout.\n * @param popupWindow - window that is being monitored\n * @param timeout - milliseconds until timeout\n */\n monitorPopupForHash(popupWindow: Window): Promise<string> {\n return this.popupUtils.monitorPopupForSameOrigin(popupWindow).then(() => {\n const contentHash = popupWindow.location.hash;\n BrowserUtils.clearHash(popupWindow);\n this.popupUtils.cleanPopup(popupWindow);\n\n if (!contentHash) {\n throw BrowserAuthError.createEmptyHashError(popupWindow.location.href);\n }\n\n if (UrlString.hashContainsKnownProperties(contentHash)) {\n return contentHash;\n } else {\n throw BrowserAuthError.createHashDoesNotContainKnownPropertiesError();\n }\n }\n );\n }\n}\n"],"names":[],"mappings":";;;;;;;;;AAAA;;;;AAkBA;;;;;IAIkC,gCAAkB;IAGhD,sBAAY,cAAuC,EAAE,WAAgC,EAAE,eAA+C,EAAE,oBAA4B;QAApK,YACI,kBAAM,cAAc,EAAE,WAAW,EAAE,eAAe,EAAE,oBAAoB,CAAC,SAI5E;;QADG,KAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC;;KACvE;;;;;IAMD,0CAAmB,GAAnB,UAAoB,UAAkB,EAAE,MAAmB;;QAEvD,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE;YAClC,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,kBAAgB,UAAY,CAAC,CAAC;;YAEhE,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;SACxD;aAAM;;YAEH,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;YACzD,MAAM,gBAAgB,CAAC,6BAA6B,EAAE,CAAC;SAC1D;KACJ;;;;;;IAOD,0CAAmB,GAAnB,UAAoB,WAAmB;QAAvC,iBAiBC;QAhBG,OAAO,IAAI,CAAC,UAAU,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC;YAC/D,IAAM,WAAW,GAAG,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC9C,YAAY,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACpC,KAAI,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;YAExC,IAAI,CAAC,WAAW,EAAE;gBACd,MAAM,gBAAgB,CAAC,oBAAoB,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;aAC1E;YAED,IAAI,SAAS,CAAC,2BAA2B,CAAC,WAAW,CAAC,EAAE;gBACpD,OAAO,WAAW,CAAC;aACtB;iBAAM;gBACH,MAAM,gBAAgB,CAAC,4CAA4C,EAAE,CAAC;aACzE;SACJ,CACA,CAAC;KACL;IACL,mBAAC;AAAD,CAlDA,CAAkC,kBAAkB;;;;"}
@@ -1,73 +0,0 @@
1
- import { CommonEndSessionRequest, Logger } from "@azure/msal-common";
2
- import { BrowserCacheManager } from "../cache/BrowserCacheManager";
3
- import { PopupParams } from "../interaction_handler/PopupHandler";
4
- /**
5
- * Popup configurations for setting dimensions and position of popup window
6
- */
7
- export declare type PopupWindowAttributes = {
8
- popupSize?: PopupSize;
9
- popupPosition?: PopupPosition;
10
- };
11
- export declare type PopupSize = {
12
- height: number;
13
- width: number;
14
- };
15
- export declare type PopupPosition = {
16
- top: number;
17
- left: number;
18
- };
19
- export declare class PopupUtils {
20
- private browserStorage;
21
- private logger;
22
- private currentWindow;
23
- constructor(storageImpl: BrowserCacheManager, logger: Logger);
24
- /**
25
- * @hidden
26
- *
27
- * Configures popup window for login.
28
- *
29
- * @param urlNavigate
30
- * @param title
31
- * @param popUpWidth
32
- * @param popUpHeight
33
- * @param popupWindowAttributes
34
- * @ignore
35
- * @hidden
36
- */
37
- openPopup(urlNavigate: string, popupParams: PopupParams): Window;
38
- /**
39
- * Helper function to set popup window dimensions and position
40
- * @param urlNavigate
41
- * @param popupName
42
- * @param popupWindowAttributes
43
- * @returns
44
- */
45
- static openSizedPopup(urlNavigate: string, popupName: string, popupWindowAttributes: PopupWindowAttributes, logger: Logger): Window | null;
46
- /**
47
- * Event callback to unload main window.
48
- */
49
- unloadWindow(e: Event): void;
50
- /**
51
- * Closes popup, removes any state vars created during popup calls.
52
- * @param popupWindow
53
- */
54
- cleanPopup(popupWindow?: Window): void;
55
- /**
56
- * Monitors a window until it loads a url with the same origin.
57
- * @param popupWindow - window that is being monitored
58
- */
59
- monitorPopupForSameOrigin(popupWindow: Window): Promise<void>;
60
- /**
61
- * Generates the name for the popup based on the client id and request
62
- * @param clientId
63
- * @param request
64
- */
65
- static generatePopupName(clientId: string, scopes: Array<string>, authority: string, correlationId: string): string;
66
- /**
67
- * Generates the name for the popup based on the client id and request for logouts
68
- * @param clientId
69
- * @param request
70
- */
71
- static generateLogoutPopupName(clientId: string, request: CommonEndSessionRequest): string;
72
- }
73
- //# sourceMappingURL=PopupUtils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PopupUtils.d.ts","sourceRoot":"","sources":["../../src/utils/PopupUtils.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,uBAAuB,EAAa,MAAM,EAAe,MAAM,oBAAoB,CAAC;AAC7F,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAEnE,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAGlE;;GAEG;AACH,oBAAY,qBAAqB,GAAG;IAChC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,aAAa,CAAC,EAAE,aAAa,CAAA;CAChC,CAAC;AAEF,oBAAY,SAAS,GAAG;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,oBAAY,aAAa,GAAG;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,qBAAa,UAAU;IACnB,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,aAAa,CAAmB;gBAE5B,WAAW,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM;IAQ5D;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,GAAG,MAAM;IAgChE;;;;;;OAMG;IACH,MAAM,CAAC,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAC,IAAI;IA0CxI;;OAEG;IACH,YAAY,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAS5B;;;OAGG;IACH,UAAU,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI;IAYtC;;;OAGG;IACH,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgC7D;;;;OAIG;IACH,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM;IAInH;;;;OAIG;IACH,MAAM,CAAC,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,uBAAuB,GAAG,MAAM;CAI7F"}
@@ -1,185 +0,0 @@
1
- /*! @azure/msal-browser v2.24.0 2022-05-02 */
2
- 'use strict';
3
- import { StringUtils, Constants } from '@azure/msal-common';
4
- import { BrowserAuthError } from '../error/BrowserAuthError.js';
5
- import { BrowserConstants, InteractionType } from './BrowserConstants.js';
6
-
7
- /*
8
- * Copyright (c) Microsoft Corporation. All rights reserved.
9
- * Licensed under the MIT License.
10
- */
11
- var PopupUtils = /** @class */ (function () {
12
- function PopupUtils(storageImpl, logger) {
13
- this.browserStorage = storageImpl;
14
- this.logger = logger;
15
- // Properly sets this reference for the unload event.
16
- this.unloadWindow = this.unloadWindow.bind(this);
17
- }
18
- /**
19
- * @hidden
20
- *
21
- * Configures popup window for login.
22
- *
23
- * @param urlNavigate
24
- * @param title
25
- * @param popUpWidth
26
- * @param popUpHeight
27
- * @param popupWindowAttributes
28
- * @ignore
29
- * @hidden
30
- */
31
- PopupUtils.prototype.openPopup = function (urlNavigate, popupParams) {
32
- try {
33
- var popupWindow = void 0;
34
- // Popup window passed in, setting url to navigate to
35
- if (popupParams.popup) {
36
- popupWindow = popupParams.popup;
37
- this.logger.verbosePii("Navigating popup window to: " + urlNavigate);
38
- popupWindow.location.assign(urlNavigate);
39
- }
40
- else if (typeof popupParams.popup === "undefined") {
41
- // Popup will be undefined if it was not passed in
42
- this.logger.verbosePii("Opening popup window to: " + urlNavigate);
43
- popupWindow = PopupUtils.openSizedPopup(urlNavigate, popupParams.popupName, popupParams.popupWindowAttributes, this.logger);
44
- }
45
- // Popup will be null if popups are blocked
46
- if (!popupWindow) {
47
- throw BrowserAuthError.createEmptyWindowCreatedError();
48
- }
49
- if (popupWindow.focus) {
50
- popupWindow.focus();
51
- }
52
- this.currentWindow = popupWindow;
53
- window.addEventListener("beforeunload", this.unloadWindow);
54
- return popupWindow;
55
- }
56
- catch (e) {
57
- this.logger.error("error opening popup " + e.message);
58
- this.browserStorage.setInteractionInProgress(false);
59
- throw BrowserAuthError.createPopupWindowError(e.toString());
60
- }
61
- };
62
- /**
63
- * Helper function to set popup window dimensions and position
64
- * @param urlNavigate
65
- * @param popupName
66
- * @param popupWindowAttributes
67
- * @returns
68
- */
69
- PopupUtils.openSizedPopup = function (urlNavigate, popupName, popupWindowAttributes, logger) {
70
- var _a, _b, _c, _d;
71
- /**
72
- * adding winLeft and winTop to account for dual monitor
73
- * using screenLeft and screenTop for IE8 and earlier
74
- */
75
- var winLeft = window.screenLeft ? window.screenLeft : window.screenX;
76
- var winTop = window.screenTop ? window.screenTop : window.screenY;
77
- /**
78
- * window.innerWidth displays browser window"s height and width excluding toolbars
79
- * using document.documentElement.clientWidth for IE8 and earlier
80
- */
81
- var winWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;
82
- var winHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;
83
- var width = (_a = popupWindowAttributes.popupSize) === null || _a === void 0 ? void 0 : _a.width;
84
- var height = (_b = popupWindowAttributes.popupSize) === null || _b === void 0 ? void 0 : _b.height;
85
- var top = (_c = popupWindowAttributes.popupPosition) === null || _c === void 0 ? void 0 : _c.top;
86
- var left = (_d = popupWindowAttributes.popupPosition) === null || _d === void 0 ? void 0 : _d.left;
87
- if (!width || width < 0 || width > winWidth) {
88
- logger.verbose("Default popup window width used. Window width not configured or invalid.");
89
- width = BrowserConstants.POPUP_WIDTH;
90
- }
91
- if (!height || height < 0 || height > winHeight) {
92
- logger.verbose("Default popup window height used. Window height not configured or invalid.");
93
- height = BrowserConstants.POPUP_HEIGHT;
94
- }
95
- if (!top || top < 0 || top > winHeight) {
96
- logger.verbose("Default popup window top position used. Window top not configured or invalid.");
97
- top = Math.max(0, ((winHeight / 2) - (BrowserConstants.POPUP_HEIGHT / 2)) + winTop);
98
- }
99
- if (!left || left < 0 || left > winWidth) {
100
- logger.verbose("Default popup window left position used. Window left not configured or invalid.");
101
- left = Math.max(0, ((winWidth / 2) - (BrowserConstants.POPUP_WIDTH / 2)) + winLeft);
102
- }
103
- return window.open(urlNavigate, popupName, "width=" + width + ", height=" + height + ", top=" + top + ", left=" + left + ", scrollbars=yes");
104
- };
105
- /**
106
- * Event callback to unload main window.
107
- */
108
- PopupUtils.prototype.unloadWindow = function (e) {
109
- this.browserStorage.cleanRequestByInteractionType(InteractionType.Popup);
110
- if (this.currentWindow) {
111
- this.currentWindow.close();
112
- }
113
- // Guarantees browser unload will happen, so no other errors will be thrown.
114
- e.preventDefault();
115
- };
116
- /**
117
- * Closes popup, removes any state vars created during popup calls.
118
- * @param popupWindow
119
- */
120
- PopupUtils.prototype.cleanPopup = function (popupWindow) {
121
- if (popupWindow) {
122
- // Close window.
123
- popupWindow.close();
124
- }
125
- // Remove window unload function
126
- window.removeEventListener("beforeunload", this.unloadWindow);
127
- // Interaction is completed - remove interaction status.
128
- this.browserStorage.setInteractionInProgress(false);
129
- };
130
- /**
131
- * Monitors a window until it loads a url with the same origin.
132
- * @param popupWindow - window that is being monitored
133
- */
134
- PopupUtils.prototype.monitorPopupForSameOrigin = function (popupWindow) {
135
- var _this = this;
136
- return new Promise(function (resolve, reject) {
137
- var intervalId = setInterval(function () {
138
- if (popupWindow.closed) {
139
- // Window is closed
140
- _this.cleanPopup();
141
- clearInterval(intervalId);
142
- reject(BrowserAuthError.createUserCancelledError());
143
- return;
144
- }
145
- var href = Constants.EMPTY_STRING;
146
- try {
147
- /*
148
- * Will throw if cross origin,
149
- * which should be caught and ignored
150
- * since we need the interval to keep running while on STS UI.
151
- */
152
- href = popupWindow.location.href;
153
- }
154
- catch (e) { }
155
- // Don't process blank pages or cross domain
156
- if (StringUtils.isEmpty(href) || href === "about:blank") {
157
- return;
158
- }
159
- clearInterval(intervalId);
160
- resolve();
161
- }, BrowserConstants.POLL_INTERVAL_MS);
162
- });
163
- };
164
- /**
165
- * Generates the name for the popup based on the client id and request
166
- * @param clientId
167
- * @param request
168
- */
169
- PopupUtils.generatePopupName = function (clientId, scopes, authority, correlationId) {
170
- return BrowserConstants.POPUP_NAME_PREFIX + "." + clientId + "." + scopes.join("-") + "." + authority + "." + correlationId;
171
- };
172
- /**
173
- * Generates the name for the popup based on the client id and request for logouts
174
- * @param clientId
175
- * @param request
176
- */
177
- PopupUtils.generateLogoutPopupName = function (clientId, request) {
178
- var homeAccountId = request.account && request.account.homeAccountId;
179
- return BrowserConstants.POPUP_NAME_PREFIX + "." + clientId + "." + homeAccountId + "." + request.correlationId;
180
- };
181
- return PopupUtils;
182
- }());
183
-
184
- export { PopupUtils };
185
- //# sourceMappingURL=PopupUtils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PopupUtils.js","sources":["../../src/utils/PopupUtils.ts"],"sourcesContent":["/*\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { CommonEndSessionRequest, Constants, Logger, StringUtils } from \"@azure/msal-common\";\nimport { BrowserCacheManager } from \"../cache/BrowserCacheManager\";\nimport { BrowserAuthError } from \"../error/BrowserAuthError\";\nimport { PopupParams } from \"../interaction_handler/PopupHandler\";\nimport { BrowserConstants, InteractionType } from \"./BrowserConstants\";\n\n/**\n * Popup configurations for setting dimensions and position of popup window\n */\nexport type PopupWindowAttributes = {\n popupSize?: PopupSize,\n popupPosition?: PopupPosition\n};\n\nexport type PopupSize = {\n height: number;\n width: number;\n};\n\nexport type PopupPosition = {\n top: number;\n left: number;\n};\n\nexport class PopupUtils {\n private browserStorage: BrowserCacheManager;\n private logger: Logger;\n private currentWindow: Window|undefined;\n\n constructor(storageImpl: BrowserCacheManager, logger: Logger) {\n this.browserStorage = storageImpl;\n this.logger = logger;\n\n // Properly sets this reference for the unload event.\n this.unloadWindow = this.unloadWindow.bind(this);\n }\n\n /**\n * @hidden\n *\n * Configures popup window for login.\n *\n * @param urlNavigate\n * @param title\n * @param popUpWidth\n * @param popUpHeight\n * @param popupWindowAttributes\n * @ignore\n * @hidden\n */\n openPopup(urlNavigate: string, popupParams: PopupParams): Window {\n try {\n let popupWindow;\n // Popup window passed in, setting url to navigate to\n if (popupParams.popup) {\n popupWindow = popupParams.popup;\n this.logger.verbosePii(`Navigating popup window to: ${urlNavigate}`);\n popupWindow.location.assign(urlNavigate);\n } else if (typeof popupParams.popup === \"undefined\") {\n // Popup will be undefined if it was not passed in\n this.logger.verbosePii(`Opening popup window to: ${urlNavigate}`);\n popupWindow = PopupUtils.openSizedPopup(urlNavigate, popupParams.popupName, popupParams.popupWindowAttributes, this.logger);\n }\n\n // Popup will be null if popups are blocked\n if (!popupWindow) {\n throw BrowserAuthError.createEmptyWindowCreatedError();\n }\n if (popupWindow.focus) {\n popupWindow.focus();\n }\n this.currentWindow = popupWindow;\n window.addEventListener(\"beforeunload\", this.unloadWindow);\n\n return popupWindow;\n } catch (e) {\n this.logger.error(\"error opening popup \" + e.message);\n this.browserStorage.setInteractionInProgress(false);\n throw BrowserAuthError.createPopupWindowError(e.toString());\n }\n }\n\n /**\n * Helper function to set popup window dimensions and position\n * @param urlNavigate \n * @param popupName \n * @param popupWindowAttributes \n * @returns \n */\n static openSizedPopup(urlNavigate: string, popupName: string, popupWindowAttributes: PopupWindowAttributes, logger: Logger): Window|null {\n /**\n * adding winLeft and winTop to account for dual monitor\n * using screenLeft and screenTop for IE8 and earlier\n */\n const winLeft = window.screenLeft ? window.screenLeft : window.screenX;\n const winTop = window.screenTop ? window.screenTop : window.screenY;\n /**\n * window.innerWidth displays browser window\"s height and width excluding toolbars\n * using document.documentElement.clientWidth for IE8 and earlier\n */\n const winWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;\n const winHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;\n\n let width = popupWindowAttributes.popupSize?.width;\n let height = popupWindowAttributes.popupSize?.height;\n let top = popupWindowAttributes.popupPosition?.top;\n let left = popupWindowAttributes.popupPosition?.left;\n\n if (!width || width < 0 || width > winWidth) {\n logger.verbose(\"Default popup window width used. Window width not configured or invalid.\");\n width = BrowserConstants.POPUP_WIDTH;\n }\n\n if (!height || height < 0 || height > winHeight) {\n logger.verbose(\"Default popup window height used. Window height not configured or invalid.\");\n height = BrowserConstants.POPUP_HEIGHT;\n }\n\n if (!top || top < 0 || top > winHeight) {\n logger.verbose(\"Default popup window top position used. Window top not configured or invalid.\");\n top = Math.max(0, ((winHeight / 2) - (BrowserConstants.POPUP_HEIGHT / 2)) + winTop);\n }\n\n if (!left || left < 0 || left > winWidth) {\n logger.verbose(\"Default popup window left position used. Window left not configured or invalid.\");\n left = Math.max(0, ((winWidth / 2) - (BrowserConstants.POPUP_WIDTH / 2)) + winLeft);\n }\n\n return window.open(urlNavigate, popupName, `width=${width}, height=${height}, top=${top}, left=${left}, scrollbars=yes`);\n }\n\n /**\n * Event callback to unload main window.\n */\n unloadWindow(e: Event): void {\n this.browserStorage.cleanRequestByInteractionType(InteractionType.Popup);\n if (this.currentWindow) {\n this.currentWindow.close();\n }\n // Guarantees browser unload will happen, so no other errors will be thrown.\n e.preventDefault();\n }\n\n /**\n * Closes popup, removes any state vars created during popup calls.\n * @param popupWindow\n */\n cleanPopup(popupWindow?: Window): void {\n if (popupWindow) {\n // Close window.\n popupWindow.close();\n }\n // Remove window unload function\n window.removeEventListener(\"beforeunload\", this.unloadWindow);\n\n // Interaction is completed - remove interaction status.\n this.browserStorage.setInteractionInProgress(false);\n }\n\n /**\n * Monitors a window until it loads a url with the same origin.\n * @param popupWindow - window that is being monitored\n */\n monitorPopupForSameOrigin(popupWindow: Window): Promise<void> {\n return new Promise((resolve, reject) => {\n const intervalId = setInterval(() => {\n if (popupWindow.closed) {\n // Window is closed\n this.cleanPopup();\n clearInterval(intervalId);\n reject(BrowserAuthError.createUserCancelledError());\n return;\n }\n\n let href: string = Constants.EMPTY_STRING;\n try {\n /*\n * Will throw if cross origin,\n * which should be caught and ignored\n * since we need the interval to keep running while on STS UI.\n */\n href = popupWindow.location.href;\n } catch (e) {}\n\n // Don't process blank pages or cross domain\n if (StringUtils.isEmpty(href) || href === \"about:blank\") {\n return;\n }\n\n clearInterval(intervalId);\n resolve();\n }, BrowserConstants.POLL_INTERVAL_MS);\n });\n }\n\n /**\n * Generates the name for the popup based on the client id and request\n * @param clientId\n * @param request\n */\n static generatePopupName(clientId: string, scopes: Array<string>, authority: string, correlationId: string): string {\n return `${BrowserConstants.POPUP_NAME_PREFIX}.${clientId}.${scopes.join(\"-\")}.${authority}.${correlationId}`;\n }\n\n /**\n * Generates the name for the popup based on the client id and request for logouts\n * @param clientId \n * @param request \n */\n static generateLogoutPopupName(clientId: string, request: CommonEndSessionRequest): string {\n const homeAccountId = request.account && request.account.homeAccountId;\n return `${BrowserConstants.POPUP_NAME_PREFIX}.${clientId}.${homeAccountId}.${request.correlationId}`;\n }\n}\n"],"names":[],"mappings":"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"}