@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 @@
|
|
|
1
|
+
{"version":3,"file":"requestBinding.mjs","names":[],"sources":["../../src/operations/requestBinding.ts"],"sourcesContent":["import { Context, Crypto, DateTime, Effect, Encoding, Layer, Redacted, Schema } from \"effect\";\n\nimport { TokenDigest } from \"../Schema\";\nimport { makeSessionSigningCodec, type SessionSigningKeyring } from \"../sessions/crypto\";\nimport type { AuthOperationResult } from \"./credentials\";\nimport { RequestBindingConfig } from \"./RequestBindingConfig\";\nimport { RequestBindingFlowId, type RequestBindingPublic } from \"./requestBindingModels\";\n\nexport {\n RequestBindingFlowId,\n RequestBindingCredential,\n RequestBindingPublic,\n} from \"./requestBindingModels\";\n\nexport class RequestBindingInvalid extends Schema.TaggedError<RequestBindingInvalid>()(\n \"RequestBindingInvalid\",\n {},\n) {}\n\nexport class RequestBindingUnavailable extends Schema.TaggedError<RequestBindingUnavailable>()(\n \"RequestBindingUnavailable\",\n {},\n) {}\n\nexport class RequestBindingConfigurationError extends Schema.TaggedError<RequestBindingConfigurationError>()(\n \"RequestBindingConfigurationError\",\n {},\n) {}\n\nexport interface VerifiedRequestBinding {\n /** Internal correlation only; never an accepted substitute for the credential. */\n readonly verifier: TokenDigest;\n readonly expiresAtMillis: number;\n}\n\nexport interface RequestBindingConfiguration {\n readonly lifetimeMillis: number;\n readonly generation: number;\n /** Dedicated binding keys; no implicit reuse of session signing keys. */\n readonly keyring: SessionSigningKeyring;\n}\n\nconst configurationSchema = Schema.Struct({\n lifetimeMillis: Schema.Int.check(Schema.isBetween({ minimum: 1000, maximum: 1_800_000 })),\n generation: Schema.Int.check(Schema.isBetween({ minimum: 1, maximum: Number.MAX_SAFE_INTEGER })),\n keyring: Schema.Struct({\n activeKeyId: Schema.String.check(Schema.isPattern(/^[A-Za-z0-9_-]{1,64}$/)),\n keys: Schema.Array(\n Schema.Struct({\n id: Schema.String.check(Schema.isPattern(/^[A-Za-z0-9_-]{1,64}$/)),\n material: Schema.Redacted(Schema.String.check(Schema.isMaxLength(172))),\n }),\n ).check(Schema.isMinLength(1), Schema.isMaxLength(8)),\n }),\n});\n\nconst label = Schema.String.check(Schema.isPattern(/^[A-Za-z0-9._:/-]{1,128}$/));\n\nconst envelope = Schema.Struct({\n namespace: Schema.Literal(\"effect-auth/request-binding/v1\"),\n moduleId: label,\n purpose: label,\n flowId: RequestBindingFlowId,\n generation: Schema.Int,\n nonce: Schema.String.check(Schema.isPattern(/^[A-Za-z0-9_-]{43}$/)),\n issuedAtMillis: Schema.Int,\n expiresAtMillis: Schema.Int,\n});\n\nconst verifierMessage = Schema.fromJsonString(\n Schema.Tuple([\n Schema.Literal(\"effect-auth/request-binding-verifier/v1\"),\n label,\n label,\n Schema.String,\n ]),\n);\n\nexport interface BindingModule<Id extends string, Purpose extends string> {\n readonly moduleId: Id;\n readonly purpose: Purpose;\n}\n\n/** The scalar private slot supports one standard browser flow at a time. Native\n * consumers may explicitly retain credentials by flow in their own secure store.\n * Browser adapters inject this credential from private storage and reject URL/body\n * overrides. Every binding-bearing mutation, including issuance, requires CSRF\n * protection. GET/preview routes neither begin nor consume an authentication flow.\n */\nexport const makeRequestBinding = <const Id extends string, const Purpose extends string>(\n moduleId: Id,\n purpose: Purpose,\n) => {\n const RequestBinding = Context.Service<\n BindingModule<Id, Purpose>,\n {\n readonly issue: (\n flowId: RequestBindingFlowId,\n ) => Effect.Effect<\n AuthOperationResult<RequestBindingPublic>,\n RequestBindingUnavailable | RequestBindingInvalid\n >;\n readonly verify: (\n flowId: RequestBindingFlowId,\n credential: Redacted.Redacted<string>,\n ) => Effect.Effect<VerifiedRequestBinding, RequestBindingInvalid | RequestBindingUnavailable>;\n }\n >(\n `effect-auth/operations/RequestBinding/${moduleId.length}:${moduleId}/${purpose.length}:${purpose}`,\n );\n\n const signedLayer = (configuration: RequestBindingConfiguration) => {\n if (!Schema.is(configurationSchema)(configuration))\n return Layer.effect(RequestBinding, Effect.fail(RequestBindingConfigurationError.make({})));\n\n const input = Object.freeze({\n lifetimeMillis: configuration.lifetimeMillis,\n generation: configuration.generation,\n keyring: Object.freeze({\n activeKeyId: configuration.keyring.activeKeyId,\n keys: Object.freeze(\n configuration.keyring.keys.map((entry) =>\n Object.freeze({ id: entry.id, material: entry.material }),\n ),\n ),\n }),\n });\n\n return Layer.effect(\n RequestBinding,\n Effect.gen(function* () {\n yield* Schema.decodeEffect(label)(moduleId).pipe(\n Effect.mapError(() => RequestBindingConfigurationError.make({})),\n );\n yield* Schema.decodeEffect(label)(purpose).pipe(\n Effect.mapError(() => RequestBindingConfigurationError.make({})),\n );\n\n const policy = yield* Schema.decodeEffect(configurationSchema)(input).pipe(\n Effect.mapError(() => RequestBindingConfigurationError.make({})),\n );\n\n const signer = yield* makeSessionSigningCodec(envelope, policy.keyring, 2048).pipe(\n Effect.mapError(() => RequestBindingConfigurationError.make({})),\n );\n\n const crypto = yield* Crypto.Crypto;\n\n return RequestBinding.of({\n issue: Effect.fn(\"RequestBinding.issue\")(function* (flowId) {\n yield* Schema.decodeEffect(RequestBindingFlowId)(flowId).pipe(\n Effect.mapError(() => RequestBindingInvalid.make({})),\n );\n const now = DateTime.toEpochMillis(yield* DateTime.now);\n\n const nonce = yield* crypto\n .randomBytes(32)\n .pipe(Effect.mapError(() => RequestBindingUnavailable.make({})));\n\n const expiresAtMillis = now + policy.lifetimeMillis;\n\n const credential = yield* signer\n .encode({\n namespace: \"effect-auth/request-binding/v1\",\n moduleId,\n purpose,\n flowId,\n generation: policy.generation,\n nonce: Encoding.encodeBase64Url(nonce),\n issuedAtMillis: now,\n expiresAtMillis,\n })\n .pipe(Effect.mapError(() => RequestBindingUnavailable.make({})));\n\n return {\n value: { flowId, expiresAtMillis },\n credentialCommands: [\n { _tag: \"Issue\", slot: \"request-binding\", credential, expiresAtMillis },\n ],\n };\n }),\n verify: Effect.fn(\"RequestBinding.verify\")(function* (flowId, credential) {\n yield* Schema.decodeEffect(RequestBindingFlowId)(flowId).pipe(\n Effect.mapError(() => RequestBindingInvalid.make({})),\n );\n\n const value = yield* signer\n .decode(credential)\n .pipe(\n Effect.mapError((error) =>\n error._tag === \"SessionUnavailable\"\n ? RequestBindingUnavailable.make({})\n : RequestBindingInvalid.make({}),\n ),\n );\n\n const now = DateTime.toEpochMillis(yield* DateTime.now);\n\n if (\n value.moduleId !== moduleId ||\n value.purpose !== purpose ||\n value.flowId !== flowId ||\n value.generation !== policy.generation ||\n value.issuedAtMillis > now ||\n value.expiresAtMillis <= now ||\n value.expiresAtMillis <= value.issuedAtMillis ||\n value.expiresAtMillis - value.issuedAtMillis > policy.lifetimeMillis\n )\n return yield* RequestBindingInvalid.make({});\n\n const message = yield* Schema.encodeEffect(verifierMessage)([\n \"effect-auth/request-binding-verifier/v1\",\n moduleId,\n purpose,\n Redacted.value(credential),\n ]).pipe(Effect.mapError(() => RequestBindingInvalid.make({})));\n\n const digest = yield* crypto\n .digest(\"SHA-256\", new TextEncoder().encode(message))\n .pipe(Effect.mapError(() => RequestBindingUnavailable.make({})));\n\n // Entry verification deadline only. Final proof/action expiry is still\n // enforced by the actual mutation owner; this is not a commit deadline.\n return Object.freeze({\n verifier: TokenDigest.make(Encoding.encodeBase64Url(digest)),\n expiresAtMillis: value.expiresAtMillis,\n });\n }),\n });\n }),\n );\n };\n\n const layer = Layer.unwrap(Effect.map(RequestBindingConfig, signedLayer));\n\n return Object.freeze({ RequestBinding, signedLayer, layer });\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Schema } from "effect";
|
|
2
|
+
//#region src/operations/requestBindingModels.d.ts
|
|
3
|
+
declare const RequestBindingFlowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
4
|
+
type RequestBindingFlowId = typeof RequestBindingFlowId.Type;
|
|
5
|
+
declare const RequestBindingCredential: Schema.RedactedFromValue<Schema.String>;
|
|
6
|
+
declare const RequestBindingPublic: Schema.Struct<{
|
|
7
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
8
|
+
readonly expiresAtMillis: Schema.Int;
|
|
9
|
+
}>;
|
|
10
|
+
type RequestBindingPublic = typeof RequestBindingPublic.Type;
|
|
11
|
+
//#endregion
|
|
12
|
+
export { RequestBindingCredential, RequestBindingFlowId, RequestBindingPublic };
|
|
13
|
+
//# sourceMappingURL=requestBindingModels.d.mts.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Schema } from "effect";
|
|
2
|
+
//#region src/operations/requestBindingModels.ts
|
|
3
|
+
const RequestBindingFlowId = Schema.String.check(Schema.isPattern(/^[A-Za-z0-9._:/-]{1,256}$/)).pipe(Schema.brand("effect-auth/RequestBindingFlowId"));
|
|
4
|
+
const RequestBindingCredential = Schema.RedactedFromValue(Schema.String.check(Schema.isMaxLength(2048)));
|
|
5
|
+
const RequestBindingPublic = Schema.Struct({
|
|
6
|
+
flowId: RequestBindingFlowId,
|
|
7
|
+
expiresAtMillis: Schema.Int
|
|
8
|
+
});
|
|
9
|
+
//#endregion
|
|
10
|
+
export { RequestBindingCredential, RequestBindingFlowId, RequestBindingPublic };
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=requestBindingModels.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"requestBindingModels.mjs","names":[],"sources":["../../src/operations/requestBindingModels.ts"],"sourcesContent":["import { Schema } from \"effect\";\n\nexport const RequestBindingFlowId = Schema.String.check(\n Schema.isPattern(/^[A-Za-z0-9._:/-]{1,256}$/),\n).pipe(Schema.brand(\"effect-auth/RequestBindingFlowId\"));\n\nexport type RequestBindingFlowId = typeof RequestBindingFlowId.Type;\n\nexport const RequestBindingCredential = Schema.RedactedFromValue(\n Schema.String.check(Schema.isMaxLength(2048)),\n);\n\nexport const RequestBindingPublic = Schema.Struct({\n flowId: RequestBindingFlowId,\n expiresAtMillis: Schema.Int,\n});\n\nexport type RequestBindingPublic = typeof RequestBindingPublic.Type;\n"],"mappings":";;AAEA,MAAa,uBAAuB,OAAO,OAAO,MAChD,OAAO,UAAU,2BAA2B,CAC9C,CAAC,CAAC,KAAK,OAAO,MAAM,kCAAkC,CAAC;AAIvD,MAAa,2BAA2B,OAAO,kBAC7C,OAAO,OAAO,MAAM,OAAO,YAAY,IAAI,CAAC,CAC9C;AAEA,MAAa,uBAAuB,OAAO,OAAO;CAChD,QAAQ;CACR,iBAAiB,OAAO;AAC1B,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Effect, Schema } from "effect";
|
|
2
|
+
//#region src/operations/reveals.d.ts
|
|
3
|
+
declare const AuthRevealKind: Schema.Literals<readonly ["totp-enrollment", "recovery-codes"]>;
|
|
4
|
+
type AuthRevealKind = typeof AuthRevealKind.Type;
|
|
5
|
+
/** Private display data. Never use this schema as an operation's ordinary success. */
|
|
6
|
+
declare const AuthRevealCommand: Schema.Union<readonly [Schema.Struct<{
|
|
7
|
+
readonly revealId: Schema.NonEmptyString;
|
|
8
|
+
readonly expiresAtMillis: Schema.Int;
|
|
9
|
+
readonly kind: Schema.Literal<"totp-enrollment">;
|
|
10
|
+
readonly payload: Schema.Redacted<Schema.Struct<{
|
|
11
|
+
readonly uri: Schema.NonEmptyString;
|
|
12
|
+
readonly manualKey: Schema.String;
|
|
13
|
+
}>>;
|
|
14
|
+
}>, Schema.Struct<{
|
|
15
|
+
readonly revealId: Schema.NonEmptyString;
|
|
16
|
+
readonly expiresAtMillis: Schema.Int;
|
|
17
|
+
readonly kind: Schema.Literal<"recovery-codes">;
|
|
18
|
+
readonly payload: Schema.Redacted<Schema.$Array<Schema.String>>;
|
|
19
|
+
}>]>;
|
|
20
|
+
type AuthRevealCommand = typeof AuthRevealCommand.Type;
|
|
21
|
+
/** Request-local memory acceptance. Invoked without a receiver; not physical delivery. */
|
|
22
|
+
interface AuthRevealCommandCollector {
|
|
23
|
+
readonly supportedKinds: ReadonlyArray<AuthRevealKind>;
|
|
24
|
+
readonly accept: (commands: ReadonlyArray<AuthRevealCommand>) => Effect.Effect<void>;
|
|
25
|
+
}
|
|
26
|
+
//#endregion
|
|
27
|
+
export { AuthRevealCommand, AuthRevealCommandCollector, AuthRevealKind };
|
|
28
|
+
//# sourceMappingURL=reveals.d.mts.map
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { Predicate, Redacted, Schema } from "effect";
|
|
2
|
+
//#region src/operations/reveals.ts
|
|
3
|
+
const AuthRevealKind = Schema.Literals(["totp-enrollment", "recovery-codes"]);
|
|
4
|
+
const utf8 = new TextEncoder();
|
|
5
|
+
const boundedText = (maximum) => Schema.NonEmptyString.check(Schema.makeFilter((value) => value.length <= maximum && !/[\uD800-\uDFFF]/u.test(value) && utf8.encode(value).byteLength <= maximum));
|
|
6
|
+
const enrollment = Schema.Struct({
|
|
7
|
+
uri: boundedText(4096).check(Schema.isPattern(/^otpauth:\/\/totp\//), Schema.isPattern(/^[^\u0000-\u001f\u007f-\u009f]*$/)),
|
|
8
|
+
manualKey: Schema.String.check(Schema.isPattern(/^[A-Z2-7]{32}$/))
|
|
9
|
+
});
|
|
10
|
+
const recoveryCode = Schema.String.check(Schema.isPattern(/^rc1-[A-F0-9]{8}-[A-F0-9]{8}-[A-F0-9]{8}-[A-F0-9]{8}$/));
|
|
11
|
+
const recovery = Schema.Array(recoveryCode).check(Schema.isLengthBetween(10, 10), Schema.makeFilter((codes) => new Set(codes).size === codes.length));
|
|
12
|
+
const fields = {
|
|
13
|
+
revealId: boundedText(256),
|
|
14
|
+
expiresAtMillis: Schema.Int.check(Schema.isBetween({
|
|
15
|
+
minimum: Number.MIN_SAFE_INTEGER,
|
|
16
|
+
maximum: Number.MAX_SAFE_INTEGER
|
|
17
|
+
}))
|
|
18
|
+
};
|
|
19
|
+
/** Private display data. Never use this schema as an operation's ordinary success. */
|
|
20
|
+
const AuthRevealCommand = Schema.Union([Schema.Struct({
|
|
21
|
+
kind: Schema.Literal("totp-enrollment"),
|
|
22
|
+
...fields,
|
|
23
|
+
payload: Schema.Redacted(enrollment, { disallowJsonEncode: true })
|
|
24
|
+
}), Schema.Struct({
|
|
25
|
+
kind: Schema.Literal("recovery-codes"),
|
|
26
|
+
...fields,
|
|
27
|
+
payload: Schema.Redacted(recovery, { disallowJsonEncode: true })
|
|
28
|
+
})]);
|
|
29
|
+
const decodeKinds = Schema.decodeSync(Schema.Array(AuthRevealKind));
|
|
30
|
+
const decodeCommand = Schema.decodeUnknownSync(AuthRevealCommand);
|
|
31
|
+
const invalid = () => new globalThis.Error("Auth operation failed");
|
|
32
|
+
/** Package-private: do not expose the snapshot mechanics through the public barrel. */
|
|
33
|
+
const snapshotRevealKinds = (input) => {
|
|
34
|
+
if (!Array.isArray(input)) throw invalid();
|
|
35
|
+
const length = input.length;
|
|
36
|
+
if (!Number.isInteger(length) || length < 0 || length > 2) throw invalid();
|
|
37
|
+
const captured = [];
|
|
38
|
+
for (let index = 0; index < length; index++) captured.push(input[index]);
|
|
39
|
+
const kinds = decodeKinds(captured);
|
|
40
|
+
if (new Set(kinds).size !== kinds.length) throw invalid();
|
|
41
|
+
return Object.freeze([...kinds]);
|
|
42
|
+
};
|
|
43
|
+
/** Fully detach before a consumer's success Iso projection can suspend. */
|
|
44
|
+
const snapshotRevealCommands = (input, declared) => {
|
|
45
|
+
if (input === void 0) return Object.freeze([]);
|
|
46
|
+
if (!Array.isArray(input)) throw invalid();
|
|
47
|
+
const length = input.length;
|
|
48
|
+
if (!Number.isInteger(length) || length < 0 || length > 2 || declared.length === 0 && length > 0) throw invalid();
|
|
49
|
+
const kinds = /* @__PURE__ */ new Set();
|
|
50
|
+
const ids = /* @__PURE__ */ new Set();
|
|
51
|
+
const commands = [];
|
|
52
|
+
for (let index = 0; index < length; index++) {
|
|
53
|
+
const command = input[index];
|
|
54
|
+
const kind = command.kind;
|
|
55
|
+
const revealId = command.revealId;
|
|
56
|
+
const expiresAtMillis = command.expiresAtMillis;
|
|
57
|
+
let payload;
|
|
58
|
+
if (kind === "totp-enrollment") {
|
|
59
|
+
const value = Redacted.value(command.payload);
|
|
60
|
+
if (!Predicate.isObject(value)) throw invalid();
|
|
61
|
+
payload = Object.freeze({
|
|
62
|
+
uri: value.uri,
|
|
63
|
+
manualKey: value.manualKey
|
|
64
|
+
});
|
|
65
|
+
} else if (kind === "recovery-codes") {
|
|
66
|
+
const source = Redacted.value(command.payload);
|
|
67
|
+
if (!Array.isArray(source) || source.length !== 10) throw invalid();
|
|
68
|
+
const codes = [];
|
|
69
|
+
for (let code = 0; code < 10; code++) codes.push(source[code]);
|
|
70
|
+
payload = Object.freeze(codes);
|
|
71
|
+
} else throw invalid();
|
|
72
|
+
const value = decodeCommand({
|
|
73
|
+
kind,
|
|
74
|
+
revealId,
|
|
75
|
+
expiresAtMillis,
|
|
76
|
+
payload: Redacted.make(payload, { label: "Auth reveal" })
|
|
77
|
+
});
|
|
78
|
+
if (!declared.includes(value.kind) || kinds.has(value.kind) || ids.has(value.revealId)) throw invalid();
|
|
79
|
+
kinds.add(value.kind);
|
|
80
|
+
ids.add(value.revealId);
|
|
81
|
+
commands.push(Object.freeze(value));
|
|
82
|
+
}
|
|
83
|
+
return Object.freeze(commands);
|
|
84
|
+
};
|
|
85
|
+
//#endregion
|
|
86
|
+
export { AuthRevealCommand, AuthRevealKind, snapshotRevealCommands, snapshotRevealKinds };
|
|
87
|
+
|
|
88
|
+
//# sourceMappingURL=reveals.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reveals.mjs","names":[],"sources":["../../src/operations/reveals.ts"],"sourcesContent":["import { type Effect, Predicate, Redacted, Schema } from \"effect\";\n\nexport const AuthRevealKind = Schema.Literals([\"totp-enrollment\", \"recovery-codes\"]);\nexport type AuthRevealKind = typeof AuthRevealKind.Type;\n\nconst utf8 = new TextEncoder();\n\nconst boundedText = (maximum: number) =>\n Schema.NonEmptyString.check(\n Schema.makeFilter(\n (value) =>\n value.length <= maximum &&\n !/[\\uD800-\\uDFFF]/u.test(value) &&\n utf8.encode(value).byteLength <= maximum,\n ),\n );\n\nconst enrollment = Schema.Struct({\n uri: boundedText(4096).check(\n Schema.isPattern(/^otpauth:\\/\\/totp\\//),\n // oxlint-disable-next-line no-control-regex -- Private enrollment URIs must reject control characters.\n Schema.isPattern(/^[^\\u0000-\\u001f\\u007f-\\u009f]*$/),\n ),\n manualKey: Schema.String.check(Schema.isPattern(/^[A-Z2-7]{32}$/)),\n});\n\nconst recoveryCode = Schema.String.check(\n Schema.isPattern(/^rc1-[A-F0-9]{8}-[A-F0-9]{8}-[A-F0-9]{8}-[A-F0-9]{8}$/),\n);\n\nconst recovery = Schema.Array(recoveryCode).check(\n Schema.isLengthBetween(10, 10),\n Schema.makeFilter((codes) => new Set(codes).size === codes.length),\n);\n\nconst fields = {\n revealId: boundedText(256),\n expiresAtMillis: Schema.Int.check(\n Schema.isBetween({ minimum: Number.MIN_SAFE_INTEGER, maximum: Number.MAX_SAFE_INTEGER }),\n ),\n};\n\n/** Private display data. Never use this schema as an operation's ordinary success. */\nexport const AuthRevealCommand = Schema.Union([\n Schema.Struct({\n kind: Schema.Literal(\"totp-enrollment\"),\n ...fields,\n payload: Schema.Redacted(enrollment, { disallowJsonEncode: true }),\n }),\n Schema.Struct({\n kind: Schema.Literal(\"recovery-codes\"),\n ...fields,\n payload: Schema.Redacted(recovery, { disallowJsonEncode: true }),\n }),\n]);\n\nexport type AuthRevealCommand = typeof AuthRevealCommand.Type;\n\n/** Request-local memory acceptance. Invoked without a receiver; not physical delivery. */\nexport interface AuthRevealCommandCollector {\n readonly supportedKinds: ReadonlyArray<AuthRevealKind>;\n readonly accept: (commands: ReadonlyArray<AuthRevealCommand>) => Effect.Effect<void>;\n}\n\nconst decodeKinds = Schema.decodeSync(Schema.Array(AuthRevealKind));\n// oxlint-disable-next-line no-restricted-properties -- Provider output is captured as unknown before validating this closed private boundary.\nconst decodeCommand = Schema.decodeUnknownSync(AuthRevealCommand);\nconst invalid = () => new globalThis.Error(\"Auth operation failed\");\n\n/** Package-private: do not expose the snapshot mechanics through the public barrel. */\nexport const snapshotRevealKinds = (input: ReadonlyArray<AuthRevealKind>) => {\n if (!Array.isArray(input)) throw invalid();\n const length = input.length;\n\n if (!Number.isInteger(length) || length < 0 || length > 2) throw invalid();\n const captured = [];\n\n for (let index = 0; index < length; index++) captured.push(input[index]);\n const kinds = decodeKinds(captured);\n\n if (new Set(kinds).size !== kinds.length) throw invalid();\n\n return Object.freeze([...kinds]);\n};\n\n/** Fully detach before a consumer's success Iso projection can suspend. */\nexport const snapshotRevealCommands = (\n input: ReadonlyArray<AuthRevealCommand> | undefined,\n declared: ReadonlyArray<AuthRevealKind>,\n): ReadonlyArray<AuthRevealCommand> => {\n if (input === undefined) return Object.freeze([]);\n if (!Array.isArray(input)) throw invalid();\n const length = input.length;\n\n if (\n !Number.isInteger(length) ||\n length < 0 ||\n length > 2 ||\n (declared.length === 0 && length > 0)\n )\n throw invalid();\n const kinds = new Set<AuthRevealKind>();\n const ids = new Set<string>();\n const commands: AuthRevealCommand[] = [];\n\n for (let index = 0; index < length; index++) {\n const command = input[index];\n const kind = command.kind;\n const revealId = command.revealId;\n const expiresAtMillis = command.expiresAtMillis;\n // Capture each caller-owned primitive once. Redacted's schema validates but\n // preserves its wrapper, so validating the original would not detach it.\n let payload: unknown;\n\n if (kind === \"totp-enrollment\") {\n const value = Redacted.value(command.payload);\n\n if (!Predicate.isObject(value)) throw invalid();\n payload = Object.freeze({ uri: value.uri, manualKey: value.manualKey });\n } else if (kind === \"recovery-codes\") {\n const source = Redacted.value(command.payload);\n\n if (!Array.isArray(source) || source.length !== 10) throw invalid();\n const codes: unknown[] = [];\n\n for (let code = 0; code < 10; code++) codes.push(source[code]);\n payload = Object.freeze(codes);\n } else {\n throw invalid();\n }\n\n const value = decodeCommand({\n kind,\n revealId,\n expiresAtMillis,\n payload: Redacted.make(payload, { label: \"Auth reveal\" }),\n });\n\n if (!declared.includes(value.kind) || kinds.has(value.kind) || ids.has(value.revealId))\n throw invalid();\n kinds.add(value.kind);\n ids.add(value.revealId);\n commands.push(Object.freeze(value));\n }\n\n return Object.freeze(commands);\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { AuthInvocation } from "../operations/context.mjs";
|
|
2
|
+
import { AuthenticationEvidence, AuthenticationRequirement } from "../sessions/models.mjs";
|
|
3
|
+
import { PasskeyActionChallenge } from "./models.mjs";
|
|
4
|
+
import { PasskeyActionRequired, PasskeyUnavailable } from "./errors.mjs";
|
|
5
|
+
import { Context, Effect, Redacted } from "effect";
|
|
6
|
+
//#region src/passkey/PasskeyActionEvidence.d.ts
|
|
7
|
+
declare const PasskeyActionEvidence_base: Context.ServiceClass<PasskeyActionEvidence, "effect-auth/PasskeyActionEvidence", {
|
|
8
|
+
readonly verify: (input: {
|
|
9
|
+
readonly invocation: AuthInvocation;
|
|
10
|
+
readonly challenge: PasskeyActionChallenge;
|
|
11
|
+
readonly proof?: Redacted.Redacted<string>;
|
|
12
|
+
}) => Effect.Effect<{
|
|
13
|
+
readonly evidence: AuthenticationEvidence;
|
|
14
|
+
readonly requirement: AuthenticationRequirement;
|
|
15
|
+
}, PasskeyActionRequired | PasskeyUnavailable>;
|
|
16
|
+
}>;
|
|
17
|
+
/** Independent current action authority. Consume replay-sensitive input in its
|
|
18
|
+
* own authority; later enrollment/removal failure never refunds it. No default. */
|
|
19
|
+
declare class PasskeyActionEvidence extends PasskeyActionEvidence_base {}
|
|
20
|
+
//#endregion
|
|
21
|
+
export { PasskeyActionEvidence };
|
|
22
|
+
//# sourceMappingURL=PasskeyActionEvidence.d.mts.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Context } from "effect";
|
|
2
|
+
//#region src/passkey/PasskeyActionEvidence.ts
|
|
3
|
+
/** Independent current action authority. Consume replay-sensitive input in its
|
|
4
|
+
* own authority; later enrollment/removal failure never refunds it. No default. */
|
|
5
|
+
var PasskeyActionEvidence = class extends Context.Service()("effect-auth/PasskeyActionEvidence") {};
|
|
6
|
+
//#endregion
|
|
7
|
+
export { PasskeyActionEvidence };
|
|
8
|
+
|
|
9
|
+
//# sourceMappingURL=PasskeyActionEvidence.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PasskeyActionEvidence.mjs","names":[],"sources":["../../src/passkey/PasskeyActionEvidence.ts"],"sourcesContent":["import { Context, type Effect, type Redacted } from \"effect\";\n\nimport type { AuthInvocation } from \"../operations/context\";\nimport type { AuthenticationEvidence, AuthenticationRequirement } from \"../sessions/models\";\nimport type { PasskeyActionRequired, PasskeyUnavailable } from \"./errors\";\nimport type { PasskeyActionChallenge } from \"./models\";\n\n/** Independent current action authority. Consume replay-sensitive input in its\n * own authority; later enrollment/removal failure never refunds it. No default. */\nexport class PasskeyActionEvidence extends Context.Service<\n PasskeyActionEvidence,\n {\n readonly verify: (input: {\n readonly invocation: AuthInvocation;\n readonly challenge: PasskeyActionChallenge;\n readonly proof?: Redacted.Redacted<string>;\n }) => Effect.Effect<\n {\n readonly evidence: AuthenticationEvidence;\n readonly requirement: AuthenticationRequirement;\n },\n PasskeyActionRequired | PasskeyUnavailable\n >;\n }\n>()(\"effect-auth/PasskeyActionEvidence\") {}\n"],"mappings":";;;;AASA,IAAa,wBAAb,cAA2C,QAAQ,QAejD,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { PasskeyCredential, PasskeyProtocolCredentialId } from "./models.mjs";
|
|
2
|
+
import { PasskeyUnavailable } from "./errors.mjs";
|
|
3
|
+
import { Context, Effect } from "effect";
|
|
4
|
+
//#region src/passkey/PasskeyCredentials.d.ts
|
|
5
|
+
declare const PasskeyCredentials_base: Context.ServiceClass<PasskeyCredentials, "effect-auth/PasskeyCredentials", {
|
|
6
|
+
readonly lookup: (input: {
|
|
7
|
+
readonly rpId: string;
|
|
8
|
+
readonly protocolCredentialId: PasskeyProtocolCredentialId;
|
|
9
|
+
}) => Effect.Effect<PasskeyCredential | undefined, PasskeyUnavailable>;
|
|
10
|
+
}>;
|
|
11
|
+
/** Minimum read capability. The tuple is RP-global across module/profile aliases;
|
|
12
|
+
* protocol ID and opaque handle never become application subject identifiers. */
|
|
13
|
+
declare class PasskeyCredentials extends PasskeyCredentials_base {}
|
|
14
|
+
//#endregion
|
|
15
|
+
export { PasskeyCredentials };
|
|
16
|
+
//# sourceMappingURL=PasskeyCredentials.d.mts.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Context } from "effect";
|
|
2
|
+
//#region src/passkey/PasskeyCredentials.ts
|
|
3
|
+
/** Minimum read capability. The tuple is RP-global across module/profile aliases;
|
|
4
|
+
* protocol ID and opaque handle never become application subject identifiers. */
|
|
5
|
+
var PasskeyCredentials = class extends Context.Service()("effect-auth/PasskeyCredentials") {};
|
|
6
|
+
//#endregion
|
|
7
|
+
export { PasskeyCredentials };
|
|
8
|
+
|
|
9
|
+
//# sourceMappingURL=PasskeyCredentials.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PasskeyCredentials.mjs","names":[],"sources":["../../src/passkey/PasskeyCredentials.ts"],"sourcesContent":["import { Context, type Effect } from \"effect\";\n\nimport type { PasskeyUnavailable } from \"./errors\";\nimport type { PasskeyCredential, PasskeyProtocolCredentialId } from \"./models\";\n\n/** Minimum read capability. The tuple is RP-global across module/profile aliases;\n * protocol ID and opaque handle never become application subject identifiers. */\nexport class PasskeyCredentials extends Context.Service<\n PasskeyCredentials,\n {\n readonly lookup: (input: {\n readonly rpId: string;\n readonly protocolCredentialId: PasskeyProtocolCredentialId;\n }) => Effect.Effect<PasskeyCredential | undefined, PasskeyUnavailable>;\n }\n>()(\"effect-auth/PasskeyCredentials\") {}\n"],"mappings":";;;;AAOA,IAAa,qBAAb,cAAwC,QAAQ,QAQ9C,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { SubjectId } from "../Schema.mjs";
|
|
2
|
+
import { PasskeyDescriptor, PasskeyRevision, PasskeyUserHandle } from "./models.mjs";
|
|
3
|
+
import { PasskeyUnavailable } from "./errors.mjs";
|
|
4
|
+
import { Context, Effect } from "effect";
|
|
5
|
+
//#region src/passkey/PasskeyEnrollmentContext.d.ts
|
|
6
|
+
declare const PasskeyEnrollmentContext_base: Context.ServiceClass<PasskeyEnrollmentContext, "effect-auth/PasskeyEnrollmentContext", {
|
|
7
|
+
readonly capture: (input: {
|
|
8
|
+
readonly moduleId: string;
|
|
9
|
+
readonly rpId: string;
|
|
10
|
+
readonly subjectId: SubjectId;
|
|
11
|
+
}) => Effect.Effect<{
|
|
12
|
+
readonly revision: typeof PasskeyRevision.Type;
|
|
13
|
+
readonly userHandle?: PasskeyUserHandle;
|
|
14
|
+
readonly credentials: ReadonlyArray<typeof PasskeyDescriptor.Type>;
|
|
15
|
+
} | undefined, PasskeyUnavailable>;
|
|
16
|
+
}>;
|
|
17
|
+
/** Current active subject, original revisions and every same-RP exclusion. An
|
|
18
|
+
* absent handle is installed conditionally with issue, never by this read. */
|
|
19
|
+
declare class PasskeyEnrollmentContext extends PasskeyEnrollmentContext_base {}
|
|
20
|
+
//#endregion
|
|
21
|
+
export { PasskeyEnrollmentContext };
|
|
22
|
+
//# sourceMappingURL=PasskeyEnrollmentContext.d.mts.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Context } from "effect";
|
|
2
|
+
//#region src/passkey/PasskeyEnrollmentContext.ts
|
|
3
|
+
/** Current active subject, original revisions and every same-RP exclusion. An
|
|
4
|
+
* absent handle is installed conditionally with issue, never by this read. */
|
|
5
|
+
var PasskeyEnrollmentContext = class extends Context.Service()("effect-auth/PasskeyEnrollmentContext") {};
|
|
6
|
+
//#endregion
|
|
7
|
+
export { PasskeyEnrollmentContext };
|
|
8
|
+
|
|
9
|
+
//# sourceMappingURL=PasskeyEnrollmentContext.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PasskeyEnrollmentContext.mjs","names":[],"sources":["../../src/passkey/PasskeyEnrollmentContext.ts"],"sourcesContent":["import { Context, type Effect } from \"effect\";\n\nimport type { SubjectId } from \"../Schema\";\nimport type { PasskeyUnavailable } from \"./errors\";\nimport type { PasskeyDescriptor, PasskeyRevision, PasskeyUserHandle } from \"./models\";\n\n/** Current active subject, original revisions and every same-RP exclusion. An\n * absent handle is installed conditionally with issue, never by this read. */\nexport class PasskeyEnrollmentContext extends Context.Service<\n PasskeyEnrollmentContext,\n {\n readonly capture: (input: {\n readonly moduleId: string;\n readonly rpId: string;\n readonly subjectId: SubjectId;\n }) => Effect.Effect<\n | {\n readonly revision: typeof PasskeyRevision.Type;\n readonly userHandle?: PasskeyUserHandle;\n readonly credentials: ReadonlyArray<typeof PasskeyDescriptor.Type>;\n }\n | undefined,\n PasskeyUnavailable\n >;\n }\n>()(\"effect-auth/PasskeyEnrollmentContext\") {}\n"],"mappings":";;;;AAQA,IAAa,2BAAb,cAA8C,QAAQ,QAiBpD,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { SubjectId } from "../Schema.mjs";
|
|
2
|
+
import { PreparedCommit } from "../hooks/commit.mjs";
|
|
3
|
+
import { SessionInvalidationWindow } from "../sessions/invalidation.mjs";
|
|
4
|
+
import { PasskeyActionAuthorization, PasskeyCeremony, PasskeyClaim, PasskeyCredential, PasskeyCredentialSummary, PasskeyIssueDecision, PasskeyRegistrationVerified, PasskeyRemoved } from "./models.mjs";
|
|
5
|
+
import { PasskeyUnavailable } from "./errors.mjs";
|
|
6
|
+
import { PasskeyManagementPolicy, PasskeyMethodPolicy } from "./policy.mjs";
|
|
7
|
+
import { PreparePasskeyCommit } from "./PasskeyPersistence.mjs";
|
|
8
|
+
import { Context, Effect } from "effect";
|
|
9
|
+
//#region src/passkey/PasskeyManagementPersistence.d.ts
|
|
10
|
+
declare const PasskeyManagementPersistence_base: Context.ServiceClass<PasskeyManagementPersistence, "effect-auth/PasskeyManagementPersistence", {
|
|
11
|
+
/** Active current metadata-access policy and ownership, including replay. */
|
|
12
|
+
readonly list: (input: {
|
|
13
|
+
readonly moduleId: string;
|
|
14
|
+
readonly subjectId: SubjectId;
|
|
15
|
+
readonly cursor?: string;
|
|
16
|
+
readonly limit: number;
|
|
17
|
+
}) => Effect.Effect<{
|
|
18
|
+
readonly credentials: ReadonlyArray<PasskeyCredentialSummary>;
|
|
19
|
+
readonly cursor?: string;
|
|
20
|
+
}, PasskeyUnavailable>;
|
|
21
|
+
/** Exact action authority, exclusion set, proposed existing/absent handle and
|
|
22
|
+
* credential cap + durable admission + Pending ceremony in one owner. */
|
|
23
|
+
readonly issueEnrollment: <A>(input: {
|
|
24
|
+
readonly ceremony: PasskeyCeremony;
|
|
25
|
+
readonly policy: PasskeyMethodPolicy;
|
|
26
|
+
readonly management: PasskeyManagementPolicy;
|
|
27
|
+
readonly authorization: PasskeyActionAuthorization;
|
|
28
|
+
}, prepare: PreparePasskeyCommit<PasskeyIssueDecision, A>) => Effect.Effect<PreparedCommit<A>, PasskeyUnavailable>;
|
|
29
|
+
/** Repeat original+current requirements and all revisions/freshness at final
|
|
30
|
+
* clock, exact claim/key/handle/RP/global uniqueness and count. Join credential,
|
|
31
|
+
* shared factor, subject revision, session/pending invalidation + terminal event.
|
|
32
|
+
* Enrollment never creates AuthenticationEvidence/session. Primary eligibility
|
|
33
|
+
* requires the persisted enrollment profile AND verified UV, never later promotion. */
|
|
34
|
+
readonly completeEnrollment: <A>(input: {
|
|
35
|
+
readonly claim: PasskeyClaim;
|
|
36
|
+
readonly verified: PasskeyRegistrationVerified;
|
|
37
|
+
readonly authorization: PasskeyActionAuthorization;
|
|
38
|
+
readonly management: PasskeyManagementPolicy;
|
|
39
|
+
readonly invalidation: SessionInvalidationWindow;
|
|
40
|
+
readonly nowMillis: number;
|
|
41
|
+
}, prepare: PreparePasskeyCommit<{
|
|
42
|
+
readonly _tag: "Enrolled";
|
|
43
|
+
readonly credential: PasskeyCredentialSummary;
|
|
44
|
+
} | {
|
|
45
|
+
readonly _tag: "Rejected";
|
|
46
|
+
}, A>) => Effect.Effect<PreparedCommit<A>, PasskeyUnavailable>;
|
|
47
|
+
/** Authenticated exact command replay before fresh action input is consumed.
|
|
48
|
+
* Wrong command/subject/target reuse rejects; missing row never proves rollback. */
|
|
49
|
+
readonly inspectRemove: (input: {
|
|
50
|
+
readonly moduleId: string;
|
|
51
|
+
readonly subjectId: SubjectId;
|
|
52
|
+
readonly commandId: string;
|
|
53
|
+
readonly credentialId: string;
|
|
54
|
+
}) => Effect.Effect<{
|
|
55
|
+
readonly _tag: "Target";
|
|
56
|
+
readonly credential: PasskeyCredential;
|
|
57
|
+
} | {
|
|
58
|
+
readonly _tag: "Replay";
|
|
59
|
+
readonly result: typeof PasskeyRemoved.Type;
|
|
60
|
+
} | {
|
|
61
|
+
readonly _tag: "Rejected";
|
|
62
|
+
}, PasskeyUnavailable>;
|
|
63
|
+
/** Current independent action authority and last usable primary/recovery/factor
|
|
64
|
+
* policy in SAME owner; factor-only and connected grants are not alternatives.
|
|
65
|
+
* Concurrent removals leave a usable path. Remove credential/shared factor,
|
|
66
|
+
* bump semantic+subject revisions, terminalize dependent ceremonies, invalidate
|
|
67
|
+
* under declared strategy, retain exact command. Repeat postconditions last. */
|
|
68
|
+
readonly remove: <A>(input: {
|
|
69
|
+
readonly moduleId: string;
|
|
70
|
+
readonly commandId: string;
|
|
71
|
+
readonly credential: PasskeyCredential;
|
|
72
|
+
readonly authorization: PasskeyActionAuthorization;
|
|
73
|
+
readonly management: PasskeyManagementPolicy;
|
|
74
|
+
readonly invalidation: SessionInvalidationWindow;
|
|
75
|
+
readonly nowMillis: number;
|
|
76
|
+
readonly retentionUntilMillis: number;
|
|
77
|
+
}, prepare: PreparePasskeyCommit<{
|
|
78
|
+
readonly _tag: "Removed";
|
|
79
|
+
readonly result: typeof PasskeyRemoved.Type;
|
|
80
|
+
} | {
|
|
81
|
+
readonly _tag: "Rejected" | "LastSignInMethod";
|
|
82
|
+
}, A>) => Effect.Effect<PreparedCommit<A>, PasskeyUnavailable>;
|
|
83
|
+
/** Safe metadata only, no semantic revision bump. Current active owner/policy
|
|
84
|
+
* and exact original name/target on replay; conflicting command reuse rejects. */
|
|
85
|
+
readonly rename: <A>(input: {
|
|
86
|
+
readonly moduleId: string;
|
|
87
|
+
readonly subjectId: SubjectId;
|
|
88
|
+
readonly commandId: string;
|
|
89
|
+
readonly credentialId: string;
|
|
90
|
+
readonly name: string;
|
|
91
|
+
readonly nowMillis: number;
|
|
92
|
+
readonly retentionUntilMillis: number;
|
|
93
|
+
}, prepare: PreparePasskeyCommit<{
|
|
94
|
+
readonly _tag: "Renamed";
|
|
95
|
+
readonly credential: PasskeyCredentialSummary;
|
|
96
|
+
readonly replayed: boolean;
|
|
97
|
+
} | {
|
|
98
|
+
readonly _tag: "Rejected";
|
|
99
|
+
}, A>) => Effect.Effect<PreparedCommit<A>, PasskeyUnavailable>;
|
|
100
|
+
}>;
|
|
101
|
+
/** Optional same-owner composites. Global (rpId,id)/(rpId,handle) ownership spans
|
|
102
|
+
* all modules/profile aliases and unresolved registrations. No network or Claims. */
|
|
103
|
+
declare class PasskeyManagementPersistence extends PasskeyManagementPersistence_base {}
|
|
104
|
+
//#endregion
|
|
105
|
+
export { PasskeyManagementPersistence };
|
|
106
|
+
//# sourceMappingURL=PasskeyManagementPersistence.d.mts.map
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Context } from "effect";
|
|
2
|
+
//#region src/passkey/PasskeyManagementPersistence.ts
|
|
3
|
+
/** Optional same-owner composites. Global (rpId,id)/(rpId,handle) ownership spans
|
|
4
|
+
* all modules/profile aliases and unresolved registrations. No network or Claims. */
|
|
5
|
+
var PasskeyManagementPersistence = class extends Context.Service()("effect-auth/PasskeyManagementPersistence") {};
|
|
6
|
+
//#endregion
|
|
7
|
+
export { PasskeyManagementPersistence };
|
|
8
|
+
|
|
9
|
+
//# sourceMappingURL=PasskeyManagementPersistence.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PasskeyManagementPersistence.mjs","names":[],"sources":["../../src/passkey/PasskeyManagementPersistence.ts"],"sourcesContent":["import { Context, type Effect } from \"effect\";\n\nimport type { PreparedCommit } from \"../hooks/commit\";\nimport type { SubjectId } from \"../Schema\";\nimport type { SessionInvalidationWindow } from \"../sessions/invalidation\";\nimport type { PasskeyUnavailable } from \"./errors\";\nimport type {\n PasskeyActionAuthorization,\n PasskeyCeremony,\n PasskeyClaim,\n PasskeyCredential,\n PasskeyCredentialSummary,\n PasskeyIssueDecision,\n PasskeyRegistrationVerified,\n PasskeyRemoved,\n} from \"./models\";\nimport type { PreparePasskeyCommit } from \"./PasskeyPersistence\";\nimport type { PasskeyManagementPolicy, PasskeyMethodPolicy } from \"./policy\";\n\n/** Optional same-owner composites. Global (rpId,id)/(rpId,handle) ownership spans\n * all modules/profile aliases and unresolved registrations. No network or Claims. */\nexport class PasskeyManagementPersistence extends Context.Service<\n PasskeyManagementPersistence,\n {\n /** Active current metadata-access policy and ownership, including replay. */\n readonly list: (input: {\n readonly moduleId: string;\n readonly subjectId: SubjectId;\n readonly cursor?: string;\n readonly limit: number;\n }) => Effect.Effect<\n { readonly credentials: ReadonlyArray<PasskeyCredentialSummary>; readonly cursor?: string },\n PasskeyUnavailable\n >;\n /** Exact action authority, exclusion set, proposed existing/absent handle and\n * credential cap + durable admission + Pending ceremony in one owner. */\n readonly issueEnrollment: <A>(\n input: {\n readonly ceremony: PasskeyCeremony;\n readonly policy: PasskeyMethodPolicy;\n readonly management: PasskeyManagementPolicy;\n readonly authorization: PasskeyActionAuthorization;\n },\n prepare: PreparePasskeyCommit<PasskeyIssueDecision, A>,\n ) => Effect.Effect<PreparedCommit<A>, PasskeyUnavailable>;\n /** Repeat original+current requirements and all revisions/freshness at final\n * clock, exact claim/key/handle/RP/global uniqueness and count. Join credential,\n * shared factor, subject revision, session/pending invalidation + terminal event.\n * Enrollment never creates AuthenticationEvidence/session. Primary eligibility\n * requires the persisted enrollment profile AND verified UV, never later promotion. */\n readonly completeEnrollment: <A>(\n input: {\n readonly claim: PasskeyClaim;\n readonly verified: PasskeyRegistrationVerified;\n readonly authorization: PasskeyActionAuthorization;\n readonly management: PasskeyManagementPolicy;\n readonly invalidation: SessionInvalidationWindow;\n readonly nowMillis: number;\n },\n prepare: PreparePasskeyCommit<\n | { readonly _tag: \"Enrolled\"; readonly credential: PasskeyCredentialSummary }\n | { readonly _tag: \"Rejected\" },\n A\n >,\n ) => Effect.Effect<PreparedCommit<A>, PasskeyUnavailable>;\n /** Authenticated exact command replay before fresh action input is consumed.\n * Wrong command/subject/target reuse rejects; missing row never proves rollback. */\n readonly inspectRemove: (input: {\n readonly moduleId: string;\n readonly subjectId: SubjectId;\n readonly commandId: string;\n readonly credentialId: string;\n }) => Effect.Effect<\n | { readonly _tag: \"Target\"; readonly credential: PasskeyCredential }\n | { readonly _tag: \"Replay\"; readonly result: typeof PasskeyRemoved.Type }\n | { readonly _tag: \"Rejected\" },\n PasskeyUnavailable\n >;\n /** Current independent action authority and last usable primary/recovery/factor\n * policy in SAME owner; factor-only and connected grants are not alternatives.\n * Concurrent removals leave a usable path. Remove credential/shared factor,\n * bump semantic+subject revisions, terminalize dependent ceremonies, invalidate\n * under declared strategy, retain exact command. Repeat postconditions last. */\n readonly remove: <A>(\n input: {\n readonly moduleId: string;\n readonly commandId: string;\n readonly credential: PasskeyCredential;\n readonly authorization: PasskeyActionAuthorization;\n readonly management: PasskeyManagementPolicy;\n readonly invalidation: SessionInvalidationWindow;\n readonly nowMillis: number;\n readonly retentionUntilMillis: number;\n },\n prepare: PreparePasskeyCommit<\n | { readonly _tag: \"Removed\"; readonly result: typeof PasskeyRemoved.Type }\n | { readonly _tag: \"Rejected\" | \"LastSignInMethod\" },\n A\n >,\n ) => Effect.Effect<PreparedCommit<A>, PasskeyUnavailable>;\n /** Safe metadata only, no semantic revision bump. Current active owner/policy\n * and exact original name/target on replay; conflicting command reuse rejects. */\n readonly rename: <A>(\n input: {\n readonly moduleId: string;\n readonly subjectId: SubjectId;\n readonly commandId: string;\n readonly credentialId: string;\n readonly name: string;\n readonly nowMillis: number;\n readonly retentionUntilMillis: number;\n },\n prepare: PreparePasskeyCommit<\n | {\n readonly _tag: \"Renamed\";\n readonly credential: PasskeyCredentialSummary;\n readonly replayed: boolean;\n }\n | { readonly _tag: \"Rejected\" },\n A\n >,\n ) => Effect.Effect<PreparedCommit<A>, PasskeyUnavailable>;\n }\n>()(\"effect-auth/PasskeyManagementPersistence\") {}\n"],"mappings":";;;;AAqBA,IAAa,+BAAb,cAAkD,QAAQ,QAsGxD,CAAC,CAAC,0CAA0C,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { CommitJournal, PreparedCommit } from "../hooks/commit.mjs";
|
|
2
|
+
import { PasskeyAccess, PasskeyAssertionVerified, PasskeyCeremony, PasskeyClaim, PasskeyClaimDecision, PasskeyCleanupResult, PasskeyCredential, PasskeyEvidence, PasskeyIssueDecision, PasskeySettlement } from "./models.mjs";
|
|
3
|
+
import { PasskeyUnavailable } from "./errors.mjs";
|
|
4
|
+
import { PasskeyMethodPolicy } from "./policy.mjs";
|
|
5
|
+
import { Context, Effect } from "effect";
|
|
6
|
+
//#region src/passkey/PasskeyPersistence.d.ts
|
|
7
|
+
type PreparePasskeyCommit<Value, A> = (value: Value, journal: CommitJournal) => PreparedCommit<A>;
|
|
8
|
+
declare const PasskeyPersistence_base: Context.ServiceClass<PasskeyPersistence, "effect-auth/PasskeyPersistence", {
|
|
9
|
+
/** Unique module/flow + command. Exact challenge, context and binder; durable
|
|
10
|
+
* global/subject/target rolling budgets and pending caps at authority time.
|
|
11
|
+
* Duplicate never returns old ceremony with a new binder. Retain charge windows. */
|
|
12
|
+
readonly issue: <A>(input: {
|
|
13
|
+
readonly ceremony: PasskeyCeremony;
|
|
14
|
+
readonly policy: PasskeyMethodPolicy;
|
|
15
|
+
}, prepare: PreparePasskeyCommit<PasskeyIssueDecision, A>) => Effect.Effect<PreparedCommit<A>, PasskeyUnavailable>;
|
|
16
|
+
readonly context: (input: PasskeyAccess) => Effect.Effect<PasskeyCeremony | undefined, PasskeyUnavailable>;
|
|
17
|
+
/** Recheck exact Pending/context/config/binder/current revisions/expiry and
|
|
18
|
+
* the immutable issue policy. Atomically charge the newly resolved subject
|
|
19
|
+
* for discoverable flows whose subject was unknown at issue; retain known
|
|
20
|
+
* subject/target issue charges through full physical rolling windows. Serialize
|
|
21
|
+
* the subject budget decision with claim so different flows cannot bypass it.
|
|
22
|
+
* Optional credential authority is captured before signature verification.
|
|
23
|
+
* One fixed claim; no takeover, lease renewal or return to Pending. */
|
|
24
|
+
readonly claim: <A>(input: {
|
|
25
|
+
readonly access: PasskeyAccess;
|
|
26
|
+
readonly policy: PasskeyMethodPolicy;
|
|
27
|
+
readonly ceremony: PasskeyCeremony;
|
|
28
|
+
readonly claimId: string;
|
|
29
|
+
readonly credential?: PasskeyCredential;
|
|
30
|
+
}, prepare: PreparePasskeyCommit<PasskeyClaimDecision, A>) => Effect.Effect<PreparedCommit<A>, PasskeyUnavailable>;
|
|
31
|
+
/** Every outcome terminalizes. Verified checks original active subject, full
|
|
32
|
+
* credential/key/profile/handle/BE and semantic revisions at final engine time.
|
|
33
|
+
* Single-device: zero/zero or strict positive increase against current counter.
|
|
34
|
+
* Multi-device: allow zero/reset/out-of-order; atomically merge max and BS without
|
|
35
|
+
* telemetry CAS rejecting another valid challenge. No semantic revision bump.
|
|
36
|
+
* Recheck all postconditions AFTER final writes; failures roll back everything. */
|
|
37
|
+
readonly settle: <A>(input: {
|
|
38
|
+
readonly claim: PasskeyClaim;
|
|
39
|
+
readonly outcome: {
|
|
40
|
+
readonly _tag: "Rejected" | "Ambiguous";
|
|
41
|
+
} | {
|
|
42
|
+
readonly _tag: "Assertion";
|
|
43
|
+
readonly credential: PasskeyCredential;
|
|
44
|
+
readonly assertion: PasskeyAssertionVerified;
|
|
45
|
+
readonly evidence: typeof PasskeyEvidence.Type;
|
|
46
|
+
};
|
|
47
|
+
readonly nowMillis: number;
|
|
48
|
+
}, prepare: PreparePasskeyCommit<PasskeySettlement, A>) => Effect.Effect<PreparedCommit<A>, PasskeyUnavailable>;
|
|
49
|
+
/** Expired Pending->Rejected, Claimed->Ambiguous, never reopen. Keep claim and
|
|
50
|
+
* charge/replay horizons and unresolved registration; bounded authority-time CAS. */
|
|
51
|
+
readonly cleanup: <A>(input: {
|
|
52
|
+
readonly moduleId: string;
|
|
53
|
+
readonly nowMillis: number;
|
|
54
|
+
readonly limit: number;
|
|
55
|
+
}, prepare: PreparePasskeyCommit<PasskeyCleanupResult, A>) => Effect.Effect<PreparedCommit<A>, PasskeyUnavailable>;
|
|
56
|
+
}>;
|
|
57
|
+
/** Same-owner authority. Synchronous generic prepare precedes physical commit.
|
|
58
|
+
* Unknown/caught-child/rollback discards all receipts and events; no owner retry.
|
|
59
|
+
* Claim-before-verifier is mandatory. Nothing accepts raw response or bearer. */
|
|
60
|
+
declare class PasskeyPersistence extends PasskeyPersistence_base {}
|
|
61
|
+
//#endregion
|
|
62
|
+
export { PasskeyPersistence, PreparePasskeyCommit };
|
|
63
|
+
//# sourceMappingURL=PasskeyPersistence.d.mts.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Context } from "effect";
|
|
2
|
+
//#region src/passkey/PasskeyPersistence.ts
|
|
3
|
+
/** Same-owner authority. Synchronous generic prepare precedes physical commit.
|
|
4
|
+
* Unknown/caught-child/rollback discards all receipts and events; no owner retry.
|
|
5
|
+
* Claim-before-verifier is mandatory. Nothing accepts raw response or bearer. */
|
|
6
|
+
var PasskeyPersistence = class extends Context.Service()("effect-auth/PasskeyPersistence") {};
|
|
7
|
+
//#endregion
|
|
8
|
+
export { PasskeyPersistence };
|
|
9
|
+
|
|
10
|
+
//# sourceMappingURL=PasskeyPersistence.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PasskeyPersistence.mjs","names":[],"sources":["../../src/passkey/PasskeyPersistence.ts"],"sourcesContent":["import { Context, type Effect } from \"effect\";\n\nimport type { CommitJournal, PreparedCommit } from \"../hooks/commit\";\nimport type { PasskeyUnavailable } from \"./errors\";\nimport type {\n PasskeyAccess,\n PasskeyAssertionVerified,\n PasskeyCeremony,\n PasskeyClaim,\n PasskeyClaimDecision,\n PasskeyCleanupResult,\n PasskeyCredential,\n PasskeyEvidence,\n PasskeyIssueDecision,\n PasskeySettlement,\n} from \"./models\";\nimport type { PasskeyMethodPolicy } from \"./policy\";\n\nexport type PreparePasskeyCommit<Value, A> = (\n value: Value,\n journal: CommitJournal,\n) => PreparedCommit<A>;\n\n/** Same-owner authority. Synchronous generic prepare precedes physical commit.\n * Unknown/caught-child/rollback discards all receipts and events; no owner retry.\n * Claim-before-verifier is mandatory. Nothing accepts raw response or bearer. */\nexport class PasskeyPersistence extends Context.Service<\n PasskeyPersistence,\n {\n /** Unique module/flow + command. Exact challenge, context and binder; durable\n * global/subject/target rolling budgets and pending caps at authority time.\n * Duplicate never returns old ceremony with a new binder. Retain charge windows. */\n readonly issue: <A>(\n input: { readonly ceremony: PasskeyCeremony; readonly policy: PasskeyMethodPolicy },\n prepare: PreparePasskeyCommit<PasskeyIssueDecision, A>,\n ) => Effect.Effect<PreparedCommit<A>, PasskeyUnavailable>;\n readonly context: (\n input: PasskeyAccess,\n ) => Effect.Effect<PasskeyCeremony | undefined, PasskeyUnavailable>;\n /** Recheck exact Pending/context/config/binder/current revisions/expiry and\n * the immutable issue policy. Atomically charge the newly resolved subject\n * for discoverable flows whose subject was unknown at issue; retain known\n * subject/target issue charges through full physical rolling windows. Serialize\n * the subject budget decision with claim so different flows cannot bypass it.\n * Optional credential authority is captured before signature verification.\n * One fixed claim; no takeover, lease renewal or return to Pending. */\n readonly claim: <A>(\n input: {\n readonly access: PasskeyAccess;\n readonly policy: PasskeyMethodPolicy;\n readonly ceremony: PasskeyCeremony;\n readonly claimId: string;\n readonly credential?: PasskeyCredential;\n },\n prepare: PreparePasskeyCommit<PasskeyClaimDecision, A>,\n ) => Effect.Effect<PreparedCommit<A>, PasskeyUnavailable>;\n /** Every outcome terminalizes. Verified checks original active subject, full\n * credential/key/profile/handle/BE and semantic revisions at final engine time.\n * Single-device: zero/zero or strict positive increase against current counter.\n * Multi-device: allow zero/reset/out-of-order; atomically merge max and BS without\n * telemetry CAS rejecting another valid challenge. No semantic revision bump.\n * Recheck all postconditions AFTER final writes; failures roll back everything. */\n readonly settle: <A>(\n input: {\n readonly claim: PasskeyClaim;\n readonly outcome:\n | { readonly _tag: \"Rejected\" | \"Ambiguous\" }\n | {\n readonly _tag: \"Assertion\";\n readonly credential: PasskeyCredential;\n readonly assertion: PasskeyAssertionVerified;\n readonly evidence: typeof PasskeyEvidence.Type;\n };\n readonly nowMillis: number;\n },\n prepare: PreparePasskeyCommit<PasskeySettlement, A>,\n ) => Effect.Effect<PreparedCommit<A>, PasskeyUnavailable>;\n /** Expired Pending->Rejected, Claimed->Ambiguous, never reopen. Keep claim and\n * charge/replay horizons and unresolved registration; bounded authority-time CAS. */\n readonly cleanup: <A>(\n input: { readonly moduleId: string; readonly nowMillis: number; readonly limit: number },\n prepare: PreparePasskeyCommit<PasskeyCleanupResult, A>,\n ) => Effect.Effect<PreparedCommit<A>, PasskeyUnavailable>;\n }\n>()(\"effect-auth/PasskeyPersistence\") {}\n"],"mappings":";;;;;AA0BA,IAAa,qBAAb,cAAwC,QAAQ,QA0D9C,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { PasskeyAssertionVerified, PasskeyAuthenticationOptions, PasskeyCeremony, PasskeyCredential, PasskeyDescriptor, PasskeyProfile, PasskeyRegistrationOptions, PasskeyRegistrationVerified, PasskeyUserHandle } from "./models.mjs";
|
|
2
|
+
import { PasskeyProtocolRejected, PasskeyUnavailable } from "./errors.mjs";
|
|
3
|
+
import { Context, Effect, Redacted } from "effect";
|
|
4
|
+
//#region src/passkey/PasskeyProtocol.d.ts
|
|
5
|
+
declare const PasskeyProtocol_base: Context.ServiceClass<PasskeyProtocol, "effect-auth/PasskeyProtocol", {
|
|
6
|
+
readonly prepareAuthentication: (input: {
|
|
7
|
+
readonly profile: PasskeyProfile;
|
|
8
|
+
readonly challenge: string;
|
|
9
|
+
readonly timeoutMillis: number;
|
|
10
|
+
readonly allowedCredentials: ReadonlyArray<typeof PasskeyDescriptor.Type>;
|
|
11
|
+
}) => Effect.Effect<PasskeyAuthenticationOptions, PasskeyProtocolRejected | PasskeyUnavailable>;
|
|
12
|
+
readonly prepareRegistration: (input: {
|
|
13
|
+
readonly profile: PasskeyProfile;
|
|
14
|
+
readonly challenge: string;
|
|
15
|
+
readonly timeoutMillis: number;
|
|
16
|
+
readonly userHandle: PasskeyUserHandle;
|
|
17
|
+
readonly name: string;
|
|
18
|
+
readonly displayName: string;
|
|
19
|
+
readonly excludedCredentials: ReadonlyArray<typeof PasskeyDescriptor.Type>;
|
|
20
|
+
}) => Effect.Effect<PasskeyRegistrationOptions, PasskeyProtocolRejected | PasskeyUnavailable>;
|
|
21
|
+
readonly verifyAuthentication: (input: {
|
|
22
|
+
readonly ceremony: PasskeyCeremony;
|
|
23
|
+
readonly credential: PasskeyCredential;
|
|
24
|
+
readonly response: Redacted.Redacted<string>;
|
|
25
|
+
}) => Effect.Effect<PasskeyAssertionVerified, PasskeyProtocolRejected | PasskeyUnavailable>;
|
|
26
|
+
readonly verifyRegistration: (input: {
|
|
27
|
+
readonly ceremony: PasskeyCeremony;
|
|
28
|
+
readonly response: Redacted.Redacted<string>;
|
|
29
|
+
}) => Effect.Effect<PasskeyRegistrationVerified, PasskeyProtocolRejected | PasskeyUnavailable>;
|
|
30
|
+
}>;
|
|
31
|
+
/** Maintained WebAuthn boundary. Validate the configured RP against a maintained
|
|
32
|
+
* public-suffix/domain authority; no permissive default or hand-written verifier.
|
|
33
|
+
* Exact type/challenge/origin/RP/id/rawId/handle, UP/UV, signature and immutable BE.
|
|
34
|
+
* None-only attestation. No global settings, identity lookup, persistence or tokens. */
|
|
35
|
+
declare class PasskeyProtocol extends PasskeyProtocol_base {}
|
|
36
|
+
//#endregion
|
|
37
|
+
export { PasskeyProtocol };
|
|
38
|
+
//# sourceMappingURL=PasskeyProtocol.d.mts.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Context } from "effect";
|
|
2
|
+
//#region src/passkey/PasskeyProtocol.ts
|
|
3
|
+
/** Maintained WebAuthn boundary. Validate the configured RP against a maintained
|
|
4
|
+
* public-suffix/domain authority; no permissive default or hand-written verifier.
|
|
5
|
+
* Exact type/challenge/origin/RP/id/rawId/handle, UP/UV, signature and immutable BE.
|
|
6
|
+
* None-only attestation. No global settings, identity lookup, persistence or tokens. */
|
|
7
|
+
var PasskeyProtocol = class extends Context.Service()("effect-auth/PasskeyProtocol") {};
|
|
8
|
+
//#endregion
|
|
9
|
+
export { PasskeyProtocol };
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=PasskeyProtocol.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PasskeyProtocol.mjs","names":[],"sources":["../../src/passkey/PasskeyProtocol.ts"],"sourcesContent":["import { Context, type Effect, type Redacted } from \"effect\";\n\nimport type { PasskeyProtocolRejected, PasskeyUnavailable } from \"./errors\";\nimport type {\n PasskeyAssertionVerified,\n PasskeyAuthenticationOptions,\n PasskeyCeremony,\n PasskeyCredential,\n PasskeyDescriptor,\n PasskeyProfile,\n PasskeyRegistrationOptions,\n PasskeyRegistrationVerified,\n PasskeyUserHandle,\n} from \"./models\";\n\n/** Maintained WebAuthn boundary. Validate the configured RP against a maintained\n * public-suffix/domain authority; no permissive default or hand-written verifier.\n * Exact type/challenge/origin/RP/id/rawId/handle, UP/UV, signature and immutable BE.\n * None-only attestation. No global settings, identity lookup, persistence or tokens. */\nexport class PasskeyProtocol extends Context.Service<\n PasskeyProtocol,\n {\n readonly prepareAuthentication: (input: {\n readonly profile: PasskeyProfile;\n readonly challenge: string;\n readonly timeoutMillis: number;\n readonly allowedCredentials: ReadonlyArray<typeof PasskeyDescriptor.Type>;\n }) => Effect.Effect<PasskeyAuthenticationOptions, PasskeyProtocolRejected | PasskeyUnavailable>;\n readonly prepareRegistration: (input: {\n readonly profile: PasskeyProfile;\n readonly challenge: string;\n readonly timeoutMillis: number;\n readonly userHandle: PasskeyUserHandle;\n readonly name: string;\n readonly displayName: string;\n readonly excludedCredentials: ReadonlyArray<typeof PasskeyDescriptor.Type>;\n }) => Effect.Effect<PasskeyRegistrationOptions, PasskeyProtocolRejected | PasskeyUnavailable>;\n readonly verifyAuthentication: (input: {\n readonly ceremony: PasskeyCeremony;\n readonly credential: PasskeyCredential;\n readonly response: Redacted.Redacted<string>;\n }) => Effect.Effect<PasskeyAssertionVerified, PasskeyProtocolRejected | PasskeyUnavailable>;\n readonly verifyRegistration: (input: {\n readonly ceremony: PasskeyCeremony;\n readonly response: Redacted.Redacted<string>;\n }) => Effect.Effect<PasskeyRegistrationVerified, PasskeyProtocolRejected | PasskeyUnavailable>;\n }\n>()(\"effect-auth/PasskeyProtocol\") {}\n"],"mappings":";;;;;;AAmBA,IAAa,kBAAb,cAAqC,QAAQ,QA4B3C,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC"}
|