@azure/msal-browser 3.4.0 → 3.5.1-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (231) hide show
  1. package/dist/app/IPublicClientApplication.d.ts +51 -51
  2. package/dist/app/IPublicClientApplication.mjs +102 -102
  3. package/dist/app/PublicClientApplication.d.ts +268 -268
  4. package/dist/app/PublicClientApplication.mjs +333 -333
  5. package/dist/app/PublicClientNext.d.ts +273 -273
  6. package/dist/app/PublicClientNext.mjs +351 -351
  7. package/dist/broker/nativeBroker/NativeMessageHandler.d.ts +62 -62
  8. package/dist/broker/nativeBroker/NativeMessageHandler.mjs +254 -254
  9. package/dist/broker/nativeBroker/NativeRequest.d.ts +44 -44
  10. package/dist/broker/nativeBroker/NativeResponse.d.ts +48 -48
  11. package/dist/broker/nativeBroker/NativeStatusCodes.d.ts +7 -7
  12. package/dist/broker/nativeBroker/NativeStatusCodes.mjs +11 -11
  13. package/dist/cache/AsyncMemoryStorage.d.ts +51 -51
  14. package/dist/cache/AsyncMemoryStorage.mjs +132 -132
  15. package/dist/cache/BrowserCacheManager.d.ts +383 -383
  16. package/dist/cache/BrowserCacheManager.d.ts.map +1 -1
  17. package/dist/cache/BrowserCacheManager.mjs +1264 -1264
  18. package/dist/cache/BrowserCacheManager.mjs.map +1 -1
  19. package/dist/cache/BrowserStorage.d.ts +11 -11
  20. package/dist/cache/BrowserStorage.mjs +32 -32
  21. package/dist/cache/CryptoKeyStore.d.ts +18 -18
  22. package/dist/cache/CryptoKeyStore.mjs +40 -40
  23. package/dist/cache/DatabaseStorage.d.ts +56 -56
  24. package/dist/cache/DatabaseStorage.mjs +190 -190
  25. package/dist/cache/IAsyncMemoryStorage.d.ts +27 -27
  26. package/dist/cache/ITokenCache.d.ts +11 -11
  27. package/dist/cache/IWindowStorage.d.ts +27 -27
  28. package/dist/cache/MemoryStorage.d.ts +11 -11
  29. package/dist/cache/MemoryStorage.mjs +31 -31
  30. package/dist/cache/TokenCache.d.ts +77 -77
  31. package/dist/cache/TokenCache.mjs +224 -224
  32. package/dist/config/Configuration.d.ts +206 -206
  33. package/dist/config/Configuration.mjs +128 -128
  34. package/dist/controllers/ControllerFactory.d.ts +4 -4
  35. package/dist/controllers/ControllerFactory.mjs +29 -29
  36. package/dist/controllers/IController.d.ts +61 -61
  37. package/dist/controllers/NestedAppAuthController.d.ts +95 -95
  38. package/dist/controllers/NestedAppAuthController.d.ts.map +1 -1
  39. package/dist/controllers/NestedAppAuthController.mjs +335 -333
  40. package/dist/controllers/NestedAppAuthController.mjs.map +1 -1
  41. package/dist/controllers/StandardController.d.ts +407 -407
  42. package/dist/controllers/StandardController.d.ts.map +1 -1
  43. package/dist/controllers/StandardController.mjs +1294 -1291
  44. package/dist/controllers/StandardController.mjs.map +1 -1
  45. package/dist/controllers/UnknownOperatingContextController.d.ts +87 -87
  46. package/dist/controllers/UnknownOperatingContextController.mjs +264 -264
  47. package/dist/crypto/BrowserCrypto.d.ts +44 -44
  48. package/dist/crypto/BrowserCrypto.mjs +93 -93
  49. package/dist/crypto/CryptoOps.d.ts +63 -63
  50. package/dist/crypto/CryptoOps.d.ts.map +1 -1
  51. package/dist/crypto/CryptoOps.mjs +145 -144
  52. package/dist/crypto/CryptoOps.mjs.map +1 -1
  53. package/dist/crypto/PkceGenerator.d.ts +8 -8
  54. package/dist/crypto/PkceGenerator.mjs +54 -54
  55. package/dist/crypto/SignedHttpRequest.d.ts +30 -30
  56. package/dist/crypto/SignedHttpRequest.mjs +39 -39
  57. package/dist/encode/Base64Decode.d.ts +9 -9
  58. package/dist/encode/Base64Decode.mjs +36 -36
  59. package/dist/encode/Base64Encode.d.ts +19 -19
  60. package/dist/encode/Base64Encode.mjs +43 -43
  61. package/dist/error/BrowserAuthError.d.ts +250 -250
  62. package/dist/error/BrowserAuthError.mjs +258 -258
  63. package/dist/error/BrowserAuthErrorCodes.d.ts +45 -45
  64. package/dist/error/BrowserAuthErrorCodes.mjs +49 -49
  65. package/dist/error/BrowserConfigurationAuthError.d.ts +33 -33
  66. package/dist/error/BrowserConfigurationAuthError.mjs +40 -40
  67. package/dist/error/BrowserConfigurationAuthErrorCodes.d.ts +3 -3
  68. package/dist/error/BrowserConfigurationAuthErrorCodes.mjs +7 -7
  69. package/dist/error/NativeAuthError.d.ts +29 -29
  70. package/dist/error/NativeAuthError.mjs +60 -60
  71. package/dist/error/NativeAuthErrorCodes.d.ts +2 -2
  72. package/dist/error/NativeAuthErrorCodes.mjs +6 -6
  73. package/dist/error/NestedAppAuthError.d.ts +14 -14
  74. package/dist/error/NestedAppAuthError.mjs +23 -23
  75. package/dist/event/EventHandler.d.ts +41 -41
  76. package/dist/event/EventHandler.mjs +119 -119
  77. package/dist/event/EventMessage.d.ts +25 -25
  78. package/dist/event/EventMessage.mjs +68 -68
  79. package/dist/event/EventType.d.ts +28 -28
  80. package/dist/event/EventType.mjs +31 -31
  81. package/dist/index.d.ts +39 -39
  82. package/dist/index.d.ts.map +1 -1
  83. package/dist/index.mjs +2 -2
  84. package/dist/interaction_client/BaseInteractionClient.d.ts +54 -55
  85. package/dist/interaction_client/BaseInteractionClient.d.ts.map +1 -1
  86. package/dist/interaction_client/BaseInteractionClient.mjs +152 -153
  87. package/dist/interaction_client/BaseInteractionClient.mjs.map +1 -1
  88. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.d.ts +4 -4
  89. package/dist/interaction_client/HybridSpaAuthorizationCodeClient.mjs +10 -10
  90. package/dist/interaction_client/NativeInteractionClient.d.ts +140 -140
  91. package/dist/interaction_client/NativeInteractionClient.mjs +548 -548
  92. package/dist/interaction_client/PopupClient.d.ts +105 -115
  93. package/dist/interaction_client/PopupClient.d.ts.map +1 -1
  94. package/dist/interaction_client/PopupClient.mjs +435 -505
  95. package/dist/interaction_client/PopupClient.mjs.map +1 -1
  96. package/dist/interaction_client/RedirectClient.d.ts +49 -49
  97. package/dist/interaction_client/RedirectClient.d.ts.map +1 -1
  98. package/dist/interaction_client/RedirectClient.mjs +314 -297
  99. package/dist/interaction_client/RedirectClient.mjs.map +1 -1
  100. package/dist/interaction_client/SilentAuthCodeClient.d.ts +23 -23
  101. package/dist/interaction_client/SilentAuthCodeClient.mjs +57 -57
  102. package/dist/interaction_client/SilentCacheClient.d.ts +24 -24
  103. package/dist/interaction_client/SilentCacheClient.mjs +61 -61
  104. package/dist/interaction_client/SilentIframeClient.d.ts +32 -32
  105. package/dist/interaction_client/SilentIframeClient.d.ts.map +1 -1
  106. package/dist/interaction_client/SilentIframeClient.mjs +99 -108
  107. package/dist/interaction_client/SilentIframeClient.mjs.map +1 -1
  108. package/dist/interaction_client/SilentRefreshClient.d.ts +20 -20
  109. package/dist/interaction_client/SilentRefreshClient.mjs +43 -43
  110. package/dist/interaction_client/StandardInteractionClient.d.ts +54 -59
  111. package/dist/interaction_client/StandardInteractionClient.d.ts.map +1 -1
  112. package/dist/interaction_client/StandardInteractionClient.mjs +222 -244
  113. package/dist/interaction_client/StandardInteractionClient.mjs.map +1 -1
  114. package/dist/interaction_handler/InteractionHandler.d.ts +33 -33
  115. package/dist/interaction_handler/InteractionHandler.d.ts.map +1 -1
  116. package/dist/interaction_handler/InteractionHandler.mjs +94 -98
  117. package/dist/interaction_handler/InteractionHandler.mjs.map +1 -1
  118. package/dist/interaction_handler/RedirectHandler.d.ts +32 -32
  119. package/dist/interaction_handler/RedirectHandler.d.ts.map +1 -1
  120. package/dist/interaction_handler/RedirectHandler.mjs +135 -139
  121. package/dist/interaction_handler/RedirectHandler.mjs.map +1 -1
  122. package/dist/interaction_handler/SilentHandler.d.ts +13 -13
  123. package/dist/interaction_handler/SilentHandler.d.ts.map +1 -1
  124. package/dist/interaction_handler/SilentHandler.mjs +134 -128
  125. package/dist/interaction_handler/SilentHandler.mjs.map +1 -1
  126. package/dist/naa/AccountInfo.d.ts +11 -12
  127. package/dist/naa/AccountInfo.d.ts.map +1 -1
  128. package/dist/naa/AccountRequests.d.ts +9 -9
  129. package/dist/naa/AuthBridge.d.ts +5 -5
  130. package/dist/naa/BridgeCapabilities.d.ts +3 -3
  131. package/dist/naa/BridgeError.d.ts +9 -9
  132. package/dist/naa/BridgeError.d.ts.map +1 -1
  133. package/dist/naa/BridgeError.mjs +7 -7
  134. package/dist/naa/BridgeError.mjs.map +1 -1
  135. package/dist/naa/BridgeProxy.d.ts +72 -71
  136. package/dist/naa/BridgeProxy.d.ts.map +1 -1
  137. package/dist/naa/BridgeProxy.mjs +152 -149
  138. package/dist/naa/BridgeProxy.mjs.map +1 -1
  139. package/dist/naa/BridgeRequest.d.ts +6 -6
  140. package/dist/naa/BridgeRequestEnvelope.d.ts +13 -13
  141. package/dist/naa/BridgeResponseEnvelope.d.ts +10 -10
  142. package/dist/naa/BridgeStatusCode.d.ts +10 -10
  143. package/dist/naa/BridgeStatusCode.mjs +15 -15
  144. package/dist/naa/IBridgeProxy.d.ts +12 -10
  145. package/dist/naa/IBridgeProxy.d.ts.map +1 -1
  146. package/dist/naa/InitializeBridgeResponse.d.ts +6 -6
  147. package/dist/naa/InitializeBridgeResponse.d.ts.map +1 -1
  148. package/dist/naa/TokenRequest.d.ts +19 -21
  149. package/dist/naa/TokenRequest.d.ts.map +1 -1
  150. package/dist/naa/TokenResponse.d.ts +15 -16
  151. package/dist/naa/TokenResponse.d.ts.map +1 -1
  152. package/dist/naa/mapping/NestedAppAuthAdapter.d.ts +23 -25
  153. package/dist/naa/mapping/NestedAppAuthAdapter.d.ts.map +1 -1
  154. package/dist/naa/mapping/NestedAppAuthAdapter.mjs +142 -170
  155. package/dist/naa/mapping/NestedAppAuthAdapter.mjs.map +1 -1
  156. package/dist/navigation/INavigationClient.d.ts +16 -16
  157. package/dist/navigation/NavigationClient.d.ts +22 -22
  158. package/dist/navigation/NavigationClient.mjs +40 -40
  159. package/dist/navigation/NavigationOptions.d.ts +12 -12
  160. package/dist/network/FetchClient.d.ts +26 -26
  161. package/dist/network/FetchClient.mjs +99 -99
  162. package/dist/operatingcontext/BaseOperatingContext.d.ts +40 -40
  163. package/dist/operatingcontext/BaseOperatingContext.mjs +44 -44
  164. package/dist/operatingcontext/StandardOperatingContext.d.ts +25 -25
  165. package/dist/operatingcontext/StandardOperatingContext.mjs +43 -43
  166. package/dist/operatingcontext/TeamsAppOperatingContext.d.ts +32 -32
  167. package/dist/operatingcontext/TeamsAppOperatingContext.d.ts.map +1 -1
  168. package/dist/operatingcontext/TeamsAppOperatingContext.mjs +85 -82
  169. package/dist/operatingcontext/TeamsAppOperatingContext.mjs.map +1 -1
  170. package/dist/operatingcontext/UnknownOperatingContext.d.ts +25 -25
  171. package/dist/operatingcontext/UnknownOperatingContext.mjs +42 -42
  172. package/dist/packageMetadata.d.ts +2 -2
  173. package/dist/packageMetadata.mjs +4 -4
  174. package/dist/request/AuthorizationCodeRequest.d.ts +8 -8
  175. package/dist/request/AuthorizationUrlRequest.d.ts +8 -8
  176. package/dist/request/ClearCacheRequest.d.ts +10 -10
  177. package/dist/request/EndSessionPopupRequest.d.ts +18 -18
  178. package/dist/request/EndSessionRequest.d.ts +15 -15
  179. package/dist/request/PopupRequest.d.ts +34 -34
  180. package/dist/request/PopupWindowAttributes.d.ts +15 -15
  181. package/dist/request/RedirectRequest.d.ts +35 -35
  182. package/dist/request/SilentRequest.d.ts +32 -32
  183. package/dist/request/SsoSilentRequest.d.ts +29 -29
  184. package/dist/response/AuthenticationResult.d.ts +4 -4
  185. package/dist/response/ResponseHandler.d.ts +8 -0
  186. package/dist/response/ResponseHandler.d.ts.map +1 -0
  187. package/dist/response/ResponseHandler.mjs +46 -0
  188. package/dist/response/ResponseHandler.mjs.map +1 -0
  189. package/dist/telemetry/BrowserPerformanceClient.d.ts +36 -36
  190. package/dist/telemetry/BrowserPerformanceClient.mjs +125 -125
  191. package/dist/telemetry/BrowserPerformanceMeasurement.d.ts +21 -21
  192. package/dist/telemetry/BrowserPerformanceMeasurement.mjs +92 -92
  193. package/dist/utils/BrowserConstants.d.ts +176 -176
  194. package/dist/utils/BrowserConstants.mjs +204 -204
  195. package/dist/utils/BrowserProtocolUtils.d.ts +11 -18
  196. package/dist/utils/BrowserProtocolUtils.d.ts.map +1 -1
  197. package/dist/utils/BrowserProtocolUtils.mjs +23 -36
  198. package/dist/utils/BrowserProtocolUtils.mjs.map +1 -1
  199. package/dist/utils/BrowserUtils.d.ts +56 -56
  200. package/dist/utils/BrowserUtils.mjs +125 -125
  201. package/lib/msal-browser.cjs +17926 -18062
  202. package/lib/msal-browser.cjs.map +1 -1
  203. package/lib/msal-browser.js +17926 -18062
  204. package/lib/msal-browser.js.map +1 -1
  205. package/lib/msal-browser.min.js +66 -65
  206. package/package.json +102 -102
  207. package/src/cache/BrowserCacheManager.ts +7 -10
  208. package/src/controllers/NestedAppAuthController.ts +8 -3
  209. package/src/controllers/StandardController.ts +31 -40
  210. package/src/crypto/CryptoOps.ts +5 -3
  211. package/src/index.ts +1 -0
  212. package/src/interaction_client/BaseInteractionClient.ts +1 -2
  213. package/src/interaction_client/PopupClient.ts +34 -137
  214. package/src/interaction_client/RedirectClient.ts +71 -55
  215. package/src/interaction_client/SilentIframeClient.ts +16 -27
  216. package/src/interaction_client/StandardInteractionClient.ts +2 -48
  217. package/src/interaction_handler/InteractionHandler.ts +5 -8
  218. package/src/interaction_handler/RedirectHandler.ts +4 -8
  219. package/src/interaction_handler/SilentHandler.ts +12 -5
  220. package/src/naa/AccountInfo.ts +3 -4
  221. package/src/naa/BridgeError.ts +4 -4
  222. package/src/naa/BridgeProxy.ts +6 -2
  223. package/src/naa/IBridgeProxy.ts +2 -0
  224. package/src/naa/InitializeBridgeResponse.ts +1 -1
  225. package/src/naa/TokenRequest.ts +0 -2
  226. package/src/naa/TokenResponse.ts +1 -2
  227. package/src/naa/mapping/NestedAppAuthAdapter.ts +72 -80
  228. package/src/operatingcontext/TeamsAppOperatingContext.ts +4 -1
  229. package/src/packageMetadata.ts +1 -1
  230. package/src/response/ResponseHandler.ts +73 -0
  231. package/src/utils/BrowserProtocolUtils.ts +17 -36
