Options
All
  • Public
  • Public/Protected
  • All
Menu

ForgeRock JavaScript SDK

Index

Enumerations

Classes

Interfaces

Type aliases

Variables

Functions

Object literals

Type aliases

Category

Category: "fontNames" | "displayProps" | "browserProps" | "hardwareProps" | "platformProps"

ConfigurablePaths

ConfigurablePaths: keyof CustomPathConfig

FRCallbackFactory

FRCallbackFactory: (callback: Callback) => FRCallback

Type declaration

FRStepHandler

FRStepHandler: (step: FRStep) => void

A function that can populate the provided authentication tree step.

Type declaration

HandleStep

HandleStep: (step: FRStep) => Promise<FRStep>

Type declaration

Listener

Listener: (e: FREvent) => void

An event-handling function.

Type declaration

NextFn

NextFn: () => RequestObj

Type declaration

RequestMiddleware

RequestMiddleware: (req: RequestObj, action: Action, next: () => RequestObj) => void

Type declaration

RequiresNewTokenFn

RequiresNewTokenFn: (res: Response) => boolean

A function that determines whether a new token is required based on a HTTP response.

Type declaration

    • (res: Response): boolean
    • Parameters

      • res: Response

      Returns boolean

WebAuthnMetadata

WebAuthnTextOutput

WebAuthnTextOutput: WebAuthnTextOutputRegistration

WebAuthnTextOutputRegistration

WebAuthnTextOutputRegistration: string

Variables

Const DEFAULT_OAUTH_THRESHOLD

DEFAULT_OAUTH_THRESHOLD: number = 30 * 1000

Const a

a: ActionTypes = 'a' as ActionTypes

Const acceptableCredentials653

acceptableCredentials653: "{ "type": "public-key", "id": new Int8Array([53, -21, 26, -99, 5, 4, -112, -76, -126, 90, -35, -7, -31, -92, 19, -71, -39, 73, 52, -10, -14, -7, -59, -7, -36, -111, 64, 101, 29, 89, 90, -56, 108, 42, 32, -19, -113, 118, -114, 49, 109, -70, 68, -89, 36, -36, -103, -128, 34, -24, -40, -71, -125, -120, -80, 63, 25, -33, 2, 26, 111, -52, -15, -52]).buffer }" = "{ "type": "public-key", "id": new Int8Array([53, -21, 26, -99, 5, 4, -112, -76, -126, 90, -35, -7, -31, -92, 19, -71, -39, 73, 52, -10, -14, -7, -59, -7, -36, -111, 64, 101, 29, 89, 90, -56, 108, 42, 32, -19, -113, 118, -114, 49, 109, -70, 68, -89, 36, -36, -103, -128, 34, -24, -40, -71, -125, -120, -80, 63, 25, -33, 2, 26, 111, -52, -15, -52]).buffer }"

Const acceptableMultipleCredentials653

acceptableMultipleCredentials653: "{ "type": "public-key", "id": new Int8Array([17, 88, -12, 26, -50, -48, -38, 36, -69, -105, -68, -38, 66, -53, -37, -50, -109, -126, 122, 26, 25, -45, 96, 37, -124, 102, 124, 94, -98, -59, 113, 94, 115, -111, -69, 45, 37, -83, 118, -115, -4, -49, 34, 115, -24, -49, -37, -17, -127, -15, 62, 18, 93, 122, -109, 53, -52, 44, -63, -74, 109, 2, -110, 45]).buffer },{ "type": "public-key", "id": new Int8Array([1, 83, -98, 32, 110, -62, 78, 53, -63, -118, 12, 122, -72, -15, 85, 48, -39, -97, -73, 108, -122, -60, 56, -112, -89, -118, 111, 0, -4, 13, -50, -43, -53, 28, 114, 82, 22, -76, 15, 51, -95, 26, -90, -93, -51, 115, -28, 85, -105, -27, 111, 70, 106, -28, 45, 126, 44, 63, -16, 97, -55, 31, -24, 57, -92, 48, 26, 127, -39, 75, 12, 13, 100, -77, 13, -48, 49, 52, 31, 85, 9, 63, -122, -90, -54, -87, -110, -1, 115, -122, -69, -15, 83, 57, 95, -31, -92, -116, 89, -109, -98, 21, 24, -80, -28, 103, -28, -82, -39, 114, -29, -46, -76, 123, -69, -44, 124, 10, 53, -103, 19, -43, -12, 62, -83, -86, 95, -78, 70, -105, 116, -25, 106, 54, -72, -119, 91, 91, -71, -49, 22, 25, -108, 112, -14, 55, 9, 75, 89, -91, -59, 45]).buffer }" = "{ "type": "public-key", "id": new Int8Array([17, 88, -12, 26, -50, -48, -38, 36, -69, -105, -68, -38, 66, -53, -37, -50, -109, -126, 122, 26, 25, -45, 96, 37, -124, 102, 124, 94, -98, -59, 113, 94, 115, -111, -69, 45, 37, -83, 118, -115, -4, -49, 34, 115, -24, -49, -37, -17, -127, -15, 62, 18, 93, 122, -109, 53, -52, 44, -63, -74, 109, 2, -110, 45]).buffer },{ "type": "public-key", "id": new Int8Array([1, 83, -98, 32, 110, -62, 78, 53, -63, -118, 12, 122, -72, -15, 85, 48, -39, -97, -73, 108, -122, -60, 56, -112, -89, -118, 111, 0, -4, 13, -50, -43, -53, 28, 114, 82, 22, -76, 15, 51, -95, 26, -90, -93, -51, 115, -28, 85, -105, -27, 111, 70, 106, -28, 45, 126, 44, 63, -16, 97, -55, 31, -24, 57, -92, 48, 26, 127, -39, 75, 12, 13, 100, -77, 13, -48, 49, 52, 31, 85, 9, 63, -122, -90, -54, -87, -110, -1, 115, -122, -69, -15, 83, 57, 95, -31, -92, -116, 89, -109, -98, 21, 24, -80, -28, 103, -28, -82, -39, 114, -29, -46, -76, 123, -69, -44, 124, 10, 53, -103, 19, -43, -12, 62, -83, -86, 95, -78, 70, -105, 116, -25, 106, 54, -72, -119, 91, 91, -71, -49, 22, 25, -108, 112, -14, 55, 9, 75, 89, -91, -59, 45]).buffer }"

Const allowCredentials70

allowCredentials70: "allowCredentials: [{ "type": "public-key", "id": new Int8Array([1, -16, 9, 79, 6, -2, -82, 51, 124, -94, 95, 23, -86, 70, -43, 89, 91, -9, 45, -22, 91, -51, 84, 93, 24, -64, 38, 101, 126, -53, 87, 70, -49, -88, -105, 116, 33, 75, -39, -92, -5, 115, 12, 52, 124, -100, 85, 104, -15, 5, -13, 25, -74, 101, 71, -115, -102, 16, 10, -9, -19, -110, 65, 118, -28, 89, -15, -115, -81, 22, -104, 123, 17, -92, 49, 109, -38, -51, 100, 96, -65, 25, -48, 28, 106, -45, 17, -45, -37, 46, -5, -6, -26, -23, -108, 13, -66, -55, -117, -107, 119, 7, -32, 34, 46, 0, -29, -111, -32, 45, -15, -113, 110, 123, -44, 6, 10, 65, 99, 25, 105, 69, -127, 76, 127, -33, -89, -56, 74, 25, 43, -43, -56, 9, 87, 80, 124, -32, -39, 115, 17, 18, 78, 121, 69, -36, -44, -28, -109, -126, 58, 64, 80, -4, 21, 63, -19]).buffer }]" = "allowCredentials: [{ "type": "public-key", "id": new Int8Array([1, -16, 9, 79, 6, -2, -82, 51, 124, -94, 95, 23, -86, 70, -43, 89, 91, -9, 45, -22, 91, -51, 84, 93, 24, -64, 38, 101, 126, -53, 87, 70, -49, -88, -105, 116, 33, 75, -39, -92, -5, 115, 12, 52, 124, -100, 85, 104, -15, 5, -13, 25, -74, 101, 71, -115, -102, 16, 10, -9, -19, -110, 65, 118, -28, 89, -15, -115, -81, 22, -104, 123, 17, -92, 49, 109, -38, -51, 100, 96, -65, 25, -48, 28, 106, -45, 17, -45, -37, 46, -5, -6, -26, -23, -108, 13, -66, -55, -117, -107, 119, 7, -32, 34, 46, 0, -29, -111, -32, 45, -15, -113, 110, 123, -44, 6, 10, 65, 99, 25, 105, 69, -127, 76, 127, -33, -89, -56, 74, 25, 43, -43, -56, 9, 87, 80, 124, -32, -39, 115, 17, 18, 78, 121, 69, -36, -44, -28, -109, -126, 58, 64, 80, -4, 21, 63, -19]).buffer }]"

Const allowMultipleCredentials70

allowMultipleCredentials70: "allowCredentials: [{ "type": "public-key", "id": new Int8Array([-33, 120, 18, 124, 16, 5, -127, -51, 68, 85, 76, -92, -3, 25, 116, 91, 71, 53, 106, -114, -86, 9, -81, -96, -32, -110, 66, -23, -5, 104, 96, 46, 43, -66, -110, 8, -70, 11, 51, -93, 19, 124, 81, 78, 58, -97, 89, -87, -26, -112, 95, -83, 118, -25, 118, 3, 35, -96, 120, -76, -87, 83, -101, 82]).buffer },{ "type": "public-key", "id": new Int8Array([1, 73, 82, 23, 76, -5, -53, -48, -104, -17, -42, 45, 7, 35, 35, -72, -7, 37, 9, 37, 117, 42, 66, 116, 58, 25, -68, 53, 113, -10, 102, 3, -60, -81, -74, 96, -5, 111, -56, 110, -101, -54, -31, -123, -100, 3, 37, -69, -114, -19, -25, -62, 18, 122, 39, 11, 83, 60, -58, 3, 116, 10, -80, -35, 6, -128, -51, -92, 100, -115, -22, -122, 21, -65, 97, 67, -49, 26, 42, -11, 90, 121, -63, 112, -16, 118, -99, -73, -89, -67, 72, -80, 18, -72, 109, 4, -14, 1, -93, 17, -17, -70, -2, -5, -116, 111, -128, 7, 62, -34, -43, 110, 89, 113, -65, -95, 113, -5, -104, -100, -73, 42, 2, 112, -21, 41, 41, 91, 108, -102, 47, -77, -52, 70, 107, -4, 25, -120, 114, 30, 23, 103, 120, 17, 55, 91, -110, -58, -110, 13, -56, 57, -126, 36, 40, 89, -9]).buffer }]" = "allowCredentials: [{ "type": "public-key", "id": new Int8Array([-33, 120, 18, 124, 16, 5, -127, -51, 68, 85, 76, -92, -3, 25, 116, 91, 71, 53, 106, -114, -86, 9, -81, -96, -32, -110, 66, -23, -5, 104, 96, 46, 43, -66, -110, 8, -70, 11, 51, -93, 19, 124, 81, 78, 58, -97, 89, -87, -26, -112, 95, -83, 118, -25, 118, 3, 35, -96, 120, -76, -87, 83, -101, 82]).buffer },{ "type": "public-key", "id": new Int8Array([1, 73, 82, 23, 76, -5, -53, -48, -104, -17, -42, 45, 7, 35, 35, -72, -7, 37, 9, 37, 117, 42, 66, 116, 58, 25, -68, 53, 113, -10, 102, 3, -60, -81, -74, 96, -5, 111, -56, 110, -101, -54, -31, -123, -100, 3, 37, -69, -114, -19, -25, -62, 18, 122, 39, 11, 83, 60, -58, 3, 116, 10, -80, -35, 6, -128, -51, -92, 100, -115, -22, -122, 21, -65, 97, 67, -49, 26, 42, -11, 90, 121, -63, 112, -16, 118, -99, -73, -89, -67, 72, -80, 18, -72, 109, 4, -14, 1, -93, 17, -17, -70, -2, -5, -116, 111, -128, 7, 62, -34, -43, 110, 89, 113, -65, -95, 113, -5, -104, -100, -73, 42, 2, 112, -21, 41, 41, 91, 108, -102, 47, -77, -52, 70, 107, -4, 25, -120, 114, 30, 23, 103, 120, 17, 55, 91, -110, -58, -110, 13, -56, 57, -126, 36, 40, 89, -9]).buffer }]"

Const authenticateInputWithAcceptableCredentialsWithoutRpid

