Files
lfleischmann eec7a473a5 feat: add third party integrations
add third party integrations
2023-02-23 13:05:05 +01:00

336 lines
12 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title> lib/Dto.ts</title>
<script src="https://cdn.jsdelivr.net/gh/google/code-prettify@master/loader/run_prettify.js"></script>
<script src="https://unpkg.com/@babel/standalone/babel.min.js"></script>
<script src="./build/entry.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link href="https://fonts.googleapis.com/css?family=Roboto:100,400,700|Inconsolata,700" rel="stylesheet">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.6.3/css/all.css" integrity="sha384-UHRtZLI+pbxtHCWp1t77Bi1L4ZtiqrqD80Kn4Z8NTSRyMA2Fd33n5dQ8lWUE00s/" crossorigin="anonymous">
<link type="text/css" rel="stylesheet" href="https://jmblog.github.io/color-themes-for-google-code-prettify/themes/tomorrow-night.min.css">
<link type="text/css" rel="stylesheet" href="styles/app.min.css">
<link type="text/css" rel="stylesheet" href="styles/iframe.css">
<link type="text/css" rel="stylesheet" href="">
<script async defer src="https://buttons.github.io/buttons.js"></script>
</head>
<body class="layout small-header">
<div id="stickyNavbarOverlay"></div>
<div class="top-nav">
<div class="inner">
<a id="hamburger" role="button" class="navbar-burger" aria-label="menu" aria-expanded="false">
<span aria-hidden="true"></span>
<span aria-hidden="true"></span>
<span aria-hidden="true"></span>
</a>
<div class="logo">
</div>
<div class="menu">
<div class="navigation">
<a
href="index.html"
class="link"
>
Documentation
</a>
</div>
</div>
</div>
</div>
<div id="main">
<div
class="sidebar "
id="sidebarNav"
>
<nav>
<h2><a href="index.html">Documentation</a></h2><div class="category"><h3>Classes</h3><ul><li><a href="Hanko.html">Hanko</a></li></ul></div><div class="category"><h2>SDK</h2><h3>Classes / Internal</h3><ul><li><a href="Client.html">Client</a></li><li><a href="Headers.html">Headers</a></li><li><a href="HttpClient.html">HttpClient</a></li><li><a href="PasscodeState.html">PasscodeState</a></li><li><a href="PasswordState.html">PasswordState</a></li><li><a href="Response.html">Response</a></li><li><a href="State.html">State</a></li><li><a href="UserState.html">UserState</a></li><li><a href="WebauthnState.html">WebauthnState</a></li></ul><h3>Classes / Clients</h3><ul><li><a href="ConfigClient.html">ConfigClient</a></li><li><a href="EmailClient.html">EmailClient</a></li><li><a href="PasscodeClient.html">PasscodeClient</a></li><li><a href="PasswordClient.html">PasswordClient</a></li><li><a href="ThirdPartyClient.html">ThirdPartyClient</a></li><li><a href="UserClient.html">UserClient</a></li><li><a href="WebauthnClient.html">WebauthnClient</a></li></ul><h3>Classes / Errors</h3><ul><li><a href="ConflictError.html">ConflictError</a></li><li><a href="EmailAddressAlreadyExistsError.html">EmailAddressAlreadyExistsError</a></li><li><a href="HankoError.html">HankoError</a></li><li><a href="InvalidPasscodeError.html">InvalidPasscodeError</a></li><li><a href="InvalidPasswordError.html">InvalidPasswordError</a></li><li><a href="InvalidWebauthnCredentialError.html">InvalidWebauthnCredentialError</a></li><li><a href="MaxNumOfEmailAddressesReachedError.html">MaxNumOfEmailAddressesReachedError</a></li><li><a href="MaxNumOfPasscodeAttemptsReachedError.html">MaxNumOfPasscodeAttemptsReachedError</a></li><li><a href="NotFoundError.html">NotFoundError</a></li><li><a href="PasscodeExpiredError.html">PasscodeExpiredError</a></li><li><a href="RequestTimeoutError.html">RequestTimeoutError</a></li><li><a href="TechnicalError.html">TechnicalError</a></li><li><a href="ThirdPartyError.html">ThirdPartyError</a></li><li><a href="TooManyRequestsError.html">TooManyRequestsError</a></li><li><a href="UnauthorizedError.html">UnauthorizedError</a></li><li><a href="UserVerificationError.html">UserVerificationError</a></li><li><a href="WebauthnRequestCancelledError.html">WebauthnRequestCancelledError</a></li></ul><h3>Classes / Utilities</h3><ul><li><a href="WebauthnSupport.html">WebauthnSupport</a></li></ul><h3>Interfaces / DTO</h3><ul><li><a href="Config.html">Config</a></li><li><a href="Credential.html">Credential</a></li><li><a href="Email.html">Email</a></li><li><a href="EmailConfig.html">EmailConfig</a></li><li><a href="Emails.html">Emails</a></li><li><a href="Identity.html">Identity</a></li><li><a href="Passcode.html">Passcode</a></li><li><a href="PasswordConfig.html">PasswordConfig</a></li><li><a href="User.html">User</a></li><li><a href="UserInfo.html">UserInfo</a></li><li><a href="WebauthnCredential.html">WebauthnCredential</a></li><li><a href="WebauthnCredentials.html">WebauthnCredentials</a></li><li><a href="WebauthnFinalized.html">WebauthnFinalized</a></li><li><a href="WebauthnTransports.html">WebauthnTransports</a></li></ul><h3>Interfaces / Internal</h3><ul><li><a href="LocalStorage.html">LocalStorage</a></li><li><a href="LocalStoragePasscode.html">LocalStoragePasscode</a></li><li><a href="LocalStoragePassword.html">LocalStoragePassword</a></li><li><a href="LocalStorageUser.html">LocalStorageUser</a></li><li><a href="LocalStorageUsers.html">LocalStorageUsers</a></li><li><a href="LocalStorageWebauthn.html">LocalStorageWebauthn</a></li></ul></div>
</nav>
</div>
<div class="core" id="main-content-wrapper">
<div class="content">
<header class="page-title">
<p>Source</p>
<h1>lib/Dto.ts</h1>
</header>
<section>
<article>
<pre class="prettyprint source linenums"><code>import { PublicKeyCredentialWithAttestationJSON } from "@github/webauthn-json";
/**
* @interface
* @category SDK
* @subcategory DTO
* @property {boolean} enabled - Indicates passwords are enabled, so the API accepts login attempts using passwords.
* @property {number} min_password_length - The minimum length of a password. To be used for password validation.
*/
interface PasswordConfig {
enabled: boolean;
min_password_length: number;
}
/**
* @interface
* @category SDK
* @subcategory DTO
* @property {boolean} require_verification - Indicates that email addresses must be verified.
* @property {number} max_num_of_addresses - The maximum number of email addresses a user can have.
*/
interface EmailConfig {
require_verification: boolean;
max_num_of_addresses: number;
}
/**
* @interface
* @category SDK
* @subcategory DTO
* @property {PasswordConfig} password - The password configuration.
* @property {EmailConfig} emails - The email configuration.
* @property {string[]} providers - The enabled third party providers.
*/
interface Config {
password: PasswordConfig;
emails: EmailConfig;
providers: string[];
}
/**
* @interface
* @category SDK
* @subcategory DTO
* @property {string} credential_id - The ID of the credential that was used.
* @property {string} user_id - The ID of the user that was used.
*/
interface WebauthnFinalized {
credential_id: string;
user_id: string;
}
/**
* @interface
* @category SDK
* @subcategory DTO
* @property {string} id - The UUID of the user.
* @property {boolean} verified - Indicates whether the user's email address is verified.
* @property {string} email_id - The UUID of the email address.
* @property {boolean} has_webauthn_credential - Indicates that the user has registered a WebAuthn credential in the past.
*/
interface UserInfo {
id: string;
verified: boolean;
email_id: string;
has_webauthn_credential: boolean;
}
/**
* @interface
* @category SDK
* @subcategory DTO
* @property {string} id - The UUID of the current user.
* @ignore
*/
interface Me {
id: string;
}
/**
* @interface
* @category SDK
* @subcategory DTO
* @property {string} id - The WebAuthn credential ID.
*/
interface Credential {
id: string;
}
/**
* @interface
* @category SDK
* @subcategory DTO
* @property {string} id - The user's UUID.
* @property {string} email - The user's email.
* @property {Credential[]} webauthn_credentials - A list of credentials that have been registered.
*/
interface User {
id: string;
email_id: string;
webauthn_credentials: Credential[];
}
/**
* @interface
* @category SDK
* @subcategory DTO
* @property {string} id - The UUID of the passcode.
* @property {number} ttl - How long the code is active in seconds.
*/
interface Passcode {
id: string;
ttl: number;
}
/**
* @interface
* @category SDK
* @subcategory DTO
* @property {string[]} - Transports which may be used by the authenticator. E.g. "internal", "ble",...
*/
interface WebauthnTransports extends Array&lt;string> {}
/**
* @interface
* @category SDK
* @subcategory DTO
* @property {WebauthnTransports} transports
* @ignore
*/
interface Attestation extends PublicKeyCredentialWithAttestationJSON {
transports: WebauthnTransports;
}
/**
* @interface
* @category SDK
* @subcategory DTO
* @property {string} id - The UUID of the email address.
* @property {string} address - The email address.
* @property {boolean} is_verified - Indicates whether the email address is verified.
* @property {boolean} is_primary - Indicates it's the primary email address.
* @property {Identity} identity - Indicates that this email is linked to a third party account.
*/
interface Email {
id: string;
address: string;
is_verified: boolean;
is_primary: boolean;
identity: Identity;
}
/**
* @interface
* @category SDK
* @subcategory DTO
* @property {Email[]} - A list of emails assigned to the current user.
*/
interface Emails extends Array&lt;Email> {}
/**
* @interface
* @category SDK
* @subcategory DTO
* @property {string} id - The credential id.
* @property {string=} name - The credential name.
* @property {string} public_key - The public key.
* @property {string} attestation_type - The attestation type.
* @property {string} aaguid - The AAGUID of the authenticator.
* @property {string} created_at - Time of credential creation.
* @property {WebauthnTransports} transports
*/
interface WebauthnCredential {
id: string;
name?: string;
public_key: string;
attestation_type: string;
aaguid: string;
created_at: string;
transports: WebauthnTransports;
}
/**
* @interface
* @category SDK
* @subcategory DTO
* @property {WebauthnCredential[]} - A list of WebAuthn credential assigned to the current user.
*/
interface WebauthnCredentials extends Array&lt;WebauthnCredential> {}
/**
* @interface
* @category SDK
* @subcategory DTO
* @property {id} - The subject ID with the third party provider.
* @property {provider} - The third party provider name.
*/
interface Identity {
id: string,
provider: string
}
export type {
PasswordConfig,
Config,
WebauthnFinalized,
Credential,
UserInfo,
Me,
User,
Email,
Emails,
Passcode,
Attestation,
WebauthnCredential,
WebauthnCredentials,
Identity,
};
</code></pre>
</article>
</section>
</div>
<footer class="footer">
<div class="content has-text-centered">
<p>Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 3.6.11</a></p>
<p class="sidebar-created-by">
<a href="https://github.com/SoftwareBrothers/better-docs" target="_blank">BetterDocs theme</a> provided with <i class="fas fa-heart"></i> by
<a href="http://softwarebrothers.co" target="_blank">SoftwareBrothers - JavaScript Development Agency</a>
</p>
</div>
</footer>
</div>
<div id="side-nav" class="side-nav">
</div>
</div>
<script src="scripts/app.min.js"></script>
<script>PR.prettyPrint();</script>
<script src="scripts/linenumber.js"> </script>
</body>
</html>