@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,38 @@
|
|
|
1
|
+
import { LoginIdentifier } from "../../identity/models.mjs";
|
|
2
|
+
import { AuthenticationRequirement } from "../../sessions/models.mjs";
|
|
3
|
+
import { PasswordUnavailable } from "./errors.mjs";
|
|
4
|
+
import { PasswordCredentialSnapshot } from "./models.mjs";
|
|
5
|
+
import { Array, Effect, Schema } from "effect";
|
|
6
|
+
//#region src/password/methods/snapshot.ts
|
|
7
|
+
/** Detach authority-owned vectors before yielding to KDF/claims/hooks. */
|
|
8
|
+
const snapshotPasswordRevision = (value) => Object.freeze({
|
|
9
|
+
subjectId: value.subjectId,
|
|
10
|
+
securityRevision: value.securityRevision,
|
|
11
|
+
credentials: Object.freeze(value.credentials.map((item) => Object.freeze({
|
|
12
|
+
credentialId: item.credentialId,
|
|
13
|
+
revision: item.revision
|
|
14
|
+
})))
|
|
15
|
+
});
|
|
16
|
+
const credentialCodec = Schema.toCodecIso(PasswordCredentialSnapshot);
|
|
17
|
+
const snapshotPasswordCredential = Effect.fn("snapshotPasswordCredential")(function* (input) {
|
|
18
|
+
const value = yield* Schema.encodeEffect(credentialCodec)(input).pipe(Effect.flatMap(Schema.decodeEffect(credentialCodec)), Effect.mapError(() => PasswordUnavailable.make({})));
|
|
19
|
+
return Object.freeze({
|
|
20
|
+
...value,
|
|
21
|
+
revision: snapshotPasswordRevision(value.revision),
|
|
22
|
+
identifier: Object.freeze(LoginIdentifier.make(value.identifier))
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
const snapshotPasswordRequirement = Effect.fn("snapshotPasswordRequirement")(function* (input) {
|
|
26
|
+
const value = yield* Schema.decodeEffect(AuthenticationRequirement)(input).pipe(Effect.mapError(() => PasswordUnavailable.make({})));
|
|
27
|
+
return Object.freeze({
|
|
28
|
+
...value,
|
|
29
|
+
alternatives: Object.freeze(Array.map(value.alternatives, (item) => Object.freeze({
|
|
30
|
+
...item,
|
|
31
|
+
factors: Object.freeze([...item.factors])
|
|
32
|
+
})))
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
//#endregion
|
|
36
|
+
export { snapshotPasswordCredential, snapshotPasswordRequirement, snapshotPasswordRevision };
|
|
37
|
+
|
|
38
|
+
//# sourceMappingURL=snapshot.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snapshot.mjs","names":[],"sources":["../../../src/password/methods/snapshot.ts"],"sourcesContent":["import { Array, Effect, Schema } from \"effect\";\n\nimport { LoginIdentifier } from \"../../identity/models\";\nimport type { AuthenticationRevision } from \"../../sessions/models\";\nimport { AuthenticationRequirement } from \"../../sessions/models\";\nimport { PasswordUnavailable } from \"./errors\";\nimport { PasswordCredentialSnapshot } from \"./models\";\n\n/** Detach authority-owned vectors before yielding to KDF/claims/hooks. */\nexport const snapshotPasswordRevision = (value: AuthenticationRevision): AuthenticationRevision =>\n Object.freeze({\n subjectId: value.subjectId,\n securityRevision: value.securityRevision,\n credentials: Object.freeze(\n value.credentials.map((item) =>\n Object.freeze({ credentialId: item.credentialId, revision: item.revision }),\n ),\n ),\n });\n\nconst credentialCodec = Schema.toCodecIso(PasswordCredentialSnapshot);\n\nexport const snapshotPasswordCredential = Effect.fn(\"snapshotPasswordCredential\")(function* (\n input: PasswordCredentialSnapshot,\n) {\n const value = yield* Schema.encodeEffect(credentialCodec)(input).pipe(\n Effect.flatMap(Schema.decodeEffect(credentialCodec)),\n Effect.mapError(() => PasswordUnavailable.make({})),\n );\n\n return Object.freeze({\n ...value,\n revision: snapshotPasswordRevision(value.revision),\n identifier: Object.freeze(LoginIdentifier.make(value.identifier)),\n });\n});\n\nexport const snapshotPasswordRequirement = Effect.fn(\"snapshotPasswordRequirement\")(function* (\n input: AuthenticationRequirement,\n) {\n const value = yield* Schema.decodeEffect(AuthenticationRequirement)(input).pipe(\n Effect.mapError(() => PasswordUnavailable.make({})),\n );\n\n return Object.freeze({\n ...value,\n alternatives: Object.freeze(\n Array.map(value.alternatives, (item) =>\n Object.freeze({ ...item, factors: Object.freeze([...item.factors]) }),\n ),\n ),\n });\n});\n"],"mappings":";;;;;;;AASA,MAAa,4BAA4B,UACvC,OAAO,OAAO;CACZ,WAAW,MAAM;CACjB,kBAAkB,MAAM;CACxB,aAAa,OAAO,OAClB,MAAM,YAAY,KAAK,SACrB,OAAO,OAAO;EAAE,cAAc,KAAK;EAAc,UAAU,KAAK;CAAS,CAAC,CAC5E,CACF;AACF,CAAC;AAEH,MAAM,kBAAkB,OAAO,WAAW,0BAA0B;AAEpE,MAAa,6BAA6B,OAAO,GAAG,4BAA4B,CAAC,CAAC,WAChF,OACA;CACA,MAAM,QAAQ,OAAO,OAAO,aAAa,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,KAC/D,OAAO,QAAQ,OAAO,aAAa,eAAe,CAAC,GACnD,OAAO,eAAe,oBAAoB,KAAK,CAAC,CAAC,CAAC,CACpD;CAEA,OAAO,OAAO,OAAO;EACnB,GAAG;EACH,UAAU,yBAAyB,MAAM,QAAQ;EACjD,YAAY,OAAO,OAAO,gBAAgB,KAAK,MAAM,UAAU,CAAC;CAClE,CAAC;AACH,CAAC;AAED,MAAa,8BAA8B,OAAO,GAAG,6BAA6B,CAAC,CAAC,WAClF,OACA;CACA,MAAM,QAAQ,OAAO,OAAO,aAAa,yBAAyB,CAAC,CAAC,KAAK,CAAC,CAAC,KACzE,OAAO,eAAe,oBAAoB,KAAK,CAAC,CAAC,CAAC,CACpD;CAEA,OAAO,OAAO,OAAO;EACnB,GAAG;EACH,cAAc,OAAO,OACnB,MAAM,IAAI,MAAM,eAAe,SAC7B,OAAO,OAAO;GAAE,GAAG;GAAM,SAAS,OAAO,OAAO,CAAC,GAAG,KAAK,OAAO,CAAC;EAAE,CAAC,CACtE,CACF;CACF,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { TokenDigest } from "../../Schema.mjs";
|
|
2
|
+
import { LoginIdentifier } from "../../identity/models.mjs";
|
|
3
|
+
import { HookDenied } from "../../hooks/models.mjs";
|
|
4
|
+
import { reportAuthFailure } from "../../internal/diagnostics.mjs";
|
|
5
|
+
import { PendingAuthenticationInvalid, SessionCapabilityUnsupported, SessionConflict, SessionInvalid, StaleAuthentication } from "../../sessions/errors.mjs";
|
|
6
|
+
import { hasCommitScope } from "../../hooks/commit.mjs";
|
|
7
|
+
import { AuthenticationAuthority } from "../../sessions/AuthenticationAuthority.mjs";
|
|
8
|
+
import { PasswordHashingUnavailable, PasswordKdfBusy } from "../errors.mjs";
|
|
9
|
+
import { PasswordMethodUnsupported, PasswordRejected, PasswordUnavailable } from "./errors.mjs";
|
|
10
|
+
import { PasswordPersistence } from "./PasswordPersistence.mjs";
|
|
11
|
+
import { snapshotPasswordCredential, snapshotPasswordRevision } from "./snapshot.mjs";
|
|
12
|
+
import { PasswordHashing } from "../PasswordHashing.mjs";
|
|
13
|
+
import { Cause, Crypto, DateTime, Effect, Encoding, Redacted, Schema } from "effect";
|
|
14
|
+
//#region src/password/methods/verification.ts
|
|
15
|
+
const passwordNoAmbient = Effect.fn("Passwords.noAmbient")(function* () {
|
|
16
|
+
if (yield* hasCommitScope) return yield* PasswordMethodUnsupported.make({});
|
|
17
|
+
});
|
|
18
|
+
const readPasswordCommit = (receipt) => receipt.read.pipe(Effect.mapError(() => PasswordUnavailable.make({})));
|
|
19
|
+
/** A commit acknowledgment can be lost after the session is durable. Only
|
|
20
|
+
* definite policy/credential rejection may become PasswordRejected. */
|
|
21
|
+
const passwordCompletionFailure = (error) => {
|
|
22
|
+
if (Schema.is(HookDenied)(error)) return error;
|
|
23
|
+
if (Schema.is(SessionCapabilityUnsupported)(error)) return PasswordMethodUnsupported.make({});
|
|
24
|
+
if (Schema.is(Schema.Union([
|
|
25
|
+
SessionCapabilityUnsupported,
|
|
26
|
+
SessionInvalid,
|
|
27
|
+
SessionConflict,
|
|
28
|
+
PendingAuthenticationInvalid,
|
|
29
|
+
StaleAuthentication
|
|
30
|
+
]))(error)) return PasswordRejected.make({});
|
|
31
|
+
return PasswordUnavailable.make({});
|
|
32
|
+
};
|
|
33
|
+
const noAmbient = passwordNoAmbient;
|
|
34
|
+
const read = readPasswordCommit;
|
|
35
|
+
const passwordUnexpected = (effect) => effect.pipe(Effect.mapError(() => PasswordUnavailable.make({})));
|
|
36
|
+
const unexpected = passwordUnexpected;
|
|
37
|
+
const hashingInfrastructureFailure = Schema.is(Schema.Union([PasswordHashingUnavailable, PasswordKdfBusy]));
|
|
38
|
+
/** Report infrastructure recovery without recording passwords or verifier data. */
|
|
39
|
+
const passwordHashingDiagnostics = (effect) => effect.pipe(Effect.tapCause((cause) => reportAuthFailure("password-hashing", Cause.fromReasons(cause.reasons.filter((reason) => Cause.isFailReason(reason) && hashingInfrastructureFailure(reason.error))))));
|
|
40
|
+
/** Verification owns attempt admission, settlement and the original proof instant. */
|
|
41
|
+
const makePasswordVerification = ({ moduleId, policy }) => {
|
|
42
|
+
const encoder = new TextEncoder();
|
|
43
|
+
const tuple = Schema.fromJsonString(Schema.Array(Schema.String));
|
|
44
|
+
const digest = Effect.fn("Passwords.digest")(function* (parts) {
|
|
45
|
+
const crypto = yield* Crypto.Crypto;
|
|
46
|
+
const bytes = yield* unexpected(crypto.digest("SHA-256", encoder.encode(Schema.encodeSync(tuple)(parts))));
|
|
47
|
+
return TokenDigest.make(Encoding.encodeBase64Url(bytes));
|
|
48
|
+
});
|
|
49
|
+
const identifier = (email) => LoginIdentifier.make({
|
|
50
|
+
namespace: "email",
|
|
51
|
+
value: email
|
|
52
|
+
});
|
|
53
|
+
const sameCredential = (credential, revision) => credential.moduleId === moduleId && credential.revision.subjectId === revision.subjectId && credential.revision.securityRevision === revision.securityRevision && revision.credentials.some((item) => item.credentialId === credential.credentialId && item.revision === credential.credentialRevision);
|
|
54
|
+
const checkedPassword = Effect.fn("Passwords.checkedPassword")(function* (password, credential) {
|
|
55
|
+
const raw = Redacted.value(password);
|
|
56
|
+
yield* Schema.decodeEffect(Schema.String.check(Schema.isMaxLength(65536)))(raw);
|
|
57
|
+
if (credential.normalization === "none") return password;
|
|
58
|
+
yield* Schema.decodeEffect(Schema.String.check(Schema.isPattern(/^[^\uD800-\uDFFF]*$/u)))(raw);
|
|
59
|
+
return Redacted.make(raw.normalize("NFC"));
|
|
60
|
+
}, Effect.mapError(() => PasswordRejected.make({})));
|
|
61
|
+
return {
|
|
62
|
+
digest,
|
|
63
|
+
identifier,
|
|
64
|
+
verifyPassword: Effect.fn("Passwords.verifyPassword")(function* (request, action, subjectId) {
|
|
65
|
+
yield* noAmbient();
|
|
66
|
+
const store = yield* PasswordPersistence;
|
|
67
|
+
const hasher = yield* PasswordHashing;
|
|
68
|
+
const authority = yield* AuthenticationAuthority;
|
|
69
|
+
const admitted = yield* read(yield* store.admitAttempt({
|
|
70
|
+
moduleId,
|
|
71
|
+
action,
|
|
72
|
+
identifier: identifier(request.email),
|
|
73
|
+
subjectId,
|
|
74
|
+
policy: policy.attempts
|
|
75
|
+
}, (decision, journal) => journal.prepare(decision)));
|
|
76
|
+
if (admitted._tag === "Denied") {
|
|
77
|
+
yield* hasher.dummy(request.password).pipe(passwordHashingDiagnostics, Effect.ignore);
|
|
78
|
+
return yield* PasswordRejected.make({});
|
|
79
|
+
}
|
|
80
|
+
const candidate = admitted.credential === void 0 ? void 0 : yield* snapshotPasswordCredential(admitted.credential);
|
|
81
|
+
const checked = yield* Effect.gen(function* () {
|
|
82
|
+
if (candidate === void 0) {
|
|
83
|
+
yield* hasher.dummy(request.password).pipe(passwordHashingDiagnostics);
|
|
84
|
+
return yield* PasswordRejected.make({});
|
|
85
|
+
}
|
|
86
|
+
const original = snapshotPasswordRevision(yield* authority.capture(candidate.revision.subjectId, [candidate.credentialId]));
|
|
87
|
+
if (!sameCredential(candidate, original) || subjectId !== void 0 && candidate.revision.subjectId !== subjectId || candidate.identifier.value !== request.email) {
|
|
88
|
+
yield* hasher.dummy(request.password).pipe(passwordHashingDiagnostics);
|
|
89
|
+
return yield* PasswordRejected.make({});
|
|
90
|
+
}
|
|
91
|
+
const password = yield* checkedPassword(request.password, candidate);
|
|
92
|
+
const verified = yield* hasher.verify(password, candidate.verifier).pipe(passwordHashingDiagnostics, Effect.catchTag("PasswordVerifierInvalid", () => hasher.dummy(password).pipe(passwordHashingDiagnostics, Effect.andThen(Effect.fail(PasswordRejected.make({}))))));
|
|
93
|
+
if (!verified.matches) return yield* PasswordRejected.make({});
|
|
94
|
+
const verifiedAt = yield* DateTime.now;
|
|
95
|
+
const rehash = action === "sign-in" && verified.needsRehash ? {
|
|
96
|
+
expectedVersion: candidate.verifierVersion,
|
|
97
|
+
expectedVerifier: candidate.verifier,
|
|
98
|
+
nextVerifier: yield* hasher.hash(password).pipe(passwordHashingDiagnostics)
|
|
99
|
+
} : void 0;
|
|
100
|
+
const evidence = {
|
|
101
|
+
revision: original,
|
|
102
|
+
flowId: request.flowId,
|
|
103
|
+
bindingDigest: yield* digest([
|
|
104
|
+
"effect-auth/password-login/v1",
|
|
105
|
+
moduleId,
|
|
106
|
+
request.flowId,
|
|
107
|
+
request.email
|
|
108
|
+
]),
|
|
109
|
+
proofs: [{
|
|
110
|
+
method: "password",
|
|
111
|
+
credentialId: candidate.credentialId,
|
|
112
|
+
factors: ["knowledge"],
|
|
113
|
+
userVerified: false,
|
|
114
|
+
phishingResistant: false,
|
|
115
|
+
verifiedAt
|
|
116
|
+
}]
|
|
117
|
+
};
|
|
118
|
+
return {
|
|
119
|
+
credential: candidate,
|
|
120
|
+
evidence,
|
|
121
|
+
rehash
|
|
122
|
+
};
|
|
123
|
+
}).pipe(Effect.result);
|
|
124
|
+
if ((yield* read(yield* store.settleAttempt({
|
|
125
|
+
moduleId,
|
|
126
|
+
attemptId: admitted.attemptId,
|
|
127
|
+
captured: candidate,
|
|
128
|
+
outcome: checked._tag === "Success" ? "verified" : "rejected",
|
|
129
|
+
...checked._tag === "Success" && checked.success.rehash !== void 0 ? { rehash: checked.success.rehash } : {}
|
|
130
|
+
}, (value, journal) => journal.prepare(value)))) !== "verified" || checked._tag !== "Success") return yield* PasswordRejected.make({});
|
|
131
|
+
return checked.success;
|
|
132
|
+
})
|
|
133
|
+
};
|
|
134
|
+
};
|
|
135
|
+
//#endregion
|
|
136
|
+
export { makePasswordVerification, passwordCompletionFailure, passwordHashingDiagnostics, passwordNoAmbient, passwordUnexpected, readPasswordCommit };
|
|
137
|
+
|
|
138
|
+
//# sourceMappingURL=verification.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verification.mjs","names":[],"sources":["../../../src/password/methods/verification.ts"],"sourcesContent":["import { Cause, Crypto, DateTime, Effect, Encoding, Redacted, Schema } from \"effect\";\n\nimport { hasCommitScope, type PreparedCommit } from \"../../hooks/commit\";\nimport { HookDenied } from \"../../hooks/models\";\nimport { LoginIdentifier } from \"../../identity/models\";\nimport { reportAuthFailure } from \"../../internal/diagnostics\";\nimport type { Email, SubjectId } from \"../../Schema\";\nimport { TokenDigest } from \"../../Schema\";\nimport { AuthenticationAuthority } from \"../../sessions/AuthenticationAuthority\";\nimport {\n SessionCapabilityUnsupported,\n SessionInvalid,\n SessionConflict,\n PendingAuthenticationInvalid,\n StaleAuthentication,\n} from \"../../sessions/errors\";\nimport { type AuthenticationFlowId, type AuthenticationEvidence } from \"../../sessions/models\";\nimport { PasswordHashingUnavailable, PasswordKdfBusy } from \"../errors\";\nimport { PasswordHashing } from \"../PasswordHashing\";\nimport { PasswordMethodUnsupported, PasswordRejected, PasswordUnavailable } from \"./errors\";\nimport type { PasswordCredentialSnapshot } from \"./models\";\nimport { PasswordPersistence } from \"./PasswordPersistence\";\nimport type { PasswordMethodPolicy } from \"./policy\";\nimport { snapshotPasswordCredential, snapshotPasswordRevision } from \"./snapshot\";\n\nexport const passwordNoAmbient = Effect.fn(\"Passwords.noAmbient\")(function* () {\n if (yield* hasCommitScope) return yield* PasswordMethodUnsupported.make({});\n});\n\nexport const readPasswordCommit = <A>(receipt: PreparedCommit<A>) =>\n receipt.read.pipe(Effect.mapError(() => PasswordUnavailable.make({})));\n\n/** A commit acknowledgment can be lost after the session is durable. Only\n * definite policy/credential rejection may become PasswordRejected. */\nexport const passwordCompletionFailure = (\n error: unknown,\n): PasswordRejected | PasswordUnavailable | PasswordMethodUnsupported | HookDenied => {\n if (Schema.is(HookDenied)(error)) return error;\n if (Schema.is(SessionCapabilityUnsupported)(error)) return PasswordMethodUnsupported.make({});\n if (\n Schema.is(\n Schema.Union([\n SessionCapabilityUnsupported,\n SessionInvalid,\n SessionConflict,\n PendingAuthenticationInvalid,\n StaleAuthentication,\n ]),\n )(error)\n )\n return PasswordRejected.make({});\n\n return PasswordUnavailable.make({});\n};\n\nconst noAmbient = passwordNoAmbient,\n read = readPasswordCommit;\n\nexport const passwordUnexpected = <A, E, R>(effect: Effect.Effect<A, E, R>) =>\n effect.pipe(Effect.mapError(() => PasswordUnavailable.make({})));\n\nconst unexpected = passwordUnexpected;\n\nconst hashingInfrastructureFailure = Schema.is(\n Schema.Union([PasswordHashingUnavailable, PasswordKdfBusy]),\n);\n\n/** Report infrastructure recovery without recording passwords or verifier data. */\nexport const passwordHashingDiagnostics = <A, E, R>(effect: Effect.Effect<A, E, R>) =>\n effect.pipe(\n Effect.tapCause((cause) =>\n reportAuthFailure(\n \"password-hashing\",\n Cause.fromReasons(\n cause.reasons.filter(\n (reason) => Cause.isFailReason(reason) && hashingInfrastructureFailure(reason.error),\n ),\n ),\n ),\n ),\n );\n\n/** Verification owns attempt admission, settlement and the original proof instant. */\nexport const makePasswordVerification = ({\n moduleId,\n policy,\n}: {\n readonly moduleId: string;\n readonly policy: PasswordMethodPolicy;\n}) => {\n const encoder = new TextEncoder();\n const tuple = Schema.fromJsonString(Schema.Array(Schema.String));\n\n const digest = Effect.fn(\"Passwords.digest\")(function* (parts: ReadonlyArray<string>) {\n const crypto = yield* Crypto.Crypto;\n\n const bytes = yield* unexpected(\n crypto.digest(\"SHA-256\", encoder.encode(Schema.encodeSync(tuple)(parts))),\n );\n\n return TokenDigest.make(Encoding.encodeBase64Url(bytes));\n });\n\n const identifier = (email: Email) => LoginIdentifier.make({ namespace: \"email\", value: email });\n\n const sameCredential = (\n credential: PasswordCredentialSnapshot,\n revision: AuthenticationEvidence[\"revision\"],\n ) =>\n credential.moduleId === moduleId &&\n credential.revision.subjectId === revision.subjectId &&\n credential.revision.securityRevision === revision.securityRevision &&\n revision.credentials.some(\n (item) =>\n item.credentialId === credential.credentialId &&\n item.revision === credential.credentialRevision,\n );\n\n const checkedPassword = Effect.fn(\"Passwords.checkedPassword\")(\n function* (password: Redacted.Redacted<string>, credential: PasswordCredentialSnapshot) {\n const raw = Redacted.value(password);\n\n yield* Schema.decodeEffect(Schema.String.check(Schema.isMaxLength(65536)))(raw);\n if (credential.normalization === \"none\") return password;\n yield* Schema.decodeEffect(Schema.String.check(Schema.isPattern(/^[^\\uD800-\\uDFFF]*$/u)))(\n raw,\n );\n\n return Redacted.make(raw.normalize(\"NFC\"));\n },\n Effect.mapError(() => PasswordRejected.make({})),\n );\n\n const verifyPassword = Effect.fn(\"Passwords.verifyPassword\")(function* (\n request: {\n readonly flowId: AuthenticationFlowId;\n readonly email: Email;\n readonly password: Redacted.Redacted<string>;\n },\n action: \"sign-in\" | \"change\",\n subjectId?: SubjectId,\n ) {\n yield* noAmbient();\n const store = yield* PasswordPersistence;\n const hasher = yield* PasswordHashing;\n const authority = yield* AuthenticationAuthority;\n\n const admitted = yield* read(\n yield* store.admitAttempt(\n {\n moduleId,\n action,\n identifier: identifier(request.email),\n subjectId,\n policy: policy.attempts,\n },\n (decision, journal) => journal.prepare(decision),\n ),\n );\n\n // All denied branches do one bounded dummy attempt too. Local admission can\n // reject it; no claim of exact network timing is made.\n if (admitted._tag === \"Denied\") {\n yield* hasher.dummy(request.password).pipe(passwordHashingDiagnostics, Effect.ignore);\n\n return yield* PasswordRejected.make({});\n }\n\n const candidate =\n admitted.credential === undefined\n ? undefined\n : yield* snapshotPasswordCredential(admitted.credential);\n\n const checked = yield* Effect.gen(function* () {\n if (candidate === undefined) {\n yield* hasher.dummy(request.password).pipe(passwordHashingDiagnostics);\n\n return yield* PasswordRejected.make({});\n }\n\n const original = snapshotPasswordRevision(\n yield* authority.capture(candidate.revision.subjectId, [candidate.credentialId]),\n );\n\n if (\n !sameCredential(candidate, original) ||\n (subjectId !== undefined && candidate.revision.subjectId !== subjectId) ||\n candidate.identifier.value !== request.email\n ) {\n yield* hasher.dummy(request.password).pipe(passwordHashingDiagnostics);\n\n return yield* PasswordRejected.make({});\n }\n const password = yield* checkedPassword(request.password, candidate);\n\n const verified = yield* hasher.verify(password, candidate.verifier).pipe(\n passwordHashingDiagnostics,\n Effect.catchTag(\"PasswordVerifierInvalid\", () =>\n hasher\n .dummy(password)\n .pipe(\n passwordHashingDiagnostics,\n Effect.andThen(Effect.fail(PasswordRejected.make({}))),\n ),\n ),\n );\n\n if (!verified.matches) return yield* PasswordRejected.make({});\n const verifiedAt = yield* DateTime.now;\n\n const rehash =\n action === \"sign-in\" && verified.needsRehash\n ? {\n expectedVersion: candidate.verifierVersion,\n expectedVerifier: candidate.verifier,\n nextVerifier: yield* hasher.hash(password).pipe(passwordHashingDiagnostics),\n }\n : undefined;\n\n const evidence: AuthenticationEvidence = {\n revision: original,\n flowId: request.flowId,\n bindingDigest: yield* digest([\n \"effect-auth/password-login/v1\",\n moduleId,\n request.flowId,\n request.email,\n ]),\n proofs: [\n {\n method: \"password\",\n credentialId: candidate.credentialId,\n factors: [\"knowledge\"],\n userVerified: false,\n phishingResistant: false,\n verifiedAt,\n },\n ],\n };\n\n return { credential: candidate, evidence, rehash };\n }).pipe(Effect.result);\n\n const decision = yield* read(\n yield* store.settleAttempt(\n {\n moduleId,\n attemptId: admitted.attemptId,\n captured: candidate,\n outcome: checked._tag === \"Success\" ? \"verified\" : \"rejected\",\n ...(checked._tag === \"Success\" && checked.success.rehash !== undefined\n ? { rehash: checked.success.rehash }\n : {}),\n },\n (value, journal) => journal.prepare(value),\n ),\n );\n\n if (decision !== \"verified\" || checked._tag !== \"Success\")\n return yield* PasswordRejected.make({});\n\n return checked.success;\n });\n\n return { digest, identifier, verifyPassword };\n};\n"],"mappings":";;;;;;;;;;;;;;AAyBA,MAAa,oBAAoB,OAAO,GAAG,qBAAqB,CAAC,CAAC,aAAa;CAC7E,IAAI,OAAO,gBAAgB,OAAO,OAAO,0BAA0B,KAAK,CAAC,CAAC;AAC5E,CAAC;AAED,MAAa,sBAAyB,YACpC,QAAQ,KAAK,KAAK,OAAO,eAAe,oBAAoB,KAAK,CAAC,CAAC,CAAC,CAAC;;;AAIvE,MAAa,6BACX,UACoF;CACpF,IAAI,OAAO,GAAG,UAAU,CAAC,CAAC,KAAK,GAAG,OAAO;CACzC,IAAI,OAAO,GAAG,4BAA4B,CAAC,CAAC,KAAK,GAAG,OAAO,0BAA0B,KAAK,CAAC,CAAC;CAC5F,IACE,OAAO,GACL,OAAO,MAAM;EACX;EACA;EACA;EACA;EACA;CACF,CAAC,CACH,CAAC,CAAC,KAAK,GAEP,OAAO,iBAAiB,KAAK,CAAC,CAAC;CAEjC,OAAO,oBAAoB,KAAK,CAAC,CAAC;AACpC;AAEA,MAAM,YAAY;AAChB,MAAA,OAAO;AAET,MAAa,sBAA+B,WAC1C,OAAO,KAAK,OAAO,eAAe,oBAAoB,KAAK,CAAC,CAAC,CAAC,CAAC;AAEjE,MAAM,aAAa;AAEnB,MAAM,+BAA+B,OAAO,GAC1C,OAAO,MAAM,CAAC,4BAA4B,eAAe,CAAC,CAC5D;;AAGA,MAAa,8BAAuC,WAClD,OAAO,KACL,OAAO,UAAU,UACf,kBACE,oBACA,MAAM,YACJ,MAAM,QAAQ,QACX,WAAW,MAAM,aAAa,MAAM,KAAK,6BAA6B,OAAO,KAAK,CACrF,CACF,CACF,CACF,CACF;;AAGF,MAAa,4BAA4B,EACvC,UACA,aAII;CACJ,MAAM,UAAU,IAAI,YAAY;CAChC,MAAM,QAAQ,OAAO,eAAe,OAAO,MAAM,OAAO,MAAM,CAAC;CAE/D,MAAM,SAAS,OAAO,GAAG,kBAAkB,CAAC,CAAC,WAAW,OAA8B;EACpF,MAAM,SAAS,OAAO,OAAO;EAE7B,MAAM,QAAQ,OAAO,WACnB,OAAO,OAAO,WAAW,QAAQ,OAAO,OAAO,WAAW,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAC1E;EAEA,OAAO,YAAY,KAAK,SAAS,gBAAgB,KAAK,CAAC;CACzD,CAAC;CAED,MAAM,cAAc,UAAiB,gBAAgB,KAAK;EAAE,WAAW;EAAS,OAAO;CAAM,CAAC;CAE9F,MAAM,kBACJ,YACA,aAEA,WAAW,aAAa,YACxB,WAAW,SAAS,cAAc,SAAS,aAC3C,WAAW,SAAS,qBAAqB,SAAS,oBAClD,SAAS,YAAY,MAClB,SACC,KAAK,iBAAiB,WAAW,gBACjC,KAAK,aAAa,WAAW,kBACjC;CAEF,MAAM,kBAAkB,OAAO,GAAG,2BAA2B,CAAC,CAC5D,WAAW,UAAqC,YAAwC;EACtF,MAAM,MAAM,SAAS,MAAM,QAAQ;EAEnC,OAAO,OAAO,aAAa,OAAO,OAAO,MAAM,OAAO,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG;EAC9E,IAAI,WAAW,kBAAkB,QAAQ,OAAO;EAChD,OAAO,OAAO,aAAa,OAAO,OAAO,MAAM,OAAO,UAAU,sBAAsB,CAAC,CAAC,CAAC,CACvF,GACF;EAEA,OAAO,SAAS,KAAK,IAAI,UAAU,KAAK,CAAC;CAC3C,GACA,OAAO,eAAe,iBAAiB,KAAK,CAAC,CAAC,CAAC,CACjD;CAqIA,OAAO;EAAE;EAAQ;EAAY,gBAnIN,OAAO,GAAG,0BAA0B,CAAC,CAAC,WAC3D,SAKA,QACA,WACA;GACA,OAAO,UAAU;GACjB,MAAM,QAAQ,OAAO;GACrB,MAAM,SAAS,OAAO;GACtB,MAAM,YAAY,OAAO;GAEzB,MAAM,WAAW,OAAO,KACtB,OAAO,MAAM,aACX;IACE;IACA;IACA,YAAY,WAAW,QAAQ,KAAK;IACpC;IACA,QAAQ,OAAO;GACjB,IACC,UAAU,YAAY,QAAQ,QAAQ,QAAQ,CACjD,CACF;GAIA,IAAI,SAAS,SAAS,UAAU;IAC9B,OAAO,OAAO,MAAM,QAAQ,QAAQ,CAAC,CAAC,KAAK,4BAA4B,OAAO,MAAM;IAEpF,OAAO,OAAO,iBAAiB,KAAK,CAAC,CAAC;GACxC;GAEA,MAAM,YACJ,SAAS,eAAe,KAAA,IACpB,KAAA,IACA,OAAO,2BAA2B,SAAS,UAAU;GAE3D,MAAM,UAAU,OAAO,OAAO,IAAI,aAAa;IAC7C,IAAI,cAAc,KAAA,GAAW;KAC3B,OAAO,OAAO,MAAM,QAAQ,QAAQ,CAAC,CAAC,KAAK,0BAA0B;KAErE,OAAO,OAAO,iBAAiB,KAAK,CAAC,CAAC;IACxC;IAEA,MAAM,WAAW,yBACf,OAAO,UAAU,QAAQ,UAAU,SAAS,WAAW,CAAC,UAAU,YAAY,CAAC,CACjF;IAEA,IACE,CAAC,eAAe,WAAW,QAAQ,KAClC,cAAc,KAAA,KAAa,UAAU,SAAS,cAAc,aAC7D,UAAU,WAAW,UAAU,QAAQ,OACvC;KACA,OAAO,OAAO,MAAM,QAAQ,QAAQ,CAAC,CAAC,KAAK,0BAA0B;KAErE,OAAO,OAAO,iBAAiB,KAAK,CAAC,CAAC;IACxC;IACA,MAAM,WAAW,OAAO,gBAAgB,QAAQ,UAAU,SAAS;IAEnE,MAAM,WAAW,OAAO,OAAO,OAAO,UAAU,UAAU,QAAQ,CAAC,CAAC,KAClE,4BACA,OAAO,SAAS,iCACd,OACG,MAAM,QAAQ,CAAC,CACf,KACC,4BACA,OAAO,QAAQ,OAAO,KAAK,iBAAiB,KAAK,CAAC,CAAC,CAAC,CAAC,CACvD,CACJ,CACF;IAEA,IAAI,CAAC,SAAS,SAAS,OAAO,OAAO,iBAAiB,KAAK,CAAC,CAAC;IAC7D,MAAM,aAAa,OAAO,SAAS;IAEnC,MAAM,SACJ,WAAW,aAAa,SAAS,cAC7B;KACE,iBAAiB,UAAU;KAC3B,kBAAkB,UAAU;KAC5B,cAAc,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,KAAK,0BAA0B;IAC5E,IACA,KAAA;IAEN,MAAM,WAAmC;KACvC,UAAU;KACV,QAAQ,QAAQ;KAChB,eAAe,OAAO,OAAO;MAC3B;MACA;MACA,QAAQ;MACR,QAAQ;KACV,CAAC;KACD,QAAQ,CACN;MACE,QAAQ;MACR,cAAc,UAAU;MACxB,SAAS,CAAC,WAAW;MACrB,cAAc;MACd,mBAAmB;MACnB;KACF,CACF;IACF;IAEA,OAAO;KAAE,YAAY;KAAW;KAAU;IAAO;GACnD,CAAC,CAAC,CAAC,KAAK,OAAO,MAAM;GAiBrB,KAAI,OAfoB,KACtB,OAAO,MAAM,cACX;IACE;IACA,WAAW,SAAS;IACpB,UAAU;IACV,SAAS,QAAQ,SAAS,YAAY,aAAa;IACnD,GAAI,QAAQ,SAAS,aAAa,QAAQ,QAAQ,WAAW,KAAA,IACzD,EAAE,QAAQ,QAAQ,QAAQ,OAAO,IACjC,CAAC;GACP,IACC,OAAO,YAAY,QAAQ,QAAQ,KAAK,CAC3C,CACF,OAEiB,cAAc,QAAQ,SAAS,WAC9C,OAAO,OAAO,iBAAiB,KAAK,CAAC,CAAC;GAExC,OAAO,QAAQ;EACjB,CAE0C;CAAE;AAC9C"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Schema } from "effect";
|
|
2
|
+
//#region src/password/models.d.ts
|
|
3
|
+
/** Sensitive credential material; service boundaries wrap this in Redacted. */
|
|
4
|
+
declare const EncodedPasswordHash: Schema.brand<Schema.String, "effect-auth/EncodedPasswordHash">;
|
|
5
|
+
type EncodedPasswordHash = typeof EncodedPasswordHash.Type;
|
|
6
|
+
declare const PasswordVerification: Schema.Struct<{
|
|
7
|
+
readonly matches: Schema.Boolean;
|
|
8
|
+
readonly needsRehash: Schema.Boolean;
|
|
9
|
+
}>;
|
|
10
|
+
type PasswordVerification = typeof PasswordVerification.Type;
|
|
11
|
+
//#endregion
|
|
12
|
+
export { EncodedPasswordHash, PasswordVerification };
|
|
13
|
+
//# sourceMappingURL=models.d.mts.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Schema } from "effect";
|
|
2
|
+
//#region src/password/models.ts
|
|
3
|
+
/** Sensitive credential material; service boundaries wrap this in Redacted. */
|
|
4
|
+
const EncodedPasswordHash = Schema.String.check(Schema.isMaxLength(512)).pipe(Schema.brand("effect-auth/EncodedPasswordHash"));
|
|
5
|
+
const PasswordVerification = Schema.Struct({
|
|
6
|
+
matches: Schema.Boolean,
|
|
7
|
+
needsRehash: Schema.Boolean
|
|
8
|
+
});
|
|
9
|
+
//#endregion
|
|
10
|
+
export { EncodedPasswordHash, PasswordVerification };
|
|
11
|
+
|
|
12
|
+
//# sourceMappingURL=models.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.mjs","names":[],"sources":["../../src/password/models.ts"],"sourcesContent":["import { Schema } from \"effect\";\n\n/** Sensitive credential material; service boundaries wrap this in Redacted. */\nexport const EncodedPasswordHash = Schema.String.check(Schema.isMaxLength(512)).pipe(\n Schema.brand(\"effect-auth/EncodedPasswordHash\"),\n);\n\nexport type EncodedPasswordHash = typeof EncodedPasswordHash.Type;\n\nexport const PasswordVerification = Schema.Struct({\n matches: Schema.Boolean,\n needsRehash: Schema.Boolean,\n});\n\nexport type PasswordVerification = typeof PasswordVerification.Type;\n"],"mappings":";;;AAGA,MAAa,sBAAsB,OAAO,OAAO,MAAM,OAAO,YAAY,GAAG,CAAC,CAAC,CAAC,KAC9E,OAAO,MAAM,iCAAiC,CAChD;AAIA,MAAa,uBAAuB,OAAO,OAAO;CAChD,SAAS,OAAO;CAChB,aAAa,OAAO;AACtB,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { PasswordConfigurationError } from "./errors.mjs";
|
|
2
|
+
import { Effect, Schema } from "effect";
|
|
3
|
+
//#region src/password/policy.d.ts
|
|
4
|
+
declare const PasswordNormalization: Schema.Literals<readonly ["none", "NFC"]>;
|
|
5
|
+
type PasswordNormalization = typeof PasswordNormalization.Type;
|
|
6
|
+
declare const PasswordPolicy: Schema.Struct<{
|
|
7
|
+
/** Trusted method configuration; never accept this selection from a caller.
|
|
8
|
+
* always-mfa requires EVERY use, including recovery, to require another factor.
|
|
9
|
+
*/
|
|
10
|
+
readonly assurance: Schema.Literals<readonly ["single-factor", "always-mfa"]>;
|
|
11
|
+
readonly normalization: Schema.Literals<readonly ["none", "NFC"]>;
|
|
12
|
+
readonly maximumCodePoints: Schema.Int;
|
|
13
|
+
readonly maximumBytes: Schema.Int;
|
|
14
|
+
}>;
|
|
15
|
+
type PasswordPolicy = typeof PasswordPolicy.Type;
|
|
16
|
+
/** NIST SP800-63B-4: 15 code points, or 8 only when always part of MFA;
|
|
17
|
+
* support managers/paste/spaces, no composition rules or forced reset cadence.
|
|
18
|
+
*/
|
|
19
|
+
declare const defaultPasswordPolicy: PasswordPolicy;
|
|
20
|
+
declare const validatePasswordPolicy: (input: {
|
|
21
|
+
readonly assurance: "always-mfa" | "single-factor";
|
|
22
|
+
readonly normalization: "NFC" | "none";
|
|
23
|
+
readonly maximumCodePoints: number;
|
|
24
|
+
readonly maximumBytes: number;
|
|
25
|
+
}) => Effect.Effect<Readonly<{
|
|
26
|
+
readonly assurance: "always-mfa" | "single-factor";
|
|
27
|
+
readonly normalization: "NFC" | "none";
|
|
28
|
+
readonly maximumCodePoints: number;
|
|
29
|
+
readonly maximumBytes: number;
|
|
30
|
+
}>, PasswordConfigurationError, never>;
|
|
31
|
+
//#endregion
|
|
32
|
+
export { PasswordNormalization, PasswordPolicy, defaultPasswordPolicy, validatePasswordPolicy };
|
|
33
|
+
//# sourceMappingURL=policy.d.mts.map
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { PasswordConfigurationError } from "./errors.mjs";
|
|
2
|
+
import { Effect, Schema } from "effect";
|
|
3
|
+
//#region src/password/policy.ts
|
|
4
|
+
const PasswordNormalization = Schema.Literals(["none", "NFC"]);
|
|
5
|
+
const PasswordPolicy = Schema.Struct({
|
|
6
|
+
/** Trusted method configuration; never accept this selection from a caller.
|
|
7
|
+
* always-mfa requires EVERY use, including recovery, to require another factor.
|
|
8
|
+
*/
|
|
9
|
+
assurance: Schema.Literals(["single-factor", "always-mfa"]),
|
|
10
|
+
normalization: PasswordNormalization,
|
|
11
|
+
maximumCodePoints: Schema.Int.check(Schema.isBetween({
|
|
12
|
+
minimum: 64,
|
|
13
|
+
maximum: 16384
|
|
14
|
+
})),
|
|
15
|
+
maximumBytes: Schema.Int.check(Schema.isBetween({
|
|
16
|
+
minimum: 256,
|
|
17
|
+
maximum: 65536
|
|
18
|
+
}))
|
|
19
|
+
});
|
|
20
|
+
/** NIST SP800-63B-4: 15 code points, or 8 only when always part of MFA;
|
|
21
|
+
* support managers/paste/spaces, no composition rules or forced reset cadence.
|
|
22
|
+
*/
|
|
23
|
+
const defaultPasswordPolicy = Object.freeze({
|
|
24
|
+
assurance: "single-factor",
|
|
25
|
+
normalization: "NFC",
|
|
26
|
+
maximumCodePoints: 1024,
|
|
27
|
+
maximumBytes: 4096
|
|
28
|
+
});
|
|
29
|
+
const validatePasswordPolicy = Effect.fn("validatePasswordPolicy")(function* (input) {
|
|
30
|
+
const policy = yield* Schema.decodeEffect(PasswordPolicy)(input).pipe(Effect.mapError(() => PasswordConfigurationError.make({ component: "policy" })));
|
|
31
|
+
if (policy.maximumBytes < policy.maximumCodePoints * 4) return yield* PasswordConfigurationError.make({ component: "policy" });
|
|
32
|
+
return Object.freeze(policy);
|
|
33
|
+
});
|
|
34
|
+
//#endregion
|
|
35
|
+
export { PasswordNormalization, PasswordPolicy, defaultPasswordPolicy, validatePasswordPolicy };
|
|
36
|
+
|
|
37
|
+
//# sourceMappingURL=policy.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policy.mjs","names":[],"sources":["../../src/password/policy.ts"],"sourcesContent":["import { Effect, Schema } from \"effect\";\n\nimport { PasswordConfigurationError } from \"./errors\";\n\nexport const PasswordNormalization = Schema.Literals([\"none\", \"NFC\"]);\nexport type PasswordNormalization = typeof PasswordNormalization.Type;\n\nexport const PasswordPolicy = Schema.Struct({\n /** Trusted method configuration; never accept this selection from a caller.\n * always-mfa requires EVERY use, including recovery, to require another factor.\n */\n assurance: Schema.Literals([\"single-factor\", \"always-mfa\"]),\n normalization: PasswordNormalization,\n maximumCodePoints: Schema.Int.check(Schema.isBetween({ minimum: 64, maximum: 16384 })),\n maximumBytes: Schema.Int.check(Schema.isBetween({ minimum: 256, maximum: 65536 })),\n});\n\nexport type PasswordPolicy = typeof PasswordPolicy.Type;\n\n/** NIST SP800-63B-4: 15 code points, or 8 only when always part of MFA;\n * support managers/paste/spaces, no composition rules or forced reset cadence.\n */\nexport const defaultPasswordPolicy: PasswordPolicy = Object.freeze({\n assurance: \"single-factor\",\n normalization: \"NFC\",\n maximumCodePoints: 1024,\n maximumBytes: 4096,\n});\n\nexport const validatePasswordPolicy = Effect.fn(\"validatePasswordPolicy\")(function* (\n input: PasswordPolicy,\n) {\n const policy = yield* Schema.decodeEffect(PasswordPolicy)(input).pipe(\n Effect.mapError(() => PasswordConfigurationError.make({ component: \"policy\" })),\n );\n\n if (policy.maximumBytes < policy.maximumCodePoints * 4)\n return yield* PasswordConfigurationError.make({ component: \"policy\" });\n\n return Object.freeze(policy);\n});\n"],"mappings":";;;AAIA,MAAa,wBAAwB,OAAO,SAAS,CAAC,QAAQ,KAAK,CAAC;AAGpE,MAAa,iBAAiB,OAAO,OAAO;;;;CAI1C,WAAW,OAAO,SAAS,CAAC,iBAAiB,YAAY,CAAC;CAC1D,eAAe;CACf,mBAAmB,OAAO,IAAI,MAAM,OAAO,UAAU;EAAE,SAAS;EAAI,SAAS;CAAM,CAAC,CAAC;CACrF,cAAc,OAAO,IAAI,MAAM,OAAO,UAAU;EAAE,SAAS;EAAK,SAAS;CAAM,CAAC,CAAC;AACnF,CAAC;;;;AAOD,MAAa,wBAAwC,OAAO,OAAO;CACjE,WAAW;CACX,eAAe;CACf,mBAAmB;CACnB,cAAc;AAChB,CAAC;AAED,MAAa,yBAAyB,OAAO,GAAG,wBAAwB,CAAC,CAAC,WACxE,OACA;CACA,MAAM,SAAS,OAAO,OAAO,aAAa,cAAc,CAAC,CAAC,KAAK,CAAC,CAAC,KAC/D,OAAO,eAAe,2BAA2B,KAAK,EAAE,WAAW,SAAS,CAAC,CAAC,CAChF;CAEA,IAAI,OAAO,eAAe,OAAO,oBAAoB,GACnD,OAAO,OAAO,2BAA2B,KAAK,EAAE,WAAW,SAAS,CAAC;CAEvE,OAAO,OAAO,OAAO,MAAM;AAC7B,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { AuthInvocation } from "../operations/context.mjs";
|
|
2
|
+
import { AuthenticationEvidence, AuthenticationRequirement } from "../sessions/models.mjs";
|
|
3
|
+
import { PhoneOtpUnavailable } from "./models.mjs";
|
|
4
|
+
import { PhoneActionChallenge, PhoneActionRequired } from "./lifecycleModels.mjs";
|
|
5
|
+
import { Context, Effect, Redacted } from "effect";
|
|
6
|
+
//#region src/phone/PhoneActionEvidence.d.ts
|
|
7
|
+
declare const PhoneActionEvidence_base: Context.ServiceClass<PhoneActionEvidence, "effect-auth/PhoneActionEvidence", {
|
|
8
|
+
readonly verify: (input: {
|
|
9
|
+
readonly invocation: AuthInvocation;
|
|
10
|
+
readonly challenge: PhoneActionChallenge;
|
|
11
|
+
readonly proof?: Redacted.Redacted<string>;
|
|
12
|
+
}) => Effect.Effect<{
|
|
13
|
+
readonly evidence: AuthenticationEvidence;
|
|
14
|
+
readonly requirement: AuthenticationRequirement;
|
|
15
|
+
}, PhoneActionRequired | PhoneOtpUnavailable>;
|
|
16
|
+
}>;
|
|
17
|
+
/** Independent fresh authentication for phone custody mutation. A new phone code
|
|
18
|
+
* cannot authorize replacement of an existing account identifier or stronger factor.
|
|
19
|
+
* Consume one-use proofs before returning; later CAS failure does not refund them. */
|
|
20
|
+
declare class PhoneActionEvidence extends PhoneActionEvidence_base {}
|
|
21
|
+
//#endregion
|
|
22
|
+
export { PhoneActionEvidence };
|
|
23
|
+
//# sourceMappingURL=PhoneActionEvidence.d.mts.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Context } from "effect";
|
|
2
|
+
//#region src/phone/PhoneActionEvidence.ts
|
|
3
|
+
/** Independent fresh authentication for phone custody mutation. A new phone code
|
|
4
|
+
* cannot authorize replacement of an existing account identifier or stronger factor.
|
|
5
|
+
* Consume one-use proofs before returning; later CAS failure does not refund them. */
|
|
6
|
+
var PhoneActionEvidence = class extends Context.Service()("effect-auth/PhoneActionEvidence") {};
|
|
7
|
+
//#endregion
|
|
8
|
+
export { PhoneActionEvidence };
|
|
9
|
+
|
|
10
|
+
//# sourceMappingURL=PhoneActionEvidence.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PhoneActionEvidence.mjs","names":[],"sources":["../../src/phone/PhoneActionEvidence.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 { PhoneActionChallenge, PhoneActionRequired } from \"./lifecycleModels\";\nimport type { PhoneOtpUnavailable } from \"./models\";\n\n/** Independent fresh authentication for phone custody mutation. A new phone code\n * cannot authorize replacement of an existing account identifier or stronger factor.\n * Consume one-use proofs before returning; later CAS failure does not refund them. */\nexport class PhoneActionEvidence extends Context.Service<\n PhoneActionEvidence,\n {\n readonly verify: (input: {\n readonly invocation: AuthInvocation;\n readonly challenge: PhoneActionChallenge;\n readonly proof?: Redacted.Redacted<string>;\n }) => Effect.Effect<\n {\n readonly evidence: AuthenticationEvidence;\n readonly requirement: AuthenticationRequirement;\n },\n PhoneActionRequired | PhoneOtpUnavailable\n >;\n }\n>()(\"effect-auth/PhoneActionEvidence\") {}\n"],"mappings":";;;;;AAUA,IAAa,sBAAb,cAAyC,QAAQ,QAe/C,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { PhoneOtpUnavailable } from "./models.mjs";
|
|
2
|
+
import { Context, Effect } from "effect";
|
|
3
|
+
//#region src/phone/PhoneAdmission.d.ts
|
|
4
|
+
declare const PhoneAdmission_base: Context.ServiceClass<PhoneAdmission, "effect-auth/PhoneAdmission", {
|
|
5
|
+
readonly admit: (input: {
|
|
6
|
+
readonly moduleId: string;
|
|
7
|
+
readonly action: "request" | "attempt";
|
|
8
|
+
readonly requestId: string;
|
|
9
|
+
readonly fingerprint: string;
|
|
10
|
+
readonly networkKey: string;
|
|
11
|
+
/** At most the shared proof request retention; zero disables replay admission. */
|
|
12
|
+
readonly replayLifetimeMillis: number;
|
|
13
|
+
}) => Effect.Effect<boolean, PhoneOtpUnavailable>;
|
|
14
|
+
readonly cleanup: (input: {
|
|
15
|
+
readonly moduleId: string;
|
|
16
|
+
readonly limit: number;
|
|
17
|
+
readonly after?: string;
|
|
18
|
+
}) => Effect.Effect<{
|
|
19
|
+
readonly deleted: number;
|
|
20
|
+
readonly nextCursor: string | null;
|
|
21
|
+
}, PhoneOtpUnavailable>;
|
|
22
|
+
}>;
|
|
23
|
+
/** Distributed reservation, including suppressed recipients and failed/ambiguous sends.
|
|
24
|
+
* Identical request fingerprints may reuse admission, never a new message budget.
|
|
25
|
+
* Core ProofPersistence separately owns identifier/subject/resend/guess limits. */
|
|
26
|
+
declare class PhoneAdmission extends PhoneAdmission_base {}
|
|
27
|
+
//#endregion
|
|
28
|
+
export { PhoneAdmission };
|
|
29
|
+
//# sourceMappingURL=PhoneAdmission.d.mts.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Context } from "effect";
|
|
2
|
+
//#region src/phone/PhoneAdmission.ts
|
|
3
|
+
/** Distributed reservation, including suppressed recipients and failed/ambiguous sends.
|
|
4
|
+
* Identical request fingerprints may reuse admission, never a new message budget.
|
|
5
|
+
* Core ProofPersistence separately owns identifier/subject/resend/guess limits. */
|
|
6
|
+
var PhoneAdmission = class extends Context.Service()("effect-auth/PhoneAdmission") {};
|
|
7
|
+
//#endregion
|
|
8
|
+
export { PhoneAdmission };
|
|
9
|
+
|
|
10
|
+
//# sourceMappingURL=PhoneAdmission.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PhoneAdmission.mjs","names":[],"sources":["../../src/phone/PhoneAdmission.ts"],"sourcesContent":["import { Context, type Effect } from \"effect\";\n\nimport type { PhoneOtpUnavailable } from \"./models\";\n\n/** Distributed reservation, including suppressed recipients and failed/ambiguous sends.\n * Identical request fingerprints may reuse admission, never a new message budget.\n * Core ProofPersistence separately owns identifier/subject/resend/guess limits. */\nexport class PhoneAdmission extends Context.Service<\n PhoneAdmission,\n {\n readonly admit: (input: {\n readonly moduleId: string;\n readonly action: \"request\" | \"attempt\";\n readonly requestId: string;\n readonly fingerprint: string;\n readonly networkKey: string;\n /** At most the shared proof request retention; zero disables replay admission. */\n readonly replayLifetimeMillis: number;\n }) => Effect.Effect<boolean, PhoneOtpUnavailable>;\n readonly cleanup: (input: {\n readonly moduleId: string;\n readonly limit: number;\n readonly after?: string;\n }) => Effect.Effect<\n { readonly deleted: number; readonly nextCursor: string | null },\n PhoneOtpUnavailable\n >;\n }\n>()(\"effect-auth/PhoneAdmission\") {}\n"],"mappings":";;;;;AAOA,IAAa,iBAAb,cAAoC,QAAQ,QAqB1C,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { PhoneNumber, PhoneOtpUnavailable } from "./models.mjs";
|
|
2
|
+
import { Context, Effect } from "effect";
|
|
3
|
+
//#region src/phone/PhoneDeliveryEligibility.d.ts
|
|
4
|
+
declare const PhoneDeliveryEligibility_base: Context.ServiceClass<PhoneDeliveryEligibility, "effect-auth/PhoneDeliveryEligibility", {
|
|
5
|
+
readonly allowed: (phoneNumber: PhoneNumber) => Effect.Effect<boolean, PhoneOtpUnavailable>;
|
|
6
|
+
}>;
|
|
7
|
+
/** Consumer controls supported numbering ranges, sender/template eligibility and vendor rules. */
|
|
8
|
+
declare class PhoneDeliveryEligibility extends PhoneDeliveryEligibility_base {}
|
|
9
|
+
//#endregion
|
|
10
|
+
export { PhoneDeliveryEligibility };
|
|
11
|
+
//# sourceMappingURL=PhoneDeliveryEligibility.d.mts.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Context } from "effect";
|
|
2
|
+
//#region src/phone/PhoneDeliveryEligibility.ts
|
|
3
|
+
/** Consumer controls supported numbering ranges, sender/template eligibility and vendor rules. */
|
|
4
|
+
var PhoneDeliveryEligibility = class extends Context.Service()("effect-auth/PhoneDeliveryEligibility") {};
|
|
5
|
+
//#endregion
|
|
6
|
+
export { PhoneDeliveryEligibility };
|
|
7
|
+
|
|
8
|
+
//# sourceMappingURL=PhoneDeliveryEligibility.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PhoneDeliveryEligibility.mjs","names":[],"sources":["../../src/phone/PhoneDeliveryEligibility.ts"],"sourcesContent":["import { Context, type Effect } from \"effect\";\n\nimport type { PhoneNumber, PhoneOtpUnavailable } from \"./models\";\n\n/** Consumer controls supported numbering ranges, sender/template eligibility and vendor rules. */\nexport class PhoneDeliveryEligibility extends Context.Service<\n PhoneDeliveryEligibility,\n { readonly allowed: (phoneNumber: PhoneNumber) => Effect.Effect<boolean, PhoneOtpUnavailable> }\n>()(\"effect-auth/PhoneDeliveryEligibility\") {}\n"],"mappings":";;;AAKA,IAAa,2BAAb,cAA8C,QAAQ,QAGpD,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { SubjectId } from "../Schema.mjs";
|
|
2
|
+
import { CommitJournal, PreparedCommit } from "../hooks/commit.mjs";
|
|
3
|
+
import { ProofCompletionPlan } from "../proofs/completion.mjs";
|
|
4
|
+
import { PhoneNumber, PhoneOtpUnavailable } from "./models.mjs";
|
|
5
|
+
import { PhoneActionAuthorization, PhoneLifecycleAction, PhoneLifecyclePolicy, PhoneLifecycleTarget, PhoneMutationDecision } from "./lifecycleModels.mjs";
|
|
6
|
+
import { Context, Effect } from "effect";
|
|
7
|
+
//#region src/phone/PhonePersistence.d.ts
|
|
8
|
+
interface PhoneMutation {
|
|
9
|
+
readonly moduleId: string;
|
|
10
|
+
readonly action: PhoneLifecycleAction;
|
|
11
|
+
readonly commandId: string;
|
|
12
|
+
readonly target: PhoneLifecycleTarget;
|
|
13
|
+
readonly authorization?: PhoneActionAuthorization;
|
|
14
|
+
readonly completion: ProofCompletionPlan;
|
|
15
|
+
readonly policy: PhoneLifecyclePolicy;
|
|
16
|
+
}
|
|
17
|
+
declare const PhonePersistence_base: Context.ServiceClass<PhonePersistence, "effect-auth/PhonePersistence", {
|
|
18
|
+
readonly target: (input: {
|
|
19
|
+
readonly moduleId: string;
|
|
20
|
+
readonly action: PhoneLifecycleAction;
|
|
21
|
+
readonly phoneNumber: PhoneNumber;
|
|
22
|
+
readonly subjectId?: SubjectId;
|
|
23
|
+
readonly sourcePhoneNumber?: PhoneNumber;
|
|
24
|
+
}) => Effect.Effect<PhoneLifecycleTarget, PhoneOtpUnavailable>;
|
|
25
|
+
readonly mutate: <A>(input: PhoneMutation, prepare: (decision: PhoneMutationDecision, journal: CommitJournal) => PreparedCommit<A>) => Effect.Effect<PreparedCommit<A>, PhoneOtpUnavailable>;
|
|
26
|
+
}>;
|
|
27
|
+
/** Custody tombstones are permanent. Recycled numbers never create, transfer or
|
|
28
|
+
* merge accounts automatically. Verification/change and continuation consumption
|
|
29
|
+
* share one native owner; a failed protected write cannot consume the proof. */
|
|
30
|
+
declare class PhonePersistence extends PhonePersistence_base {}
|
|
31
|
+
//#endregion
|
|
32
|
+
export { PhoneMutation, PhonePersistence };
|
|
33
|
+
//# sourceMappingURL=PhonePersistence.d.mts.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Context } from "effect";
|
|
2
|
+
//#region src/phone/PhonePersistence.ts
|
|
3
|
+
/** Custody tombstones are permanent. Recycled numbers never create, transfer or
|
|
4
|
+
* merge accounts automatically. Verification/change and continuation consumption
|
|
5
|
+
* share one native owner; a failed protected write cannot consume the proof. */
|
|
6
|
+
var PhonePersistence = class extends Context.Service()("effect-auth/PhonePersistence") {};
|
|
7
|
+
//#endregion
|
|
8
|
+
export { PhonePersistence };
|
|
9
|
+
|
|
10
|
+
//# sourceMappingURL=PhonePersistence.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PhonePersistence.mjs","names":[],"sources":["../../src/phone/PhonePersistence.ts"],"sourcesContent":["import { Context, type Effect } from \"effect\";\n\nimport type { CommitJournal, PreparedCommit } from \"../hooks/commit\";\nimport type { ProofCompletionPlan } from \"../proofs/completion\";\nimport type { SubjectId } from \"../Schema\";\nimport type {\n PhoneActionAuthorization,\n PhoneLifecycleAction,\n PhoneLifecyclePolicy,\n PhoneLifecycleTarget,\n PhoneMutationDecision,\n} from \"./lifecycleModels\";\nimport type { PhoneNumber, PhoneOtpUnavailable } from \"./models\";\n\nexport interface PhoneMutation {\n readonly moduleId: string;\n readonly action: PhoneLifecycleAction;\n readonly commandId: string;\n readonly target: PhoneLifecycleTarget;\n readonly authorization?: PhoneActionAuthorization;\n readonly completion: ProofCompletionPlan;\n readonly policy: PhoneLifecyclePolicy;\n}\n\n/** Custody tombstones are permanent. Recycled numbers never create, transfer or\n * merge accounts automatically. Verification/change and continuation consumption\n * share one native owner; a failed protected write cannot consume the proof. */\nexport class PhonePersistence extends Context.Service<\n PhonePersistence,\n {\n readonly target: (input: {\n readonly moduleId: string;\n readonly action: PhoneLifecycleAction;\n readonly phoneNumber: PhoneNumber;\n readonly subjectId?: SubjectId;\n readonly sourcePhoneNumber?: PhoneNumber;\n }) => Effect.Effect<PhoneLifecycleTarget, PhoneOtpUnavailable>;\n readonly mutate: <A>(\n input: PhoneMutation,\n prepare: (decision: PhoneMutationDecision, journal: CommitJournal) => PreparedCommit<A>,\n ) => Effect.Effect<PreparedCommit<A>, PhoneOtpUnavailable>;\n }\n>()(\"effect-auth/PhonePersistence\") {}\n"],"mappings":";;;;;AA2BA,IAAa,mBAAb,cAAsC,QAAQ,QAe5C,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Context, Redacted } from "effect";
|
|
2
|
+
//#region src/phone/PhoneRequestContext.d.ts
|
|
3
|
+
declare const PhoneRequestContext_base: Context.ServiceClass<PhoneRequestContext, "effect-auth/PhoneRequestContext", {
|
|
4
|
+
readonly networkKey: Redacted.Redacted<string>;
|
|
5
|
+
}>;
|
|
6
|
+
/** Host-verified opaque network identity. Supply per invocation; never accept this in RPC payloads. */
|
|
7
|
+
declare class PhoneRequestContext extends PhoneRequestContext_base {}
|
|
8
|
+
//#endregion
|
|
9
|
+
export { PhoneRequestContext };
|
|
10
|
+
//# sourceMappingURL=PhoneRequestContext.d.mts.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Context } from "effect";
|
|
2
|
+
//#region src/phone/PhoneRequestContext.ts
|
|
3
|
+
/** Host-verified opaque network identity. Supply per invocation; never accept this in RPC payloads. */
|
|
4
|
+
var PhoneRequestContext = class extends Context.Service()("effect-auth/PhoneRequestContext") {};
|
|
5
|
+
//#endregion
|
|
6
|
+
export { PhoneRequestContext };
|
|
7
|
+
|
|
8
|
+
//# sourceMappingURL=PhoneRequestContext.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PhoneRequestContext.mjs","names":[],"sources":["../../src/phone/PhoneRequestContext.ts"],"sourcesContent":["import { Context, type Redacted } from \"effect\";\n\n/** Host-verified opaque network identity. Supply per invocation; never accept this in RPC payloads. */\nexport class PhoneRequestContext extends Context.Service<\n PhoneRequestContext,\n { readonly networkKey: Redacted.Redacted<string> }\n>()(\"effect-auth/PhoneRequestContext\") {}\n"],"mappings":";;;AAGA,IAAa,sBAAb,cAAyC,QAAQ,QAG/C,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { PhoneCredentialSnapshot, PhoneNumber, PhoneOtpUnavailable } from "./models.mjs";
|
|
2
|
+
import { Context, Effect, Option } from "effect";
|
|
3
|
+
//#region src/phone/PhoneSignInTargets.d.ts
|
|
4
|
+
declare const PhoneSignInTargets_base: Context.ServiceClass<PhoneSignInTargets, "effect-auth/PhoneSignInTargets", {
|
|
5
|
+
readonly lookup: (input: {
|
|
6
|
+
readonly moduleId: string;
|
|
7
|
+
readonly phoneNumber: PhoneNumber;
|
|
8
|
+
}) => Effect.Effect<Option.Option<PhoneCredentialSnapshot>, PhoneOtpUnavailable>;
|
|
9
|
+
}>;
|
|
10
|
+
/** Resolve only an existing active account with this exact verified phone credential.
|
|
11
|
+
* Reassignment/revocation must bump its authentication revision atomically. Custody
|
|
12
|
+
* revisions are never reused, including after deletion; outstanding codes cannot
|
|
13
|
+
* transfer to another account. Unknown or ineligible numbers return None.
|
|
14
|
+
* This capability never provisions or links an account based on a phone match.
|
|
15
|
+
*/
|
|
16
|
+
declare class PhoneSignInTargets extends PhoneSignInTargets_base {}
|
|
17
|
+
//#endregion
|
|
18
|
+
export { PhoneSignInTargets };
|
|
19
|
+
//# sourceMappingURL=PhoneSignInTargets.d.mts.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Context } from "effect";
|
|
2
|
+
//#region src/phone/PhoneSignInTargets.ts
|
|
3
|
+
/** Resolve only an existing active account with this exact verified phone credential.
|
|
4
|
+
* Reassignment/revocation must bump its authentication revision atomically. Custody
|
|
5
|
+
* revisions are never reused, including after deletion; outstanding codes cannot
|
|
6
|
+
* transfer to another account. Unknown or ineligible numbers return None.
|
|
7
|
+
* This capability never provisions or links an account based on a phone match.
|
|
8
|
+
*/
|
|
9
|
+
var PhoneSignInTargets = class extends Context.Service()("effect-auth/PhoneSignInTargets") {};
|
|
10
|
+
//#endregion
|
|
11
|
+
export { PhoneSignInTargets };
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=PhoneSignInTargets.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PhoneSignInTargets.mjs","names":[],"sources":["../../src/phone/PhoneSignInTargets.ts"],"sourcesContent":["import { Context, type Effect, type Option } from \"effect\";\n\nimport type { PhoneCredentialSnapshot, PhoneNumber, PhoneOtpUnavailable } from \"./models\";\n\n/** Resolve only an existing active account with this exact verified phone credential.\n * Reassignment/revocation must bump its authentication revision atomically. Custody\n * revisions are never reused, including after deletion; outstanding codes cannot\n * transfer to another account. Unknown or ineligible numbers return None.\n * This capability never provisions or links an account based on a phone match.\n */\nexport class PhoneSignInTargets extends Context.Service<\n PhoneSignInTargets,\n {\n readonly lookup: (input: {\n readonly moduleId: string;\n readonly phoneNumber: PhoneNumber;\n }) => Effect.Effect<Option.Option<PhoneCredentialSnapshot>, PhoneOtpUnavailable>;\n }\n>()(\"effect-auth/PhoneSignInTargets\") {}\n"],"mappings":";;;;;;;;AAUA,IAAa,qBAAb,cAAwC,QAAQ,QAQ9C,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAAC"}
|