authenticateInputWithAcceptableCredentialsWithoutRpid: "/** Copyright 2018-2020 ForgeRock AS. All Rights Reserved** Use of this code requires a commercial software license with ForgeRock AS.* or with one of its affiliates. All use shall be exclusively subject* to such license between the licensee and ForgeRock AS.*/if (!window.PublicKeyCredential) {document.getElementById('webAuthnOutcome').value = "unsupported";document.getElementById("loginButton_0").click();}var acceptableCredentials = [{ "type": "public-key", "id": new Int8Array([1, 97, 2, 123, -105, -19, -106, 10, -86, 82, -23, 5, 52, 63, 103, 110, -71, 53, 107, 104, 76, -42, -49, 96, 67, -114, -97, 19, -59, 89, -102, -115, -110, -101, -6, -98, 39, -75, 2, 74, 23, -105, 67, 6, -112, 21, -3, 36, -114, 52, 35, 75, 74, 82, -8, 115, -128, -34, -105, 110, 124, 41, -79, -53, -90, 81, -11, -7, 91, -45, -67, -82, 106, 74, 30, 112, 100, -47, 54, -12, 95, 81, 97, 36, 123, -15, -91, 87, -82, 87, -45, -103, -80, 109, -111, 82, 109, 58, 50, 19, -21, -102, 54, -108, -68, 12, -101, -53, -65, 11, -94, -36, 112, -101, -95, -90, -118, 68, 13, 8, -49, -77, -28, -82, -97, 126, -71, 33, -58, 19, 58, -118, 36, -28, 22, -55, 64, -72, -80, -9, -48, -50, 58, -52, 64, -64, -27, -5, -12, 110, -95, -17]).buffer }];var options = {challenge: new Int8Array([-42, -21, -101, -22, -35, 94, 14, 33, -75, -12, -113, 86, 109, -51, 62, 89, 29, 119, 48, -92, 33, -64, 102, -18, 18, -122, 73, 13, -17, -50, -22, -74]).buffer,timeout: 60000,userVerification: "preferred",allowCredentials: acceptableCredentials};navigator.credentials.get({ "publicKey" : options }).then(function (assertion) {var clientData = String.fromCharCode.apply(null, new Uint8Array(assertion.response.clientDataJSON));var authenticatorData = new Int8Array(assertion.response.authenticatorData).toString();var signature = new Int8Array(assertion.response.signature).toString();var rawId = assertion.id;document.getElementById('webAuthnOutcome').value = clientData + "::" + authenticatorData + "::" + signature + "::" + rawId;document.getElementById("loginButton_0").click();}).catch(function (err) {document.getElementById('webAuthnOutcome').value = "ERROR" + "::" + err;document.getElementById("loginButton_0").click();});" = `/** Copyright 2018-2020 ForgeRock AS. All Rights Reserved** Use of this code requires a commercial software license with ForgeRock AS.* or with one of its affiliates. All use shall be exclusively subject* to such license between the licensee and ForgeRock AS.*/if (!window.PublicKeyCredential) {document.getElementById('webAuthnOutcome').value = "unsupported";document.getElementById("loginButton_0").click();}var acceptableCredentials = [{ "type": "public-key", "id": new Int8Array([1, 97, 2, 123, -105, -19, -106, 10, -86, 82, -23, 5, 52, 63, 103, 110, -71, 53, 107, 104, 76, -42, -49, 96, 67, -114, -97, 19, -59, 89, -102, -115, -110, -101, -6, -98, 39, -75, 2, 74, 23, -105, 67, 6, -112, 21, -3, 36, -114, 52, 35, 75, 74, 82, -8, 115, -128, -34, -105, 110, 124, 41, -79, -53, -90, 81, -11, -7, 91, -45, -67, -82, 106, 74, 30, 112, 100, -47, 54, -12, 95, 81, 97, 36, 123, -15, -91, 87, -82, 87, -45, -103, -80, 109, -111, 82, 109, 58, 50, 19, -21, -102, 54, -108, -68, 12, -101, -53, -65, 11, -94, -36, 112, -101, -95, -90, -118, 68, 13, 8, -49, -77, -28, -82, -97, 126, -71, 33, -58, 19, 58, -118, 36, -28, 22, -55, 64, -72, -80, -9, -48, -50, 58, -52, 64, -64, -27, -5, -12, 110, -95, -17]).buffer }];var options = {challenge: new Int8Array([-42, -21, -101, -22, -35, 94, 14, 33, -75, -12, -113, 86, 109, -51, 62, 89, 29, 119, 48, -92, 33, -64, 102, -18, 18, -122, 73, 13, -17, -50, -22, -74]).buffer,timeout: 60000,userVerification: "preferred",allowCredentials: acceptableCredentials};navigator.credentials.get({ "publicKey" : options }).then(function (assertion) {var clientData = String.fromCharCode.apply(null, new Uint8Array(assertion.response.clientDataJSON));var authenticatorData = new Int8Array(assertion.response.authenticatorData).toString();var signature = new Int8Array(assertion.response.signature).toString();var rawId = assertion.id;document.getElementById('webAuthnOutcome').value = clientData + "::" + authenticatorData + "::" + signature + "::" + rawId;document.getElementById("loginButton_0").click();}).catch(function (err) {document.getElementById('webAuthnOutcome').value = "ERROR" + "::" + err;document.getElementById("loginButton_0").click();});`

Const authenticateInputWithRpidAllowCredentialsAndQuotes

authenticateInputWithRpidAllowCredentialsAndQuotes: "/** Copyright 2018-2020 ForgeRock AS. All Rights Reserved** Use of this code requires a commercial software license with ForgeRock AS.* or with one of its affiliates. All use shall be exclusively subject* to such license between the licensee and ForgeRock AS.*/if (!window.PublicKeyCredential) {document.getElementById('webAuthnOutcome').value = "unsupported";document.getElementById("loginButton_0").click();}var options = {"rpId": "example.com","challenge": new Int8Array([14, 126, -110, -74, 64, -66, 20, -56, -40, -28, 116, -61, -128, -20, 72, 24, 42, 79, -105, 94, -84, -12, -17, -97, 105, -31, -30, 92, 55, 67, -83, 65]).buffer,"timeout": 60000,"allowCredentials": [{ "type": "public-key", "id": new Int8Array([-107, 93, 68, -67, -5, 107, 18, 16, -25, -30, 80, 103, -75, -53, -2, -95, 102, 42, 47, 126, -1, 85, 93, 45, -85, 8, -108, 107, 47, -25, 66, 12, -96, 81, 104, -127, 26, -59, -69, -23, 75, 89, 58, 124, -93, 4, 28, -128, 121, 35, 39, 103, -86, -86, 123, -67, -7, -4, 79, -49, 127, -19, 7, 4]).buffer }]};navigator.credentials.get({ "publicKey" : options }).then(function (assertion) {var clientData = String.fromCharCode.apply(null, new Uint8Array(assertion.response.clientDataJSON));var authenticatorData = new Int8Array(assertion.response.authenticatorData).toString();var signature = new Int8Array(assertion.response.signature).toString();var rawId = assertion.id;var userHandle = String.fromCharCode.apply(null, new Uint8Array(assertion.response.userHandle));document.getElementById('webAuthnOutcome').value = clientData + "::" + authenticatorData + "::" + signature + "::" + rawId + "::" + userHandle;document.getElementById("loginButton_0").click();}).catch(function (err) {document.getElementById('webAuthnOutcome').value = "ERROR" + "::" + err;document.getElementById("loginButton_0").click();});" = `/** Copyright 2018-2020 ForgeRock AS. All Rights Reserved** Use of this code requires a commercial software license with ForgeRock AS.* or with one of its affiliates. All use shall be exclusively subject* to such license between the licensee and ForgeRock AS.*/if (!window.PublicKeyCredential) {document.getElementById('webAuthnOutcome').value = "unsupported";document.getElementById("loginButton_0").click();}var options = {"rpId": "example.com","challenge": new Int8Array([14, 126, -110, -74, 64, -66, 20, -56, -40, -28, 116, -61, -128, -20, 72, 24, 42, 79, -105, 94, -84, -12, -17, -97, 105, -31, -30, 92, 55, 67, -83, 65]).buffer,"timeout": 60000,"allowCredentials": [{ "type": "public-key", "id": new Int8Array([-107, 93, 68, -67, -5, 107, 18, 16, -25, -30, 80, 103, -75, -53, -2, -95, 102, 42, 47, 126, -1, 85, 93, 45, -85, 8, -108, 107, 47, -25, 66, 12, -96, 81, 104, -127, 26, -59, -69, -23, 75, 89, 58, 124, -93, 4, 28, -128, 121, 35, 39, 103, -86, -86, 123, -67, -7, -4, 79, -49, 127, -19, 7, 4]).buffer }]};navigator.credentials.get({ "publicKey" : options }).then(function (assertion) {var clientData = String.fromCharCode.apply(null, new Uint8Array(assertion.response.clientDataJSON));var authenticatorData = new Int8Array(assertion.response.authenticatorData).toString();var signature = new Int8Array(assertion.response.signature).toString();var rawId = assertion.id;var userHandle = String.fromCharCode.apply(null, new Uint8Array(assertion.response.userHandle));document.getElementById('webAuthnOutcome').value = clientData + "::" + authenticatorData + "::" + signature + "::" + rawId + "::" + userHandle;document.getElementById("loginButton_0").click();}).catch(function (err) {document.getElementById('webAuthnOutcome').value = "ERROR" + "::" + err;document.getElementById("loginButton_0").click();});`

Const authenticateInputWithRpidAndAllowCredentials

authenticateInputWithRpidAndAllowCredentials: "/** Copyright 2018-2020 ForgeRock AS. All Rights Reserved** Use of this code requires a commercial software license with ForgeRock AS.* or with one of its affiliates. All use shall be exclusively subject* to such license between the licensee and ForgeRock AS.*/if (!window.PublicKeyCredential) {document.getElementById('webAuthnOutcome').value = "unsupported";document.getElementById("loginButton_0").click();}var options = {rpId: "example.com",challenge: new Int8Array([14, 126, -110, -74, 64, -66, 20, -56, -40, -28, 116, -61, -128, -20, 72, 24, 42, 79, -105, 94, -84, -12, -17, -97, 105, -31, -30, 92, 55, 67, -83, 65]).buffer,timeout: 60000,allowCredentials: [{ type: "public-key", id: new Int8Array([-107, 93, 68, -67, -5, 107, 18, 16, -25, -30, 80, 103, -75, -53, -2, -95, 102, 42, 47, 126, -1, 85, 93, 45, -85, 8, -108, 107, 47, -25, 66, 12, -96, 81, 104, -127, 26, -59, -69, -23, 75, 89, 58, 124, -93, 4, 28, -128, 121, 35, 39, 103, -86, -86, 123, -67, -7, -4, 79, -49, 127, -19, 7, 4]).buffer }]};navigator.credentials.get({ "publicKey" : options }).then(function (assertion) {var clientData = String.fromCharCode.apply(null, new Uint8Array(assertion.response.clientDataJSON));var authenticatorData = new Int8Array(assertion.response.authenticatorData).toString();var signature = new Int8Array(assertion.response.signature).toString();var rawId = assertion.id;var userHandle = String.fromCharCode.apply(null, new Uint8Array(assertion.response.userHandle));document.getElementById('webAuthnOutcome').value = clientData + "::" + authenticatorData + "::" + signature + "::" + rawId + "::" + userHandle;document.getElementById("loginButton_0").click();}).catch(function (err) {document.getElementById('webAuthnOutcome').value = "ERROR" + "::" + err;document.getElementById("loginButton_0").click();});" = `/** Copyright 2018-2020 ForgeRock AS. All Rights Reserved** Use of this code requires a commercial software license with ForgeRock AS.* or with one of its affiliates. All use shall be exclusively subject* to such license between the licensee and ForgeRock AS.*/if (!window.PublicKeyCredential) {document.getElementById('webAuthnOutcome').value = "unsupported";document.getElementById("loginButton_0").click();}var options = {rpId: "example.com",challenge: new Int8Array([14, 126, -110, -74, 64, -66, 20, -56, -40, -28, 116, -61, -128, -20, 72, 24, 42, 79, -105, 94, -84, -12, -17, -97, 105, -31, -30, 92, 55, 67, -83, 65]).buffer,timeout: 60000,allowCredentials: [{ type: "public-key", id: new Int8Array([-107, 93, 68, -67, -5, 107, 18, 16, -25, -30, 80, 103, -75, -53, -2, -95, 102, 42, 47, 126, -1, 85, 93, 45, -85, 8, -108, 107, 47, -25, 66, 12, -96, 81, 104, -127, 26, -59, -69, -23, 75, 89, 58, 124, -93, 4, 28, -128, 121, 35, 39, 103, -86, -86, 123, -67, -7, -4, 79, -49, 127, -19, 7, 4]).buffer }]};navigator.credentials.get({ "publicKey" : options }).then(function (assertion) {var clientData = String.fromCharCode.apply(null, new Uint8Array(assertion.response.clientDataJSON));var authenticatorData = new Int8Array(assertion.response.authenticatorData).toString();var signature = new Int8Array(assertion.response.signature).toString();var rawId = assertion.id;var userHandle = String.fromCharCode.apply(null, new Uint8Array(assertion.response.userHandle));document.getElementById('webAuthnOutcome').value = clientData + "::" + authenticatorData + "::" + signature + "::" + rawId + "::" + userHandle;document.getElementById("loginButton_0").click();}).catch(function (err) {document.getElementById('webAuthnOutcome').value = "ERROR" + "::" + err;document.getElementById("loginButton_0").click();});`

Const authenticateInputWithRpidAndAllowCredentialsAndAllowRecoveryCode

authenticateInputWithRpidAndAllowCredentialsAndAllowRecoveryCode: "/** Copyright 2018-2022 ForgeRock AS. All Rights Reserved** Use of this code requires a commercial software license with ForgeRock AS.* or with one of its affiliates. All use shall be exclusively subject* to such license between the licensee and ForgeRock AS.*/if (!window.PublicKeyCredential) {document.getElementById('webAuthnOutcome').value = "unsupported";document.getElementById("loginButton_0").click();}var options = {challenge: new Int8Array([-17, -117, -10, 120, -90, 127, 70, -73, 114, -37, -94, 126, -96, -111, -65, 78, -84, 53, 74, -18, 93, 102, 24, -77, -97, -6, -106, -10, -101, -29, 36, -33]).buffer,timeout: 60000,userVerification: "preferred",allowCredentials: [{ "type": "public-key", "id": new Int8Array([-33, 59, -68, 121, 57, -27, -33, -40, 55, 8, -65, -15, -40, -103, 73, 61, 49, 56, 65, -84, -27, -86, -103, -115, 15, 43, -64, -60, -105, 81, -111, 115, 105, 111, -105, 64, 73, 55, -35, 35, 38, 59, -91, 95, 64, 30, -10, -6, -91, -59, 26, 19, -3, 2, -39, 71, 112, 124, -66, -89, -10, -35, 122, 103]).buffer }]};navigator.credentials.get({ "publicKey" : options }).then(function (assertion) {var clientData = String.fromCharCode.apply(null, new Uint8Array(assertion.response.clientDataJSON));var authenticatorData = new Int8Array(assertion.response.authenticatorData).toString();var signature = new Int8Array(assertion.response.signature).toString();var rawId = assertion.id;var userHandle = String.fromCharCode.apply(null, new Uint8Array(assertion.response.userHandle));document.getElementById('webAuthnOutcome').value = clientData + "::" + authenticatorData + "::" + signature + "::" + rawId + "::" + userHandle;document.getElementById("loginButton_0").click();}).catch(function (err) {document.getElementById('webAuthnOutcome').value = "ERROR" + "::" + err;var allowRecoveryCode = 'true' === "true";if (allowRecoveryCode) {var loginButton = document.getElementById("loginButton_0");if (loginButton) {var prev = loginButton.previousElementSibling;if (prev && prev.nodeName == "DIV") {prev.getElementsByTagName("div")[0].innerHTML = "<i class="fa fa-times-circle text-primary"> "+ err + "</i>";}}} else {document.getElementById("loginButton_0").click();}});" = `/** Copyright 2018-2022 ForgeRock AS. All Rights Reserved** Use of this code requires a commercial software license with ForgeRock AS.* or with one of its affiliates. All use shall be exclusively subject* to such license between the licensee and ForgeRock AS.*/if (!window.PublicKeyCredential) {document.getElementById('webAuthnOutcome').value = "unsupported";document.getElementById("loginButton_0").click();}var options = {challenge: new Int8Array([-17, -117, -10, 120, -90, 127, 70, -73, 114, -37, -94, 126, -96, -111, -65, 78, -84, 53, 74, -18, 93, 102, 24, -77, -97, -6, -106, -10, -101, -29, 36, -33]).buffer,timeout: 60000,userVerification: "preferred",allowCredentials: [{ "type": "public-key", "id": new Int8Array([-33, 59, -68, 121, 57, -27, -33, -40, 55, 8, -65, -15, -40, -103, 73, 61, 49, 56, 65, -84, -27, -86, -103, -115, 15, 43, -64, -60, -105, 81, -111, 115, 105, 111, -105, 64, 73, 55, -35, 35, 38, 59, -91, 95, 64, 30, -10, -6, -91, -59, 26, 19, -3, 2, -39, 71, 112, 124, -66, -89, -10, -35, 122, 103]).buffer }]};navigator.credentials.get({ "publicKey" : options }).then(function (assertion) {var clientData = String.fromCharCode.apply(null, new Uint8Array(assertion.response.clientDataJSON));var authenticatorData = new Int8Array(assertion.response.authenticatorData).toString();var signature = new Int8Array(assertion.response.signature).toString();var rawId = assertion.id;var userHandle = String.fromCharCode.apply(null, new Uint8Array(assertion.response.userHandle));document.getElementById('webAuthnOutcome').value = clientData + "::" + authenticatorData + "::" + signature + "::" + rawId + "::" + userHandle;document.getElementById("loginButton_0").click();}).catch(function (err) {document.getElementById('webAuthnOutcome').value = "ERROR" + "::" + err;var allowRecoveryCode = 'true' === "true";if (allowRecoveryCode) {var loginButton = document.getElementById("loginButton_0");if (loginButton) {var prev = loginButton.previousElementSibling;if (prev && prev.nodeName == "DIV") {prev.getElementsByTagName("div")[0].innerHTML = "<i class="fa fa-times-circle text-primary"> "+ err + "</i>";}}} else {document.getElementById("loginButton_0").click();}});`