@@ -1,198 +1,198 @@
1
- /*! @azure/msal-browser v3.4.0 2023-10-30 */
1
+ /*! @azure/msal-browser v3.5.1-beta.0 2023-11-14 */
2
2
  'use strict';
3
3
  import { createBrowserAuthError } from '../error/BrowserAuthError.mjs';
4
4
  import { DB_NAME, DB_VERSION, DB_TABLE_NAME } from '../utils/BrowserConstants.mjs';
5
5
  import { databaseUnavailable, databaseNotOpen } from '../error/BrowserAuthErrorCodes.mjs';
6
6
 
7
- /*
8
- * Copyright (c) Microsoft Corporation. All rights reserved.
9
- * Licensed under the MIT License.
10
- */
11
- /**
12
- * Storage wrapper for IndexedDB storage in browsers: https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API
13
- */
14
- class DatabaseStorage {
15
- constructor() {
16
- this.dbName = DB_NAME;
17
- this.version = DB_VERSION;
18
- this.tableName = DB_TABLE_NAME;
19
- this.dbOpen = false;
20
- }
21
- /**
22
- * Opens IndexedDB instance.
23
- */
24
- async open() {
25
- return new Promise((resolve, reject) => {
26
- const openDB = window.indexedDB.open(this.dbName, this.version);
27
- openDB.addEventListener("upgradeneeded", (e) => {
28
- const event = e;
29
- event.target.result.createObjectStore(this.tableName);
30
- });
31
- openDB.addEventListener("success", (e) => {
32
- const event = e;
33
- this.db = event.target.result;
34
- this.dbOpen = true;
35
- resolve();
36
- });
37
- openDB.addEventListener("error", () => reject(createBrowserAuthError(databaseUnavailable)));
38
- });
39
- }
40
- /**
41
- * Closes the connection to IndexedDB database when all pending transactions
42
- * complete.
43
- */
44
- closeConnection() {
45
- const db = this.db;
46
- if (db && this.dbOpen) {
47
- db.close();
48
- this.dbOpen = false;
49
- }
50
- }
51
- /**
52
- * Opens database if it's not already open
53
- */
54
- async validateDbIsOpen() {
55
- if (!this.dbOpen) {
56
- return await this.open();
57
- }
58
- }
59
- /**
60
- * Retrieves item from IndexedDB instance.
61
- * @param key
62
- */
63
- async getItem(key) {
64
- await this.validateDbIsOpen();
65
- return new Promise((resolve, reject) => {
66
- // TODO: Add timeouts?
67
- if (!this.db) {
68
- return reject(createBrowserAuthError(databaseNotOpen));
69
- }
70
- const transaction = this.db.transaction([this.tableName], "readonly");
71
- const objectStore = transaction.objectStore(this.tableName);
72
- const dbGet = objectStore.get(key);
73
- dbGet.addEventListener("success", (e) => {
74
- const event = e;
75
- this.closeConnection();
76
- resolve(event.target.result);
77
- });
78
- dbGet.addEventListener("error", (e) => {
79
- this.closeConnection();
80
- reject(e);
81
- });
82
- });
83
- }
84
- /**
85
- * Adds item to IndexedDB under given key
86
- * @param key
87
- * @param payload
88
- */
89
- async setItem(key, payload) {
90
- await this.validateDbIsOpen();
91
- return new Promise((resolve, reject) => {
92
- // TODO: Add timeouts?
93
- if (!this.db) {
94
- return reject(createBrowserAuthError(databaseNotOpen));
95
- }
96
- const transaction = this.db.transaction([this.tableName], "readwrite");
97
- const objectStore = transaction.objectStore(this.tableName);
98
- const dbPut = objectStore.put(payload, key);
99
- dbPut.addEventListener("success", () => {
100
- this.closeConnection();
101
- resolve();
102
- });
103
- dbPut.addEventListener("error", (e) => {
104
- this.closeConnection();
105
- reject(e);
106
- });
107
- });
108
- }
109
- /**
110
- * Removes item from IndexedDB under given key
111
- * @param key
112
- */
113
- async removeItem(key) {
114
- await this.validateDbIsOpen();
115
- return new Promise((resolve, reject) => {
116
- if (!this.db) {
117
- return reject(createBrowserAuthError(databaseNotOpen));
118
- }
119
- const transaction = this.db.transaction([this.tableName], "readwrite");
120
- const objectStore = transaction.objectStore(this.tableName);
121
- const dbDelete = objectStore.delete(key);
122
- dbDelete.addEventListener("success", () => {
123
- this.closeConnection();
124
- resolve();
125
- });
126
- dbDelete.addEventListener("error", (e) => {
127
- this.closeConnection();
128
- reject(e);
129
- });
130
- });
131
- }
132
- /**
133
- * Get all the keys from the storage object as an iterable array of strings.
134
- */
135
- async getKeys() {
136
- await this.validateDbIsOpen();
137
- return new Promise((resolve, reject) => {
138
- if (!this.db) {
139
- return reject(createBrowserAuthError(databaseNotOpen));
140
- }
141
- const transaction = this.db.transaction([this.tableName], "readonly");
142
- const objectStore = transaction.objectStore(this.tableName);
143
- const dbGetKeys = objectStore.getAllKeys();
144
- dbGetKeys.addEventListener("success", (e) => {
145
- const event = e;
146
- this.closeConnection();
147
- resolve(event.target.result);
148
- });
149
- dbGetKeys.addEventListener("error", (e) => {
150
- this.closeConnection();
151
- reject(e);
152
- });
153
- });
154
- }
155
- /**
156
- *
157
- * Checks whether there is an object under the search key in the object store
158
- */
159
- async containsKey(key) {
160
- await this.validateDbIsOpen();
161
- return new Promise((resolve, reject) => {
162
- if (!this.db) {
163
- return reject(createBrowserAuthError(databaseNotOpen));
164
- }
165
- const transaction = this.db.transaction([this.tableName], "readonly");
166
- const objectStore = transaction.objectStore(this.tableName);
167
- const dbContainsKey = objectStore.count(key);
168
- dbContainsKey.addEventListener("success", (e) => {
169
- const event = e;
170
- this.closeConnection();
171
- resolve(event.target.result === 1);
172
- });
173
- dbContainsKey.addEventListener("error", (e) => {
174
- this.closeConnection();
175
- reject(e);
176
- });
177
- });
178
- }
179
- /**
180
- * Deletes the MSAL database. The database is deleted rather than cleared to make it possible
181
- * for client applications to downgrade to a previous MSAL version without worrying about forward compatibility issues
182
- * with IndexedDB database versions.
183
- */
184
- async deleteDatabase() {
185
- // Check if database being deleted exists
186
- if (this.db && this.dbOpen) {
187
- this.closeConnection();
188
- }
189
- return new Promise((resolve, reject) => {
190
- const deleteDbRequest = window.indexedDB.deleteDatabase(DB_NAME);
191
- deleteDbRequest.addEventListener("success", () => resolve(true));
192
- deleteDbRequest.addEventListener("blocked", () => resolve(true));
193
- deleteDbRequest.addEventListener("error", () => reject(false));
194
- });
195
- }
7
+ /*
8
+ * Copyright (c) Microsoft Corporation. All rights reserved.
9
+ * Licensed under the MIT License.
10
+ */
11
+ /**
12
+ * Storage wrapper for IndexedDB storage in browsers: https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API
13
+ */
14
+ class DatabaseStorage {
15
+ constructor() {
16
+ this.dbName = DB_NAME;
17
+ this.version = DB_VERSION;
18
+ this.tableName = DB_TABLE_NAME;
19
+ this.dbOpen = false;
20
+ }
21
+ /**
22
+ * Opens IndexedDB instance.
23
+ */
24
+ async open() {
25
+ return new Promise((resolve, reject) => {
26
+ const openDB = window.indexedDB.open(this.dbName, this.version);
27
+ openDB.addEventListener("upgradeneeded", (e) => {
28
+ const event = e;
29
+ event.target.result.createObjectStore(this.tableName);
30
+ });
31
+ openDB.addEventListener("success", (e) => {
32
+ const event = e;
33
+ this.db = event.target.result;
34
+ this.dbOpen = true;
35
+ resolve();
36
+ });
37
+ openDB.addEventListener("error", () => reject(createBrowserAuthError(databaseUnavailable)));
38
+ });
39
+ }
40
+ /**
41
+ * Closes the connection to IndexedDB database when all pending transactions
42
+ * complete.
43
+ */
44
+ closeConnection() {
45
+ const db = this.db;
46
+ if (db && this.dbOpen) {
47
+ db.close();
48
+ this.dbOpen = false;
49
+ }
50
+ }
51
+ /**
52
+ * Opens database if it's not already open
53
+ */
54
+ async validateDbIsOpen() {
55
+ if (!this.dbOpen) {
56
+ return await this.open();
57
+ }
58
+ }
59
+ /**
60
+ * Retrieves item from IndexedDB instance.
61
+ * @param key
62
+ */
63
+ async getItem(key) {
64
+ await this.validateDbIsOpen();
65
+ return new Promise((resolve, reject) => {
66
+ // TODO: Add timeouts?
67
+ if (!this.db) {
68
+ return reject(createBrowserAuthError(databaseNotOpen));
69
+ }
70
+ const transaction = this.db.transaction([this.tableName], "readonly");
71
+ const objectStore = transaction.objectStore(this.tableName);
72
+ const dbGet = objectStore.get(key);
73
+ dbGet.addEventListener("success", (e) => {
74
+ const event = e;
75
+ this.closeConnection();
76
+ resolve(event.target.result);
77
+ });
78
+ dbGet.addEventListener("error", (e) => {
79
+ this.closeConnection();
80
+ reject(e);
81
+ });
82
+ });
83
+ }
84
+ /**
85
+ * Adds item to IndexedDB under given key
86
+ * @param key
87
+ * @param payload
88
+ */
89
+ async setItem(key, payload) {
90
+ await this.validateDbIsOpen();
91
+ return new Promise((resolve, reject) => {
92
+ // TODO: Add timeouts?
93
+ if (!this.db) {
94
+ return reject(createBrowserAuthError(databaseNotOpen));
95
+ }
96
+ const transaction = this.db.transaction([this.tableName], "readwrite");
97
+ const objectStore = transaction.objectStore(this.tableName);
98
+ const dbPut = objectStore.put(payload, key);
99
+ dbPut.addEventListener("success", () => {
100
+ this.closeConnection();
101
+ resolve();
102
+ });
103
+ dbPut.addEventListener("error", (e) => {
104
+ this.closeConnection();
105
+ reject(e);
106
+ });
107
+ });
108
+ }
109
+ /**
110
+ * Removes item from IndexedDB under given key
111
+ * @param key
112
+ */
113
+ async removeItem(key) {
114
+ await this.validateDbIsOpen();
115
+ return new Promise((resolve, reject) => {
116
+ if (!this.db) {
117
+ return reject(createBrowserAuthError(databaseNotOpen));
118
+ }
119
+ const transaction = this.db.transaction([this.tableName], "readwrite");
120
+ const objectStore = transaction.objectStore(this.tableName);
121
+ const dbDelete = objectStore.delete(key);
122
+ dbDelete.addEventListener("success", () => {
123
+ this.closeConnection();
124
+ resolve();
125
+ });
126
+ dbDelete.addEventListener("error", (e) => {
127
+ this.closeConnection();
128
+ reject(e);
129
+ });
130
+ });
131
+ }
132
+ /**
133
+ * Get all the keys from the storage object as an iterable array of strings.
134
+ */
135
+ async getKeys() {
136
+ await this.validateDbIsOpen();
137
+ return new Promise((resolve, reject) => {
138
+ if (!this.db) {
139
+ return reject(createBrowserAuthError(databaseNotOpen));
140
+ }
141
+ const transaction = this.db.transaction([this.tableName], "readonly");
142
+ const objectStore = transaction.objectStore(this.tableName);
143
+ const dbGetKeys = objectStore.getAllKeys();
144
+ dbGetKeys.addEventListener("success", (e) => {
145
+ const event = e;
146
+ this.closeConnection();
147
+ resolve(event.target.result);
148
+ });
149
+ dbGetKeys.addEventListener("error", (e) => {
150
+ this.closeConnection();
151
+ reject(e);
152
+ });
153
+ });
154
+ }
155
+ /**
156
+ *
157
+ * Checks whether there is an object under the search key in the object store
158
+ */
159
+ async containsKey(key) {
160
+ await this.validateDbIsOpen();
161
+ return new Promise((resolve, reject) => {
162
+ if (!this.db) {
163
+ return reject(createBrowserAuthError(databaseNotOpen));
164
+ }
165
+ const transaction = this.db.transaction([this.tableName], "readonly");
166
+ const objectStore = transaction.objectStore(this.tableName);
167
+ const dbContainsKey = objectStore.count(key);
168
+ dbContainsKey.addEventListener("success", (e) => {
169
+ const event = e;
170
+ this.closeConnection();
171
+ resolve(event.target.result === 1);
172
+ });
173
+ dbContainsKey.addEventListener("error", (e) => {
174
+ this.closeConnection();
175
+ reject(e);
176
+ });
177
+ });
178
+ }
179
+ /**
180
+ * Deletes the MSAL database. The database is deleted rather than cleared to make it possible
181
+ * for client applications to downgrade to a previous MSAL version without worrying about forward compatibility issues
182
+ * with IndexedDB database versions.
183
+ */
184
+ async deleteDatabase() {
185
+ // Check if database being deleted exists
186
+ if (this.db && this.dbOpen) {
187
+ this.closeConnection();
188
+ }
189
+ return new Promise((resolve, reject) => {
190
+ const deleteDbRequest = window.indexedDB.deleteDatabase(DB_NAME);
191
+ deleteDbRequest.addEventListener("success", () => resolve(true));
192
+ deleteDbRequest.addEventListener("blocked", () => resolve(true));
193
+ deleteDbRequest.addEventListener("error", () => reject(false));
194
+ });
195
+ }
196
196
  }
197
197
 
198
198
  export { DatabaseStorage };
@@ -1,28 +1,28 @@
1
- export interface IAsyncStorage<T> {
2
- /**
3
- * Get the item from the asynchronous storage object matching the given key.
4
- * @param key
5
- */
6
- getItem(key: string): Promise<T | null>;
7
- /**
8
- * Sets the item in the asynchronous storage object with the given key.
9
- * @param key
10
- * @param value
11
- */
12
- setItem(key: string, value: T): Promise<void>;
13
- /**
14
- * Removes the item in the asynchronous storage object matching the given key.
15
- * @param key
16
- */
17
- removeItem(key: string): Promise<void>;
18
- /**
19
- * Get all the keys from the asynchronous storage object as an iterable array of strings.
20
- */
21
- getKeys(): Promise<string[]>;
22
- /**
23
- * Returns true or false if the given key is present in the cache.
24
- * @param key
25
- */
26
- containsKey(key: string): Promise<boolean>;
27
- }
1
+ export interface IAsyncStorage<T> {
2
+ /**
3
+ * Get the item from the asynchronous storage object matching the given key.
4
+ * @param key
5
+ */
6
+ getItem(key: string): Promise<T | null>;
7
+ /**
8
+ * Sets the item in the asynchronous storage object with the given key.
9
+ * @param key
10
+ * @param value
11
+ */
12
+ setItem(key: string, value: T): Promise<void>;
13
+ /**
14
+ * Removes the item in the asynchronous storage object matching the given key.
15
+ * @param key
16
+ */
17
+ removeItem(key: string): Promise<void>;
18
+ /**
19
+ * Get all the keys from the asynchronous storage object as an iterable array of strings.
20
+ */
21
+ getKeys(): Promise<string[]>;
22
+ /**
23
+ * Returns true or false if the given key is present in the cache.
24
+ * @param key
25
+ */
26
+ containsKey(key: string): Promise<boolean>;
27
+ }
28
28
  //# sourceMappingURL=IAsyncMemoryStorage.d.ts.map
@@ -1,12 +1,12 @@
1
- import { ExternalTokenResponse } from "@azure/msal-common";
2
- import { SilentRequest } from "../request/SilentRequest";
3
- import { LoadTokenOptions } from "./TokenCache";
4
- import { AuthenticationResult } from "../response/AuthenticationResult";
5
- export interface ITokenCache {
6
- /**
7
- * API to side-load tokens to MSAL cache
8
- * @returns `AuthenticationResult` for the response that was loaded.
9
- */
10
- loadExternalTokens(request: SilentRequest, response: ExternalTokenResponse, options: LoadTokenOptions): AuthenticationResult;
11
- }
1
+ import { ExternalTokenResponse } from "@azure/msal-common";
2
+ import { SilentRequest } from "../request/SilentRequest";
3
+ import { LoadTokenOptions } from "./TokenCache";
4
+ import { AuthenticationResult } from "../response/AuthenticationResult";
5
+ export interface ITokenCache {
6
+ /**
7
+ * API to side-load tokens to MSAL cache
8
+ * @returns `AuthenticationResult` for the response that was loaded.
9
+ */
10
+ loadExternalTokens(request: SilentRequest, response: ExternalTokenResponse, options: LoadTokenOptions): AuthenticationResult;
11
+ }
12
12
  //# sourceMappingURL=ITokenCache.d.ts.map
@@ -1,28 +1,28 @@
1
- export interface IWindowStorage<T> {
2
- /**
3
- * Get the item from the window storage object matching the given key.
4
- * @param key
5
- */
6
- getItem(key: string): T | null;
7
- /**
8
- * Sets the item in the window storage object with the given key.
9
- * @param key
10
- * @param value
11
- */
12
- setItem(key: string, value: T): void;
13
- /**
14
- * Removes the item in the window storage object matching the given key.
15
- * @param key
16
- */
17
- removeItem(key: string): void;
18
- /**
19
- * Get all the keys from the window storage object as an iterable array of strings.
20
- */
21
- getKeys(): string[];
22
- /**
23
- * Returns true or false if the given key is present in the cache.
24
- * @param key
25
- */
26
- containsKey(key: string): boolean;
27
- }
1
+ export interface IWindowStorage<T> {
2
+ /**
3
+ * Get the item from the window storage object matching the given key.
4
+ * @param key
5
+ */
6
+ getItem(key: string): T | null;
7
+ /**
8
+ * Sets the item in the window storage object with the given key.
9
+ * @param key
10
+ * @param value
11
+ */
12
+ setItem(key: string, value: T): void;
13
+ /**
14
+ * Removes the item in the window storage object matching the given key.
15
+ * @param key
16
+ */
17
+ removeItem(key: string): void;
18
+ /**
19
+ * Get all the keys from the window storage object as an iterable array of strings.
20
+ */
21
+ getKeys(): string[];
22
+ /**
23
+ * Returns true or false if the given key is present in the cache.
24
+ * @param key
25
+ */
26
+ containsKey(key: string): boolean;
27
+ }
28
28
  //# sourceMappingURL=IWindowStorage.d.ts.map
@@ -1,12 +1,12 @@
1
- import { IWindowStorage } from "./IWindowStorage";
2
- export declare class MemoryStorage<T> implements IWindowStorage<T> {
3
- private cache;
4
- constructor();
5
- getItem(key: string): T | null;
6
- setItem(key: string, value: T): void;
7
- removeItem(key: string): void;
8
- getKeys(): string[];
9
- containsKey(key: string): boolean;
10
- clear(): void;
11
- }
1
+ import { IWindowStorage } from "./IWindowStorage";
2
+ export declare class MemoryStorage<T> implements IWindowStorage<T> {
3
+ private cache;
4
+ constructor();
5
+ getItem(key: string): T | null;
6
+ setItem(key: string, value: T): void;
7
+ removeItem(key: string): void;
8
+ getKeys(): string[];
9
+ containsKey(key: string): boolean;
10
+ clear(): void;
11
+ }
12
12
  //# sourceMappingURL=MemoryStorage.d.ts.map
@@ -1,35 +1,35 @@
1
- /*! @azure/msal-browser v3.4.0 2023-10-30 */
1
+ /*! @azure/msal-browser v3.5.1-beta.0 2023-11-14 */
2
2
  'use strict';
3
- /*
4
- * Copyright (c) Microsoft Corporation. All rights reserved.
5
- * Licensed under the MIT License.
6
- */
7
- class MemoryStorage {
8
- constructor() {
9
- this.cache = new Map();
10
- }
11
- getItem(key) {
12
- return this.cache.get(key) || null;
13
- }
14
- setItem(key, value) {
15
- this.cache.set(key, value);
16
- }
17
- removeItem(key) {
18
- this.cache.delete(key);
19
- }
20
- getKeys() {
21
- const cacheKeys = [];
22
- this.cache.forEach((value, key) => {
23
- cacheKeys.push(key);
24
- });
25
- return cacheKeys;
26
- }
27
- containsKey(key) {
28
- return this.cache.has(key);
29
- }
30
- clear() {
31
- this.cache.clear();
32
- }
3
+ /*
4
+ * Copyright (c) Microsoft Corporation. All rights reserved.
5
+ * Licensed under the MIT License.
6
+ */
7
+ class MemoryStorage {
8
+ constructor() {
9
+ this.cache = new Map();
10
+ }
11
+ getItem(key) {
12
+ return this.cache.get(key) || null;
13
+ }
14
+ setItem(key, value) {
15
+ this.cache.set(key, value);
16
+ }
17
+ removeItem(key) {
18
+ this.cache.delete(key);
19
+ }
20
+ getKeys() {
21
+ const cacheKeys = [];
22
+ this.cache.forEach((value, key) => {
23
+ cacheKeys.push(key);
24
+ });
25
+ return cacheKeys;
26
+ }
27
+ containsKey(key) {
28
+ return this.cache.has(key);
29
+ }
30
+ clear() {
31
+ this.cache.clear();
32
+ }
33
33
  }
34
34
 
35
35
  export { MemoryStorage };