{"version":3,"sources":["webpack:///./html/LoginPage/ConvergedLoginFidoViewHtml.html","webpack:///./js/LoginPage/LoginFidoViewModel.js"],"names":["module","exports","PostType","NGC","LoginOption","NothingChecked","CredentialType","Fido","ko","require","Constants","Browser","ComponentEvent","Helpers","JSON","PromiseHelpers","TypeConverter","LoginConstants","TelemetryFactory","w","window","PaginatedState","BrowserHelper","Helper","QueryString","StringHelpers","String","AllowedIdentitiesType","LoginFidoViewModel","params","_this","this","_serverData","serverData","_availableCreds","availableCreds","_evictedCreds","evictedCreds","_useEvictedCredentials","useEvictedCredentials","_displayName","displayName","_username","username","_isInitialView","isInitialView","_challenge","challenge","_allowList","allowList","_hints","hints","_sessions","sessions","_serverError","serverError","_flowToken","flowToken","_hasMsftAuthAppPasskey","hasMsftAuthAppPasskey","_hasMsftAndroidAuthAppPasskey","hasMsftAndroidAuthAppPasskey","_hasOnlyMsftAndroidAuthAppPasskey","hasOnlyMsftAndroidAuthAppPasskey","_undirectedRecoveryContinuationToken","undirectedRecoveryContinuationToken","_undirectedRecoveryUrl","undirectedRecoveryUrl","_enableDirectFidoCancelToCredPickerInMsa","redirectCancelToCredPickerEnabledInMsa","_rawQueryStringFromParams","rawQueryString","_strings","str","_lockUsername","fLockUsername","_switchUrl","urlSwitch","_showSwitchUser","fShowSwitchUser","_cookieDomain","sCookieDomain","_showButtons","fShowButtons","_showConfirm","fShowConfirm","_allowCancel","fAllowCancel","_isPasskeyEnabled","fIsPasskey","fIsPasskeySupportEnabled","_originalRequest","sCtx","_allowedIdentities","iAllowedIdentities","_crossDomainCanary","sCrossDomainCanary","_sessionId","sessionId","_useAllowedIdentities","fFidoUseAllowedIdentities","_flowTokenName","sFTName","_fidoChallenge","sFidoChallenge","_fidoLoginUrl","urlFidoLogin","_cancelUrl","urlCancel","_postUrl","urlPost","_aadPostUrl","urlPostAad","_msaPostUrl","urlPostMsa","_loginUrl","urlLogin","_resumeUrl","urlResume","_correlationId","correlationId","_cancelPostParams","oCancelPostParams","_resumePostParams","oResumePostParams","_canary","canary","_canaryTokenName","sCanaryTokenName","_enableNewCsrfProtection","fEnableNewCsrfProtection","_isOOBE","fIsOOBE","_useWebviewFidoCustomProtocol","fHideLoginPageForCredUI","fUseWebviewFidoCustomProtocol","_fidoBluetoothError","fUseBluetoothError","_enablePasskeyNullFix","fEnablePasskeyNullFix","_isHosted","fIsHosted","_useAwpError","fUseAwpError","_enableAwpErrorFlag","fEnableAwpError","_enableDirectFidoCancelToCredPicker","fEnableDirectFidoCancelToCredPicker","_isIOS","fIsIOS","_isDesktop","fIsDesktop","_enablePasskeyAutofillUI","fEnablePasskeyAutofillUI","_appendQueryParamsFromRawQueryStringToPostUrl","fAppendQueryParamsFromRawQueryStringToPostUrl","_rawQueryString","sRawQueryString","_telemetry","getInstance","_signInUsername","sSignInUsername","_nextOtcCredential","_isEvictedAccountClicked","_appendRawQueryString","url","utils","objectForEach","doubleSplit","key","value","addIfNotExist","set","post","_doFidoLoginRedirect","isRequestPending","postParams","allowedIdentities","serverChallenge","postBackUrl","postBackUrlAad","postBackUrlMsa","cancelUrl","resumeUrl","credentialsJson","ctx","stringify","onRedirect","_getAssertion","showTryAgainButton","error","getAssertion","then","publicKeyCredential","assertionResponse","response","postedAssertionInfo","id","clientDataJSON","arrayBufferToBase64UrlString","authenticatorData","signature","userHandle","userIdp","getIdpFromUserHandle","userHandleString","arrayBufferToString","match","MsaOnly","AadOnly","_getIdpFromUserHandle","Both","FidoError","fidoAssertion","status","postFidoAssertionToIdp","type","ps","assertion","lmcCanary","hpgrequestid","_postFidoAssertionToIdp","onSubmitReady","errorLookup","errorName","name","errorMessage","message","errorCode","code","onSetLoginPageHiddenState","credSwitchLink_onSwitchView","CredentialPicker","observable","title","unsafe_displayName","unsafe_username","showChangeUserLink","isPasskeyEnabled","isOOBEorHosted","useAwpError","enableAwpErrorFlag","showPasskeyLearnMore","fShowPasskeyLearnMore","onSwitchView","create","onSetBackButtonState","onUpdateFlowToken","onSetPendingRequest","dispose","saveSharedData","sharedData","otcCredential","getState","restoreState","state","primaryButton_onClick","secondaryButton_onClick","Previous","selectAccount_onClick","length","Tiles","Username","switchToEvictedCredPicker_onClick","viewId","replaceHistory","credSwitchLink_onSetPendingRequest","pending","credSwitchLink_onUpdateFlowToken","token","skip_onClick","throwUnhandledExceptionOnRejection","isPlatformAuthenticatorAvailable","htmlUnescape","credType","Password","shownOnlyOnPicker","callGetAssertion","setTimeout","stack","Error","prototype","components","register","viewModel","template","synchronous","ServerData","iMaxStackForKnockoutAsyncComponents","isStackSizeGreaterThan","enableExtensions"],"mappings":"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","file":"content/js/asyncchunk/convergedlogin_pfido_caa8af5e3e39335b7fb0.js","sourcesContent":["module.exports = \"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n \\n
\\n \\n \\n
\\n \\n\\n\\n\\n
\\n\\n\\n
\\n
\\n \\n
\\n \\n \\n \\n
\\n
    \\n
  • \\n
  • \\n
\\n
\\n \\n \\n
\\n \\n \\n
\\n \\n \\n \\n
\\n \\n \\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n \\n
\\n
\\n\\n
\\n
\\n
\\n
\\n \\n \\n
\\n \\n
\\n \\n \\n \\n \\n\\n \\n
\\n \\n
\\n \\n \\n \\n
\\n \\n
\\n \\n \\n\\n
\\n
\\n
\\n\\n
\\n
\\n
\\n
\\n
\\n
\";","\r\n\r\nvar ko = require(\"knockout\");\r\nvar Constants = require(\"../Core/Constants\");\r\nvar Browser = require(\"../Core/BrowserControl\");\r\nvar ComponentEvent = require(\"../Core/ComponentEvent\");\r\nvar Fido = require(\"../Core/Fido\");\r\nvar Helpers = require(\"../Core/Helpers\");\r\nvar JSON = require(\"JSON\");\r\nvar PromiseHelpers = require(\"../Core/PromiseHelpers\");\r\nvar TypeConverter = require(\"../Core/TypeConverter\");\r\nvar LoginConstants = require(\"../LoginPage/LoginConstants\");\r\nvar TelemetryFactory = require(\"../Core/TelemetryFactory\");\r\n\r\nvar w = window;\r\nvar CredentialType = Constants.CredentialType;\r\nvar PaginatedState = Constants.PaginatedState;\r\nvar PostType = Constants.PostType;\r\nvar BrowserHelper = Browser.Helper;\r\nvar QueryString = Browser.QueryString;\r\nvar StringHelpers = Helpers.String;\r\nvar AllowedIdentitiesType = LoginConstants.AllowedIdentitiesType;\r\nvar Host = null;\r\n\r\nif (__IS_WEBWIZARD_ENABLED__ || __REQUIRE_WIZARD_IN_CORE__)\r\n{\r\n if (__REQUIRE_WIZARD_IN_CORE__)\r\n {\r\n Host = require(\"./WizardLoginHost\");\r\n }\r\n else\r\n {\r\n require.ensure([],\r\n function ()\r\n {\r\n Host = require(\"./WizardLoginHost\");\r\n },\r\n \"Wizard\");\r\n }\r\n}\r\nelse if (__IS_CXH_ENABLED__)\r\n{\r\n Host = require(\"./Win10LoginHost\");\r\n}\r\nelse if (__IS_INCLUSIVE_OOBE__)\r\n{\r\n Host = require(\"./InclusiveWin10LoginHost.js\");\r\n}\r\nelse if (__IS_XBOX__)\r\n{\r\n Host = require(\"../Core/XboxHost\");\r\n}\r\n\r\n\r\nfunction LoginFidoViewModel(params)\r\n{\r\n var _this = this;\r\n\r\n \r\n var _serverData = params.serverData;\r\n var _availableCreds = params.availableCreds || [];\r\n var _evictedCreds = params.evictedCreds || [];\r\n var _useEvictedCredentials = params.useEvictedCredentials;\r\n var _displayName = params.displayName;\r\n var _username = params.username;\r\n var _isInitialView = params.isInitialView;\r\n var _challenge = params.challenge;\r\n var _allowList = params.allowList;\r\n var _hints = params.hints;\r\n var _sessions = params.sessions;\r\n var _serverError = params.serverError;\r\n var _flowToken = params.flowToken;\r\n var _hasMsftAuthAppPasskey = params.hasMsftAuthAppPasskey;\r\n var _hasMsftAndroidAuthAppPasskey = params.hasMsftAndroidAuthAppPasskey;\r\n var _hasOnlyMsftAndroidAuthAppPasskey = params.hasOnlyMsftAndroidAuthAppPasskey;\r\n var _undirectedRecoveryContinuationToken = params.undirectedRecoveryContinuationToken;\r\n var _undirectedRecoveryUrl = params.undirectedRecoveryUrl;\r\n var _enableDirectFidoCancelToCredPickerInMsa = params.redirectCancelToCredPickerEnabledInMsa;\r\n var _rawQueryStringFromParams = params.rawQueryString;\r\n \r\n\r\n \r\n var _strings = _serverData.str;\r\n var _lockUsername = _serverData.fLockUsername;\r\n var _switchUrl = _serverData.urlSwitch;\r\n var _showSwitchUser = _serverData.fShowSwitchUser;\r\n var _cookieDomain = _serverData.sCookieDomain;\r\n var _showButtons = _serverData.fShowButtons;\r\n var _showConfirm = _serverData.fShowConfirm;\r\n var _allowCancel = !!_serverData.fAllowCancel;\r\n var _isPasskeyEnabled = _serverData.fIsPasskey || _serverData.fIsPasskeySupportEnabled;\r\n var _originalRequest = _serverData.sCtx;\r\n var _allowedIdentities = _serverData.iAllowedIdentities;\r\n var _crossDomainCanary = _serverData.sCrossDomainCanary;\r\n var _sessionId = _serverData.sessionId;\r\n var _useAllowedIdentities = _serverData.fFidoUseAllowedIdentities;\r\n var _flowTokenName = _serverData.sFTName;\r\n var _fidoChallenge = _useAllowedIdentities ? _serverData.sFidoChallenge : _challenge;\r\n var _fidoLoginUrl = _serverData.urlFidoLogin;\r\n var _cancelUrl = _serverData.urlCancel;\r\n var _postUrl = _serverData.urlPost;\r\n var _aadPostUrl = _serverData.urlPostAad;\r\n var _msaPostUrl = _serverData.urlPostMsa;\r\n var _loginUrl = _serverData.urlLogin;\r\n var _resumeUrl = _serverData.urlResume;\r\n var _correlationId = _serverData.correlationId;\r\n var _cancelPostParams = _serverData.oCancelPostParams;\r\n var _resumePostParams = _serverData.oResumePostParams;\r\n var _canary = _serverData.canary;\r\n var _canaryTokenName = _serverData.sCanaryTokenName;\r\n var _enableNewCsrfProtection = _serverData.fEnableNewCsrfProtection;\r\n var _isOOBE = _serverData.fIsOOBE;\r\n var _hideLoginPageForCredUI = _serverData.fHideLoginPageForCredUI;\r\n var _useWebviewFidoCustomProtocol = _serverData.fUseWebviewFidoCustomProtocol;\r\n var _fidoBluetoothError = _serverData.fUseBluetoothError;\r\n var _enablePasskeyNullFix = _serverData.fEnablePasskeyNullFix;\r\n var _isHosted = _serverData.fIsHosted;\r\n var _useAwpError = !!_serverData.fUseAwpError;\r\n var _enableAwpErrorFlag = !!_serverData.fEnableAwpError;\r\n var _enableDirectFidoCancelToCredPicker = !!_serverData.fEnableDirectFidoCancelToCredPicker;\r\n var _isIOS = _serverData.fIsIOS;\r\n var _isDesktop = _serverData.fIsDesktop;\r\n var _enablePasskeyAutofillUI = _serverData.fEnablePasskeyAutofillUI;\r\n var _appendQueryParamsFromRawQueryStringToPostUrl = _serverData.fAppendQueryParamsFromRawQueryStringToPostUrl;\r\n var _rawQueryString = _serverData.sRawQueryString || _rawQueryStringFromParams;\r\n var _telemetry = TelemetryFactory.getInstance(_serverData);\r\n var _signInUsername = _serverData.sSignInUsername;\r\n \r\n\r\n \r\n var _nextOtcCredential = null;\r\n var _isEvictedAccountClicked = false;\r\n \r\n\r\n \r\n _this.isRequestPending = ko.observable(false);\r\n _this.fidoAssertion = ko.observable(null);\r\n _this.showTryAgainButton = ko.observable(!_isInitialView);\r\n _this.title = ko.observable(null);\r\n _this.error = ko.observable(null);\r\n _this.useEvictedCredentials = ko.observable(_useEvictedCredentials);\r\n\r\n _this.unsafe_displayName = null;\r\n _this.unsafe_username = null;\r\n _this.username = _username;\r\n _this.availableCreds = _availableCreds;\r\n _this.evictedCreds = _evictedCreds;\r\n _this.isInitialView = _isInitialView;\r\n _this.flowToken = _flowToken;\r\n _this.showChangeUserLink = false;\r\n _this.isPasskeyEnabled = _isPasskeyEnabled;\r\n _this.isOOBEorHosted = _isOOBE || _isHosted;\r\n _this.useAwpError = _useAwpError;\r\n _this.enableAwpErrorFlag = _enableAwpErrorFlag;\r\n _this.showPasskeyLearnMore = _serverData.fUseBluetoothError || _useAwpError || _serverData.fShowPasskeyLearnMore;\r\n _this.undirectedRecoveryContinuationToken = _undirectedRecoveryContinuationToken;\r\n _this.undirectedRecoveryUrl = _undirectedRecoveryUrl;\r\n \r\n\r\n \r\n _this.onSwitchView = ComponentEvent.create();\r\n _this.onSubmitReady = ComponentEvent.create();\r\n _this.onRedirect = ComponentEvent.create();\r\n _this.onSetBackButtonState = ComponentEvent.create();\r\n _this.onSetLoginPageHiddenState = ComponentEvent.create();\r\n _this.onUpdateFlowToken = ComponentEvent.create();\r\n _this.onSetPendingRequest = ComponentEvent.create();\r\n \r\n\r\n \r\n _this.dispose = function ()\r\n {\r\n };\r\n\r\n _this.saveSharedData = function (sharedData)\r\n {\r\n sharedData.useEvictedCredentials = _isEvictedAccountClicked || _this.useEvictedCredentials();\r\n\r\n if (_nextOtcCredential)\r\n {\r\n sharedData.otcCredential = _nextOtcCredential;\r\n }\r\n };\r\n\r\n _this.getState = function ()\r\n {\r\n var state =\r\n {\r\n useEvictedCredentials: _this.useEvictedCredentials()\r\n };\r\n\r\n return state;\r\n };\r\n\r\n _this.restoreState = function (state)\r\n {\r\n if (state)\r\n {\r\n _this.useEvictedCredentials(state.useEvictedCredentials);\r\n }\r\n };\r\n \r\n\r\n \r\n _this.primaryButton_onClick = function ()\r\n {\r\n if (_telemetry && _this.showTryAgainButton())\r\n {\r\n _telemetry.set(\"PrimaryButtonClicked\", { value: \"TryAgainButtonClicked\" });\r\n _telemetry.post(true);\r\n }\r\n\r\n if (_fidoLoginUrl)\r\n {\r\n \r\n \r\n _doFidoLoginRedirect();\r\n }\r\n else\r\n {\r\n _getAssertion();\r\n }\r\n };\r\n\r\n _this.secondaryButton_onClick = function ()\r\n {\r\n if (_telemetry)\r\n {\r\n _telemetry.set(\"SecondaryButtonClicked\", { value: (_isInitialView && _cancelUrl) ? \"CancelButton\" : \"PreviousView\" });\r\n _telemetry.post(true);\r\n }\r\n\r\n if (_isInitialView && _cancelUrl)\r\n {\r\n _this.onRedirect(_cancelUrl, _cancelPostParams);\r\n }\r\n else\r\n {\r\n _this.onSwitchView(PaginatedState.Previous);\r\n }\r\n };\r\n\r\n _this.selectAccount_onClick = function ()\r\n {\r\n if (_telemetry)\r\n {\r\n _telemetry.set(\"FidoSelectAccountClicked\", { value: _lockUsername ? \"SwitchUrl\" : \"SessionPickerOrUsername\" });\r\n _telemetry.post(true);\r\n }\r\n\r\n if (_lockUsername && _switchUrl)\r\n {\r\n _this.onRedirect(_switchUrl);\r\n }\r\n else\r\n {\r\n _this.onSwitchView(_sessions.length ? PaginatedState.Tiles : PaginatedState.Username);\r\n }\r\n };\r\n\r\n _this.switchToEvictedCredPicker_onClick = function ()\r\n {\r\n _isEvictedAccountClicked = true;\r\n _this.onSwitchView(PaginatedState.CredentialPicker);\r\n };\r\n\r\n _this.credSwitchLink_onSwitchView = function (viewId, replaceHistory, otcCredential)\r\n {\r\n if (_telemetry)\r\n {\r\n _telemetry.set(\"FidoCredentialSwitchLinkClicked\", { value: \"CredSwitchLinkClicked\" });\r\n _telemetry.post(true);\r\n }\r\n\r\n if (viewId === PaginatedState.CredentialPicker && _resumeUrl)\r\n {\r\n _this.onRedirect(_resumeUrl, _resumePostParams);\r\n return;\r\n }\r\n\r\n \r\n \r\n \r\n if (otcCredential)\r\n {\r\n _nextOtcCredential = otcCredential;\r\n }\r\n\r\n _this.onSwitchView(viewId, replaceHistory);\r\n };\r\n\r\n _this.credSwitchLink_onSetPendingRequest = function (pending)\r\n {\r\n _this.isRequestPending(pending);\r\n };\r\n\r\n _this.credSwitchLink_onUpdateFlowToken = function (token)\r\n {\r\n if (token)\r\n {\r\n _flowToken = token;\r\n _this.onUpdateFlowToken(token);\r\n }\r\n };\r\n\r\n _this.skip_onClick = function ()\r\n {\r\n if (_telemetry)\r\n {\r\n _telemetry.set(\"FidoSkipClicked\", { value: \"SkipButton\" });\r\n _telemetry.post(true);\r\n }\r\n\r\n if (Host && Host.handleOnSkip)\r\n {\r\n Host.handleOnSkip(_serverData);\r\n _this.isRequestPending(true);\r\n }\r\n };\r\n \r\n\r\n \r\n function _setTitle()\r\n {\r\n _this.title(_strings[\"CT_FIDO_STR_Page_Title_NoHello\"]);\r\n\r\n PromiseHelpers.throwUnhandledExceptionOnRejection(\r\n Fido.isPlatformAuthenticatorAvailable(_useWebviewFidoCustomProtocol)\r\n .then(\r\n function (isPlatformAuthenticatorAvailable)\r\n {\r\n if (isPlatformAuthenticatorAvailable)\r\n {\r\n _this.title(_strings[\"CT_FIDO_STR_Page_Title\"]);\r\n }\r\n },\r\n function () { }));\r\n }\r\n\r\n function _appendRawQueryString(url)\r\n {\r\n if (url && _rawQueryString)\r\n {\r\n ko.utils.objectForEach(\r\n StringHelpers.doubleSplit(_rawQueryString, \"&\", \"=\"),\r\n function (key, value)\r\n {\r\n url = QueryString.addIfNotExist(url, key, value);\r\n });\r\n\r\n if (_telemetry)\r\n {\r\n _telemetry.set(\"PostUrl\", { url: url });\r\n _telemetry.post(false);\r\n }\r\n }\r\n\r\n return url;\r\n }\r\n\r\n function _doFidoLoginRedirect()\r\n {\r\n _this.isRequestPending(true);\r\n\r\n var postParams =\r\n {\r\n allowedIdentities: _allowedIdentities,\r\n canary: _fidoChallenge,\r\n serverChallenge: _fidoChallenge,\r\n postBackUrl: _postUrl,\r\n postBackUrlAad: _aadPostUrl,\r\n postBackUrlMsa: _msaPostUrl,\r\n cancelUrl: _loginUrl,\r\n resumeUrl: _resumeUrl || _loginUrl,\r\n correlationId: _correlationId,\r\n credentialsJson: _allowList,\r\n ctx: _originalRequest,\r\n username: _username\r\n };\r\n\r\n if (_hasMsftAuthAppPasskey)\r\n {\r\n postParams[\"hasMsftAuthAppPasskey\"] = (_hasMsftAuthAppPasskey) ? \"1\" : \"0\";\r\n }\r\n\r\n if (_hasMsftAndroidAuthAppPasskey)\r\n {\r\n postParams[\"hasMsftAndroidAuthAppPasskey\"] = \"1\";\r\n }\r\n\r\n if (_hasOnlyMsftAndroidAuthAppPasskey)\r\n {\r\n postParams[\"hasOnlyMsftAndroidAuthAppPasskey\"] = \"1\";\r\n }\r\n\r\n if (_enableNewCsrfProtection && _canary)\r\n {\r\n postParams[\"loginCanary\"] = _canary;\r\n }\r\n\r\n if (_hints)\r\n {\r\n postParams[\"hints\"] = JSON.stringify(_hints);\r\n }\r\n\r\n if (_enableDirectFidoCancelToCredPickerInMsa)\r\n {\r\n postParams[\"redirectCancelToCredPickerEnabledInMsa\"] = _enableDirectFidoCancelToCredPickerInMsa;\r\n }\r\n\r\n if (_rawQueryString)\r\n {\r\n postParams[\"rawQueryString\"] = _rawQueryString;\r\n }\r\n\r\n if (Host && Host.logEvent)\r\n {\r\n Host.logEvent(\"Identity.Fido.Selected\", true);\r\n }\r\n\r\n _this.onRedirect(_fidoLoginUrl, postParams, false , true );\r\n }\r\n\r\n function _postFidoAssertionToIdp()\r\n {\r\n _this.isRequestPending(true);\r\n\r\n var postParams =\r\n {\r\n type: PostType.NGC,\r\n ps: PostType.NGC,\r\n assertion: _this.fidoAssertion(),\r\n lmcCanary: _crossDomainCanary,\r\n hpgrequestid: _sessionId,\r\n ctx: _originalRequest\r\n };\r\n\r\n if (_enableNewCsrfProtection && _canary)\r\n {\r\n postParams[_canaryTokenName] = _canary;\r\n }\r\n\r\n postParams[_flowTokenName] = _flowToken;\r\n\r\n _this.onRedirect(_postUrl, postParams, false , true );\r\n }\r\n\r\n function _getIdpFromUserHandle(userHandle)\r\n {\r\n var userHandleString = TypeConverter.arrayBufferToString(userHandle);\r\n\r\n \r\n if (userHandleString.match(/^M.:/))\r\n {\r\n return AllowedIdentitiesType.MsaOnly;\r\n }\r\n\r\n if (userHandleString.match(/^O.:/))\r\n {\r\n return AllowedIdentitiesType.AadOnly;\r\n }\r\n }\r\n\r\n function _getAssertion()\r\n {\r\n \r\n if (_hideLoginPageForCredUI && _isOOBE && Host && Host.setCredUITransparent)\r\n {\r\n Host.setCredUITransparent();\r\n \r\n _this.onSetLoginPageHiddenState(true);\r\n }\r\n\r\n _this.isRequestPending(true);\r\n _this.showTryAgainButton(true);\r\n _this.error(null);\r\n\r\n Fido.getAssertion(_fidoChallenge, _allowList, _cookieDomain, false, false, _hints)\r\n .then(\r\n function (publicKeyCredential)\r\n {\r\n var assertionResponse = publicKeyCredential.response;\r\n\r\n var postedAssertionInfo =\r\n {\r\n id: publicKeyCredential.id,\r\n clientDataJSON: TypeConverter.arrayBufferToBase64UrlString(assertionResponse.clientDataJSON),\r\n authenticatorData: TypeConverter.arrayBufferToBase64UrlString(assertionResponse.authenticatorData),\r\n signature: TypeConverter.arrayBufferToBase64UrlString(assertionResponse.signature),\r\n userHandle: TypeConverter.arrayBufferToBase64UrlString(assertionResponse.userHandle)\r\n };\r\n\r\n var userHandle = _enablePasskeyNullFix ? postedAssertionInfo.userHandle : assertionResponse.userHandle;\r\n\r\n \r\n if (_useAllowedIdentities && userHandle)\r\n {\r\n var userIdp = _enablePasskeyAutofillUI ? Fido.getIdpFromUserHandle(assertionResponse.userHandle) : _getIdpFromUserHandle(assertionResponse.userHandle);\r\n\r\n if (_telemetry)\r\n {\r\n _telemetry.set(\"WebAuthNIdp\", { allowedIdentities: _allowedIdentities, userIdp: userIdp }, true);\r\n _telemetry.post(false);\r\n }\r\n\r\n if (_allowedIdentities === AllowedIdentitiesType.Both || userIdp === _allowedIdentities)\r\n {\r\n \r\n if ((userIdp === AllowedIdentitiesType.MsaOnly) && _msaPostUrl)\r\n {\r\n _postUrl = _msaPostUrl;\r\n }\r\n else if ((userIdp === AllowedIdentitiesType.AadOnly) && _aadPostUrl)\r\n {\r\n _postUrl = _aadPostUrl;\r\n }\r\n else\r\n {\r\n throw new LoginFidoViewModel.FidoError(_strings[\"CT_FIDO_STR_Error_Unknown\"]);\r\n }\r\n }\r\n else\r\n {\r\n if (_allowedIdentities === AllowedIdentitiesType.MsaOnly)\r\n {\r\n throw new LoginFidoViewModel.FidoError(_strings[\"CT_PWD_STR_Error_LoginFailure_OnlyMsaAllowed\"]);\r\n }\r\n else if (_allowedIdentities === AllowedIdentitiesType.AadOnly)\r\n {\r\n throw new LoginFidoViewModel.FidoError(_strings[\"CT_PWD_STR_Error_UsernameNotExist_ConsumerEmail\"]);\r\n }\r\n else\r\n {\r\n throw new LoginFidoViewModel.FidoError(_strings[\"CT_FIDO_STR_Error_Unknown\"]);\r\n }\r\n }\r\n }\r\n\r\n _this.fidoAssertion(JSON.stringify(postedAssertionInfo));\r\n\r\n if (Host && Host.logEvent)\r\n {\r\n Host.logEvent(\"Identity.Fido.Successful\", true);\r\n }\r\n\r\n if (_telemetry)\r\n {\r\n _telemetry.set(\"FidoAssertionPostRedirect\", { status: \"FidoAuthSuccessful\" }, true);\r\n _telemetry.post(false);\r\n }\r\n\r\n if (_useAllowedIdentities)\r\n {\r\n _enablePasskeyAutofillUI ? Fido.postFidoAssertionToIdp(_this.isRequestPending, _this.fidoAssertion(), _crossDomainCanary, _sessionId, _originalRequest, _canaryTokenName, _canary, _flowTokenName, _flowToken, _postUrl, _this.onRedirect) : _postFidoAssertionToIdp();\r\n }\r\n else\r\n {\r\n \r\n _this.onSubmitReady(true );\r\n }\r\n })[\"catch\"](\r\n function (error)\r\n {\r\n var errorLookup;\r\n if (_telemetry)\r\n {\r\n var errorName = error.name || \"\";\r\n var errorMessage = error.message || \"\";\r\n var errorCode = error.code || \"\";\r\n \r\n _telemetry.set(\"WebAuthNErrorGet\", { name: errorName, message: errorMessage, code: errorCode }, true);\r\n _telemetry.set(\"WebAuthNIdp\", { allowedIdentities: _allowedIdentities }, true);\r\n _telemetry.set(\"FidoAssertionPostRedirect\", { status: \"FidoAuthFailed\" }, true);\r\n \r\n _telemetry.post(false);\r\n }\r\n\r\n var shouldRedirectCancelToCredPicker = (_enableDirectFidoCancelToCredPickerInMsa || _enableDirectFidoCancelToCredPicker)\r\n && error.name === \"NotAllowedError\"\r\n && _signInUsername;\r\n\r\n if (shouldRedirectCancelToCredPicker)\r\n {\r\n \r\n \r\n _this.onSetLoginPageHiddenState(false);\r\n _this.isRequestPending(false);\r\n _this.credSwitchLink_onSwitchView(PaginatedState.CredentialPicker);\r\n return;\r\n }\r\n\r\n if (_enableAwpErrorFlag)\r\n {\r\n if (error.name === \"FidoError\")\r\n {\r\n \r\n _this.error(error.message);\r\n }\r\n else\r\n {\r\n if (_isPasskeyEnabled)\r\n {\r\n if (_fidoBluetoothError)\r\n {\r\n errorLookup = \"CT_FIDO_STR_Bluetooth_Error_Description\";\r\n }\r\n else if (_useAwpError)\r\n {\r\n errorLookup = _isIOS || _isDesktop ? \"CT_FIDO_STR_Android_Error_Description\" : \"CT_FIDO_STR_Android_Error_Mobile_Description\";\r\n }\r\n else\r\n {\r\n errorLookup = \"CT_FIDO_STR_Page_PasskeyError_General\";\r\n }\r\n }\r\n else\r\n {\r\n switch (error.name)\r\n {\r\n case \"NotFoundError\":\r\n \r\n errorLookup = \"CT_FIDO_STR_Error_NotFound\";\r\n break;\r\n case \"NotAllowedError\":\r\n \r\n errorLookup = \"CT_FIDO_STR_Error_NotAllowed\";\r\n break;\r\n case \"ConstraintError\":\r\n \r\n errorLookup = \"CT_FIDO_STR_Error_Constraint\";\r\n break;\r\n default:\r\n \r\n errorLookup = \"CT_FIDO_STR_Error_Unknown\";\r\n }\r\n }\r\n _this.error(_strings[errorLookup]);\r\n }\r\n }\r\n else if (_fidoBluetoothError)\r\n {\r\n if (error.name === \"FidoError\")\r\n {\r\n \r\n _this.error(error.message);\r\n }\r\n else\r\n {\r\n if (_isPasskeyEnabled)\r\n {\r\n errorLookup = _fidoBluetoothError ? \"CT_FIDO_STR_Page_PasskeyErrorBluetooth\" : \"CT_FIDO_STR_Page_PasskeyError\";\r\n }\r\n else\r\n {\r\n switch (error.name)\r\n {\r\n case \"NotFoundError\":\r\n \r\n errorLookup = \"CT_FIDO_STR_Error_NotFound\";\r\n break;\r\n case \"NotAllowedError\":\r\n \r\n errorLookup = \"CT_FIDO_STR_Error_NotAllowed\";\r\n break;\r\n case \"ConstraintError\":\r\n \r\n errorLookup = \"CT_FIDO_STR_Error_Constraint\";\r\n break;\r\n default:\r\n \r\n errorLookup = \"CT_FIDO_STR_Error_Unknown\";\r\n }\r\n }\r\n _this.error(_strings[errorLookup]);\r\n }\r\n }\r\n else\r\n {\r\n switch (error.name)\r\n {\r\n case \"NotFoundError\":\r\n \r\n _isPasskeyEnabled ? _this.error(_strings[\"CT_FIDO_STR_Page_PasskeyError\"]) : _this.error(_strings[\"CT_FIDO_STR_Error_NotFound\"]);\r\n break;\r\n case \"NotAllowedError\":\r\n \r\n _isPasskeyEnabled ? _this.error(_strings[\"CT_FIDO_STR_Page_PasskeyError\"]) : _this.error(_strings[\"CT_FIDO_STR_Error_NotAllowed\"]);\r\n break;\r\n case \"ConstraintError\":\r\n \r\n _isPasskeyEnabled ? _this.error(_strings[\"CT_FIDO_STR_Page_PasskeyError\"]) : _this.error(_strings[\"CT_FIDO_STR_Error_Constraint\"]);\r\n break;\r\n case \"FidoError\":\r\n \r\n _this.error(error.message);\r\n break;\r\n default:\r\n \r\n _isPasskeyEnabled ? _this.error(_strings[\"CT_FIDO_STR_Page_PasskeyError\"]) : _this.error(_strings[\"CT_FIDO_STR_Error_Unknown\"]);\r\n }\r\n }\r\n \r\n _this.onSetLoginPageHiddenState(false);\r\n _this.isRequestPending(false);\r\n });\r\n }\r\n \r\n\r\n (function _initialize()\r\n {\r\n if (_telemetry)\r\n {\r\n _telemetry.set(\"FidoViewInitialized\", { value: \"true\" });\r\n _telemetry.post(false);\r\n }\r\n\r\n if (_appendQueryParamsFromRawQueryStringToPostUrl)\r\n {\r\n _postUrl = _appendRawQueryString(_postUrl);\r\n _msaPostUrl = _appendRawQueryString(_msaPostUrl);\r\n }\r\n\r\n \r\n if (_fidoLoginUrl)\r\n {\r\n _this.onSetPendingRequest(true);\r\n }\r\n\r\n _setTitle();\r\n\r\n \r\n \r\n _this.unsafe_displayName = BrowserHelper.htmlUnescape(_displayName);\r\n _this.unsafe_username = BrowserHelper.htmlUnescape(_username);\r\n _this.showChangeUserLink = _showSwitchUser && ((_lockUsername && _switchUrl) || _isInitialView);\r\n\r\n \r\n if (_resumeUrl)\r\n {\r\n \r\n \r\n _this.availableCreds = [{ credType: CredentialType.Password, shownOnlyOnPicker: true }];\r\n }\r\n\r\n var callGetAssertion = !_isInitialView || (_showConfirm === false);\r\n\r\n if (_serverError)\r\n {\r\n if (_telemetry)\r\n {\r\n _telemetry.set(\"FidoServerErrorOnInit\", { error: _serverError });\r\n _telemetry.post(false);\r\n }\r\n\r\n _this.onSetPendingRequest(false);\r\n _this.error(_serverError);\r\n }\r\n else if (_fidoLoginUrl)\r\n {\r\n \r\n setTimeout(_doFidoLoginRedirect, 0);\r\n }\r\n else if (callGetAssertion)\r\n {\r\n \r\n _getAssertion();\r\n }\r\n\r\n _this.onSetBackButtonState(_showButtons && (!_isInitialView || _allowCancel) );\r\n })();\r\n}\r\n\r\nLoginFidoViewModel.FidoError = function (message)\r\n{\r\n var _this = this;\r\n\r\n _this.name = \"FidoError\";\r\n _this.message = message;\r\n _this.stack = (new Error()).stack;\r\n};\r\n\r\nLoginFidoViewModel.FidoError.prototype = new Error();\r\n\r\nko.components.register(\"login-fido-view\",\r\n {\r\n viewModel: LoginFidoViewModel,\r\n template: require(\"html/LoginPage/LoginFidoViewHtml.html\"),\r\n synchronous: !w.ServerData.iMaxStackForKnockoutAsyncComponents || Browser.Helper.isStackSizeGreaterThan(w.ServerData.iMaxStackForKnockoutAsyncComponents),\r\n enableExtensions: true\r\n });\r\n\r\nmodule.exports = LoginFidoViewModel;"],"sourceRoot":""}