Const authenticateInputWithoutRpidAndAllowCredentials

authenticateInputWithoutRpidAndAllowCredentials: "/** Copyright 2018-2020 ForgeRock AS. All Rights Reserved** Use of this code requires a commercial software license with ForgeRock AS.* or with one of its affiliates. All use shall be exclusively subject* to such license between the licensee and ForgeRock AS.*/if (!window.PublicKeyCredential) {document.getElementById('webAuthnOutcome').value = "unsupported";document.getElementById("loginButton_0").click();}var options = {challenge: new Int8Array([14, 126, -110, -74, 64, -66, 20, -56, -40, -28, 116, -61, -128, -20, 72, 24, 42, 79, -105, 94, -84, -12, -17, -97, 105, -31, -30, 92, 55, 67, -83, 65]).buffer,timeout: 60000,};navigator.credentials.get({ "publicKey" : options }).then(function (assertion) {var clientData = String.fromCharCode.apply(null, new Uint8Array(assertion.response.clientDataJSON));var authenticatorData = new Int8Array(assertion.response.authenticatorData).toString();var signature = new Int8Array(assertion.response.signature).toString();var rawId = assertion.id;var userHandle = String.fromCharCode.apply(null, new Uint8Array(assertion.response.userHandle));document.getElementById('webAuthnOutcome').value = clientData + "::" + authenticatorData + "::" + signature + "::" + rawId + "::" + userHandle;document.getElementById("loginButton_0").click();}).catch(function (err) {document.getElementById('webAuthnOutcome').value = "ERROR" + "::" + err;document.getElementById("loginButton_0").click();});" = `/** Copyright 2018-2020 ForgeRock AS. All Rights Reserved** Use of this code requires a commercial software license with ForgeRock AS.* or with one of its affiliates. All use shall be exclusively subject* to such license between the licensee and ForgeRock AS.*/if (!window.PublicKeyCredential) {document.getElementById('webAuthnOutcome').value = "unsupported";document.getElementById("loginButton_0").click();}var options = {challenge: new Int8Array([14, 126, -110, -74, 64, -66, 20, -56, -40, -28, 116, -61, -128, -20, 72, 24, 42, 79, -105, 94, -84, -12, -17, -97, 105, -31, -30, 92, 55, 67, -83, 65]).buffer,timeout: 60000,};navigator.credentials.get({ "publicKey" : options }).then(function (assertion) {var clientData = String.fromCharCode.apply(null, new Uint8Array(assertion.response.clientDataJSON));var authenticatorData = new Int8Array(assertion.response.authenticatorData).toString();var signature = new Int8Array(assertion.response.signature).toString();var rawId = assertion.id;var userHandle = String.fromCharCode.apply(null, new Uint8Array(assertion.response.userHandle));document.getElementById('webAuthnOutcome').value = clientData + "::" + authenticatorData + "::" + signature + "::" + rawId + "::" + userHandle;document.getElementById("loginButton_0").click();}).catch(function (err) {document.getElementById('webAuthnOutcome').value = "ERROR" + "::" + err;document.getElementById("loginButton_0").click();});`

Const authzByTreeResFromIG

