Packages
plinth
0.9.2
0.10.2
0.10.1
0.10.0
0.9.3
0.9.2
0.9.1
0.9.0
0.8.2
0.8.1
0.8.0
0.7.2
0.7.1
0.7.0
0.6.1
0.6.0
0.5.9
0.5.8
0.5.7
0.5.6
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.15
0.4.14
0.4.13
0.4.12
0.4.11
0.4.10
0.4.9
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.0
0.2.0
0.1.13
0.1.12
0.1.11
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
Bindings to Node.js and browser platform APIs
Current section
Files
Jump to
Current section
Files
src/plinth_browser_credentials_ffi.mjs
import { Result$Ok, Result$Error } from "./gleam.mjs";
export function fromNavigator() {
const credentials = globalThis?.navigator?.credentials
if (globalThis.CredentialsContainer && credentials instanceof CredentialsContainer) {
return Result$Ok(credentials)
} else {
return Result$Error()
}
}
export async function isConditionalMediationAvailable() {
if (
globalThis.PublicKeyCredential &&
PublicKeyCredential.isConditionalMediationAvailable
) {
return await PublicKeyCredential.isConditionalMediationAvailable();
}
return false
}
export async function isUserVerifyingPlatformAuthenticatorAvailable() {
if (
globalThis.PublicKeyCredential &&
PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable
) {
return await PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable();
}
return false
}
export function parseCreationOptionsFromJSON(options) {
try {
return Result$Ok(globalThis.PublicKeyCredential.parseCreationOptionsFromJSON(options))
} catch (error) {
return Result$Error(`${error}`)
}
}
export function parseRequestOptionsFromJSON(options) {
try {
return Result$Ok(globalThis.PublicKeyCredential.parseRequestOptionsFromJSON(options))
} catch (error) {
return Result$Error(`${error}`)
}
}
export function authenticatorAttachment(credential) {
return credential.authenticatorAttachment
}
export function id(credential) {
return credential.id
}
export function rawId(credential) {
return credential.rawId
}
// on response
export function clientDataJSON(credential) {
return credential.response.clientDataJSON
}
export function attestationObject(credential) {
return credential.response.attestationObject
}
export function getAuthenticatorData(credential) {
return credential.response.getAuthenticatorData()
}
export function getPublicKey(credential) {
return credential.response.getPublicKey()
}
export function getPublicKeyAlgorithm(credential) {
return credential.response.getPublicKeyAlgorithm()
}
export function getTransports(credential) {
return credential.response.getTransports()
}
export function authenticatorData(credential) {
return credential.response.authenticatorData
}
export function signature(credential) {
return credential.response.signature
}
export function userHandle(credential) {
return credential.response.userHandle
}
export function toJSON(credential) {
return credential.toJSON()
}
export async function createForPublicKey(container, options) {
try {
return Result$Ok(await container.create({ publicKey: options }))
} catch (error) {
return Result$Error(`${error}`)
}
}
export function JSONObject(entries) {
const output = {}
for (const [k, v] of entries) {
if (v == null || v == undefined) {
continue
} else {
output[k] = v
}
}
return output
}
export async function getForPublicKey(container, options) {
try {
return Result$Ok(await container.get({ publicKey: options }))
} catch (error) {
return Result$Error(`${error}`)
}
}