Packages
plinth
0.5.7
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 { Ok, Error } from "./gleam.mjs";
export function fromNavigator() {
const credentials = globalThis?.navigator?.credentials
if (globalThis.CredentialsContainer && credentials instanceof CredentialsContainer) {
return new Ok(credentials)
} else {
return new 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 new Ok(globalThis.PublicKeyCredential.parseCreationOptionsFromJSON(options))
} catch (error) {
return new Error(`${error}`)
}
}
export function parseRequestOptionsFromJSON(options) {
try {
return new Ok(globalThis.PublicKeyCredential.parseRequestOptionsFromJSON(options))
} catch (error) {
return new 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 new Ok(await container.create({ publicKey: options }))
} catch (error) {
return new 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 new Ok(await container.get({ publicKey: options }))
} catch (error) {
return new Error(`${error}`)
}
}