authzByTreeResFromIG: any = {headers: {get(): string {return 'text/html; charset=utf-8';},},redirected: true,// eslint-disable-next-line max-len, prettier/prettierurl: 'https://openam.example.com/am/json/realms/root/authenticate?authIndexType=composite_advice&authIndexValue=%3CAdvices%3E%3CAttributeValuePair%3E%3CAttribute%20name%3D%22AuthenticateToServiceConditionAdvice%22%2F%3E%3CValue%3Eabc%3C%2FValue%3E%3C%2FAttributeValuePair%3E%3C%2FAdvices%3E',// eslint-disable-next-line @typescript-eslint/no-explicit-any} as any

Const authzByTreeResFromREST

authzByTreeResFromREST: any = {clone() {return {// eslint-disable-next-line @typescript-eslint/no-explicit-anyjson(): any {return Promise.resolve(authzTreeJSON);},};},json() {return Promise.resolve(authzTreeJSON);},// eslint-disable-next-line @typescript-eslint/no-explicit-any} as any

Const authzByTxnResFromIG

authzByTxnResFromIG: any = {headers: {get(): string {return 'text/html; charset=utf-8';},},redirected: true,// eslint-disable-next-line max-len, prettier/prettierurl: 'https://openam.example.com/am/json/realms/root/authenticate?authIndexType=composite_advice&authIndexValue=%3CAdvices%3E%3CAttributeValuePair%3E%3CAttribute%20name%3D%22TransactionConditionAdvice%22%2F%3E%3CValue%3Eabc%3C%2FValue%3E%3C%2FAttributeValuePair%3E%3C%2FAdvices%3E',// eslint-disable-next-line @typescript-eslint/no-explicit-any} as any

Const authzByTxnResFromREST

authzByTxnResFromREST: any = {clone() {return {// eslint-disable-next-line @typescript-eslint/no-explicit-anyjson(): any {return Promise.resolve(authzTxnJSON);},};},json() {return Promise.resolve(authzTxnJSON);},// eslint-disable-next-line @typescript-eslint/no-explicit-any} as any

Const b

b: ActionTypes = 'b' as ActionTypes

Const browserProps

browserProps: string[] = ['userAgent','appName','appCodeName','appVersion','appMinorVersion','buildID','product','productSub','vendor','vendorSub','browserLanguage',]

Const configurableCategories

configurableCategories: string[] = ['fontNames','displayProps','browserProps','hardwareProps','platformProps',]

Const delay

delay: number = 30 * 1000

Const displayProps

displayProps: string[] = ['width', 'height', 'pixelDepth', 'orientation.angle']

Const displayRecoveryCodes

displayRecoveryCodes: "/** Copyright 2018 ForgeRock AS. All Rights Reserved** Use of this code requires a commercial software license with ForgeRock AS.* or with one of its affiliates. All use shall be exclusively subject* to such license between the licensee and ForgeRock AS.*/var newLocation = document.getElementById("wrapper");var oldHtml = newLocation.getElementsByTagName("fieldset")[0].innerHTML;newLocation.getElementsByTagName("fieldset")[0].innerHTML = "<div class=\"panel panel-default\">\n" +" <div class=\"panel-body text-center\">\n" +" <h3>Your Recovery Codes</h3>\n" +" <h4>You must make a copy of these WebAuthn authenticator recovery codes. They cannot be displayed again.</h4>\n" +" </div>\n" +"<div class=\"text-center\">\n" +"iZmEtxvQ00\n" +"</div>\n" +"<div class=\"text-center\">\n" +"Eqw3GFVamY\n" +"</div>\n" +"<div class=\"text-center\">\n" +"nNPqIEtIpS\n" +"</div>\n" +"<div class=\"text-center\">\n" +"vGhNQpDjP8\n" +"</div>\n" +"<div class=\"text-center\">\n" +"ItA4W3iBaA\n" +"</div>\n" +"<div class=\"text-center\">\n" +"JmLQP6XyIo\n" +"</div>\n" +"<div class=\"text-center\">\n" +"G2e6foNKke\n" +"</div>\n" +"<div class=\"text-center\">\n" +"h2SqAqvT21\n" +"</div>\n" +"<div class=\"text-center\">\n" +"q6VX1ojNbI\n" +"</div>\n" +"<div class=\"text-center\">\n" +"IZKIQXAfY2\n" +"</div>\n" +"<div class=\"panel-body text-center\">\n" +" <p>Use one of these codes to authenticate if you lose your device, which has been named: <em>New Security Key</em></p>\n" +"</div>\n" +"</div>" + oldHtml;document.body.appendChild(newLocation);" = `/** Copyright 2018 ForgeRock AS. All Rights Reserved** Use of this code requires a commercial software license with ForgeRock AS.* or with one of its affiliates. All use shall be exclusively subject* to such license between the licensee and ForgeRock AS.*/\n\nvar newLocation = document.getElementById(\"wrapper\");\nvar oldHtml = newLocation.getElementsByTagName(\"fieldset\")[0].innerHTML;\nnewLocation.getElementsByTagName(\"fieldset\")[0].innerHTML = \"<div class=\\\"panel panel-default\\\">\\n\" +\" <div class=\\\"panel-body text-center\\\">\\n\" +\" <h3>Your Recovery Codes</h3>\\n\" +\" <h4>You must make a copy of these WebAuthn authenticator recovery codes. They cannot be displayed again.</h4>\\n\" +\" </div>\\n\" +\"<div class=\\\"text-center\\\">\\n\" +\"iZmEtxvQ00\\n\" +\"</div>\\n\" +\"<div class=\\\"text-center\\\">\\n\" +\"Eqw3GFVamY\\n\" +\"</div>\\n\" +\"<div class=\\\"text-center\\\">\\n\" +\"nNPqIEtIpS\\n\" +\"</div>\\n\" +\"<div class=\\\"text-center\\\">\\n\" +\"vGhNQpDjP8\\n\" +\"</div>\\n\" +\"<div class=\\\"text-center\\\">\\n\" +\"ItA4W3iBaA\\n\" +\"</div>\\n\" +\"<div class=\\\"text-center\\\">\\n\" +\"JmLQP6XyIo\\n\" +\"</div>\\n\" +\"<div class=\\\"text-center\\\">\\n\" +\"G2e6foNKke\\n\" +\"</div>\\n\" +\"<div class=\\\"text-center\\\">\\n\" +\"h2SqAqvT21\\n\" +\"</div>\\n\" +\"<div class=\\\"text-center\\\">\\n\" +\"q6VX1ojNbI\\n\" +\"</div>\\n\" +\"<div class=\\\"text-center\\\">\\n\" +\"IZKIQXAfY2\\n\" +\"</div>\\n\" +\"<div class=\\\"panel-body text-center\\\">\\n\" +\" <p>Use one of these codes to authenticate if you lose your device, which has been named: <em>New Security Key</em></p>\\n\" +\"</div>\\n\" +\"</div>\" + oldHtml;\ndocument.body.appendChild(newLocation);\n\n\n`

Const expectedRecoveryCodes

expectedRecoveryCodes: string[] = ['iZmEtxvQ00','Eqw3GFVamY','nNPqIEtIpS','vGhNQpDjP8','ItA4W3iBaA','JmLQP6XyIo','G2e6foNKke','h2SqAqvT21','q6VX1ojNbI','IZKIQXAfY2',]

Const fontNames

fontNames: string[] = ['cursive','monospace','serif','sans-serif','fantasy','Arial','Arial Black','Arial Narrow','Arial Rounded MT Bold','Bookman Old Style','Bradley Hand ITC','Century','Century Gothic','Comic Sans MS','Courier','Courier New','Georgia','Gentium','Impact','King','Lucida Console','Lalit','Modena','Monotype Corsiva','Papyrus','Tahoma','TeX','Times','Times New Roman','Trebuchet MS','Verdana','Verona',]

Const hardwareProps

hardwareProps: string[] = ['cpuClass','deviceMemory','hardwareConcurrency','maxTouchPoints','oscpu',]

Const middleware

middleware: RequestMiddleware[] = [(req: RequestObj, action: Action, next: NextFn): void => {switch (action.type) {case a:case b:req.url.searchParams.set('letter', 'true');req.init.headers = { ...{ 'x-letter': 'true' }, ...req.init.headers };break;case one:case two:req.url.searchParams.set('letter', 'false');req.init.headers = { ...{ 'x-letter': 'false' }, ...req.init.headers };break;}next();},(req: RequestObj, action: Action, next: NextFn): void => {switch (action.type) {case a:req.url.searchParams.set('char', 'a');req.init.headers = { ...{ 'x-char': 'a' }, ...req.init.headers };break;case b:req.url.searchParams.set('char', 'b');req.init.headers = { ...{ 'x-char': 'b' }, ...req.init.headers };break;}next();},(req: RequestObj, action: Action, next: NextFn): void => {switch (action.type) {case one:req.url.searchParams.set('char', '1');req.init.headers = { ...{ 'x-char': '1' }, ...req.init.headers };break;case two:req.url.searchParams.set('char', '2');req.init.headers = { ...{ 'x-char': '2' }, ...req.init.headers };break;}next();},(req: RequestObj, action: Action, next: NextFn): void => {switch (action.type) {case add:// eslint-disable-next-line @typescript-eslint/ban-ts-comment// @ts-ignorereq.init.headers = { ...{ 'x-char': 'a,' + action.payload }, ...req.init.headers };break;}next();},// eslint-disable-next-line @typescript-eslint/ban-ts-comment// @ts-ignore(req: RequestObj, action: Action, next: NextFn): void => {switch (action.type) {case reassignment:req = { url: new URL('https://bad.com'), init: { headers: { 'x-bad': 'true' } } };break;}next();},// eslint-disable-next-line @typescript-eslint/ban-ts-comment// @ts-ignore(req: RequestObj, action: Action, next: NextFn): void => {switch (action.type) {case mutateAction:action.type = 'hello' as ActionTypes;break;}next();},]

Const mutateAction

mutateAction: ActionTypes = 'MUTATE-ACTION' as ActionTypes

Const oauthThreshold

oauthThreshold: 120000 = 120000

Const one

one: ActionTypes = '1' as ActionTypes

Const platformProps

platformProps: string[] = ['language', 'platform', 'userLanguage', 'systemLanguage']

Const pubKeyCredParamsStr

pubKeyCredParamsStr: "[ { "type": "public-key", "alg": -257 }, { "type": "public-key", "alg": -7 } ]" = "[ { "type": "public-key", "alg": -257 }, { "type": "public-key", "alg": -7 } ]"

Const reassignment

reassignment: ActionTypes = 'REASSIGNMENT' as ActionTypes

Const registerInputWithExcludeCreds

registerInputWithExcludeCreds: "/** Copyright 2018-2020 ForgeRock AS. All Rights Reserved** Use of this code requires a commercial software license with ForgeRock AS.* or with one of its affiliates. All use shall be exclusively subject* to such license between the licensee and ForgeRock AS.*/if (!window.PublicKeyCredential) {document.getElementById('webAuthnOutcome').value = "unsupported";document.getElementById("loginButton_0").click();}var publicKey = {challenge: new Int8Array([102, -15, -36, -101, -95, 10, -20, 39, 29, 70, 122, 25, 53, 83, 72, -38, 83, -92, 31, -30, 26, -94, 92, -94, -83, 7, 82, -66, -125, -95, -4, -75]).buffer,// Relying Party:rp: {name: "ForgeRock"},// User:user: {id: Uint8Array.from("NTdhNWI0ZTQtNjk5OS00YjQ1LWJmODYtYTRmMmU1ZDRiNjI5", function (c) { return c.charCodeAt(0) }),name: "57a5b4e4-6999-4b45-bf86-a4f2e5d4b629",displayName: "Bob Tester"},pubKeyCredParams: [ { "type": "public-key", "alg": -257 }, { "type": "public-key", "alg": -7 } ],attestation: "none",timeout: 60000,excludeCredentials: [{ "type": "public-key", "id": new Int8Array([49, -96, -107, 113, 106, 5, 115, 22, 68, 121, -85, -27, 8, -58, -113, 127, -105, -37, -10, -12, -58, -25, 29, -82, -18, 69, -99, 125, 33, 82, 38, -66, -27, -128, -91, -86, 87, 68, 94, 0, -78, 70, -11, -70, -14, -53, 38, -60, 46, 27, 66, 46, 21, -125, -70, 123, -46, -124, 86, -2, 102, 70, -52, 54]).buffer },{ "type": "public-key", "id": new Int8Array([64, 17, -15, -123, -21, 127, 76, -120, 90, -112, -5, 54, 105, 93, 82, -104, -79, 107, -69, -3, -113, -94, -59, -4, 126, -33, 117, 32, -44, 122, -97, 8, -112, 105, -96, 96, 90, 44, -128, -121, 107, 79, -98, -68, -93, 11, -105, -47, 102, 13, 110, 84, 59, -91, -30, 37, -3, -22, 39, 111, -10, 87, -50, -35]).buffer }],authenticatorSelection: {"userVerification":"preferred"}};navigator.credentials.create({publicKey: publicKey}).then(function (newCredentialInfo) {var rawId = newCredentialInfo.id;var clientData = String.fromCharCode.apply(null, new Uint8Array(newCredentialInfo.response.clientDataJSON));var keyData = new Int8Array(newCredentialInfo.response.attestationObject).toString();document.getElementById('webAuthnOutcome').value = clientData + "::" + keyData + "::" + rawId;document.getElementById("loginButton_0").click();}).catch(function (err) {document.getElementById('webAuthnOutcome').value = "ERROR" + "::" + err;document.getElementById("loginButton_0").click();});" = `/** Copyright 2018-2020 ForgeRock AS. All Rights Reserved** Use of this code requires a commercial software license with ForgeRock AS.* or with one of its affiliates. All use shall be exclusively subject* to such license between the licensee and ForgeRock AS.*/if (!window.PublicKeyCredential) {document.getElementById('webAuthnOutcome').value = "unsupported";document.getElementById("loginButton_0").click();}var publicKey = {challenge: new Int8Array([102, -15, -36, -101, -95, 10, -20, 39, 29, 70, 122, 25, 53, 83, 72, -38, 83, -92, 31, -30, 26, -94, 92, -94, -83, 7, 82, -66, -125, -95, -4, -75]).buffer,// Relying Party:rp: {name: "ForgeRock"},// User:user: {id: Uint8Array.from("NTdhNWI0ZTQtNjk5OS00YjQ1LWJmODYtYTRmMmU1ZDRiNjI5", function (c) { return c.charCodeAt(0) }),name: "57a5b4e4-6999-4b45-bf86-a4f2e5d4b629",displayName: "Bob Tester"},pubKeyCredParams: [ { "type": "public-key", "alg": -257 }, { "type": "public-key", "alg": -7 } ],attestation: "none",timeout: 60000,excludeCredentials: [{ "type": "public-key", "id": new Int8Array([49, -96, -107, 113, 106, 5, 115, 22, 68, 121, -85, -27, 8, -58, -113, 127, -105, -37, -10, -12, -58, -25, 29, -82, -18, 69, -99, 125, 33, 82, 38, -66, -27, -128, -91, -86, 87, 68, 94, 0, -78, 70, -11, -70, -14, -53, 38, -60, 46, 27, 66, 46, 21, -125, -70, 123, -46, -124, 86, -2, 102, 70, -52, 54]).buffer },{ "type": "public-key", "id": new Int8Array([64, 17, -15, -123, -21, 127, 76, -120, 90, -112, -5, 54, 105, 93, 82, -104, -79, 107, -69, -3, -113, -94, -59, -4, 126, -33, 117, 32, -44, 122, -97, 8, -112, 105, -96, 96, 90, 44, -128, -121, 107, 79, -98, -68, -93, 11, -105, -47, 102, 13, 110, 84, 59, -91, -30, 37, -3, -22, 39, 111, -10, 87, -50, -35]).buffer }],authenticatorSelection: {"userVerification":"preferred"}};navigator.credentials.create({publicKey: publicKey}).then(function (newCredentialInfo) {var rawId = newCredentialInfo.id;var clientData = String.fromCharCode.apply(null, new Uint8Array(newCredentialInfo.response.clientDataJSON));var keyData = new Int8Array(newCredentialInfo.response.attestationObject).toString();document.getElementById('webAuthnOutcome').value = clientData + "::" + keyData + "::" + rawId;document.getElementById("loginButton_0").click();}).catch(function (err) {document.getElementById('webAuthnOutcome').value = "ERROR" + "::" + err;document.getElementById("loginButton_0").click();});`

Const registerInputWithRpid

registerInputWithRpid: "/** Copyright 2018-2020 ForgeRock AS. All Rights Reserved** Use of this code requires a commercial software license with ForgeRock AS.* or with one of its affiliates. All use shall be exclusively subject* to such license between the licensee and ForgeRock AS.*/if (!window.PublicKeyCredential) {document.getElementById('webAuthnOutcome').value = "unsupported";document.getElementById("loginButton_0").click();}var publicKey = {challenge: new Int8Array([102, -15, -36, -101, -95, 10, -20, 39, 29, 70, 122, 25, 53, 83, 72, -38, 83, -92, 31, -30, 26, -94, 92, -94, -83, 7, 82, -66, -125, -95, -4, -75]).buffer,// Relying Party:rp: {id: "example.com",name: "ForgeRock"},// User:user: {id: Uint8Array.from("NTdhNWI0ZTQtNjk5OS00YjQ1LWJmODYtYTRmMmU1ZDRiNjI5", function (c) { return c.charCodeAt(0) }),name: "57a5b4e4-6999-4b45-bf86-a4f2e5d4b629",displayName: "bob_lee-tester@me.co.uk"},// Below pubKeyCredParams format represents AM 6.5pubKeyCredParams: [{type: "public-key",alg: -7},{type: "public-key",alg: -257}],attestation: "none",timeout: 60000,excludeCredentials: [],authenticatorSelection: {userVerification: "preferred"authenticatorAttachment:"cross-platform"}};navigator.credentials.create({publicKey: publicKey}).then(function (newCredentialInfo) {var rawId = newCredentialInfo.id;var clientData = String.fromCharCode.apply(null, new Uint8Array(newCredentialInfo.response.clientDataJSON));var keyData = new Int8Array(newCredentialInfo.response.attestationObject).toString();document.getElementById('webAuthnOutcome').value = clientData + "::" + keyData + "::" + rawId;document.getElementById("loginButton_0").click();}).catch(function (err) {document.getElementById('webAuthnOutcome').value = "ERROR" + "::" + err;document.getElementById("loginButton_0").click();});" = `/** Copyright 2018-2020 ForgeRock AS. All Rights Reserved** Use of this code requires a commercial software license with ForgeRock AS.* or with one of its affiliates. All use shall be exclusively subject* to such license between the licensee and ForgeRock AS.*/if (!window.PublicKeyCredential) {document.getElementById('webAuthnOutcome').value = "unsupported";document.getElementById("loginButton_0").click();}var publicKey = {challenge: new Int8Array([102, -15, -36, -101, -95, 10, -20, 39, 29, 70, 122, 25, 53, 83, 72, -38, 83, -92, 31, -30, 26, -94, 92, -94, -83, 7, 82, -66, -125, -95, -4, -75]).buffer,// Relying Party:rp: {id: "example.com",name: "ForgeRock"},// User:user: {id: Uint8Array.from("NTdhNWI0ZTQtNjk5OS00YjQ1LWJmODYtYTRmMmU1ZDRiNjI5", function (c) { return c.charCodeAt(0) }),name: "57a5b4e4-6999-4b45-bf86-a4f2e5d4b629",displayName: "bob_lee-tester@me.co.uk"},// Below pubKeyCredParams format represents AM 6.5pubKeyCredParams: [{type: "public-key",alg: -7},{type: "public-key",alg: -257}],attestation: "none",timeout: 60000,excludeCredentials: [],authenticatorSelection: {userVerification: "preferred"authenticatorAttachment:"cross-platform"}};navigator.credentials.create({publicKey: publicKey}).then(function (newCredentialInfo) {var rawId = newCredentialInfo.id;var clientData = String.fromCharCode.apply(null, new Uint8Array(newCredentialInfo.response.clientDataJSON));var keyData = new Int8Array(newCredentialInfo.response.attestationObject).toString();document.getElementById('webAuthnOutcome').value = clientData + "::" + keyData + "::" + rawId;document.getElementById("loginButton_0").click();}).catch(function (err) {document.getElementById('webAuthnOutcome').value = "ERROR" + "::" + err;document.getElementById("loginButton_0").click();});`

Const registerInputWithRpidAndQuotes

registerInputWithRpidAndQuotes: "/** Copyright 2018-2020 ForgeRock AS. All Rights Reserved** Use of this code requires a commercial software license with ForgeRock AS.* or with one of its affiliates. All use shall be exclusively subject* to such license between the licensee and ForgeRock AS.*/if (!window.PublicKeyCredential) {document.getElementById('webAuthnOutcome').value = "unsupported";document.getElementById("loginButton_0").click();}var publicKey = {"challenge": new Int8Array([102, -15, -36, -101, -95, 10, -20, 39, 29, 70, 122, 25, 53, 83, 72, -38, 83, -92, 31, -30, 26, -94, 92, -94, -83, 7, 82, -66, -125, -95, -4, -75]).buffer,// Relying Party:"rp": {"id": "example.com","name": "ForgeRock"},// User:"user": {"id": Uint8Array.from("NTdhNWI0ZTQtNjk5OS00YjQ1LWJmODYtYTRmMmU1ZDRiNjI5", function (c) { return c.charCodeAt(0) }),"name": "57a5b4e4-6999-4b45-bf86-a4f2e5d4b629","displayName": "bob_lee-tester@me.co.uk"},"pubKeyCredParams": [ { "type": "public-key", "alg": -257 }, { "type": "public-key", "alg": -7 } ],"attestation": "none","timeout": 60000,"excludeCredentials": [],"authenticatorSelection": {"userVerification":"preferred","authenticatorAttachment":"cross-platform"}};navigator.credentials.create({publicKey: publicKey}).then(function (newCredentialInfo) {var rawId = newCredentialInfo.id;var clientData = String.fromCharCode.apply(null, new Uint8Array(newCredentialInfo.response.clientDataJSON));var keyData = new Int8Array(newCredentialInfo.response.attestationObject).toString();document.getElementById('webAuthnOutcome').value = clientData + "::" + keyData + "::" + rawId;document.getElementById("loginButton_0").click();}).catch(function (err) {document.getElementById('webAuthnOutcome').value = "ERROR" + "::" + err;document.getElementById("loginButton_0").click();});" = `/** Copyright 2018-2020 ForgeRock AS. All Rights Reserved** Use of this code requires a commercial software license with ForgeRock AS.* or with one of its affiliates. All use shall be exclusively subject* to such license between the licensee and ForgeRock AS.*/if (!window.PublicKeyCredential) {document.getElementById('webAuthnOutcome').value = "unsupported";document.getElementById("loginButton_0").click();}var publicKey = {"challenge": new Int8Array([102, -15, -36, -101, -95, 10, -20, 39, 29, 70, 122, 25, 53, 83, 72, -38, 83, -92, 31, -30, 26, -94, 92, -94, -83, 7, 82, -66, -125, -95, -4, -75]).buffer,// Relying Party:"rp": {"id": "example.com","name": "ForgeRock"},// User:"user": {"id": Uint8Array.from("NTdhNWI0ZTQtNjk5OS00YjQ1LWJmODYtYTRmMmU1ZDRiNjI5", function (c) { return c.charCodeAt(0) }),"name": "57a5b4e4-6999-4b45-bf86-a4f2e5d4b629","displayName": "bob_lee-tester@me.co.uk"},"pubKeyCredParams": [ { "type": "public-key", "alg": -257 }, { "type": "public-key", "alg": -7 } ],"attestation": "none","timeout": 60000,"excludeCredentials": [],"authenticatorSelection": {"userVerification":"preferred","authenticatorAttachment":"cross-platform"}};navigator.credentials.create({publicKey: publicKey}).then(function (newCredentialInfo) {var rawId = newCredentialInfo.id;var clientData = String.fromCharCode.apply(null, new Uint8Array(newCredentialInfo.response.clientDataJSON));var keyData = new Int8Array(newCredentialInfo.response.attestationObject).toString();document.getElementById('webAuthnOutcome').value = clientData + "::" + keyData + "::" + rawId;document.getElementById("loginButton_0").click();}).catch(function (err) {document.getElementById('webAuthnOutcome').value = "ERROR" + "::" + err;document.getElementById("loginButton_0").click();});`

Const registerInputWithoutRpid

registerInputWithoutRpid: "/** Copyright 2018-2020 ForgeRock AS. All Rights Reserved** Use of this code requires a commercial software license with ForgeRock AS.* or with one of its affiliates. All use shall be exclusively subject* to such license between the licensee and ForgeRock AS.*/if (!window.PublicKeyCredential) {document.getElementById('webAuthnOutcome').value = "unsupported";document.getElementById("loginButton_0").click();}var publicKey = {challenge: new Int8Array([102, -15, -36, -101, -95, 10, -20, 39, 29, 70, 122, 25, 53, 83, 72, -38, 83, -92, 31, -30, 26, -94, 92, -94, -83, 7, 82, -66, -125, -95, -4, -75]).buffer,// Relying Party:rp: {name: "ForgeRock"},// User:user: {id: Uint8Array.from("NTdhNWI0ZTQtNjk5OS00YjQ1LWJmODYtYTRmMmU1ZDRiNjI5", function (c) { return c.charCodeAt(0) }),name: "57a5b4e4-6999-4b45-bf86-a4f2e5d4b629",displayName: "Bob Tester"},pubKeyCredParams: [ { "type": "public-key", "alg": -257 }, { "type": "public-key", "alg": -7 } ],attestation: "none",timeout: 60000,excludeCredentials: [],authenticatorSelection: {"userVerification":"preferred"}};navigator.credentials.create({publicKey: publicKey}).then(function (newCredentialInfo) {var rawId = newCredentialInfo.id;var clientData = String.fromCharCode.apply(null, new Uint8Array(newCredentialInfo.response.clientDataJSON));var keyData = new Int8Array(newCredentialInfo.response.attestationObject).toString();document.getElementById('webAuthnOutcome').value = clientData + "::" + keyData + "::" + rawId;document.getElementById("loginButton_0").click();}).catch(function (err) {document.getElementById('webAuthnOutcome').value = "ERROR" + "::" + err;document.getElementById("loginButton_0").click();});" = `/** Copyright 2018-2020 ForgeRock AS. All Rights Reserved** Use of this code requires a commercial software license with ForgeRock AS.* or with one of its affiliates. All use shall be exclusively subject* to such license between the licensee and ForgeRock AS.*/if (!window.PublicKeyCredential) {document.getElementById('webAuthnOutcome').value = "unsupported";document.getElementById("loginButton_0").click();}var publicKey = {challenge: new Int8Array([102, -15, -36, -101, -95, 10, -20, 39, 29, 70, 122, 25, 53, 83, 72, -38, 83, -92, 31, -30, 26, -94, 92, -94, -83, 7, 82, -66, -125, -95, -4, -75]).buffer,// Relying Party:rp: {name: "ForgeRock"},// User:user: {id: Uint8Array.from("NTdhNWI0ZTQtNjk5OS00YjQ1LWJmODYtYTRmMmU1ZDRiNjI5", function (c) { return c.charCodeAt(0) }),name: "57a5b4e4-6999-4b45-bf86-a4f2e5d4b629",displayName: "Bob Tester"},pubKeyCredParams: [ { "type": "public-key", "alg": -257 }, { "type": "public-key", "alg": -7 } ],attestation: "none",timeout: 60000,excludeCredentials: [],authenticatorSelection: {"userVerification":"preferred"}};navigator.credentials.create({publicKey: publicKey}).then(function (newCredentialInfo) {var rawId = newCredentialInfo.id;var clientData = String.fromCharCode.apply(null, new Uint8Array(newCredentialInfo.response.clientDataJSON));var keyData = new Int8Array(newCredentialInfo.response.attestationObject).toString();document.getElementById('webAuthnOutcome').value = clientData + "::" + keyData + "::" + rawId;document.getElementById("loginButton_0").click();}).catch(function (err) {document.getElementById('webAuthnOutcome').value = "ERROR" + "::" + err;document.getElementById("loginButton_0").click();});`

Const responseFromAM

responseFromAM: any = {clone() {return {// eslint-disable-next-line @typescript-eslint/no-explicit-anyjson(): any {return Promise.resolve({callbacks: {},});},};},json() {return Promise.resolve({callbacks: {},});},// eslint-disable-next-line @typescript-eslint/no-explicit-any} as any

Const tokenExpiryNotSet

tokenExpiryNotSet: any = undefined

Const tokenExpiryOutsideThreshold

tokenExpiryOutsideThreshold: 180000 = 180000

Const tokenExpiryWithinThreshold

tokenExpiryWithinThreshold: 60000 = 60000

Const two

two: ActionTypes = '2' as ActionTypes

Let window

window: unknown

Functions

addAuthzInfoToHeaders

  • addAuthzInfoToHeaders(init: RequestInit, advices: Advices, tokens?: Tokens): Headers

addAuthzInfoToURL

  • addAuthzInfoToURL(url: string, advices: Advices, tokens?: Tokens): string

arrayBufferToString

  • arrayBufferToString(arrayBuffer: ArrayBuffer): string

buildAuthzOptions

ensureArray

  • ensureArray(arr: RegExpMatchArray | null): string[]

examineForIGAuthz

  • examineForIGAuthz(res: Response): boolean

examineForRESTAuthz

  • examineForRESTAuthz(res: Response): Promise<boolean>

getBaseUrl

  • getBaseUrl(url: URL): string
  • Returns the base URL including protocol, hostname and any non-standard port. The returned URL does not include a trailing slash.

    Parameters

    • url: URL

    Returns string

getEndpointPath

getIndexOne

  • getIndexOne(arr: RegExpMatchArray | null): string

getProp

  • getProp<T>(obj: {} | undefined, prop: string, defaultValue: T): T

Const getTestToken

  • getTestToken(): Promise<Tokens | undefined | string>

getXMLValueFromURL

  • getXMLValueFromURL(urlString: string): string

hasAuthzAdvice

Const initTokenIndexedDB

  • initTokenIndexedDB(initToken?: Tokens): Promise<unknown>

isAuthzStep

  • isAuthzStep(res: Response): Promise<boolean>

middlewareWrapper

newTokenRequired

normalizeIGJSON

normalizeRESTJSON

parseAllowCredentialsArray

  • parseAllowCredentialsArray(value: string | unknown[]): PublicKeyCredentialDescriptor[] | undefined

parseCredentials

parseDisplayRecoveryCodesText

  • parseDisplayRecoveryCodesText(text: string): string[]

parseNumberArray

  • parseNumberArray(value: string): number[]

parsePubKeyArray

  • parsePubKeyArray(value: string | unknown[]): PublicKeyCredentialParameters[] | undefined

parseQuery

parseRelyingPartyId

  • parseRelyingPartyId(relyingPartyId: string): string
  • AM is currently serializing RP as one of the following formats, depending on whether RP ID has been configured: "relyingPartyId":"" "relyingPartyId":"rpId: "foo"," This regex handles both formats, but should be removed once AM is fixed.

    Parameters

    • relyingPartyId: string

    Returns string

parseWebAuthnAuthenticateText

  • parseWebAuthnAuthenticateText(text: string): PublicKeyCredentialRequestOptions

parseWebAuthnRegisterText

  • parseWebAuthnRegisterText(text: string): PublicKeyCredentialCreationOptions

resolve

  • resolve(baseUrl: string, path: string): string

setDefaults

stringify

  • stringify(data: StringDict<string | undefined>): string

Object literals

Const allowedErrors

allowedErrors: object

AuthenticationConsentRequired

AuthenticationConsentRequired: string = "Authentication or consent required"

AuthorizationTimeout

AuthorizationTimeout: string = "Authorization timed out"

CORSError

CORSError: string = "Cross-origin redirection"

FailedToFetch

FailedToFetch: string = "Failed to fetch"

NetworkError

NetworkError: string = "NetworkError when attempting to fetch resource."

Const authzByTreeReqOptionsForIG

authzByTreeReqOptionsForIG: object

timeout

timeout: number = 0

url

url: string = "https://request-auth-by-txn.com/ig"

authorization

authorization: object

handleStep

handleStep: (step: FRStep) => Promise<FRStep> = {} as HandleStep

Type declaration

config

config: object

serverConfig

serverConfig: object

baseUrl

baseUrl: string = "https://openam.example.com/am/"

timeout

timeout: number = 0

init

init: object

credentials

credentials: "include" = 'include' as const

method

method: string = "POST"

Const authzByTreeReqOptionsForREST

authzByTreeReqOptionsForREST: object

timeout

timeout: number = 0

url

url: string = "https://request-auth-by-txn.com/rest"

authorization

authorization: object

handleStep

handleStep: (step: FRStep) => Promise<FRStep> = {} as HandleStep

Type declaration

config

config: object

serverConfig

serverConfig: object

baseUrl

baseUrl: string = "https://openam.example.com/am/"

timeout

timeout: number = 0

init

init: object

credentials

credentials: "include" = 'include' as const

method

method: string = "POST"

Const authzByTxnReqOptionsForIG

authzByTxnReqOptionsForIG: object

timeout

timeout: number = 0

url

url: string = "https://request-auth-by-txn.com/ig"

authorization

authorization: object

handleStep

handleStep: (step: FRStep) => Promise<FRStep> = {} as HandleStep

Type declaration

config

config: object

serverConfig

serverConfig: object

baseUrl

baseUrl: string = "https://openam.example.com/am/"

timeout

timeout: number = 0

init

init: object

credentials

credentials: "include" = 'include' as const

method

method: string = "POST"

Const authzByTxnReqOptionsForREST

authzByTxnReqOptionsForREST: object

timeout

timeout: number = 0

url

url: string = "https://request-auth-by-txn.com/rest"

authorization

authorization: object

handleStep

handleStep: (step: FRStep) => Promise<FRStep> = {} as HandleStep

Type declaration

config

config: object

serverConfig

serverConfig: object

baseUrl

baseUrl: string = "https://openam.example.com/am/"

timeout

timeout: number = 0

init

init: object

credentials

credentials: "include" = 'include' as const

method

method: string = "POST"

Const authzTreeJSON

authzTreeJSON: object

actions

actions: {}

Type declaration

attributes

attributes: {}

Type declaration

resource

resource: string = ""

ttl

ttl: number = 0

advices

advices: object

AuthenticateToServiceConditionAdvice

AuthenticateToServiceConditionAdvice: string[] = ['abc']

Const authzTxnJSON

authzTxnJSON: object

actions

actions: {}

Type declaration

attributes

attributes: {}

Type declaration

resource

resource: string = ""

ttl

ttl: number = 0

advices

advices: object

TransactionConditionAdvice

TransactionConditionAdvice: string[] = ['abc']

Const config

config: object

clientId

clientId: string = "mockClientId"

tokenStore

tokenStore: "indexedDB" = "indexedDB"

Const defaultMessageCreator

defaultMessageCreator: object

[PolicyKey.CannotContainCharacters]

  • [PolicyKey.CannotContainCharacters](property: string, params?: { forbiddenChars?: string }): string

[PolicyKey.CannotContainDuplicates]

  • [PolicyKey.CannotContainDuplicates](property: string, params?: { duplicateValue?: string }): string

[PolicyKey.CannotContainOthers]

  • [PolicyKey.CannotContainOthers](property: string, params?: { disallowedFields?: string }): string

[PolicyKey.LeastCapitalLetters]

  • [PolicyKey.LeastCapitalLetters](property: string, params?: { numCaps?: number }): string

[PolicyKey.LeastNumbers]

  • [PolicyKey.LeastNumbers](property: string, params?: { numNums?: number }): string

[PolicyKey.MatchRegexp]

  • [PolicyKey.MatchRegexp](property: string): string

[PolicyKey.MaximumLength]

  • [PolicyKey.MaximumLength](property: string, params?: { maxLength?: number }): string

[PolicyKey.MaximumNumber]

  • [PolicyKey.MaximumNumber](property: string): string

[PolicyKey.MinimumLength]

  • [PolicyKey.MinimumLength](property: string, params?: { minLength?: number }): string

[PolicyKey.MinimumNumber]

  • [PolicyKey.MinimumNumber](property: string): string

[PolicyKey.Required]

  • [PolicyKey.Required](property: string): string

[PolicyKey.Unique]

  • [PolicyKey.Unique](property: string): string

[PolicyKey.UnknownPolicy]

  • [PolicyKey.UnknownPolicy](property: string, params?: { policyRequirement?: string }): string

[PolicyKey.ValidArrayItems]

  • [PolicyKey.ValidArrayItems](property: string): string

[PolicyKey.ValidDate]

  • [PolicyKey.ValidDate](property: string): string

[PolicyKey.ValidEmailAddress]

  • [PolicyKey.ValidEmailAddress](property: string): string

[PolicyKey.ValidNameFormat]

  • [PolicyKey.ValidNameFormat](property: string): string

[PolicyKey.ValidNumber]

  • [PolicyKey.ValidNumber](property: string): string

[PolicyKey.ValidPhoneFormat]

  • [PolicyKey.ValidPhoneFormat](property: string): string

[PolicyKey.ValidQueryFilter]

  • [PolicyKey.ValidQueryFilter](property: string): string

[PolicyKey.ValidType]

  • [PolicyKey.ValidType](property: string): string

Const devicePlatforms

devicePlatforms: object

ios

ios: string[] = ['iPhone', 'iPad', 'iPod']

mac

mac: string[] = ['Macintosh', 'MacIntel', 'MacPPC', 'Mac68K']

windows

windows: string[] = ['Win32', 'Win64', 'Windows', 'WinCE']

Const displayRecoveryCodesResponse

displayRecoveryCodesResponse: object

authId

authId: string = "foo"

callbacks

callbacks: { output: { name: string; value: string }[]; type: TextOutputCallback }[] = [{type: 'TextOutputCallback' as CallbackType.TextOutputCallback,output: [{name: 'message',value:'/*\n * Copyright 2018 ForgeRock AS. All Rights Reserved\n *\n * Use of this code requires a commercial software license with ForgeRock AS.\n * or with one of its affiliates. All use shall be exclusively subject\n * to such license between the licensee and ForgeRock AS.\n */\n\nvar newLocation = document.getElementById("wrapper");\nvar oldHtml = newLocation.getElementsByTagName("fieldset")[0].innerHTML;\nnewLocation.getElementsByTagName("fieldset")[0].innerHTML = "<div class=\\"panel panel-default\\">\\n" +\n " <div class=\\"panel-body text-center\\">\\n" +\n " <h3>Your Recovery Codes</h3>\\n" +\n " <h4>You must make a copy of these WebAuthn authenticator recovery codes. They cannot be displayed again.</h4>\\n" +\n " </div>\\n" +\n "<div class=\\"text-center\\">\\n" +\n "iZmEtxvQ00\\n" +\n "</div>\\n" +\n "<div class=\\"text-center\\">\\n" +\n "Eqw3GFVamY\\n" +\n "</div>\\n" +\n "<div class=\\"text-center\\">\\n" +\n "nNPqIEtIpS\\n" +\n "</div>\\n" +\n "<div class=\\"text-center\\">\\n" +\n "vGhNQpDjP8\\n" +\n "</div>\\n" +\n "<div class=\\"text-center\\">\\n" +\n "ItA4W3iBaA\\n" +\n "</div>\\n" +\n "<div class=\\"text-center\\">\\n" +\n "JmLQP6XyIo\\n" +\n "</div>\\n" +\n "<div class=\\"text-center\\">\\n" +\n "G2e6foNKke\\n" +\n "</div>\\n" +\n "<div class=\\"text-center\\">\\n" +\n "h2SqAqvT21\\n" +\n "</div>\\n" +\n "<div class=\\"text-center\\">\\n" +\n "q6VX1ojNbI\\n" +\n "</div>\\n" +\n "<div class=\\"text-center\\">\\n" +\n "IZKIQXAfY2\\n" +\n "</div>\\n" +\n "<div class=\\"panel-body text-center\\">\\n" +\n " <p>Use one of these codes to authenticate if you lose your device, which has been named: <em>New Security Key</em></p>\\n" +\n "</div>\\n" +\n "</div>" + oldHtml;\ndocument.body.appendChild(newLocation);\n\n\n',},{ name: 'messageType', value: '4' },],},]

Const expectedJsdom

expectedJsdom: object

identifier

identifier: string = ""

metadata

metadata: object

browser

browser: object

appCodeName

appCodeName: string = "Mozilla"

appMinorVersion

appMinorVersion: null = null

appName

appName: string = "Netscape"

appVersion

appVersion: string = "4.0"

browserLanguage

browserLanguage: null = null

buildID

buildID: null = null

plugins

plugins: string = ""

product

product: string = "Gecko"

productSub

productSub: string = "20030107"

userAgent

userAgent: string = "Mozilla/5.0 (darwin) AppleWebKit/537.36 (KHTML, like Gecko) jsdom/16.2.2"

vendor

vendor: string = "Apple Computer, Inc."

vendorSub

vendorSub: string = ""

hardware

hardware: object

cpuClass

cpuClass: null = null

deviceMemory

deviceMemory: null = null

hardwareConcurrency

hardwareConcurrency: number = 16

maxTouchPoints

maxTouchPoints: null = null

oscpu

oscpu: null = null

display

display: object

angle

angle: string = ""

height

height: number = 0

pixelDepth

pixelDepth: number = 24

width

width: number = 0

platform

platform: object

deviceName

deviceName: string = "Unknown (Browser)"

fonts

fonts: string = ""

language

language: string = "en-US"

platform

platform: string = ""

systemLanguage

systemLanguage: null = null

timezone

timezone: number = 300

userLanguage

userLanguage: null = null

Const expectedJsdomWithNarrowedBrowserProps

expectedJsdomWithNarrowedBrowserProps: object

identifier

identifier: string = ""

metadata

metadata: object

browser

browser: object

plugins

plugins: string = ""

userAgent

userAgent: string = "Mozilla/5.0 (darwin) AppleWebKit/537.36 (KHTML, like Gecko) jsdom/16.2.2"

hardware

hardware: object

cpuClass

cpuClass: null = null

deviceMemory

deviceMemory: null = null

hardwareConcurrency

hardwareConcurrency: number = 16

maxTouchPoints

maxTouchPoints: null = null

oscpu

oscpu: null = null

display

display: object

angle

angle: string = ""

height

height: number = 0

pixelDepth

pixelDepth: number = 24

width

width: number = 0

platform

platform: object

deviceName

deviceName: string = "Unknown (Browser)"

fonts

fonts: string = ""

language

language: string = "en-US"

platform

platform: string = ""

systemLanguage

systemLanguage: null = null

timezone

timezone: number = 300

userLanguage

userLanguage: null = null

Const expectedJsdomWithoutDisplay

expectedJsdomWithoutDisplay: object

identifier

identifier: string = ""

metadata

metadata: object

browser

browser: object

appCodeName

appCodeName: string = "Mozilla"

appMinorVersion

appMinorVersion: null = null

appName

appName: string = "Netscape"

appVersion

appVersion: string = "4.0"

browserLanguage

browserLanguage: null = null

buildID

buildID: null = null

plugins

plugins: string = ""

product

product: string = "Gecko"

productSub

productSub: string = "20030107"

userAgent

userAgent: string = "Mozilla/5.0 (darwin) AppleWebKit/537.36 (KHTML, like Gecko) jsdom/16.2.2"

vendor

vendor: string = "Apple Computer, Inc."

vendorSub

vendorSub: string = ""

hardware

hardware: object

cpuClass

cpuClass: null = null

deviceMemory

deviceMemory: null = null

display

display: {}

Type declaration

hardwareConcurrency

hardwareConcurrency: number = 16

maxTouchPoints

maxTouchPoints: null = null

oscpu

oscpu: null = null

platform

platform: object

deviceName

deviceName: string = "Unknown (Browser)"

fonts

fonts: string = ""

language

language: string = "en-US"

platform

platform: string = ""

systemLanguage

systemLanguage: null = null

timezone

timezone: number = 300

userLanguage

userLanguage: null = null

Const jsonResponse

jsonResponse: object

authId

authId: string = "unused"

callbacks

callbacks: ({ _id: number; input: { name: string; value: string }[]; output: { name: string; value: string }[]; type: NameCallback } | { _id: number; input: { name: string; value: string }[]; output: { name: string; value: string }[]; type: PasswordCallback })[] = [{type: CallbackType.NameCallback,output: [{ name: 'prompt', value: 'User Name' }],input: [{ name: 'IDToken1', value: '' }],_id: 0,},{type: CallbackType.PasswordCallback,output: [{ name: 'prompt', value: 'Password' }],input: [{ name: 'IDToken2', value: '' }],_id: 1,},]

stage

stage: string = "UsernamePassword"

Const loginSubmission

loginSubmission: object

callbacks

callbacks: { payload: object }[] = [{payload: {type: 'NameCallback',output: [{ name: 'prompt', value: 'User Name' }],input: [{ name: 'IDToken1', value: 'jsmith' }],_id: 0,},},{payload: {type: 'PasswordCallback',output: [{ name: 'prompt', value: 'Password' }],input: [{ name: 'IDToken2', value: 'Password1!' }],_id: 1,},},]

payload

payload: object

authId

authId: string = "unused"

callbacks

callbacks: { _id: number; input: { name: string; value: string }[]; output: { name: string; value: string }[]; type: string }[] = [{type: 'NameCallback',output: [{ name: 'prompt', value: 'User Name' }],input: [{ name: 'IDToken1', value: 'jsmith' }],_id: 0,},{type: 'PasswordCallback',output: [{ name: 'prompt', value: 'Password' }],input: [{ name: 'IDToken2', value: 'Password1!' }],_id: 1,},]

stage

stage: string = "UsernamePassword"

Const otherResponse

otherResponse: object

authId

authId: string = "foo"

callbacks

callbacks: { output: { name: string; value: string }[]; type: TextOutputCallback }[] = [{type: 'TextOutputCallback' as CallbackType.TextOutputCallback,output: [{name: 'message',value:'/*\n * Copyright 2018 ForgeRock AS. All Rights Reserved\n *\n * Use of this code requires a commercial software license with ForgeRock AS.\n * or with one of its affiliates. All use shall be exclusively subject\n * to such license between the licensee and ForgeRock AS.\n */\n\nvar new Location = foo;',},{ name: 'messageType', value: '4' },],},]

Const rawResponse

rawResponse: object

body

body: {}

Type declaration

bodyUsed

bodyUsed: boolean = true

ok

ok: boolean = true

redirected

redirected: boolean = false

status

status: number = 200

statusText

statusText: string = ""

type

type: string = "cors"

url

url: string = "https://openam-devjustin2.forgeblocks.com/am/json/realms/root/authenticate?authIndexType=service&authIndexValue=UsernamePassword"

json

headers

headers: object

get

  • get(): string

Const registerOutputWithExcludeCreds

registerOutputWithExcludeCreds: object

attestation

attestation: string = "none"

challenge

challenge: undefined[] = [/* don't directly test */]

excludeCredentials

excludeCredentials: { id: string; type: string }[] = [{type: 'public-key',id: 'Do not directly test',},{type: 'public-key',id: 'Do not directly test',},]

pubKeyCredParams

pubKeyCredParams: { alg: number; type: string }[] = [{ type: 'public-key', alg: -257 },{ type: 'public-key', alg: -7 },]

timeout

timeout: number = 60000

authenticatorSelection

authenticatorSelection: object

userVerification

userVerification: string = "preferred"

rp

rp: object

name

name: string = "ForgeRock"

user

user: object

displayName

displayName: string = "Bob Tester"

id

id: undefined[] = [/* don't directly test */]

name

name: string = "57a5b4e4-6999-4b45-bf86-a4f2e5d4b629"

Const registerOutputWithRpid

registerOutputWithRpid: object

attestation

attestation: string = "none"

challenge

challenge: undefined[] = [/* don't directly test */]

pubKeyCredParams

pubKeyCredParams: { alg: number; type: string }[] = [{ type: 'public-key', alg: -257 },{ type: 'public-key', alg: -7 },]

timeout

timeout: number = 60000

authenticatorSelection

authenticatorSelection: object

authenticatorAttachment

authenticatorAttachment: string = "cross-platform"

userVerification

userVerification: string = "preferred"

rp

rp: object

id

id: string = "example.com"

name

name: string = "ForgeRock"

user

user: object

displayName

displayName: string = "bob_lee-tester@me.co.uk"

id

id: undefined[] = [/* don't directly test */]

name

name: string = "57a5b4e4-6999-4b45-bf86-a4f2e5d4b629"

Const registerOutputWithoutRpid

registerOutputWithoutRpid: object

attestation

attestation: string = "none"

challenge

challenge: undefined[] = [/* don't directly test */]

pubKeyCredParams

pubKeyCredParams: { alg: number; type: string }[] = [{ type: 'public-key', alg: -257 },{ type: 'public-key', alg: -7 },]

timeout

timeout: number = 60000

authenticatorSelection

authenticatorSelection: object

userVerification

userVerification: string = "preferred"

rp

rp: object

name

name: string = "ForgeRock"

user

user: object

displayName

displayName: string = "Bob Tester"

id

id: undefined[] = [/* don't directly test */]

name

name: string = "57a5b4e4-6999-4b45-bf86-a4f2e5d4b629"

Const testTokensOne

testTokensOne: object

accessToken

accessToken: string = "testAccessTokenOne"

idToken

idToken: string = "testIdTokenOne"

refreshToken

refreshToken: string = "testRefreshTokenOne"

Const testTokensTwo

testTokensTwo: object

accessToken

accessToken: string = "testAccessTokenTwo"

idToken

idToken: string = "testIdTokenTwo"

refreshToken

refreshToken: string = "testRefreshTokenTwo"

Const webAuthnAuthJSCallback653

webAuthnAuthJSCallback653: object

authId

authId: string = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9 ... "

callbacks

callbacks: ({ output: { name: string; value: string }[]; type: string } | { input: { name: string; value: string }[]; output: { name: string; value: string }[]; type: string })[] = [{type: 'TextOutputCallback',output: [{name: 'message',value:// eslint-disable-next-line'/*\n * Copyright 2018-2020 ForgeRock AS. All Rights Reserved\n *\n * Use of this code requires a commercial software license with ForgeRock AS.\n * or with one of its affiliates. All use shall be exclusively subject\n * to such license between the licensee and ForgeRock AS.\n */\n\nif (!window.PublicKeyCredential) {\n document.getElementById(\'webAuthnOutcome\').value = "unsupported";\n document.getElementById("loginButton_0").click();\n}\n\nvar acceptableCredentials = [\n { "type": "public-key", "id": new Int8Array([1, 97, 2, 123, -105, -19, -106, 10, -86, 82, -23, 5, 52, 63, 103, 110, -71, 53, 107, 104, 76, -42, -49, 96, 67, -114, -97, 19, -59, 89, -102, -115, -110, -101, -6, -98, 39, -75, 2, 74, 23, -105, 67, 6, -112, 21, -3, 36, -114, 52, 35, 75, 74, 82, -8, 115, -128, -34, -105, 110, 124, 41, -79, -53, -90, 81, -11, -7, 91, -45, -67, -82, 106, 74, 30, 112, 100, -47, 54, -12, 95, 81, 97, 36, 123, -15, -91, 87, -82, 87, -45, -103, -80, 109, -111, 82, 109, 58, 50, 19, -21, -102, 54, -108, -68, 12, -101, -53, -65, 11, -94, -36, 112, -101, -95, -90, -118, 68, 13, 8, -49, -77, -28, -82, -97, 126, -71, 33, -58, 19, 58, -118, 36, -28, 22, -55, 64, -72, -80, -9, -48, -50, 58, -52, 64, -64, -27, -5, -12, 110, -95, -17]).buffer }\n];\n\nvar options = {\n \n challenge: new Int8Array([109, 14, 35, -101, 97, -69, -105, -89, -58, 14, 108, 59, 45, 87, 109, -78, -51, 64, 90, 124, -97, 43, -84, -108, -69, -117, 101, -4, -36, -69, -106, 103]).buffer,\n timeout: 60000,\n userVerification: "discouraged",\n allowCredentials: acceptableCredentials\n};\n\nnavigator.credentials.get({ "publicKey" : options })\n .then(function (assertion) {\n var clientData = String.fromCharCode.apply(null, new Uint8Array(assertion.response.clientDataJSON));\n var authenticatorData = new Int8Array(assertion.response.authenticatorData).toString();\n var signature = new Int8Array(assertion.response.signature).toString();\n var rawId = assertion.id;\n document.getElementById(\'webAuthnOutcome\').value = clientData + "::" + authenticatorData + "::" + signature + "::" + rawId;\n document.getElementById("loginButton_0").click();\n }).catch(function (err) {\n document.getElementById(\'webAuthnOutcome\').value = "ERROR" + "::" + err;\n document.getElementById("loginButton_0").click();\n });\n',},{ name: 'messageType', value: '4' },],},{type: 'TextOutputCallback',output: [{name: 'message',value:// eslint-disable-next-line'/*\n * Copyright 2018 ForgeRock AS. All Rights Reserved\n *\n * Use of this code requires a commercial software license with ForgeRock AS.\n * or with one of its affiliates. All use shall be exclusively subject\n * to such license between the licensee and ForgeRock AS.\n *\n */\n\n/*\n * Note:\n *\n * When a ConfirmationCallback is used (e.g. during recovery code use), the XUI does not render a loginButton. However\n * the webAuthn script needs to call loginButton.click() to execute the appropriate data reformatting prior to sending\n * the request into AM. Here we query whether the loginButton exists and add it to the DOM if it doesn\'t.\n */\n\nvar newLocation = document.getElementById("wrapper");\n\nvar script = "<div class=\\"form-group\\">\\n" +\n "<div class=\\"panel panel-default\\">\\n" +\n " <div class=\\"panel-body text-center\\">\\n" +\n " <h4 class=\\"awaiting-response\\"><i class=\\"fa fa-circle-o-notch fa-spin text-primary\\"></i> Waiting for local device... </h4>\\n" +\n " </div>\\n" +\n "</div>\\n";\n\nif (!document.getElementById("loginButton_0")) {\n script += "<input id=\\"loginButton_0\\" role=\\"button\\" type=\\"submit\\" hidden>";\n} else {\n document.getElementById("loginButton_0").style.visibility=\'hidden\';\n}\n\nscript += "</div>";\n\nnewLocation.getElementsByTagName("fieldset")[0].innerHTML += script;\ndocument.body.appendChild(newLocation);',},{ name: 'messageType', value: '4' },],},{type: 'HiddenValueCallback',output: [{ name: 'value', value: 'false' },{ name: 'id', value: 'webAuthnOutcome' },],input: [{ name: 'IDToken3', value: 'webAuthnOutcome' }],},]

Const webAuthnAuthJSCallback70

webAuthnAuthJSCallback70: object

authId

authId: string = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9 ... "

callbacks

callbacks: ({ output: { name: string; value: string }[]; type: string } | { input: { name: string; value: string }[]; output: { name: string; value: string }[]; type: string })[] = [{type: 'TextOutputCallback',output: [{name: 'message',value:// eslint-disable-next-line'/*\n * Copyright 2018-2020 ForgeRock AS. All Rights Reserved\n *\n * Use of this code requires a commercial software license with ForgeRock AS.\n * or with one of its affiliates. All use shall be exclusively subject\n * to such license between the licensee and ForgeRock AS.\n */\n\nif (!window.PublicKeyCredential) {\n document.getElementById(\'webAuthnOutcome\').value = "unsupported";\n document.getElementById("loginButton_0").click();\n}\n\nvar options = {\n \n challenge: new Int8Array([-2, 85, 78, -80, -124, -6, -118, 15, 77, -30, -76, -27, -43, -19, -51, -68, 60, -80, -64, -102, 73, -103, 76, -77, -96, -28, 5, -23, -59, -36, 1, -1]).buffer,\n timeout: 60000,\n allowCredentials: [{ "type": "public-key", "id": new Int8Array([-107, 93, 68, -67, -5, 107, 18, 16, -25, -30, 80, 103, -75, -53, -2, -95, 102, 42, 47, 126, -1, 85, 93, 45, -85, 8, -108, 107, 47, -25, 66, 12, -96, 81, 104, -127, 26, -59, -69, -23, 75, 89, 58, 124, -93, 4, 28, -128, 121, 35, 39, 103, -86, -86, 123, -67, -7, -4, 79, -49, 127, -19, 7, 4]).buffer }]\n};\n\nnavigator.credentials.get({ "publicKey" : options })\n .then(function (assertion) {\n var clientData = String.fromCharCode.apply(null, new Uint8Array(assertion.response.clientDataJSON));\n var authenticatorData = new Int8Array(assertion.response.authenticatorData).toString();\n var signature = new Int8Array(assertion.response.signature).toString();\n var rawId = assertion.id;\n var userHandle = String.fromCharCode.apply(null, new Uint8Array(assertion.response.userHandle));\n document.getElementById(\'webAuthnOutcome\').value = clientData + "::" + authenticatorData + "::" + signature + "::" + rawId + "::" + userHandle;\n document.getElementById("loginButton_0").click();\n }).catch(function (err) {\n document.getElementById(\'webAuthnOutcome\').value = "ERROR" + "::" + err;\n document.getElementById("loginButton_0").click();\n });\n',},{ name: 'messageType', value: '4' },],},{type: 'TextOutputCallback',output: [{name: 'message',value:// eslint-disable-next-line'/*\n * Copyright 2018 ForgeRock AS. All Rights Reserved\n *\n * Use of this code requires a commercial software license with ForgeRock AS.\n * or with one of its affiliates. All use shall be exclusively subject\n * to such license between the licensee and ForgeRock AS.\n *\n */\n\n/*\n * Note:\n *\n * When a ConfirmationCallback is used (e.g. during recovery code use), the XUI does not render a loginButton. However\n * the webAuthn script needs to call loginButton.click() to execute the appropriate data reformatting prior to sending\n * the request into AM. Here we query whether the loginButton exists and add it to the DOM if it doesn\'t.\n */\n\nvar newLocation = document.getElementById("wrapper");\n\nvar script = "<div class=\\"form-group\\">\\n" +\n "<div class=\\"panel panel-default\\">\\n" +\n " <div class=\\"panel-body text-center\\">\\n" +\n " <h4 class=\\"awaiting-response\\"><i class=\\"fa fa-circle-o-notch fa-spin text-primary\\"></i> Waiting for local device... </h4>\\n" +\n " </div>\\n" +\n "</div>\\n";\n\nif (!document.getElementById("loginButton_0")) {\n script += "<input id=\\"loginButton_0\\" role=\\"button\\" type=\\"submit\\" hidden>";\n} else {\n document.getElementById("loginButton_0").style.visibility=\'hidden\';\n}\n\nscript += "</div>";\n\nnewLocation.getElementsByTagName("fieldset")[0].innerHTML += script;\ndocument.body.appendChild(newLocation);',},{ name: 'messageType', value: '4' },],},{type: 'HiddenValueCallback',output: [{ name: 'value', value: 'false' },{ name: 'id', value: 'webAuthnOutcome' },],input: [{ name: 'IDToken3', value: 'webAuthnOutcome' }],},]

Const webAuthnAuthJSCallback70StoredUsername

webAuthnAuthJSCallback70StoredUsername: object

authId

authId: string = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9 ... "

callbacks

callbacks: ({ output: { name: string; value: string }[]; type: string } | { input: { name: string; value: string }[]; output: { name: string; value: string }[]; type: string })[] = [{type: 'TextOutputCallback',output: [{name: 'message',value:// eslint-disable-next-line'/*\n * Copyright 2018-2020 ForgeRock AS. All Rights Reserved\n *\n * Use of this code requires a commercial software license with ForgeRock AS.\n * or with one of its affiliates. All use shall be exclusively subject\n * to such license between the licensee and ForgeRock AS.\n */\n\nif (!window.PublicKeyCredential) {\n document.getElementById(\'webAuthnOutcome\').value = "unsupported";\n document.getElementById("loginButton_0").click();\n}\n\nvar options = {\n \n challenge: new Int8Array([50, -11, 63, -112, 37, -61, 57, 126, 83, -127, 122, -42, -102, -82, 26, -95, -75, -37, 16, 52, 27, 54, -101, 124, -16, 99, 33, 92, 63, 10, -110, 102]).buffer,\n timeout: 60000,\n userVerification: "preferred",\n \n};\n\nnavigator.credentials.get({ "publicKey" : options })\n .then(function (assertion) {\n var clientData = String.fromCharCode.apply(null, new Uint8Array(assertion.response.clientDataJSON));\n var authenticatorData = new Int8Array(assertion.response.authenticatorData).toString();\n var signature = new Int8Array(assertion.response.signature).toString();\n var rawId = assertion.id;\n var userHandle = String.fromCharCode.apply(null, new Uint8Array(assertion.response.userHandle));\n document.getElementById(\'webAuthnOutcome\').value = clientData + "::" + authenticatorData + "::" + signature + "::" + rawId + "::" + userHandle;\n document.getElementById("loginButton_0").click();\n }).catch(function (err) {\n document.getElementById(\'webAuthnOutcome\').value = "ERROR" + "::" + err;\n document.getElementById("loginButton_0").click();\n });\n',},{ name: 'messageType', value: '4' },],},{type: 'TextOutputCallback',output: [{name: 'message',value:// eslint-disable-next-line'/*\n * Copyright 2018 ForgeRock AS. All Rights Reserved\n *\n * Use of this code requires a commercial software license with ForgeRock AS.\n * or with one of its affiliates. All use shall be exclusively subject\n * to such license between the licensee and ForgeRock AS.\n *\n */\n\n/*\n * Note:\n *\n * When a ConfirmationCallback is used (e.g. during recovery code use), the XUI does not render a loginButton. However\n * the webAuthn script needs to call loginButton.click() to execute the appropriate data reformatting prior to sending\n * the request into AM. Here we query whether the loginButton exists and add it to the DOM if it doesn\'t.\n */\n\nvar newLocation = document.getElementById("wrapper");\n\nvar script = "<div class=\\"form-group\\">\\n" +\n "<div class=\\"panel panel-default\\">\\n" +\n " <div class=\\"panel-body text-center\\">\\n" +\n " <h4 class=\\"awaiting-response\\"><i class=\\"fa fa-circle-o-notch fa-spin text-primary\\"></i> Waiting for local device... </h4>\\n" +\n " </div>\\n" +\n "</div>\\n";\n\nif (!document.getElementById("loginButton_0")) {\n script += "<input id=\\"loginButton_0\\" role=\\"button\\" type=\\"submit\\" hidden>";\n} else {\n document.getElementById("loginButton_0").style.visibility=\'hidden\';\n}\n\nscript += "</div>";\n\nnewLocation.getElementsByTagName("fieldset")[0].innerHTML += script;\ndocument.body.appendChild(newLocation);',},{ name: 'messageType', value: '4' },],},{type: 'HiddenValueCallback',output: [{ name: 'value', value: 'false' },{ name: 'id', value: 'webAuthnOutcome' },],input: [{ name: 'IDToken3', value: 'webAuthnOutcome' }],},]

Const webAuthnAuthMetaCallback70

webAuthnAuthMetaCallback70: object

authId

authId: string = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9 ... "

callbacks

callbacks: ({ output: { name: string; value: object }[]; type: string } | { input: { name: string; value: string }[]; output: { name: string; value: string }[]; type: string })[] = [{type: 'MetadataCallback',output: [{name: 'data',value: {userVerification: 'preferred',_type: 'WebAuthn',challenge: 'J7kVW1EpFY3thLYVMAAJuR9dswysFhqgrBT6vvSuidE=',relyingPartyId: '',allowCredentials:// eslint-disable-next-line'allowCredentials: [{ "type": "public-key", "id": new Int8Array([1, 122, 110, -32, -105, -95, -90, 81, 20, -122, -96, -115, -115, 38, -7, 15, -127, 48, 48, 97, 94, -23, -54, 74, 3, -41, -118, -124, 112, 5, -77, 87, -11, 102, -86, 93, 27, 112, -128, 103, -58, -75, 68, -62, -62, 72, -27, 108, -59, 0, -124, -117, -121, -52, -97, -88, -112, 22, 122, 109, 104, -89, -10, 46, -95, 62, 64, 43, -42, 127, -53, -98, 88, -126, -68, -94, -5, 81, -71, -52, -54, -12, -55, 127, -125, 125, 53, -61, 61, 47, -66, -12, 25, 115, -24, -56, 95, 8, -20, -6, 4, 72, -45, -103, -52, 39, 123, 13, 9, -79, 99, -62, 84, -2, -41, 55, 125, 17, 126, -38, -80, -83, -28, 99, -26, -30, -18, 122, 92, -91, -128, -27, 4, 27, -39, 36, 117, 4, 120, 9, -24, -72, 84, 124, 25, 100, -40, 32, 63, -97, 119, 10, 73, 8, -46, 61, 56]).buffer },{ "type": "public-key", "id": new Int8Array([1, 15, 3, 3, 70, 54, 31, -27, -121, 121, 41, 83, -28, -49, 9, -113, -58, 117, -97, 18, 1, 100, -29, 6, -116, -93, 90, -91, 75, -120, -127, 50, 99, -37, -56, -41, 105, 42, 8, -87, -21, 37, -7, 96, -121, -125, -33, 79, 2, -10, 127, -117, 23, 46, 42, 29, 125, 91, 47, -101, 126, 44, 70, -84, -124, -94, -119, -87, 63, -116, 11, -28, 127, 76, -67, 36, -62, 62, -125, -82, 99, 71, 24, 32, -87, 93, 53, 97, -44, 18, -14, 77, 80, 77, 110, -80, -52, 18, 69, 127, 82, -27, -116, 42, -66, -53, -26, -29, 74, 75, 34, -88, -119, 118, -50, -70, -110, -68, -91, -15, 100, 113, 24, 13, -127, 39, -1, -85, 114, -125, 89, 89, -101, 94, -37, 82, -61, 15, -2, 3, -4, 9, 28, -75, -84, 96, 60, 85, -44, -98, -27, -29, 107, -115, -111, -3, -102]).buffer }]',timeout: '60000',},},],},{type: 'HiddenValueCallback',output: [{ name: 'value', value: 'false' },{ name: 'id', value: 'webAuthnOutcome' },],input: [{ name: 'IDToken2', value: 'webAuthnOutcome' }],},]

Const webAuthnAuthMetaCallback70StoredUsername

webAuthnAuthMetaCallback70StoredUsername: object

authId

authId: string = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9 ... "

callbacks

callbacks: ({ output: { name: string; value: object }[]; type: string } | { input: { name: string; value: string }[]; output: { name: string; value: string }[]; type: string })[] = [{type: 'MetadataCallback',output: [{name: 'data',value: {userVerification: 'preferred',_type: 'WebAuthn',challenge: 'OHmmFKfBhrUZKkuZJ84lf9N8TaRmQSjRdZyueeSIXAo=',relyingPartyId: '',allowCredentials: '',timeout: '60000',},},],},{type: 'HiddenValueCallback',output: [{ name: 'value', value: 'false' },{ name: 'id', value: 'webAuthnOutcome' },],input: [{ name: 'IDToken2', value: 'webAuthnOutcome' }],},]

Const webAuthnRegJSCallback653

webAuthnRegJSCallback653: object

authId

authId: string = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9 ... "

callbacks

callbacks: ({ output: { name: string; value: string }[]; type: string } | { input: { name: string; value: string }[]; output: { name: string; value: string }[]; type: string })[] = [{type: 'TextOutputCallback',output: [{name: 'message',value:// eslint-disable-next-line'/*\n * Copyright 2018-2020 ForgeRock AS. All Rights Reserved\n *\n * Use of this code requires a commercial software license with ForgeRock AS.\n * or with one of its affiliates. All use shall be exclusively subject\n * to such license between the licensee and ForgeRock AS.\n */\n\nif (!window.PublicKeyCredential) {\n document.getElementById(\'webAuthnOutcome\').value = "unsupported";\n document.getElementById("loginButton_0").click();\n}\n\nvar publicKey = {\n challenge: new Int8Array([63, -71, 8, -32, 51, 11, 35, -85, -19, -93, -17, 9, -10, 104, 96, -5, -43, -94, 126, 123, 18, 44, -53, 27, 69, -59, -45, -113, 4, -120, -12, -17]).buffer,\n // Relying Party:\n rp: {\n \n name: "ForgeRock"\n },\n // User:\n user: {\n id: Uint8Array.from("sgsP5DNBy2TvEhwnWHu1BFRw2_LQepAdjkOfC1z6nxU", function (c) { return c.charCodeAt(0) }),\n name: "57a5b4e4-6999-4b45-bf86-a4f2e5d4b629",\n displayName: "57a5b4e4-6999-4b45-bf86-a4f2e5d4b629"\n },\n pubKeyCredParams: [ { "type": "public-key", "alg": -7 }, { "type": "public-key", "alg": -257 } ],\n attestation: "none",\n timeout: 60000,\n excludeCredentials: [],\n authenticatorSelection: {"userVerification":"discouraged"}\n};\n\nnavigator.credentials.create({publicKey: publicKey})\n .then(function (newCredentialInfo) {\n var rawId = newCredentialInfo.id;\n var clientData = String.fromCharCode.apply(null, new Uint8Array(newCredentialInfo.response.clientDataJSON));\n var keyData = new Int8Array(newCredentialInfo.response.attestationObject).toString();\n document.getElementById(\'webAuthnOutcome\').value = clientData + "::" + keyData + "::" + rawId;\n document.getElementById("loginButton_0").click();\n }).catch(function (err) {\n document.getElementById(\'webAuthnOutcome\').value = "ERROR" + "::" + err;\n document.getElementById("loginButton_0").click();\n });\n',},{ name: 'messageType', value: '4' },],},{type: 'TextOutputCallback',output: [{name: 'message',value:// eslint-disable-next-line'/*\n * Copyright 2018 ForgeRock AS. All Rights Reserved\n *\n * Use of this code requires a commercial software license with ForgeRock AS.\n * or with one of its affiliates. All use shall be exclusively subject\n * to such license between the licensee and ForgeRock AS.\n *\n */\n\n/*\n * Note:\n *\n * When a ConfirmationCallback is used (e.g. during recovery code use), the XUI does not render a loginButton. However\n * the webAuthn script needs to call loginButton.click() to execute the appropriate data reformatting prior to sending\n * the request into AM. Here we query whether the loginButton exists and add it to the DOM if it doesn\'t.\n */\n\nvar newLocation = document.getElementById("wrapper");\n\nvar script = "<div class=\\"form-group\\">\\n" +\n "<div class=\\"panel panel-default\\">\\n" +\n " <div class=\\"panel-body text-center\\">\\n" +\n " <h4 class=\\"awaiting-response\\"><i class=\\"fa fa-circle-o-notch fa-spin text-primary\\"></i> Waiting for local device... </h4>\\n" +\n " </div>\\n" +\n "</div>\\n";\n\nif (!document.getElementById("loginButton_0")) {\n script += "<input id=\\"loginButton_0\\" role=\\"button\\" type=\\"submit\\" hidden>";\n} else {\n document.getElementById("loginButton_0").style.visibility=\'hidden\';\n}\n\nscript += "</div>";\n\nnewLocation.getElementsByTagName("fieldset")[0].innerHTML += script;\ndocument.body.appendChild(newLocation);',},{ name: 'messageType', value: '4' },],},{type: 'HiddenValueCallback',output: [{ name: 'value', value: 'false' },{ name: 'id', value: 'webAuthnOutcome' },],input: [{ name: 'IDToken3', value: 'webAuthnOutcome' }],},]

Const webAuthnRegJSCallback70

webAuthnRegJSCallback70: object

authId

authId: string = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9 ... "

callbacks

callbacks: ({ output: { name: string; value: string }[]; type: string } | { input: { name: string; value: string }[]; output: { name: string; value: string }[]; type: string })[] = [{type: 'TextOutputCallback',output: [{name: 'message',value:// eslint-disable-next-line'/*\n * Copyright 2018-2020 ForgeRock AS. All Rights Reserved\n *\n * Use of this code requires a commercial software license with ForgeRock AS.\n * or with one of its affiliates. All use shall be exclusively subject\n * to such license between the licensee and ForgeRock AS.\n */\n\nif (!window.PublicKeyCredential) {\n document.getElementById(\'webAuthnOutcome\').value = "unsupported";\n document.getElementById("loginButton_0").click();\n}\n\nvar publicKey = {\n challenge: new Int8Array([87, -95, 18, -17, -59, -3, -72, -9, -109, 77, -66, 67, 101, -59, -29, -92, -31, -58, 117, -14, 3, -123, 1, -54, -69, -122, 44, 111, 30, 49, 12, 81]).buffer,\n // Relying Party:\n rp: {\n id: "https://user.example.com:3002",\n name: "ForgeRock"\n },\n // User:\n user: {\n id: Uint8Array.from("NTdhNWI0ZTQtNjk5OS00YjQ1LWJmODYtYTRmMmU1ZDRiNjI5", function (c) { return c.charCodeAt(0) }),\n name: "57a5b4e4-6999-4b45-bf86-a4f2e5d4b629",\n displayName: "57a5b4e4-6999-4b45-bf86-a4f2e5d4b629"\n },\n pubKeyCredParams: [ { "type": "public-key", "alg": -257 }, { "type": "public-key", "alg": -7 } ],\n attestation: "none",\n timeout: 60000,\n excludeCredentials: [{ "type": "public-key", "id": new Int8Array([49, -96, -107, 113, 106, 5, 115, 22, 68, 121, -85, -27, 8, -58, -113, 127, -105, -37, -10, -12, -58, -25, 29, -82, -18, 69, -99, 125, 33, 82, 38, -66, -27, -128, -91, -86, 87, 68, 94, 0, -78, 70, -11, -70, -14, -53, 38, -60, 46, 27, 66, 46, 21, -125, -70, 123, -46, -124, 86, -2, 102, 70, -52, 54]).buffer },{ "type": "public-key", "id": new Int8Array([64, 17, -15, -123, -21, 127, 76, -120, 90, -112, -5, 54, 105, 93, 82, -104, -79, 107, -69, -3, -113, -94, -59, -4, 126, -33, 117, 32, -44, 122, -97, 8, -112, 105, -96, 96, 90, 44, -128, -121, 107, 79, -98, -68, -93, 11, -105, -47, 102, 13, 110, 84, 59, -91, -30, 37, -3, -22, 39, 111, -10, 87, -50, -35]).buffer }],\n authenticatorSelection: {"userVerification":"preferred"}\n};\n\nnavigator.credentials.create({publicKey: publicKey})\n .then(function (newCredentialInfo) {\n var rawId = newCredentialInfo.id;\n var clientData = String.fromCharCode.apply(null, new Uint8Array(newCredentialInfo.response.clientDataJSON));\n var keyData = new Int8Array(newCredentialInfo.response.attestationObject).toString();\n document.getElementById(\'webAuthnOutcome\').value = clientData + "::" + keyData + "::" + rawId;\n document.getElementById("loginButton_0").click();\n }).catch(function (err) {\n document.getElementById(\'webAuthnOutcome\').value = "ERROR" + "::" + err;\n document.getElementById("loginButton_0").click();\n });',},{ name: 'messageType', value: '4' },],},{type: 'TextOutputCallback',output: [{name: 'message',value:// eslint-disable-next-line'/*\n * Copyright 2018 ForgeRock AS. All Rights Reserved\n *\n * Use of this code requires a commercial software license with ForgeRock AS.\n * or with one of its affiliates. All use shall be exclusively subject\n * to such license between the licensee and ForgeRock AS.\n *\n */\n\n/*\n * Note:\n *\n * When a ConfirmationCallback is used (e.g. during recovery code use), the XUI does not render a loginButton. However\n * the webAuthn script needs to call loginButton.click() to execute the appropriate data reformatting prior to sending\n * the request into AM. Here we query whether the loginButton exists and add it to the DOM if it doesn\'t.\n */\n\nvar newLocation = document.getElementById("wrapper");\n\nvar script = "<div class=\\"form-group\\">\\n" +\n "<div class=\\"panel panel-default\\">\\n" +\n " <div class=\\"panel-body text-center\\">\\n" +\n " <h4 class=\\"awaiting-response\\"><i class=\\"fa fa-circle-o-notch fa-spin text-primary\\"></i> Waiting for local device... </h4>\\n" +\n " </div>\\n" +\n "</div>\\n";\n\nif (!document.getElementById("loginButton_0")) {\n script += "<input id=\\"loginButton_0\\" role=\\"button\\" type=\\"submit\\" hidden>";\n} else {\n document.getElementById("loginButton_0").style.visibility=\'hidden\';\n}\n\nscript += "</div>";\n\nnewLocation.getElementsByTagName("fieldset")[0].innerHTML += script;\ndocument.body.appendChild(newLocation);',},{ name: 'messageType', value: '4' },],},{type: 'HiddenValueCallback',output: [{ name: 'value', value: 'false' },{ name: 'id', value: 'webAuthnOutcome' },],input: [{ name: 'IDToken3', value: 'webAuthnOutcome' }],},]

Const webAuthnRegJSCallback70StoredUsername

webAuthnRegJSCallback70StoredUsername: object

authId

authId: string = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9 ... "

callbacks

callbacks: ({ output: { name: string; value: string }[]; type: string } | { input: { name: string; value: string }[]; output: { name: string; value: string }[]; type: string })[] = [{type: 'TextOutputCallback',output: [{name: 'message',value:// eslint-disable-next-line'/*\n * Copyright 2018-2020 ForgeRock AS. All Rights Reserved\n *\n * Use of this code requires a commercial software license with ForgeRock AS.\n * or with one of its affiliates. All use shall be exclusively subject\n * to such license between the licensee and ForgeRock AS.\n */\n\nif (!window.PublicKeyCredential) {\n document.getElementById(\'webAuthnOutcome\').value = "unsupported";\n document.getElementById("loginButton_0").click();\n}\n\nvar publicKey = {\n challenge: new Int8Array([-90, -30, 14, -111, 43, -115, -125, 43, -96, 124, -109, -1, -100, -64, -52, -56, -15, -9, 41, 22, -111, -116, -65, -88, 108, -60, -58, 53, 62, -66, -34, 104]).buffer,\n // Relying Party:\n rp: {\n \n name: "ForgeRock"\n },\n // User:\n user: {\n id: Uint8Array.from("NTdhNWI0ZTQtNjk5OS00YjQ1LWJmODYtYTRmMmU1ZDRiNjI5", function (c) { return c.charCodeAt(0) }),\n name: "57a5b4e4-6999-4b45-bf86-a4f2e5d4b629",\n displayName: "57a5b4e4-6999-4b45-bf86-a4f2e5d4b629"\n },\n pubKeyCredParams: [ { "type": "public-key", "alg": -257 }, { "type": "public-key", "alg": -7 } ],\n attestation: "none",\n timeout: 60000,\n excludeCredentials: [],\n authenticatorSelection: {"userVerification":"preferred","requireResidentKey":true}\n};\n\nnavigator.credentials.create({publicKey: publicKey})\n .then(function (newCredentialInfo) {\n var rawId = newCredentialInfo.id;\n var clientData = String.fromCharCode.apply(null, new Uint8Array(newCredentialInfo.response.clientDataJSON));\n var keyData = new Int8Array(newCredentialInfo.response.attestationObject).toString();\n document.getElementById(\'webAuthnOutcome\').value = clientData + "::" + keyData + "::" + rawId;\n document.getElementById("loginButton_0").click();\n }).catch(function (err) {\n document.getElementById(\'webAuthnOutcome\').value = "ERROR" + "::" + err;\n document.getElementById("loginButton_0").click();\n });',},{ name: 'messageType', value: '4' },],},{type: 'TextOutputCallback',output: [{name: 'message',value:// eslint-disable-next-line'/*\n * Copyright 2018 ForgeRock AS. All Rights Reserved\n *\n * Use of this code requires a commercial software license with ForgeRock AS.\n * or with one of its affiliates. All use shall be exclusively subject\n * to such license between the licensee and ForgeRock AS.\n *\n */\n\n/*\n * Note:\n *\n * When a ConfirmationCallback is used (e.g. during recovery code use), the XUI does not render a loginButton. However\n * the webAuthn script needs to call loginButton.click() to execute the appropriate data reformatting prior to sending\n * the request into AM. Here we query whether the loginButton exists and add it to the DOM if it doesn\'t.\n */\n\nvar newLocation = document.getElementById("wrapper");\n\nvar script = "<div class=\\"form-group\\">\\n" +\n "<div class=\\"panel panel-default\\">\\n" +\n " <div class=\\"panel-body text-center\\">\\n" +\n " <h4 class=\\"awaiting-response\\"><i class=\\"fa fa-circle-o-notch fa-spin text-primary\\"></i> Waiting for local device... </h4>\\n" +\n " </div>\\n" +\n "</div>\\n";\n\nif (!document.getElementById("loginButton_0")) {\n script += "<input id=\\"loginButton_0\\" role=\\"button\\" type=\\"submit\\" hidden>";\n} else {\n document.getElementById("loginButton_0").style.visibility=\'hidden\';\n}\n\nscript += "</div>";\n\nnewLocation.getElementsByTagName("fieldset")[0].innerHTML += script;\ndocument.body.appendChild(newLocation);',},{ name: 'messageType', value: '4' },],},{type: 'HiddenValueCallback',output: [{ name: 'value', value: 'false' },{ name: 'id', value: 'webAuthnOutcome' },],input: [{ name: 'IDToken3', value: 'webAuthnOutcome' }],},]

Const webAuthnRegMetaCallback70

webAuthnRegMetaCallback70: object

authId

authId: string = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9 ... "

callbacks

callbacks: ({ output: { name: string; value: object }[]; type: string } | { input: { name: string; value: string }[]; output: { name: string; value: string }[]; type: string })[] = [{type: 'MetadataCallback',output: [{name: 'data',value: {relyingPartyName: 'ForgeRock',attestationPreference: 'none',displayName: '57a5b4e4-6999-4b45-bf86-a4f2e5d4b629',_type: 'WebAuthn',relyingPartyId: '',userName: '57a5b4e4-6999-4b45-bf86-a4f2e5d4b629',authenticatorSelection: '{"userVerification":"preferred"}',userId: 'NTdhNWI0ZTQtNjk5OS00YjQ1LWJmODYtYTRmMmU1ZDRiNjI5',timeout: '60000',excludeCredentials: '',pubKeyCredParams:'[ { "type": "public-key", "alg": -257 }, { "type": "public-key", "alg": -7 } ]',challenge: 'PiIwSUMSo5qN7ahxaBVzWCHnpIxiWZPBix3PDI4/O8k=',},},],},{type: 'HiddenValueCallback',output: [{ name: 'value', value: 'false' },{ name: 'id', value: 'webAuthnOutcome' },],input: [{ name: 'IDToken2', value: 'webAuthnOutcome' }],},]

Const webAuthnRegMetaCallback70StoredUsername

webAuthnRegMetaCallback70StoredUsername: object

authId

authId: string = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9 ... "

callbacks

callbacks: ({ output: { name: string; value: object }[]; type: string } | { input: { name: string; value: string }[]; output: { name: string; value: string }[]; type: string })[] = [{type: 'MetadataCallback',output: [{name: 'data',value: {relyingPartyName: 'ForgeRock',attestationPreference: 'none',displayName: '57a5b4e4-6999-4b45-bf86-a4f2e5d4b629',_type: 'WebAuthn',relyingPartyId: '',userName: '57a5b4e4-6999-4b45-bf86-a4f2e5d4b629',authenticatorSelection: '{"userVerification":"preferred","requireResidentKey":true}',userId: 'NTdhNWI0ZTQtNjk5OS00YjQ1LWJmODYtYTRmMmU1ZDRiNjI5',timeout: '60000',excludeCredentials: '',pubKeyCredParams:'[ { "type": "public-key", "alg": -257 }, { "type": "public-key", "alg": -7 } ]',challenge: 'DfZ7CvBgBaApXZgcqSb+7/yA5ih/yRHhpDzrrWLMtZc=',},},],},{type: 'HiddenValueCallback',output: [{ name: 'value', value: 'false' },{ name: 'id', value: 'webAuthnOutcome' },],input: [{ name: 'IDToken2', value: 'webAuthnOutcome' }],},]