@yielded/auth 0.1.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +18 -0
- package/dist/Atom.d.mts +5 -0
- package/dist/Atom.mjs +5 -0
- package/dist/Auth.d.mts +9 -0
- package/dist/Auth.mjs +7 -0
- package/dist/AuthContract.d.mts +4 -0
- package/dist/AuthContract.mjs +4 -0
- package/dist/AuthSession.d.mts +82 -0
- package/dist/AuthSession.mjs +138 -0
- package/dist/AuthSession.mjs.map +1 -0
- package/dist/AuthStore.d.mts +68 -0
- package/dist/AuthStore.mjs +194 -0
- package/dist/AuthStore.mjs.map +1 -0
- package/dist/AuthTokenCodec.d.mts +40 -0
- package/dist/AuthTokenCodec.mjs +104 -0
- package/dist/AuthTokenCodec.mjs.map +1 -0
- package/dist/Client.d.mts +2 -0
- package/dist/Client.mjs +2 -0
- package/dist/Cloudflare.d.mts +89 -0
- package/dist/Cloudflare.mjs +166 -0
- package/dist/Cloudflare.mjs.map +1 -0
- package/dist/Drizzle.d.mts +28 -0
- package/dist/Drizzle.mjs +27 -0
- package/dist/DrizzleD1.d.mts +935 -0
- package/dist/DrizzleD1.mjs +29 -0
- package/dist/DrizzleD1.mjs.map +1 -0
- package/dist/DrizzleLibsql.d.mts +2288 -0
- package/dist/DrizzleLibsql.mjs +85 -0
- package/dist/DrizzleLibsql.mjs.map +1 -0
- package/dist/DrizzleMysql2.d.mts +1809 -0
- package/dist/DrizzleMysql2.mjs +55 -0
- package/dist/DrizzleMysql2.mjs.map +1 -0
- package/dist/DrizzlePglite.d.mts +1808 -0
- package/dist/DrizzlePglite.mjs +45 -0
- package/dist/DrizzlePglite.mjs.map +1 -0
- package/dist/DrizzlePostgres.d.mts +1808 -0
- package/dist/DrizzlePostgres.mjs +45 -0
- package/dist/DrizzlePostgres.mjs.map +1 -0
- package/dist/DrizzleSqliteBun.d.mts +2287 -0
- package/dist/DrizzleSqliteBun.mjs +62 -0
- package/dist/DrizzleSqliteBun.mjs.map +1 -0
- package/dist/DrizzleSqliteDo.d.mts +2343 -0
- package/dist/DrizzleSqliteDo.mjs +105 -0
- package/dist/DrizzleSqliteDo.mjs.map +1 -0
- package/dist/DrizzleSqliteNode.d.mts +2287 -0
- package/dist/DrizzleSqliteNode.mjs +62 -0
- package/dist/DrizzleSqliteNode.mjs.map +1 -0
- package/dist/DrizzleSqliteWasm.d.mts +2287 -0
- package/dist/DrizzleSqliteWasm.mjs +62 -0
- package/dist/DrizzleSqliteWasm.mjs.map +1 -0
- package/dist/Email.d.mts +12 -0
- package/dist/Email.mjs +11 -0
- package/dist/EmailOtp.d.mts +42 -0
- package/dist/EmailOtp.mjs +120 -0
- package/dist/EmailOtp.mjs.map +1 -0
- package/dist/EmailOtpSender.d.mts +22 -0
- package/dist/EmailOtpSender.mjs +18 -0
- package/dist/EmailOtpSender.mjs.map +1 -0
- package/dist/Errors.d.mts +55 -0
- package/dist/Errors.mjs +31 -0
- package/dist/Errors.mjs.map +1 -0
- package/dist/GitHub.d.mts +5 -0
- package/dist/GitHub.mjs +4 -0
- package/dist/Hooks.d.mts +6 -0
- package/dist/Hooks.mjs +6 -0
- package/dist/Http.d.mts +12 -0
- package/dist/Http.mjs +12 -0
- package/dist/HttpServer.d.mts +103 -0
- package/dist/HttpServer.mjs +326 -0
- package/dist/HttpServer.mjs.map +1 -0
- package/dist/Identity.d.mts +9 -0
- package/dist/Identity.mjs +9 -0
- package/dist/IdentityResolver.d.mts +16 -0
- package/dist/IdentityResolver.mjs +12 -0
- package/dist/IdentityResolver.mjs.map +1 -0
- package/dist/OAuth.d.mts +36 -0
- package/dist/OAuth.mjs +35 -0
- package/dist/OpenIdClient.d.mts +3 -0
- package/dist/OpenIdClient.mjs +3 -0
- package/dist/OpenIdClientConnected.d.mts +4 -0
- package/dist/OpenIdClientConnected.mjs +3 -0
- package/dist/OperationHttp.d.mts +3 -0
- package/dist/OperationHttp.mjs +3 -0
- package/dist/OperationHttpClient.d.mts +2 -0
- package/dist/OperationHttpClient.mjs +2 -0
- package/dist/OperationHttpServer.d.mts +5 -0
- package/dist/OperationHttpServer.mjs +4 -0
- package/dist/Operations.d.mts +8 -0
- package/dist/Operations.mjs +8 -0
- package/dist/Passkey.d.mts +12 -0
- package/dist/Passkey.mjs +12 -0
- package/dist/PasskeyBrowser.d.mts +4 -0
- package/dist/PasskeyBrowser.mjs +4 -0
- package/dist/PasskeyContract.d.mts +641 -0
- package/dist/PasskeyContract.mjs +174 -0
- package/dist/PasskeyContract.mjs.map +1 -0
- package/dist/PasskeyPassword.d.mts +412 -0
- package/dist/PasskeyPassword.mjs +174 -0
- package/dist/PasskeyPassword.mjs.map +1 -0
- package/dist/PasskeySimpleWebAuthn.d.mts +3 -0
- package/dist/PasskeySimpleWebAuthn.mjs +3 -0
- package/dist/Password.d.mts +19 -0
- package/dist/Password.mjs +17 -0
- package/dist/PasswordAuth.d.mts +45 -0
- package/dist/PasswordAuth.mjs +79 -0
- package/dist/PasswordAuth.mjs.map +1 -0
- package/dist/PasswordCredentialStore.d.mts +46 -0
- package/dist/PasswordCredentialStore.mjs +62 -0
- package/dist/PasswordCredentialStore.mjs.map +1 -0
- package/dist/PasswordHasher.d.mts +31 -0
- package/dist/PasswordHasher.mjs +76 -0
- package/dist/PasswordHasher.mjs.map +1 -0
- package/dist/PhoneOtp.d.mts +11 -0
- package/dist/PhoneOtp.mjs +11 -0
- package/dist/Policy.d.mts +52 -0
- package/dist/Policy.mjs +36 -0
- package/dist/Policy.mjs.map +1 -0
- package/dist/Proofs.d.mts +14 -0
- package/dist/Proofs.mjs +13 -0
- package/dist/Rpc.d.mts +12 -0
- package/dist/Rpc.mjs +11 -0
- package/dist/Rpc.mjs.map +1 -0
- package/dist/Schema.d.mts +160 -0
- package/dist/Schema.mjs +141 -0
- package/dist/Schema.mjs.map +1 -0
- package/dist/SessionContract.d.mts +3 -0
- package/dist/SessionContract.mjs +3 -0
- package/dist/Sessions.d.mts +14 -0
- package/dist/Sessions.mjs +12 -0
- package/dist/Testing.d.mts +7 -0
- package/dist/Testing.mjs +7 -0
- package/dist/Totp.d.mts +8 -0
- package/dist/Totp.mjs +8 -0
- package/dist/TotpContract.d.mts +318 -0
- package/dist/TotpContract.mjs +119 -0
- package/dist/TotpContract.mjs.map +1 -0
- package/dist/WebCrypto.d.mts +28 -0
- package/dist/WebCrypto.mjs +42 -0
- package/dist/WebCrypto.mjs.map +1 -0
- package/dist/Workflows.d.mts +16 -0
- package/dist/Workflows.mjs +11 -0
- package/dist/Workflows.mjs.map +1 -0
- package/dist/atom/AuthAtomLifetime.d.mts +35 -0
- package/dist/atom/AuthAtomLifetime.mjs +50 -0
- package/dist/atom/AuthAtomLifetime.mjs.map +1 -0
- package/dist/atom/AuthAtomWorkflow.d.mts +17 -0
- package/dist/atom/AuthAtomWorkflow.mjs +9 -0
- package/dist/atom/AuthAtomWorkflow.mjs.map +1 -0
- package/dist/atom/client.d.mts +43 -0
- package/dist/atom/client.mjs +168 -0
- package/dist/atom/client.mjs.map +1 -0
- package/dist/atom/operations.d.mts +35 -0
- package/dist/atom/operations.mjs +58 -0
- package/dist/atom/operations.mjs.map +1 -0
- package/dist/atom/scoped-runtime.mjs +151 -0
- package/dist/atom/scoped-runtime.mjs.map +1 -0
- package/dist/auth/Auth.d.mts +7806 -0
- package/dist/auth/Auth.mjs +141 -0
- package/dist/auth/Auth.mjs.map +1 -0
- package/dist/auth/AuthConfigurationError.d.mts +10 -0
- package/dist/auth/AuthConfigurationError.mjs +14 -0
- package/dist/auth/AuthConfigurationError.mjs.map +1 -0
- package/dist/auth/AuthRequest.d.mts +21 -0
- package/dist/auth/AuthRequest.mjs +10 -0
- package/dist/auth/AuthRequest.mjs.map +1 -0
- package/dist/auth/AuthStrategy.d.mts +23 -0
- package/dist/auth/AuthStrategy.mjs +33 -0
- package/dist/auth/AuthStrategy.mjs.map +1 -0
- package/dist/auth/ConsumeDecision.d.mts +11 -0
- package/dist/auth/actions.d.mts +18 -0
- package/dist/auth/actions.mjs +70 -0
- package/dist/auth/actions.mjs.map +1 -0
- package/dist/auth/defaults.mjs +12 -0
- package/dist/auth/defaults.mjs.map +1 -0
- package/dist/auth/definition.d.mts +46 -0
- package/dist/auth/session.d.mts +27 -0
- package/dist/auth/session.mjs +56 -0
- package/dist/auth/session.mjs.map +1 -0
- package/dist/drizzle/D1BatchStatements.d.mts +11 -0
- package/dist/drizzle/D1BatchStatements.mjs +8 -0
- package/dist/drizzle/D1BatchStatements.mjs.map +1 -0
- package/dist/drizzle/PasswordPreparedPostconditions.mjs +12 -0
- package/dist/drizzle/PasswordPreparedPostconditions.mjs.map +1 -0
- package/dist/drizzle/SuppliedService.d.mts +10 -0
- package/dist/drizzle/d1-emails.d.mts +68 -0
- package/dist/drizzle/d1-emails.mjs +580 -0
- package/dist/drizzle/d1-emails.mjs.map +1 -0
- package/dist/drizzle/d1-generated-statement.mjs +79 -0
- package/dist/drizzle/d1-generated-statement.mjs.map +1 -0
- package/dist/drizzle/d1-identity.d.mts +33 -0
- package/dist/drizzle/d1-identity.mjs +120 -0
- package/dist/drizzle/d1-identity.mjs.map +1 -0
- package/dist/drizzle/d1-oauth.d.mts +316 -0
- package/dist/drizzle/d1-oauth.mjs +79 -0
- package/dist/drizzle/d1-oauth.mjs.map +1 -0
- package/dist/drizzle/d1-passkey.d.mts +52 -0
- package/dist/drizzle/d1-passkey.mjs +97 -0
- package/dist/drizzle/d1-passkey.mjs.map +1 -0
- package/dist/drizzle/d1-password-prepared.d.mts +27 -0
- package/dist/drizzle/d1-password-prepared.mjs +464 -0
- package/dist/drizzle/d1-password-prepared.mjs.map +1 -0
- package/dist/drizzle/d1-passwords.d.mts +96 -0
- package/dist/drizzle/d1-passwords.mjs +1008 -0
- package/dist/drizzle/d1-passwords.mjs.map +1 -0
- package/dist/drizzle/d1-phone.d.mts +29 -0
- package/dist/drizzle/d1-phone.mjs +33 -0
- package/dist/drizzle/d1-phone.mjs.map +1 -0
- package/dist/drizzle/d1-planning.d.mts +12 -0
- package/dist/drizzle/d1-planning.mjs +43 -0
- package/dist/drizzle/d1-planning.mjs.map +1 -0
- package/dist/drizzle/d1-proofs.d.mts +88 -0
- package/dist/drizzle/d1-proofs.mjs +833 -0
- package/dist/drizzle/d1-proofs.mjs.map +1 -0
- package/dist/drizzle/d1-sessions.d.mts +77 -0
- package/dist/drizzle/d1-sessions.mjs +970 -0
- package/dist/drizzle/d1-sessions.mjs.map +1 -0
- package/dist/drizzle/d1-totp.d.mts +27 -0
- package/dist/drizzle/d1-totp.mjs +28 -0
- package/dist/drizzle/d1-totp.mjs.map +1 -0
- package/dist/drizzle/email-model.d.mts +352 -0
- package/dist/drizzle/email-model.mjs +21 -0
- package/dist/drizzle/email-model.mjs.map +1 -0
- package/dist/drizzle/email-registration.d.mts +33 -0
- package/dist/drizzle/email-registration.mjs +238 -0
- package/dist/drizzle/email-registration.mjs.map +1 -0
- package/dist/drizzle/email-sql.d.mts +18 -0
- package/dist/drizzle/email-sql.mjs +473 -0
- package/dist/drizzle/email-sql.mjs.map +1 -0
- package/dist/drizzle/email-target.d.mts +28 -0
- package/dist/drizzle/email-target.mjs +75 -0
- package/dist/drizzle/email-target.mjs.map +1 -0
- package/dist/drizzle/model.d.mts +259 -0
- package/dist/drizzle/model.mjs +81 -0
- package/dist/drizzle/model.mjs.map +1 -0
- package/dist/drizzle/mysql-emails.d.mts +82 -0
- package/dist/drizzle/mysql-emails.mjs +38 -0
- package/dist/drizzle/mysql-emails.mjs.map +1 -0
- package/dist/drizzle/mysql-identity.d.mts +24 -0
- package/dist/drizzle/mysql-identity.mjs +95 -0
- package/dist/drizzle/mysql-identity.mjs.map +1 -0
- package/dist/drizzle/mysql-password-prepared.d.mts +32 -0
- package/dist/drizzle/mysql-password-prepared.mjs +16 -0
- package/dist/drizzle/mysql-password-prepared.mjs.map +1 -0
- package/dist/drizzle/mysql-passwords.d.mts +102 -0
- package/dist/drizzle/mysql-passwords.mjs +38 -0
- package/dist/drizzle/mysql-passwords.mjs.map +1 -0
- package/dist/drizzle/mysql-proofs.d.mts +83 -0
- package/dist/drizzle/mysql-proofs.mjs +23 -0
- package/dist/drizzle/mysql-proofs.mjs.map +1 -0
- package/dist/drizzle/mysql-sessions.d.mts +250 -0
- package/dist/drizzle/mysql-sessions.mjs +53 -0
- package/dist/drizzle/mysql-sessions.mjs.map +1 -0
- package/dist/drizzle/mysql.d.mts +73 -0
- package/dist/drizzle/mysql.mjs +221 -0
- package/dist/drizzle/mysql.mjs.map +1 -0
- package/dist/drizzle/oauth-accounts.mjs +361 -0
- package/dist/drizzle/oauth-accounts.mjs.map +1 -0
- package/dist/drizzle/oauth-connected-access.mjs +210 -0
- package/dist/drizzle/oauth-connected-access.mjs.map +1 -0
- package/dist/drizzle/oauth-connected-collection.mjs +202 -0
- package/dist/drizzle/oauth-connected-collection.mjs.map +1 -0
- package/dist/drizzle/oauth-connected-custody.mjs +146 -0
- package/dist/drizzle/oauth-connected-custody.mjs.map +1 -0
- package/dist/drizzle/oauth-connected-drivers.mjs +78 -0
- package/dist/drizzle/oauth-connected-drivers.mjs.map +1 -0
- package/dist/drizzle/oauth-connected-flow.mjs +248 -0
- package/dist/drizzle/oauth-connected-flow.mjs.map +1 -0
- package/dist/drizzle/oauth-connected-input.mjs +105 -0
- package/dist/drizzle/oauth-connected-input.mjs.map +1 -0
- package/dist/drizzle/oauth-connected-maintenance.mjs +215 -0
- package/dist/drizzle/oauth-connected-maintenance.mjs.map +1 -0
- package/dist/drizzle/oauth-connected-management.mjs +228 -0
- package/dist/drizzle/oauth-connected-management.mjs.map +1 -0
- package/dist/drizzle/oauth-connected-model.d.mts +278 -0
- package/dist/drizzle/oauth-connected-model.mjs +22 -0
- package/dist/drizzle/oauth-connected-model.mjs.map +1 -0
- package/dist/drizzle/oauth-connected-reference.d.mts +17 -0
- package/dist/drizzle/oauth-connected-reference.mjs +53 -0
- package/dist/drizzle/oauth-connected-reference.mjs.map +1 -0
- package/dist/drizzle/oauth-connected-settlement.mjs +117 -0
- package/dist/drizzle/oauth-connected-settlement.mjs.map +1 -0
- package/dist/drizzle/oauth-connected-state.d.mts +16 -0
- package/dist/drizzle/oauth-connected-state.mjs +422 -0
- package/dist/drizzle/oauth-connected-state.mjs.map +1 -0
- package/dist/drizzle/oauth-connected-target.d.mts +114 -0
- package/dist/drizzle/oauth-connected-target.mjs +94 -0
- package/dist/drizzle/oauth-connected-target.mjs.map +1 -0
- package/dist/drizzle/oauth-drivers.mjs +53 -0
- package/dist/drizzle/oauth-drivers.mjs.map +1 -0
- package/dist/drizzle/oauth-flow.d.mts +7 -0
- package/dist/drizzle/oauth-flow.mjs +255 -0
- package/dist/drizzle/oauth-flow.mjs.map +1 -0
- package/dist/drizzle/oauth-input.mjs +130 -0
- package/dist/drizzle/oauth-input.mjs.map +1 -0
- package/dist/drizzle/oauth-model.d.mts +468 -0
- package/dist/drizzle/oauth-model.mjs +49 -0
- package/dist/drizzle/oauth-model.mjs.map +1 -0
- package/dist/drizzle/oauth-mysql.mjs +8 -0
- package/dist/drizzle/oauth-mysql.mjs.map +1 -0
- package/dist/drizzle/oauth-owner.d.mts +4 -0
- package/dist/drizzle/oauth-owner.mjs +10 -0
- package/dist/drizzle/oauth-owner.mjs.map +1 -0
- package/dist/drizzle/oauth-registration.d.mts +8 -0
- package/dist/drizzle/oauth-registration.mjs +375 -0
- package/dist/drizzle/oauth-registration.mjs.map +1 -0
- package/dist/drizzle/oauth-state.mjs +109 -0
- package/dist/drizzle/oauth-state.mjs.map +1 -0
- package/dist/drizzle/oauth-target.d.mts +125 -0
- package/dist/drizzle/oauth-target.mjs +252 -0
- package/dist/drizzle/oauth-target.mjs.map +1 -0
- package/dist/drizzle/passkey-admission.mjs +203 -0
- package/dist/drizzle/passkey-admission.mjs.map +1 -0
- package/dist/drizzle/passkey-credentials.mjs +239 -0
- package/dist/drizzle/passkey-credentials.mjs.map +1 -0
- package/dist/drizzle/passkey-drivers.mjs +34 -0
- package/dist/drizzle/passkey-drivers.mjs.map +1 -0
- package/dist/drizzle/passkey-enrollment.mjs +132 -0
- package/dist/drizzle/passkey-enrollment.mjs.map +1 -0
- package/dist/drizzle/passkey-flow.mjs +436 -0
- package/dist/drizzle/passkey-flow.mjs.map +1 -0
- package/dist/drizzle/passkey-management.mjs +225 -0
- package/dist/drizzle/passkey-management.mjs.map +1 -0
- package/dist/drizzle/passkey-model.d.mts +275 -0
- package/dist/drizzle/passkey-model.mjs +36 -0
- package/dist/drizzle/passkey-model.mjs.map +1 -0
- package/dist/drizzle/passkey-registration-ceremony-model.d.mts +50 -0
- package/dist/drizzle/passkey-registration-ceremony-model.mjs +18 -0
- package/dist/drizzle/passkey-registration-ceremony-model.mjs.map +1 -0
- package/dist/drizzle/passkey-registration-ceremony.mjs +124 -0
- package/dist/drizzle/passkey-registration-ceremony.mjs.map +1 -0
- package/dist/drizzle/passkey-registration-custody.mjs +51 -0
- package/dist/drizzle/passkey-registration-custody.mjs.map +1 -0
- package/dist/drizzle/passkey-registration-write.mjs +205 -0
- package/dist/drizzle/passkey-registration-write.mjs.map +1 -0
- package/dist/drizzle/passkey-state.d.mts +5 -0
- package/dist/drizzle/passkey-state.mjs +207 -0
- package/dist/drizzle/passkey-state.mjs.map +1 -0
- package/dist/drizzle/passkey-target.d.mts +16 -0
- package/dist/drizzle/passkey-target.mjs +174 -0
- package/dist/drizzle/passkey-target.mjs.map +1 -0
- package/dist/drizzle/passkey-write-drivers.mjs +33 -0
- package/dist/drizzle/passkey-write-drivers.mjs.map +1 -0
- package/dist/drizzle/passkey-write-model.d.mts +192 -0
- package/dist/drizzle/passkey-write-model.mjs +13 -0
- package/dist/drizzle/passkey-write-model.mjs.map +1 -0
- package/dist/drizzle/passkey-write-state.mjs +326 -0
- package/dist/drizzle/passkey-write-state.mjs.map +1 -0
- package/dist/drizzle/passkey-write-target.d.mts +14 -0
- package/dist/drizzle/passkey-write-target.mjs +185 -0
- package/dist/drizzle/passkey-write-target.mjs.map +1 -0
- package/dist/drizzle/password-model.d.mts +330 -0
- package/dist/drizzle/password-model.mjs +22 -0
- package/dist/drizzle/password-model.mjs.map +1 -0
- package/dist/drizzle/password-prepared-model.d.mts +93 -0
- package/dist/drizzle/password-prepared-model.mjs +11 -0
- package/dist/drizzle/password-prepared-model.mjs.map +1 -0
- package/dist/drizzle/password-prepared-sql.mjs +394 -0
- package/dist/drizzle/password-prepared-sql.mjs.map +1 -0
- package/dist/drizzle/password-prepared-state.mjs +107 -0
- package/dist/drizzle/password-prepared-state.mjs.map +1 -0
- package/dist/drizzle/password-prepared-target.d.mts +12 -0
- package/dist/drizzle/password-prepared-target.mjs +57 -0
- package/dist/drizzle/password-prepared-target.mjs.map +1 -0
- package/dist/drizzle/password-registration.d.mts +23 -0
- package/dist/drizzle/password-registration.mjs +136 -0
- package/dist/drizzle/password-registration.mjs.map +1 -0
- package/dist/drizzle/password-sql.d.mts +20 -0
- package/dist/drizzle/password-sql.mjs +702 -0
- package/dist/drizzle/password-sql.mjs.map +1 -0
- package/dist/drizzle/password-target.d.mts +25 -0
- package/dist/drizzle/password-target.mjs +63 -0
- package/dist/drizzle/password-target.mjs.map +1 -0
- package/dist/drizzle/pg-emails.d.mts +83 -0
- package/dist/drizzle/pg-emails.mjs +38 -0
- package/dist/drizzle/pg-emails.mjs.map +1 -0
- package/dist/drizzle/pg-password-prepared.d.mts +33 -0
- package/dist/drizzle/pg-password-prepared.mjs +16 -0
- package/dist/drizzle/pg-password-prepared.mjs.map +1 -0
- package/dist/drizzle/pg-passwords.d.mts +103 -0
- package/dist/drizzle/pg-passwords.mjs +38 -0
- package/dist/drizzle/pg-passwords.mjs.map +1 -0
- package/dist/drizzle/pg-proofs.d.mts +84 -0
- package/dist/drizzle/pg-proofs.mjs +22 -0
- package/dist/drizzle/pg-proofs.mjs.map +1 -0
- package/dist/drizzle/pg-sessions.d.mts +251 -0
- package/dist/drizzle/pg-sessions.mjs +53 -0
- package/dist/drizzle/pg-sessions.mjs.map +1 -0
- package/dist/drizzle/pg.d.mts +88 -0
- package/dist/drizzle/pg.mjs +294 -0
- package/dist/drizzle/pg.mjs.map +1 -0
- package/dist/drizzle/phone-model.d.mts +117 -0
- package/dist/drizzle/phone-model.mjs +39 -0
- package/dist/drizzle/phone-model.mjs.map +1 -0
- package/dist/drizzle/phone-state.mjs +426 -0
- package/dist/drizzle/phone-state.mjs.map +1 -0
- package/dist/drizzle/phone-target.d.mts +19 -0
- package/dist/drizzle/phone-target.mjs +171 -0
- package/dist/drizzle/phone-target.mjs.map +1 -0
- package/dist/drizzle/proof-model.d.mts +287 -0
- package/dist/drizzle/proof-model.mjs +17 -0
- package/dist/drizzle/proof-model.mjs.map +1 -0
- package/dist/drizzle/proof-sql.d.mts +16 -0
- package/dist/drizzle/proof-sql.mjs +618 -0
- package/dist/drizzle/proof-sql.mjs.map +1 -0
- package/dist/drizzle/proof-target.d.mts +17 -0
- package/dist/drizzle/proof-target.mjs +38 -0
- package/dist/drizzle/proof-target.mjs.map +1 -0
- package/dist/drizzle/session-model.d.mts +201 -0
- package/dist/drizzle/session-model.mjs +19 -0
- package/dist/drizzle/session-model.mjs.map +1 -0
- package/dist/drizzle/session-sql.mjs +732 -0
- package/dist/drizzle/session-sql.mjs.map +1 -0
- package/dist/drizzle/session-target.d.mts +37 -0
- package/dist/drizzle/session-target.mjs +47 -0
- package/dist/drizzle/session-target.mjs.map +1 -0
- package/dist/drizzle/sqlite-emails.mjs +45 -0
- package/dist/drizzle/sqlite-emails.mjs.map +1 -0
- package/dist/drizzle/sqlite-identity.mjs +92 -0
- package/dist/drizzle/sqlite-identity.mjs.map +1 -0
- package/dist/drizzle/sqlite-password-prepared.mjs +21 -0
- package/dist/drizzle/sqlite-password-prepared.mjs.map +1 -0
- package/dist/drizzle/sqlite-passwords.mjs +49 -0
- package/dist/drizzle/sqlite-passwords.mjs.map +1 -0
- package/dist/drizzle/sqlite-proofs.mjs +29 -0
- package/dist/drizzle/sqlite-proofs.mjs.map +1 -0
- package/dist/drizzle/sqlite-sessions.mjs +74 -0
- package/dist/drizzle/sqlite-sessions.mjs.map +1 -0
- package/dist/drizzle/sqlite.d.mts +81 -0
- package/dist/drizzle/sqlite.mjs +220 -0
- package/dist/drizzle/sqlite.mjs.map +1 -0
- package/dist/drizzle/standalone-guard.mjs +19 -0
- package/dist/drizzle/standalone-guard.mjs.map +1 -0
- package/dist/drizzle/step-up-model.d.mts +65 -0
- package/dist/drizzle/step-up-model.mjs +9 -0
- package/dist/drizzle/step-up-model.mjs.map +1 -0
- package/dist/drizzle/step-up-state.mjs +34 -0
- package/dist/drizzle/step-up-state.mjs.map +1 -0
- package/dist/drizzle/totp-model.d.mts +85 -0
- package/dist/drizzle/totp-model.mjs +13 -0
- package/dist/drizzle/totp-model.mjs.map +1 -0
- package/dist/drizzle/totp-state.d.mts +39 -0
- package/dist/drizzle/totp-state.mjs +288 -0
- package/dist/drizzle/totp-state.mjs.map +1 -0
- package/dist/drizzle/totp-target.d.mts +16 -0
- package/dist/drizzle/totp-target.mjs +83 -0
- package/dist/drizzle/totp-target.mjs.map +1 -0
- package/dist/drizzle/transaction-execution.d.mts +20 -0
- package/dist/drizzle/transaction-execution.mjs +111 -0
- package/dist/drizzle/transaction-execution.mjs.map +1 -0
- package/dist/drizzle/transaction-mysql.mjs +46 -0
- package/dist/drizzle/transaction-mysql.mjs.map +1 -0
- package/dist/drizzle/transaction-owner.d.mts +6 -0
- package/dist/drizzle/transaction-owner.mjs +252 -0
- package/dist/drizzle/transaction-owner.mjs.map +1 -0
- package/dist/email/EmailActionEvidence.d.mts +33 -0
- package/dist/email/EmailActionEvidence.mjs +15 -0
- package/dist/email/EmailActionEvidence.mjs.map +1 -0
- package/dist/email/EmailAddressPersistence.d.mts +63 -0
- package/dist/email/EmailAddressPersistence.mjs +19 -0
- package/dist/email/EmailAddressPersistence.mjs.map +1 -0
- package/dist/email/EmailIdentifierNotifier.d.mts +30 -0
- package/dist/email/EmailIdentifierNotifier.mjs +31 -0
- package/dist/email/EmailIdentifierNotifier.mjs.map +1 -0
- package/dist/email/EmailReturnTargets.d.mts +19 -0
- package/dist/email/EmailReturnTargets.mjs +29 -0
- package/dist/email/EmailReturnTargets.mjs.map +1 -0
- package/dist/email/EmailSignInTargets.d.mts +20 -0
- package/dist/email/EmailSignInTargets.mjs +12 -0
- package/dist/email/EmailSignInTargets.mjs.map +1 -0
- package/dist/email/addresses.d.mts +33 -0
- package/dist/email/addresses.mjs +404 -0
- package/dist/email/addresses.mjs.map +1 -0
- package/dist/email/definition.d.mts +10153 -0
- package/dist/email/definition.mjs +111 -0
- package/dist/email/definition.mjs.map +1 -0
- package/dist/email/errors.d.mts +15 -0
- package/dist/email/errors.mjs +11 -0
- package/dist/email/errors.mjs.map +1 -0
- package/dist/email/magicLink.d.mts +33 -0
- package/dist/email/magicLink.mjs +58 -0
- package/dist/email/magicLink.mjs.map +1 -0
- package/dist/email/models.d.mts +56 -0
- package/dist/email/models.mjs +31 -0
- package/dist/email/models.mjs.map +1 -0
- package/dist/email/module.d.mts +22296 -0
- package/dist/email/module.mjs +415 -0
- package/dist/email/module.mjs.map +1 -0
- package/dist/email/registration.d.mts +28 -0
- package/dist/email/registration.mjs +243 -0
- package/dist/email/registration.mjs.map +1 -0
- package/dist/email/snapshot.mjs +37 -0
- package/dist/email/snapshot.mjs.map +1 -0
- package/dist/hooks/LifecycleHooks.d.mts +34 -0
- package/dist/hooks/LifecycleHooks.mjs +74 -0
- package/dist/hooks/LifecycleHooks.mjs.map +1 -0
- package/dist/hooks/commit.d.mts +66 -0
- package/dist/hooks/commit.mjs +136 -0
- package/dist/hooks/commit.mjs.map +1 -0
- package/dist/hooks/models.d.mts +51 -0
- package/dist/hooks/models.mjs +87 -0
- package/dist/hooks/models.mjs.map +1 -0
- package/dist/hooks/plugins.d.mts +36 -0
- package/dist/hooks/plugins.mjs +60 -0
- package/dist/hooks/plugins.mjs.map +1 -0
- package/dist/hooks/transactions.d.mts +31 -0
- package/dist/hooks/transactions.mjs +38 -0
- package/dist/hooks/transactions.mjs.map +1 -0
- package/dist/http/auth-api.d.mts +9 -0
- package/dist/http/auth-api.mjs +13 -0
- package/dist/http/auth-api.mjs.map +1 -0
- package/dist/http/auth-contract.d.mts +84 -0
- package/dist/http/auth-contract.mjs +75 -0
- package/dist/http/auth-contract.mjs.map +1 -0
- package/dist/http/auth-http.d.mts +216 -0
- package/dist/http/auth-http.mjs +184 -0
- package/dist/http/auth-http.mjs.map +1 -0
- package/dist/http/endpoints/get-session.d.mts +8 -0
- package/dist/http/endpoints/get-session.mjs +12 -0
- package/dist/http/endpoints/get-session.mjs.map +1 -0
- package/dist/http/endpoints/password-sign-in.d.mts +8 -0
- package/dist/http/endpoints/password-sign-in.mjs +18 -0
- package/dist/http/endpoints/password-sign-in.mjs.map +1 -0
- package/dist/http/endpoints/request-email-otp.d.mts +8 -0
- package/dist/http/endpoints/request-email-otp.mjs +17 -0
- package/dist/http/endpoints/request-email-otp.mjs.map +1 -0
- package/dist/http/endpoints/set-password.d.mts +9 -0
- package/dist/http/endpoints/set-password.mjs +19 -0
- package/dist/http/endpoints/set-password.mjs.map +1 -0
- package/dist/http/endpoints/sign-out.d.mts +6 -0
- package/dist/http/endpoints/sign-out.mjs +7 -0
- package/dist/http/endpoints/sign-out.mjs.map +1 -0
- package/dist/http/endpoints/verify-email-otp.d.mts +9 -0
- package/dist/http/endpoints/verify-email-otp.mjs +18 -0
- package/dist/http/endpoints/verify-email-otp.mjs.map +1 -0
- package/dist/http/models.d.mts +49 -0
- package/dist/http/models.mjs +35 -0
- package/dist/http/models.mjs.map +1 -0
- package/dist/http/security.d.mts +91 -0
- package/dist/http/security.mjs +77 -0
- package/dist/http/security.mjs.map +1 -0
- package/dist/http/session-contract.d.mts +303 -0
- package/dist/http/session-contract.mjs +38 -0
- package/dist/http/session-contract.mjs.map +1 -0
- package/dist/http-operation/OperationHttpInvocation.d.mts +16 -0
- package/dist/http-operation/OperationHttpInvocation.mjs +11 -0
- package/dist/http-operation/OperationHttpInvocation.mjs.map +1 -0
- package/dist/http-operation/OperationHttpServerConfig.d.mts +18 -0
- package/dist/http-operation/OperationHttpServerConfig.mjs +72 -0
- package/dist/http-operation/OperationHttpServerConfig.mjs.map +1 -0
- package/dist/http-operation/auth-client.d.mts +75 -0
- package/dist/http-operation/auth-client.mjs +116 -0
- package/dist/http-operation/auth-client.mjs.map +1 -0
- package/dist/http-operation/client.d.mts +50 -0
- package/dist/http-operation/client.mjs +188 -0
- package/dist/http-operation/client.mjs.map +1 -0
- package/dist/http-operation/configuration-schema.mjs +19 -0
- package/dist/http-operation/configuration-schema.mjs.map +1 -0
- package/dist/http-operation/contract.d.mts +40 -0
- package/dist/http-operation/contract.mjs +37 -0
- package/dist/http-operation/contract.mjs.map +1 -0
- package/dist/http-operation/errors.d.mts +13 -0
- package/dist/http-operation/errors.mjs +31 -0
- package/dist/http-operation/errors.mjs.map +1 -0
- package/dist/http-operation/models.d.mts +32 -0
- package/dist/http-operation/models.mjs +14 -0
- package/dist/http-operation/models.mjs.map +1 -0
- package/dist/http-operation/private.mjs +35 -0
- package/dist/http-operation/private.mjs.map +1 -0
- package/dist/http-operation/security.mjs +58 -0
- package/dist/http-operation/security.mjs.map +1 -0
- package/dist/http-operation/server.d.mts +33 -0
- package/dist/http-operation/server.mjs +268 -0
- package/dist/http-operation/server.mjs.map +1 -0
- package/dist/identity/ExternalIdentityMutation.d.mts +15 -0
- package/dist/identity/ExternalIdentityMutation.mjs +11 -0
- package/dist/identity/ExternalIdentityMutation.mjs.map +1 -0
- package/dist/identity/IdentityMutation.d.mts +22 -0
- package/dist/identity/IdentityMutation.mjs +17 -0
- package/dist/identity/IdentityMutation.mjs.map +1 -0
- package/dist/identity/IdentityRepository.d.mts +20 -0
- package/dist/identity/IdentityRepository.mjs +11 -0
- package/dist/identity/IdentityRepository.mjs.map +1 -0
- package/dist/identity/SubjectLifecycle.d.mts +58 -0
- package/dist/identity/SubjectLifecycle.mjs +43 -0
- package/dist/identity/SubjectLifecycle.mjs.map +1 -0
- package/dist/identity/SubjectProvisioner.d.mts +37 -0
- package/dist/identity/SubjectProvisioner.mjs +20 -0
- package/dist/identity/SubjectProvisioner.mjs.map +1 -0
- package/dist/identity/codecs.d.mts +34 -0
- package/dist/identity/codecs.mjs +40 -0
- package/dist/identity/codecs.mjs.map +1 -0
- package/dist/identity/models.d.mts +62 -0
- package/dist/identity/models.mjs +51 -0
- package/dist/identity/models.mjs.map +1 -0
- package/dist/identity/operations.d.mts +118 -0
- package/dist/identity/operations.mjs +124 -0
- package/dist/identity/operations.mjs.map +1 -0
- package/dist/index.d.mts +23 -0
- package/dist/index.mjs +23 -0
- package/dist/internal/AuthStoreDecisions.d.mts +22 -0
- package/dist/internal/AuthStoreDecisions.mjs +8 -0
- package/dist/internal/AuthStoreDecisions.mjs.map +1 -0
- package/dist/internal/CurrentSession.d.mts +9 -0
- package/dist/internal/CurrentSession.mjs +8 -0
- package/dist/internal/CurrentSession.mjs.map +1 -0
- package/dist/internal/diagnostics.mjs +23 -0
- package/dist/internal/diagnostics.mjs.map +1 -0
- package/dist/oauth/GithubOAuthProvider.d.mts +43 -0
- package/dist/oauth/GithubOAuthProvider.mjs +66 -0
- package/dist/oauth/GithubOAuthProvider.mjs.map +1 -0
- package/dist/oauth/OAuth.d.mts +73 -0
- package/dist/oauth/OAuth.mjs +180 -0
- package/dist/oauth/OAuth.mjs.map +1 -0
- package/dist/oauth/OAuthAccountsPersistence.d.mts +109 -0
- package/dist/oauth/OAuthAccountsPersistence.mjs +12 -0
- package/dist/oauth/OAuthAccountsPersistence.mjs.map +1 -0
- package/dist/oauth/OAuthActionEvidence.d.mts +28 -0
- package/dist/oauth/OAuthActionEvidence.mjs +15 -0
- package/dist/oauth/OAuthActionEvidence.mjs.map +1 -0
- package/dist/oauth/OAuthConnectedActionEvidence.d.mts +22 -0
- package/dist/oauth/OAuthConnectedActionEvidence.mjs +9 -0
- package/dist/oauth/OAuthConnectedActionEvidence.mjs.map +1 -0
- package/dist/oauth/OAuthConnectedPersistence.d.mts +129 -0
- package/dist/oauth/OAuthConnectedPersistence.mjs +12 -0
- package/dist/oauth/OAuthConnectedPersistence.mjs.map +1 -0
- package/dist/oauth/OAuthConnectedProtocol.d.mts +41 -0
- package/dist/oauth/OAuthConnectedProtocol.mjs +13 -0
- package/dist/oauth/OAuthConnectedProtocol.mjs.map +1 -0
- package/dist/oauth/OAuthConnectedRevocations.d.mts +167 -0
- package/dist/oauth/OAuthConnectedRevocations.mjs +21 -0
- package/dist/oauth/OAuthConnectedRevocations.mjs.map +1 -0
- package/dist/oauth/OAuthConnectedTokenProtector.d.mts +24 -0
- package/dist/oauth/OAuthConnectedTokenProtector.mjs +153 -0
- package/dist/oauth/OAuthConnectedTokenProtector.mjs.map +1 -0
- package/dist/oauth/OAuthConnectedTransactionProtector.d.mts +23 -0
- package/dist/oauth/OAuthConnectedTransactionProtector.mjs +37 -0
- package/dist/oauth/OAuthConnectedTransactionProtector.mjs.map +1 -0
- package/dist/oauth/OAuthConnectedUseAuthority.d.mts +22 -0
- package/dist/oauth/OAuthConnectedUseAuthority.mjs +10 -0
- package/dist/oauth/OAuthConnectedUseAuthority.mjs.map +1 -0
- package/dist/oauth/OAuthConnectionStore.d.mts +33 -0
- package/dist/oauth/OAuthConnectionStore.mjs +38 -0
- package/dist/oauth/OAuthConnectionStore.mjs.map +1 -0
- package/dist/oauth/OAuthLinkTransactionProtector.d.mts +25 -0
- package/dist/oauth/OAuthLinkTransactionProtector.mjs +39 -0
- package/dist/oauth/OAuthLinkTransactionProtector.mjs.map +1 -0
- package/dist/oauth/OAuthProtocol.d.mts +33 -0
- package/dist/oauth/OAuthProtocol.mjs +16 -0
- package/dist/oauth/OAuthProtocol.mjs.map +1 -0
- package/dist/oauth/OAuthProvider.d.mts +70 -0
- package/dist/oauth/OAuthProvider.mjs +39 -0
- package/dist/oauth/OAuthProvider.mjs.map +1 -0
- package/dist/oauth/OAuthProviders.d.mts +27 -0
- package/dist/oauth/OAuthProviders.mjs +33 -0
- package/dist/oauth/OAuthProviders.mjs.map +1 -0
- package/dist/oauth/OAuthRegistrationIntents.d.mts +87 -0
- package/dist/oauth/OAuthRegistrationIntents.mjs +19 -0
- package/dist/oauth/OAuthRegistrationIntents.mjs.map +1 -0
- package/dist/oauth/OAuthReturnTargets.d.mts +15 -0
- package/dist/oauth/OAuthReturnTargets.mjs +24 -0
- package/dist/oauth/OAuthReturnTargets.mjs.map +1 -0
- package/dist/oauth/OAuthSignInPersistence.d.mts +68 -0
- package/dist/oauth/OAuthSignInPersistence.mjs +12 -0
- package/dist/oauth/OAuthSignInPersistence.mjs.map +1 -0
- package/dist/oauth/OAuthStateDecisions.d.mts +14 -0
- package/dist/oauth/OAuthStateDecisions.mjs +8 -0
- package/dist/oauth/OAuthStateDecisions.mjs.map +1 -0
- package/dist/oauth/OAuthStateStore.d.mts +35 -0
- package/dist/oauth/OAuthStateStore.mjs +64 -0
- package/dist/oauth/OAuthStateStore.mjs.map +1 -0
- package/dist/oauth/OAuthTransactionProtector.d.mts +26 -0
- package/dist/oauth/OAuthTransactionProtector.mjs +78 -0
- package/dist/oauth/OAuthTransactionProtector.mjs.map +1 -0
- package/dist/oauth/accounts.d.mts +29 -0
- package/dist/oauth/accounts.mjs +515 -0
- package/dist/oauth/accounts.mjs.map +1 -0
- package/dist/oauth/accountsModels.d.mts +463 -0
- package/dist/oauth/accountsModels.mjs +155 -0
- package/dist/oauth/accountsModels.mjs.map +1 -0
- package/dist/oauth/connected.d.mts +442 -0
- package/dist/oauth/connected.mjs +526 -0
- package/dist/oauth/connected.mjs.map +1 -0
- package/dist/oauth/connectedAccess.d.mts +20 -0
- package/dist/oauth/connectedAccess.mjs +279 -0
- package/dist/oauth/connectedAccess.mjs.map +1 -0
- package/dist/oauth/connectedMaintenance.d.mts +19 -0
- package/dist/oauth/connectedMaintenance.mjs +133 -0
- package/dist/oauth/connectedMaintenance.mjs.map +1 -0
- package/dist/oauth/connectedModels.d.mts +2023 -0
- package/dist/oauth/connectedModels.mjs +375 -0
- package/dist/oauth/connectedModels.mjs.map +1 -0
- package/dist/oauth/definition.d.mts +4396 -0
- package/dist/oauth/definition.mjs +120 -0
- package/dist/oauth/definition.mjs.map +1 -0
- package/dist/oauth/errors.d.mts +49 -0
- package/dist/oauth/errors.mjs +42 -0
- package/dist/oauth/errors.mjs.map +1 -0
- package/dist/oauth/github/identity.d.mts +8 -0
- package/dist/oauth/github/identity.mjs +24 -0
- package/dist/oauth/github/identity.mjs.map +1 -0
- package/dist/oauth/github/models.d.mts +34 -0
- package/dist/oauth/github/protocol.d.mts +54 -0
- package/dist/oauth/github/protocol.mjs +204 -0
- package/dist/oauth/github/protocol.mjs.map +1 -0
- package/dist/oauth/openid-client/ProviderRevocation.d.mts +4 -0
- package/dist/oauth/openid-client/ProviderRevocation.mjs +11 -0
- package/dist/oauth/openid-client/ProviderRevocation.mjs.map +1 -0
- package/dist/oauth/openid-client/compatibility.d.mts +1 -0
- package/dist/oauth/openid-client/compatibility.mjs +6 -0
- package/dist/oauth/openid-client/compatibility.mjs.map +1 -0
- package/dist/oauth/openid-client/configuration.mjs +305 -0
- package/dist/oauth/openid-client/configuration.mjs.map +1 -0
- package/dist/oauth/openid-client/connected/configuration.mjs +338 -0
- package/dist/oauth/openid-client/connected/configuration.mjs.map +1 -0
- package/dist/oauth/openid-client/connected/models.d.mts +42 -0
- package/dist/oauth/openid-client/connected/protocol.d.mts +16 -0
- package/dist/oauth/openid-client/connected/protocol.mjs +402 -0
- package/dist/oauth/openid-client/connected/protocol.mjs.map +1 -0
- package/dist/oauth/openid-client/models.d.mts +67 -0
- package/dist/oauth/openid-client/models.mjs +16 -0
- package/dist/oauth/openid-client/models.mjs.map +1 -0
- package/dist/oauth/openid-client/protocol.d.mts +27 -0
- package/dist/oauth/openid-client/protocol.mjs +218 -0
- package/dist/oauth/openid-client/protocol.mjs.map +1 -0
- package/dist/oauth/openid-client/transport.mjs +59 -0
- package/dist/oauth/openid-client/transport.mjs.map +1 -0
- package/dist/oauth/policy.d.mts +18 -0
- package/dist/oauth/policy.mjs +16 -0
- package/dist/oauth/policy.mjs.map +1 -0
- package/dist/oauth/registration.d.mts +24 -0
- package/dist/oauth/registration.mjs +177 -0
- package/dist/oauth/registration.mjs.map +1 -0
- package/dist/oauth/registrationModels.d.mts +152 -0
- package/dist/oauth/registrationModels.mjs +93 -0
- package/dist/oauth/registrationModels.mjs.map +1 -0
- package/dist/oauth/registrationSecrets.mjs +70 -0
- package/dist/oauth/registrationSecrets.mjs.map +1 -0
- package/dist/oauth/schema.d.mts +86 -0
- package/dist/oauth/schema.mjs +81 -0
- package/dist/oauth/schema.mjs.map +1 -0
- package/dist/oauth/signInErrors.d.mts +17 -0
- package/dist/oauth/signInErrors.mjs +16 -0
- package/dist/oauth/signInErrors.mjs.map +1 -0
- package/dist/oauth/signInModels.d.mts +343 -0
- package/dist/oauth/signInModels.mjs +181 -0
- package/dist/oauth/signInModels.mjs.map +1 -0
- package/dist/oauth/signInModule.d.mts +1546 -0
- package/dist/oauth/signInModule.mjs +430 -0
- package/dist/oauth/signInModule.mjs.map +1 -0
- package/dist/oauth/signInSnapshot.mjs +29 -0
- package/dist/oauth/signInSnapshot.mjs.map +1 -0
- package/dist/oauth/transactionEncryption.d.mts +14 -0
- package/dist/oauth/transactionEncryption.mjs +129 -0
- package/dist/oauth/transactionEncryption.mjs.map +1 -0
- package/dist/operations/RequestBindingConfig.d.mts +11 -0
- package/dist/operations/RequestBindingConfig.mjs +10 -0
- package/dist/operations/RequestBindingConfig.mjs.map +1 -0
- package/dist/operations/actions.d.mts +947 -0
- package/dist/operations/actions.mjs +148 -0
- package/dist/operations/actions.mjs.map +1 -0
- package/dist/operations/context.d.mts +63 -0
- package/dist/operations/context.mjs +55 -0
- package/dist/operations/context.mjs.map +1 -0
- package/dist/operations/credentials.d.mts +39 -0
- package/dist/operations/credentials.mjs +60 -0
- package/dist/operations/credentials.mjs.map +1 -0
- package/dist/operations/errors.d.mts +24 -0
- package/dist/operations/errors.mjs +31 -0
- package/dist/operations/errors.mjs.map +1 -0
- package/dist/operations/operation.d.mts +124 -0
- package/dist/operations/operation.mjs +220 -0
- package/dist/operations/operation.mjs.map +1 -0
- package/dist/operations/requestBinding.d.mts +46 -0
- package/dist/operations/requestBinding.mjs +130 -0
- package/dist/operations/requestBinding.mjs.map +1 -0
- package/dist/operations/requestBindingModels.d.mts +13 -0
- package/dist/operations/requestBindingModels.mjs +12 -0
- package/dist/operations/requestBindingModels.mjs.map +1 -0
- package/dist/operations/reveals.d.mts +28 -0
- package/dist/operations/reveals.mjs +88 -0
- package/dist/operations/reveals.mjs.map +1 -0
- package/dist/passkey/PasskeyActionEvidence.d.mts +22 -0
- package/dist/passkey/PasskeyActionEvidence.mjs +9 -0
- package/dist/passkey/PasskeyActionEvidence.mjs.map +1 -0
- package/dist/passkey/PasskeyCredentials.d.mts +16 -0
- package/dist/passkey/PasskeyCredentials.mjs +9 -0
- package/dist/passkey/PasskeyCredentials.mjs.map +1 -0
- package/dist/passkey/PasskeyEnrollmentContext.d.mts +22 -0
- package/dist/passkey/PasskeyEnrollmentContext.mjs +9 -0
- package/dist/passkey/PasskeyEnrollmentContext.mjs.map +1 -0
- package/dist/passkey/PasskeyManagementPersistence.d.mts +106 -0
- package/dist/passkey/PasskeyManagementPersistence.mjs +9 -0
- package/dist/passkey/PasskeyManagementPersistence.mjs.map +1 -0
- package/dist/passkey/PasskeyPersistence.d.mts +63 -0
- package/dist/passkey/PasskeyPersistence.mjs +10 -0
- package/dist/passkey/PasskeyPersistence.mjs.map +1 -0
- package/dist/passkey/PasskeyProtocol.d.mts +38 -0
- package/dist/passkey/PasskeyProtocol.mjs +11 -0
- package/dist/passkey/PasskeyProtocol.mjs.map +1 -0
- package/dist/passkey/actions.d.mts +50 -0
- package/dist/passkey/actions.mjs +376 -0
- package/dist/passkey/actions.mjs.map +1 -0
- package/dist/passkey/browser/PasskeyBrowser.d.mts +18 -0
- package/dist/passkey/browser/PasskeyBrowser.mjs +9 -0
- package/dist/passkey/browser/PasskeyBrowser.mjs.map +1 -0
- package/dist/passkey/browser/models.d.mts +38 -0
- package/dist/passkey/browser/models.mjs +41 -0
- package/dist/passkey/browser/models.mjs.map +1 -0
- package/dist/passkey/browser/simplewebauthn.d.mts +17 -0
- package/dist/passkey/browser/simplewebauthn.mjs +411 -0
- package/dist/passkey/browser/simplewebauthn.mjs.map +1 -0
- package/dist/passkey/definition.d.mts +5626 -0
- package/dist/passkey/definition.mjs +114 -0
- package/dist/passkey/definition.mjs.map +1 -0
- package/dist/passkey/errors.d.mts +20 -0
- package/dist/passkey/errors.mjs +20 -0
- package/dist/passkey/errors.mjs.map +1 -0
- package/dist/passkey/management.mjs +276 -0
- package/dist/passkey/management.mjs.map +1 -0
- package/dist/passkey/models.d.mts +1245 -0
- package/dist/passkey/models.mjs +301 -0
- package/dist/passkey/models.mjs.map +1 -0
- package/dist/passkey/module.d.mts +2132 -0
- package/dist/passkey/module.mjs +174 -0
- package/dist/passkey/module.mjs.map +1 -0
- package/dist/passkey/pending.mjs +99 -0
- package/dist/passkey/pending.mjs.map +1 -0
- package/dist/passkey/policy.d.mts +48 -0
- package/dist/passkey/policy.mjs +77 -0
- package/dist/passkey/policy.mjs.map +1 -0
- package/dist/passkey/registration.mjs +107 -0
- package/dist/passkey/registration.mjs.map +1 -0
- package/dist/passkey/simplewebauthn/configuration.mjs +45 -0
- package/dist/passkey/simplewebauthn/configuration.mjs.map +1 -0
- package/dist/passkey/simplewebauthn/models.d.mts +21 -0
- package/dist/passkey/simplewebauthn/models.mjs +8 -0
- package/dist/passkey/simplewebauthn/models.mjs.map +1 -0
- package/dist/passkey/simplewebauthn/protocol.d.mts +62 -0
- package/dist/passkey/simplewebauthn/protocol.mjs +402 -0
- package/dist/passkey/simplewebauthn/protocol.mjs.map +1 -0
- package/dist/passkey/snapshot.mjs +31 -0
- package/dist/passkey/snapshot.mjs.map +1 -0
- package/dist/passkey/stepUp.mjs +101 -0
- package/dist/passkey/stepUp.mjs.map +1 -0
- package/dist/password/CompromisedPasswords.d.mts +26 -0
- package/dist/password/CompromisedPasswords.mjs +23 -0
- package/dist/password/CompromisedPasswords.mjs.map +1 -0
- package/dist/password/NewPasswordCheck.d.mts +21 -0
- package/dist/password/NewPasswordCheck.mjs +39 -0
- package/dist/password/NewPasswordCheck.mjs.map +1 -0
- package/dist/password/PasswordHashing.d.mts +24 -0
- package/dist/password/PasswordHashing.mjs +96 -0
- package/dist/password/PasswordHashing.mjs.map +1 -0
- package/dist/password/PasswordKdfAdmission.d.mts +19 -0
- package/dist/password/PasswordKdfAdmission.mjs +25 -0
- package/dist/password/PasswordKdfAdmission.mjs.map +1 -0
- package/dist/password/configuration.d.mts +43 -0
- package/dist/password/configuration.mjs +64 -0
- package/dist/password/configuration.mjs.map +1 -0
- package/dist/password/defaults.mjs +13 -0
- package/dist/password/defaults.mjs.map +1 -0
- package/dist/password/encoding.mjs +64 -0
- package/dist/password/encoding.mjs.map +1 -0
- package/dist/password/errors.d.mts +28 -0
- package/dist/password/errors.mjs +25 -0
- package/dist/password/errors.mjs.map +1 -0
- package/dist/password/methods/PasswordActionEvidence.d.mts +38 -0
- package/dist/password/methods/PasswordActionEvidence.mjs +22 -0
- package/dist/password/methods/PasswordActionEvidence.mjs.map +1 -0
- package/dist/password/methods/PasswordPersistence.d.mts +102 -0
- package/dist/password/methods/PasswordPersistence.mjs +13 -0
- package/dist/password/methods/PasswordPersistence.mjs.map +1 -0
- package/dist/password/methods/PasswordPreparedPersistence.d.mts +111 -0
- package/dist/password/methods/contracts.d.mts +43 -0
- package/dist/password/methods/contracts.mjs +33 -0
- package/dist/password/methods/contracts.mjs.map +1 -0
- package/dist/password/methods/definition.d.mts +3813 -0
- package/dist/password/methods/definition.mjs +56 -0
- package/dist/password/methods/definition.mjs.map +1 -0
- package/dist/password/methods/errors.d.mts +15 -0
- package/dist/password/methods/errors.mjs +11 -0
- package/dist/password/methods/errors.mjs.map +1 -0
- package/dist/password/methods/models.d.mts +70 -0
- package/dist/password/methods/models.mjs +44 -0
- package/dist/password/methods/models.mjs.map +1 -0
- package/dist/password/methods/module.d.mts +3567 -0
- package/dist/password/methods/module.mjs +553 -0
- package/dist/password/methods/module.mjs.map +1 -0
- package/dist/password/methods/policy.d.mts +84 -0
- package/dist/password/methods/policy.mjs +80 -0
- package/dist/password/methods/policy.mjs.map +1 -0
- package/dist/password/methods/preparation.mjs +54 -0
- package/dist/password/methods/preparation.mjs.map +1 -0
- package/dist/password/methods/prepared.d.mts +53 -0
- package/dist/password/methods/prepared.mjs +610 -0
- package/dist/password/methods/prepared.mjs.map +1 -0
- package/dist/password/methods/preparedModels.d.mts +1295 -0
- package/dist/password/methods/preparedModels.mjs +278 -0
- package/dist/password/methods/preparedModels.mjs.map +1 -0
- package/dist/password/methods/signIn.d.mts +180 -0
- package/dist/password/methods/signIn.mjs +73 -0
- package/dist/password/methods/signIn.mjs.map +1 -0
- package/dist/password/methods/snapshot.mjs +38 -0
- package/dist/password/methods/snapshot.mjs.map +1 -0
- package/dist/password/methods/verification.mjs +138 -0
- package/dist/password/methods/verification.mjs.map +1 -0
- package/dist/password/models.d.mts +13 -0
- package/dist/password/models.mjs +12 -0
- package/dist/password/models.mjs.map +1 -0
- package/dist/password/policy.d.mts +33 -0
- package/dist/password/policy.mjs +37 -0
- package/dist/password/policy.mjs.map +1 -0
- package/dist/phone/PhoneActionEvidence.d.mts +23 -0
- package/dist/phone/PhoneActionEvidence.mjs +10 -0
- package/dist/phone/PhoneActionEvidence.mjs.map +1 -0
- package/dist/phone/PhoneAdmission.d.mts +29 -0
- package/dist/phone/PhoneAdmission.mjs +10 -0
- package/dist/phone/PhoneAdmission.mjs.map +1 -0
- package/dist/phone/PhoneDeliveryEligibility.d.mts +11 -0
- package/dist/phone/PhoneDeliveryEligibility.mjs +8 -0
- package/dist/phone/PhoneDeliveryEligibility.mjs.map +1 -0
- package/dist/phone/PhonePersistence.d.mts +33 -0
- package/dist/phone/PhonePersistence.mjs +10 -0
- package/dist/phone/PhonePersistence.mjs.map +1 -0
- package/dist/phone/PhoneRequestContext.d.mts +10 -0
- package/dist/phone/PhoneRequestContext.mjs +8 -0
- package/dist/phone/PhoneRequestContext.mjs.map +1 -0
- package/dist/phone/PhoneSignInTargets.d.mts +19 -0
- package/dist/phone/PhoneSignInTargets.mjs +13 -0
- package/dist/phone/PhoneSignInTargets.mjs.map +1 -0
- package/dist/phone/definition.d.mts +7190 -0
- package/dist/phone/definition.mjs +28 -0
- package/dist/phone/definition.mjs.map +1 -0
- package/dist/phone/failure.mjs +23 -0
- package/dist/phone/failure.mjs.map +1 -0
- package/dist/phone/lifecycle.mjs +427 -0
- package/dist/phone/lifecycle.mjs.map +1 -0
- package/dist/phone/lifecycleModels.d.mts +164 -0
- package/dist/phone/lifecycleModels.mjs +91 -0
- package/dist/phone/lifecycleModels.mjs.map +1 -0
- package/dist/phone/models.d.mts +41 -0
- package/dist/phone/models.mjs +29 -0
- package/dist/phone/models.mjs.map +1 -0
- package/dist/phone/module.d.mts +6027 -0
- package/dist/phone/module.mjs +293 -0
- package/dist/phone/module.mjs.map +1 -0
- package/dist/proofs/EmailProofDelivery.d.mts +13 -0
- package/dist/proofs/EmailProofDelivery.mjs +11 -0
- package/dist/proofs/EmailProofDelivery.mjs.map +1 -0
- package/dist/proofs/HostIngressLimiter.d.mts +20 -0
- package/dist/proofs/HostIngressLimiter.mjs +13 -0
- package/dist/proofs/HostIngressLimiter.mjs.map +1 -0
- package/dist/proofs/ProofPersistence.d.mts +140 -0
- package/dist/proofs/ProofPersistence.mjs +13 -0
- package/dist/proofs/ProofPersistence.mjs.map +1 -0
- package/dist/proofs/SmsProofDelivery.d.mts +13 -0
- package/dist/proofs/SmsProofDelivery.mjs +11 -0
- package/dist/proofs/SmsProofDelivery.mjs.map +1 -0
- package/dist/proofs/abuse.d.mts +15 -0
- package/dist/proofs/abuse.mjs +12 -0
- package/dist/proofs/abuse.mjs.map +1 -0
- package/dist/proofs/completion.d.mts +22 -0
- package/dist/proofs/crypto.d.mts +196 -0
- package/dist/proofs/crypto.mjs +189 -0
- package/dist/proofs/crypto.mjs.map +1 -0
- package/dist/proofs/definition.d.mts +335 -0
- package/dist/proofs/definition.mjs +10 -0
- package/dist/proofs/definition.mjs.map +1 -0
- package/dist/proofs/delivery.d.mts +30 -0
- package/dist/proofs/delivery.mjs +26 -0
- package/dist/proofs/delivery.mjs.map +1 -0
- package/dist/proofs/dispatch.d.mts +20 -0
- package/dist/proofs/dispatch.mjs +54 -0
- package/dist/proofs/dispatch.mjs.map +1 -0
- package/dist/proofs/errors.d.mts +21 -0
- package/dist/proofs/errors.mjs +25 -0
- package/dist/proofs/errors.mjs.map +1 -0
- package/dist/proofs/models.d.mts +141 -0
- package/dist/proofs/models.mjs +93 -0
- package/dist/proofs/models.mjs.map +1 -0
- package/dist/proofs/module.d.mts +344 -0
- package/dist/proofs/module.mjs +350 -0
- package/dist/proofs/module.mjs.map +1 -0
- package/dist/proofs/policy.d.mts +152 -0
- package/dist/proofs/policy.mjs +51 -0
- package/dist/proofs/policy.mjs.map +1 -0
- package/dist/sessions/AuthenticationAuthority.d.mts +31 -0
- package/dist/sessions/AuthenticationAuthority.mjs +8 -0
- package/dist/sessions/AuthenticationAuthority.mjs.map +1 -0
- package/dist/sessions/PendingAuthentication.d.mts +108 -0
- package/dist/sessions/PendingAuthentication.mjs +40 -0
- package/dist/sessions/PendingAuthentication.mjs.map +1 -0
- package/dist/sessions/SessionStepUpPersistence.d.mts +152 -0
- package/dist/sessions/SessionStepUpPersistence.mjs +63 -0
- package/dist/sessions/SessionStepUpPersistence.mjs.map +1 -0
- package/dist/sessions/assurance.d.mts +163 -0
- package/dist/sessions/assurance.mjs +95 -0
- package/dist/sessions/assurance.mjs.map +1 -0
- package/dist/sessions/commit.d.mts +13 -0
- package/dist/sessions/configuration.d.mts +46 -0
- package/dist/sessions/configuration.mjs +55 -0
- package/dist/sessions/configuration.mjs.map +1 -0
- package/dist/sessions/contract.d.mts +663 -0
- package/dist/sessions/contract.mjs +174 -0
- package/dist/sessions/contract.mjs.map +1 -0
- package/dist/sessions/crypto.d.mts +24 -0
- package/dist/sessions/crypto.mjs +106 -0
- package/dist/sessions/crypto.mjs.map +1 -0
- package/dist/sessions/definition.d.mts +11 -0
- package/dist/sessions/definition.mjs +10 -0
- package/dist/sessions/definition.mjs.map +1 -0
- package/dist/sessions/errors.d.mts +35 -0
- package/dist/sessions/errors.mjs +34 -0
- package/dist/sessions/errors.mjs.map +1 -0
- package/dist/sessions/invalidation.d.mts +23 -0
- package/dist/sessions/invalidation.mjs +33 -0
- package/dist/sessions/invalidation.mjs.map +1 -0
- package/dist/sessions/models.d.mts +143 -0
- package/dist/sessions/models.mjs +94 -0
- package/dist/sessions/models.mjs.map +1 -0
- package/dist/sessions/module.d.mts +1091 -0
- package/dist/sessions/module.mjs +943 -0
- package/dist/sessions/module.mjs.map +1 -0
- package/dist/sessions/persistence.d.mts +93 -0
- package/dist/sessions/policy.d.mts +80 -0
- package/dist/sessions/policy.mjs +66 -0
- package/dist/sessions/policy.mjs.map +1 -0
- package/dist/testing/conformance/AuthStore.d.mts +11 -0
- package/dist/testing/conformance/AuthStore.mjs +173 -0
- package/dist/testing/conformance/AuthStore.mjs.map +1 -0
- package/dist/testing/conformance/OAuthConnectionStore.d.mts +11 -0
- package/dist/testing/conformance/OAuthConnectionStore.mjs +102 -0
- package/dist/testing/conformance/OAuthConnectionStore.mjs.map +1 -0
- package/dist/testing/conformance/OAuthStateStore.d.mts +11 -0
- package/dist/testing/conformance/OAuthStateStore.mjs +45 -0
- package/dist/testing/conformance/OAuthStateStore.mjs.map +1 -0
- package/dist/testing/conformance/PasswordCredentialStore.d.mts +20 -0
- package/dist/testing/conformance/PasswordCredentialStore.mjs +103 -0
- package/dist/testing/conformance/PasswordCredentialStore.mjs.map +1 -0
- package/dist/testing/conformance/support.mjs +17 -0
- package/dist/testing/conformance/support.mjs.map +1 -0
- package/dist/testing/crypto.d.mts +11 -0
- package/dist/testing/crypto.mjs +41 -0
- package/dist/testing/crypto.mjs.map +1 -0
- package/dist/testing/keyring.d.mts +9 -0
- package/dist/testing/keyring.mjs +17 -0
- package/dist/testing/keyring.mjs.map +1 -0
- package/dist/totp/TotpActionEvidence.d.mts +18 -0
- package/dist/totp/TotpActionEvidence.mjs +8 -0
- package/dist/totp/TotpActionEvidence.mjs.map +1 -0
- package/dist/totp/TotpPersistence.d.mts +19 -0
- package/dist/totp/TotpPersistence.mjs +8 -0
- package/dist/totp/TotpPersistence.mjs.map +1 -0
- package/dist/totp/TotpSecretKeys.d.mts +15 -0
- package/dist/totp/TotpSecretKeys.mjs +8 -0
- package/dist/totp/TotpSecretKeys.mjs.map +1 -0
- package/dist/totp/crypto.mjs +96 -0
- package/dist/totp/crypto.mjs.map +1 -0
- package/dist/totp/definition.d.mts +764 -0
- package/dist/totp/definition.mjs +24 -0
- package/dist/totp/definition.mjs.map +1 -0
- package/dist/totp/errors.d.mts +16 -0
- package/dist/totp/errors.mjs +18 -0
- package/dist/totp/errors.mjs.map +1 -0
- package/dist/totp/models.d.mts +377 -0
- package/dist/totp/models.mjs +137 -0
- package/dist/totp/models.mjs.map +1 -0
- package/dist/totp/module.d.mts +737 -0
- package/dist/totp/module.mjs +355 -0
- package/dist/totp/module.mjs.map +1 -0
- package/package.json +1 -0
- package/src/Atom.ts +4 -0
- package/src/Auth.ts +16 -0
- package/src/AuthContract.ts +17 -0
- package/src/AuthSession.ts +298 -0
- package/src/AuthStore.ts +367 -0
- package/src/AuthTokenCodec.ts +226 -0
- package/src/Client.ts +9 -0
- package/src/Cloudflare.ts +345 -0
- package/src/Drizzle.ts +378 -0
- package/src/DrizzleD1.ts +136 -0
- package/src/DrizzleLibsql.ts +288 -0
- package/src/DrizzleMysql2.ts +184 -0
- package/src/DrizzlePglite.ts +160 -0
- package/src/DrizzlePostgres.ts +160 -0
- package/src/DrizzleSqliteBun.ts +244 -0
- package/src/DrizzleSqliteDo.ts +473 -0
- package/src/DrizzleSqliteNode.ts +245 -0
- package/src/DrizzleSqliteWasm.ts +245 -0
- package/src/Email.ts +55 -0
- package/src/EmailOtp.ts +250 -0
- package/src/EmailOtpSender.ts +28 -0
- package/src/Errors.ts +103 -0
- package/src/GitHub.ts +16 -0
- package/src/Hooks.ts +50 -0
- package/src/Http.ts +47 -0
- package/src/HttpServer.ts +742 -0
- package/src/Identity.ts +53 -0
- package/src/IdentityResolver.ts +18 -0
- package/src/OAuth.ts +242 -0
- package/src/OpenIdClient.ts +13 -0
- package/src/OpenIdClientConnected.ts +18 -0
- package/src/OperationHttp.ts +14 -0
- package/src/OperationHttpClient.ts +6 -0
- package/src/OperationHttpServer.ts +15 -0
- package/src/Operations.ts +69 -0
- package/src/Passkey.ts +81 -0
- package/src/PasskeyBrowser.ts +19 -0
- package/src/PasskeyContract.ts +212 -0
- package/src/PasskeyPassword.ts +319 -0
- package/src/PasskeySimpleWebAuthn.ts +6 -0
- package/src/Password.ts +113 -0
- package/src/PasswordAuth.ts +197 -0
- package/src/PasswordCredentialStore.ts +140 -0
- package/src/PasswordHasher.ts +147 -0
- package/src/PhoneOtp.ts +32 -0
- package/src/Policy.ts +95 -0
- package/src/Proofs.ts +71 -0
- package/src/Rpc.ts +15 -0
- package/src/Schema.ts +235 -0
- package/src/SessionContract.ts +2 -0
- package/src/Sessions.ts +105 -0
- package/src/Testing.ts +24 -0
- package/src/Totp.ts +28 -0
- package/src/TotpContract.ts +147 -0
- package/src/WebCrypto.ts +61 -0
- package/src/Workflows.ts +12 -0
- package/src/atom/AuthAtomLifetime.ts +87 -0
- package/src/atom/AuthAtomWorkflow.ts +27 -0
- package/src/atom/client.ts +364 -0
- package/src/atom/operations.ts +183 -0
- package/src/atom/scoped-runtime.ts +249 -0
- package/src/auth/Auth.ts +482 -0
- package/src/auth/AuthConfigurationError.ts +9 -0
- package/src/auth/AuthRequest.ts +21 -0
- package/src/auth/AuthStrategy.ts +116 -0
- package/src/auth/ConsumeDecision.ts +4 -0
- package/src/auth/actions.ts +220 -0
- package/src/auth/defaults.ts +23 -0
- package/src/auth/definition.ts +88 -0
- package/src/auth/session.ts +146 -0
- package/src/drizzle/D1BatchStatements.ts +10 -0
- package/src/drizzle/PasswordPreparedPostconditions.ts +30 -0
- package/src/drizzle/SuppliedService.ts +10 -0
- package/src/drizzle/d1-emails.ts +1808 -0
- package/src/drizzle/d1-generated-statement.ts +129 -0
- package/src/drizzle/d1-identity.ts +374 -0
- package/src/drizzle/d1-oauth.ts +338 -0
- package/src/drizzle/d1-passkey.ts +371 -0
- package/src/drizzle/d1-password-prepared.ts +1273 -0
- package/src/drizzle/d1-passwords.ts +2661 -0
- package/src/drizzle/d1-phone.ts +94 -0
- package/src/drizzle/d1-planning.ts +105 -0
- package/src/drizzle/d1-proofs.ts +2305 -0
- package/src/drizzle/d1-sessions.ts +2867 -0
- package/src/drizzle/d1-totp.ts +79 -0
- package/src/drizzle/email-model.ts +512 -0
- package/src/drizzle/email-registration.ts +696 -0
- package/src/drizzle/email-sql.ts +1468 -0
- package/src/drizzle/email-target.ts +243 -0
- package/src/drizzle/model.ts +492 -0
- package/src/drizzle/mysql-emails.ts +323 -0
- package/src/drizzle/mysql-identity.ts +323 -0
- package/src/drizzle/mysql-password-prepared.ts +206 -0
- package/src/drizzle/mysql-passwords.ts +341 -0
- package/src/drizzle/mysql-proofs.ts +183 -0
- package/src/drizzle/mysql-sessions.ts +742 -0
- package/src/drizzle/mysql.ts +686 -0
- package/src/drizzle/oauth-accounts.ts +801 -0
- package/src/drizzle/oauth-connected-access.ts +354 -0
- package/src/drizzle/oauth-connected-collection.ts +324 -0
- package/src/drizzle/oauth-connected-custody.ts +277 -0
- package/src/drizzle/oauth-connected-drivers.ts +463 -0
- package/src/drizzle/oauth-connected-flow.ts +439 -0
- package/src/drizzle/oauth-connected-input.ts +128 -0
- package/src/drizzle/oauth-connected-maintenance.ts +345 -0
- package/src/drizzle/oauth-connected-management.ts +365 -0
- package/src/drizzle/oauth-connected-model.ts +347 -0
- package/src/drizzle/oauth-connected-reference.ts +112 -0
- package/src/drizzle/oauth-connected-settlement.ts +226 -0
- package/src/drizzle/oauth-connected-state.ts +846 -0
- package/src/drizzle/oauth-connected-target.ts +264 -0
- package/src/drizzle/oauth-drivers.ts +567 -0
- package/src/drizzle/oauth-flow.ts +461 -0
- package/src/drizzle/oauth-input.ts +205 -0
- package/src/drizzle/oauth-model.ts +610 -0
- package/src/drizzle/oauth-mysql.ts +10 -0
- package/src/drizzle/oauth-owner.ts +29 -0
- package/src/drizzle/oauth-registration.ts +638 -0
- package/src/drizzle/oauth-state.ts +213 -0
- package/src/drizzle/oauth-target.ts +751 -0
- package/src/drizzle/passkey-admission.ts +333 -0
- package/src/drizzle/passkey-credentials.ts +465 -0
- package/src/drizzle/passkey-drivers.ts +385 -0
- package/src/drizzle/passkey-enrollment.ts +280 -0
- package/src/drizzle/passkey-flow.ts +983 -0
- package/src/drizzle/passkey-management.ts +369 -0
- package/src/drizzle/passkey-model.ts +350 -0
- package/src/drizzle/passkey-registration-ceremony-model.ts +69 -0
- package/src/drizzle/passkey-registration-ceremony.ts +254 -0
- package/src/drizzle/passkey-registration-custody.ts +82 -0
- package/src/drizzle/passkey-registration-write.ts +378 -0
- package/src/drizzle/passkey-state.ts +307 -0
- package/src/drizzle/passkey-target.ts +528 -0
- package/src/drizzle/passkey-write-drivers.ts +396 -0
- package/src/drizzle/passkey-write-model.ts +265 -0
- package/src/drizzle/passkey-write-state.ts +627 -0
- package/src/drizzle/passkey-write-target.ts +406 -0
- package/src/drizzle/password-model.ts +491 -0
- package/src/drizzle/password-prepared-model.ts +259 -0
- package/src/drizzle/password-prepared-sql.ts +1198 -0
- package/src/drizzle/password-prepared-state.ts +232 -0
- package/src/drizzle/password-prepared-target.ts +158 -0
- package/src/drizzle/password-registration.ts +372 -0
- package/src/drizzle/password-sql.ts +2082 -0
- package/src/drizzle/password-target.ts +223 -0
- package/src/drizzle/pg-emails.ts +323 -0
- package/src/drizzle/pg-password-prepared.ts +207 -0
- package/src/drizzle/pg-passwords.ts +340 -0
- package/src/drizzle/pg-proofs.ts +193 -0
- package/src/drizzle/pg-sessions.ts +751 -0
- package/src/drizzle/pg.ts +982 -0
- package/src/drizzle/phone-model.ts +185 -0
- package/src/drizzle/phone-state.ts +802 -0
- package/src/drizzle/phone-target.ts +471 -0
- package/src/drizzle/proof-model.ts +398 -0
- package/src/drizzle/proof-sql.ts +1912 -0
- package/src/drizzle/proof-target.ts +120 -0
- package/src/drizzle/session-model.ts +368 -0
- package/src/drizzle/session-sql.ts +2152 -0
- package/src/drizzle/session-target.ts +335 -0
- package/src/drizzle/sqlite-emails.ts +368 -0
- package/src/drizzle/sqlite-identity.ts +343 -0
- package/src/drizzle/sqlite-password-prepared.ts +262 -0
- package/src/drizzle/sqlite-passwords.ts +499 -0
- package/src/drizzle/sqlite-proofs.ts +204 -0
- package/src/drizzle/sqlite-sessions.ts +972 -0
- package/src/drizzle/sqlite.ts +704 -0
- package/src/drizzle/standalone-guard.ts +38 -0
- package/src/drizzle/step-up-model.ts +129 -0
- package/src/drizzle/step-up-state.ts +141 -0
- package/src/drizzle/totp-model.ts +91 -0
- package/src/drizzle/totp-state.ts +520 -0
- package/src/drizzle/totp-target.ts +304 -0
- package/src/drizzle/transaction-execution.ts +290 -0
- package/src/drizzle/transaction-mysql.ts +104 -0
- package/src/drizzle/transaction-owner.ts +570 -0
- package/src/email/EmailActionEvidence.ts +37 -0
- package/src/email/EmailAddressPersistence.ts +71 -0
- package/src/email/EmailIdentifierNotifier.ts +48 -0
- package/src/email/EmailReturnTargets.ts +50 -0
- package/src/email/EmailSignInTargets.ts +20 -0
- package/src/email/addresses.ts +630 -0
- package/src/email/definition.ts +309 -0
- package/src/email/errors.ts +23 -0
- package/src/email/magicLink.ts +84 -0
- package/src/email/models.ts +50 -0
- package/src/email/module.ts +664 -0
- package/src/email/registration.ts +415 -0
- package/src/email/snapshot.ts +51 -0
- package/src/hooks/LifecycleHooks.ts +136 -0
- package/src/hooks/commit.ts +271 -0
- package/src/hooks/models.ts +111 -0
- package/src/hooks/plugins.ts +87 -0
- package/src/hooks/transactions.ts +51 -0
- package/src/http/auth-api.ts +17 -0
- package/src/http/auth-contract.ts +148 -0
- package/src/http/auth-http.ts +467 -0
- package/src/http/endpoints/get-session.ts +9 -0
- package/src/http/endpoints/password-sign-in.ts +19 -0
- package/src/http/endpoints/request-email-otp.ts +10 -0
- package/src/http/endpoints/set-password.ts +18 -0
- package/src/http/endpoints/sign-out.ts +5 -0
- package/src/http/endpoints/verify-email-otp.ts +15 -0
- package/src/http/models.ts +80 -0
- package/src/http/security.ts +102 -0
- package/src/http/session-contract.ts +92 -0
- package/src/http-operation/OperationHttpInvocation.ts +39 -0
- package/src/http-operation/OperationHttpServerConfig.ts +124 -0
- package/src/http-operation/auth-client.ts +273 -0
- package/src/http-operation/client.ts +453 -0
- package/src/http-operation/configuration-schema.ts +19 -0
- package/src/http-operation/contract.ts +116 -0
- package/src/http-operation/errors.ts +38 -0
- package/src/http-operation/models.ts +42 -0
- package/src/http-operation/private.ts +50 -0
- package/src/http-operation/security.ts +93 -0
- package/src/http-operation/server.ts +544 -0
- package/src/identity/ExternalIdentityMutation.ts +18 -0
- package/src/identity/IdentityMutation.ts +41 -0
- package/src/identity/IdentityRepository.ts +37 -0
- package/src/identity/SubjectLifecycle.ts +80 -0
- package/src/identity/SubjectProvisioner.ts +40 -0
- package/src/identity/codecs.ts +54 -0
- package/src/identity/models.ts +82 -0
- package/src/identity/operations.ts +182 -0
- package/src/index.ts +23 -0
- package/src/internal/AuthStoreDecisions.ts +23 -0
- package/src/internal/CurrentSession.ts +8 -0
- package/src/internal/diagnostics.ts +71 -0
- package/src/oauth/GithubOAuthProvider.ts +106 -0
- package/src/oauth/OAuth.ts +436 -0
- package/src/oauth/OAuthAccountsPersistence.ts +142 -0
- package/src/oauth/OAuthActionEvidence.ts +31 -0
- package/src/oauth/OAuthConnectedActionEvidence.ts +28 -0
- package/src/oauth/OAuthConnectedPersistence.ts +163 -0
- package/src/oauth/OAuthConnectedProtocol.ts +54 -0
- package/src/oauth/OAuthConnectedRevocations.ts +48 -0
- package/src/oauth/OAuthConnectedTokenProtector.ts +240 -0
- package/src/oauth/OAuthConnectedTransactionProtector.ts +56 -0
- package/src/oauth/OAuthConnectedUseAuthority.ts +26 -0
- package/src/oauth/OAuthConnectionStore.ts +59 -0
- package/src/oauth/OAuthLinkTransactionProtector.ts +58 -0
- package/src/oauth/OAuthProtocol.ts +39 -0
- package/src/oauth/OAuthProvider.ts +126 -0
- package/src/oauth/OAuthProviders.ts +53 -0
- package/src/oauth/OAuthRegistrationIntents.ts +42 -0
- package/src/oauth/OAuthReturnTargets.ts +44 -0
- package/src/oauth/OAuthSignInPersistence.ts +91 -0
- package/src/oauth/OAuthStateDecisions.ts +16 -0
- package/src/oauth/OAuthStateStore.ts +102 -0
- package/src/oauth/OAuthTransactionProtector.ts +103 -0
- package/src/oauth/accounts.ts +987 -0
- package/src/oauth/accountsModels.ts +214 -0
- package/src/oauth/connected.ts +995 -0
- package/src/oauth/connectedAccess.ts +644 -0
- package/src/oauth/connectedMaintenance.ts +248 -0
- package/src/oauth/connectedModels.ts +495 -0
- package/src/oauth/definition.ts +414 -0
- package/src/oauth/errors.ts +78 -0
- package/src/oauth/github/identity.ts +26 -0
- package/src/oauth/github/models.ts +37 -0
- package/src/oauth/github/protocol.ts +329 -0
- package/src/oauth/openid-client/ProviderRevocation.ts +22 -0
- package/src/oauth/openid-client/compatibility.ts +47 -0
- package/src/oauth/openid-client/configuration.ts +472 -0
- package/src/oauth/openid-client/connected/configuration.ts +565 -0
- package/src/oauth/openid-client/connected/models.ts +58 -0
- package/src/oauth/openid-client/connected/protocol.ts +866 -0
- package/src/oauth/openid-client/models.ts +78 -0
- package/src/oauth/openid-client/protocol.ts +437 -0
- package/src/oauth/openid-client/transport.ts +67 -0
- package/src/oauth/policy.ts +26 -0
- package/src/oauth/registration.ts +410 -0
- package/src/oauth/registrationModels.ts +115 -0
- package/src/oauth/registrationSecrets.ts +127 -0
- package/src/oauth/schema.ts +102 -0
- package/src/oauth/signInErrors.ts +23 -0
- package/src/oauth/signInModels.ts +266 -0
- package/src/oauth/signInModule.ts +875 -0
- package/src/oauth/signInSnapshot.ts +37 -0
- package/src/oauth/transactionEncryption.ts +198 -0
- package/src/operations/RequestBindingConfig.ts +12 -0
- package/src/operations/actions.ts +342 -0
- package/src/operations/context.ts +130 -0
- package/src/operations/credentials.ts +121 -0
- package/src/operations/errors.ts +53 -0
- package/src/operations/operation.ts +740 -0
- package/src/operations/requestBinding.ts +237 -0
- package/src/operations/requestBindingModels.ts +18 -0
- package/src/operations/reveals.ts +147 -0
- package/src/passkey/PasskeyActionEvidence.ts +25 -0
- package/src/passkey/PasskeyCredentials.ts +16 -0
- package/src/passkey/PasskeyEnrollmentContext.ts +26 -0
- package/src/passkey/PasskeyManagementPersistence.ts +124 -0
- package/src/passkey/PasskeyPersistence.ts +85 -0
- package/src/passkey/PasskeyProtocol.ts +48 -0
- package/src/passkey/actions.ts +905 -0
- package/src/passkey/browser/PasskeyBrowser.ts +26 -0
- package/src/passkey/browser/models.ts +67 -0
- package/src/passkey/browser/simplewebauthn.ts +621 -0
- package/src/passkey/definition.ts +386 -0
- package/src/passkey/errors.ts +39 -0
- package/src/passkey/management.ts +552 -0
- package/src/passkey/models.ts +414 -0
- package/src/passkey/module.ts +367 -0
- package/src/passkey/pending.ts +203 -0
- package/src/passkey/policy.ts +88 -0
- package/src/passkey/registration.ts +251 -0
- package/src/passkey/simplewebauthn/configuration.ts +97 -0
- package/src/passkey/simplewebauthn/models.ts +9 -0
- package/src/passkey/simplewebauthn/protocol.ts +729 -0
- package/src/passkey/snapshot.ts +48 -0
- package/src/passkey/stepUp.ts +212 -0
- package/src/password/CompromisedPasswords.ts +36 -0
- package/src/password/NewPasswordCheck.ts +89 -0
- package/src/password/PasswordHashing.ts +209 -0
- package/src/password/PasswordKdfAdmission.ts +44 -0
- package/src/password/configuration.ts +52 -0
- package/src/password/defaults.ts +15 -0
- package/src/password/encoding.ts +137 -0
- package/src/password/errors.ts +43 -0
- package/src/password/methods/PasswordActionEvidence.ts +41 -0
- package/src/password/methods/PasswordPersistence.ts +128 -0
- package/src/password/methods/PasswordPreparedPersistence.ts +123 -0
- package/src/password/methods/contracts.ts +47 -0
- package/src/password/methods/definition.ts +199 -0
- package/src/password/methods/errors.ts +26 -0
- package/src/password/methods/models.ts +80 -0
- package/src/password/methods/module.ts +986 -0
- package/src/password/methods/policy.ts +68 -0
- package/src/password/methods/preparation.ts +73 -0
- package/src/password/methods/prepared.ts +1199 -0
- package/src/password/methods/preparedModels.ts +496 -0
- package/src/password/methods/signIn.ts +136 -0
- package/src/password/methods/snapshot.ts +53 -0
- package/src/password/methods/verification.ts +266 -0
- package/src/password/models.ts +15 -0
- package/src/password/policy.ts +41 -0
- package/src/phone/PhoneActionEvidence.ts +26 -0
- package/src/phone/PhoneAdmission.ts +29 -0
- package/src/phone/PhoneDeliveryEligibility.ts +9 -0
- package/src/phone/PhonePersistence.ts +43 -0
- package/src/phone/PhoneRequestContext.ts +7 -0
- package/src/phone/PhoneSignInTargets.ts +19 -0
- package/src/phone/definition.ts +87 -0
- package/src/phone/failure.ts +40 -0
- package/src/phone/lifecycle.ts +662 -0
- package/src/phone/lifecycleModels.ts +108 -0
- package/src/phone/models.ts +41 -0
- package/src/phone/module.ts +433 -0
- package/src/proofs/EmailProofDelivery.ts +19 -0
- package/src/proofs/HostIngressLimiter.ts +20 -0
- package/src/proofs/ProofPersistence.ts +172 -0
- package/src/proofs/SmsProofDelivery.ts +19 -0
- package/src/proofs/abuse.ts +23 -0
- package/src/proofs/completion.ts +23 -0
- package/src/proofs/crypto.ts +326 -0
- package/src/proofs/definition.ts +39 -0
- package/src/proofs/delivery.ts +73 -0
- package/src/proofs/dispatch.ts +99 -0
- package/src/proofs/errors.ts +46 -0
- package/src/proofs/models.ts +131 -0
- package/src/proofs/module.ts +620 -0
- package/src/proofs/policy.ts +77 -0
- package/src/sessions/AuthenticationAuthority.ts +51 -0
- package/src/sessions/PendingAuthentication.ts +121 -0
- package/src/sessions/SessionStepUpPersistence.ts +164 -0
- package/src/sessions/assurance.ts +192 -0
- package/src/sessions/commit.ts +13 -0
- package/src/sessions/configuration.ts +133 -0
- package/src/sessions/contract.ts +203 -0
- package/src/sessions/crypto.ts +181 -0
- package/src/sessions/definition.ts +25 -0
- package/src/sessions/errors.ts +68 -0
- package/src/sessions/invalidation.ts +46 -0
- package/src/sessions/models.ts +138 -0
- package/src/sessions/module.ts +1991 -0
- package/src/sessions/persistence.ts +135 -0
- package/src/sessions/policy.ts +103 -0
- package/src/testing/conformance/AuthStore.ts +314 -0
- package/src/testing/conformance/OAuthConnectionStore.ts +167 -0
- package/src/testing/conformance/OAuthStateStore.ts +105 -0
- package/src/testing/conformance/PasswordCredentialStore.ts +205 -0
- package/src/testing/conformance/support.ts +38 -0
- package/src/testing/crypto.ts +55 -0
- package/src/testing/keyring.ts +17 -0
- package/src/totp/TotpActionEvidence.ts +18 -0
- package/src/totp/TotpPersistence.ts +26 -0
- package/src/totp/TotpSecretKeys.ts +15 -0
- package/src/totp/crypto.ts +160 -0
- package/src/totp/definition.ts +78 -0
- package/src/totp/errors.ts +25 -0
- package/src/totp/models.ts +164 -0
- package/src/totp/module.ts +717 -0
|
@@ -0,0 +1,2132 @@
|
|
|
1
|
+
import { AssuranceRequired, AuthenticationRequired, InvalidOperationInput, OperationForbidden, OperationPrivateOutputUnsupported } from "../operations/errors.mjs";
|
|
2
|
+
import { AuthInvocation, AuthenticationAssurance } from "../operations/context.mjs";
|
|
3
|
+
import { AuthCredentialCommandCollector, AuthOperationResult, AuthRevealCommandCollectorService } from "../operations/credentials.mjs";
|
|
4
|
+
import { AuthOperation, CredentialCollectorProvenance, OperationHandler, RevealCollectorProvenance } from "../operations/operation.mjs";
|
|
5
|
+
import { AuthenticationEvidence } from "../sessions/models.mjs";
|
|
6
|
+
import { LastSignInMethod } from "../identity/models.mjs";
|
|
7
|
+
import { HookDenied } from "../hooks/models.mjs";
|
|
8
|
+
import { LifecycleHooks } from "../hooks/LifecycleHooks.mjs";
|
|
9
|
+
import { PreparedCommit } from "../hooks/commit.mjs";
|
|
10
|
+
import { AuthenticationAuthority } from "../sessions/AuthenticationAuthority.mjs";
|
|
11
|
+
import { SubtleCrypto } from "../WebCrypto.mjs";
|
|
12
|
+
import { RequestBindingConfig } from "../operations/RequestBindingConfig.mjs";
|
|
13
|
+
import { RequestBindingFlowId, RequestBindingPublic } from "../operations/requestBindingModels.mjs";
|
|
14
|
+
import { BindingModule, RequestBindingConfiguration, RequestBindingConfigurationError, RequestBindingInvalid, RequestBindingUnavailable, VerifiedRequestBinding } from "../operations/requestBinding.mjs";
|
|
15
|
+
import "../Operations.mjs";
|
|
16
|
+
import "../Hooks.mjs";
|
|
17
|
+
import { SessionApiError } from "../auth/session.mjs";
|
|
18
|
+
import { AuthRequest } from "../auth/AuthRequest.mjs";
|
|
19
|
+
import { AuthConfigurationError } from "../auth/AuthConfigurationError.mjs";
|
|
20
|
+
import "../Auth.mjs";
|
|
21
|
+
import { ModuleService, makeSessionModule } from "../sessions/module.mjs";
|
|
22
|
+
import "../Sessions.mjs";
|
|
23
|
+
import "../Identity.mjs";
|
|
24
|
+
import { PasskeyAuthenticationStarted, PasskeyBegin, PasskeyCeremony, PasskeyClaim, PasskeyCleanupResult, PasskeyComplete, PasskeyCredential, PasskeyRegistrationComplete, PasskeyRegistrationResult, PasskeyRegistrationStarted, PasskeyRegistrationVerified, PasskeyTarget } from "./models.mjs";
|
|
25
|
+
import { PasskeyActionRequired, PasskeyConfigurationError, PasskeyFailure, PasskeyMethodUnsupported, PasskeyRejected, PasskeyUnavailable } from "./errors.mjs";
|
|
26
|
+
import { PasskeyCredentials } from "./PasskeyCredentials.mjs";
|
|
27
|
+
import { PasskeyEnrollmentContext } from "./PasskeyEnrollmentContext.mjs";
|
|
28
|
+
import { PasskeyManagementPolicy, PasskeyMethodPolicy } from "./policy.mjs";
|
|
29
|
+
import { PasskeyPersistence, PreparePasskeyCommit } from "./PasskeyPersistence.mjs";
|
|
30
|
+
import { PasskeyManagementPersistence } from "./PasskeyManagementPersistence.mjs";
|
|
31
|
+
import { PasskeyActionEvidence } from "./PasskeyActionEvidence.mjs";
|
|
32
|
+
import { PasskeyProtocol } from "./PasskeyProtocol.mjs";
|
|
33
|
+
import { Context, DateTime, Effect, Layer, Schema, Types } from "effect";
|
|
34
|
+
//#region src/passkey/module.d.ts
|
|
35
|
+
type PasskeyConfiguration = {
|
|
36
|
+
readonly policy: PasskeyMethodPolicy;
|
|
37
|
+
readonly relyingParty?: never;
|
|
38
|
+
} | {
|
|
39
|
+
readonly policy?: never;
|
|
40
|
+
readonly relyingParty: {
|
|
41
|
+
readonly id: string;
|
|
42
|
+
readonly name: string;
|
|
43
|
+
readonly origins: readonly string[];
|
|
44
|
+
readonly developmentLocalhost?: boolean;
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
/** Descriptors capture policy data once; invalid policies remain typed Effect failures. */
|
|
48
|
+
declare const capturePasskeyConfiguration: (options: PasskeyConfiguration) => Effect.Effect<{
|
|
49
|
+
readonly generation: number;
|
|
50
|
+
readonly profiles: readonly [{
|
|
51
|
+
readonly profileId: string;
|
|
52
|
+
readonly generation: number;
|
|
53
|
+
readonly rpId: string;
|
|
54
|
+
readonly rpName: string;
|
|
55
|
+
readonly origins: readonly [string, ...string[]];
|
|
56
|
+
readonly developmentLocalhost: boolean;
|
|
57
|
+
readonly residentKey: "discouraged" | "preferred" | "required";
|
|
58
|
+
readonly userVerification: "preferred" | "required";
|
|
59
|
+
readonly primarySignIn: boolean;
|
|
60
|
+
readonly attestation: "none";
|
|
61
|
+
readonly algorithms: readonly [-257 | -7, ...(-257 | -7)[]];
|
|
62
|
+
}, ...{
|
|
63
|
+
readonly profileId: string;
|
|
64
|
+
readonly generation: number;
|
|
65
|
+
readonly rpId: string;
|
|
66
|
+
readonly rpName: string;
|
|
67
|
+
readonly origins: readonly [string, ...string[]];
|
|
68
|
+
readonly developmentLocalhost: boolean;
|
|
69
|
+
readonly residentKey: "discouraged" | "preferred" | "required";
|
|
70
|
+
readonly userVerification: "preferred" | "required";
|
|
71
|
+
readonly primarySignIn: boolean;
|
|
72
|
+
readonly attestation: "none";
|
|
73
|
+
readonly algorithms: readonly [-257 | -7, ...(-257 | -7)[]];
|
|
74
|
+
}[]];
|
|
75
|
+
readonly lifetimeMillis: number;
|
|
76
|
+
readonly claimLifetimeMillis: number;
|
|
77
|
+
readonly retentionMillis: number;
|
|
78
|
+
readonly maximumPending: number;
|
|
79
|
+
readonly maximumPendingPerSubject: number;
|
|
80
|
+
readonly admission: {
|
|
81
|
+
readonly global: {
|
|
82
|
+
readonly limit: number;
|
|
83
|
+
readonly windowMillis: number;
|
|
84
|
+
};
|
|
85
|
+
readonly subject: {
|
|
86
|
+
readonly limit: number;
|
|
87
|
+
readonly windowMillis: number;
|
|
88
|
+
};
|
|
89
|
+
readonly target: {
|
|
90
|
+
readonly limit: number;
|
|
91
|
+
readonly windowMillis: number;
|
|
92
|
+
};
|
|
93
|
+
};
|
|
94
|
+
}, PasskeyConfigurationError, never>;
|
|
95
|
+
declare const makePasskeyMethod: <const Id extends string, const SessionId extends string, Claims extends Schema.Codec<unknown, unknown, unknown, unknown>>(moduleId: Id, options: {
|
|
96
|
+
readonly sessions: ReturnType<typeof makeSessionModule<SessionId, Claims>>;
|
|
97
|
+
} & PasskeyConfiguration, configuredSource?: ReturnType<typeof capturePasskeyConfiguration>) => Readonly<{
|
|
98
|
+
strategy: Readonly<{
|
|
99
|
+
completion: boolean;
|
|
100
|
+
make: Effect.Effect<{
|
|
101
|
+
readonly signIn: (input: {
|
|
102
|
+
readonly flowId: string;
|
|
103
|
+
readonly commandId: string;
|
|
104
|
+
readonly profileId: string;
|
|
105
|
+
}) => Effect.Effect<{
|
|
106
|
+
readonly flowId: string & import("effect/Brand").Brand<"effect-auth/RequestBindingFlowId">;
|
|
107
|
+
readonly expiresAtMillis: number;
|
|
108
|
+
readonly options: {
|
|
109
|
+
readonly challenge: string;
|
|
110
|
+
readonly rpId: string;
|
|
111
|
+
readonly timeout: number;
|
|
112
|
+
readonly userVerification: "preferred" | "required";
|
|
113
|
+
readonly allowCredentials: readonly {
|
|
114
|
+
readonly type: "public-key";
|
|
115
|
+
readonly id: string & import("effect/Brand").Brand<"effect-auth/PasskeyProtocolCredentialId">;
|
|
116
|
+
}[];
|
|
117
|
+
};
|
|
118
|
+
}, PasskeyActionRequired | PasskeyMethodUnsupported | PasskeyRejected | PasskeyUnavailable | SessionApiError, AuthRequest>;
|
|
119
|
+
readonly completeSignIn: (input: {
|
|
120
|
+
readonly flowId: string;
|
|
121
|
+
readonly bindingCredential: string;
|
|
122
|
+
readonly response: string;
|
|
123
|
+
}) => Effect.Effect<{
|
|
124
|
+
readonly _tag: "Authenticated";
|
|
125
|
+
readonly session: {
|
|
126
|
+
readonly sessionId: string & import("effect/Brand").Brand<"effect-auth/SessionId">;
|
|
127
|
+
readonly subjectId: string & import("effect/Brand").Brand<"effect-auth/SubjectId">;
|
|
128
|
+
readonly securityRevision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
|
|
129
|
+
readonly assurance: AuthenticationAssurance;
|
|
130
|
+
readonly issuedAt: DateTime.Utc;
|
|
131
|
+
readonly expiresAt: DateTime.Utc;
|
|
132
|
+
readonly absoluteExpiresAt: DateTime.Utc;
|
|
133
|
+
readonly claims: Claims["Type"];
|
|
134
|
+
};
|
|
135
|
+
} | {
|
|
136
|
+
readonly _tag: "PendingAuthentication";
|
|
137
|
+
readonly expiresAt: DateTime.Utc;
|
|
138
|
+
}, PasskeyActionRequired | PasskeyMethodUnsupported | PasskeyRejected | PasskeyUnavailable | SessionApiError, AuthRequest>;
|
|
139
|
+
}, AuthConfigurationError | PasskeyConfigurationError | RequestBindingConfigurationError, AuthenticationAuthority | Layer.CurrentMemoMap | ModuleService<SessionId, "completion", Claims["Type"]> | PasskeyCredentials | PasskeyPersistence | PasskeyProtocol | RequestBindingConfig | import("effect/Scope").Scope | {
|
|
140
|
+
readonly moduleId: Id;
|
|
141
|
+
readonly kind: "passkey-claims";
|
|
142
|
+
readonly claims: Types.Invariant<Claims["Type"]>;
|
|
143
|
+
} | Exclude<Exclude<Exclude<Exclude<Claims["DecodingServices"], import("effect/Scope").Scope>, BindingModule<Id, "passkey-sign-in">>, LifecycleHooks>, import("effect/Crypto").Crypto | SubtleCrypto> | Exclude<Exclude<Exclude<Exclude<Claims["EncodingServices"], import("effect/Scope").Scope>, BindingModule<Id, "passkey-sign-in">>, LifecycleHooks>, import("effect/Crypto").Crypto | SubtleCrypto>>;
|
|
144
|
+
}>;
|
|
145
|
+
Passkeys: Context.Service<{
|
|
146
|
+
readonly moduleId: Id;
|
|
147
|
+
readonly kind: "passkeys";
|
|
148
|
+
readonly claims: Types.Invariant<Claims["Type"]>;
|
|
149
|
+
}, {
|
|
150
|
+
readonly begin: (invocation: AuthInvocation, input: PasskeyBegin) => Effect.Effect<AuthOperationResult<PasskeyAuthenticationStarted>, PasskeyFailure>;
|
|
151
|
+
readonly complete: (invocation: AuthInvocation, input: PasskeyComplete) => Effect.Effect<AuthOperationResult<{
|
|
152
|
+
readonly _tag: "Authenticated";
|
|
153
|
+
readonly session: {
|
|
154
|
+
readonly sessionId: string & import("effect/Brand").Brand<"effect-auth/SessionId">;
|
|
155
|
+
readonly subjectId: string & import("effect/Brand").Brand<"effect-auth/SubjectId">;
|
|
156
|
+
readonly securityRevision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
|
|
157
|
+
readonly assurance: AuthenticationAssurance;
|
|
158
|
+
readonly issuedAt: DateTime.Utc;
|
|
159
|
+
readonly expiresAt: DateTime.Utc;
|
|
160
|
+
readonly absoluteExpiresAt: DateTime.Utc;
|
|
161
|
+
readonly claims: Claims["Type"];
|
|
162
|
+
};
|
|
163
|
+
} | {
|
|
164
|
+
readonly _tag: "PendingAuthentication";
|
|
165
|
+
readonly expiresAt: DateTime.Utc;
|
|
166
|
+
}>, PasskeyFailure>;
|
|
167
|
+
readonly cleanup: (invocation: AuthInvocation, limit: number) => Effect.Effect<PasskeyCleanupResult, PasskeyFailure>;
|
|
168
|
+
}>;
|
|
169
|
+
ClaimsForPasskey: Context.Service<{
|
|
170
|
+
readonly moduleId: Id;
|
|
171
|
+
readonly kind: "passkey-claims";
|
|
172
|
+
readonly claims: Types.Invariant<Claims["Type"]>;
|
|
173
|
+
}, {
|
|
174
|
+
readonly resolve: (credential: PasskeyCredential) => Effect.Effect<Claims["Type"], PasskeyUnavailable>;
|
|
175
|
+
}>;
|
|
176
|
+
binding: Readonly<{
|
|
177
|
+
RequestBinding: Context.Service<BindingModule<Id, "passkey-sign-in">, {
|
|
178
|
+
readonly issue: (flowId: RequestBindingFlowId) => Effect.Effect<AuthOperationResult<RequestBindingPublic>, RequestBindingUnavailable | RequestBindingInvalid>;
|
|
179
|
+
readonly verify: (flowId: RequestBindingFlowId, credential: import("effect/Redacted").Redacted<string>) => Effect.Effect<VerifiedRequestBinding, RequestBindingInvalid | RequestBindingUnavailable>;
|
|
180
|
+
}>;
|
|
181
|
+
signedLayer: (configuration: RequestBindingConfiguration) => Layer.Layer<BindingModule<Id, "passkey-sign-in">, RequestBindingConfigurationError, import("effect/Crypto").Crypto | SubtleCrypto>;
|
|
182
|
+
layer: Layer.Layer<BindingModule<Id, "passkey-sign-in">, RequestBindingConfigurationError, import("effect/Crypto").Crypto | RequestBindingConfig | SubtleCrypto>;
|
|
183
|
+
}>;
|
|
184
|
+
layer: Layer.Layer<{
|
|
185
|
+
readonly moduleId: Id;
|
|
186
|
+
readonly kind: "passkeys";
|
|
187
|
+
readonly claims: Types.Invariant<Claims["Type"]>;
|
|
188
|
+
}, PasskeyConfigurationError, AuthenticationAuthority | BindingModule<Id, "passkey-sign-in"> | import("effect/Crypto").Crypto | LifecycleHooks | ModuleService<SessionId, "completion", Claims["Type"]> | PasskeyCredentials | PasskeyPersistence | PasskeyProtocol | {
|
|
189
|
+
readonly moduleId: Id;
|
|
190
|
+
readonly kind: "passkey-claims";
|
|
191
|
+
readonly claims: Types.Invariant<Claims["Type"]>;
|
|
192
|
+
} | Exclude<Claims["DecodingServices"], import("effect/Scope").Scope> | Exclude<Claims["EncodingServices"], import("effect/Scope").Scope>>;
|
|
193
|
+
handlersLayer: Layer.Layer<OperationHandler<`${Id}/passkey/cleanup`, {
|
|
194
|
+
readonly limit: number;
|
|
195
|
+
}, {
|
|
196
|
+
readonly terminalized: number;
|
|
197
|
+
readonly removed: number;
|
|
198
|
+
readonly hasMore: boolean;
|
|
199
|
+
}, AssuranceRequired | AuthenticationRequired | HookDenied | InvalidOperationInput | OperationForbidden | OperationPrivateOutputUnsupported | PasskeyActionRequired | PasskeyMethodUnsupported | PasskeyRejected | PasskeyUnavailable> | OperationHandler<`${Id}/passkey/sign-in/begin`, {
|
|
200
|
+
readonly flowId: string & import("effect/Brand").Brand<"effect-auth/RequestBindingFlowId">;
|
|
201
|
+
readonly commandId: string;
|
|
202
|
+
readonly profileId: string;
|
|
203
|
+
}, {
|
|
204
|
+
readonly flowId: string & import("effect/Brand").Brand<"effect-auth/RequestBindingFlowId">;
|
|
205
|
+
readonly expiresAtMillis: number;
|
|
206
|
+
readonly options: {
|
|
207
|
+
readonly challenge: string;
|
|
208
|
+
readonly rpId: string;
|
|
209
|
+
readonly timeout: number;
|
|
210
|
+
readonly userVerification: "preferred" | "required";
|
|
211
|
+
readonly allowCredentials: readonly {
|
|
212
|
+
readonly type: "public-key";
|
|
213
|
+
readonly id: string & import("effect/Brand").Brand<"effect-auth/PasskeyProtocolCredentialId">;
|
|
214
|
+
}[];
|
|
215
|
+
};
|
|
216
|
+
}, AssuranceRequired | AuthenticationRequired | HookDenied | InvalidOperationInput | OperationForbidden | OperationPrivateOutputUnsupported | PasskeyActionRequired | PasskeyMethodUnsupported | PasskeyRejected | PasskeyUnavailable> | OperationHandler<`${Id}/passkey/sign-in/complete`, {
|
|
217
|
+
readonly flowId: string & import("effect/Brand").Brand<"effect-auth/RequestBindingFlowId">;
|
|
218
|
+
readonly bindingCredential: import("effect/Redacted").Redacted<string>;
|
|
219
|
+
readonly response: import("effect/Redacted").Redacted<string>;
|
|
220
|
+
}, {
|
|
221
|
+
readonly _tag: "Authenticated";
|
|
222
|
+
readonly session: {
|
|
223
|
+
readonly sessionId: string & import("effect/Brand").Brand<"effect-auth/SessionId">;
|
|
224
|
+
readonly subjectId: string & import("effect/Brand").Brand<"effect-auth/SubjectId">;
|
|
225
|
+
readonly securityRevision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
|
|
226
|
+
readonly assurance: AuthenticationAssurance;
|
|
227
|
+
readonly issuedAt: DateTime.Utc;
|
|
228
|
+
readonly expiresAt: DateTime.Utc;
|
|
229
|
+
readonly absoluteExpiresAt: DateTime.Utc;
|
|
230
|
+
readonly claims: Claims["Type"];
|
|
231
|
+
};
|
|
232
|
+
} | {
|
|
233
|
+
readonly _tag: "PendingAuthentication";
|
|
234
|
+
readonly expiresAt: DateTime.Utc;
|
|
235
|
+
}, AssuranceRequired | AuthenticationRequired | HookDenied | InvalidOperationInput | OperationForbidden | OperationPrivateOutputUnsupported | PasskeyActionRequired | PasskeyMethodUnsupported | PasskeyRejected | PasskeyUnavailable>, never, {
|
|
236
|
+
readonly moduleId: Id;
|
|
237
|
+
readonly kind: "passkeys";
|
|
238
|
+
readonly claims: Types.Invariant<Claims["Type"]>;
|
|
239
|
+
}>;
|
|
240
|
+
operations: Readonly<{
|
|
241
|
+
Begin: AuthOperation<`${Id}/passkey/sign-in/begin`, Schema.Struct<{
|
|
242
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
243
|
+
readonly commandId: Schema.String;
|
|
244
|
+
readonly profileId: Schema.String;
|
|
245
|
+
}>, Schema.Struct<{
|
|
246
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
247
|
+
readonly expiresAtMillis: Schema.Int;
|
|
248
|
+
readonly options: Schema.Struct<{
|
|
249
|
+
readonly challenge: Schema.String;
|
|
250
|
+
readonly rpId: Schema.String;
|
|
251
|
+
readonly timeout: Schema.Int;
|
|
252
|
+
readonly userVerification: Schema.Literals<readonly ["required", "preferred"]>;
|
|
253
|
+
readonly allowCredentials: Schema.$Array<Schema.Struct<{
|
|
254
|
+
readonly type: Schema.Literal<"public-key">;
|
|
255
|
+
readonly id: Schema.brand<Schema.String, "effect-auth/PasskeyProtocolCredentialId">;
|
|
256
|
+
}>>;
|
|
257
|
+
}>;
|
|
258
|
+
}>, Schema.Union<readonly [typeof PasskeyRejected, typeof PasskeyUnavailable, typeof PasskeyActionRequired, typeof PasskeyMethodUnsupported, typeof HookDenied]>, never, {
|
|
259
|
+
readonly payload: Schema.Struct<{
|
|
260
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
261
|
+
readonly commandId: Schema.String;
|
|
262
|
+
readonly profileId: Schema.String;
|
|
263
|
+
}>;
|
|
264
|
+
readonly success: Schema.Struct<{
|
|
265
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
266
|
+
readonly expiresAtMillis: Schema.Int;
|
|
267
|
+
readonly options: Schema.Struct<{
|
|
268
|
+
readonly challenge: Schema.String;
|
|
269
|
+
readonly rpId: Schema.String;
|
|
270
|
+
readonly timeout: Schema.Int;
|
|
271
|
+
readonly userVerification: Schema.Literals<readonly ["required", "preferred"]>;
|
|
272
|
+
readonly allowCredentials: Schema.$Array<Schema.Struct<{
|
|
273
|
+
readonly type: Schema.Literal<"public-key">;
|
|
274
|
+
readonly id: Schema.brand<Schema.String, "effect-auth/PasskeyProtocolCredentialId">;
|
|
275
|
+
}>>;
|
|
276
|
+
}>;
|
|
277
|
+
}>;
|
|
278
|
+
readonly error: Schema.Union<readonly [typeof PasskeyRejected, typeof PasskeyUnavailable, typeof PasskeyActionRequired, typeof PasskeyMethodUnsupported, typeof HookDenied]>;
|
|
279
|
+
readonly exposure: "public";
|
|
280
|
+
readonly access: "any";
|
|
281
|
+
readonly replay: "single-use";
|
|
282
|
+
readonly credentials: true;
|
|
283
|
+
}>;
|
|
284
|
+
Complete: AuthOperation<`${Id}/passkey/sign-in/complete`, Schema.Struct<{
|
|
285
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
286
|
+
readonly bindingCredential: Schema.RedactedFromValue<Schema.String>;
|
|
287
|
+
readonly response: Schema.RedactedFromValue<Schema.NonEmptyString>;
|
|
288
|
+
}>, Schema.Union<readonly [Schema.TaggedStruct<"Authenticated", {
|
|
289
|
+
readonly session: Schema.Struct<{
|
|
290
|
+
readonly sessionId: Schema.brand<Schema.NonEmptyString, "effect-auth/SessionId">;
|
|
291
|
+
readonly subjectId: Schema.brand<Schema.NonEmptyString, "effect-auth/SubjectId">;
|
|
292
|
+
readonly securityRevision: Schema.brand<Schema.NonEmptyString, "effect-auth/SecurityRevision">;
|
|
293
|
+
readonly assurance: typeof AuthenticationAssurance;
|
|
294
|
+
readonly issuedAt: Schema.DateTimeUtcFromMillis;
|
|
295
|
+
readonly expiresAt: Schema.DateTimeUtcFromMillis;
|
|
296
|
+
readonly absoluteExpiresAt: Schema.DateTimeUtcFromMillis;
|
|
297
|
+
readonly claims: Schema.Codec<Claims["Type"], Claims["Encoded"], Claims["DecodingServices"], Claims["EncodingServices"]>;
|
|
298
|
+
}>;
|
|
299
|
+
}>, Schema.TaggedStruct<"PendingAuthentication", {
|
|
300
|
+
readonly expiresAt: Schema.DateTimeUtcFromMillis;
|
|
301
|
+
}>]>, Schema.Union<readonly [typeof PasskeyRejected, typeof PasskeyUnavailable, typeof PasskeyActionRequired, typeof PasskeyMethodUnsupported, typeof HookDenied]>, never, {
|
|
302
|
+
readonly payload: Schema.Struct<{
|
|
303
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
304
|
+
readonly bindingCredential: Schema.RedactedFromValue<Schema.String>;
|
|
305
|
+
readonly response: Schema.RedactedFromValue<Schema.NonEmptyString>;
|
|
306
|
+
}>;
|
|
307
|
+
readonly success: Schema.Union<readonly [Schema.TaggedStruct<"Authenticated", {
|
|
308
|
+
readonly session: Schema.Struct<{
|
|
309
|
+
readonly sessionId: Schema.brand<Schema.NonEmptyString, "effect-auth/SessionId">;
|
|
310
|
+
readonly subjectId: Schema.brand<Schema.NonEmptyString, "effect-auth/SubjectId">;
|
|
311
|
+
readonly securityRevision: Schema.brand<Schema.NonEmptyString, "effect-auth/SecurityRevision">;
|
|
312
|
+
readonly assurance: typeof AuthenticationAssurance;
|
|
313
|
+
readonly issuedAt: Schema.DateTimeUtcFromMillis;
|
|
314
|
+
readonly expiresAt: Schema.DateTimeUtcFromMillis;
|
|
315
|
+
readonly absoluteExpiresAt: Schema.DateTimeUtcFromMillis;
|
|
316
|
+
readonly claims: Schema.Codec<Claims["Type"], Claims["Encoded"], Claims["DecodingServices"], Claims["EncodingServices"]>;
|
|
317
|
+
}>;
|
|
318
|
+
}>, Schema.TaggedStruct<"PendingAuthentication", {
|
|
319
|
+
readonly expiresAt: Schema.DateTimeUtcFromMillis;
|
|
320
|
+
}>]>;
|
|
321
|
+
readonly error: Schema.Union<readonly [typeof PasskeyRejected, typeof PasskeyUnavailable, typeof PasskeyActionRequired, typeof PasskeyMethodUnsupported, typeof HookDenied]>;
|
|
322
|
+
readonly exposure: "public";
|
|
323
|
+
readonly access: "any";
|
|
324
|
+
readonly replay: "single-use";
|
|
325
|
+
readonly credentials: true;
|
|
326
|
+
}>;
|
|
327
|
+
Cleanup: AuthOperation<`${Id}/passkey/cleanup`, Schema.Struct<{
|
|
328
|
+
readonly limit: Schema.Int;
|
|
329
|
+
}>, Schema.Struct<{
|
|
330
|
+
readonly terminalized: Schema.Natural;
|
|
331
|
+
readonly removed: Schema.Natural;
|
|
332
|
+
readonly hasMore: Schema.Boolean;
|
|
333
|
+
}>, Schema.Union<readonly [typeof PasskeyRejected, typeof PasskeyUnavailable, typeof PasskeyActionRequired, typeof PasskeyMethodUnsupported, typeof HookDenied]>, never, {
|
|
334
|
+
readonly payload: Schema.Struct<{
|
|
335
|
+
readonly limit: Schema.Int;
|
|
336
|
+
}>;
|
|
337
|
+
readonly success: Schema.Struct<{
|
|
338
|
+
readonly terminalized: Schema.Natural;
|
|
339
|
+
readonly removed: Schema.Natural;
|
|
340
|
+
readonly hasMore: Schema.Boolean;
|
|
341
|
+
}>;
|
|
342
|
+
readonly error: Schema.Union<readonly [typeof PasskeyRejected, typeof PasskeyUnavailable, typeof PasskeyActionRequired, typeof PasskeyMethodUnsupported, typeof HookDenied]>;
|
|
343
|
+
readonly access: "system";
|
|
344
|
+
readonly exposure: "internal";
|
|
345
|
+
readonly replay: "non-idempotent";
|
|
346
|
+
}>;
|
|
347
|
+
}>;
|
|
348
|
+
group: import("effect/unstable/rpc/RpcGroup").RpcGroup<import("effect/unstable/rpc/Rpc").Rpc<`${Id}/passkey/cleanup`, Schema.Struct<{
|
|
349
|
+
readonly limit: Schema.Int;
|
|
350
|
+
}>, Schema.Struct<{
|
|
351
|
+
readonly terminalized: Schema.Natural;
|
|
352
|
+
readonly removed: Schema.Natural;
|
|
353
|
+
readonly hasMore: Schema.Boolean;
|
|
354
|
+
}>, Schema.Union<readonly [Schema.Union<readonly [typeof PasskeyRejected, typeof PasskeyUnavailable, typeof PasskeyActionRequired, typeof PasskeyMethodUnsupported, typeof HookDenied]>, Schema.Union<readonly [typeof InvalidOperationInput, typeof AuthenticationRequired, typeof OperationForbidden, typeof AssuranceRequired, typeof OperationPrivateOutputUnsupported]>]>, never, never> | import("effect/unstable/rpc/Rpc").Rpc<`${Id}/passkey/sign-in/begin`, Schema.Struct<{
|
|
355
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
356
|
+
readonly commandId: Schema.String;
|
|
357
|
+
readonly profileId: Schema.String;
|
|
358
|
+
}>, Schema.Struct<{
|
|
359
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
360
|
+
readonly expiresAtMillis: Schema.Int;
|
|
361
|
+
readonly options: Schema.Struct<{
|
|
362
|
+
readonly challenge: Schema.String;
|
|
363
|
+
readonly rpId: Schema.String;
|
|
364
|
+
readonly timeout: Schema.Int;
|
|
365
|
+
readonly userVerification: Schema.Literals<readonly ["required", "preferred"]>;
|
|
366
|
+
readonly allowCredentials: Schema.$Array<Schema.Struct<{
|
|
367
|
+
readonly type: Schema.Literal<"public-key">;
|
|
368
|
+
readonly id: Schema.brand<Schema.String, "effect-auth/PasskeyProtocolCredentialId">;
|
|
369
|
+
}>>;
|
|
370
|
+
}>;
|
|
371
|
+
}>, Schema.Union<readonly [Schema.Union<readonly [typeof PasskeyRejected, typeof PasskeyUnavailable, typeof PasskeyActionRequired, typeof PasskeyMethodUnsupported, typeof HookDenied]>, Schema.Union<readonly [typeof InvalidOperationInput, typeof AuthenticationRequired, typeof OperationForbidden, typeof AssuranceRequired, typeof OperationPrivateOutputUnsupported]>]>, never, never> | import("effect/unstable/rpc/Rpc").Rpc<`${Id}/passkey/sign-in/complete`, Schema.Struct<{
|
|
372
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
373
|
+
readonly bindingCredential: Schema.RedactedFromValue<Schema.String>;
|
|
374
|
+
readonly response: Schema.RedactedFromValue<Schema.NonEmptyString>;
|
|
375
|
+
}>, Schema.Union<readonly [Schema.TaggedStruct<"Authenticated", {
|
|
376
|
+
readonly session: Schema.Struct<{
|
|
377
|
+
readonly sessionId: Schema.brand<Schema.NonEmptyString, "effect-auth/SessionId">;
|
|
378
|
+
readonly subjectId: Schema.brand<Schema.NonEmptyString, "effect-auth/SubjectId">;
|
|
379
|
+
readonly securityRevision: Schema.brand<Schema.NonEmptyString, "effect-auth/SecurityRevision">;
|
|
380
|
+
readonly assurance: typeof AuthenticationAssurance;
|
|
381
|
+
readonly issuedAt: Schema.DateTimeUtcFromMillis;
|
|
382
|
+
readonly expiresAt: Schema.DateTimeUtcFromMillis;
|
|
383
|
+
readonly absoluteExpiresAt: Schema.DateTimeUtcFromMillis;
|
|
384
|
+
readonly claims: Schema.Codec<Claims["Type"], Claims["Encoded"], Claims["DecodingServices"], Claims["EncodingServices"]>;
|
|
385
|
+
}>;
|
|
386
|
+
}>, Schema.TaggedStruct<"PendingAuthentication", {
|
|
387
|
+
readonly expiresAt: Schema.DateTimeUtcFromMillis;
|
|
388
|
+
}>]>, Schema.Union<readonly [Schema.Union<readonly [typeof PasskeyRejected, typeof PasskeyUnavailable, typeof PasskeyActionRequired, typeof PasskeyMethodUnsupported, typeof HookDenied]>, Schema.Union<readonly [typeof InvalidOperationInput, typeof AuthenticationRequired, typeof OperationForbidden, typeof AssuranceRequired, typeof OperationPrivateOutputUnsupported]>]>, never, never>>;
|
|
389
|
+
registration: <Registration extends Schema.Codec<unknown, unknown, unknown, unknown>>(codec: Registration) => Readonly<{
|
|
390
|
+
RegistrationAuthority: Context.Service<{
|
|
391
|
+
readonly moduleId: Id;
|
|
392
|
+
readonly kind: "passkey-registration-authority";
|
|
393
|
+
readonly registration: Types.Invariant<Registration>;
|
|
394
|
+
}, {
|
|
395
|
+
readonly inspect: (registration: Registration["Type"]) => Effect.Effect<{
|
|
396
|
+
readonly fingerprint: string & import("effect/Brand").Brand<"effect-auth/TokenDigest">;
|
|
397
|
+
readonly eligible: boolean;
|
|
398
|
+
readonly name: string;
|
|
399
|
+
readonly displayName: string;
|
|
400
|
+
}, PasskeyUnavailable>;
|
|
401
|
+
readonly issueRegistration: <A>(input: {
|
|
402
|
+
readonly ceremony: PasskeyCeremony;
|
|
403
|
+
readonly policy: PasskeyMethodPolicy;
|
|
404
|
+
readonly registration: Registration["Type"];
|
|
405
|
+
}, prepare: PreparePasskeyCommit<{
|
|
406
|
+
readonly _tag: "Rejected";
|
|
407
|
+
} | {
|
|
408
|
+
readonly _tag: "Issued";
|
|
409
|
+
readonly ceremony: {
|
|
410
|
+
readonly moduleId: string;
|
|
411
|
+
readonly generation: number;
|
|
412
|
+
readonly flowId: string & import("effect/Brand").Brand<"effect-auth/RequestBindingFlowId">;
|
|
413
|
+
readonly commandId: string;
|
|
414
|
+
readonly purpose: "action" | "enrollment" | "pending" | "registration" | "sign-in" | "step-up";
|
|
415
|
+
readonly profile: {
|
|
416
|
+
readonly profileId: string;
|
|
417
|
+
readonly generation: number;
|
|
418
|
+
readonly rpId: string;
|
|
419
|
+
readonly rpName: string;
|
|
420
|
+
readonly origins: readonly [string, ...string[]];
|
|
421
|
+
readonly developmentLocalhost: boolean;
|
|
422
|
+
readonly residentKey: "discouraged" | "preferred" | "required";
|
|
423
|
+
readonly userVerification: "preferred" | "required";
|
|
424
|
+
readonly primarySignIn: boolean;
|
|
425
|
+
readonly attestation: "none";
|
|
426
|
+
readonly algorithms: readonly [-257 | -7, ...(-257 | -7)[]];
|
|
427
|
+
};
|
|
428
|
+
readonly challenge: string;
|
|
429
|
+
readonly requestBindingVerifier: string & import("effect/Brand").Brand<"effect-auth/TokenDigest">;
|
|
430
|
+
readonly requestBindingExpiresAtMillis: number;
|
|
431
|
+
readonly issuedAtMillis: number;
|
|
432
|
+
readonly expiresAtMillis: number;
|
|
433
|
+
readonly retentionUntilMillis: number;
|
|
434
|
+
readonly claimLifetimeMillis: number;
|
|
435
|
+
readonly allowedCredentials: readonly {
|
|
436
|
+
readonly type: "public-key";
|
|
437
|
+
readonly id: string & import("effect/Brand").Brand<"effect-auth/PasskeyProtocolCredentialId">;
|
|
438
|
+
}[];
|
|
439
|
+
readonly context: {
|
|
440
|
+
readonly _tag: "SignIn";
|
|
441
|
+
} | {
|
|
442
|
+
readonly _tag: "Registration";
|
|
443
|
+
readonly fingerprint: string & import("effect/Brand").Brand<"effect-auth/TokenDigest">;
|
|
444
|
+
readonly userHandle: string & import("effect/Brand").Brand<"effect-auth/PasskeyUserHandle">;
|
|
445
|
+
readonly name: string;
|
|
446
|
+
readonly displayName: string;
|
|
447
|
+
} | {
|
|
448
|
+
readonly _tag: "Enrollment";
|
|
449
|
+
readonly revision: {
|
|
450
|
+
readonly subjectId: string & import("effect/Brand").Brand<"effect-auth/SubjectId">;
|
|
451
|
+
readonly securityRevision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
|
|
452
|
+
readonly credentials: readonly {
|
|
453
|
+
readonly credentialId: string;
|
|
454
|
+
readonly revision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
|
|
455
|
+
}[];
|
|
456
|
+
};
|
|
457
|
+
readonly userHandle: string & import("effect/Brand").Brand<"effect-auth/PasskeyUserHandle">;
|
|
458
|
+
readonly name: string;
|
|
459
|
+
readonly authorization: {
|
|
460
|
+
readonly challenge: {
|
|
461
|
+
readonly moduleId: string;
|
|
462
|
+
readonly action: "enroll-begin" | "enroll-complete" | "remove";
|
|
463
|
+
readonly commandId: string;
|
|
464
|
+
readonly flowId: string & import("effect/Brand").Brand<"effect-auth/RequestBindingFlowId">;
|
|
465
|
+
readonly revision: {
|
|
466
|
+
readonly subjectId: string & import("effect/Brand").Brand<"effect-auth/SubjectId">;
|
|
467
|
+
readonly securityRevision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
|
|
468
|
+
readonly credentials: readonly {
|
|
469
|
+
readonly credentialId: string;
|
|
470
|
+
readonly revision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
|
|
471
|
+
}[];
|
|
472
|
+
};
|
|
473
|
+
readonly bindingDigest: string & import("effect/Brand").Brand<"effect-auth/TokenDigest">;
|
|
474
|
+
};
|
|
475
|
+
readonly evidence: {
|
|
476
|
+
readonly bindingDigest: string & import("effect/Brand").Brand<"effect-auth/TokenDigest">;
|
|
477
|
+
readonly revision: {
|
|
478
|
+
readonly subjectId: string & import("effect/Brand").Brand<"effect-auth/SubjectId">;
|
|
479
|
+
readonly securityRevision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
|
|
480
|
+
readonly credentials: readonly {
|
|
481
|
+
readonly credentialId: string;
|
|
482
|
+
readonly revision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
|
|
483
|
+
}[];
|
|
484
|
+
};
|
|
485
|
+
readonly flowId: string & import("effect/Brand").Brand<"effect-auth/AuthenticationFlowId">;
|
|
486
|
+
readonly proofs: readonly [{
|
|
487
|
+
readonly userVerified: boolean;
|
|
488
|
+
readonly phishingResistant: boolean;
|
|
489
|
+
readonly verifiedAt: DateTime.Utc;
|
|
490
|
+
readonly method: string;
|
|
491
|
+
readonly credentialId: string;
|
|
492
|
+
readonly factors: readonly ("inherence" | "knowledge" | "possession")[];
|
|
493
|
+
}, ...{
|
|
494
|
+
readonly userVerified: boolean;
|
|
495
|
+
readonly phishingResistant: boolean;
|
|
496
|
+
readonly verifiedAt: DateTime.Utc;
|
|
497
|
+
readonly method: string;
|
|
498
|
+
readonly credentialId: string;
|
|
499
|
+
readonly factors: readonly ("inherence" | "knowledge" | "possession")[];
|
|
500
|
+
}[]];
|
|
501
|
+
};
|
|
502
|
+
readonly requirement: {
|
|
503
|
+
readonly maximumAgeMillis: number;
|
|
504
|
+
readonly alternatives: readonly [{
|
|
505
|
+
readonly userVerified: boolean;
|
|
506
|
+
readonly phishingResistant: boolean;
|
|
507
|
+
readonly factors: readonly ("inherence" | "knowledge" | "possession")[];
|
|
508
|
+
readonly minimumCredentials: number;
|
|
509
|
+
}, ...{
|
|
510
|
+
readonly userVerified: boolean;
|
|
511
|
+
readonly phishingResistant: boolean;
|
|
512
|
+
readonly factors: readonly ("inherence" | "knowledge" | "possession")[];
|
|
513
|
+
readonly minimumCredentials: number;
|
|
514
|
+
}[]];
|
|
515
|
+
};
|
|
516
|
+
};
|
|
517
|
+
} | {
|
|
518
|
+
readonly _tag: "Pending";
|
|
519
|
+
readonly target: {
|
|
520
|
+
readonly moduleId: string;
|
|
521
|
+
readonly kind: string;
|
|
522
|
+
readonly commandId: string;
|
|
523
|
+
readonly flowId: string & import("effect/Brand").Brand<"effect-auth/AuthenticationFlowId">;
|
|
524
|
+
readonly bindingDigest: string & import("effect/Brand").Brand<"effect-auth/TokenDigest">;
|
|
525
|
+
readonly revision: {
|
|
526
|
+
readonly subjectId: string & import("effect/Brand").Brand<"effect-auth/SubjectId">;
|
|
527
|
+
readonly securityRevision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
|
|
528
|
+
readonly credentials: readonly {
|
|
529
|
+
readonly credentialId: string;
|
|
530
|
+
readonly revision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
|
|
531
|
+
}[];
|
|
532
|
+
};
|
|
533
|
+
readonly requirement?: {
|
|
534
|
+
readonly maximumAgeMillis: number;
|
|
535
|
+
readonly alternatives: readonly [{
|
|
536
|
+
readonly userVerified: boolean;
|
|
537
|
+
readonly phishingResistant: boolean;
|
|
538
|
+
readonly factors: readonly ("inherence" | "knowledge" | "possession")[];
|
|
539
|
+
readonly minimumCredentials: number;
|
|
540
|
+
}, ...{
|
|
541
|
+
readonly userVerified: boolean;
|
|
542
|
+
readonly phishingResistant: boolean;
|
|
543
|
+
readonly factors: readonly ("inherence" | "knowledge" | "possession")[];
|
|
544
|
+
readonly minimumCredentials: number;
|
|
545
|
+
}[]];
|
|
546
|
+
} | undefined;
|
|
547
|
+
readonly expiresAtMillis: number;
|
|
548
|
+
};
|
|
549
|
+
} | {
|
|
550
|
+
readonly _tag: "StepUp";
|
|
551
|
+
readonly target: {
|
|
552
|
+
readonly moduleId: string;
|
|
553
|
+
readonly kind: string;
|
|
554
|
+
readonly commandId: string;
|
|
555
|
+
readonly flowId: string & import("effect/Brand").Brand<"effect-auth/AuthenticationFlowId">;
|
|
556
|
+
readonly bindingDigest: string & import("effect/Brand").Brand<"effect-auth/TokenDigest">;
|
|
557
|
+
readonly revision: {
|
|
558
|
+
readonly subjectId: string & import("effect/Brand").Brand<"effect-auth/SubjectId">;
|
|
559
|
+
readonly securityRevision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
|
|
560
|
+
readonly credentials: readonly {
|
|
561
|
+
readonly credentialId: string;
|
|
562
|
+
readonly revision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
|
|
563
|
+
}[];
|
|
564
|
+
};
|
|
565
|
+
readonly requirement?: {
|
|
566
|
+
readonly maximumAgeMillis: number;
|
|
567
|
+
readonly alternatives: readonly [{
|
|
568
|
+
readonly userVerified: boolean;
|
|
569
|
+
readonly phishingResistant: boolean;
|
|
570
|
+
readonly factors: readonly ("inherence" | "knowledge" | "possession")[];
|
|
571
|
+
readonly minimumCredentials: number;
|
|
572
|
+
}, ...{
|
|
573
|
+
readonly userVerified: boolean;
|
|
574
|
+
readonly phishingResistant: boolean;
|
|
575
|
+
readonly factors: readonly ("inherence" | "knowledge" | "possession")[];
|
|
576
|
+
readonly minimumCredentials: number;
|
|
577
|
+
}[]];
|
|
578
|
+
} | undefined;
|
|
579
|
+
readonly expiresAtMillis: number;
|
|
580
|
+
};
|
|
581
|
+
} | {
|
|
582
|
+
readonly _tag: "Action";
|
|
583
|
+
readonly target: {
|
|
584
|
+
readonly moduleId: string;
|
|
585
|
+
readonly kind: string;
|
|
586
|
+
readonly commandId: string;
|
|
587
|
+
readonly flowId: string & import("effect/Brand").Brand<"effect-auth/AuthenticationFlowId">;
|
|
588
|
+
readonly bindingDigest: string & import("effect/Brand").Brand<"effect-auth/TokenDigest">;
|
|
589
|
+
readonly revision: {
|
|
590
|
+
readonly subjectId: string & import("effect/Brand").Brand<"effect-auth/SubjectId">;
|
|
591
|
+
readonly securityRevision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
|
|
592
|
+
readonly credentials: readonly {
|
|
593
|
+
readonly credentialId: string;
|
|
594
|
+
readonly revision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
|
|
595
|
+
}[];
|
|
596
|
+
};
|
|
597
|
+
readonly requirement?: {
|
|
598
|
+
readonly maximumAgeMillis: number;
|
|
599
|
+
readonly alternatives: readonly [{
|
|
600
|
+
readonly userVerified: boolean;
|
|
601
|
+
readonly phishingResistant: boolean;
|
|
602
|
+
readonly factors: readonly ("inherence" | "knowledge" | "possession")[];
|
|
603
|
+
readonly minimumCredentials: number;
|
|
604
|
+
}, ...{
|
|
605
|
+
readonly userVerified: boolean;
|
|
606
|
+
readonly phishingResistant: boolean;
|
|
607
|
+
readonly factors: readonly ("inherence" | "knowledge" | "possession")[];
|
|
608
|
+
readonly minimumCredentials: number;
|
|
609
|
+
}[]];
|
|
610
|
+
} | undefined;
|
|
611
|
+
readonly expiresAtMillis: number;
|
|
612
|
+
};
|
|
613
|
+
};
|
|
614
|
+
};
|
|
615
|
+
}, A>) => Effect.Effect<PreparedCommit<A>, PasskeyUnavailable, never>;
|
|
616
|
+
readonly completeRegistration: <A>(input: {
|
|
617
|
+
readonly claim: PasskeyClaim;
|
|
618
|
+
readonly verified: PasskeyRegistrationVerified;
|
|
619
|
+
readonly nowMillis: number;
|
|
620
|
+
}, prepare: PreparePasskeyCommit<{
|
|
621
|
+
readonly _tag: "Rejected";
|
|
622
|
+
} | {
|
|
623
|
+
readonly _tag: "RegistrationAccepted";
|
|
624
|
+
} | {
|
|
625
|
+
readonly _tag: "ProvisioningPending";
|
|
626
|
+
readonly reference: string;
|
|
627
|
+
}, A>) => Effect.Effect<PreparedCommit<A>, PasskeyUnavailable, never>;
|
|
628
|
+
}>;
|
|
629
|
+
Registrations: Context.Service<{
|
|
630
|
+
readonly moduleId: Id;
|
|
631
|
+
readonly kind: "passkey-registration";
|
|
632
|
+
readonly registration: Types.Invariant<Registration>;
|
|
633
|
+
}, {
|
|
634
|
+
readonly begin: (invocation: AuthInvocation, input: {
|
|
635
|
+
readonly flowId: string & import("effect/Brand").Brand<"effect-auth/RequestBindingFlowId">;
|
|
636
|
+
readonly commandId: string;
|
|
637
|
+
readonly profileId: string;
|
|
638
|
+
readonly registration: Registration["Type"];
|
|
639
|
+
}) => Effect.Effect<AuthOperationResult<PasskeyRegistrationStarted>, PasskeyFailure>;
|
|
640
|
+
readonly complete: (invocation: AuthInvocation, input: PasskeyRegistrationComplete) => Effect.Effect<AuthOperationResult<PasskeyRegistrationResult>, PasskeyFailure>;
|
|
641
|
+
}>;
|
|
642
|
+
binding: Readonly<{
|
|
643
|
+
RequestBinding: Context.Service<BindingModule<Id, "passkey-registration">, {
|
|
644
|
+
readonly issue: (flowId: RequestBindingFlowId) => Effect.Effect<AuthOperationResult<RequestBindingPublic>, RequestBindingUnavailable | RequestBindingInvalid>;
|
|
645
|
+
readonly verify: (flowId: RequestBindingFlowId, credential: import("effect/Redacted").Redacted<string>) => Effect.Effect<VerifiedRequestBinding, RequestBindingInvalid | RequestBindingUnavailable>;
|
|
646
|
+
}>;
|
|
647
|
+
signedLayer: (configuration: RequestBindingConfiguration) => Layer.Layer<BindingModule<Id, "passkey-registration">, RequestBindingConfigurationError, import("effect/Crypto").Crypto | SubtleCrypto>;
|
|
648
|
+
layer: Layer.Layer<BindingModule<Id, "passkey-registration">, RequestBindingConfigurationError, import("effect/Crypto").Crypto | RequestBindingConfig | SubtleCrypto>;
|
|
649
|
+
}>;
|
|
650
|
+
layer: Layer.Layer<{
|
|
651
|
+
readonly moduleId: Id;
|
|
652
|
+
readonly kind: "passkey-registration";
|
|
653
|
+
readonly registration: Types.Invariant<Registration>;
|
|
654
|
+
}, PasskeyConfigurationError, BindingModule<Id, "passkey-registration"> | import("effect/Crypto").Crypto | LifecycleHooks | PasskeyPersistence | PasskeyProtocol | {
|
|
655
|
+
readonly moduleId: Id;
|
|
656
|
+
readonly kind: "passkey-registration-authority";
|
|
657
|
+
readonly registration: Types.Invariant<Registration>;
|
|
658
|
+
} | Exclude<Registration["DecodingServices"], import("effect/Scope").Scope> | Exclude<Registration["EncodingServices"], import("effect/Scope").Scope>>;
|
|
659
|
+
operations: Readonly<{
|
|
660
|
+
Begin: AuthOperation<`${Id}/passkey/registration/begin`, Schema.Struct<{
|
|
661
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
662
|
+
readonly commandId: Schema.String;
|
|
663
|
+
readonly profileId: Schema.String;
|
|
664
|
+
readonly registration: Schema.Codec<Registration["Type"], Registration["Encoded"], Registration["DecodingServices"], Registration["EncodingServices"]>;
|
|
665
|
+
}>, Schema.Struct<{
|
|
666
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
667
|
+
readonly expiresAtMillis: Schema.Int;
|
|
668
|
+
readonly options: Schema.Struct<{
|
|
669
|
+
readonly challenge: Schema.String;
|
|
670
|
+
readonly rp: Schema.Struct<{
|
|
671
|
+
readonly id: Schema.String;
|
|
672
|
+
readonly name: Schema.NonEmptyString;
|
|
673
|
+
}>;
|
|
674
|
+
readonly user: Schema.Struct<{
|
|
675
|
+
readonly id: Schema.brand<Schema.String, "effect-auth/PasskeyUserHandle">;
|
|
676
|
+
readonly name: Schema.NonEmptyString;
|
|
677
|
+
readonly displayName: Schema.NonEmptyString;
|
|
678
|
+
}>;
|
|
679
|
+
readonly pubKeyCredParams: Schema.NonEmptyArray<Schema.Struct<{
|
|
680
|
+
readonly type: Schema.Literal<"public-key">;
|
|
681
|
+
readonly alg: Schema.Literals<readonly [-7, -257]>;
|
|
682
|
+
}>>;
|
|
683
|
+
readonly timeout: Schema.Int;
|
|
684
|
+
readonly attestation: Schema.Literal<"none">;
|
|
685
|
+
readonly authenticatorSelection: Schema.Struct<{
|
|
686
|
+
readonly residentKey: Schema.Literals<readonly ["required", "preferred", "discouraged"]>;
|
|
687
|
+
readonly userVerification: Schema.Literals<readonly ["required", "preferred"]>;
|
|
688
|
+
}>;
|
|
689
|
+
readonly excludeCredentials: Schema.$Array<Schema.Struct<{
|
|
690
|
+
readonly type: Schema.Literal<"public-key">;
|
|
691
|
+
readonly id: Schema.brand<Schema.String, "effect-auth/PasskeyProtocolCredentialId">;
|
|
692
|
+
}>>;
|
|
693
|
+
}>;
|
|
694
|
+
}>, Schema.Union<readonly [typeof PasskeyRejected, typeof PasskeyUnavailable, typeof PasskeyActionRequired, typeof PasskeyMethodUnsupported, typeof HookDenied]>, never, {
|
|
695
|
+
readonly payload: Schema.Struct<{
|
|
696
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
697
|
+
readonly commandId: Schema.String;
|
|
698
|
+
readonly profileId: Schema.String;
|
|
699
|
+
readonly registration: Schema.Codec<Registration["Type"], Registration["Encoded"], Registration["DecodingServices"], Registration["EncodingServices"]>;
|
|
700
|
+
}>;
|
|
701
|
+
readonly success: Schema.Struct<{
|
|
702
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
703
|
+
readonly expiresAtMillis: Schema.Int;
|
|
704
|
+
readonly options: Schema.Struct<{
|
|
705
|
+
readonly challenge: Schema.String;
|
|
706
|
+
readonly rp: Schema.Struct<{
|
|
707
|
+
readonly id: Schema.String;
|
|
708
|
+
readonly name: Schema.NonEmptyString;
|
|
709
|
+
}>;
|
|
710
|
+
readonly user: Schema.Struct<{
|
|
711
|
+
readonly id: Schema.brand<Schema.String, "effect-auth/PasskeyUserHandle">;
|
|
712
|
+
readonly name: Schema.NonEmptyString;
|
|
713
|
+
readonly displayName: Schema.NonEmptyString;
|
|
714
|
+
}>;
|
|
715
|
+
readonly pubKeyCredParams: Schema.NonEmptyArray<Schema.Struct<{
|
|
716
|
+
readonly type: Schema.Literal<"public-key">;
|
|
717
|
+
readonly alg: Schema.Literals<readonly [-7, -257]>;
|
|
718
|
+
}>>;
|
|
719
|
+
readonly timeout: Schema.Int;
|
|
720
|
+
readonly attestation: Schema.Literal<"none">;
|
|
721
|
+
readonly authenticatorSelection: Schema.Struct<{
|
|
722
|
+
readonly residentKey: Schema.Literals<readonly ["required", "preferred", "discouraged"]>;
|
|
723
|
+
readonly userVerification: Schema.Literals<readonly ["required", "preferred"]>;
|
|
724
|
+
}>;
|
|
725
|
+
readonly excludeCredentials: Schema.$Array<Schema.Struct<{
|
|
726
|
+
readonly type: Schema.Literal<"public-key">;
|
|
727
|
+
readonly id: Schema.brand<Schema.String, "effect-auth/PasskeyProtocolCredentialId">;
|
|
728
|
+
}>>;
|
|
729
|
+
}>;
|
|
730
|
+
}>;
|
|
731
|
+
readonly error: Schema.Union<readonly [typeof PasskeyRejected, typeof PasskeyUnavailable, typeof PasskeyActionRequired, typeof PasskeyMethodUnsupported, typeof HookDenied]>;
|
|
732
|
+
readonly exposure: "public";
|
|
733
|
+
readonly access: "any";
|
|
734
|
+
readonly replay: "single-use";
|
|
735
|
+
readonly credentials: true;
|
|
736
|
+
}>;
|
|
737
|
+
Complete: AuthOperation<`${Id}/passkey/registration/complete`, Schema.Struct<{
|
|
738
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
739
|
+
readonly bindingCredential: Schema.RedactedFromValue<Schema.String>;
|
|
740
|
+
readonly response: Schema.RedactedFromValue<Schema.NonEmptyString>;
|
|
741
|
+
}>, Schema.Union<readonly [Schema.TaggedStruct<"RegistrationAccepted", {}>, Schema.TaggedStruct<"ProvisioningPending", {
|
|
742
|
+
readonly reference: Schema.String;
|
|
743
|
+
}>]>, Schema.Union<readonly [typeof PasskeyRejected, typeof PasskeyUnavailable, typeof PasskeyActionRequired, typeof PasskeyMethodUnsupported, typeof HookDenied]>, never, {
|
|
744
|
+
readonly payload: Schema.Struct<{
|
|
745
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
746
|
+
readonly bindingCredential: Schema.RedactedFromValue<Schema.String>;
|
|
747
|
+
readonly response: Schema.RedactedFromValue<Schema.NonEmptyString>;
|
|
748
|
+
}>;
|
|
749
|
+
readonly success: Schema.Union<readonly [Schema.TaggedStruct<"RegistrationAccepted", {}>, Schema.TaggedStruct<"ProvisioningPending", {
|
|
750
|
+
readonly reference: Schema.String;
|
|
751
|
+
}>]>;
|
|
752
|
+
readonly error: Schema.Union<readonly [typeof PasskeyRejected, typeof PasskeyUnavailable, typeof PasskeyActionRequired, typeof PasskeyMethodUnsupported, typeof HookDenied]>;
|
|
753
|
+
readonly exposure: "public";
|
|
754
|
+
readonly access: "any";
|
|
755
|
+
readonly replay: "single-use";
|
|
756
|
+
readonly credentials: true;
|
|
757
|
+
}>;
|
|
758
|
+
}>;
|
|
759
|
+
group: import("effect/unstable/rpc/RpcGroup").RpcGroup<import("effect/unstable/rpc/Rpc").Rpc<`${Id}/passkey/registration/begin`, Schema.Struct<{
|
|
760
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
761
|
+
readonly commandId: Schema.String;
|
|
762
|
+
readonly profileId: Schema.String;
|
|
763
|
+
readonly registration: Schema.Codec<Registration["Type"], Registration["Encoded"], Registration["DecodingServices"], Registration["EncodingServices"]>;
|
|
764
|
+
}>, Schema.Struct<{
|
|
765
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
766
|
+
readonly expiresAtMillis: Schema.Int;
|
|
767
|
+
readonly options: Schema.Struct<{
|
|
768
|
+
readonly challenge: Schema.String;
|
|
769
|
+
readonly rp: Schema.Struct<{
|
|
770
|
+
readonly id: Schema.String;
|
|
771
|
+
readonly name: Schema.NonEmptyString;
|
|
772
|
+
}>;
|
|
773
|
+
readonly user: Schema.Struct<{
|
|
774
|
+
readonly id: Schema.brand<Schema.String, "effect-auth/PasskeyUserHandle">;
|
|
775
|
+
readonly name: Schema.NonEmptyString;
|
|
776
|
+
readonly displayName: Schema.NonEmptyString;
|
|
777
|
+
}>;
|
|
778
|
+
readonly pubKeyCredParams: Schema.NonEmptyArray<Schema.Struct<{
|
|
779
|
+
readonly type: Schema.Literal<"public-key">;
|
|
780
|
+
readonly alg: Schema.Literals<readonly [-7, -257]>;
|
|
781
|
+
}>>;
|
|
782
|
+
readonly timeout: Schema.Int;
|
|
783
|
+
readonly attestation: Schema.Literal<"none">;
|
|
784
|
+
readonly authenticatorSelection: Schema.Struct<{
|
|
785
|
+
readonly residentKey: Schema.Literals<readonly ["required", "preferred", "discouraged"]>;
|
|
786
|
+
readonly userVerification: Schema.Literals<readonly ["required", "preferred"]>;
|
|
787
|
+
}>;
|
|
788
|
+
readonly excludeCredentials: Schema.$Array<Schema.Struct<{
|
|
789
|
+
readonly type: Schema.Literal<"public-key">;
|
|
790
|
+
readonly id: Schema.brand<Schema.String, "effect-auth/PasskeyProtocolCredentialId">;
|
|
791
|
+
}>>;
|
|
792
|
+
}>;
|
|
793
|
+
}>, Schema.Union<readonly [Schema.Union<readonly [typeof PasskeyRejected, typeof PasskeyUnavailable, typeof PasskeyActionRequired, typeof PasskeyMethodUnsupported, typeof HookDenied]>, Schema.Union<readonly [typeof InvalidOperationInput, typeof AuthenticationRequired, typeof OperationForbidden, typeof AssuranceRequired, typeof OperationPrivateOutputUnsupported]>]>, never, never> | import("effect/unstable/rpc/Rpc").Rpc<`${Id}/passkey/registration/complete`, Schema.Struct<{
|
|
794
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
795
|
+
readonly bindingCredential: Schema.RedactedFromValue<Schema.String>;
|
|
796
|
+
readonly response: Schema.RedactedFromValue<Schema.NonEmptyString>;
|
|
797
|
+
}>, Schema.Union<readonly [Schema.TaggedStruct<"RegistrationAccepted", {}>, Schema.TaggedStruct<"ProvisioningPending", {
|
|
798
|
+
readonly reference: Schema.String;
|
|
799
|
+
}>]>, Schema.Union<readonly [Schema.Union<readonly [typeof PasskeyRejected, typeof PasskeyUnavailable, typeof PasskeyActionRequired, typeof PasskeyMethodUnsupported, typeof HookDenied]>, Schema.Union<readonly [typeof InvalidOperationInput, typeof AuthenticationRequired, typeof OperationForbidden, typeof AssuranceRequired, typeof OperationPrivateOutputUnsupported]>]>, never, never>>;
|
|
800
|
+
handlersLayer: Layer.Layer<OperationHandler<`${Id}/passkey/registration/begin`, {
|
|
801
|
+
readonly flowId: string & import("effect/Brand").Brand<"effect-auth/RequestBindingFlowId">;
|
|
802
|
+
readonly commandId: string;
|
|
803
|
+
readonly profileId: string;
|
|
804
|
+
readonly registration: Registration["Type"];
|
|
805
|
+
}, {
|
|
806
|
+
readonly flowId: string & import("effect/Brand").Brand<"effect-auth/RequestBindingFlowId">;
|
|
807
|
+
readonly expiresAtMillis: number;
|
|
808
|
+
readonly options: {
|
|
809
|
+
readonly challenge: string;
|
|
810
|
+
readonly rp: {
|
|
811
|
+
readonly id: string;
|
|
812
|
+
readonly name: string;
|
|
813
|
+
};
|
|
814
|
+
readonly user: {
|
|
815
|
+
readonly id: string & import("effect/Brand").Brand<"effect-auth/PasskeyUserHandle">;
|
|
816
|
+
readonly name: string;
|
|
817
|
+
readonly displayName: string;
|
|
818
|
+
};
|
|
819
|
+
readonly pubKeyCredParams: readonly [{
|
|
820
|
+
readonly type: "public-key";
|
|
821
|
+
readonly alg: -257 | -7;
|
|
822
|
+
}, ...{
|
|
823
|
+
readonly type: "public-key";
|
|
824
|
+
readonly alg: -257 | -7;
|
|
825
|
+
}[]];
|
|
826
|
+
readonly timeout: number;
|
|
827
|
+
readonly attestation: "none";
|
|
828
|
+
readonly authenticatorSelection: {
|
|
829
|
+
readonly residentKey: "discouraged" | "preferred" | "required";
|
|
830
|
+
readonly userVerification: "preferred" | "required";
|
|
831
|
+
};
|
|
832
|
+
readonly excludeCredentials: readonly {
|
|
833
|
+
readonly type: "public-key";
|
|
834
|
+
readonly id: string & import("effect/Brand").Brand<"effect-auth/PasskeyProtocolCredentialId">;
|
|
835
|
+
}[];
|
|
836
|
+
};
|
|
837
|
+
}, AssuranceRequired | AuthenticationRequired | HookDenied | InvalidOperationInput | OperationForbidden | OperationPrivateOutputUnsupported | PasskeyActionRequired | PasskeyMethodUnsupported | PasskeyRejected | PasskeyUnavailable> | OperationHandler<`${Id}/passkey/registration/complete`, {
|
|
838
|
+
readonly flowId: string & import("effect/Brand").Brand<"effect-auth/RequestBindingFlowId">;
|
|
839
|
+
readonly bindingCredential: import("effect/Redacted").Redacted<string>;
|
|
840
|
+
readonly response: import("effect/Redacted").Redacted<string>;
|
|
841
|
+
}, {
|
|
842
|
+
readonly _tag: "RegistrationAccepted";
|
|
843
|
+
} | {
|
|
844
|
+
readonly _tag: "ProvisioningPending";
|
|
845
|
+
readonly reference: string;
|
|
846
|
+
}, AssuranceRequired | AuthenticationRequired | HookDenied | InvalidOperationInput | OperationForbidden | OperationPrivateOutputUnsupported | PasskeyActionRequired | PasskeyMethodUnsupported | PasskeyRejected | PasskeyUnavailable>, never, {
|
|
847
|
+
readonly moduleId: Id;
|
|
848
|
+
readonly kind: "passkey-registration";
|
|
849
|
+
readonly registration: Types.Invariant<Registration>;
|
|
850
|
+
}>;
|
|
851
|
+
strategy: Readonly<{
|
|
852
|
+
completion: false;
|
|
853
|
+
make: Effect.Effect<{
|
|
854
|
+
readonly register: (input: {
|
|
855
|
+
readonly flowId: string;
|
|
856
|
+
readonly commandId: string;
|
|
857
|
+
readonly profileId: string;
|
|
858
|
+
readonly registration: Registration["Encoded"];
|
|
859
|
+
}) => Effect.Effect<{
|
|
860
|
+
readonly flowId: string & import("effect/Brand").Brand<"effect-auth/RequestBindingFlowId">;
|
|
861
|
+
readonly expiresAtMillis: number;
|
|
862
|
+
readonly options: {
|
|
863
|
+
readonly challenge: string;
|
|
864
|
+
readonly rp: {
|
|
865
|
+
readonly id: string;
|
|
866
|
+
readonly name: string;
|
|
867
|
+
};
|
|
868
|
+
readonly user: {
|
|
869
|
+
readonly id: string & import("effect/Brand").Brand<"effect-auth/PasskeyUserHandle">;
|
|
870
|
+
readonly name: string;
|
|
871
|
+
readonly displayName: string;
|
|
872
|
+
};
|
|
873
|
+
readonly pubKeyCredParams: readonly [{
|
|
874
|
+
readonly type: "public-key";
|
|
875
|
+
readonly alg: -257 | -7;
|
|
876
|
+
}, ...{
|
|
877
|
+
readonly type: "public-key";
|
|
878
|
+
readonly alg: -257 | -7;
|
|
879
|
+
}[]];
|
|
880
|
+
readonly timeout: number;
|
|
881
|
+
readonly attestation: "none";
|
|
882
|
+
readonly authenticatorSelection: {
|
|
883
|
+
readonly residentKey: "discouraged" | "preferred" | "required";
|
|
884
|
+
readonly userVerification: "preferred" | "required";
|
|
885
|
+
};
|
|
886
|
+
readonly excludeCredentials: readonly {
|
|
887
|
+
readonly type: "public-key";
|
|
888
|
+
readonly id: string & import("effect/Brand").Brand<"effect-auth/PasskeyProtocolCredentialId">;
|
|
889
|
+
}[];
|
|
890
|
+
};
|
|
891
|
+
}, PasskeyActionRequired | PasskeyMethodUnsupported | PasskeyRejected | PasskeyUnavailable | SessionApiError, AuthRequest | Exclude<Exclude<Registration["DecodingServices"], CredentialCollectorProvenance | RevealCollectorProvenance>, OperationHandler<`${Id}/passkey/registration/begin`, {
|
|
892
|
+
readonly flowId: string & import("effect/Brand").Brand<"effect-auth/RequestBindingFlowId">;
|
|
893
|
+
readonly commandId: string;
|
|
894
|
+
readonly profileId: string;
|
|
895
|
+
readonly registration: Registration["Type"];
|
|
896
|
+
}, {
|
|
897
|
+
readonly flowId: string & import("effect/Brand").Brand<"effect-auth/RequestBindingFlowId">;
|
|
898
|
+
readonly expiresAtMillis: number;
|
|
899
|
+
readonly options: {
|
|
900
|
+
readonly challenge: string;
|
|
901
|
+
readonly rp: {
|
|
902
|
+
readonly id: string;
|
|
903
|
+
readonly name: string;
|
|
904
|
+
};
|
|
905
|
+
readonly user: {
|
|
906
|
+
readonly id: string & import("effect/Brand").Brand<"effect-auth/PasskeyUserHandle">;
|
|
907
|
+
readonly name: string;
|
|
908
|
+
readonly displayName: string;
|
|
909
|
+
};
|
|
910
|
+
readonly pubKeyCredParams: readonly [{
|
|
911
|
+
readonly type: "public-key";
|
|
912
|
+
readonly alg: -257 | -7;
|
|
913
|
+
}, ...{
|
|
914
|
+
readonly type: "public-key";
|
|
915
|
+
readonly alg: -257 | -7;
|
|
916
|
+
}[]];
|
|
917
|
+
readonly timeout: number;
|
|
918
|
+
readonly attestation: "none";
|
|
919
|
+
readonly authenticatorSelection: {
|
|
920
|
+
readonly residentKey: "discouraged" | "preferred" | "required";
|
|
921
|
+
readonly userVerification: "preferred" | "required";
|
|
922
|
+
};
|
|
923
|
+
readonly excludeCredentials: readonly {
|
|
924
|
+
readonly type: "public-key";
|
|
925
|
+
readonly id: string & import("effect/Brand").Brand<"effect-auth/PasskeyProtocolCredentialId">;
|
|
926
|
+
}[];
|
|
927
|
+
};
|
|
928
|
+
}, AssuranceRequired | AuthenticationRequired | HookDenied | InvalidOperationInput | OperationForbidden | OperationPrivateOutputUnsupported | PasskeyActionRequired | PasskeyMethodUnsupported | PasskeyRejected | PasskeyUnavailable> | OperationHandler<`${Id}/passkey/registration/complete`, {
|
|
929
|
+
readonly flowId: string & import("effect/Brand").Brand<"effect-auth/RequestBindingFlowId">;
|
|
930
|
+
readonly bindingCredential: import("effect/Redacted").Redacted<string>;
|
|
931
|
+
readonly response: import("effect/Redacted").Redacted<string>;
|
|
932
|
+
}, {
|
|
933
|
+
readonly _tag: "RegistrationAccepted";
|
|
934
|
+
} | {
|
|
935
|
+
readonly _tag: "ProvisioningPending";
|
|
936
|
+
readonly reference: string;
|
|
937
|
+
}, AssuranceRequired | AuthenticationRequired | HookDenied | InvalidOperationInput | OperationForbidden | OperationPrivateOutputUnsupported | PasskeyActionRequired | PasskeyMethodUnsupported | PasskeyRejected | PasskeyUnavailable> | (AuthCredentialCommandCollector | AuthRevealCommandCollectorService)>>;
|
|
938
|
+
readonly completeRegistration: (input: {
|
|
939
|
+
readonly flowId: string;
|
|
940
|
+
readonly bindingCredential: string;
|
|
941
|
+
readonly response: string;
|
|
942
|
+
}) => Effect.Effect<{
|
|
943
|
+
readonly _tag: "RegistrationAccepted";
|
|
944
|
+
} | {
|
|
945
|
+
readonly _tag: "ProvisioningPending";
|
|
946
|
+
readonly reference: string;
|
|
947
|
+
}, PasskeyActionRequired | PasskeyMethodUnsupported | PasskeyRejected | PasskeyUnavailable | SessionApiError, AuthRequest>;
|
|
948
|
+
}, AuthConfigurationError | PasskeyConfigurationError | RequestBindingConfigurationError, Layer.CurrentMemoMap | PasskeyPersistence | PasskeyProtocol | RequestBindingConfig | import("effect/Scope").Scope | {
|
|
949
|
+
readonly moduleId: Id;
|
|
950
|
+
readonly kind: "passkey-registration-authority";
|
|
951
|
+
readonly registration: Types.Invariant<Registration>;
|
|
952
|
+
} | Exclude<Exclude<Exclude<Exclude<Registration["DecodingServices"], import("effect/Scope").Scope>, BindingModule<Id, "passkey-registration">>, LifecycleHooks>, import("effect/Crypto").Crypto | SubtleCrypto> | Exclude<Exclude<Exclude<Exclude<Registration["EncodingServices"], import("effect/Scope").Scope>, BindingModule<Id, "passkey-registration">>, LifecycleHooks>, import("effect/Crypto").Crypto | SubtleCrypto>>;
|
|
953
|
+
}>;
|
|
954
|
+
}>;
|
|
955
|
+
management: (policy: PasskeyManagementPolicy) => Readonly<{
|
|
956
|
+
Management: Context.Service<{
|
|
957
|
+
readonly moduleId: Id;
|
|
958
|
+
readonly kind: "passkey-management";
|
|
959
|
+
}, {
|
|
960
|
+
readonly begin: (invocation: AuthInvocation, input: {
|
|
961
|
+
readonly flowId: string & import("effect/Brand").Brand<"effect-auth/RequestBindingFlowId">;
|
|
962
|
+
readonly commandId: string;
|
|
963
|
+
readonly profileId: string;
|
|
964
|
+
readonly name: string;
|
|
965
|
+
readonly actionProof?: import("effect/Redacted").Redacted<string> | undefined;
|
|
966
|
+
}) => Effect.Effect<AuthOperationResult<{
|
|
967
|
+
readonly flowId: string & import("effect/Brand").Brand<"effect-auth/RequestBindingFlowId">;
|
|
968
|
+
readonly expiresAtMillis: number;
|
|
969
|
+
readonly options: {
|
|
970
|
+
readonly challenge: string;
|
|
971
|
+
readonly rp: {
|
|
972
|
+
readonly id: string;
|
|
973
|
+
readonly name: string;
|
|
974
|
+
};
|
|
975
|
+
readonly user: {
|
|
976
|
+
readonly id: string & import("effect/Brand").Brand<"effect-auth/PasskeyUserHandle">;
|
|
977
|
+
readonly name: string;
|
|
978
|
+
readonly displayName: string;
|
|
979
|
+
};
|
|
980
|
+
readonly pubKeyCredParams: readonly [{
|
|
981
|
+
readonly type: "public-key";
|
|
982
|
+
readonly alg: -257 | -7;
|
|
983
|
+
}, ...{
|
|
984
|
+
readonly type: "public-key";
|
|
985
|
+
readonly alg: -257 | -7;
|
|
986
|
+
}[]];
|
|
987
|
+
readonly timeout: number;
|
|
988
|
+
readonly attestation: "none";
|
|
989
|
+
readonly authenticatorSelection: {
|
|
990
|
+
readonly residentKey: "discouraged" | "preferred" | "required";
|
|
991
|
+
readonly userVerification: "preferred" | "required";
|
|
992
|
+
};
|
|
993
|
+
readonly excludeCredentials: readonly {
|
|
994
|
+
readonly type: "public-key";
|
|
995
|
+
readonly id: string & import("effect/Brand").Brand<"effect-auth/PasskeyProtocolCredentialId">;
|
|
996
|
+
}[];
|
|
997
|
+
};
|
|
998
|
+
}>, PasskeyFailure>;
|
|
999
|
+
readonly complete: (invocation: AuthInvocation, input: {
|
|
1000
|
+
readonly flowId: string & import("effect/Brand").Brand<"effect-auth/RequestBindingFlowId">;
|
|
1001
|
+
readonly bindingCredential: import("effect/Redacted").Redacted<string>;
|
|
1002
|
+
readonly response: import("effect/Redacted").Redacted<string>;
|
|
1003
|
+
readonly actionProof?: import("effect/Redacted").Redacted<string> | undefined;
|
|
1004
|
+
}) => Effect.Effect<AuthOperationResult<{
|
|
1005
|
+
readonly credential: {
|
|
1006
|
+
readonly credentialId: string;
|
|
1007
|
+
readonly name: string;
|
|
1008
|
+
readonly primarySignIn: boolean;
|
|
1009
|
+
readonly createdAtMillis: number;
|
|
1010
|
+
readonly lastUsedAtMillis?: number | undefined;
|
|
1011
|
+
};
|
|
1012
|
+
readonly invalidation: {
|
|
1013
|
+
readonly trigger: "all-session-revocation" | "credential-change" | "factor-reset" | "identifier-change" | "password-reset" | "subject-delete" | "subject-disable";
|
|
1014
|
+
readonly existingSessions: "immediate" | "original-absolute-expiry";
|
|
1015
|
+
readonly maximumExposureMillis: number;
|
|
1016
|
+
readonly oldAuthenticationEvidence: "rejected";
|
|
1017
|
+
};
|
|
1018
|
+
}>, PasskeyFailure>;
|
|
1019
|
+
readonly list: (invocation: AuthInvocation, input: {
|
|
1020
|
+
readonly cursor?: string | undefined;
|
|
1021
|
+
readonly limit: number;
|
|
1022
|
+
}) => Effect.Effect<{
|
|
1023
|
+
readonly credentials: readonly {
|
|
1024
|
+
readonly credentialId: string;
|
|
1025
|
+
readonly name: string;
|
|
1026
|
+
readonly primarySignIn: boolean;
|
|
1027
|
+
readonly createdAtMillis: number;
|
|
1028
|
+
readonly lastUsedAtMillis?: number | undefined;
|
|
1029
|
+
}[];
|
|
1030
|
+
readonly cursor?: string | undefined;
|
|
1031
|
+
}, PasskeyFailure>;
|
|
1032
|
+
readonly rename: (invocation: AuthInvocation, input: {
|
|
1033
|
+
readonly commandId: string;
|
|
1034
|
+
readonly credentialId: string;
|
|
1035
|
+
readonly name: string;
|
|
1036
|
+
}) => Effect.Effect<{
|
|
1037
|
+
readonly credential: {
|
|
1038
|
+
readonly credentialId: string;
|
|
1039
|
+
readonly name: string;
|
|
1040
|
+
readonly primarySignIn: boolean;
|
|
1041
|
+
readonly createdAtMillis: number;
|
|
1042
|
+
readonly lastUsedAtMillis?: number | undefined;
|
|
1043
|
+
};
|
|
1044
|
+
readonly replayed: boolean;
|
|
1045
|
+
}, HookDenied | PasskeyActionRequired | PasskeyMethodUnsupported | PasskeyRejected | PasskeyUnavailable, never>;
|
|
1046
|
+
readonly remove: (invocation: AuthInvocation, input: {
|
|
1047
|
+
readonly commandId: string;
|
|
1048
|
+
readonly credentialId: string;
|
|
1049
|
+
readonly actionProof?: import("effect/Redacted").Redacted<string> | undefined;
|
|
1050
|
+
}) => Effect.Effect<{
|
|
1051
|
+
readonly credentialId: string;
|
|
1052
|
+
readonly replayed: boolean;
|
|
1053
|
+
readonly invalidation: {
|
|
1054
|
+
readonly trigger: "all-session-revocation" | "credential-change" | "factor-reset" | "identifier-change" | "password-reset" | "subject-delete" | "subject-disable";
|
|
1055
|
+
readonly existingSessions: "immediate" | "original-absolute-expiry";
|
|
1056
|
+
readonly maximumExposureMillis: number;
|
|
1057
|
+
readonly oldAuthenticationEvidence: "rejected";
|
|
1058
|
+
};
|
|
1059
|
+
}, HookDenied | LastSignInMethod | PasskeyActionRequired | PasskeyMethodUnsupported | PasskeyRejected | PasskeyUnavailable>;
|
|
1060
|
+
}>;
|
|
1061
|
+
binding: Readonly<{
|
|
1062
|
+
RequestBinding: Context.Service<BindingModule<Id, "passkey-enrollment">, {
|
|
1063
|
+
readonly issue: (flowId: RequestBindingFlowId) => Effect.Effect<AuthOperationResult<RequestBindingPublic>, RequestBindingUnavailable | RequestBindingInvalid>;
|
|
1064
|
+
readonly verify: (flowId: RequestBindingFlowId, credential: import("effect/Redacted").Redacted<string>) => Effect.Effect<VerifiedRequestBinding, RequestBindingInvalid | RequestBindingUnavailable>;
|
|
1065
|
+
}>;
|
|
1066
|
+
signedLayer: (configuration: RequestBindingConfiguration) => Layer.Layer<BindingModule<Id, "passkey-enrollment">, RequestBindingConfigurationError, import("effect/Crypto").Crypto | SubtleCrypto>;
|
|
1067
|
+
layer: Layer.Layer<BindingModule<Id, "passkey-enrollment">, RequestBindingConfigurationError, import("effect/Crypto").Crypto | RequestBindingConfig | SubtleCrypto>;
|
|
1068
|
+
}>;
|
|
1069
|
+
layer: Layer.Layer<{
|
|
1070
|
+
readonly moduleId: Id;
|
|
1071
|
+
readonly kind: "passkey-management";
|
|
1072
|
+
}, PasskeyConfigurationError, BindingModule<Id, "passkey-enrollment"> | import("effect/Crypto").Crypto | LifecycleHooks | ModuleService<SessionId, "strategy", Claims["Type"]> | PasskeyActionEvidence | PasskeyEnrollmentContext | PasskeyManagementPersistence | PasskeyPersistence | PasskeyProtocol>;
|
|
1073
|
+
operations: Readonly<{
|
|
1074
|
+
Begin: AuthOperation<`${Id}/passkey/enrollment/begin`, Schema.Struct<{
|
|
1075
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
1076
|
+
readonly commandId: Schema.String;
|
|
1077
|
+
readonly profileId: Schema.String;
|
|
1078
|
+
readonly name: Schema.NonEmptyString;
|
|
1079
|
+
readonly actionProof: Schema.optionalKey<Schema.RedactedFromValue<Schema.NonEmptyString>>;
|
|
1080
|
+
}>, Schema.Struct<{
|
|
1081
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
1082
|
+
readonly expiresAtMillis: Schema.Int;
|
|
1083
|
+
readonly options: Schema.Struct<{
|
|
1084
|
+
readonly challenge: Schema.String;
|
|
1085
|
+
readonly rp: Schema.Struct<{
|
|
1086
|
+
readonly id: Schema.String;
|
|
1087
|
+
readonly name: Schema.NonEmptyString;
|
|
1088
|
+
}>;
|
|
1089
|
+
readonly user: Schema.Struct<{
|
|
1090
|
+
readonly id: Schema.brand<Schema.String, "effect-auth/PasskeyUserHandle">;
|
|
1091
|
+
readonly name: Schema.NonEmptyString;
|
|
1092
|
+
readonly displayName: Schema.NonEmptyString;
|
|
1093
|
+
}>;
|
|
1094
|
+
readonly pubKeyCredParams: Schema.NonEmptyArray<Schema.Struct<{
|
|
1095
|
+
readonly type: Schema.Literal<"public-key">;
|
|
1096
|
+
readonly alg: Schema.Literals<readonly [-7, -257]>;
|
|
1097
|
+
}>>;
|
|
1098
|
+
readonly timeout: Schema.Int;
|
|
1099
|
+
readonly attestation: Schema.Literal<"none">;
|
|
1100
|
+
readonly authenticatorSelection: Schema.Struct<{
|
|
1101
|
+
readonly residentKey: Schema.Literals<readonly ["required", "preferred", "discouraged"]>;
|
|
1102
|
+
readonly userVerification: Schema.Literals<readonly ["required", "preferred"]>;
|
|
1103
|
+
}>;
|
|
1104
|
+
readonly excludeCredentials: Schema.$Array<Schema.Struct<{
|
|
1105
|
+
readonly type: Schema.Literal<"public-key">;
|
|
1106
|
+
readonly id: Schema.brand<Schema.String, "effect-auth/PasskeyProtocolCredentialId">;
|
|
1107
|
+
}>>;
|
|
1108
|
+
}>;
|
|
1109
|
+
}>, Schema.Union<readonly [typeof PasskeyRejected, typeof PasskeyUnavailable, typeof PasskeyActionRequired, typeof PasskeyMethodUnsupported, typeof HookDenied]>, never, {
|
|
1110
|
+
readonly payload: Schema.Struct<{
|
|
1111
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
1112
|
+
readonly commandId: Schema.String;
|
|
1113
|
+
readonly profileId: Schema.String;
|
|
1114
|
+
readonly name: Schema.NonEmptyString;
|
|
1115
|
+
readonly actionProof: Schema.optionalKey<Schema.RedactedFromValue<Schema.NonEmptyString>>;
|
|
1116
|
+
}>;
|
|
1117
|
+
readonly success: Schema.Struct<{
|
|
1118
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
1119
|
+
readonly expiresAtMillis: Schema.Int;
|
|
1120
|
+
readonly options: Schema.Struct<{
|
|
1121
|
+
readonly challenge: Schema.String;
|
|
1122
|
+
readonly rp: Schema.Struct<{
|
|
1123
|
+
readonly id: Schema.String;
|
|
1124
|
+
readonly name: Schema.NonEmptyString;
|
|
1125
|
+
}>;
|
|
1126
|
+
readonly user: Schema.Struct<{
|
|
1127
|
+
readonly id: Schema.brand<Schema.String, "effect-auth/PasskeyUserHandle">;
|
|
1128
|
+
readonly name: Schema.NonEmptyString;
|
|
1129
|
+
readonly displayName: Schema.NonEmptyString;
|
|
1130
|
+
}>;
|
|
1131
|
+
readonly pubKeyCredParams: Schema.NonEmptyArray<Schema.Struct<{
|
|
1132
|
+
readonly type: Schema.Literal<"public-key">;
|
|
1133
|
+
readonly alg: Schema.Literals<readonly [-7, -257]>;
|
|
1134
|
+
}>>;
|
|
1135
|
+
readonly timeout: Schema.Int;
|
|
1136
|
+
readonly attestation: Schema.Literal<"none">;
|
|
1137
|
+
readonly authenticatorSelection: Schema.Struct<{
|
|
1138
|
+
readonly residentKey: Schema.Literals<readonly ["required", "preferred", "discouraged"]>;
|
|
1139
|
+
readonly userVerification: Schema.Literals<readonly ["required", "preferred"]>;
|
|
1140
|
+
}>;
|
|
1141
|
+
readonly excludeCredentials: Schema.$Array<Schema.Struct<{
|
|
1142
|
+
readonly type: Schema.Literal<"public-key">;
|
|
1143
|
+
readonly id: Schema.brand<Schema.String, "effect-auth/PasskeyProtocolCredentialId">;
|
|
1144
|
+
}>>;
|
|
1145
|
+
}>;
|
|
1146
|
+
}>;
|
|
1147
|
+
readonly error: Schema.Union<readonly [typeof PasskeyRejected, typeof PasskeyUnavailable, typeof PasskeyActionRequired, typeof PasskeyMethodUnsupported, typeof HookDenied]>;
|
|
1148
|
+
readonly exposure: "public";
|
|
1149
|
+
readonly access: "authenticated";
|
|
1150
|
+
readonly replay: "single-use";
|
|
1151
|
+
readonly credentials: true;
|
|
1152
|
+
}>;
|
|
1153
|
+
Complete: AuthOperation<`${Id}/passkey/enrollment/complete`, Schema.Struct<{
|
|
1154
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
1155
|
+
readonly bindingCredential: Schema.RedactedFromValue<Schema.String>;
|
|
1156
|
+
readonly response: Schema.RedactedFromValue<Schema.NonEmptyString>;
|
|
1157
|
+
readonly actionProof: Schema.optionalKey<Schema.RedactedFromValue<Schema.NonEmptyString>>;
|
|
1158
|
+
}>, Schema.Struct<{
|
|
1159
|
+
readonly credential: Schema.Struct<{
|
|
1160
|
+
readonly credentialId: Schema.NonEmptyString;
|
|
1161
|
+
readonly name: Schema.NonEmptyString;
|
|
1162
|
+
readonly primarySignIn: Schema.Boolean;
|
|
1163
|
+
readonly createdAtMillis: Schema.Int;
|
|
1164
|
+
readonly lastUsedAtMillis: Schema.optionalKey<Schema.Int>;
|
|
1165
|
+
}>;
|
|
1166
|
+
readonly invalidation: Schema.Struct<{
|
|
1167
|
+
readonly trigger: Schema.Literals<readonly ["password-reset", "factor-reset", "credential-change", "subject-disable", "subject-delete", "identifier-change", "all-session-revocation"]>;
|
|
1168
|
+
readonly existingSessions: Schema.Literals<readonly ["immediate", "original-absolute-expiry"]>;
|
|
1169
|
+
readonly maximumExposureMillis: Schema.Natural;
|
|
1170
|
+
readonly oldAuthenticationEvidence: Schema.Literal<"rejected">;
|
|
1171
|
+
}>;
|
|
1172
|
+
}>, Schema.Union<readonly [typeof PasskeyRejected, typeof PasskeyUnavailable, typeof PasskeyActionRequired, typeof PasskeyMethodUnsupported, typeof HookDenied]>, never, {
|
|
1173
|
+
readonly payload: Schema.Struct<{
|
|
1174
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
1175
|
+
readonly bindingCredential: Schema.RedactedFromValue<Schema.String>;
|
|
1176
|
+
readonly response: Schema.RedactedFromValue<Schema.NonEmptyString>;
|
|
1177
|
+
readonly actionProof: Schema.optionalKey<Schema.RedactedFromValue<Schema.NonEmptyString>>;
|
|
1178
|
+
}>;
|
|
1179
|
+
readonly success: Schema.Struct<{
|
|
1180
|
+
readonly credential: Schema.Struct<{
|
|
1181
|
+
readonly credentialId: Schema.NonEmptyString;
|
|
1182
|
+
readonly name: Schema.NonEmptyString;
|
|
1183
|
+
readonly primarySignIn: Schema.Boolean;
|
|
1184
|
+
readonly createdAtMillis: Schema.Int;
|
|
1185
|
+
readonly lastUsedAtMillis: Schema.optionalKey<Schema.Int>;
|
|
1186
|
+
}>;
|
|
1187
|
+
readonly invalidation: Schema.Struct<{
|
|
1188
|
+
readonly trigger: Schema.Literals<readonly ["password-reset", "factor-reset", "credential-change", "subject-disable", "subject-delete", "identifier-change", "all-session-revocation"]>;
|
|
1189
|
+
readonly existingSessions: Schema.Literals<readonly ["immediate", "original-absolute-expiry"]>;
|
|
1190
|
+
readonly maximumExposureMillis: Schema.Natural;
|
|
1191
|
+
readonly oldAuthenticationEvidence: Schema.Literal<"rejected">;
|
|
1192
|
+
}>;
|
|
1193
|
+
}>;
|
|
1194
|
+
readonly error: Schema.Union<readonly [typeof PasskeyRejected, typeof PasskeyUnavailable, typeof PasskeyActionRequired, typeof PasskeyMethodUnsupported, typeof HookDenied]>;
|
|
1195
|
+
readonly exposure: "public";
|
|
1196
|
+
readonly access: "authenticated";
|
|
1197
|
+
readonly replay: "single-use";
|
|
1198
|
+
readonly credentials: true;
|
|
1199
|
+
}>;
|
|
1200
|
+
List: AuthOperation<`${Id}/passkey/list`, Schema.Struct<{
|
|
1201
|
+
readonly cursor: Schema.optionalKey<Schema.String>;
|
|
1202
|
+
readonly limit: Schema.Int;
|
|
1203
|
+
}>, Schema.Struct<{
|
|
1204
|
+
readonly credentials: Schema.$Array<Schema.Struct<{
|
|
1205
|
+
readonly credentialId: Schema.NonEmptyString;
|
|
1206
|
+
readonly name: Schema.NonEmptyString;
|
|
1207
|
+
readonly primarySignIn: Schema.Boolean;
|
|
1208
|
+
readonly createdAtMillis: Schema.Int;
|
|
1209
|
+
readonly lastUsedAtMillis: Schema.optionalKey<Schema.Int>;
|
|
1210
|
+
}>>;
|
|
1211
|
+
readonly cursor: Schema.optionalKey<Schema.String>;
|
|
1212
|
+
}>, Schema.Union<readonly [typeof PasskeyRejected, typeof PasskeyUnavailable, typeof PasskeyActionRequired, typeof PasskeyMethodUnsupported, typeof HookDenied]>, never, {
|
|
1213
|
+
readonly payload: Schema.Struct<{
|
|
1214
|
+
readonly cursor: Schema.optionalKey<Schema.String>;
|
|
1215
|
+
readonly limit: Schema.Int;
|
|
1216
|
+
}>;
|
|
1217
|
+
readonly success: Schema.Struct<{
|
|
1218
|
+
readonly credentials: Schema.$Array<Schema.Struct<{
|
|
1219
|
+
readonly credentialId: Schema.NonEmptyString;
|
|
1220
|
+
readonly name: Schema.NonEmptyString;
|
|
1221
|
+
readonly primarySignIn: Schema.Boolean;
|
|
1222
|
+
readonly createdAtMillis: Schema.Int;
|
|
1223
|
+
readonly lastUsedAtMillis: Schema.optionalKey<Schema.Int>;
|
|
1224
|
+
}>>;
|
|
1225
|
+
readonly cursor: Schema.optionalKey<Schema.String>;
|
|
1226
|
+
}>;
|
|
1227
|
+
readonly error: Schema.Union<readonly [typeof PasskeyRejected, typeof PasskeyUnavailable, typeof PasskeyActionRequired, typeof PasskeyMethodUnsupported, typeof HookDenied]>;
|
|
1228
|
+
readonly exposure: "public";
|
|
1229
|
+
readonly access: "authenticated";
|
|
1230
|
+
readonly replay: "read-only";
|
|
1231
|
+
}>;
|
|
1232
|
+
Rename: AuthOperation<`${Id}/passkey/rename`, Schema.Struct<{
|
|
1233
|
+
readonly commandId: Schema.String;
|
|
1234
|
+
readonly credentialId: Schema.NonEmptyString;
|
|
1235
|
+
readonly name: Schema.NonEmptyString;
|
|
1236
|
+
}>, Schema.Struct<{
|
|
1237
|
+
readonly credential: Schema.Struct<{
|
|
1238
|
+
readonly credentialId: Schema.NonEmptyString;
|
|
1239
|
+
readonly name: Schema.NonEmptyString;
|
|
1240
|
+
readonly primarySignIn: Schema.Boolean;
|
|
1241
|
+
readonly createdAtMillis: Schema.Int;
|
|
1242
|
+
readonly lastUsedAtMillis: Schema.optionalKey<Schema.Int>;
|
|
1243
|
+
}>;
|
|
1244
|
+
readonly replayed: Schema.Boolean;
|
|
1245
|
+
}>, Schema.Union<readonly [typeof PasskeyRejected, typeof PasskeyUnavailable, typeof PasskeyActionRequired, typeof PasskeyMethodUnsupported, typeof HookDenied]>, never, {
|
|
1246
|
+
readonly payload: Schema.Struct<{
|
|
1247
|
+
readonly commandId: Schema.String;
|
|
1248
|
+
readonly credentialId: Schema.NonEmptyString;
|
|
1249
|
+
readonly name: Schema.NonEmptyString;
|
|
1250
|
+
}>;
|
|
1251
|
+
readonly success: Schema.Struct<{
|
|
1252
|
+
readonly credential: Schema.Struct<{
|
|
1253
|
+
readonly credentialId: Schema.NonEmptyString;
|
|
1254
|
+
readonly name: Schema.NonEmptyString;
|
|
1255
|
+
readonly primarySignIn: Schema.Boolean;
|
|
1256
|
+
readonly createdAtMillis: Schema.Int;
|
|
1257
|
+
readonly lastUsedAtMillis: Schema.optionalKey<Schema.Int>;
|
|
1258
|
+
}>;
|
|
1259
|
+
readonly replayed: Schema.Boolean;
|
|
1260
|
+
}>;
|
|
1261
|
+
readonly error: Schema.Union<readonly [typeof PasskeyRejected, typeof PasskeyUnavailable, typeof PasskeyActionRequired, typeof PasskeyMethodUnsupported, typeof HookDenied]>;
|
|
1262
|
+
readonly exposure: "public";
|
|
1263
|
+
readonly access: "authenticated";
|
|
1264
|
+
readonly replay: "idempotent";
|
|
1265
|
+
}>;
|
|
1266
|
+
Remove: AuthOperation<`${Id}/passkey/remove`, Schema.Struct<{
|
|
1267
|
+
readonly commandId: Schema.String;
|
|
1268
|
+
readonly credentialId: Schema.NonEmptyString;
|
|
1269
|
+
readonly actionProof: Schema.optionalKey<Schema.RedactedFromValue<Schema.NonEmptyString>>;
|
|
1270
|
+
}>, Schema.Struct<{
|
|
1271
|
+
readonly credentialId: Schema.NonEmptyString;
|
|
1272
|
+
readonly replayed: Schema.Boolean;
|
|
1273
|
+
readonly invalidation: Schema.Struct<{
|
|
1274
|
+
readonly trigger: Schema.Literals<readonly ["password-reset", "factor-reset", "credential-change", "subject-disable", "subject-delete", "identifier-change", "all-session-revocation"]>;
|
|
1275
|
+
readonly existingSessions: Schema.Literals<readonly ["immediate", "original-absolute-expiry"]>;
|
|
1276
|
+
readonly maximumExposureMillis: Schema.Natural;
|
|
1277
|
+
readonly oldAuthenticationEvidence: Schema.Literal<"rejected">;
|
|
1278
|
+
}>;
|
|
1279
|
+
}>, Schema.Union<readonly [Schema.Union<readonly [typeof PasskeyRejected, typeof PasskeyUnavailable, typeof PasskeyActionRequired, typeof PasskeyMethodUnsupported, typeof HookDenied]>, typeof LastSignInMethod]>, never, {
|
|
1280
|
+
readonly payload: Schema.Struct<{
|
|
1281
|
+
readonly commandId: Schema.String;
|
|
1282
|
+
readonly credentialId: Schema.NonEmptyString;
|
|
1283
|
+
readonly actionProof: Schema.optionalKey<Schema.RedactedFromValue<Schema.NonEmptyString>>;
|
|
1284
|
+
}>;
|
|
1285
|
+
readonly success: Schema.Struct<{
|
|
1286
|
+
readonly credentialId: Schema.NonEmptyString;
|
|
1287
|
+
readonly replayed: Schema.Boolean;
|
|
1288
|
+
readonly invalidation: Schema.Struct<{
|
|
1289
|
+
readonly trigger: Schema.Literals<readonly ["password-reset", "factor-reset", "credential-change", "subject-disable", "subject-delete", "identifier-change", "all-session-revocation"]>;
|
|
1290
|
+
readonly existingSessions: Schema.Literals<readonly ["immediate", "original-absolute-expiry"]>;
|
|
1291
|
+
readonly maximumExposureMillis: Schema.Natural;
|
|
1292
|
+
readonly oldAuthenticationEvidence: Schema.Literal<"rejected">;
|
|
1293
|
+
}>;
|
|
1294
|
+
}>;
|
|
1295
|
+
readonly error: Schema.Union<readonly [Schema.Union<readonly [typeof PasskeyRejected, typeof PasskeyUnavailable, typeof PasskeyActionRequired, typeof PasskeyMethodUnsupported, typeof HookDenied]>, typeof LastSignInMethod]>;
|
|
1296
|
+
readonly exposure: "public";
|
|
1297
|
+
readonly access: "authenticated";
|
|
1298
|
+
readonly replay: "idempotent";
|
|
1299
|
+
}>;
|
|
1300
|
+
}>;
|
|
1301
|
+
group: import("effect/unstable/rpc/RpcGroup").RpcGroup<import("effect/unstable/rpc/Rpc").Rpc<`${Id}/passkey/enrollment/begin`, Schema.Struct<{
|
|
1302
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
1303
|
+
readonly commandId: Schema.String;
|
|
1304
|
+
readonly profileId: Schema.String;
|
|
1305
|
+
readonly name: Schema.NonEmptyString;
|
|
1306
|
+
readonly actionProof: Schema.optionalKey<Schema.RedactedFromValue<Schema.NonEmptyString>>;
|
|
1307
|
+
}>, Schema.Struct<{
|
|
1308
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
1309
|
+
readonly expiresAtMillis: Schema.Int;
|
|
1310
|
+
readonly options: Schema.Struct<{
|
|
1311
|
+
readonly challenge: Schema.String;
|
|
1312
|
+
readonly rp: Schema.Struct<{
|
|
1313
|
+
readonly id: Schema.String;
|
|
1314
|
+
readonly name: Schema.NonEmptyString;
|
|
1315
|
+
}>;
|
|
1316
|
+
readonly user: Schema.Struct<{
|
|
1317
|
+
readonly id: Schema.brand<Schema.String, "effect-auth/PasskeyUserHandle">;
|
|
1318
|
+
readonly name: Schema.NonEmptyString;
|
|
1319
|
+
readonly displayName: Schema.NonEmptyString;
|
|
1320
|
+
}>;
|
|
1321
|
+
readonly pubKeyCredParams: Schema.NonEmptyArray<Schema.Struct<{
|
|
1322
|
+
readonly type: Schema.Literal<"public-key">;
|
|
1323
|
+
readonly alg: Schema.Literals<readonly [-7, -257]>;
|
|
1324
|
+
}>>;
|
|
1325
|
+
readonly timeout: Schema.Int;
|
|
1326
|
+
readonly attestation: Schema.Literal<"none">;
|
|
1327
|
+
readonly authenticatorSelection: Schema.Struct<{
|
|
1328
|
+
readonly residentKey: Schema.Literals<readonly ["required", "preferred", "discouraged"]>;
|
|
1329
|
+
readonly userVerification: Schema.Literals<readonly ["required", "preferred"]>;
|
|
1330
|
+
}>;
|
|
1331
|
+
readonly excludeCredentials: Schema.$Array<Schema.Struct<{
|
|
1332
|
+
readonly type: Schema.Literal<"public-key">;
|
|
1333
|
+
readonly id: Schema.brand<Schema.String, "effect-auth/PasskeyProtocolCredentialId">;
|
|
1334
|
+
}>>;
|
|
1335
|
+
}>;
|
|
1336
|
+
}>, Schema.Union<readonly [Schema.Union<readonly [typeof PasskeyRejected, typeof PasskeyUnavailable, typeof PasskeyActionRequired, typeof PasskeyMethodUnsupported, typeof HookDenied]>, Schema.Union<readonly [typeof InvalidOperationInput, typeof AuthenticationRequired, typeof OperationForbidden, typeof AssuranceRequired, typeof OperationPrivateOutputUnsupported]>]>, never, never> | import("effect/unstable/rpc/Rpc").Rpc<`${Id}/passkey/enrollment/complete`, Schema.Struct<{
|
|
1337
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
1338
|
+
readonly bindingCredential: Schema.RedactedFromValue<Schema.String>;
|
|
1339
|
+
readonly response: Schema.RedactedFromValue<Schema.NonEmptyString>;
|
|
1340
|
+
readonly actionProof: Schema.optionalKey<Schema.RedactedFromValue<Schema.NonEmptyString>>;
|
|
1341
|
+
}>, Schema.Struct<{
|
|
1342
|
+
readonly credential: Schema.Struct<{
|
|
1343
|
+
readonly credentialId: Schema.NonEmptyString;
|
|
1344
|
+
readonly name: Schema.NonEmptyString;
|
|
1345
|
+
readonly primarySignIn: Schema.Boolean;
|
|
1346
|
+
readonly createdAtMillis: Schema.Int;
|
|
1347
|
+
readonly lastUsedAtMillis: Schema.optionalKey<Schema.Int>;
|
|
1348
|
+
}>;
|
|
1349
|
+
readonly invalidation: Schema.Struct<{
|
|
1350
|
+
readonly trigger: Schema.Literals<readonly ["password-reset", "factor-reset", "credential-change", "subject-disable", "subject-delete", "identifier-change", "all-session-revocation"]>;
|
|
1351
|
+
readonly existingSessions: Schema.Literals<readonly ["immediate", "original-absolute-expiry"]>;
|
|
1352
|
+
readonly maximumExposureMillis: Schema.Natural;
|
|
1353
|
+
readonly oldAuthenticationEvidence: Schema.Literal<"rejected">;
|
|
1354
|
+
}>;
|
|
1355
|
+
}>, Schema.Union<readonly [Schema.Union<readonly [typeof PasskeyRejected, typeof PasskeyUnavailable, typeof PasskeyActionRequired, typeof PasskeyMethodUnsupported, typeof HookDenied]>, Schema.Union<readonly [typeof InvalidOperationInput, typeof AuthenticationRequired, typeof OperationForbidden, typeof AssuranceRequired, typeof OperationPrivateOutputUnsupported]>]>, never, never> | import("effect/unstable/rpc/Rpc").Rpc<`${Id}/passkey/list`, Schema.Struct<{
|
|
1356
|
+
readonly cursor: Schema.optionalKey<Schema.String>;
|
|
1357
|
+
readonly limit: Schema.Int;
|
|
1358
|
+
}>, Schema.Struct<{
|
|
1359
|
+
readonly credentials: Schema.$Array<Schema.Struct<{
|
|
1360
|
+
readonly credentialId: Schema.NonEmptyString;
|
|
1361
|
+
readonly name: Schema.NonEmptyString;
|
|
1362
|
+
readonly primarySignIn: Schema.Boolean;
|
|
1363
|
+
readonly createdAtMillis: Schema.Int;
|
|
1364
|
+
readonly lastUsedAtMillis: Schema.optionalKey<Schema.Int>;
|
|
1365
|
+
}>>;
|
|
1366
|
+
readonly cursor: Schema.optionalKey<Schema.String>;
|
|
1367
|
+
}>, Schema.Union<readonly [Schema.Union<readonly [typeof PasskeyRejected, typeof PasskeyUnavailable, typeof PasskeyActionRequired, typeof PasskeyMethodUnsupported, typeof HookDenied]>, Schema.Union<readonly [typeof InvalidOperationInput, typeof AuthenticationRequired, typeof OperationForbidden, typeof AssuranceRequired, typeof OperationPrivateOutputUnsupported]>]>, never, never> | import("effect/unstable/rpc/Rpc").Rpc<`${Id}/passkey/remove`, Schema.Struct<{
|
|
1368
|
+
readonly commandId: Schema.String;
|
|
1369
|
+
readonly credentialId: Schema.NonEmptyString;
|
|
1370
|
+
readonly actionProof: Schema.optionalKey<Schema.RedactedFromValue<Schema.NonEmptyString>>;
|
|
1371
|
+
}>, Schema.Struct<{
|
|
1372
|
+
readonly credentialId: Schema.NonEmptyString;
|
|
1373
|
+
readonly replayed: Schema.Boolean;
|
|
1374
|
+
readonly invalidation: Schema.Struct<{
|
|
1375
|
+
readonly trigger: Schema.Literals<readonly ["password-reset", "factor-reset", "credential-change", "subject-disable", "subject-delete", "identifier-change", "all-session-revocation"]>;
|
|
1376
|
+
readonly existingSessions: Schema.Literals<readonly ["immediate", "original-absolute-expiry"]>;
|
|
1377
|
+
readonly maximumExposureMillis: Schema.Natural;
|
|
1378
|
+
readonly oldAuthenticationEvidence: Schema.Literal<"rejected">;
|
|
1379
|
+
}>;
|
|
1380
|
+
}>, Schema.Union<readonly [Schema.Union<readonly [Schema.Union<readonly [typeof PasskeyRejected, typeof PasskeyUnavailable, typeof PasskeyActionRequired, typeof PasskeyMethodUnsupported, typeof HookDenied]>, typeof LastSignInMethod]>, Schema.Union<readonly [typeof InvalidOperationInput, typeof AuthenticationRequired, typeof OperationForbidden, typeof AssuranceRequired, typeof OperationPrivateOutputUnsupported]>]>, never, never> | import("effect/unstable/rpc/Rpc").Rpc<`${Id}/passkey/rename`, Schema.Struct<{
|
|
1381
|
+
readonly commandId: Schema.String;
|
|
1382
|
+
readonly credentialId: Schema.NonEmptyString;
|
|
1383
|
+
readonly name: Schema.NonEmptyString;
|
|
1384
|
+
}>, Schema.Struct<{
|
|
1385
|
+
readonly credential: Schema.Struct<{
|
|
1386
|
+
readonly credentialId: Schema.NonEmptyString;
|
|
1387
|
+
readonly name: Schema.NonEmptyString;
|
|
1388
|
+
readonly primarySignIn: Schema.Boolean;
|
|
1389
|
+
readonly createdAtMillis: Schema.Int;
|
|
1390
|
+
readonly lastUsedAtMillis: Schema.optionalKey<Schema.Int>;
|
|
1391
|
+
}>;
|
|
1392
|
+
readonly replayed: Schema.Boolean;
|
|
1393
|
+
}>, Schema.Union<readonly [Schema.Union<readonly [typeof PasskeyRejected, typeof PasskeyUnavailable, typeof PasskeyActionRequired, typeof PasskeyMethodUnsupported, typeof HookDenied]>, Schema.Union<readonly [typeof InvalidOperationInput, typeof AuthenticationRequired, typeof OperationForbidden, typeof AssuranceRequired, typeof OperationPrivateOutputUnsupported]>]>, never, never>>;
|
|
1394
|
+
handlersLayer: Layer.Layer<OperationHandler<`${Id}/passkey/enrollment/begin`, {
|
|
1395
|
+
readonly flowId: string & import("effect/Brand").Brand<"effect-auth/RequestBindingFlowId">;
|
|
1396
|
+
readonly commandId: string;
|
|
1397
|
+
readonly profileId: string;
|
|
1398
|
+
readonly name: string;
|
|
1399
|
+
readonly actionProof?: import("effect/Redacted").Redacted<string> | undefined;
|
|
1400
|
+
}, {
|
|
1401
|
+
readonly flowId: string & import("effect/Brand").Brand<"effect-auth/RequestBindingFlowId">;
|
|
1402
|
+
readonly expiresAtMillis: number;
|
|
1403
|
+
readonly options: {
|
|
1404
|
+
readonly challenge: string;
|
|
1405
|
+
readonly rp: {
|
|
1406
|
+
readonly id: string;
|
|
1407
|
+
readonly name: string;
|
|
1408
|
+
};
|
|
1409
|
+
readonly user: {
|
|
1410
|
+
readonly id: string & import("effect/Brand").Brand<"effect-auth/PasskeyUserHandle">;
|
|
1411
|
+
readonly name: string;
|
|
1412
|
+
readonly displayName: string;
|
|
1413
|
+
};
|
|
1414
|
+
readonly pubKeyCredParams: readonly [{
|
|
1415
|
+
readonly type: "public-key";
|
|
1416
|
+
readonly alg: -257 | -7;
|
|
1417
|
+
}, ...{
|
|
1418
|
+
readonly type: "public-key";
|
|
1419
|
+
readonly alg: -257 | -7;
|
|
1420
|
+
}[]];
|
|
1421
|
+
readonly timeout: number;
|
|
1422
|
+
readonly attestation: "none";
|
|
1423
|
+
readonly authenticatorSelection: {
|
|
1424
|
+
readonly residentKey: "discouraged" | "preferred" | "required";
|
|
1425
|
+
readonly userVerification: "preferred" | "required";
|
|
1426
|
+
};
|
|
1427
|
+
readonly excludeCredentials: readonly {
|
|
1428
|
+
readonly type: "public-key";
|
|
1429
|
+
readonly id: string & import("effect/Brand").Brand<"effect-auth/PasskeyProtocolCredentialId">;
|
|
1430
|
+
}[];
|
|
1431
|
+
};
|
|
1432
|
+
}, AssuranceRequired | AuthenticationRequired | HookDenied | InvalidOperationInput | OperationForbidden | OperationPrivateOutputUnsupported | PasskeyActionRequired | PasskeyMethodUnsupported | PasskeyRejected | PasskeyUnavailable> | OperationHandler<`${Id}/passkey/enrollment/complete`, {
|
|
1433
|
+
readonly flowId: string & import("effect/Brand").Brand<"effect-auth/RequestBindingFlowId">;
|
|
1434
|
+
readonly bindingCredential: import("effect/Redacted").Redacted<string>;
|
|
1435
|
+
readonly response: import("effect/Redacted").Redacted<string>;
|
|
1436
|
+
readonly actionProof?: import("effect/Redacted").Redacted<string> | undefined;
|
|
1437
|
+
}, {
|
|
1438
|
+
readonly credential: {
|
|
1439
|
+
readonly credentialId: string;
|
|
1440
|
+
readonly name: string;
|
|
1441
|
+
readonly primarySignIn: boolean;
|
|
1442
|
+
readonly createdAtMillis: number;
|
|
1443
|
+
readonly lastUsedAtMillis?: number | undefined;
|
|
1444
|
+
};
|
|
1445
|
+
readonly invalidation: {
|
|
1446
|
+
readonly trigger: "all-session-revocation" | "credential-change" | "factor-reset" | "identifier-change" | "password-reset" | "subject-delete" | "subject-disable";
|
|
1447
|
+
readonly existingSessions: "immediate" | "original-absolute-expiry";
|
|
1448
|
+
readonly maximumExposureMillis: number;
|
|
1449
|
+
readonly oldAuthenticationEvidence: "rejected";
|
|
1450
|
+
};
|
|
1451
|
+
}, AssuranceRequired | AuthenticationRequired | HookDenied | InvalidOperationInput | OperationForbidden | OperationPrivateOutputUnsupported | PasskeyActionRequired | PasskeyMethodUnsupported | PasskeyRejected | PasskeyUnavailable> | OperationHandler<`${Id}/passkey/list`, {
|
|
1452
|
+
readonly cursor?: string | undefined;
|
|
1453
|
+
readonly limit: number;
|
|
1454
|
+
}, {
|
|
1455
|
+
readonly credentials: readonly {
|
|
1456
|
+
readonly credentialId: string;
|
|
1457
|
+
readonly name: string;
|
|
1458
|
+
readonly primarySignIn: boolean;
|
|
1459
|
+
readonly createdAtMillis: number;
|
|
1460
|
+
readonly lastUsedAtMillis?: number | undefined;
|
|
1461
|
+
}[];
|
|
1462
|
+
readonly cursor?: string | undefined;
|
|
1463
|
+
}, AssuranceRequired | AuthenticationRequired | HookDenied | InvalidOperationInput | OperationForbidden | OperationPrivateOutputUnsupported | PasskeyActionRequired | PasskeyMethodUnsupported | PasskeyRejected | PasskeyUnavailable> | OperationHandler<`${Id}/passkey/remove`, {
|
|
1464
|
+
readonly commandId: string;
|
|
1465
|
+
readonly credentialId: string;
|
|
1466
|
+
readonly actionProof?: import("effect/Redacted").Redacted<string> | undefined;
|
|
1467
|
+
}, {
|
|
1468
|
+
readonly credentialId: string;
|
|
1469
|
+
readonly replayed: boolean;
|
|
1470
|
+
readonly invalidation: {
|
|
1471
|
+
readonly trigger: "all-session-revocation" | "credential-change" | "factor-reset" | "identifier-change" | "password-reset" | "subject-delete" | "subject-disable";
|
|
1472
|
+
readonly existingSessions: "immediate" | "original-absolute-expiry";
|
|
1473
|
+
readonly maximumExposureMillis: number;
|
|
1474
|
+
readonly oldAuthenticationEvidence: "rejected";
|
|
1475
|
+
};
|
|
1476
|
+
}, AssuranceRequired | AuthenticationRequired | HookDenied | InvalidOperationInput | LastSignInMethod | OperationForbidden | OperationPrivateOutputUnsupported | PasskeyActionRequired | PasskeyMethodUnsupported | PasskeyRejected | PasskeyUnavailable> | OperationHandler<`${Id}/passkey/rename`, {
|
|
1477
|
+
readonly commandId: string;
|
|
1478
|
+
readonly credentialId: string;
|
|
1479
|
+
readonly name: string;
|
|
1480
|
+
}, {
|
|
1481
|
+
readonly credential: {
|
|
1482
|
+
readonly credentialId: string;
|
|
1483
|
+
readonly name: string;
|
|
1484
|
+
readonly primarySignIn: boolean;
|
|
1485
|
+
readonly createdAtMillis: number;
|
|
1486
|
+
readonly lastUsedAtMillis?: number | undefined;
|
|
1487
|
+
};
|
|
1488
|
+
readonly replayed: boolean;
|
|
1489
|
+
}, AssuranceRequired | AuthenticationRequired | HookDenied | InvalidOperationInput | OperationForbidden | OperationPrivateOutputUnsupported | PasskeyActionRequired | PasskeyMethodUnsupported | PasskeyRejected | PasskeyUnavailable>, never, {
|
|
1490
|
+
readonly moduleId: Id;
|
|
1491
|
+
readonly kind: "passkey-management";
|
|
1492
|
+
}>;
|
|
1493
|
+
strategy: Readonly<{
|
|
1494
|
+
completion: false;
|
|
1495
|
+
make: Effect.Effect<{
|
|
1496
|
+
readonly enrollPasskey: (input: {
|
|
1497
|
+
readonly flowId: string;
|
|
1498
|
+
readonly commandId: string;
|
|
1499
|
+
readonly profileId: string;
|
|
1500
|
+
readonly name: string;
|
|
1501
|
+
readonly actionProof?: string | undefined;
|
|
1502
|
+
}) => Effect.Effect<{
|
|
1503
|
+
readonly flowId: string & import("effect/Brand").Brand<"effect-auth/RequestBindingFlowId">;
|
|
1504
|
+
readonly expiresAtMillis: number;
|
|
1505
|
+
readonly options: {
|
|
1506
|
+
readonly challenge: string;
|
|
1507
|
+
readonly rp: {
|
|
1508
|
+
readonly id: string;
|
|
1509
|
+
readonly name: string;
|
|
1510
|
+
};
|
|
1511
|
+
readonly user: {
|
|
1512
|
+
readonly id: string & import("effect/Brand").Brand<"effect-auth/PasskeyUserHandle">;
|
|
1513
|
+
readonly name: string;
|
|
1514
|
+
readonly displayName: string;
|
|
1515
|
+
};
|
|
1516
|
+
readonly pubKeyCredParams: readonly [{
|
|
1517
|
+
readonly type: "public-key";
|
|
1518
|
+
readonly alg: -257 | -7;
|
|
1519
|
+
}, ...{
|
|
1520
|
+
readonly type: "public-key";
|
|
1521
|
+
readonly alg: -257 | -7;
|
|
1522
|
+
}[]];
|
|
1523
|
+
readonly timeout: number;
|
|
1524
|
+
readonly attestation: "none";
|
|
1525
|
+
readonly authenticatorSelection: {
|
|
1526
|
+
readonly residentKey: "discouraged" | "preferred" | "required";
|
|
1527
|
+
readonly userVerification: "preferred" | "required";
|
|
1528
|
+
};
|
|
1529
|
+
readonly excludeCredentials: readonly {
|
|
1530
|
+
readonly type: "public-key";
|
|
1531
|
+
readonly id: string & import("effect/Brand").Brand<"effect-auth/PasskeyProtocolCredentialId">;
|
|
1532
|
+
}[];
|
|
1533
|
+
};
|
|
1534
|
+
}, PasskeyActionRequired | PasskeyMethodUnsupported | PasskeyRejected | PasskeyUnavailable | SessionApiError, AuthRequest>;
|
|
1535
|
+
readonly completePasskeyEnrollment: (input: {
|
|
1536
|
+
readonly flowId: string;
|
|
1537
|
+
readonly bindingCredential: string;
|
|
1538
|
+
readonly response: string;
|
|
1539
|
+
readonly actionProof?: string | undefined;
|
|
1540
|
+
}) => Effect.Effect<{
|
|
1541
|
+
readonly credential: {
|
|
1542
|
+
readonly credentialId: string;
|
|
1543
|
+
readonly name: string;
|
|
1544
|
+
readonly primarySignIn: boolean;
|
|
1545
|
+
readonly createdAtMillis: number;
|
|
1546
|
+
readonly lastUsedAtMillis?: number | undefined;
|
|
1547
|
+
};
|
|
1548
|
+
readonly invalidation: {
|
|
1549
|
+
readonly trigger: "all-session-revocation" | "credential-change" | "factor-reset" | "identifier-change" | "password-reset" | "subject-delete" | "subject-disable";
|
|
1550
|
+
readonly existingSessions: "immediate" | "original-absolute-expiry";
|
|
1551
|
+
readonly maximumExposureMillis: number;
|
|
1552
|
+
readonly oldAuthenticationEvidence: "rejected";
|
|
1553
|
+
};
|
|
1554
|
+
}, PasskeyActionRequired | PasskeyMethodUnsupported | PasskeyRejected | PasskeyUnavailable | SessionApiError, AuthRequest>;
|
|
1555
|
+
readonly listPasskeys: (input: {
|
|
1556
|
+
readonly cursor?: string | undefined;
|
|
1557
|
+
readonly limit: number;
|
|
1558
|
+
}) => Effect.Effect<{
|
|
1559
|
+
readonly credentials: readonly {
|
|
1560
|
+
readonly credentialId: string;
|
|
1561
|
+
readonly name: string;
|
|
1562
|
+
readonly primarySignIn: boolean;
|
|
1563
|
+
readonly createdAtMillis: number;
|
|
1564
|
+
readonly lastUsedAtMillis?: number | undefined;
|
|
1565
|
+
}[];
|
|
1566
|
+
readonly cursor?: string | undefined;
|
|
1567
|
+
}, PasskeyActionRequired | PasskeyMethodUnsupported | PasskeyRejected | PasskeyUnavailable | SessionApiError, AuthRequest>;
|
|
1568
|
+
readonly renamePasskey: (input: {
|
|
1569
|
+
readonly commandId: string;
|
|
1570
|
+
readonly credentialId: string;
|
|
1571
|
+
readonly name: string;
|
|
1572
|
+
}) => Effect.Effect<{
|
|
1573
|
+
readonly credential: {
|
|
1574
|
+
readonly credentialId: string;
|
|
1575
|
+
readonly name: string;
|
|
1576
|
+
readonly primarySignIn: boolean;
|
|
1577
|
+
readonly createdAtMillis: number;
|
|
1578
|
+
readonly lastUsedAtMillis?: number | undefined;
|
|
1579
|
+
};
|
|
1580
|
+
readonly replayed: boolean;
|
|
1581
|
+
}, PasskeyActionRequired | PasskeyMethodUnsupported | PasskeyRejected | PasskeyUnavailable | SessionApiError, AuthRequest>;
|
|
1582
|
+
readonly removePasskey: (input: {
|
|
1583
|
+
readonly commandId: string;
|
|
1584
|
+
readonly credentialId: string;
|
|
1585
|
+
readonly actionProof?: string | undefined;
|
|
1586
|
+
}) => Effect.Effect<{
|
|
1587
|
+
readonly credentialId: string;
|
|
1588
|
+
readonly replayed: boolean;
|
|
1589
|
+
readonly invalidation: {
|
|
1590
|
+
readonly trigger: "all-session-revocation" | "credential-change" | "factor-reset" | "identifier-change" | "password-reset" | "subject-delete" | "subject-disable";
|
|
1591
|
+
readonly existingSessions: "immediate" | "original-absolute-expiry";
|
|
1592
|
+
readonly maximumExposureMillis: number;
|
|
1593
|
+
readonly oldAuthenticationEvidence: "rejected";
|
|
1594
|
+
};
|
|
1595
|
+
}, LastSignInMethod | PasskeyActionRequired | PasskeyMethodUnsupported | PasskeyRejected | PasskeyUnavailable | SessionApiError, AuthRequest>;
|
|
1596
|
+
}, AuthConfigurationError | PasskeyConfigurationError | RequestBindingConfigurationError, Layer.CurrentMemoMap | ModuleService<SessionId, "strategy", Claims["Type"]> | PasskeyActionEvidence | PasskeyEnrollmentContext | PasskeyManagementPersistence | PasskeyPersistence | PasskeyProtocol | RequestBindingConfig | import("effect/Scope").Scope>;
|
|
1597
|
+
}>;
|
|
1598
|
+
}>;
|
|
1599
|
+
pending: Readonly<{
|
|
1600
|
+
Pending: Context.Service<{
|
|
1601
|
+
readonly moduleId: Id;
|
|
1602
|
+
readonly kind: "passkey-pending";
|
|
1603
|
+
readonly claims: Types.Invariant<Claims["Type"]>;
|
|
1604
|
+
}, {
|
|
1605
|
+
readonly begin: (invocation: AuthInvocation, input: {
|
|
1606
|
+
readonly flowId: string & import("effect/Brand").Brand<"effect-auth/RequestBindingFlowId">;
|
|
1607
|
+
readonly commandId: string;
|
|
1608
|
+
readonly profileId: string;
|
|
1609
|
+
readonly pendingCredential: import("effect/Redacted").Redacted<string>;
|
|
1610
|
+
}) => Effect.Effect<AuthOperationResult<PasskeyAuthenticationStarted>, PasskeyFailure>;
|
|
1611
|
+
readonly complete: (invocation: AuthInvocation, input: {
|
|
1612
|
+
readonly flowId: string & import("effect/Brand").Brand<"effect-auth/RequestBindingFlowId">;
|
|
1613
|
+
readonly bindingCredential: import("effect/Redacted").Redacted<string>;
|
|
1614
|
+
readonly response: import("effect/Redacted").Redacted<string>;
|
|
1615
|
+
readonly pendingCredential: import("effect/Redacted").Redacted<string>;
|
|
1616
|
+
}) => Effect.Effect<AuthOperationResult<{
|
|
1617
|
+
readonly _tag: "Authenticated";
|
|
1618
|
+
readonly session: {
|
|
1619
|
+
readonly sessionId: string & import("effect/Brand").Brand<"effect-auth/SessionId">;
|
|
1620
|
+
readonly subjectId: string & import("effect/Brand").Brand<"effect-auth/SubjectId">;
|
|
1621
|
+
readonly securityRevision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
|
|
1622
|
+
readonly assurance: AuthenticationAssurance;
|
|
1623
|
+
readonly issuedAt: DateTime.Utc;
|
|
1624
|
+
readonly expiresAt: DateTime.Utc;
|
|
1625
|
+
readonly absoluteExpiresAt: DateTime.Utc;
|
|
1626
|
+
readonly claims: Claims["Type"];
|
|
1627
|
+
};
|
|
1628
|
+
} | {
|
|
1629
|
+
readonly _tag: "PendingAuthentication";
|
|
1630
|
+
readonly expiresAt: DateTime.Utc;
|
|
1631
|
+
}>, HookDenied | PasskeyActionRequired | PasskeyMethodUnsupported | PasskeyRejected | PasskeyUnavailable, never>;
|
|
1632
|
+
}>;
|
|
1633
|
+
binding: Readonly<{
|
|
1634
|
+
RequestBinding: Context.Service<BindingModule<Id, "passkey-pending">, {
|
|
1635
|
+
readonly issue: (flowId: RequestBindingFlowId) => Effect.Effect<AuthOperationResult<RequestBindingPublic>, RequestBindingUnavailable | RequestBindingInvalid>;
|
|
1636
|
+
readonly verify: (flowId: RequestBindingFlowId, credential: import("effect/Redacted").Redacted<string>) => Effect.Effect<VerifiedRequestBinding, RequestBindingInvalid | RequestBindingUnavailable>;
|
|
1637
|
+
}>;
|
|
1638
|
+
signedLayer: (configuration: RequestBindingConfiguration) => Layer.Layer<BindingModule<Id, "passkey-pending">, RequestBindingConfigurationError, import("effect/Crypto").Crypto | SubtleCrypto>;
|
|
1639
|
+
layer: Layer.Layer<BindingModule<Id, "passkey-pending">, RequestBindingConfigurationError, import("effect/Crypto").Crypto | RequestBindingConfig | SubtleCrypto>;
|
|
1640
|
+
}>;
|
|
1641
|
+
layer: Layer.Layer<{
|
|
1642
|
+
readonly moduleId: Id;
|
|
1643
|
+
readonly kind: "passkey-pending";
|
|
1644
|
+
readonly claims: Types.Invariant<Claims["Type"]>;
|
|
1645
|
+
}, PasskeyConfigurationError, AuthenticationAuthority | BindingModule<Id, "passkey-pending"> | import("effect/Crypto").Crypto | LifecycleHooks | ModuleService<SessionId, "completion", Claims["Type"]> | PasskeyCredentials | PasskeyEnrollmentContext | PasskeyPersistence | PasskeyProtocol>;
|
|
1646
|
+
operations: Readonly<{
|
|
1647
|
+
Begin: AuthOperation<`${Id}/passkey/pending/begin`, Schema.Struct<{
|
|
1648
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
1649
|
+
readonly commandId: Schema.String;
|
|
1650
|
+
readonly profileId: Schema.String;
|
|
1651
|
+
readonly pendingCredential: Schema.RedactedFromValue<Schema.NonEmptyString>;
|
|
1652
|
+
}>, Schema.Struct<{
|
|
1653
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
1654
|
+
readonly expiresAtMillis: Schema.Int;
|
|
1655
|
+
readonly options: Schema.Struct<{
|
|
1656
|
+
readonly challenge: Schema.String;
|
|
1657
|
+
readonly rpId: Schema.String;
|
|
1658
|
+
readonly timeout: Schema.Int;
|
|
1659
|
+
readonly userVerification: Schema.Literals<readonly ["required", "preferred"]>;
|
|
1660
|
+
readonly allowCredentials: Schema.$Array<Schema.Struct<{
|
|
1661
|
+
readonly type: Schema.Literal<"public-key">;
|
|
1662
|
+
readonly id: Schema.brand<Schema.String, "effect-auth/PasskeyProtocolCredentialId">;
|
|
1663
|
+
}>>;
|
|
1664
|
+
}>;
|
|
1665
|
+
}>, Schema.Union<readonly [typeof PasskeyRejected, typeof PasskeyUnavailable, typeof PasskeyActionRequired, typeof PasskeyMethodUnsupported, typeof HookDenied]>, never, {
|
|
1666
|
+
readonly payload: Schema.Struct<{
|
|
1667
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
1668
|
+
readonly commandId: Schema.String;
|
|
1669
|
+
readonly profileId: Schema.String;
|
|
1670
|
+
readonly pendingCredential: Schema.RedactedFromValue<Schema.NonEmptyString>;
|
|
1671
|
+
}>;
|
|
1672
|
+
readonly success: Schema.Struct<{
|
|
1673
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
1674
|
+
readonly expiresAtMillis: Schema.Int;
|
|
1675
|
+
readonly options: Schema.Struct<{
|
|
1676
|
+
readonly challenge: Schema.String;
|
|
1677
|
+
readonly rpId: Schema.String;
|
|
1678
|
+
readonly timeout: Schema.Int;
|
|
1679
|
+
readonly userVerification: Schema.Literals<readonly ["required", "preferred"]>;
|
|
1680
|
+
readonly allowCredentials: Schema.$Array<Schema.Struct<{
|
|
1681
|
+
readonly type: Schema.Literal<"public-key">;
|
|
1682
|
+
readonly id: Schema.brand<Schema.String, "effect-auth/PasskeyProtocolCredentialId">;
|
|
1683
|
+
}>>;
|
|
1684
|
+
}>;
|
|
1685
|
+
}>;
|
|
1686
|
+
readonly error: Schema.Union<readonly [typeof PasskeyRejected, typeof PasskeyUnavailable, typeof PasskeyActionRequired, typeof PasskeyMethodUnsupported, typeof HookDenied]>;
|
|
1687
|
+
readonly exposure: "public";
|
|
1688
|
+
readonly access: "any";
|
|
1689
|
+
readonly replay: "single-use";
|
|
1690
|
+
readonly credentials: true;
|
|
1691
|
+
}>;
|
|
1692
|
+
Complete: AuthOperation<`${Id}/passkey/pending/complete`, Schema.Struct<{
|
|
1693
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
1694
|
+
readonly bindingCredential: Schema.RedactedFromValue<Schema.String>;
|
|
1695
|
+
readonly response: Schema.RedactedFromValue<Schema.NonEmptyString>;
|
|
1696
|
+
readonly pendingCredential: Schema.RedactedFromValue<Schema.NonEmptyString>;
|
|
1697
|
+
}>, Schema.Union<readonly [Schema.TaggedStruct<"Authenticated", {
|
|
1698
|
+
readonly session: Schema.Struct<{
|
|
1699
|
+
readonly sessionId: Schema.brand<Schema.NonEmptyString, "effect-auth/SessionId">;
|
|
1700
|
+
readonly subjectId: Schema.brand<Schema.NonEmptyString, "effect-auth/SubjectId">;
|
|
1701
|
+
readonly securityRevision: Schema.brand<Schema.NonEmptyString, "effect-auth/SecurityRevision">;
|
|
1702
|
+
readonly assurance: typeof AuthenticationAssurance;
|
|
1703
|
+
readonly issuedAt: Schema.DateTimeUtcFromMillis;
|
|
1704
|
+
readonly expiresAt: Schema.DateTimeUtcFromMillis;
|
|
1705
|
+
readonly absoluteExpiresAt: Schema.DateTimeUtcFromMillis;
|
|
1706
|
+
readonly claims: Schema.Codec<Claims["Type"], Claims["Encoded"], Claims["DecodingServices"], Claims["EncodingServices"]>;
|
|
1707
|
+
}>;
|
|
1708
|
+
}>, Schema.TaggedStruct<"PendingAuthentication", {
|
|
1709
|
+
readonly expiresAt: Schema.DateTimeUtcFromMillis;
|
|
1710
|
+
}>]>, Schema.Union<readonly [typeof PasskeyRejected, typeof PasskeyUnavailable, typeof PasskeyActionRequired, typeof PasskeyMethodUnsupported, typeof HookDenied]>, never, {
|
|
1711
|
+
readonly payload: Schema.Struct<{
|
|
1712
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
1713
|
+
readonly bindingCredential: Schema.RedactedFromValue<Schema.String>;
|
|
1714
|
+
readonly response: Schema.RedactedFromValue<Schema.NonEmptyString>;
|
|
1715
|
+
readonly pendingCredential: Schema.RedactedFromValue<Schema.NonEmptyString>;
|
|
1716
|
+
}>;
|
|
1717
|
+
readonly success: Schema.Union<readonly [Schema.TaggedStruct<"Authenticated", {
|
|
1718
|
+
readonly session: Schema.Struct<{
|
|
1719
|
+
readonly sessionId: Schema.brand<Schema.NonEmptyString, "effect-auth/SessionId">;
|
|
1720
|
+
readonly subjectId: Schema.brand<Schema.NonEmptyString, "effect-auth/SubjectId">;
|
|
1721
|
+
readonly securityRevision: Schema.brand<Schema.NonEmptyString, "effect-auth/SecurityRevision">;
|
|
1722
|
+
readonly assurance: typeof AuthenticationAssurance;
|
|
1723
|
+
readonly issuedAt: Schema.DateTimeUtcFromMillis;
|
|
1724
|
+
readonly expiresAt: Schema.DateTimeUtcFromMillis;
|
|
1725
|
+
readonly absoluteExpiresAt: Schema.DateTimeUtcFromMillis;
|
|
1726
|
+
readonly claims: Schema.Codec<Claims["Type"], Claims["Encoded"], Claims["DecodingServices"], Claims["EncodingServices"]>;
|
|
1727
|
+
}>;
|
|
1728
|
+
}>, Schema.TaggedStruct<"PendingAuthentication", {
|
|
1729
|
+
readonly expiresAt: Schema.DateTimeUtcFromMillis;
|
|
1730
|
+
}>]>;
|
|
1731
|
+
readonly error: Schema.Union<readonly [typeof PasskeyRejected, typeof PasskeyUnavailable, typeof PasskeyActionRequired, typeof PasskeyMethodUnsupported, typeof HookDenied]>;
|
|
1732
|
+
readonly exposure: "public";
|
|
1733
|
+
readonly access: "any";
|
|
1734
|
+
readonly replay: "single-use";
|
|
1735
|
+
readonly credentials: true;
|
|
1736
|
+
}>;
|
|
1737
|
+
}>;
|
|
1738
|
+
group: import("effect/unstable/rpc/RpcGroup").RpcGroup<import("effect/unstable/rpc/Rpc").Rpc<`${Id}/passkey/pending/begin`, Schema.Struct<{
|
|
1739
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
1740
|
+
readonly commandId: Schema.String;
|
|
1741
|
+
readonly profileId: Schema.String;
|
|
1742
|
+
readonly pendingCredential: Schema.RedactedFromValue<Schema.NonEmptyString>;
|
|
1743
|
+
}>, Schema.Struct<{
|
|
1744
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
1745
|
+
readonly expiresAtMillis: Schema.Int;
|
|
1746
|
+
readonly options: Schema.Struct<{
|
|
1747
|
+
readonly challenge: Schema.String;
|
|
1748
|
+
readonly rpId: Schema.String;
|
|
1749
|
+
readonly timeout: Schema.Int;
|
|
1750
|
+
readonly userVerification: Schema.Literals<readonly ["required", "preferred"]>;
|
|
1751
|
+
readonly allowCredentials: Schema.$Array<Schema.Struct<{
|
|
1752
|
+
readonly type: Schema.Literal<"public-key">;
|
|
1753
|
+
readonly id: Schema.brand<Schema.String, "effect-auth/PasskeyProtocolCredentialId">;
|
|
1754
|
+
}>>;
|
|
1755
|
+
}>;
|
|
1756
|
+
}>, Schema.Union<readonly [Schema.Union<readonly [typeof PasskeyRejected, typeof PasskeyUnavailable, typeof PasskeyActionRequired, typeof PasskeyMethodUnsupported, typeof HookDenied]>, Schema.Union<readonly [typeof InvalidOperationInput, typeof AuthenticationRequired, typeof OperationForbidden, typeof AssuranceRequired, typeof OperationPrivateOutputUnsupported]>]>, never, never> | import("effect/unstable/rpc/Rpc").Rpc<`${Id}/passkey/pending/complete`, Schema.Struct<{
|
|
1757
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
1758
|
+
readonly bindingCredential: Schema.RedactedFromValue<Schema.String>;
|
|
1759
|
+
readonly response: Schema.RedactedFromValue<Schema.NonEmptyString>;
|
|
1760
|
+
readonly pendingCredential: Schema.RedactedFromValue<Schema.NonEmptyString>;
|
|
1761
|
+
}>, Schema.Union<readonly [Schema.TaggedStruct<"Authenticated", {
|
|
1762
|
+
readonly session: Schema.Struct<{
|
|
1763
|
+
readonly sessionId: Schema.brand<Schema.NonEmptyString, "effect-auth/SessionId">;
|
|
1764
|
+
readonly subjectId: Schema.brand<Schema.NonEmptyString, "effect-auth/SubjectId">;
|
|
1765
|
+
readonly securityRevision: Schema.brand<Schema.NonEmptyString, "effect-auth/SecurityRevision">;
|
|
1766
|
+
readonly assurance: typeof AuthenticationAssurance;
|
|
1767
|
+
readonly issuedAt: Schema.DateTimeUtcFromMillis;
|
|
1768
|
+
readonly expiresAt: Schema.DateTimeUtcFromMillis;
|
|
1769
|
+
readonly absoluteExpiresAt: Schema.DateTimeUtcFromMillis;
|
|
1770
|
+
readonly claims: Schema.Codec<Claims["Type"], Claims["Encoded"], Claims["DecodingServices"], Claims["EncodingServices"]>;
|
|
1771
|
+
}>;
|
|
1772
|
+
}>, Schema.TaggedStruct<"PendingAuthentication", {
|
|
1773
|
+
readonly expiresAt: Schema.DateTimeUtcFromMillis;
|
|
1774
|
+
}>]>, Schema.Union<readonly [Schema.Union<readonly [typeof PasskeyRejected, typeof PasskeyUnavailable, typeof PasskeyActionRequired, typeof PasskeyMethodUnsupported, typeof HookDenied]>, Schema.Union<readonly [typeof InvalidOperationInput, typeof AuthenticationRequired, typeof OperationForbidden, typeof AssuranceRequired, typeof OperationPrivateOutputUnsupported]>]>, never, never>>;
|
|
1775
|
+
handlersLayer: Layer.Layer<OperationHandler<`${Id}/passkey/pending/begin`, {
|
|
1776
|
+
readonly flowId: string & import("effect/Brand").Brand<"effect-auth/RequestBindingFlowId">;
|
|
1777
|
+
readonly commandId: string;
|
|
1778
|
+
readonly profileId: string;
|
|
1779
|
+
readonly pendingCredential: import("effect/Redacted").Redacted<string>;
|
|
1780
|
+
}, {
|
|
1781
|
+
readonly flowId: string & import("effect/Brand").Brand<"effect-auth/RequestBindingFlowId">;
|
|
1782
|
+
readonly expiresAtMillis: number;
|
|
1783
|
+
readonly options: {
|
|
1784
|
+
readonly challenge: string;
|
|
1785
|
+
readonly rpId: string;
|
|
1786
|
+
readonly timeout: number;
|
|
1787
|
+
readonly userVerification: "preferred" | "required";
|
|
1788
|
+
readonly allowCredentials: readonly {
|
|
1789
|
+
readonly type: "public-key";
|
|
1790
|
+
readonly id: string & import("effect/Brand").Brand<"effect-auth/PasskeyProtocolCredentialId">;
|
|
1791
|
+
}[];
|
|
1792
|
+
};
|
|
1793
|
+
}, AssuranceRequired | AuthenticationRequired | HookDenied | InvalidOperationInput | OperationForbidden | OperationPrivateOutputUnsupported | PasskeyActionRequired | PasskeyMethodUnsupported | PasskeyRejected | PasskeyUnavailable> | OperationHandler<`${Id}/passkey/pending/complete`, {
|
|
1794
|
+
readonly flowId: string & import("effect/Brand").Brand<"effect-auth/RequestBindingFlowId">;
|
|
1795
|
+
readonly bindingCredential: import("effect/Redacted").Redacted<string>;
|
|
1796
|
+
readonly response: import("effect/Redacted").Redacted<string>;
|
|
1797
|
+
readonly pendingCredential: import("effect/Redacted").Redacted<string>;
|
|
1798
|
+
}, {
|
|
1799
|
+
readonly _tag: "Authenticated";
|
|
1800
|
+
readonly session: {
|
|
1801
|
+
readonly sessionId: string & import("effect/Brand").Brand<"effect-auth/SessionId">;
|
|
1802
|
+
readonly subjectId: string & import("effect/Brand").Brand<"effect-auth/SubjectId">;
|
|
1803
|
+
readonly securityRevision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
|
|
1804
|
+
readonly assurance: AuthenticationAssurance;
|
|
1805
|
+
readonly issuedAt: DateTime.Utc;
|
|
1806
|
+
readonly expiresAt: DateTime.Utc;
|
|
1807
|
+
readonly absoluteExpiresAt: DateTime.Utc;
|
|
1808
|
+
readonly claims: Claims["Type"];
|
|
1809
|
+
};
|
|
1810
|
+
} | {
|
|
1811
|
+
readonly _tag: "PendingAuthentication";
|
|
1812
|
+
readonly expiresAt: DateTime.Utc;
|
|
1813
|
+
}, AssuranceRequired | AuthenticationRequired | HookDenied | InvalidOperationInput | OperationForbidden | OperationPrivateOutputUnsupported | PasskeyActionRequired | PasskeyMethodUnsupported | PasskeyRejected | PasskeyUnavailable>, never, {
|
|
1814
|
+
readonly moduleId: Id;
|
|
1815
|
+
readonly kind: "passkey-pending";
|
|
1816
|
+
readonly claims: Types.Invariant<Claims["Type"]>;
|
|
1817
|
+
}>;
|
|
1818
|
+
strategy: Readonly<{
|
|
1819
|
+
completion: boolean;
|
|
1820
|
+
make: Effect.Effect<{
|
|
1821
|
+
readonly beginPending: (input: {
|
|
1822
|
+
readonly flowId: string;
|
|
1823
|
+
readonly commandId: string;
|
|
1824
|
+
readonly profileId: string;
|
|
1825
|
+
readonly pendingCredential: string;
|
|
1826
|
+
}) => Effect.Effect<{
|
|
1827
|
+
readonly flowId: string & import("effect/Brand").Brand<"effect-auth/RequestBindingFlowId">;
|
|
1828
|
+
readonly expiresAtMillis: number;
|
|
1829
|
+
readonly options: {
|
|
1830
|
+
readonly challenge: string;
|
|
1831
|
+
readonly rpId: string;
|
|
1832
|
+
readonly timeout: number;
|
|
1833
|
+
readonly userVerification: "preferred" | "required";
|
|
1834
|
+
readonly allowCredentials: readonly {
|
|
1835
|
+
readonly type: "public-key";
|
|
1836
|
+
readonly id: string & import("effect/Brand").Brand<"effect-auth/PasskeyProtocolCredentialId">;
|
|
1837
|
+
}[];
|
|
1838
|
+
};
|
|
1839
|
+
}, PasskeyActionRequired | PasskeyMethodUnsupported | PasskeyRejected | PasskeyUnavailable | SessionApiError, AuthRequest>;
|
|
1840
|
+
readonly completePending: (input: {
|
|
1841
|
+
readonly flowId: string;
|
|
1842
|
+
readonly bindingCredential: string;
|
|
1843
|
+
readonly response: string;
|
|
1844
|
+
readonly pendingCredential: string;
|
|
1845
|
+
}) => Effect.Effect<{
|
|
1846
|
+
readonly _tag: "Authenticated";
|
|
1847
|
+
readonly session: {
|
|
1848
|
+
readonly sessionId: string & import("effect/Brand").Brand<"effect-auth/SessionId">;
|
|
1849
|
+
readonly subjectId: string & import("effect/Brand").Brand<"effect-auth/SubjectId">;
|
|
1850
|
+
readonly securityRevision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
|
|
1851
|
+
readonly assurance: AuthenticationAssurance;
|
|
1852
|
+
readonly issuedAt: DateTime.Utc;
|
|
1853
|
+
readonly expiresAt: DateTime.Utc;
|
|
1854
|
+
readonly absoluteExpiresAt: DateTime.Utc;
|
|
1855
|
+
readonly claims: Claims["Type"];
|
|
1856
|
+
};
|
|
1857
|
+
} | {
|
|
1858
|
+
readonly _tag: "PendingAuthentication";
|
|
1859
|
+
readonly expiresAt: DateTime.Utc;
|
|
1860
|
+
}, PasskeyActionRequired | PasskeyMethodUnsupported | PasskeyRejected | PasskeyUnavailable | SessionApiError, AuthRequest>;
|
|
1861
|
+
}, AuthConfigurationError | PasskeyConfigurationError | RequestBindingConfigurationError, AuthenticationAuthority | Layer.CurrentMemoMap | ModuleService<SessionId, "completion", Claims["Type"]> | PasskeyCredentials | PasskeyEnrollmentContext | PasskeyPersistence | PasskeyProtocol | RequestBindingConfig | import("effect/Scope").Scope>;
|
|
1862
|
+
}>;
|
|
1863
|
+
}>;
|
|
1864
|
+
stepUp: Readonly<{
|
|
1865
|
+
StepUp: Context.Service<{
|
|
1866
|
+
readonly moduleId: Id;
|
|
1867
|
+
readonly kind: "passkey-step-up";
|
|
1868
|
+
readonly claims: Types.Invariant<Claims["Type"]>;
|
|
1869
|
+
}, {
|
|
1870
|
+
readonly begin: (invocation: AuthInvocation, input: {
|
|
1871
|
+
readonly flowId: string & import("effect/Brand").Brand<"effect-auth/RequestBindingFlowId">;
|
|
1872
|
+
readonly commandId: string;
|
|
1873
|
+
readonly profileId: string;
|
|
1874
|
+
readonly stepUpCredential: import("effect/Redacted").Redacted<string>;
|
|
1875
|
+
}) => Effect.Effect<AuthOperationResult<PasskeyAuthenticationStarted>, PasskeyFailure>;
|
|
1876
|
+
readonly complete: (invocation: AuthInvocation, input: {
|
|
1877
|
+
readonly flowId: string & import("effect/Brand").Brand<"effect-auth/RequestBindingFlowId">;
|
|
1878
|
+
readonly bindingCredential: import("effect/Redacted").Redacted<string>;
|
|
1879
|
+
readonly response: import("effect/Redacted").Redacted<string>;
|
|
1880
|
+
readonly stepUpCredential: import("effect/Redacted").Redacted<string>;
|
|
1881
|
+
readonly sourceCredential: import("effect/Redacted").Redacted<string>;
|
|
1882
|
+
}) => Effect.Effect<AuthOperationResult<{
|
|
1883
|
+
readonly sessionId: string & import("effect/Brand").Brand<"effect-auth/SessionId">;
|
|
1884
|
+
readonly subjectId: string & import("effect/Brand").Brand<"effect-auth/SubjectId">;
|
|
1885
|
+
readonly securityRevision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
|
|
1886
|
+
readonly assurance: AuthenticationAssurance;
|
|
1887
|
+
readonly issuedAt: DateTime.Utc;
|
|
1888
|
+
readonly expiresAt: DateTime.Utc;
|
|
1889
|
+
readonly absoluteExpiresAt: DateTime.Utc;
|
|
1890
|
+
readonly claims: Claims["Type"];
|
|
1891
|
+
}>, HookDenied | PasskeyActionRequired | PasskeyMethodUnsupported | PasskeyRejected | PasskeyUnavailable, never>;
|
|
1892
|
+
}>;
|
|
1893
|
+
binding: Readonly<{
|
|
1894
|
+
RequestBinding: Context.Service<BindingModule<Id, "passkey-step-up">, {
|
|
1895
|
+
readonly issue: (flowId: RequestBindingFlowId) => Effect.Effect<AuthOperationResult<RequestBindingPublic>, RequestBindingUnavailable | RequestBindingInvalid>;
|
|
1896
|
+
readonly verify: (flowId: RequestBindingFlowId, credential: import("effect/Redacted").Redacted<string>) => Effect.Effect<VerifiedRequestBinding, RequestBindingInvalid | RequestBindingUnavailable>;
|
|
1897
|
+
}>;
|
|
1898
|
+
signedLayer: (configuration: RequestBindingConfiguration) => Layer.Layer<BindingModule<Id, "passkey-step-up">, RequestBindingConfigurationError, import("effect/Crypto").Crypto | SubtleCrypto>;
|
|
1899
|
+
layer: Layer.Layer<BindingModule<Id, "passkey-step-up">, RequestBindingConfigurationError, import("effect/Crypto").Crypto | RequestBindingConfig | SubtleCrypto>;
|
|
1900
|
+
}>;
|
|
1901
|
+
layer: Layer.Layer<{
|
|
1902
|
+
readonly moduleId: Id;
|
|
1903
|
+
readonly kind: "passkey-step-up";
|
|
1904
|
+
readonly claims: Types.Invariant<Claims["Type"]>;
|
|
1905
|
+
}, PasskeyConfigurationError, AuthenticationAuthority | BindingModule<Id, "passkey-step-up"> | import("effect/Crypto").Crypto | LifecycleHooks | ModuleService<SessionId, "step-up", Claims["Type"]> | PasskeyCredentials | PasskeyEnrollmentContext | PasskeyPersistence | PasskeyProtocol>;
|
|
1906
|
+
operations: Readonly<{
|
|
1907
|
+
Begin: AuthOperation<`${Id}/passkey/step-up/begin`, Schema.Struct<{
|
|
1908
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
1909
|
+
readonly commandId: Schema.String;
|
|
1910
|
+
readonly profileId: Schema.String;
|
|
1911
|
+
readonly stepUpCredential: Schema.RedactedFromValue<Schema.NonEmptyString>;
|
|
1912
|
+
}>, Schema.Struct<{
|
|
1913
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
1914
|
+
readonly expiresAtMillis: Schema.Int;
|
|
1915
|
+
readonly options: Schema.Struct<{
|
|
1916
|
+
readonly challenge: Schema.String;
|
|
1917
|
+
readonly rpId: Schema.String;
|
|
1918
|
+
readonly timeout: Schema.Int;
|
|
1919
|
+
readonly userVerification: Schema.Literals<readonly ["required", "preferred"]>;
|
|
1920
|
+
readonly allowCredentials: Schema.$Array<Schema.Struct<{
|
|
1921
|
+
readonly type: Schema.Literal<"public-key">;
|
|
1922
|
+
readonly id: Schema.brand<Schema.String, "effect-auth/PasskeyProtocolCredentialId">;
|
|
1923
|
+
}>>;
|
|
1924
|
+
}>;
|
|
1925
|
+
}>, Schema.Union<readonly [typeof PasskeyRejected, typeof PasskeyUnavailable, typeof PasskeyActionRequired, typeof PasskeyMethodUnsupported, typeof HookDenied]>, never, {
|
|
1926
|
+
readonly payload: Schema.Struct<{
|
|
1927
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
1928
|
+
readonly commandId: Schema.String;
|
|
1929
|
+
readonly profileId: Schema.String;
|
|
1930
|
+
readonly stepUpCredential: Schema.RedactedFromValue<Schema.NonEmptyString>;
|
|
1931
|
+
}>;
|
|
1932
|
+
readonly success: Schema.Struct<{
|
|
1933
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
1934
|
+
readonly expiresAtMillis: Schema.Int;
|
|
1935
|
+
readonly options: Schema.Struct<{
|
|
1936
|
+
readonly challenge: Schema.String;
|
|
1937
|
+
readonly rpId: Schema.String;
|
|
1938
|
+
readonly timeout: Schema.Int;
|
|
1939
|
+
readonly userVerification: Schema.Literals<readonly ["required", "preferred"]>;
|
|
1940
|
+
readonly allowCredentials: Schema.$Array<Schema.Struct<{
|
|
1941
|
+
readonly type: Schema.Literal<"public-key">;
|
|
1942
|
+
readonly id: Schema.brand<Schema.String, "effect-auth/PasskeyProtocolCredentialId">;
|
|
1943
|
+
}>>;
|
|
1944
|
+
}>;
|
|
1945
|
+
}>;
|
|
1946
|
+
readonly error: Schema.Union<readonly [typeof PasskeyRejected, typeof PasskeyUnavailable, typeof PasskeyActionRequired, typeof PasskeyMethodUnsupported, typeof HookDenied]>;
|
|
1947
|
+
readonly exposure: "public";
|
|
1948
|
+
readonly access: "authenticated";
|
|
1949
|
+
readonly replay: "single-use";
|
|
1950
|
+
readonly credentials: true;
|
|
1951
|
+
}>;
|
|
1952
|
+
Complete: AuthOperation<`${Id}/passkey/step-up/complete`, Schema.Struct<{
|
|
1953
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
1954
|
+
readonly bindingCredential: Schema.RedactedFromValue<Schema.String>;
|
|
1955
|
+
readonly response: Schema.RedactedFromValue<Schema.NonEmptyString>;
|
|
1956
|
+
readonly stepUpCredential: Schema.RedactedFromValue<Schema.NonEmptyString>;
|
|
1957
|
+
readonly sourceCredential: Schema.RedactedFromValue<Schema.NonEmptyString>;
|
|
1958
|
+
}>, Schema.Struct<{
|
|
1959
|
+
readonly sessionId: Schema.brand<Schema.NonEmptyString, "effect-auth/SessionId">;
|
|
1960
|
+
readonly subjectId: Schema.brand<Schema.NonEmptyString, "effect-auth/SubjectId">;
|
|
1961
|
+
readonly securityRevision: Schema.brand<Schema.NonEmptyString, "effect-auth/SecurityRevision">;
|
|
1962
|
+
readonly assurance: typeof AuthenticationAssurance;
|
|
1963
|
+
readonly issuedAt: Schema.DateTimeUtcFromMillis;
|
|
1964
|
+
readonly expiresAt: Schema.DateTimeUtcFromMillis;
|
|
1965
|
+
readonly absoluteExpiresAt: Schema.DateTimeUtcFromMillis;
|
|
1966
|
+
readonly claims: Schema.Codec<Claims["Type"], Claims["Encoded"], Claims["DecodingServices"], Claims["EncodingServices"]>;
|
|
1967
|
+
}>, Schema.Union<readonly [typeof PasskeyRejected, typeof PasskeyUnavailable, typeof PasskeyActionRequired, typeof PasskeyMethodUnsupported, typeof HookDenied]>, never, {
|
|
1968
|
+
readonly payload: Schema.Struct<{
|
|
1969
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
1970
|
+
readonly bindingCredential: Schema.RedactedFromValue<Schema.String>;
|
|
1971
|
+
readonly response: Schema.RedactedFromValue<Schema.NonEmptyString>;
|
|
1972
|
+
readonly stepUpCredential: Schema.RedactedFromValue<Schema.NonEmptyString>;
|
|
1973
|
+
readonly sourceCredential: Schema.RedactedFromValue<Schema.NonEmptyString>;
|
|
1974
|
+
}>;
|
|
1975
|
+
readonly success: Schema.Struct<{
|
|
1976
|
+
readonly sessionId: Schema.brand<Schema.NonEmptyString, "effect-auth/SessionId">;
|
|
1977
|
+
readonly subjectId: Schema.brand<Schema.NonEmptyString, "effect-auth/SubjectId">;
|
|
1978
|
+
readonly securityRevision: Schema.brand<Schema.NonEmptyString, "effect-auth/SecurityRevision">;
|
|
1979
|
+
readonly assurance: typeof AuthenticationAssurance;
|
|
1980
|
+
readonly issuedAt: Schema.DateTimeUtcFromMillis;
|
|
1981
|
+
readonly expiresAt: Schema.DateTimeUtcFromMillis;
|
|
1982
|
+
readonly absoluteExpiresAt: Schema.DateTimeUtcFromMillis;
|
|
1983
|
+
readonly claims: Schema.Codec<Claims["Type"], Claims["Encoded"], Claims["DecodingServices"], Claims["EncodingServices"]>;
|
|
1984
|
+
}>;
|
|
1985
|
+
readonly error: Schema.Union<readonly [typeof PasskeyRejected, typeof PasskeyUnavailable, typeof PasskeyActionRequired, typeof PasskeyMethodUnsupported, typeof HookDenied]>;
|
|
1986
|
+
readonly exposure: "public";
|
|
1987
|
+
readonly access: "authenticated";
|
|
1988
|
+
readonly replay: "single-use";
|
|
1989
|
+
readonly credentials: true;
|
|
1990
|
+
}>;
|
|
1991
|
+
}>;
|
|
1992
|
+
group: import("effect/unstable/rpc/RpcGroup").RpcGroup<import("effect/unstable/rpc/Rpc").Rpc<`${Id}/passkey/step-up/begin`, Schema.Struct<{
|
|
1993
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
1994
|
+
readonly commandId: Schema.String;
|
|
1995
|
+
readonly profileId: Schema.String;
|
|
1996
|
+
readonly stepUpCredential: Schema.RedactedFromValue<Schema.NonEmptyString>;
|
|
1997
|
+
}>, Schema.Struct<{
|
|
1998
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
1999
|
+
readonly expiresAtMillis: Schema.Int;
|
|
2000
|
+
readonly options: Schema.Struct<{
|
|
2001
|
+
readonly challenge: Schema.String;
|
|
2002
|
+
readonly rpId: Schema.String;
|
|
2003
|
+
readonly timeout: Schema.Int;
|
|
2004
|
+
readonly userVerification: Schema.Literals<readonly ["required", "preferred"]>;
|
|
2005
|
+
readonly allowCredentials: Schema.$Array<Schema.Struct<{
|
|
2006
|
+
readonly type: Schema.Literal<"public-key">;
|
|
2007
|
+
readonly id: Schema.brand<Schema.String, "effect-auth/PasskeyProtocolCredentialId">;
|
|
2008
|
+
}>>;
|
|
2009
|
+
}>;
|
|
2010
|
+
}>, Schema.Union<readonly [Schema.Union<readonly [typeof PasskeyRejected, typeof PasskeyUnavailable, typeof PasskeyActionRequired, typeof PasskeyMethodUnsupported, typeof HookDenied]>, Schema.Union<readonly [typeof InvalidOperationInput, typeof AuthenticationRequired, typeof OperationForbidden, typeof AssuranceRequired, typeof OperationPrivateOutputUnsupported]>]>, never, never> | import("effect/unstable/rpc/Rpc").Rpc<`${Id}/passkey/step-up/complete`, Schema.Struct<{
|
|
2011
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
2012
|
+
readonly bindingCredential: Schema.RedactedFromValue<Schema.String>;
|
|
2013
|
+
readonly response: Schema.RedactedFromValue<Schema.NonEmptyString>;
|
|
2014
|
+
readonly stepUpCredential: Schema.RedactedFromValue<Schema.NonEmptyString>;
|
|
2015
|
+
readonly sourceCredential: Schema.RedactedFromValue<Schema.NonEmptyString>;
|
|
2016
|
+
}>, Schema.Struct<{
|
|
2017
|
+
readonly sessionId: Schema.brand<Schema.NonEmptyString, "effect-auth/SessionId">;
|
|
2018
|
+
readonly subjectId: Schema.brand<Schema.NonEmptyString, "effect-auth/SubjectId">;
|
|
2019
|
+
readonly securityRevision: Schema.brand<Schema.NonEmptyString, "effect-auth/SecurityRevision">;
|
|
2020
|
+
readonly assurance: typeof AuthenticationAssurance;
|
|
2021
|
+
readonly issuedAt: Schema.DateTimeUtcFromMillis;
|
|
2022
|
+
readonly expiresAt: Schema.DateTimeUtcFromMillis;
|
|
2023
|
+
readonly absoluteExpiresAt: Schema.DateTimeUtcFromMillis;
|
|
2024
|
+
readonly claims: Schema.Codec<Claims["Type"], Claims["Encoded"], Claims["DecodingServices"], Claims["EncodingServices"]>;
|
|
2025
|
+
}>, Schema.Union<readonly [Schema.Union<readonly [typeof PasskeyRejected, typeof PasskeyUnavailable, typeof PasskeyActionRequired, typeof PasskeyMethodUnsupported, typeof HookDenied]>, Schema.Union<readonly [typeof InvalidOperationInput, typeof AuthenticationRequired, typeof OperationForbidden, typeof AssuranceRequired, typeof OperationPrivateOutputUnsupported]>]>, never, never>>;
|
|
2026
|
+
handlersLayer: Layer.Layer<OperationHandler<`${Id}/passkey/step-up/begin`, {
|
|
2027
|
+
readonly flowId: string & import("effect/Brand").Brand<"effect-auth/RequestBindingFlowId">;
|
|
2028
|
+
readonly commandId: string;
|
|
2029
|
+
readonly profileId: string;
|
|
2030
|
+
readonly stepUpCredential: import("effect/Redacted").Redacted<string>;
|
|
2031
|
+
}, {
|
|
2032
|
+
readonly flowId: string & import("effect/Brand").Brand<"effect-auth/RequestBindingFlowId">;
|
|
2033
|
+
readonly expiresAtMillis: number;
|
|
2034
|
+
readonly options: {
|
|
2035
|
+
readonly challenge: string;
|
|
2036
|
+
readonly rpId: string;
|
|
2037
|
+
readonly timeout: number;
|
|
2038
|
+
readonly userVerification: "preferred" | "required";
|
|
2039
|
+
readonly allowCredentials: readonly {
|
|
2040
|
+
readonly type: "public-key";
|
|
2041
|
+
readonly id: string & import("effect/Brand").Brand<"effect-auth/PasskeyProtocolCredentialId">;
|
|
2042
|
+
}[];
|
|
2043
|
+
};
|
|
2044
|
+
}, AssuranceRequired | AuthenticationRequired | HookDenied | InvalidOperationInput | OperationForbidden | OperationPrivateOutputUnsupported | PasskeyActionRequired | PasskeyMethodUnsupported | PasskeyRejected | PasskeyUnavailable> | OperationHandler<`${Id}/passkey/step-up/complete`, {
|
|
2045
|
+
readonly flowId: string & import("effect/Brand").Brand<"effect-auth/RequestBindingFlowId">;
|
|
2046
|
+
readonly bindingCredential: import("effect/Redacted").Redacted<string>;
|
|
2047
|
+
readonly response: import("effect/Redacted").Redacted<string>;
|
|
2048
|
+
readonly stepUpCredential: import("effect/Redacted").Redacted<string>;
|
|
2049
|
+
readonly sourceCredential: import("effect/Redacted").Redacted<string>;
|
|
2050
|
+
}, {
|
|
2051
|
+
readonly sessionId: string & import("effect/Brand").Brand<"effect-auth/SessionId">;
|
|
2052
|
+
readonly subjectId: string & import("effect/Brand").Brand<"effect-auth/SubjectId">;
|
|
2053
|
+
readonly securityRevision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
|
|
2054
|
+
readonly assurance: AuthenticationAssurance;
|
|
2055
|
+
readonly issuedAt: DateTime.Utc;
|
|
2056
|
+
readonly expiresAt: DateTime.Utc;
|
|
2057
|
+
readonly absoluteExpiresAt: DateTime.Utc;
|
|
2058
|
+
readonly claims: Claims["Type"];
|
|
2059
|
+
}, AssuranceRequired | AuthenticationRequired | HookDenied | InvalidOperationInput | OperationForbidden | OperationPrivateOutputUnsupported | PasskeyActionRequired | PasskeyMethodUnsupported | PasskeyRejected | PasskeyUnavailable>, never, {
|
|
2060
|
+
readonly moduleId: Id;
|
|
2061
|
+
readonly kind: "passkey-step-up";
|
|
2062
|
+
readonly claims: Types.Invariant<Claims["Type"]>;
|
|
2063
|
+
}>;
|
|
2064
|
+
strategy: Readonly<{
|
|
2065
|
+
completion: false;
|
|
2066
|
+
make: Effect.Effect<{
|
|
2067
|
+
readonly beginStepUp: (input: {
|
|
2068
|
+
readonly flowId: string;
|
|
2069
|
+
readonly commandId: string;
|
|
2070
|
+
readonly profileId: string;
|
|
2071
|
+
readonly stepUpCredential: string;
|
|
2072
|
+
}) => Effect.Effect<{
|
|
2073
|
+
readonly flowId: string & import("effect/Brand").Brand<"effect-auth/RequestBindingFlowId">;
|
|
2074
|
+
readonly expiresAtMillis: number;
|
|
2075
|
+
readonly options: {
|
|
2076
|
+
readonly challenge: string;
|
|
2077
|
+
readonly rpId: string;
|
|
2078
|
+
readonly timeout: number;
|
|
2079
|
+
readonly userVerification: "preferred" | "required";
|
|
2080
|
+
readonly allowCredentials: readonly {
|
|
2081
|
+
readonly type: "public-key";
|
|
2082
|
+
readonly id: string & import("effect/Brand").Brand<"effect-auth/PasskeyProtocolCredentialId">;
|
|
2083
|
+
}[];
|
|
2084
|
+
};
|
|
2085
|
+
}, PasskeyActionRequired | PasskeyMethodUnsupported | PasskeyRejected | PasskeyUnavailable | SessionApiError, AuthRequest>;
|
|
2086
|
+
readonly completeStepUp: (input: {
|
|
2087
|
+
readonly flowId: string;
|
|
2088
|
+
readonly bindingCredential: string;
|
|
2089
|
+
readonly response: string;
|
|
2090
|
+
readonly stepUpCredential: string;
|
|
2091
|
+
readonly sourceCredential: string;
|
|
2092
|
+
}) => Effect.Effect<{
|
|
2093
|
+
readonly sessionId: string & import("effect/Brand").Brand<"effect-auth/SessionId">;
|
|
2094
|
+
readonly subjectId: string & import("effect/Brand").Brand<"effect-auth/SubjectId">;
|
|
2095
|
+
readonly securityRevision: string & import("effect/Brand").Brand<"effect-auth/SecurityRevision">;
|
|
2096
|
+
readonly assurance: AuthenticationAssurance;
|
|
2097
|
+
readonly issuedAt: DateTime.Utc;
|
|
2098
|
+
readonly expiresAt: DateTime.Utc;
|
|
2099
|
+
readonly absoluteExpiresAt: DateTime.Utc;
|
|
2100
|
+
readonly claims: Claims["Type"];
|
|
2101
|
+
}, PasskeyActionRequired | PasskeyMethodUnsupported | PasskeyRejected | PasskeyUnavailable | SessionApiError, AuthRequest>;
|
|
2102
|
+
}, AuthConfigurationError | PasskeyConfigurationError | RequestBindingConfigurationError, AuthenticationAuthority | Layer.CurrentMemoMap | ModuleService<SessionId, "step-up", Claims["Type"]> | PasskeyCredentials | PasskeyEnrollmentContext | PasskeyPersistence | PasskeyProtocol | RequestBindingConfig | import("effect/Scope").Scope>;
|
|
2103
|
+
}>;
|
|
2104
|
+
}>;
|
|
2105
|
+
actions: Readonly<{
|
|
2106
|
+
PasskeyActionAssertions: Context.Service<{
|
|
2107
|
+
readonly moduleId: Id;
|
|
2108
|
+
readonly kind: "passkey-actions";
|
|
2109
|
+
}, {
|
|
2110
|
+
readonly begin: (input: PasskeyBegin, target: PasskeyTarget) => Effect.Effect<AuthOperationResult<PasskeyAuthenticationStarted>, PasskeyFailure>;
|
|
2111
|
+
readonly complete: (input: PasskeyComplete, target: PasskeyTarget) => Effect.Effect<{
|
|
2112
|
+
readonly evidence: AuthenticationEvidence;
|
|
2113
|
+
readonly credentialCommands: AuthOperationResult<void>["credentialCommands"];
|
|
2114
|
+
}, HookDenied | PasskeyActionRequired | PasskeyMethodUnsupported | PasskeyRejected | PasskeyUnavailable, never>;
|
|
2115
|
+
}>;
|
|
2116
|
+
binding: Readonly<{
|
|
2117
|
+
RequestBinding: Context.Service<BindingModule<Id, "passkey-action">, {
|
|
2118
|
+
readonly issue: (flowId: RequestBindingFlowId) => Effect.Effect<AuthOperationResult<RequestBindingPublic>, RequestBindingUnavailable | RequestBindingInvalid>;
|
|
2119
|
+
readonly verify: (flowId: RequestBindingFlowId, credential: import("effect/Redacted").Redacted<string>) => Effect.Effect<VerifiedRequestBinding, RequestBindingInvalid | RequestBindingUnavailable>;
|
|
2120
|
+
}>;
|
|
2121
|
+
signedLayer: (configuration: RequestBindingConfiguration) => Layer.Layer<BindingModule<Id, "passkey-action">, RequestBindingConfigurationError, import("effect/Crypto").Crypto | SubtleCrypto>;
|
|
2122
|
+
layer: Layer.Layer<BindingModule<Id, "passkey-action">, RequestBindingConfigurationError, import("effect/Crypto").Crypto | RequestBindingConfig | SubtleCrypto>;
|
|
2123
|
+
}>;
|
|
2124
|
+
layer: Layer.Layer<{
|
|
2125
|
+
readonly moduleId: Id;
|
|
2126
|
+
readonly kind: "passkey-actions";
|
|
2127
|
+
}, PasskeyConfigurationError, AuthenticationAuthority | BindingModule<Id, "passkey-action"> | import("effect/Crypto").Crypto | LifecycleHooks | PasskeyCredentials | PasskeyEnrollmentContext | PasskeyPersistence | PasskeyProtocol>;
|
|
2128
|
+
}>;
|
|
2129
|
+
}>;
|
|
2130
|
+
//#endregion
|
|
2131
|
+
export { capturePasskeyConfiguration, makePasskeyMethod };
|
|
2132
|
+
//# sourceMappingURL=module.d.mts.map
|