Skip to content

Commit e4278b9

Browse files
authored
Standalone functions in PCA (#7810)
Turns the following into standalone exported functions to help minify them on build output: 1. `BaseInteractionClient`: - `getRedirectUri()` - `getDiscoveredAuthority` - `initializeServerTelemetryManager()` 2. `StandardInteractionClient`: - `InitializeAuthorizationRequest()` 3. `PopupClient`: - `monitorPopupForHash()` - `cleanPopup()`
1 parent 8a8575e commit e4278b9

20 files changed

+988
-507
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
{
2+
"type": "patch",
3+
"comment": "Standalone functions in PCA #7810",
4+
"packageName": "@azure/msal-browser",
5+
"email": "[email protected]",
6+
"dependentChangeType": "patch"
7+
}

lib/msal-browser/src/custom_auth/get_account/interaction_client/CustomAuthSilentCacheClient.ts

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@ import { AuthenticationResult } from "../../../response/AuthenticationResult.js"
2222
import { ClearCacheRequest } from "../../../request/ClearCacheRequest.js";
2323
import { ApiId } from "../../../utils/BrowserConstants.js";
2424
import { getCurrentUri } from "../../../utils/BrowserUtils.js";
25+
import {
26+
clearCacheOnLogout,
27+
initializeServerTelemetryManager,
28+
} from "../../../interaction_client/BaseInteractionClient.js";
2529

2630
export class CustomAuthSilentCacheClient extends CustomAuthInteractionClientBase {
2731
/**
@@ -37,8 +41,13 @@ export class CustomAuthSilentCacheClient extends CustomAuthInteractionClientBase
3741
override async acquireToken(
3842
silentRequest: CommonSilentFlowRequest
3943
): Promise<AuthenticationResult> {
40-
const telemetryManager = this.initializeServerTelemetryManager(
41-
PublicApiId.ACCOUNT_GET_ACCESS_TOKEN
44+
const telemetryManager = initializeServerTelemetryManager(
45+
PublicApiId.ACCOUNT_GET_ACCESS_TOKEN,
46+
this.config.auth.clientId,
47+
this.correlationId,
48+
this.browserStorage,
49+
this.logger,
50+
silentRequest.forceRefresh
4251
);
4352
const clientConfig = this.getCustomAuthClientConfiguration(
4453
telemetryManager,
@@ -110,7 +119,13 @@ export class CustomAuthSilentCacheClient extends CustomAuthInteractionClientBase
110119
"Start to clear the cache",
111120
logoutRequest?.correlationId
112121
);
113-
await this.clearCacheOnLogout(validLogoutRequest?.account);
122+
await clearCacheOnLogout(
123+
this.browserStorage,
124+
this.browserCrypto,
125+
this.logger,
126+
this.correlationId,
127+
validLogoutRequest?.account
128+
);
114129
this.logger.verbose("Cache cleared", logoutRequest?.correlationId);
115130

116131
const postLogoutRedirectUri = this.config.auth.postLogoutRedirectUri;

lib/msal-browser/src/custom_auth/reset_password/interaction_client/ResetPasswordClient.ts

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ import {
3333
ResetPasswordPasswordRequiredResult,
3434
} from "./result/ResetPasswordActionResult.js";
3535
import { ensureArgumentIsNotEmptyString } from "../../core/utils/ArgumentValidator.js";
36+
import { initializeServerTelemetryManager } from "../../../interaction_client/BaseInteractionClient.js";
3637

3738
export class ResetPasswordClient extends CustomAuthInteractionClientBase {
3839
/**
@@ -45,7 +46,13 @@ export class ResetPasswordClient extends CustomAuthInteractionClientBase {
4546
): Promise<ResetPasswordCodeRequiredResult> {
4647
const correlationId = parameters.correlationId;
4748
const apiId = PublicApiId.PASSWORD_RESET_START;
48-
const telemetryManager = this.initializeServerTelemetryManager(apiId);
49+
const telemetryManager = initializeServerTelemetryManager(
50+
apiId,
51+
this.config.auth.clientId,
52+
this.correlationId,
53+
this.browserStorage,
54+
this.logger
55+
);
4956

5057
const startRequest: ResetPasswordStartRequest = {
5158
challenge_type: this.getChallengeTypes(parameters.challengeType),
@@ -93,7 +100,13 @@ export class ResetPasswordClient extends CustomAuthInteractionClientBase {
93100
);
94101

95102
const apiId = PublicApiId.PASSWORD_RESET_SUBMIT_CODE;
96-
const telemetryManager = this.initializeServerTelemetryManager(apiId);
103+
const telemetryManager = initializeServerTelemetryManager(
104+
apiId,
105+
this.config.auth.clientId,
106+
this.correlationId,
107+
this.browserStorage,
108+
this.logger
109+
);
97110

98111
const continueRequest: ResetPasswordContinueRequest = {
99112
continuation_token: parameters.continuationToken,
@@ -132,7 +145,13 @@ export class ResetPasswordClient extends CustomAuthInteractionClientBase {
132145
parameters: ResetPasswordResendCodeParams
133146
): Promise<ResetPasswordCodeRequiredResult> {
134147
const apiId = PublicApiId.PASSWORD_RESET_RESEND_CODE;
135-
const telemetryManager = this.initializeServerTelemetryManager(apiId);
148+
const telemetryManager = initializeServerTelemetryManager(
149+
apiId,
150+
this.config.auth.clientId,
151+
this.correlationId,
152+
this.browserStorage,
153+
this.logger
154+
);
136155

137156
const challengeRequest: ResetPasswordChallengeRequest = {
138157
continuation_token: parameters.continuationToken,
@@ -161,7 +180,13 @@ export class ResetPasswordClient extends CustomAuthInteractionClientBase {
161180
);
162181

163182
const apiId = PublicApiId.PASSWORD_RESET_SUBMIT_PASSWORD;
164-
const telemetryManager = this.initializeServerTelemetryManager(apiId);
183+
const telemetryManager = initializeServerTelemetryManager(
184+
apiId,
185+
this.config.auth.clientId,
186+
this.correlationId,
187+
this.browserStorage,
188+
this.logger
189+
);
165190

166191
const submitRequest: ResetPasswordSubmitRequest = {
167192
continuation_token: parameters.continuationToken,

lib/msal-browser/src/custom_auth/sign_in/interaction_client/SignInClient.ts

Lines changed: 36 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ import { EventHandler } from "../../../event/EventHandler.js";
5555
import { INavigationClient } from "../../../navigation/INavigationClient.js";
5656
import { AuthenticationResult } from "../../../response/AuthenticationResult.js";
5757
import { ensureArgumentIsNotEmptyString } from "../../core/utils/ArgumentValidator.js";
58+
import { initializeServerTelemetryManager } from "../../../interaction_client/BaseInteractionClient.js";
5859

5960
export class SignInClient extends CustomAuthInteractionClientBase {
6061
private readonly tokenResponseHandler: ResponseHandler;
@@ -103,7 +104,13 @@ export class SignInClient extends CustomAuthInteractionClientBase {
103104
const apiId = !parameters.password
104105
? PublicApiId.SIGN_IN_WITH_CODE_START
105106
: PublicApiId.SIGN_IN_WITH_PASSWORD_START;
106-
const telemetryManager = this.initializeServerTelemetryManager(apiId);
107+
const telemetryManager = initializeServerTelemetryManager(
108+
apiId,
109+
this.config.auth.clientId,
110+
this.correlationId,
111+
this.browserStorage,
112+
this.logger
113+
);
107114

108115
this.logger.verbose(
109116
"Calling initiate endpoint for sign in.",
@@ -144,7 +151,13 @@ export class SignInClient extends CustomAuthInteractionClientBase {
144151
parameters: SignInResendCodeParams
145152
): Promise<SignInCodeSendResult> {
146153
const apiId = PublicApiId.SIGN_IN_RESEND_CODE;
147-
const telemetryManager = this.initializeServerTelemetryManager(apiId);
154+
const telemetryManager = initializeServerTelemetryManager(
155+
apiId,
156+
this.config.auth.clientId,
157+
this.correlationId,
158+
this.browserStorage,
159+
this.logger
160+
);
148161

149162
const challengeReq: SignInChallengeRequest = {
150163
challenge_type: this.getChallengeTypes(parameters.challengeType),
@@ -186,7 +199,13 @@ export class SignInClient extends CustomAuthInteractionClientBase {
186199
);
187200

188201
const apiId = PublicApiId.SIGN_IN_SUBMIT_CODE;
189-
const telemetryManager = this.initializeServerTelemetryManager(apiId);
202+
const telemetryManager = initializeServerTelemetryManager(
203+
apiId,
204+
this.config.auth.clientId,
205+
this.correlationId,
206+
this.browserStorage,
207+
this.logger
208+
);
190209
const scopes = this.getScopes(parameters.scopes);
191210

192211
const request: SignInOobTokenRequest = {
@@ -224,7 +243,13 @@ export class SignInClient extends CustomAuthInteractionClientBase {
224243
);
225244

226245
const apiId = PublicApiId.SIGN_IN_SUBMIT_PASSWORD;
227-
const telemetryManager = this.initializeServerTelemetryManager(apiId);
246+
const telemetryManager = initializeServerTelemetryManager(
247+
apiId,
248+
this.config.auth.clientId,
249+
this.correlationId,
250+
this.browserStorage,
251+
this.logger
252+
);
228253
const scopes = this.getScopes(parameters.scopes);
229254

230255
const request: SignInPasswordTokenRequest = {
@@ -259,7 +284,13 @@ export class SignInClient extends CustomAuthInteractionClientBase {
259284
parameters.signInScenario,
260285
parameters.correlationId
261286
);
262-
const telemetryManager = this.initializeServerTelemetryManager(apiId);
287+
const telemetryManager = initializeServerTelemetryManager(
288+
apiId,
289+
this.config.auth.clientId,
290+
this.correlationId,
291+
this.browserStorage,
292+
this.logger
293+
);
263294
const scopes = this.getScopes(parameters.scopes);
264295

265296
// Create token request.

lib/msal-browser/src/custom_auth/sign_up/interaction_client/SignUpClient.ts

Lines changed: 36 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ import {
4343
} from "../../core/network_client/custom_auth_api/types/ApiRequestTypes.js";
4444
import { SignUpContinueResponse } from "../../core/network_client/custom_auth_api/types/ApiResponseTypes.js";
4545
import { ServerTelemetryManager } from "@azure/msal-common/browser";
46+
import { initializeServerTelemetryManager } from "../../../interaction_client/BaseInteractionClient.js";
4647

4748
export class SignUpClient extends CustomAuthInteractionClientBase {
4849
/**
@@ -56,7 +57,13 @@ export class SignUpClient extends CustomAuthInteractionClientBase {
5657
const apiId = !parameters.password
5758
? PublicApiId.SIGN_UP_START
5859
: PublicApiId.SIGN_UP_WITH_PASSWORD_START;
59-
const telemetryManager = this.initializeServerTelemetryManager(apiId);
60+
const telemetryManager = initializeServerTelemetryManager(
61+
apiId,
62+
this.config.auth.clientId,
63+
this.correlationId,
64+
this.browserStorage,
65+
this.logger
66+
);
6067

6168
const startRequest: SignUpStartRequest = {
6269
username: parameters.username,
@@ -104,7 +111,13 @@ export class SignUpClient extends CustomAuthInteractionClientBase {
104111
| SignUpAttributesRequiredResult
105112
> {
106113
const apiId = PublicApiId.SIGN_UP_SUBMIT_CODE;
107-
const telemetryManager = this.initializeServerTelemetryManager(apiId);
114+
const telemetryManager = initializeServerTelemetryManager(
115+
apiId,
116+
this.config.auth.clientId,
117+
this.correlationId,
118+
this.browserStorage,
119+
this.logger
120+
);
108121

109122
const requestSubmitCode: SignUpContinueWithOobRequest = {
110123
continuation_token: parameters.continuationToken,
@@ -148,7 +161,13 @@ export class SignUpClient extends CustomAuthInteractionClientBase {
148161
| SignUpAttributesRequiredResult
149162
> {
150163
const apiId = PublicApiId.SIGN_UP_SUBMIT_PASSWORD;
151-
const telemetryManager = this.initializeServerTelemetryManager(apiId);
164+
const telemetryManager = initializeServerTelemetryManager(
165+
apiId,
166+
this.config.auth.clientId,
167+
this.correlationId,
168+
this.browserStorage,
169+
this.logger
170+
);
152171

153172
const requestSubmitPwd: SignUpContinueWithPasswordRequest = {
154173
continuation_token: parameter.continuationToken,
@@ -192,7 +211,13 @@ export class SignUpClient extends CustomAuthInteractionClientBase {
192211
| SignUpCodeRequiredResult
193212
> {
194213
const apiId = PublicApiId.SIGN_UP_SUBMIT_ATTRIBUTES;
195-
const telemetryManager = this.initializeServerTelemetryManager(apiId);
214+
const telemetryManager = initializeServerTelemetryManager(
215+
apiId,
216+
this.config.auth.clientId,
217+
this.correlationId,
218+
this.browserStorage,
219+
this.logger
220+
);
196221
const reqWithAttr: SignUpContinueWithAttributesRequest = {
197222
continuation_token: parameter.continuationToken,
198223
attributes: parameter.attributes,
@@ -235,7 +260,13 @@ export class SignUpClient extends CustomAuthInteractionClientBase {
235260
parameters: SignUpResendCodeParams
236261
): Promise<SignUpCodeRequiredResult> {
237262
const apiId = PublicApiId.SIGN_UP_RESEND_CODE;
238-
const telemetryManager = this.initializeServerTelemetryManager(apiId);
263+
const telemetryManager = initializeServerTelemetryManager(
264+
apiId,
265+
this.config.auth.clientId,
266+
this.correlationId,
267+
this.browserStorage,
268+
this.logger
269+
);
239270

240271
const challengeRequest: SignUpChallengeRequest = {
241272
continuation_token: parameters.continuationToken ?? "",

0 commit comments

Comments
 (0)