Estructura inicial del proyecto

This commit is contained in:
2026-06-02 16:57:08 +00:00
commit 8b306b9afc
9864 changed files with 1435687 additions and 0 deletions

View File

@ -0,0 +1,96 @@
/*! @azure/msal-browser v5.11.0 2026-05-19 */
'use strict';
import { AuthorizeProtocol, ServerError, invokeAsync, PerformanceEvents, CcsCredentialType } from '@azure/msal-common/browser';
import { AuthClientAcquireToken } from '../telemetry/BrowserPerformanceEvents.mjs';
import { createBrowserAuthError } from '../error/BrowserAuthError.mjs';
import { userCancelled } from '../error/BrowserAuthErrorCodes.mjs';
/*
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License.
*/
/**
* Abstract class which defines operations for a browser interaction handling class.
*/
class InteractionHandler {
constructor(authCodeModule, storageImpl, authCodeRequest, logger, performanceClient) {
this.authModule = authCodeModule;
this.browserStorage = storageImpl;
this.authCodeRequest = authCodeRequest;
this.logger = logger;
this.performanceClient = performanceClient;
}
/**
* Function to handle response parameters from hash.
* @param locationHash
*/
async handleCodeResponse(response, request, apiId) {
let authCodeResponse;
try {
authCodeResponse = AuthorizeProtocol.getAuthorizationCodePayload(response, request.state);
}
catch (e) {
if (e instanceof ServerError &&
e.subError === userCancelled) {
// Translate server error caused by user closing native prompt to corresponding first class MSAL error
throw createBrowserAuthError(userCancelled);
}
else {
throw e;
}
}
return invokeAsync(this.handleCodeResponseFromServer.bind(this), PerformanceEvents.HandleCodeResponseFromServer, this.logger, this.performanceClient, request.correlationId)(authCodeResponse, request, apiId);
}
/**
* Process auth code response from AAD
* @param authCodeResponse
* @param request
* @param validateNonce
* @returns
*/
async handleCodeResponseFromServer(authCodeResponse, request, apiId, validateNonce = true) {
this.logger.trace("0mf2hb", request.correlationId);
// Assign code to request
this.authCodeRequest.code = authCodeResponse.code;
// Nonce validation not needed when redirect not involved (e.g. hybrid spa, renewing token via rt)
if (validateNonce) {
// TODO: Assigning "response nonce" to "request nonce" is confusing. Refactor the function doing validation to accept request nonce directly
authCodeResponse.nonce = request.nonce || undefined;
}
authCodeResponse.state = request.state;
// Add CCS parameters if available
if (authCodeResponse.client_info) {
this.authCodeRequest.clientInfo = authCodeResponse.client_info;
}
else {
const ccsCred = this.createCcsCredentials(request);
if (ccsCred) {
this.authCodeRequest.ccsCredential = ccsCred;
}
}
// Acquire token with retrieved code.
const tokenResponse = (await invokeAsync(this.authModule.acquireToken.bind(this.authModule), AuthClientAcquireToken, this.logger, this.performanceClient, request.correlationId)(this.authCodeRequest, apiId, authCodeResponse));
return tokenResponse;
}
/**
* Build ccs creds if available
*/
createCcsCredentials(request) {
if (request.account) {
return {
credential: request.account.homeAccountId,
type: CcsCredentialType.HOME_ACCOUNT_ID,
};
}
else if (request.loginHint) {
return {
credential: request.loginHint,
type: CcsCredentialType.UPN,
};
}
return null;
}
}
export { InteractionHandler };
//# sourceMappingURL=InteractionHandler.mjs.map

View File

@ -0,0 +1 @@
{"version":3,"file":"InteractionHandler.mjs","sources":["../../src/interaction_handler/InteractionHandler.ts"],"sourcesContent":[null],"names":["BrowserAuthErrorCodes.userCancelled","BrowserPerformanceEvents.AuthClientAcquireToken"],"mappings":"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"}

View File

@ -0,0 +1,85 @@
/*! @azure/msal-browser v5.11.0 2026-05-19 */
'use strict';
import { invoke } from '@azure/msal-common/browser';
import { SilentHandlerLoadFrameSync } from '../telemetry/BrowserPerformanceEvents.mjs';
import { createBrowserAuthError } from '../error/BrowserAuthError.mjs';
import { getEARForm, getCodeForm } from '../protocol/Authorize.mjs';
import { emptyNavigateUri } from '../error/BrowserAuthErrorCodes.mjs';
/*
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License.
*/
/**
* Creates a hidden iframe to given URL using user-requested scopes as an id.
* @param urlNavigate
* @param userRequestScopes
*/
async function initiateCodeRequest(requestUrl, performanceClient, logger, correlationId) {
if (!requestUrl) {
// Throw error if request URL is empty.
logger.info("1l7hyp", correlationId);
throw createBrowserAuthError(emptyNavigateUri);
}
return invoke(loadFrameSync, SilentHandlerLoadFrameSync, logger, performanceClient, correlationId)(requestUrl);
}
async function initiateCodeFlowWithPost(config, authority, request, logger, performanceClient) {
const frame = createHiddenIframe();
if (!frame.contentDocument) {
throw "No document associated with iframe!";
}
const form = await getCodeForm(frame.contentDocument, config, authority, request, logger, performanceClient);
form.submit();
return frame;
}
async function initiateEarRequest(config, authority, request, logger, performanceClient) {
const frame = createHiddenIframe();
if (!frame.contentDocument) {
throw "No document associated with iframe!";
}
const form = await getEARForm(frame.contentDocument, config, authority, request, logger, performanceClient);
form.submit();
return frame;
}
/**
* @hidden
* Loads the iframe synchronously when the navigateTimeFrame is set to `0`
* @param urlNavigate
* @param frameName
* @param logger
*/
function loadFrameSync(urlNavigate) {
const frameHandle = createHiddenIframe();
frameHandle.src = urlNavigate;
return frameHandle;
}
/**
* @hidden
* Creates a new hidden iframe or gets an existing one for silent token renewal.
* @ignore
*/
function createHiddenIframe() {
const authFrame = document.createElement("iframe");
authFrame.className = "msalSilentIframe";
authFrame.style.visibility = "hidden";
authFrame.style.position = "absolute";
authFrame.style.width = authFrame.style.height = "0";
authFrame.style.border = "0";
authFrame.setAttribute("sandbox", "allow-scripts allow-same-origin allow-forms");
authFrame.setAttribute("allow", "local-network-access *");
document.body.appendChild(authFrame);
return authFrame;
}
/**
* @hidden
* Removes a hidden iframe from `document.body` if it is a direct child.
* @param iframe - The iframe element to remove.
*/
function removeHiddenIframe(iframe) {
if (document.body === iframe.parentNode) {
document.body.removeChild(iframe);
}
}
export { initiateCodeFlowWithPost, initiateCodeRequest, initiateEarRequest, removeHiddenIframe };
//# sourceMappingURL=SilentHandler.mjs.map

View File

@ -0,0 +1 @@
{"version":3,"file":"SilentHandler.mjs","sources":["../../src/interaction_handler/SilentHandler.ts"],"sourcesContent":[null],"names":["BrowserAuthErrorCodes.emptyNavigateUri","BrowserPerformanceEvents.SilentHandlerLoadFrameSync"],"mappings":"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"}