@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,33 @@
|
|
|
1
|
+
import { SubjectId } from "../Schema.mjs";
|
|
2
|
+
import { AuthStoreError } from "../Errors.mjs";
|
|
3
|
+
import { OAuthConnection, OAuthProviderKey } from "./schema.mjs";
|
|
4
|
+
import { Context, Effect, Layer, Option } from "effect";
|
|
5
|
+
//#region src/oauth/OAuthConnectionStore.d.ts
|
|
6
|
+
declare const OAuthConnectionStore_base: Context.ServiceClass<OAuthConnectionStore, "effect-auth/OAuthConnectionStore", {
|
|
7
|
+
readonly get: (provider: OAuthProviderKey, subjectId: SubjectId) => Effect.Effect<Option.Option<OAuthConnection>, AuthStoreError>;
|
|
8
|
+
readonly put: (connection: OAuthConnection) => Effect.Effect<void, AuthStoreError>;
|
|
9
|
+
readonly remove: (provider: OAuthProviderKey, subjectId: SubjectId) => Effect.Effect<void, AuthStoreError>;
|
|
10
|
+
}>;
|
|
11
|
+
/**
|
|
12
|
+
* Consumer-implemented persistence for provider connections, keyed by
|
|
13
|
+
* `(provider, subjectId)`. This is the package's explicit token-persistence
|
|
14
|
+
* boundary:
|
|
15
|
+
*
|
|
16
|
+
* - **Production adapters MUST encrypt the token values at rest.** The
|
|
17
|
+
* `OAuthConnection` token fields are `Redacted`; an adapter unwraps them
|
|
18
|
+
* with `Redacted.value` only inside its encryption boundary and re-wraps on
|
|
19
|
+
* read. Storing the unwrapped values verbatim is a security defect.
|
|
20
|
+
* - Token values must never appear in logs, errors, or telemetry; the
|
|
21
|
+
* `Redacted` wrapper protects accidental stringification, nothing more.
|
|
22
|
+
* - `put` replaces any existing connection for the same key.
|
|
23
|
+
*/
|
|
24
|
+
declare class OAuthConnectionStore extends OAuthConnectionStore_base {
|
|
25
|
+
/**
|
|
26
|
+
* In-memory adapter for tests and local development; never durable and
|
|
27
|
+
* never encrypted, so never a production adapter.
|
|
28
|
+
*/
|
|
29
|
+
static readonly layerMemory: Layer.Layer<OAuthConnectionStore>;
|
|
30
|
+
}
|
|
31
|
+
//#endregion
|
|
32
|
+
export { OAuthConnectionStore };
|
|
33
|
+
//# sourceMappingURL=OAuthConnectionStore.d.mts.map
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Context, Effect, Layer, Option } from "effect";
|
|
2
|
+
//#region src/oauth/OAuthConnectionStore.ts
|
|
3
|
+
/**
|
|
4
|
+
* Consumer-implemented persistence for provider connections, keyed by
|
|
5
|
+
* `(provider, subjectId)`. This is the package's explicit token-persistence
|
|
6
|
+
* boundary:
|
|
7
|
+
*
|
|
8
|
+
* - **Production adapters MUST encrypt the token values at rest.** The
|
|
9
|
+
* `OAuthConnection` token fields are `Redacted`; an adapter unwraps them
|
|
10
|
+
* with `Redacted.value` only inside its encryption boundary and re-wraps on
|
|
11
|
+
* read. Storing the unwrapped values verbatim is a security defect.
|
|
12
|
+
* - Token values must never appear in logs, errors, or telemetry; the
|
|
13
|
+
* `Redacted` wrapper protects accidental stringification, nothing more.
|
|
14
|
+
* - `put` replaces any existing connection for the same key.
|
|
15
|
+
*/
|
|
16
|
+
var OAuthConnectionStore = class OAuthConnectionStore extends Context.Service()("effect-auth/OAuthConnectionStore") {
|
|
17
|
+
/**
|
|
18
|
+
* In-memory adapter for tests and local development; never durable and
|
|
19
|
+
* never encrypted, so never a production adapter.
|
|
20
|
+
*/
|
|
21
|
+
static layerMemory = Layer.sync(OAuthConnectionStore)(() => {
|
|
22
|
+
const connections = /* @__PURE__ */ new Map();
|
|
23
|
+
const key = (provider, subjectId) => `${provider}|${subjectId}`;
|
|
24
|
+
return OAuthConnectionStore.of({
|
|
25
|
+
get: (provider, subjectId) => Effect.sync(() => Option.fromNullishOr(connections.get(key(provider, subjectId)))),
|
|
26
|
+
put: (connection) => Effect.sync(() => {
|
|
27
|
+
connections.set(key(connection.provider, connection.subjectId), connection);
|
|
28
|
+
}),
|
|
29
|
+
remove: (provider, subjectId) => Effect.sync(() => {
|
|
30
|
+
connections.delete(key(provider, subjectId));
|
|
31
|
+
})
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
//#endregion
|
|
36
|
+
export { OAuthConnectionStore };
|
|
37
|
+
|
|
38
|
+
//# sourceMappingURL=OAuthConnectionStore.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OAuthConnectionStore.mjs","names":[],"sources":["../../src/oauth/OAuthConnectionStore.ts"],"sourcesContent":["import { Context, Effect, Layer, Option } from \"effect\";\n\nimport type { AuthStoreError } from \"../Errors\";\nimport type { SubjectId } from \"../Schema\";\nimport type { OAuthConnection, OAuthProviderKey } from \"./schema\";\n\n/**\n * Consumer-implemented persistence for provider connections, keyed by\n * `(provider, subjectId)`. This is the package's explicit token-persistence\n * boundary:\n *\n * - **Production adapters MUST encrypt the token values at rest.** The\n * `OAuthConnection` token fields are `Redacted`; an adapter unwraps them\n * with `Redacted.value` only inside its encryption boundary and re-wraps on\n * read. Storing the unwrapped values verbatim is a security defect.\n * - Token values must never appear in logs, errors, or telemetry; the\n * `Redacted` wrapper protects accidental stringification, nothing more.\n * - `put` replaces any existing connection for the same key.\n */\nexport class OAuthConnectionStore extends Context.Service<\n OAuthConnectionStore,\n {\n readonly get: (\n provider: OAuthProviderKey,\n subjectId: SubjectId,\n ) => Effect.Effect<Option.Option<OAuthConnection>, AuthStoreError>;\n readonly put: (connection: OAuthConnection) => Effect.Effect<void, AuthStoreError>;\n readonly remove: (\n provider: OAuthProviderKey,\n subjectId: SubjectId,\n ) => Effect.Effect<void, AuthStoreError>;\n }\n>()(\"effect-auth/OAuthConnectionStore\") {\n /**\n * In-memory adapter for tests and local development; never durable and\n * never encrypted, so never a production adapter.\n */\n static readonly layerMemory: Layer.Layer<OAuthConnectionStore> = Layer.sync(OAuthConnectionStore)(\n () => {\n const connections = new Map<string, OAuthConnection>();\n const key = (provider: OAuthProviderKey, subjectId: SubjectId) => `${provider}|${subjectId}`;\n\n return OAuthConnectionStore.of({\n get: (provider, subjectId) =>\n Effect.sync(() => Option.fromNullishOr(connections.get(key(provider, subjectId)))),\n\n put: (connection) =>\n Effect.sync(() => {\n connections.set(key(connection.provider, connection.subjectId), connection);\n }),\n\n remove: (provider, subjectId) =>\n Effect.sync(() => {\n connections.delete(key(provider, subjectId));\n }),\n });\n },\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;AAmBA,IAAa,uBAAb,MAAa,6BAA6B,QAAQ,QAahD,CAAC,CAAC,kCAAkC,CAAC,CAAC;;;;;CAKtC,OAAgB,cAAiD,MAAM,KAAK,oBAAoB,CAAC,OACzF;EACJ,MAAM,8BAAc,IAAI,IAA6B;EACrD,MAAM,OAAO,UAA4B,cAAyB,GAAG,SAAS,GAAG;EAEjF,OAAO,qBAAqB,GAAG;GAC7B,MAAM,UAAU,cACd,OAAO,WAAW,OAAO,cAAc,YAAY,IAAI,IAAI,UAAU,SAAS,CAAC,CAAC,CAAC;GAEnF,MAAM,eACJ,OAAO,WAAW;IAChB,YAAY,IAAI,IAAI,WAAW,UAAU,WAAW,SAAS,GAAG,UAAU;GAC5E,CAAC;GAEH,SAAS,UAAU,cACjB,OAAO,WAAW;IAChB,YAAY,OAAO,IAAI,UAAU,SAAS,CAAC;GAC7C,CAAC;EACL,CAAC;CACH,CACF;AACF"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { OAuthConfigurationError, OAuthUnavailable } from "./signInErrors.mjs";
|
|
2
|
+
import { OAuthSealedTransaction, OAuthTransactionSecrets } from "./signInModels.mjs";
|
|
3
|
+
import { OAuthLinkTransactionContext } from "./accountsModels.mjs";
|
|
4
|
+
import { OAuthTransactionKeyring } from "./transactionEncryption.mjs";
|
|
5
|
+
import { Context, Effect, Layer } from "effect";
|
|
6
|
+
//#region src/oauth/OAuthLinkTransactionProtector.d.ts
|
|
7
|
+
declare const OAuthLinkTransactionProtector_base: Context.ServiceClass<OAuthLinkTransactionProtector, "effect-auth/OAuthLinkTransactionProtector", {
|
|
8
|
+
readonly seal: (input: {
|
|
9
|
+
readonly context: OAuthLinkTransactionContext;
|
|
10
|
+
readonly secrets: OAuthTransactionSecrets;
|
|
11
|
+
}) => Effect.Effect<OAuthSealedTransaction, OAuthUnavailable>;
|
|
12
|
+
readonly open: (input: {
|
|
13
|
+
readonly context: OAuthLinkTransactionContext;
|
|
14
|
+
readonly sealed: OAuthSealedTransaction;
|
|
15
|
+
}) => Effect.Effect<OAuthTransactionSecrets, OAuthUnavailable>;
|
|
16
|
+
}>;
|
|
17
|
+
/** Typed authenticated-link domain, isolated from guest sign-in. Dedicated keyring
|
|
18
|
+
* retention covers issued and claimed link horizons and deployment convergence;
|
|
19
|
+
* link-binder signing keys have their own independent retention obligation. */
|
|
20
|
+
declare class OAuthLinkTransactionProtector extends OAuthLinkTransactionProtector_base {
|
|
21
|
+
static readonly xchacha20poly1305: (keyring: OAuthTransactionKeyring) => Layer.Layer<OAuthLinkTransactionProtector, OAuthConfigurationError, import("effect/Crypto").Crypto>;
|
|
22
|
+
}
|
|
23
|
+
//#endregion
|
|
24
|
+
export { OAuthLinkTransactionProtector };
|
|
25
|
+
//# sourceMappingURL=OAuthLinkTransactionProtector.d.mts.map
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { OAuthEncryptionKeyId, OAuthSealedTransaction } from "./signInModels.mjs";
|
|
2
|
+
import { OAuthLinkTransactionContext } from "./accountsModels.mjs";
|
|
3
|
+
import { OAuthUnavailable } from "./signInErrors.mjs";
|
|
4
|
+
import { snapshotOAuthSync } from "./signInSnapshot.mjs";
|
|
5
|
+
import { transactionEncryption } from "./transactionEncryption.mjs";
|
|
6
|
+
import { Context, Layer, Schema } from "effect";
|
|
7
|
+
//#region src/oauth/OAuthLinkTransactionProtector.ts
|
|
8
|
+
const codec = Schema.fromJsonString(Schema.Tuple([
|
|
9
|
+
Schema.Literal("effect-auth/oauth-link-aead/v1"),
|
|
10
|
+
OAuthSealedTransaction.fields.format,
|
|
11
|
+
OAuthEncryptionKeyId,
|
|
12
|
+
OAuthLinkTransactionContext
|
|
13
|
+
]));
|
|
14
|
+
const encoder = new TextEncoder();
|
|
15
|
+
const aad = (context, keyId) => {
|
|
16
|
+
const value = Schema.encodeSync(codec)([
|
|
17
|
+
"effect-auth/oauth-link-aead/v1",
|
|
18
|
+
"oauth-xchacha20poly1305-v1",
|
|
19
|
+
keyId,
|
|
20
|
+
snapshotOAuthSync(OAuthLinkTransactionContext, context)
|
|
21
|
+
]);
|
|
22
|
+
if (value.length > 16384) throw OAuthUnavailable.make({});
|
|
23
|
+
const bytes = encoder.encode(value);
|
|
24
|
+
if (bytes.length > 16384) {
|
|
25
|
+
bytes.fill(0);
|
|
26
|
+
throw OAuthUnavailable.make({});
|
|
27
|
+
}
|
|
28
|
+
return bytes;
|
|
29
|
+
};
|
|
30
|
+
/** Typed authenticated-link domain, isolated from guest sign-in. Dedicated keyring
|
|
31
|
+
* retention covers issued and claimed link horizons and deployment convergence;
|
|
32
|
+
* link-binder signing keys have their own independent retention obligation. */
|
|
33
|
+
var OAuthLinkTransactionProtector = class extends Context.Service()("effect-auth/OAuthLinkTransactionProtector") {
|
|
34
|
+
static xchacha20poly1305 = (keyring) => Layer.effect(this, transactionEncryption(OAuthLinkTransactionContext, aad, keyring));
|
|
35
|
+
};
|
|
36
|
+
//#endregion
|
|
37
|
+
export { OAuthLinkTransactionProtector };
|
|
38
|
+
|
|
39
|
+
//# sourceMappingURL=OAuthLinkTransactionProtector.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OAuthLinkTransactionProtector.mjs","names":[],"sources":["../../src/oauth/OAuthLinkTransactionProtector.ts"],"sourcesContent":["import { Context, type Effect, Layer, Schema } from \"effect\";\n\nimport { OAuthLinkTransactionContext } from \"./accountsModels\";\nimport { OAuthUnavailable } from \"./signInErrors\";\nimport type { OAuthTransactionSecrets } from \"./signInModels\";\nimport { OAuthEncryptionKeyId, OAuthSealedTransaction } from \"./signInModels\";\nimport { snapshotOAuthSync } from \"./signInSnapshot\";\nimport { transactionEncryption, type OAuthTransactionKeyring } from \"./transactionEncryption\";\n\nconst codec = Schema.fromJsonString(\n Schema.Tuple([\n Schema.Literal(\"effect-auth/oauth-link-aead/v1\"),\n OAuthSealedTransaction.fields.format,\n OAuthEncryptionKeyId,\n OAuthLinkTransactionContext,\n ]),\n);\n\nconst encoder = new TextEncoder();\n\nconst aad = (context: OAuthLinkTransactionContext, keyId: string) => {\n const value = Schema.encodeSync(codec)([\n \"effect-auth/oauth-link-aead/v1\",\n \"oauth-xchacha20poly1305-v1\",\n keyId,\n snapshotOAuthSync(OAuthLinkTransactionContext, context),\n ]);\n\n if (value.length > 16384) throw OAuthUnavailable.make({});\n const bytes = encoder.encode(value);\n\n if (bytes.length > 16384) {\n bytes.fill(0);\n throw OAuthUnavailable.make({});\n }\n\n return bytes;\n};\n\n/** Typed authenticated-link domain, isolated from guest sign-in. Dedicated keyring\n * retention covers issued and claimed link horizons and deployment convergence;\n * link-binder signing keys have their own independent retention obligation. */\nexport class OAuthLinkTransactionProtector extends Context.Service<\n OAuthLinkTransactionProtector,\n {\n readonly seal: (input: {\n readonly context: OAuthLinkTransactionContext;\n readonly secrets: OAuthTransactionSecrets;\n }) => Effect.Effect<OAuthSealedTransaction, OAuthUnavailable>;\n readonly open: (input: {\n readonly context: OAuthLinkTransactionContext;\n readonly sealed: OAuthSealedTransaction;\n }) => Effect.Effect<OAuthTransactionSecrets, OAuthUnavailable>;\n }\n>()(\"effect-auth/OAuthLinkTransactionProtector\") {\n static readonly xchacha20poly1305 = (keyring: OAuthTransactionKeyring) =>\n Layer.effect(this, transactionEncryption(OAuthLinkTransactionContext, aad, keyring));\n}\n"],"mappings":";;;;;;;AASA,MAAM,QAAQ,OAAO,eACnB,OAAO,MAAM;CACX,OAAO,QAAQ,gCAAgC;CAC/C,uBAAuB,OAAO;CAC9B;CACA;AACF,CAAC,CACH;AAEA,MAAM,UAAU,IAAI,YAAY;AAEhC,MAAM,OAAO,SAAsC,UAAkB;CACnE,MAAM,QAAQ,OAAO,WAAW,KAAK,CAAC,CAAC;EACrC;EACA;EACA;EACA,kBAAkB,6BAA6B,OAAO;CACxD,CAAC;CAED,IAAI,MAAM,SAAS,OAAO,MAAM,iBAAiB,KAAK,CAAC,CAAC;CACxD,MAAM,QAAQ,QAAQ,OAAO,KAAK;CAElC,IAAI,MAAM,SAAS,OAAO;EACxB,MAAM,KAAK,CAAC;EACZ,MAAM,iBAAiB,KAAK,CAAC,CAAC;CAChC;CAEA,OAAO;AACT;;;;AAKA,IAAa,gCAAb,cAAmD,QAAQ,QAYzD,CAAC,CAAC,2CAA2C,CAAC,CAAC;CAC/C,OAAgB,qBAAqB,YACnC,MAAM,OAAO,MAAM,sBAAsB,6BAA6B,KAAK,OAAO,CAAC;AACvF"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { RequestBindingFlowId } from "../operations/requestBindingModels.mjs";
|
|
2
|
+
import "../operations/requestBinding.mjs";
|
|
3
|
+
import { OAuthProviderKey } from "./schema.mjs";
|
|
4
|
+
import { OAuthProtocolRejected, OAuthRejected, OAuthUnavailable } from "./signInErrors.mjs";
|
|
5
|
+
import { OAuthCallbackId, OAuthCodeResponse, OAuthProtocolConfiguration, OAuthProtocolPreparation, OAuthTransactionSecrets, OAuthVerifiedExternalIdentity } from "./signInModels.mjs";
|
|
6
|
+
import { Context, DateTime, Effect } from "effect";
|
|
7
|
+
//#region src/oauth/OAuthProtocol.d.ts
|
|
8
|
+
declare const OAuthProtocol_base: Context.ServiceClass<OAuthProtocol, "effect-auth/OAuthProtocol", {
|
|
9
|
+
readonly prepareAuthorization: (input: {
|
|
10
|
+
readonly provider: OAuthProviderKey;
|
|
11
|
+
readonly callbackId: typeof OAuthCallbackId.Type;
|
|
12
|
+
readonly flowId: RequestBindingFlowId;
|
|
13
|
+
}) => Effect.Effect<OAuthProtocolPreparation, OAuthRejected | OAuthUnavailable>;
|
|
14
|
+
readonly exchangeVerifiedIdentity: (input: {
|
|
15
|
+
readonly configuration: OAuthProtocolConfiguration;
|
|
16
|
+
readonly response: OAuthCodeResponse;
|
|
17
|
+
readonly secrets: OAuthTransactionSecrets;
|
|
18
|
+
readonly verificationStartedAt: DateTime.Utc;
|
|
19
|
+
}) => Effect.Effect<OAuthVerifiedExternalIdentity, OAuthProtocolRejected | OAuthUnavailable>;
|
|
20
|
+
}>;
|
|
21
|
+
/** Configured protocol authority. Resolve exact captured configuration generations;
|
|
22
|
+
* preparation/exchange run outside persistence owners. Discard all provider tokens
|
|
23
|
+
* in sign-in adapters; profile/email never selects application identity.
|
|
24
|
+
* The adapter owns canonical issuer, exact configured redirect, fixed provider
|
|
25
|
+
* authorization origin/parameters, S256 and nonce validation, and retention of
|
|
26
|
+
* each configuration generation through its issued flow horizon. Never discover
|
|
27
|
+
* a caller-supplied issuer or substitute a newer configuration at completion.
|
|
28
|
+
* No network implementation is installed by the core method.
|
|
29
|
+
*/
|
|
30
|
+
declare class OAuthProtocol extends OAuthProtocol_base {}
|
|
31
|
+
//#endregion
|
|
32
|
+
export { OAuthProtocol };
|
|
33
|
+
//# sourceMappingURL=OAuthProtocol.d.mts.map
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Context } from "effect";
|
|
2
|
+
//#region src/oauth/OAuthProtocol.ts
|
|
3
|
+
/** Configured protocol authority. Resolve exact captured configuration generations;
|
|
4
|
+
* preparation/exchange run outside persistence owners. Discard all provider tokens
|
|
5
|
+
* in sign-in adapters; profile/email never selects application identity.
|
|
6
|
+
* The adapter owns canonical issuer, exact configured redirect, fixed provider
|
|
7
|
+
* authorization origin/parameters, S256 and nonce validation, and retention of
|
|
8
|
+
* each configuration generation through its issued flow horizon. Never discover
|
|
9
|
+
* a caller-supplied issuer or substitute a newer configuration at completion.
|
|
10
|
+
* No network implementation is installed by the core method.
|
|
11
|
+
*/
|
|
12
|
+
var OAuthProtocol = class extends Context.Service()("effect-auth/OAuthProtocol") {};
|
|
13
|
+
//#endregion
|
|
14
|
+
export { OAuthProtocol };
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=OAuthProtocol.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OAuthProtocol.mjs","names":[],"sources":["../../src/oauth/OAuthProtocol.ts"],"sourcesContent":["import { Context, type DateTime, type Effect } from \"effect\";\n\nimport type { RequestBindingFlowId } from \"../operations/requestBinding\";\nimport type { OAuthProviderKey } from \"./schema\";\nimport type { OAuthProtocolRejected, OAuthRejected, OAuthUnavailable } from \"./signInErrors\";\nimport type {\n OAuthCallbackId,\n OAuthCodeResponse,\n OAuthProtocolConfiguration,\n OAuthProtocolPreparation,\n OAuthTransactionSecrets,\n OAuthVerifiedExternalIdentity,\n} from \"./signInModels\";\n\n/** Configured protocol authority. Resolve exact captured configuration generations;\n * preparation/exchange run outside persistence owners. Discard all provider tokens\n * in sign-in adapters; profile/email never selects application identity.\n * The adapter owns canonical issuer, exact configured redirect, fixed provider\n * authorization origin/parameters, S256 and nonce validation, and retention of\n * each configuration generation through its issued flow horizon. Never discover\n * a caller-supplied issuer or substitute a newer configuration at completion.\n * No network implementation is installed by the core method.\n */\nexport class OAuthProtocol extends Context.Service<\n OAuthProtocol,\n {\n readonly prepareAuthorization: (input: {\n readonly provider: OAuthProviderKey;\n readonly callbackId: typeof OAuthCallbackId.Type;\n readonly flowId: RequestBindingFlowId;\n }) => Effect.Effect<OAuthProtocolPreparation, OAuthRejected | OAuthUnavailable>;\n readonly exchangeVerifiedIdentity: (input: {\n readonly configuration: OAuthProtocolConfiguration;\n readonly response: OAuthCodeResponse;\n readonly secrets: OAuthTransactionSecrets;\n readonly verificationStartedAt: DateTime.Utc;\n }) => Effect.Effect<OAuthVerifiedExternalIdentity, OAuthProtocolRejected | OAuthUnavailable>;\n }\n>()(\"effect-auth/OAuthProtocol\") {}\n"],"mappings":";;;;;;;;;;;AAuBA,IAAa,gBAAb,cAAmC,QAAQ,QAezC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { OAuthGrantRejected, OAuthProviderError } from "./errors.mjs";
|
|
2
|
+
import { OAuthIdentity, OAuthProviderKey } from "./schema.mjs";
|
|
3
|
+
import { Duration, Effect, Option, Redacted } from "effect";
|
|
4
|
+
import { HttpClientRequest } from "effect/unstable/http";
|
|
5
|
+
//#region src/oauth/OAuthProvider.d.ts
|
|
6
|
+
/**
|
|
7
|
+
* One token-endpoint grant in wire-relative form: lifetimes are durations
|
|
8
|
+
* because the response carries `expires_in`, not instants. The OAuth workflow
|
|
9
|
+
* stamps absolute expirations against its own clock.
|
|
10
|
+
*/
|
|
11
|
+
interface OAuthTokenGrant {
|
|
12
|
+
readonly accessToken: Redacted.Redacted<string>;
|
|
13
|
+
readonly tokenType: string;
|
|
14
|
+
readonly expiresIn: Option.Option<Duration.Duration>;
|
|
15
|
+
readonly refreshToken: Option.Option<Redacted.Redacted<string>>;
|
|
16
|
+
readonly refreshTokenExpiresIn: Option.Option<Duration.Duration>;
|
|
17
|
+
readonly scope: Option.Option<string>;
|
|
18
|
+
}
|
|
19
|
+
/** Where and how the workflow fetches the provider's account identity. */
|
|
20
|
+
interface OAuthIdentityEndpoint {
|
|
21
|
+
readonly url: string;
|
|
22
|
+
/** Static headers merged into the request; authorization is added by the workflow. */
|
|
23
|
+
readonly headers: Readonly<Record<string, string>>;
|
|
24
|
+
/** Validates the untrusted identity payload and normalizes it. */
|
|
25
|
+
readonly decode: (payload: unknown) => Effect.Effect<OAuthIdentity, OAuthProviderError>;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Everything provider-specific about one OAuth integration: endpoints,
|
|
29
|
+
* credentials, response mappings, and identity normalization. Deliberately
|
|
30
|
+
* data-plus-decoders — the `OAuth` workflow owns every orchestration step
|
|
31
|
+
* (state, redirects, code exchange, refresh, revocation execution), so a
|
|
32
|
+
* provider cannot diverge from the flow's security behavior.
|
|
33
|
+
*/
|
|
34
|
+
interface OAuthProvider {
|
|
35
|
+
readonly key: OAuthProviderKey;
|
|
36
|
+
readonly displayName: string;
|
|
37
|
+
readonly clientId: string;
|
|
38
|
+
readonly clientSecret: Redacted.Redacted<string>;
|
|
39
|
+
readonly endpoints: {
|
|
40
|
+
readonly authorization: string;
|
|
41
|
+
readonly token: string;
|
|
42
|
+
};
|
|
43
|
+
/** Scopes requested at authorization; when empty the `scope` parameter is omitted. */
|
|
44
|
+
readonly scopes: ReadonlyArray<string>;
|
|
45
|
+
/** Extra static query parameters for the authorization redirect. */
|
|
46
|
+
readonly authorizationParams: Readonly<Record<string, string>>;
|
|
47
|
+
/**
|
|
48
|
+
* Decodes one token-endpoint JSON payload into a normalized grant, or into
|
|
49
|
+
* `OAuthGrantRejected` when the payload is a well-formed OAuth error.
|
|
50
|
+
* Providers following RFC 6749 use {@link decodeStandardTokenGrant}.
|
|
51
|
+
*/
|
|
52
|
+
readonly decodeTokenGrant: (payload: unknown) => Effect.Effect<OAuthTokenGrant, OAuthGrantRejected | OAuthProviderError>;
|
|
53
|
+
readonly identity: OAuthIdentityEndpoint;
|
|
54
|
+
/**
|
|
55
|
+
* Builds the provider's token-revocation request; `None` when the provider
|
|
56
|
+
* offers no revocation API. The workflow executes the request and treats
|
|
57
|
+
* 2xx and "grant already gone" statuses (404, 422) as revoked.
|
|
58
|
+
*/
|
|
59
|
+
readonly revocation: Option.Option<(accessToken: Redacted.Redacted<string>) => HttpClientRequest.HttpClientRequest>;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Token-grant decoder for RFC 6749 token responses (`access_token`,
|
|
63
|
+
* `expires_in`, `refresh_token`, …) that also recognizes the standard
|
|
64
|
+
* `{ "error": … }` payload — which some providers, GitHub included, return
|
|
65
|
+
* with status 200.
|
|
66
|
+
*/
|
|
67
|
+
declare const decodeStandardTokenGrant: (provider: OAuthProviderKey) => (payload: unknown) => Effect.Effect<OAuthTokenGrant, OAuthGrantRejected | OAuthProviderError>;
|
|
68
|
+
//#endregion
|
|
69
|
+
export { OAuthIdentityEndpoint, OAuthProvider, OAuthTokenGrant, decodeStandardTokenGrant };
|
|
70
|
+
//# sourceMappingURL=OAuthProvider.d.mts.map
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { OAuthGrantRejected, OAuthProviderError } from "./errors.mjs";
|
|
2
|
+
import { Duration, Effect, Option, Redacted, Schema } from "effect";
|
|
3
|
+
//#region src/oauth/OAuthProvider.ts
|
|
4
|
+
const StandardTokenSuccess = Schema.Struct({
|
|
5
|
+
access_token: Schema.NonEmptyString,
|
|
6
|
+
token_type: Schema.optionalKey(Schema.String),
|
|
7
|
+
expires_in: Schema.optionalKey(Schema.Finite),
|
|
8
|
+
refresh_token: Schema.optionalKey(Schema.NonEmptyString),
|
|
9
|
+
refresh_token_expires_in: Schema.optionalKey(Schema.Finite),
|
|
10
|
+
scope: Schema.optionalKey(Schema.String)
|
|
11
|
+
});
|
|
12
|
+
const StandardTokenError = Schema.Struct({ error: Schema.NonEmptyString });
|
|
13
|
+
const StandardTokenResponse = Schema.Union([StandardTokenSuccess, StandardTokenError]);
|
|
14
|
+
const decodeStandardTokenResponse = Schema.decodeUnknownEffect(StandardTokenResponse);
|
|
15
|
+
const positiveSeconds = (seconds) => seconds !== void 0 && seconds > 0 ? Option.some(Duration.seconds(seconds)) : Option.none();
|
|
16
|
+
/**
|
|
17
|
+
* Token-grant decoder for RFC 6749 token responses (`access_token`,
|
|
18
|
+
* `expires_in`, `refresh_token`, …) that also recognizes the standard
|
|
19
|
+
* `{ "error": … }` payload — which some providers, GitHub included, return
|
|
20
|
+
* with status 200.
|
|
21
|
+
*/
|
|
22
|
+
const decodeStandardTokenGrant = (provider) => (payload) => decodeStandardTokenResponse(payload).pipe(Effect.mapError(() => OAuthProviderError.make({
|
|
23
|
+
provider,
|
|
24
|
+
message: "The token endpoint returned an unrecognized response"
|
|
25
|
+
})), Effect.flatMap((response) => "error" in response ? OAuthGrantRejected.make({
|
|
26
|
+
provider,
|
|
27
|
+
code: response.error
|
|
28
|
+
}) : Effect.succeed({
|
|
29
|
+
accessToken: Redacted.make(response.access_token),
|
|
30
|
+
tokenType: (response.token_type ?? "bearer").toLowerCase(),
|
|
31
|
+
expiresIn: positiveSeconds(response.expires_in),
|
|
32
|
+
refreshToken: response.refresh_token !== void 0 ? Option.some(Redacted.make(response.refresh_token)) : Option.none(),
|
|
33
|
+
refreshTokenExpiresIn: positiveSeconds(response.refresh_token_expires_in),
|
|
34
|
+
scope: response.scope !== void 0 && response.scope !== "" ? Option.some(response.scope) : Option.none()
|
|
35
|
+
})));
|
|
36
|
+
//#endregion
|
|
37
|
+
export { decodeStandardTokenGrant };
|
|
38
|
+
|
|
39
|
+
//# sourceMappingURL=OAuthProvider.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OAuthProvider.mjs","names":[],"sources":["../../src/oauth/OAuthProvider.ts"],"sourcesContent":["import { Duration, Effect, Option, Redacted, Schema } from \"effect\";\nimport type { HttpClientRequest } from \"effect/unstable/http\";\n\nimport { OAuthGrantRejected, OAuthProviderError } from \"./errors\";\nimport type { OAuthIdentity, OAuthProviderKey } from \"./schema\";\n\n/**\n * One token-endpoint grant in wire-relative form: lifetimes are durations\n * because the response carries `expires_in`, not instants. The OAuth workflow\n * stamps absolute expirations against its own clock.\n */\nexport interface OAuthTokenGrant {\n readonly accessToken: Redacted.Redacted<string>;\n readonly tokenType: string;\n readonly expiresIn: Option.Option<Duration.Duration>;\n readonly refreshToken: Option.Option<Redacted.Redacted<string>>;\n readonly refreshTokenExpiresIn: Option.Option<Duration.Duration>;\n readonly scope: Option.Option<string>;\n}\n\n/** Where and how the workflow fetches the provider's account identity. */\nexport interface OAuthIdentityEndpoint {\n readonly url: string;\n /** Static headers merged into the request; authorization is added by the workflow. */\n readonly headers: Readonly<Record<string, string>>;\n /** Validates the untrusted identity payload and normalizes it. */\n readonly decode: (payload: unknown) => Effect.Effect<OAuthIdentity, OAuthProviderError>;\n}\n\n/**\n * Everything provider-specific about one OAuth integration: endpoints,\n * credentials, response mappings, and identity normalization. Deliberately\n * data-plus-decoders — the `OAuth` workflow owns every orchestration step\n * (state, redirects, code exchange, refresh, revocation execution), so a\n * provider cannot diverge from the flow's security behavior.\n */\nexport interface OAuthProvider {\n readonly key: OAuthProviderKey;\n readonly displayName: string;\n readonly clientId: string;\n readonly clientSecret: Redacted.Redacted<string>;\n readonly endpoints: {\n readonly authorization: string;\n readonly token: string;\n };\n /** Scopes requested at authorization; when empty the `scope` parameter is omitted. */\n readonly scopes: ReadonlyArray<string>;\n /** Extra static query parameters for the authorization redirect. */\n readonly authorizationParams: Readonly<Record<string, string>>;\n /**\n * Decodes one token-endpoint JSON payload into a normalized grant, or into\n * `OAuthGrantRejected` when the payload is a well-formed OAuth error.\n * Providers following RFC 6749 use {@link decodeStandardTokenGrant}.\n */\n readonly decodeTokenGrant: (\n payload: unknown,\n ) => Effect.Effect<OAuthTokenGrant, OAuthGrantRejected | OAuthProviderError>;\n readonly identity: OAuthIdentityEndpoint;\n /**\n * Builds the provider's token-revocation request; `None` when the provider\n * offers no revocation API. The workflow executes the request and treats\n * 2xx and \"grant already gone\" statuses (404, 422) as revoked.\n */\n readonly revocation: Option.Option<\n (accessToken: Redacted.Redacted<string>) => HttpClientRequest.HttpClientRequest\n >;\n}\n\n// --- Standard token responses -----------------------------------------------------\n\nconst StandardTokenSuccess = Schema.Struct({\n access_token: Schema.NonEmptyString,\n token_type: Schema.optionalKey(Schema.String),\n expires_in: Schema.optionalKey(Schema.Finite),\n refresh_token: Schema.optionalKey(Schema.NonEmptyString),\n refresh_token_expires_in: Schema.optionalKey(Schema.Finite),\n scope: Schema.optionalKey(Schema.String),\n});\n\nconst StandardTokenError = Schema.Struct({\n error: Schema.NonEmptyString,\n});\n\nconst StandardTokenResponse = Schema.Union([StandardTokenSuccess, StandardTokenError]);\n\n// oxlint-disable-next-line no-restricted-properties -- Token endpoint payloads are untrusted JSON.\nconst decodeStandardTokenResponse = Schema.decodeUnknownEffect(StandardTokenResponse);\n\nconst positiveSeconds = (seconds: number | undefined): Option.Option<Duration.Duration> =>\n seconds !== undefined && seconds > 0 ? Option.some(Duration.seconds(seconds)) : Option.none();\n\n/**\n * Token-grant decoder for RFC 6749 token responses (`access_token`,\n * `expires_in`, `refresh_token`, …) that also recognizes the standard\n * `{ \"error\": … }` payload — which some providers, GitHub included, return\n * with status 200.\n */\nexport const decodeStandardTokenGrant =\n (provider: OAuthProviderKey) =>\n (payload: unknown): Effect.Effect<OAuthTokenGrant, OAuthGrantRejected | OAuthProviderError> =>\n decodeStandardTokenResponse(payload).pipe(\n Effect.mapError(() =>\n OAuthProviderError.make({\n provider,\n message: \"The token endpoint returned an unrecognized response\",\n }),\n ),\n Effect.flatMap((response) =>\n \"error\" in response\n ? OAuthGrantRejected.make({ provider, code: response.error })\n : Effect.succeed<OAuthTokenGrant>({\n accessToken: Redacted.make(response.access_token),\n tokenType: (response.token_type ?? \"bearer\").toLowerCase(),\n expiresIn: positiveSeconds(response.expires_in),\n refreshToken:\n response.refresh_token !== undefined\n ? Option.some(Redacted.make(response.refresh_token))\n : Option.none(),\n refreshTokenExpiresIn: positiveSeconds(response.refresh_token_expires_in),\n scope:\n response.scope !== undefined && response.scope !== \"\"\n ? Option.some(response.scope)\n : Option.none(),\n }),\n ),\n );\n"],"mappings":";;;AAsEA,MAAM,uBAAuB,OAAO,OAAO;CACzC,cAAc,OAAO;CACrB,YAAY,OAAO,YAAY,OAAO,MAAM;CAC5C,YAAY,OAAO,YAAY,OAAO,MAAM;CAC5C,eAAe,OAAO,YAAY,OAAO,cAAc;CACvD,0BAA0B,OAAO,YAAY,OAAO,MAAM;CAC1D,OAAO,OAAO,YAAY,OAAO,MAAM;AACzC,CAAC;AAED,MAAM,qBAAqB,OAAO,OAAO,EACvC,OAAO,OAAO,eAChB,CAAC;AAED,MAAM,wBAAwB,OAAO,MAAM,CAAC,sBAAsB,kBAAkB,CAAC;AAGrF,MAAM,8BAA8B,OAAO,oBAAoB,qBAAqB;AAEpF,MAAM,mBAAmB,YACvB,YAAY,KAAA,KAAa,UAAU,IAAI,OAAO,KAAK,SAAS,QAAQ,OAAO,CAAC,IAAI,OAAO,KAAK;;;;;;;AAQ9F,MAAa,4BACV,cACA,YACC,4BAA4B,OAAO,CAAC,CAAC,KACnC,OAAO,eACL,mBAAmB,KAAK;CACtB;CACA,SAAS;AACX,CAAC,CACH,GACA,OAAO,SAAS,aACd,WAAW,WACP,mBAAmB,KAAK;CAAE;CAAU,MAAM,SAAS;AAAM,CAAC,IAC1D,OAAO,QAAyB;CAC9B,aAAa,SAAS,KAAK,SAAS,YAAY;CAChD,YAAY,SAAS,cAAc,SAAA,CAAU,YAAY;CACzD,WAAW,gBAAgB,SAAS,UAAU;CAC9C,cACE,SAAS,kBAAkB,KAAA,IACvB,OAAO,KAAK,SAAS,KAAK,SAAS,aAAa,CAAC,IACjD,OAAO,KAAK;CAClB,uBAAuB,gBAAgB,SAAS,wBAAwB;CACxE,OACE,SAAS,UAAU,KAAA,KAAa,SAAS,UAAU,KAC/C,OAAO,KAAK,SAAS,KAAK,IAC1B,OAAO,KAAK;AACpB,CAAC,CACP,CACF"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { UnknownOAuthProvider } from "./errors.mjs";
|
|
2
|
+
import { OAuthProviderKey } from "./schema.mjs";
|
|
3
|
+
import { OAuthProvider } from "./OAuthProvider.mjs";
|
|
4
|
+
import { Context, Effect, Layer } from "effect";
|
|
5
|
+
//#region src/oauth/OAuthProviders.d.ts
|
|
6
|
+
declare const OAuthProviders_base: Context.ServiceClass<OAuthProviders, "effect-auth/OAuthProviders", {
|
|
7
|
+
readonly lookup: (key: OAuthProviderKey) => Effect.Effect<OAuthProvider, UnknownOAuthProvider>;
|
|
8
|
+
}>;
|
|
9
|
+
/**
|
|
10
|
+
* The set of configured OAuth providers. Applications construct the complete
|
|
11
|
+
* set in one place, so provider selection is deterministic and duplicate keys
|
|
12
|
+
* fail during layer construction:
|
|
13
|
+
*
|
|
14
|
+
* ```ts
|
|
15
|
+
* const OAuthLive = OAuth.layer.pipe(
|
|
16
|
+
* Layer.provide(OAuthProviders.layer([
|
|
17
|
+
* makeGithubOAuthProvider({ clientId, clientSecret }),
|
|
18
|
+
* ])),
|
|
19
|
+
* )
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
declare class OAuthProviders extends OAuthProviders_base {
|
|
23
|
+
static readonly layer: (configured?: Iterable<OAuthProvider>) => Layer.Layer<OAuthProviders>;
|
|
24
|
+
}
|
|
25
|
+
//#endregion
|
|
26
|
+
export { OAuthProviders };
|
|
27
|
+
//# sourceMappingURL=OAuthProviders.d.mts.map
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { UnknownOAuthProvider } from "./errors.mjs";
|
|
2
|
+
import { Context, Effect, Layer } from "effect";
|
|
3
|
+
//#region src/oauth/OAuthProviders.ts
|
|
4
|
+
/**
|
|
5
|
+
* The set of configured OAuth providers. Applications construct the complete
|
|
6
|
+
* set in one place, so provider selection is deterministic and duplicate keys
|
|
7
|
+
* fail during layer construction:
|
|
8
|
+
*
|
|
9
|
+
* ```ts
|
|
10
|
+
* const OAuthLive = OAuth.layer.pipe(
|
|
11
|
+
* Layer.provide(OAuthProviders.layer([
|
|
12
|
+
* makeGithubOAuthProvider({ clientId, clientSecret }),
|
|
13
|
+
* ])),
|
|
14
|
+
* )
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
var OAuthProviders = class OAuthProviders extends Context.Service()("effect-auth/OAuthProviders") {
|
|
18
|
+
static layer = (configured = []) => Layer.effect(OAuthProviders, Effect.gen(function* () {
|
|
19
|
+
const providers = /* @__PURE__ */ new Map();
|
|
20
|
+
for (const provider of configured) {
|
|
21
|
+
if (providers.has(provider.key)) return yield* Effect.die(/* @__PURE__ */ new Error(`OAuth provider "${provider.key}" is configured more than once`));
|
|
22
|
+
providers.set(provider.key, provider);
|
|
23
|
+
}
|
|
24
|
+
return OAuthProviders.of({ lookup: (key) => Effect.suspend(() => {
|
|
25
|
+
const provider = providers.get(key);
|
|
26
|
+
return provider === void 0 ? Effect.fail(UnknownOAuthProvider.make({ provider: key })) : Effect.succeed(provider);
|
|
27
|
+
}) });
|
|
28
|
+
}));
|
|
29
|
+
};
|
|
30
|
+
//#endregion
|
|
31
|
+
export { OAuthProviders };
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=OAuthProviders.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OAuthProviders.mjs","names":[],"sources":["../../src/oauth/OAuthProviders.ts"],"sourcesContent":["import { Context, Effect, Layer } from \"effect\";\n\nimport { UnknownOAuthProvider } from \"./errors\";\nimport type { OAuthProvider } from \"./OAuthProvider\";\nimport type { OAuthProviderKey } from \"./schema\";\n\n/**\n * The set of configured OAuth providers. Applications construct the complete\n * set in one place, so provider selection is deterministic and duplicate keys\n * fail during layer construction:\n *\n * ```ts\n * const OAuthLive = OAuth.layer.pipe(\n * Layer.provide(OAuthProviders.layer([\n * makeGithubOAuthProvider({ clientId, clientSecret }),\n * ])),\n * )\n * ```\n */\nexport class OAuthProviders extends Context.Service<\n OAuthProviders,\n {\n readonly lookup: (key: OAuthProviderKey) => Effect.Effect<OAuthProvider, UnknownOAuthProvider>;\n }\n>()(\"effect-auth/OAuthProviders\") {\n static readonly layer = (configured: Iterable<OAuthProvider> = []): Layer.Layer<OAuthProviders> =>\n Layer.effect(\n OAuthProviders,\n Effect.gen(function* () {\n const providers = new Map<OAuthProviderKey, OAuthProvider>();\n\n for (const provider of configured) {\n if (providers.has(provider.key)) {\n return yield* Effect.die(\n new Error(`OAuth provider \"${provider.key}\" is configured more than once`),\n );\n }\n providers.set(provider.key, provider);\n }\n\n return OAuthProviders.of({\n lookup: (key) =>\n Effect.suspend(() => {\n const provider = providers.get(key);\n\n return provider === undefined\n ? Effect.fail(UnknownOAuthProvider.make({ provider: key }))\n : Effect.succeed(provider);\n }),\n });\n }),\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAmBA,IAAa,iBAAb,MAAa,uBAAuB,QAAQ,QAK1C,CAAC,CAAC,4BAA4B,CAAC,CAAC;CAChC,OAAgB,SAAS,aAAsC,CAAC,MAC9D,MAAM,OACJ,gBACA,OAAO,IAAI,aAAa;EACtB,MAAM,4BAAY,IAAI,IAAqC;EAE3D,KAAK,MAAM,YAAY,YAAY;GACjC,IAAI,UAAU,IAAI,SAAS,GAAG,GAC5B,OAAO,OAAO,OAAO,oBACnB,IAAI,MAAM,mBAAmB,SAAS,IAAI,+BAA+B,CAC3E;GAEF,UAAU,IAAI,SAAS,KAAK,QAAQ;EACtC;EAEA,OAAO,eAAe,GAAG,EACvB,SAAS,QACP,OAAO,cAAc;GACnB,MAAM,WAAW,UAAU,IAAI,GAAG;GAElC,OAAO,aAAa,KAAA,IAChB,OAAO,KAAK,qBAAqB,KAAK,EAAE,UAAU,IAAI,CAAC,CAAC,IACxD,OAAO,QAAQ,QAAQ;EAC7B,CAAC,EACL,CAAC;CACH,CAAC,CACH;AACJ"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { PreparedCommit } from "../hooks/commit.mjs";
|
|
2
|
+
import { OAuthRegistrationIntent } from "./registrationModels.mjs";
|
|
3
|
+
import { OAuthUnavailable } from "./signInErrors.mjs";
|
|
4
|
+
import { OAuthClaim, OAuthVerifiedExternalIdentity } from "./signInModels.mjs";
|
|
5
|
+
import { PrepareOAuthCommit } from "./OAuthSignInPersistence.mjs";
|
|
6
|
+
import { Context, Effect, Schema } from "effect";
|
|
7
|
+
//#region src/oauth/OAuthRegistrationIntents.d.ts
|
|
8
|
+
declare const OAuthRegistrationSettlement: Schema.Union<readonly [Schema.Union<readonly [Schema.TaggedStruct<"Verified", {
|
|
9
|
+
readonly credential: Schema.Struct<{
|
|
10
|
+
readonly moduleId: Schema.brand<Schema.String, "effect-auth/OAuthModuleId">;
|
|
11
|
+
readonly identity: Schema.Struct<{
|
|
12
|
+
readonly provider: Schema.brand<Schema.String, "effect-auth/OAuthProviderKey">;
|
|
13
|
+
readonly issuer: Schema.brand<Schema.String, "effect-auth/OAuthIssuer">;
|
|
14
|
+
readonly subject: Schema.NonEmptyString;
|
|
15
|
+
}>;
|
|
16
|
+
readonly credentialId: Schema.NonEmptyString;
|
|
17
|
+
readonly credentialRevision: Schema.brand<Schema.NonEmptyString, "effect-auth/SecurityRevision">;
|
|
18
|
+
readonly revision: Schema.Struct<{
|
|
19
|
+
readonly subjectId: Schema.brand<Schema.NonEmptyString, "effect-auth/SubjectId">;
|
|
20
|
+
readonly securityRevision: Schema.brand<Schema.NonEmptyString, "effect-auth/SecurityRevision">;
|
|
21
|
+
readonly credentials: Schema.$Array<Schema.Struct<{
|
|
22
|
+
readonly credentialId: Schema.NonEmptyString;
|
|
23
|
+
readonly revision: Schema.brand<Schema.NonEmptyString, "effect-auth/SecurityRevision">;
|
|
24
|
+
}>>;
|
|
25
|
+
}>;
|
|
26
|
+
}>;
|
|
27
|
+
}>, Schema.TaggedStruct<"Cancelled", {}>, Schema.TaggedStruct<"Rejected", {}>, Schema.TaggedStruct<"Ambiguous", {}>]>, Schema.TaggedStruct<"RegistrationIssued", {
|
|
28
|
+
readonly intent: Schema.Struct<{
|
|
29
|
+
readonly namespace: Schema.Literal<"effect-auth/oauth-registration-intent/v1">;
|
|
30
|
+
readonly reference: Schema.brand<Schema.String, "effect-auth/OAuthRegistrationReference">;
|
|
31
|
+
readonly context: Schema.Struct<{
|
|
32
|
+
readonly provider: Schema.brand<Schema.String, "effect-auth/OAuthProviderKey">;
|
|
33
|
+
readonly protocol: Schema.Literals<readonly ["oidc", "oauth"]>;
|
|
34
|
+
readonly configurationGeneration: Schema.Int;
|
|
35
|
+
readonly issuer: Schema.brand<Schema.String, "effect-auth/OAuthIssuer">;
|
|
36
|
+
readonly responseIssuerMode: Schema.Literals<readonly ["required", "unsupported"]>;
|
|
37
|
+
readonly callbackId: Schema.brand<Schema.String, "effect-auth/OAuthCallbackId">;
|
|
38
|
+
readonly redirectUri: Schema.brand<Schema.String, "effect-auth/OAuthRedirectUri">;
|
|
39
|
+
readonly namespace: Schema.Literal<"effect-auth/oauth-sign-in-context/v1">;
|
|
40
|
+
readonly moduleId: Schema.brand<Schema.String, "effect-auth/OAuthModuleId">;
|
|
41
|
+
readonly generation: Schema.Int;
|
|
42
|
+
readonly flowId: Schema.brand<Schema.String, "effect-auth/RequestBindingFlowId">;
|
|
43
|
+
readonly commandId: Schema.brand<Schema.String, "effect-auth/OAuthCommandId">;
|
|
44
|
+
readonly returnTarget: Schema.brand<Schema.String, "effect-auth/OAuthReturnTarget">;
|
|
45
|
+
readonly stateDigest: Schema.brand<Schema.NonEmptyString, "effect-auth/TokenDigest">;
|
|
46
|
+
readonly requestBindingVerifier: Schema.brand<Schema.NonEmptyString, "effect-auth/TokenDigest">;
|
|
47
|
+
readonly requestBindingExpiresAtMillis: Schema.Int;
|
|
48
|
+
readonly issuedAtMillis: Schema.Int;
|
|
49
|
+
readonly expiresAtMillis: Schema.Int;
|
|
50
|
+
readonly claimLifetimeMillis: Schema.Int;
|
|
51
|
+
}>;
|
|
52
|
+
readonly claimId: Schema.brand<Schema.String, "effect-auth/OAuthClaimId">;
|
|
53
|
+
readonly claimedAtMillis: Schema.Int;
|
|
54
|
+
readonly identity: Schema.Struct<{
|
|
55
|
+
readonly provider: Schema.brand<Schema.String, "effect-auth/OAuthProviderKey">;
|
|
56
|
+
readonly issuer: Schema.brand<Schema.String, "effect-auth/OAuthIssuer">;
|
|
57
|
+
readonly subject: Schema.NonEmptyString;
|
|
58
|
+
}>;
|
|
59
|
+
readonly verifiedAtMillis: Schema.Int;
|
|
60
|
+
readonly credentialDigest: Schema.brand<Schema.NonEmptyString, "effect-auth/TokenDigest">;
|
|
61
|
+
readonly issuedAtMillis: Schema.Int;
|
|
62
|
+
readonly expiresAtMillis: Schema.Int;
|
|
63
|
+
readonly retentionUntilMillis: Schema.Int;
|
|
64
|
+
}>;
|
|
65
|
+
}>]>;
|
|
66
|
+
type OAuthRegistrationSettlement = typeof OAuthRegistrationSettlement.Type;
|
|
67
|
+
declare const OAuthRegistrationIntents_base: Context.ServiceClass<OAuthRegistrationIntents, "effect-auth/OAuthRegistrationIntents", {
|
|
68
|
+
readonly settle: <A>(input: {
|
|
69
|
+
readonly claim: OAuthClaim;
|
|
70
|
+
readonly identity: OAuthVerifiedExternalIdentity;
|
|
71
|
+
readonly intent?: OAuthRegistrationIntent;
|
|
72
|
+
readonly nowMillis: number;
|
|
73
|
+
}, prepare: PrepareOAuthCommit<OAuthRegistrationSettlement, A>) => Effect.Effect<PreparedCommit<A>, OAuthUnavailable>;
|
|
74
|
+
}>;
|
|
75
|
+
/** Optional replacement for VERIFIED sign-in settlement, under the same flow and
|
|
76
|
+
* identity authority. Existing active credentials sign in. Only a globally unowned,
|
|
77
|
+
* currently permitted and unreserved full tuple may create the exact supplied restricted intent.
|
|
78
|
+
* Connected-only, disabled or otherwise owned identities never count as unknown.
|
|
79
|
+
* Exact claim/context/deadline CAS, terminal erasure, unique intent/reference,
|
|
80
|
+
* ownership check, and the prepared decision commit together. No provisioning.
|
|
81
|
+
* If intent is absent/expired, unknown identity commits Rejected. Retain original
|
|
82
|
+
* binder and immutable time horizons. Unknown outcomes discard every receipt.
|
|
83
|
+
*/
|
|
84
|
+
declare class OAuthRegistrationIntents extends OAuthRegistrationIntents_base {}
|
|
85
|
+
//#endregion
|
|
86
|
+
export { OAuthRegistrationIntents, OAuthRegistrationSettlement };
|
|
87
|
+
//# sourceMappingURL=OAuthRegistrationIntents.d.mts.map
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { OAuthSettlementDecision } from "./signInModels.mjs";
|
|
2
|
+
import { OAuthRegistrationIntent } from "./registrationModels.mjs";
|
|
3
|
+
import { Context, Schema } from "effect";
|
|
4
|
+
//#region src/oauth/OAuthRegistrationIntents.ts
|
|
5
|
+
const OAuthRegistrationSettlement = Schema.Union([OAuthSettlementDecision, Schema.TaggedStruct("RegistrationIssued", { intent: OAuthRegistrationIntent })]);
|
|
6
|
+
/** Optional replacement for VERIFIED sign-in settlement, under the same flow and
|
|
7
|
+
* identity authority. Existing active credentials sign in. Only a globally unowned,
|
|
8
|
+
* currently permitted and unreserved full tuple may create the exact supplied restricted intent.
|
|
9
|
+
* Connected-only, disabled or otherwise owned identities never count as unknown.
|
|
10
|
+
* Exact claim/context/deadline CAS, terminal erasure, unique intent/reference,
|
|
11
|
+
* ownership check, and the prepared decision commit together. No provisioning.
|
|
12
|
+
* If intent is absent/expired, unknown identity commits Rejected. Retain original
|
|
13
|
+
* binder and immutable time horizons. Unknown outcomes discard every receipt.
|
|
14
|
+
*/
|
|
15
|
+
var OAuthRegistrationIntents = class extends Context.Service()("effect-auth/OAuthRegistrationIntents") {};
|
|
16
|
+
//#endregion
|
|
17
|
+
export { OAuthRegistrationIntents, OAuthRegistrationSettlement };
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=OAuthRegistrationIntents.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OAuthRegistrationIntents.mjs","names":[],"sources":["../../src/oauth/OAuthRegistrationIntents.ts"],"sourcesContent":["import { Context, Schema, type Effect } from \"effect\";\n\nimport type { PreparedCommit } from \"../hooks/commit\";\nimport type { PrepareOAuthCommit } from \"./OAuthSignInPersistence\";\nimport { OAuthRegistrationIntent } from \"./registrationModels\";\nimport type { OAuthUnavailable } from \"./signInErrors\";\nimport {\n OAuthSettlementDecision,\n type OAuthClaim,\n type OAuthVerifiedExternalIdentity,\n} from \"./signInModels\";\n\nexport const OAuthRegistrationSettlement = Schema.Union([\n OAuthSettlementDecision,\n Schema.TaggedStruct(\"RegistrationIssued\", { intent: OAuthRegistrationIntent }),\n]);\n\nexport type OAuthRegistrationSettlement = typeof OAuthRegistrationSettlement.Type;\n\n/** Optional replacement for VERIFIED sign-in settlement, under the same flow and\n * identity authority. Existing active credentials sign in. Only a globally unowned,\n * currently permitted and unreserved full tuple may create the exact supplied restricted intent.\n * Connected-only, disabled or otherwise owned identities never count as unknown.\n * Exact claim/context/deadline CAS, terminal erasure, unique intent/reference,\n * ownership check, and the prepared decision commit together. No provisioning.\n * If intent is absent/expired, unknown identity commits Rejected. Retain original\n * binder and immutable time horizons. Unknown outcomes discard every receipt.\n */\nexport class OAuthRegistrationIntents extends Context.Service<\n OAuthRegistrationIntents,\n {\n readonly settle: <A>(\n input: {\n readonly claim: OAuthClaim;\n readonly identity: OAuthVerifiedExternalIdentity;\n readonly intent?: OAuthRegistrationIntent;\n readonly nowMillis: number;\n },\n prepare: PrepareOAuthCommit<OAuthRegistrationSettlement, A>,\n ) => Effect.Effect<PreparedCommit<A>, OAuthUnavailable>;\n }\n>()(\"effect-auth/OAuthRegistrationIntents\") {}\n"],"mappings":";;;;AAYA,MAAa,8BAA8B,OAAO,MAAM,CACtD,yBACA,OAAO,aAAa,sBAAsB,EAAE,QAAQ,wBAAwB,CAAC,CAC/E,CAAC;;;;;;;;;;AAaD,IAAa,2BAAb,cAA8C,QAAQ,QAapD,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { OAuthConfigurationError, OAuthRejected, OAuthUnavailable } from "./signInErrors.mjs";
|
|
2
|
+
import { OAuthReturnTarget } from "./signInModels.mjs";
|
|
3
|
+
import { Context, Effect, Layer } from "effect";
|
|
4
|
+
//#region src/oauth/OAuthReturnTargets.d.ts
|
|
5
|
+
declare const OAuthReturnTargets_base: Context.ServiceClass<OAuthReturnTargets, "effect-auth/OAuthReturnTargets", {
|
|
6
|
+
readonly resolve: (input: string) => Effect.Effect<typeof OAuthReturnTarget.Type, OAuthRejected | OAuthUnavailable>;
|
|
7
|
+
}>;
|
|
8
|
+
/** Application authority; resolve before issuance and retain that exact route.
|
|
9
|
+
* The callback cannot select a replacement. Core never performs redirects. */
|
|
10
|
+
declare class OAuthReturnTargets extends OAuthReturnTargets_base {
|
|
11
|
+
static readonly exactRoutes: (routes: ReadonlyArray<string>) => Layer.Layer<OAuthReturnTargets, OAuthConfigurationError, never>;
|
|
12
|
+
}
|
|
13
|
+
//#endregion
|
|
14
|
+
export { OAuthReturnTargets };
|
|
15
|
+
//# sourceMappingURL=OAuthReturnTargets.d.mts.map
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { OAuthReturnTarget } from "./signInModels.mjs";
|
|
2
|
+
import { OAuthConfigurationError, OAuthRejected } from "./signInErrors.mjs";
|
|
3
|
+
import { Context, Effect, Layer, Schema } from "effect";
|
|
4
|
+
//#region src/oauth/OAuthReturnTargets.ts
|
|
5
|
+
/** Application authority; resolve before issuance and retain that exact route.
|
|
6
|
+
* The callback cannot select a replacement. Core never performs redirects. */
|
|
7
|
+
var OAuthReturnTargets = class OAuthReturnTargets extends Context.Service()("effect-auth/OAuthReturnTargets") {
|
|
8
|
+
static exactRoutes = (routes) => {
|
|
9
|
+
const captured = [...routes];
|
|
10
|
+
return Layer.effect(this, Effect.gen(function* () {
|
|
11
|
+
const checked = yield* Schema.decodeEffect(Schema.Array(OAuthReturnTarget).check(Schema.isMinLength(1), Schema.isMaxLength(128)))(captured).pipe(Effect.mapError(() => OAuthConfigurationError.make({ reason: "return-target" })));
|
|
12
|
+
const allowed = new Set(checked);
|
|
13
|
+
return OAuthReturnTargets.of({ resolve: Effect.fn("OAuthReturnTargets.resolve")(function* (input) {
|
|
14
|
+
const target = yield* Schema.decodeEffect(OAuthReturnTarget)(input).pipe(Effect.mapError(() => OAuthRejected.make({})));
|
|
15
|
+
if (!allowed.has(target)) return yield* OAuthRejected.make({});
|
|
16
|
+
return target;
|
|
17
|
+
}) });
|
|
18
|
+
}));
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
//#endregion
|
|
22
|
+
export { OAuthReturnTargets };
|
|
23
|
+
|
|
24
|
+
//# sourceMappingURL=OAuthReturnTargets.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OAuthReturnTargets.mjs","names":[],"sources":["../../src/oauth/OAuthReturnTargets.ts"],"sourcesContent":["import { Context, Effect, Layer, Schema } from \"effect\";\n\nimport { OAuthConfigurationError, OAuthRejected, type OAuthUnavailable } from \"./signInErrors\";\nimport { OAuthReturnTarget } from \"./signInModels\";\n\n/** Application authority; resolve before issuance and retain that exact route.\n * The callback cannot select a replacement. Core never performs redirects. */\nexport class OAuthReturnTargets extends Context.Service<\n OAuthReturnTargets,\n {\n readonly resolve: (\n input: string,\n ) => Effect.Effect<typeof OAuthReturnTarget.Type, OAuthRejected | OAuthUnavailable>;\n }\n>()(\"effect-auth/OAuthReturnTargets\") {\n static readonly exactRoutes = (routes: ReadonlyArray<string>) => {\n const captured = [...routes];\n\n return Layer.effect(\n this,\n Effect.gen(function* () {\n const checked = yield* Schema.decodeEffect(\n Schema.Array(OAuthReturnTarget).check(Schema.isMinLength(1), Schema.isMaxLength(128)),\n )(captured).pipe(\n Effect.mapError(() => OAuthConfigurationError.make({ reason: \"return-target\" })),\n );\n\n const allowed = new Set<string>(checked);\n\n return OAuthReturnTargets.of({\n resolve: Effect.fn(\"OAuthReturnTargets.resolve\")(function* (input) {\n const target = yield* Schema.decodeEffect(OAuthReturnTarget)(input).pipe(\n Effect.mapError(() => OAuthRejected.make({})),\n );\n\n if (!allowed.has(target)) return yield* OAuthRejected.make({});\n\n return target;\n }),\n });\n }),\n );\n };\n}\n"],"mappings":";;;;;;AAOA,IAAa,qBAAb,MAAa,2BAA2B,QAAQ,QAO9C,CAAC,CAAC,gCAAgC,CAAC,CAAC;CACpC,OAAgB,eAAe,WAAkC;EAC/D,MAAM,WAAW,CAAC,GAAG,MAAM;EAE3B,OAAO,MAAM,OACX,MACA,OAAO,IAAI,aAAa;GACtB,MAAM,UAAU,OAAO,OAAO,aAC5B,OAAO,MAAM,iBAAiB,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,GAAG,OAAO,YAAY,GAAG,CAAC,CACtF,CAAC,CAAC,QAAQ,CAAC,CAAC,KACV,OAAO,eAAe,wBAAwB,KAAK,EAAE,QAAQ,gBAAgB,CAAC,CAAC,CACjF;GAEA,MAAM,UAAU,IAAI,IAAY,OAAO;GAEvC,OAAO,mBAAmB,GAAG,EAC3B,SAAS,OAAO,GAAG,4BAA4B,CAAC,CAAC,WAAW,OAAO;IACjE,MAAM,SAAS,OAAO,OAAO,aAAa,iBAAiB,CAAC,CAAC,KAAK,CAAC,CAAC,KAClE,OAAO,eAAe,cAAc,KAAK,CAAC,CAAC,CAAC,CAC9C;IAEA,IAAI,CAAC,QAAQ,IAAI,MAAM,GAAG,OAAO,OAAO,cAAc,KAAK,CAAC,CAAC;IAE7D,OAAO;GACT,CAAC,EACH,CAAC;EACH,CAAC,CACH;CACF;AACF"}
|