@yielded/auth 0.1.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +18 -0
- package/dist/Atom.d.mts +5 -0
- package/dist/Atom.mjs +5 -0
- package/dist/Auth.d.mts +9 -0
- package/dist/Auth.mjs +7 -0
- package/dist/AuthContract.d.mts +4 -0
- package/dist/AuthContract.mjs +4 -0
- package/dist/AuthSession.d.mts +82 -0
- package/dist/AuthSession.mjs +138 -0
- package/dist/AuthSession.mjs.map +1 -0
- package/dist/AuthStore.d.mts +68 -0
- package/dist/AuthStore.mjs +194 -0
- package/dist/AuthStore.mjs.map +1 -0
- package/dist/AuthTokenCodec.d.mts +40 -0
- package/dist/AuthTokenCodec.mjs +104 -0
- package/dist/AuthTokenCodec.mjs.map +1 -0
- package/dist/Client.d.mts +2 -0
- package/dist/Client.mjs +2 -0
- package/dist/Cloudflare.d.mts +89 -0
- package/dist/Cloudflare.mjs +166 -0
- package/dist/Cloudflare.mjs.map +1 -0
- package/dist/Drizzle.d.mts +28 -0
- package/dist/Drizzle.mjs +27 -0
- package/dist/DrizzleD1.d.mts +935 -0
- package/dist/DrizzleD1.mjs +29 -0
- package/dist/DrizzleD1.mjs.map +1 -0
- package/dist/DrizzleLibsql.d.mts +2288 -0
- package/dist/DrizzleLibsql.mjs +85 -0
- package/dist/DrizzleLibsql.mjs.map +1 -0
- package/dist/DrizzleMysql2.d.mts +1809 -0
- package/dist/DrizzleMysql2.mjs +55 -0
- package/dist/DrizzleMysql2.mjs.map +1 -0
- package/dist/DrizzlePglite.d.mts +1808 -0
- package/dist/DrizzlePglite.mjs +45 -0
- package/dist/DrizzlePglite.mjs.map +1 -0
- package/dist/DrizzlePostgres.d.mts +1808 -0
- package/dist/DrizzlePostgres.mjs +45 -0
- package/dist/DrizzlePostgres.mjs.map +1 -0
- package/dist/DrizzleSqliteBun.d.mts +2287 -0
- package/dist/DrizzleSqliteBun.mjs +62 -0
- package/dist/DrizzleSqliteBun.mjs.map +1 -0
- package/dist/DrizzleSqliteDo.d.mts +2343 -0
- package/dist/DrizzleSqliteDo.mjs +105 -0
- package/dist/DrizzleSqliteDo.mjs.map +1 -0
- package/dist/DrizzleSqliteNode.d.mts +2287 -0
- package/dist/DrizzleSqliteNode.mjs +62 -0
- package/dist/DrizzleSqliteNode.mjs.map +1 -0
- package/dist/DrizzleSqliteWasm.d.mts +2287 -0
- package/dist/DrizzleSqliteWasm.mjs +62 -0
- package/dist/DrizzleSqliteWasm.mjs.map +1 -0
- package/dist/Email.d.mts +12 -0
- package/dist/Email.mjs +11 -0
- package/dist/EmailOtp.d.mts +42 -0
- package/dist/EmailOtp.mjs +120 -0
- package/dist/EmailOtp.mjs.map +1 -0
- package/dist/EmailOtpSender.d.mts +22 -0
- package/dist/EmailOtpSender.mjs +18 -0
- package/dist/EmailOtpSender.mjs.map +1 -0
- package/dist/Errors.d.mts +55 -0
- package/dist/Errors.mjs +31 -0
- package/dist/Errors.mjs.map +1 -0
- package/dist/GitHub.d.mts +5 -0
- package/dist/GitHub.mjs +4 -0
- package/dist/Hooks.d.mts +6 -0
- package/dist/Hooks.mjs +6 -0
- package/dist/Http.d.mts +12 -0
- package/dist/Http.mjs +12 -0
- package/dist/HttpServer.d.mts +103 -0
- package/dist/HttpServer.mjs +326 -0
- package/dist/HttpServer.mjs.map +1 -0
- package/dist/Identity.d.mts +9 -0
- package/dist/Identity.mjs +9 -0
- package/dist/IdentityResolver.d.mts +16 -0
- package/dist/IdentityResolver.mjs +12 -0
- package/dist/IdentityResolver.mjs.map +1 -0
- package/dist/OAuth.d.mts +36 -0
- package/dist/OAuth.mjs +35 -0
- package/dist/OpenIdClient.d.mts +3 -0
- package/dist/OpenIdClient.mjs +3 -0
- package/dist/OpenIdClientConnected.d.mts +4 -0
- package/dist/OpenIdClientConnected.mjs +3 -0
- package/dist/OperationHttp.d.mts +3 -0
- package/dist/OperationHttp.mjs +3 -0
- package/dist/OperationHttpClient.d.mts +2 -0
- package/dist/OperationHttpClient.mjs +2 -0
- package/dist/OperationHttpServer.d.mts +5 -0
- package/dist/OperationHttpServer.mjs +4 -0
- package/dist/Operations.d.mts +8 -0
- package/dist/Operations.mjs +8 -0
- package/dist/Passkey.d.mts +12 -0
- package/dist/Passkey.mjs +12 -0
- package/dist/PasskeyBrowser.d.mts +4 -0
- package/dist/PasskeyBrowser.mjs +4 -0
- package/dist/PasskeyContract.d.mts +641 -0
- package/dist/PasskeyContract.mjs +174 -0
- package/dist/PasskeyContract.mjs.map +1 -0
- package/dist/PasskeyPassword.d.mts +412 -0
- package/dist/PasskeyPassword.mjs +174 -0
- package/dist/PasskeyPassword.mjs.map +1 -0
- package/dist/PasskeySimpleWebAuthn.d.mts +3 -0
- package/dist/PasskeySimpleWebAuthn.mjs +3 -0
- package/dist/Password.d.mts +19 -0
- package/dist/Password.mjs +17 -0
- package/dist/PasswordAuth.d.mts +45 -0
- package/dist/PasswordAuth.mjs +79 -0
- package/dist/PasswordAuth.mjs.map +1 -0
- package/dist/PasswordCredentialStore.d.mts +46 -0
- package/dist/PasswordCredentialStore.mjs +62 -0
- package/dist/PasswordCredentialStore.mjs.map +1 -0
- package/dist/PasswordHasher.d.mts +31 -0
- package/dist/PasswordHasher.mjs +76 -0
- package/dist/PasswordHasher.mjs.map +1 -0
- package/dist/PhoneOtp.d.mts +11 -0
- package/dist/PhoneOtp.mjs +11 -0
- package/dist/Policy.d.mts +52 -0
- package/dist/Policy.mjs +36 -0
- package/dist/Policy.mjs.map +1 -0
- package/dist/Proofs.d.mts +14 -0
- package/dist/Proofs.mjs +13 -0
- package/dist/Rpc.d.mts +12 -0
- package/dist/Rpc.mjs +11 -0
- package/dist/Rpc.mjs.map +1 -0
- package/dist/Schema.d.mts +160 -0
- package/dist/Schema.mjs +141 -0
- package/dist/Schema.mjs.map +1 -0
- package/dist/SessionContract.d.mts +3 -0
- package/dist/SessionContract.mjs +3 -0
- package/dist/Sessions.d.mts +14 -0
- package/dist/Sessions.mjs +12 -0
- package/dist/Testing.d.mts +7 -0
- package/dist/Testing.mjs +7 -0
- package/dist/Totp.d.mts +8 -0
- package/dist/Totp.mjs +8 -0
- package/dist/TotpContract.d.mts +318 -0
- package/dist/TotpContract.mjs +119 -0
- package/dist/TotpContract.mjs.map +1 -0
- package/dist/WebCrypto.d.mts +28 -0
- package/dist/WebCrypto.mjs +42 -0
- package/dist/WebCrypto.mjs.map +1 -0
- package/dist/Workflows.d.mts +16 -0
- package/dist/Workflows.mjs +11 -0
- package/dist/Workflows.mjs.map +1 -0
- package/dist/atom/AuthAtomLifetime.d.mts +35 -0
- package/dist/atom/AuthAtomLifetime.mjs +50 -0
- package/dist/atom/AuthAtomLifetime.mjs.map +1 -0
- package/dist/atom/AuthAtomWorkflow.d.mts +17 -0
- package/dist/atom/AuthAtomWorkflow.mjs +9 -0
- package/dist/atom/AuthAtomWorkflow.mjs.map +1 -0
- package/dist/atom/client.d.mts +43 -0
- package/dist/atom/client.mjs +168 -0
- package/dist/atom/client.mjs.map +1 -0
- package/dist/atom/operations.d.mts +35 -0
- package/dist/atom/operations.mjs +58 -0
- package/dist/atom/operations.mjs.map +1 -0
- package/dist/atom/scoped-runtime.mjs +151 -0
- package/dist/atom/scoped-runtime.mjs.map +1 -0
- package/dist/auth/Auth.d.mts +7806 -0
- package/dist/auth/Auth.mjs +141 -0
- package/dist/auth/Auth.mjs.map +1 -0
- package/dist/auth/AuthConfigurationError.d.mts +10 -0
- package/dist/auth/AuthConfigurationError.mjs +14 -0
- package/dist/auth/AuthConfigurationError.mjs.map +1 -0
- package/dist/auth/AuthRequest.d.mts +21 -0
- package/dist/auth/AuthRequest.mjs +10 -0
- package/dist/auth/AuthRequest.mjs.map +1 -0
- package/dist/auth/AuthStrategy.d.mts +23 -0
- package/dist/auth/AuthStrategy.mjs +33 -0
- package/dist/auth/AuthStrategy.mjs.map +1 -0
- package/dist/auth/ConsumeDecision.d.mts +11 -0
- package/dist/auth/actions.d.mts +18 -0
- package/dist/auth/actions.mjs +70 -0
- package/dist/auth/actions.mjs.map +1 -0
- package/dist/auth/defaults.mjs +12 -0
- package/dist/auth/defaults.mjs.map +1 -0
- package/dist/auth/definition.d.mts +46 -0
- package/dist/auth/session.d.mts +27 -0
- package/dist/auth/session.mjs +56 -0
- package/dist/auth/session.mjs.map +1 -0
- package/dist/drizzle/D1BatchStatements.d.mts +11 -0
- package/dist/drizzle/D1BatchStatements.mjs +8 -0
- package/dist/drizzle/D1BatchStatements.mjs.map +1 -0
- package/dist/drizzle/PasswordPreparedPostconditions.mjs +12 -0
- package/dist/drizzle/PasswordPreparedPostconditions.mjs.map +1 -0
- package/dist/drizzle/SuppliedService.d.mts +10 -0
- package/dist/drizzle/d1-emails.d.mts +68 -0
- package/dist/drizzle/d1-emails.mjs +580 -0
- package/dist/drizzle/d1-emails.mjs.map +1 -0
- package/dist/drizzle/d1-generated-statement.mjs +79 -0
- package/dist/drizzle/d1-generated-statement.mjs.map +1 -0
- package/dist/drizzle/d1-identity.d.mts +33 -0
- package/dist/drizzle/d1-identity.mjs +120 -0
- package/dist/drizzle/d1-identity.mjs.map +1 -0
- package/dist/drizzle/d1-oauth.d.mts +316 -0
- package/dist/drizzle/d1-oauth.mjs +79 -0
- package/dist/drizzle/d1-oauth.mjs.map +1 -0
- package/dist/drizzle/d1-passkey.d.mts +52 -0
- package/dist/drizzle/d1-passkey.mjs +97 -0
- package/dist/drizzle/d1-passkey.mjs.map +1 -0
- package/dist/drizzle/d1-password-prepared.d.mts +27 -0
- package/dist/drizzle/d1-password-prepared.mjs +464 -0
- package/dist/drizzle/d1-password-prepared.mjs.map +1 -0
- package/dist/drizzle/d1-passwords.d.mts +96 -0
- package/dist/drizzle/d1-passwords.mjs +1008 -0
- package/dist/drizzle/d1-passwords.mjs.map +1 -0
- package/dist/drizzle/d1-phone.d.mts +29 -0
- package/dist/drizzle/d1-phone.mjs +33 -0
- package/dist/drizzle/d1-phone.mjs.map +1 -0
- package/dist/drizzle/d1-planning.d.mts +12 -0
- package/dist/drizzle/d1-planning.mjs +43 -0
- package/dist/drizzle/d1-planning.mjs.map +1 -0
- package/dist/drizzle/d1-proofs.d.mts +88 -0
- package/dist/drizzle/d1-proofs.mjs +833 -0
- package/dist/drizzle/d1-proofs.mjs.map +1 -0
- package/dist/drizzle/d1-sessions.d.mts +77 -0
- package/dist/drizzle/d1-sessions.mjs +970 -0
- package/dist/drizzle/d1-sessions.mjs.map +1 -0
- package/dist/drizzle/d1-totp.d.mts +27 -0
- package/dist/drizzle/d1-totp.mjs +28 -0
- package/dist/drizzle/d1-totp.mjs.map +1 -0
- package/dist/drizzle/email-model.d.mts +352 -0
- package/dist/drizzle/email-model.mjs +21 -0
- package/dist/drizzle/email-model.mjs.map +1 -0
- package/dist/drizzle/email-registration.d.mts +33 -0
- package/dist/drizzle/email-registration.mjs +238 -0
- package/dist/drizzle/email-registration.mjs.map +1 -0
- package/dist/drizzle/email-sql.d.mts +18 -0
- package/dist/drizzle/email-sql.mjs +473 -0
- package/dist/drizzle/email-sql.mjs.map +1 -0
- package/dist/drizzle/email-target.d.mts +28 -0
- package/dist/drizzle/email-target.mjs +75 -0
- package/dist/drizzle/email-target.mjs.map +1 -0
- package/dist/drizzle/model.d.mts +259 -0
- package/dist/drizzle/model.mjs +81 -0
- package/dist/drizzle/model.mjs.map +1 -0
- package/dist/drizzle/mysql-emails.d.mts +82 -0
- package/dist/drizzle/mysql-emails.mjs +38 -0
- package/dist/drizzle/mysql-emails.mjs.map +1 -0
- package/dist/drizzle/mysql-identity.d.mts +24 -0
- package/dist/drizzle/mysql-identity.mjs +95 -0
- package/dist/drizzle/mysql-identity.mjs.map +1 -0
- package/dist/drizzle/mysql-password-prepared.d.mts +32 -0
- package/dist/drizzle/mysql-password-prepared.mjs +16 -0
- package/dist/drizzle/mysql-password-prepared.mjs.map +1 -0
- package/dist/drizzle/mysql-passwords.d.mts +102 -0
- package/dist/drizzle/mysql-passwords.mjs +38 -0
- package/dist/drizzle/mysql-passwords.mjs.map +1 -0
- package/dist/drizzle/mysql-proofs.d.mts +83 -0
- package/dist/drizzle/mysql-proofs.mjs +23 -0
- package/dist/drizzle/mysql-proofs.mjs.map +1 -0
- package/dist/drizzle/mysql-sessions.d.mts +250 -0
- package/dist/drizzle/mysql-sessions.mjs +53 -0
- package/dist/drizzle/mysql-sessions.mjs.map +1 -0
- package/dist/drizzle/mysql.d.mts +73 -0
- package/dist/drizzle/mysql.mjs +221 -0
- package/dist/drizzle/mysql.mjs.map +1 -0
- package/dist/drizzle/oauth-accounts.mjs +361 -0
- package/dist/drizzle/oauth-accounts.mjs.map +1 -0
- package/dist/drizzle/oauth-connected-access.mjs +210 -0
- package/dist/drizzle/oauth-connected-access.mjs.map +1 -0
- package/dist/drizzle/oauth-connected-collection.mjs +202 -0
- package/dist/drizzle/oauth-connected-collection.mjs.map +1 -0
- package/dist/drizzle/oauth-connected-custody.mjs +146 -0
- package/dist/drizzle/oauth-connected-custody.mjs.map +1 -0
- package/dist/drizzle/oauth-connected-drivers.mjs +78 -0
- package/dist/drizzle/oauth-connected-drivers.mjs.map +1 -0
- package/dist/drizzle/oauth-connected-flow.mjs +248 -0
- package/dist/drizzle/oauth-connected-flow.mjs.map +1 -0
- package/dist/drizzle/oauth-connected-input.mjs +105 -0
- package/dist/drizzle/oauth-connected-input.mjs.map +1 -0
- package/dist/drizzle/oauth-connected-maintenance.mjs +215 -0
- package/dist/drizzle/oauth-connected-maintenance.mjs.map +1 -0
- package/dist/drizzle/oauth-connected-management.mjs +228 -0
- package/dist/drizzle/oauth-connected-management.mjs.map +1 -0
- package/dist/drizzle/oauth-connected-model.d.mts +278 -0
- package/dist/drizzle/oauth-connected-model.mjs +22 -0
- package/dist/drizzle/oauth-connected-model.mjs.map +1 -0
- package/dist/drizzle/oauth-connected-reference.d.mts +17 -0
- package/dist/drizzle/oauth-connected-reference.mjs +53 -0
- package/dist/drizzle/oauth-connected-reference.mjs.map +1 -0
- package/dist/drizzle/oauth-connected-settlement.mjs +117 -0
- package/dist/drizzle/oauth-connected-settlement.mjs.map +1 -0
- package/dist/drizzle/oauth-connected-state.d.mts +16 -0
- package/dist/drizzle/oauth-connected-state.mjs +422 -0
- package/dist/drizzle/oauth-connected-state.mjs.map +1 -0
- package/dist/drizzle/oauth-connected-target.d.mts +114 -0
- package/dist/drizzle/oauth-connected-target.mjs +94 -0
- package/dist/drizzle/oauth-connected-target.mjs.map +1 -0
- package/dist/drizzle/oauth-drivers.mjs +53 -0
- package/dist/drizzle/oauth-drivers.mjs.map +1 -0
- package/dist/drizzle/oauth-flow.d.mts +7 -0
- package/dist/drizzle/oauth-flow.mjs +255 -0
- package/dist/drizzle/oauth-flow.mjs.map +1 -0
- package/dist/drizzle/oauth-input.mjs +130 -0
- package/dist/drizzle/oauth-input.mjs.map +1 -0
- package/dist/drizzle/oauth-model.d.mts +468 -0
- package/dist/drizzle/oauth-model.mjs +49 -0
- package/dist/drizzle/oauth-model.mjs.map +1 -0
- package/dist/drizzle/oauth-mysql.mjs +8 -0
- package/dist/drizzle/oauth-mysql.mjs.map +1 -0
- package/dist/drizzle/oauth-owner.d.mts +4 -0
- package/dist/drizzle/oauth-owner.mjs +10 -0
- package/dist/drizzle/oauth-owner.mjs.map +1 -0
- package/dist/drizzle/oauth-registration.d.mts +8 -0
- package/dist/drizzle/oauth-registration.mjs +375 -0
- package/dist/drizzle/oauth-registration.mjs.map +1 -0
- package/dist/drizzle/oauth-state.mjs +109 -0
- package/dist/drizzle/oauth-state.mjs.map +1 -0
- package/dist/drizzle/oauth-target.d.mts +125 -0
- package/dist/drizzle/oauth-target.mjs +252 -0
- package/dist/drizzle/oauth-target.mjs.map +1 -0
- package/dist/drizzle/passkey-admission.mjs +203 -0
- package/dist/drizzle/passkey-admission.mjs.map +1 -0
- package/dist/drizzle/passkey-credentials.mjs +239 -0
- package/dist/drizzle/passkey-credentials.mjs.map +1 -0
- package/dist/drizzle/passkey-drivers.mjs +34 -0
- package/dist/drizzle/passkey-drivers.mjs.map +1 -0
- package/dist/drizzle/passkey-enrollment.mjs +132 -0
- package/dist/drizzle/passkey-enrollment.mjs.map +1 -0
- package/dist/drizzle/passkey-flow.mjs +436 -0
- package/dist/drizzle/passkey-flow.mjs.map +1 -0
- package/dist/drizzle/passkey-management.mjs +225 -0
- package/dist/drizzle/passkey-management.mjs.map +1 -0
- package/dist/drizzle/passkey-model.d.mts +275 -0
- package/dist/drizzle/passkey-model.mjs +36 -0
- package/dist/drizzle/passkey-model.mjs.map +1 -0
- package/dist/drizzle/passkey-registration-ceremony-model.d.mts +50 -0
- package/dist/drizzle/passkey-registration-ceremony-model.mjs +18 -0
- package/dist/drizzle/passkey-registration-ceremony-model.mjs.map +1 -0
- package/dist/drizzle/passkey-registration-ceremony.mjs +124 -0
- package/dist/drizzle/passkey-registration-ceremony.mjs.map +1 -0
- package/dist/drizzle/passkey-registration-custody.mjs +51 -0
- package/dist/drizzle/passkey-registration-custody.mjs.map +1 -0
- package/dist/drizzle/passkey-registration-write.mjs +205 -0
- package/dist/drizzle/passkey-registration-write.mjs.map +1 -0
- package/dist/drizzle/passkey-state.d.mts +5 -0
- package/dist/drizzle/passkey-state.mjs +207 -0
- package/dist/drizzle/passkey-state.mjs.map +1 -0
- package/dist/drizzle/passkey-target.d.mts +16 -0
- package/dist/drizzle/passkey-target.mjs +174 -0
- package/dist/drizzle/passkey-target.mjs.map +1 -0
- package/dist/drizzle/passkey-write-drivers.mjs +33 -0
- package/dist/drizzle/passkey-write-drivers.mjs.map +1 -0
- package/dist/drizzle/passkey-write-model.d.mts +192 -0
- package/dist/drizzle/passkey-write-model.mjs +13 -0
- package/dist/drizzle/passkey-write-model.mjs.map +1 -0
- package/dist/drizzle/passkey-write-state.mjs +326 -0
- package/dist/drizzle/passkey-write-state.mjs.map +1 -0
- package/dist/drizzle/passkey-write-target.d.mts +14 -0
- package/dist/drizzle/passkey-write-target.mjs +185 -0
- package/dist/drizzle/passkey-write-target.mjs.map +1 -0
- package/dist/drizzle/password-model.d.mts +330 -0
- package/dist/drizzle/password-model.mjs +22 -0
- package/dist/drizzle/password-model.mjs.map +1 -0
- package/dist/drizzle/password-prepared-model.d.mts +93 -0
- package/dist/drizzle/password-prepared-model.mjs +11 -0
- package/dist/drizzle/password-prepared-model.mjs.map +1 -0
- package/dist/drizzle/password-prepared-sql.mjs +394 -0
- package/dist/drizzle/password-prepared-sql.mjs.map +1 -0
- package/dist/drizzle/password-prepared-state.mjs +107 -0
- package/dist/drizzle/password-prepared-state.mjs.map +1 -0
- package/dist/drizzle/password-prepared-target.d.mts +12 -0
- package/dist/drizzle/password-prepared-target.mjs +57 -0
- package/dist/drizzle/password-prepared-target.mjs.map +1 -0
- package/dist/drizzle/password-registration.d.mts +23 -0
- package/dist/drizzle/password-registration.mjs +136 -0
- package/dist/drizzle/password-registration.mjs.map +1 -0
- package/dist/drizzle/password-sql.d.mts +20 -0
- package/dist/drizzle/password-sql.mjs +702 -0
- package/dist/drizzle/password-sql.mjs.map +1 -0
- package/dist/drizzle/password-target.d.mts +25 -0
- package/dist/drizzle/password-target.mjs +63 -0
- package/dist/drizzle/password-target.mjs.map +1 -0
- package/dist/drizzle/pg-emails.d.mts +83 -0
- package/dist/drizzle/pg-emails.mjs +38 -0
- package/dist/drizzle/pg-emails.mjs.map +1 -0
- package/dist/drizzle/pg-password-prepared.d.mts +33 -0
- package/dist/drizzle/pg-password-prepared.mjs +16 -0
- package/dist/drizzle/pg-password-prepared.mjs.map +1 -0
- package/dist/drizzle/pg-passwords.d.mts +103 -0
- package/dist/drizzle/pg-passwords.mjs +38 -0
- package/dist/drizzle/pg-passwords.mjs.map +1 -0
- package/dist/drizzle/pg-proofs.d.mts +84 -0
- package/dist/drizzle/pg-proofs.mjs +22 -0
- package/dist/drizzle/pg-proofs.mjs.map +1 -0
- package/dist/drizzle/pg-sessions.d.mts +251 -0
- package/dist/drizzle/pg-sessions.mjs +53 -0
- package/dist/drizzle/pg-sessions.mjs.map +1 -0
- package/dist/drizzle/pg.d.mts +88 -0
- package/dist/drizzle/pg.mjs +294 -0
- package/dist/drizzle/pg.mjs.map +1 -0
- package/dist/drizzle/phone-model.d.mts +117 -0
- package/dist/drizzle/phone-model.mjs +39 -0
- package/dist/drizzle/phone-model.mjs.map +1 -0
- package/dist/drizzle/phone-state.mjs +426 -0
- package/dist/drizzle/phone-state.mjs.map +1 -0
- package/dist/drizzle/phone-target.d.mts +19 -0
- package/dist/drizzle/phone-target.mjs +171 -0
- package/dist/drizzle/phone-target.mjs.map +1 -0
- package/dist/drizzle/proof-model.d.mts +287 -0
- package/dist/drizzle/proof-model.mjs +17 -0
- package/dist/drizzle/proof-model.mjs.map +1 -0
- package/dist/drizzle/proof-sql.d.mts +16 -0
- package/dist/drizzle/proof-sql.mjs +618 -0
- package/dist/drizzle/proof-sql.mjs.map +1 -0
- package/dist/drizzle/proof-target.d.mts +17 -0
- package/dist/drizzle/proof-target.mjs +38 -0
- package/dist/drizzle/proof-target.mjs.map +1 -0
- package/dist/drizzle/session-model.d.mts +201 -0
- package/dist/drizzle/session-model.mjs +19 -0
- package/dist/drizzle/session-model.mjs.map +1 -0
- package/dist/drizzle/session-sql.mjs +732 -0
- package/dist/drizzle/session-sql.mjs.map +1 -0
- package/dist/drizzle/session-target.d.mts +37 -0
- package/dist/drizzle/session-target.mjs +47 -0
- package/dist/drizzle/session-target.mjs.map +1 -0
- package/dist/drizzle/sqlite-emails.mjs +45 -0
- package/dist/drizzle/sqlite-emails.mjs.map +1 -0
- package/dist/drizzle/sqlite-identity.mjs +92 -0
- package/dist/drizzle/sqlite-identity.mjs.map +1 -0
- package/dist/drizzle/sqlite-password-prepared.mjs +21 -0
- package/dist/drizzle/sqlite-password-prepared.mjs.map +1 -0
- package/dist/drizzle/sqlite-passwords.mjs +49 -0
- package/dist/drizzle/sqlite-passwords.mjs.map +1 -0
- package/dist/drizzle/sqlite-proofs.mjs +29 -0
- package/dist/drizzle/sqlite-proofs.mjs.map +1 -0
- package/dist/drizzle/sqlite-sessions.mjs +74 -0
- package/dist/drizzle/sqlite-sessions.mjs.map +1 -0
- package/dist/drizzle/sqlite.d.mts +81 -0
- package/dist/drizzle/sqlite.mjs +220 -0
- package/dist/drizzle/sqlite.mjs.map +1 -0
- package/dist/drizzle/standalone-guard.mjs +19 -0
- package/dist/drizzle/standalone-guard.mjs.map +1 -0
- package/dist/drizzle/step-up-model.d.mts +65 -0
- package/dist/drizzle/step-up-model.mjs +9 -0
- package/dist/drizzle/step-up-model.mjs.map +1 -0
- package/dist/drizzle/step-up-state.mjs +34 -0
- package/dist/drizzle/step-up-state.mjs.map +1 -0
- package/dist/drizzle/totp-model.d.mts +85 -0
- package/dist/drizzle/totp-model.mjs +13 -0
- package/dist/drizzle/totp-model.mjs.map +1 -0
- package/dist/drizzle/totp-state.d.mts +39 -0
- package/dist/drizzle/totp-state.mjs +288 -0
- package/dist/drizzle/totp-state.mjs.map +1 -0
- package/dist/drizzle/totp-target.d.mts +16 -0
- package/dist/drizzle/totp-target.mjs +83 -0
- package/dist/drizzle/totp-target.mjs.map +1 -0
- package/dist/drizzle/transaction-execution.d.mts +20 -0
- package/dist/drizzle/transaction-execution.mjs +111 -0
- package/dist/drizzle/transaction-execution.mjs.map +1 -0
- package/dist/drizzle/transaction-mysql.mjs +46 -0
- package/dist/drizzle/transaction-mysql.mjs.map +1 -0
- package/dist/drizzle/transaction-owner.d.mts +6 -0
- package/dist/drizzle/transaction-owner.mjs +252 -0
- package/dist/drizzle/transaction-owner.mjs.map +1 -0
- package/dist/email/EmailActionEvidence.d.mts +33 -0
- package/dist/email/EmailActionEvidence.mjs +15 -0
- package/dist/email/EmailActionEvidence.mjs.map +1 -0
- package/dist/email/EmailAddressPersistence.d.mts +63 -0
- package/dist/email/EmailAddressPersistence.mjs +19 -0
- package/dist/email/EmailAddressPersistence.mjs.map +1 -0
- package/dist/email/EmailIdentifierNotifier.d.mts +30 -0
- package/dist/email/EmailIdentifierNotifier.mjs +31 -0
- package/dist/email/EmailIdentifierNotifier.mjs.map +1 -0
- package/dist/email/EmailReturnTargets.d.mts +19 -0
- package/dist/email/EmailReturnTargets.mjs +29 -0
- package/dist/email/EmailReturnTargets.mjs.map +1 -0
- package/dist/email/EmailSignInTargets.d.mts +20 -0
- package/dist/email/EmailSignInTargets.mjs +12 -0
- package/dist/email/EmailSignInTargets.mjs.map +1 -0
- package/dist/email/addresses.d.mts +33 -0
- package/dist/email/addresses.mjs +404 -0
- package/dist/email/addresses.mjs.map +1 -0
- package/dist/email/definition.d.mts +10153 -0
- package/dist/email/definition.mjs +111 -0
- package/dist/email/definition.mjs.map +1 -0
- package/dist/email/errors.d.mts +15 -0
- package/dist/email/errors.mjs +11 -0
- package/dist/email/errors.mjs.map +1 -0
- package/dist/email/magicLink.d.mts +33 -0
- package/dist/email/magicLink.mjs +58 -0
- package/dist/email/magicLink.mjs.map +1 -0
- package/dist/email/models.d.mts +56 -0
- package/dist/email/models.mjs +31 -0
- package/dist/email/models.mjs.map +1 -0
- package/dist/email/module.d.mts +22296 -0
- package/dist/email/module.mjs +415 -0
- package/dist/email/module.mjs.map +1 -0
- package/dist/email/registration.d.mts +28 -0
- package/dist/email/registration.mjs +243 -0
- package/dist/email/registration.mjs.map +1 -0
- package/dist/email/snapshot.mjs +37 -0
- package/dist/email/snapshot.mjs.map +1 -0
- package/dist/hooks/LifecycleHooks.d.mts +34 -0
- package/dist/hooks/LifecycleHooks.mjs +74 -0
- package/dist/hooks/LifecycleHooks.mjs.map +1 -0
- package/dist/hooks/commit.d.mts +66 -0
- package/dist/hooks/commit.mjs +136 -0
- package/dist/hooks/commit.mjs.map +1 -0
- package/dist/hooks/models.d.mts +51 -0
- package/dist/hooks/models.mjs +87 -0
- package/dist/hooks/models.mjs.map +1 -0
- package/dist/hooks/plugins.d.mts +36 -0
- package/dist/hooks/plugins.mjs +60 -0
- package/dist/hooks/plugins.mjs.map +1 -0
- package/dist/hooks/transactions.d.mts +31 -0
- package/dist/hooks/transactions.mjs +38 -0
- package/dist/hooks/transactions.mjs.map +1 -0
- package/dist/http/auth-api.d.mts +9 -0
- package/dist/http/auth-api.mjs +13 -0
- package/dist/http/auth-api.mjs.map +1 -0
- package/dist/http/auth-contract.d.mts +84 -0
- package/dist/http/auth-contract.mjs +75 -0
- package/dist/http/auth-contract.mjs.map +1 -0
- package/dist/http/auth-http.d.mts +216 -0
- package/dist/http/auth-http.mjs +184 -0
- package/dist/http/auth-http.mjs.map +1 -0
- package/dist/http/endpoints/get-session.d.mts +8 -0
- package/dist/http/endpoints/get-session.mjs +12 -0
- package/dist/http/endpoints/get-session.mjs.map +1 -0
- package/dist/http/endpoints/password-sign-in.d.mts +8 -0
- package/dist/http/endpoints/password-sign-in.mjs +18 -0
- package/dist/http/endpoints/password-sign-in.mjs.map +1 -0
- package/dist/http/endpoints/request-email-otp.d.mts +8 -0
- package/dist/http/endpoints/request-email-otp.mjs +17 -0
- package/dist/http/endpoints/request-email-otp.mjs.map +1 -0
- package/dist/http/endpoints/set-password.d.mts +9 -0
- package/dist/http/endpoints/set-password.mjs +19 -0
- package/dist/http/endpoints/set-password.mjs.map +1 -0
- package/dist/http/endpoints/sign-out.d.mts +6 -0
- package/dist/http/endpoints/sign-out.mjs +7 -0
- package/dist/http/endpoints/sign-out.mjs.map +1 -0
- package/dist/http/endpoints/verify-email-otp.d.mts +9 -0
- package/dist/http/endpoints/verify-email-otp.mjs +18 -0
- package/dist/http/endpoints/verify-email-otp.mjs.map +1 -0
- package/dist/http/models.d.mts +49 -0
- package/dist/http/models.mjs +35 -0
- package/dist/http/models.mjs.map +1 -0
- package/dist/http/security.d.mts +91 -0
- package/dist/http/security.mjs +77 -0
- package/dist/http/security.mjs.map +1 -0
- package/dist/http/session-contract.d.mts +303 -0
- package/dist/http/session-contract.mjs +38 -0
- package/dist/http/session-contract.mjs.map +1 -0
- package/dist/http-operation/OperationHttpInvocation.d.mts +16 -0
- package/dist/http-operation/OperationHttpInvocation.mjs +11 -0
- package/dist/http-operation/OperationHttpInvocation.mjs.map +1 -0
- package/dist/http-operation/OperationHttpServerConfig.d.mts +18 -0
- package/dist/http-operation/OperationHttpServerConfig.mjs +72 -0
- package/dist/http-operation/OperationHttpServerConfig.mjs.map +1 -0
- package/dist/http-operation/auth-client.d.mts +75 -0
- package/dist/http-operation/auth-client.mjs +116 -0
- package/dist/http-operation/auth-client.mjs.map +1 -0
- package/dist/http-operation/client.d.mts +50 -0
- package/dist/http-operation/client.mjs +188 -0
- package/dist/http-operation/client.mjs.map +1 -0
- package/dist/http-operation/configuration-schema.mjs +19 -0
- package/dist/http-operation/configuration-schema.mjs.map +1 -0
- package/dist/http-operation/contract.d.mts +40 -0
- package/dist/http-operation/contract.mjs +37 -0
- package/dist/http-operation/contract.mjs.map +1 -0
- package/dist/http-operation/errors.d.mts +13 -0
- package/dist/http-operation/errors.mjs +31 -0
- package/dist/http-operation/errors.mjs.map +1 -0
- package/dist/http-operation/models.d.mts +32 -0
- package/dist/http-operation/models.mjs +14 -0
- package/dist/http-operation/models.mjs.map +1 -0
- package/dist/http-operation/private.mjs +35 -0
- package/dist/http-operation/private.mjs.map +1 -0
- package/dist/http-operation/security.mjs +58 -0
- package/dist/http-operation/security.mjs.map +1 -0
- package/dist/http-operation/server.d.mts +33 -0
- package/dist/http-operation/server.mjs +268 -0
- package/dist/http-operation/server.mjs.map +1 -0
- package/dist/identity/ExternalIdentityMutation.d.mts +15 -0
- package/dist/identity/ExternalIdentityMutation.mjs +11 -0
- package/dist/identity/ExternalIdentityMutation.mjs.map +1 -0
- package/dist/identity/IdentityMutation.d.mts +22 -0
- package/dist/identity/IdentityMutation.mjs +17 -0
- package/dist/identity/IdentityMutation.mjs.map +1 -0
- package/dist/identity/IdentityRepository.d.mts +20 -0
- package/dist/identity/IdentityRepository.mjs +11 -0
- package/dist/identity/IdentityRepository.mjs.map +1 -0
- package/dist/identity/SubjectLifecycle.d.mts +58 -0
- package/dist/identity/SubjectLifecycle.mjs +43 -0
- package/dist/identity/SubjectLifecycle.mjs.map +1 -0
- package/dist/identity/SubjectProvisioner.d.mts +37 -0
- package/dist/identity/SubjectProvisioner.mjs +20 -0
- package/dist/identity/SubjectProvisioner.mjs.map +1 -0
- package/dist/identity/codecs.d.mts +34 -0
- package/dist/identity/codecs.mjs +40 -0
- package/dist/identity/codecs.mjs.map +1 -0
- package/dist/identity/models.d.mts +62 -0
- package/dist/identity/models.mjs +51 -0
- package/dist/identity/models.mjs.map +1 -0
- package/dist/identity/operations.d.mts +118 -0
- package/dist/identity/operations.mjs +124 -0
- package/dist/identity/operations.mjs.map +1 -0
- package/dist/index.d.mts +23 -0
- package/dist/index.mjs +23 -0
- package/dist/internal/AuthStoreDecisions.d.mts +22 -0
- package/dist/internal/AuthStoreDecisions.mjs +8 -0
- package/dist/internal/AuthStoreDecisions.mjs.map +1 -0
- package/dist/internal/CurrentSession.d.mts +9 -0
- package/dist/internal/CurrentSession.mjs +8 -0
- package/dist/internal/CurrentSession.mjs.map +1 -0
- package/dist/internal/diagnostics.mjs +23 -0
- package/dist/internal/diagnostics.mjs.map +1 -0
- package/dist/oauth/GithubOAuthProvider.d.mts +43 -0
- package/dist/oauth/GithubOAuthProvider.mjs +66 -0
- package/dist/oauth/GithubOAuthProvider.mjs.map +1 -0
- package/dist/oauth/OAuth.d.mts +73 -0
- package/dist/oauth/OAuth.mjs +180 -0
- package/dist/oauth/OAuth.mjs.map +1 -0
- package/dist/oauth/OAuthAccountsPersistence.d.mts +109 -0
- package/dist/oauth/OAuthAccountsPersistence.mjs +12 -0
- package/dist/oauth/OAuthAccountsPersistence.mjs.map +1 -0
- package/dist/oauth/OAuthActionEvidence.d.mts +28 -0
- package/dist/oauth/OAuthActionEvidence.mjs +15 -0
- package/dist/oauth/OAuthActionEvidence.mjs.map +1 -0
- package/dist/oauth/OAuthConnectedActionEvidence.d.mts +22 -0
- package/dist/oauth/OAuthConnectedActionEvidence.mjs +9 -0
- package/dist/oauth/OAuthConnectedActionEvidence.mjs.map +1 -0
- package/dist/oauth/OAuthConnectedPersistence.d.mts +129 -0
- package/dist/oauth/OAuthConnectedPersistence.mjs +12 -0
- package/dist/oauth/OAuthConnectedPersistence.mjs.map +1 -0
- package/dist/oauth/OAuthConnectedProtocol.d.mts +41 -0
- package/dist/oauth/OAuthConnectedProtocol.mjs +13 -0
- package/dist/oauth/OAuthConnectedProtocol.mjs.map +1 -0
- package/dist/oauth/OAuthConnectedRevocations.d.mts +167 -0
- package/dist/oauth/OAuthConnectedRevocations.mjs +21 -0
- package/dist/oauth/OAuthConnectedRevocations.mjs.map +1 -0
- package/dist/oauth/OAuthConnectedTokenProtector.d.mts +24 -0
- package/dist/oauth/OAuthConnectedTokenProtector.mjs +153 -0
- package/dist/oauth/OAuthConnectedTokenProtector.mjs.map +1 -0
- package/dist/oauth/OAuthConnectedTransactionProtector.d.mts +23 -0
- package/dist/oauth/OAuthConnectedTransactionProtector.mjs +37 -0
- package/dist/oauth/OAuthConnectedTransactionProtector.mjs.map +1 -0
- package/dist/oauth/OAuthConnectedUseAuthority.d.mts +22 -0
- package/dist/oauth/OAuthConnectedUseAuthority.mjs +10 -0
- package/dist/oauth/OAuthConnectedUseAuthority.mjs.map +1 -0
- package/dist/oauth/OAuthConnectionStore.d.mts +33 -0
- package/dist/oauth/OAuthConnectionStore.mjs +38 -0
- package/dist/oauth/OAuthConnectionStore.mjs.map +1 -0
- package/dist/oauth/OAuthLinkTransactionProtector.d.mts +25 -0
- package/dist/oauth/OAuthLinkTransactionProtector.mjs +39 -0
- package/dist/oauth/OAuthLinkTransactionProtector.mjs.map +1 -0
- package/dist/oauth/OAuthProtocol.d.mts +33 -0
- package/dist/oauth/OAuthProtocol.mjs +16 -0
- package/dist/oauth/OAuthProtocol.mjs.map +1 -0
- package/dist/oauth/OAuthProvider.d.mts +70 -0
- package/dist/oauth/OAuthProvider.mjs +39 -0
- package/dist/oauth/OAuthProvider.mjs.map +1 -0
- package/dist/oauth/OAuthProviders.d.mts +27 -0
- package/dist/oauth/OAuthProviders.mjs +33 -0
- package/dist/oauth/OAuthProviders.mjs.map +1 -0
- package/dist/oauth/OAuthRegistrationIntents.d.mts +87 -0
- package/dist/oauth/OAuthRegistrationIntents.mjs +19 -0
- package/dist/oauth/OAuthRegistrationIntents.mjs.map +1 -0
- package/dist/oauth/OAuthReturnTargets.d.mts +15 -0
- package/dist/oauth/OAuthReturnTargets.mjs +24 -0
- package/dist/oauth/OAuthReturnTargets.mjs.map +1 -0
- package/dist/oauth/OAuthSignInPersistence.d.mts +68 -0
- package/dist/oauth/OAuthSignInPersistence.mjs +12 -0
- package/dist/oauth/OAuthSignInPersistence.mjs.map +1 -0
- package/dist/oauth/OAuthStateDecisions.d.mts +14 -0
- package/dist/oauth/OAuthStateDecisions.mjs +8 -0
- package/dist/oauth/OAuthStateDecisions.mjs.map +1 -0
- package/dist/oauth/OAuthStateStore.d.mts +35 -0
- package/dist/oauth/OAuthStateStore.mjs +64 -0
- package/dist/oauth/OAuthStateStore.mjs.map +1 -0
- package/dist/oauth/OAuthTransactionProtector.d.mts +26 -0
- package/dist/oauth/OAuthTransactionProtector.mjs +78 -0
- package/dist/oauth/OAuthTransactionProtector.mjs.map +1 -0
- package/dist/oauth/accounts.d.mts +29 -0
- package/dist/oauth/accounts.mjs +515 -0
- package/dist/oauth/accounts.mjs.map +1 -0
- package/dist/oauth/accountsModels.d.mts +463 -0
- package/dist/oauth/accountsModels.mjs +155 -0
- package/dist/oauth/accountsModels.mjs.map +1 -0
- package/dist/oauth/connected.d.mts +442 -0
- package/dist/oauth/connected.mjs +526 -0
- package/dist/oauth/connected.mjs.map +1 -0
- package/dist/oauth/connectedAccess.d.mts +20 -0
- package/dist/oauth/connectedAccess.mjs +279 -0
- package/dist/oauth/connectedAccess.mjs.map +1 -0
- package/dist/oauth/connectedMaintenance.d.mts +19 -0
- package/dist/oauth/connectedMaintenance.mjs +133 -0
- package/dist/oauth/connectedMaintenance.mjs.map +1 -0
- package/dist/oauth/connectedModels.d.mts +2023 -0
- package/dist/oauth/connectedModels.mjs +375 -0
- package/dist/oauth/connectedModels.mjs.map +1 -0
- package/dist/oauth/definition.d.mts +4396 -0
- package/dist/oauth/definition.mjs +120 -0
- package/dist/oauth/definition.mjs.map +1 -0
- package/dist/oauth/errors.d.mts +49 -0
- package/dist/oauth/errors.mjs +42 -0
- package/dist/oauth/errors.mjs.map +1 -0
- package/dist/oauth/github/identity.d.mts +8 -0
- package/dist/oauth/github/identity.mjs +24 -0
- package/dist/oauth/github/identity.mjs.map +1 -0
- package/dist/oauth/github/models.d.mts +34 -0
- package/dist/oauth/github/protocol.d.mts +54 -0
- package/dist/oauth/github/protocol.mjs +204 -0
- package/dist/oauth/github/protocol.mjs.map +1 -0
- package/dist/oauth/openid-client/ProviderRevocation.d.mts +4 -0
- package/dist/oauth/openid-client/ProviderRevocation.mjs +11 -0
- package/dist/oauth/openid-client/ProviderRevocation.mjs.map +1 -0
- package/dist/oauth/openid-client/compatibility.d.mts +1 -0
- package/dist/oauth/openid-client/compatibility.mjs +6 -0
- package/dist/oauth/openid-client/compatibility.mjs.map +1 -0
- package/dist/oauth/openid-client/configuration.mjs +305 -0
- package/dist/oauth/openid-client/configuration.mjs.map +1 -0
- package/dist/oauth/openid-client/connected/configuration.mjs +338 -0
- package/dist/oauth/openid-client/connected/configuration.mjs.map +1 -0
- package/dist/oauth/openid-client/connected/models.d.mts +42 -0
- package/dist/oauth/openid-client/connected/protocol.d.mts +16 -0
- package/dist/oauth/openid-client/connected/protocol.mjs +402 -0
- package/dist/oauth/openid-client/connected/protocol.mjs.map +1 -0
- package/dist/oauth/openid-client/models.d.mts +67 -0
- package/dist/oauth/openid-client/models.mjs +16 -0
- package/dist/oauth/openid-client/models.mjs.map +1 -0
- package/dist/oauth/openid-client/protocol.d.mts +27 -0
- package/dist/oauth/openid-client/protocol.mjs +218 -0
- package/dist/oauth/openid-client/protocol.mjs.map +1 -0
- package/dist/oauth/openid-client/transport.mjs +59 -0
- package/dist/oauth/openid-client/transport.mjs.map +1 -0
- package/dist/oauth/policy.d.mts +18 -0
- package/dist/oauth/policy.mjs +16 -0
- package/dist/oauth/policy.mjs.map +1 -0
- package/dist/oauth/registration.d.mts +24 -0
- package/dist/oauth/registration.mjs +177 -0
- package/dist/oauth/registration.mjs.map +1 -0
- package/dist/oauth/registrationModels.d.mts +152 -0
- package/dist/oauth/registrationModels.mjs +93 -0
- package/dist/oauth/registrationModels.mjs.map +1 -0
- package/dist/oauth/registrationSecrets.mjs +70 -0
- package/dist/oauth/registrationSecrets.mjs.map +1 -0
- package/dist/oauth/schema.d.mts +86 -0
- package/dist/oauth/schema.mjs +81 -0
- package/dist/oauth/schema.mjs.map +1 -0
- package/dist/oauth/signInErrors.d.mts +17 -0
- package/dist/oauth/signInErrors.mjs +16 -0
- package/dist/oauth/signInErrors.mjs.map +1 -0
- package/dist/oauth/signInModels.d.mts +343 -0
- package/dist/oauth/signInModels.mjs +181 -0
- package/dist/oauth/signInModels.mjs.map +1 -0
- package/dist/oauth/signInModule.d.mts +1546 -0
- package/dist/oauth/signInModule.mjs +430 -0
- package/dist/oauth/signInModule.mjs.map +1 -0
- package/dist/oauth/signInSnapshot.mjs +29 -0
- package/dist/oauth/signInSnapshot.mjs.map +1 -0
- package/dist/oauth/transactionEncryption.d.mts +14 -0
- package/dist/oauth/transactionEncryption.mjs +129 -0
- package/dist/oauth/transactionEncryption.mjs.map +1 -0
- package/dist/operations/RequestBindingConfig.d.mts +11 -0
- package/dist/operations/RequestBindingConfig.mjs +10 -0
- package/dist/operations/RequestBindingConfig.mjs.map +1 -0
- package/dist/operations/actions.d.mts +947 -0
- package/dist/operations/actions.mjs +148 -0
- package/dist/operations/actions.mjs.map +1 -0
- package/dist/operations/context.d.mts +63 -0
- package/dist/operations/context.mjs +55 -0
- package/dist/operations/context.mjs.map +1 -0
- package/dist/operations/credentials.d.mts +39 -0
- package/dist/operations/credentials.mjs +60 -0
- package/dist/operations/credentials.mjs.map +1 -0
- package/dist/operations/errors.d.mts +24 -0
- package/dist/operations/errors.mjs +31 -0
- package/dist/operations/errors.mjs.map +1 -0
- package/dist/operations/operation.d.mts +124 -0
- package/dist/operations/operation.mjs +220 -0
- package/dist/operations/operation.mjs.map +1 -0
- package/dist/operations/requestBinding.d.mts +46 -0
- package/dist/operations/requestBinding.mjs +130 -0
- package/dist/operations/requestBinding.mjs.map +1 -0
- package/dist/operations/requestBindingModels.d.mts +13 -0
- package/dist/operations/requestBindingModels.mjs +12 -0
- package/dist/operations/requestBindingModels.mjs.map +1 -0
- package/dist/operations/reveals.d.mts +28 -0
- package/dist/operations/reveals.mjs +88 -0
- package/dist/operations/reveals.mjs.map +1 -0
- package/dist/passkey/PasskeyActionEvidence.d.mts +22 -0
- package/dist/passkey/PasskeyActionEvidence.mjs +9 -0
- package/dist/passkey/PasskeyActionEvidence.mjs.map +1 -0
- package/dist/passkey/PasskeyCredentials.d.mts +16 -0
- package/dist/passkey/PasskeyCredentials.mjs +9 -0
- package/dist/passkey/PasskeyCredentials.mjs.map +1 -0
- package/dist/passkey/PasskeyEnrollmentContext.d.mts +22 -0
- package/dist/passkey/PasskeyEnrollmentContext.mjs +9 -0
- package/dist/passkey/PasskeyEnrollmentContext.mjs.map +1 -0
- package/dist/passkey/PasskeyManagementPersistence.d.mts +106 -0
- package/dist/passkey/PasskeyManagementPersistence.mjs +9 -0
- package/dist/passkey/PasskeyManagementPersistence.mjs.map +1 -0
- package/dist/passkey/PasskeyPersistence.d.mts +63 -0
- package/dist/passkey/PasskeyPersistence.mjs +10 -0
- package/dist/passkey/PasskeyPersistence.mjs.map +1 -0
- package/dist/passkey/PasskeyProtocol.d.mts +38 -0
- package/dist/passkey/PasskeyProtocol.mjs +11 -0
- package/dist/passkey/PasskeyProtocol.mjs.map +1 -0
- package/dist/passkey/actions.d.mts +50 -0
- package/dist/passkey/actions.mjs +376 -0
- package/dist/passkey/actions.mjs.map +1 -0
- package/dist/passkey/browser/PasskeyBrowser.d.mts +18 -0
- package/dist/passkey/browser/PasskeyBrowser.mjs +9 -0
- package/dist/passkey/browser/PasskeyBrowser.mjs.map +1 -0
- package/dist/passkey/browser/models.d.mts +38 -0
- package/dist/passkey/browser/models.mjs +41 -0
- package/dist/passkey/browser/models.mjs.map +1 -0
- package/dist/passkey/browser/simplewebauthn.d.mts +17 -0
- package/dist/passkey/browser/simplewebauthn.mjs +411 -0
- package/dist/passkey/browser/simplewebauthn.mjs.map +1 -0
- package/dist/passkey/definition.d.mts +5626 -0
- package/dist/passkey/definition.mjs +114 -0
- package/dist/passkey/definition.mjs.map +1 -0
- package/dist/passkey/errors.d.mts +20 -0
- package/dist/passkey/errors.mjs +20 -0
- package/dist/passkey/errors.mjs.map +1 -0
- package/dist/passkey/management.mjs +276 -0
- package/dist/passkey/management.mjs.map +1 -0
- package/dist/passkey/models.d.mts +1245 -0
- package/dist/passkey/models.mjs +301 -0
- package/dist/passkey/models.mjs.map +1 -0
- package/dist/passkey/module.d.mts +2132 -0
- package/dist/passkey/module.mjs +174 -0
- package/dist/passkey/module.mjs.map +1 -0
- package/dist/passkey/pending.mjs +99 -0
- package/dist/passkey/pending.mjs.map +1 -0
- package/dist/passkey/policy.d.mts +48 -0
- package/dist/passkey/policy.mjs +77 -0
- package/dist/passkey/policy.mjs.map +1 -0
- package/dist/passkey/registration.mjs +107 -0
- package/dist/passkey/registration.mjs.map +1 -0
- package/dist/passkey/simplewebauthn/configuration.mjs +45 -0
- package/dist/passkey/simplewebauthn/configuration.mjs.map +1 -0
- package/dist/passkey/simplewebauthn/models.d.mts +21 -0
- package/dist/passkey/simplewebauthn/models.mjs +8 -0
- package/dist/passkey/simplewebauthn/models.mjs.map +1 -0
- package/dist/passkey/simplewebauthn/protocol.d.mts +62 -0
- package/dist/passkey/simplewebauthn/protocol.mjs +402 -0
- package/dist/passkey/simplewebauthn/protocol.mjs.map +1 -0
- package/dist/passkey/snapshot.mjs +31 -0
- package/dist/passkey/snapshot.mjs.map +1 -0
- package/dist/passkey/stepUp.mjs +101 -0
- package/dist/passkey/stepUp.mjs.map +1 -0
- package/dist/password/CompromisedPasswords.d.mts +26 -0
- package/dist/password/CompromisedPasswords.mjs +23 -0
- package/dist/password/CompromisedPasswords.mjs.map +1 -0
- package/dist/password/NewPasswordCheck.d.mts +21 -0
- package/dist/password/NewPasswordCheck.mjs +39 -0
- package/dist/password/NewPasswordCheck.mjs.map +1 -0
- package/dist/password/PasswordHashing.d.mts +24 -0
- package/dist/password/PasswordHashing.mjs +96 -0
- package/dist/password/PasswordHashing.mjs.map +1 -0
- package/dist/password/PasswordKdfAdmission.d.mts +19 -0
- package/dist/password/PasswordKdfAdmission.mjs +25 -0
- package/dist/password/PasswordKdfAdmission.mjs.map +1 -0
- package/dist/password/configuration.d.mts +43 -0
- package/dist/password/configuration.mjs +64 -0
- package/dist/password/configuration.mjs.map +1 -0
- package/dist/password/defaults.mjs +13 -0
- package/dist/password/defaults.mjs.map +1 -0
- package/dist/password/encoding.mjs +64 -0
- package/dist/password/encoding.mjs.map +1 -0
- package/dist/password/errors.d.mts +28 -0
- package/dist/password/errors.mjs +25 -0
- package/dist/password/errors.mjs.map +1 -0
- package/dist/password/methods/PasswordActionEvidence.d.mts +38 -0
- package/dist/password/methods/PasswordActionEvidence.mjs +22 -0
- package/dist/password/methods/PasswordActionEvidence.mjs.map +1 -0
- package/dist/password/methods/PasswordPersistence.d.mts +102 -0
- package/dist/password/methods/PasswordPersistence.mjs +13 -0
- package/dist/password/methods/PasswordPersistence.mjs.map +1 -0
- package/dist/password/methods/PasswordPreparedPersistence.d.mts +111 -0
- package/dist/password/methods/contracts.d.mts +43 -0
- package/dist/password/methods/contracts.mjs +33 -0
- package/dist/password/methods/contracts.mjs.map +1 -0
- package/dist/password/methods/definition.d.mts +3813 -0
- package/dist/password/methods/definition.mjs +56 -0
- package/dist/password/methods/definition.mjs.map +1 -0
- package/dist/password/methods/errors.d.mts +15 -0
- package/dist/password/methods/errors.mjs +11 -0
- package/dist/password/methods/errors.mjs.map +1 -0
- package/dist/password/methods/models.d.mts +70 -0
- package/dist/password/methods/models.mjs +44 -0
- package/dist/password/methods/models.mjs.map +1 -0
- package/dist/password/methods/module.d.mts +3567 -0
- package/dist/password/methods/module.mjs +553 -0
- package/dist/password/methods/module.mjs.map +1 -0
- package/dist/password/methods/policy.d.mts +84 -0
- package/dist/password/methods/policy.mjs +80 -0
- package/dist/password/methods/policy.mjs.map +1 -0
- package/dist/password/methods/preparation.mjs +54 -0
- package/dist/password/methods/preparation.mjs.map +1 -0
- package/dist/password/methods/prepared.d.mts +53 -0
- package/dist/password/methods/prepared.mjs +610 -0
- package/dist/password/methods/prepared.mjs.map +1 -0
- package/dist/password/methods/preparedModels.d.mts +1295 -0
- package/dist/password/methods/preparedModels.mjs +278 -0
- package/dist/password/methods/preparedModels.mjs.map +1 -0
- package/dist/password/methods/signIn.d.mts +180 -0
- package/dist/password/methods/signIn.mjs +73 -0
- package/dist/password/methods/signIn.mjs.map +1 -0
- package/dist/password/methods/snapshot.mjs +38 -0
- package/dist/password/methods/snapshot.mjs.map +1 -0
- package/dist/password/methods/verification.mjs +138 -0
- package/dist/password/methods/verification.mjs.map +1 -0
- package/dist/password/models.d.mts +13 -0
- package/dist/password/models.mjs +12 -0
- package/dist/password/models.mjs.map +1 -0
- package/dist/password/policy.d.mts +33 -0
- package/dist/password/policy.mjs +37 -0
- package/dist/password/policy.mjs.map +1 -0
- package/dist/phone/PhoneActionEvidence.d.mts +23 -0
- package/dist/phone/PhoneActionEvidence.mjs +10 -0
- package/dist/phone/PhoneActionEvidence.mjs.map +1 -0
- package/dist/phone/PhoneAdmission.d.mts +29 -0
- package/dist/phone/PhoneAdmission.mjs +10 -0
- package/dist/phone/PhoneAdmission.mjs.map +1 -0
- package/dist/phone/PhoneDeliveryEligibility.d.mts +11 -0
- package/dist/phone/PhoneDeliveryEligibility.mjs +8 -0
- package/dist/phone/PhoneDeliveryEligibility.mjs.map +1 -0
- package/dist/phone/PhonePersistence.d.mts +33 -0
- package/dist/phone/PhonePersistence.mjs +10 -0
- package/dist/phone/PhonePersistence.mjs.map +1 -0
- package/dist/phone/PhoneRequestContext.d.mts +10 -0
- package/dist/phone/PhoneRequestContext.mjs +8 -0
- package/dist/phone/PhoneRequestContext.mjs.map +1 -0
- package/dist/phone/PhoneSignInTargets.d.mts +19 -0
- package/dist/phone/PhoneSignInTargets.mjs +13 -0
- package/dist/phone/PhoneSignInTargets.mjs.map +1 -0
- package/dist/phone/definition.d.mts +7190 -0
- package/dist/phone/definition.mjs +28 -0
- package/dist/phone/definition.mjs.map +1 -0
- package/dist/phone/failure.mjs +23 -0
- package/dist/phone/failure.mjs.map +1 -0
- package/dist/phone/lifecycle.mjs +427 -0
- package/dist/phone/lifecycle.mjs.map +1 -0
- package/dist/phone/lifecycleModels.d.mts +164 -0
- package/dist/phone/lifecycleModels.mjs +91 -0
- package/dist/phone/lifecycleModels.mjs.map +1 -0
- package/dist/phone/models.d.mts +41 -0
- package/dist/phone/models.mjs +29 -0
- package/dist/phone/models.mjs.map +1 -0
- package/dist/phone/module.d.mts +6027 -0
- package/dist/phone/module.mjs +293 -0
- package/dist/phone/module.mjs.map +1 -0
- package/dist/proofs/EmailProofDelivery.d.mts +13 -0
- package/dist/proofs/EmailProofDelivery.mjs +11 -0
- package/dist/proofs/EmailProofDelivery.mjs.map +1 -0
- package/dist/proofs/HostIngressLimiter.d.mts +20 -0
- package/dist/proofs/HostIngressLimiter.mjs +13 -0
- package/dist/proofs/HostIngressLimiter.mjs.map +1 -0
- package/dist/proofs/ProofPersistence.d.mts +140 -0
- package/dist/proofs/ProofPersistence.mjs +13 -0
- package/dist/proofs/ProofPersistence.mjs.map +1 -0
- package/dist/proofs/SmsProofDelivery.d.mts +13 -0
- package/dist/proofs/SmsProofDelivery.mjs +11 -0
- package/dist/proofs/SmsProofDelivery.mjs.map +1 -0
- package/dist/proofs/abuse.d.mts +15 -0
- package/dist/proofs/abuse.mjs +12 -0
- package/dist/proofs/abuse.mjs.map +1 -0
- package/dist/proofs/completion.d.mts +22 -0
- package/dist/proofs/crypto.d.mts +196 -0
- package/dist/proofs/crypto.mjs +189 -0
- package/dist/proofs/crypto.mjs.map +1 -0
- package/dist/proofs/definition.d.mts +335 -0
- package/dist/proofs/definition.mjs +10 -0
- package/dist/proofs/definition.mjs.map +1 -0
- package/dist/proofs/delivery.d.mts +30 -0
- package/dist/proofs/delivery.mjs +26 -0
- package/dist/proofs/delivery.mjs.map +1 -0
- package/dist/proofs/dispatch.d.mts +20 -0
- package/dist/proofs/dispatch.mjs +54 -0
- package/dist/proofs/dispatch.mjs.map +1 -0
- package/dist/proofs/errors.d.mts +21 -0
- package/dist/proofs/errors.mjs +25 -0
- package/dist/proofs/errors.mjs.map +1 -0
- package/dist/proofs/models.d.mts +141 -0
- package/dist/proofs/models.mjs +93 -0
- package/dist/proofs/models.mjs.map +1 -0
- package/dist/proofs/module.d.mts +344 -0
- package/dist/proofs/module.mjs +350 -0
- package/dist/proofs/module.mjs.map +1 -0
- package/dist/proofs/policy.d.mts +152 -0
- package/dist/proofs/policy.mjs +51 -0
- package/dist/proofs/policy.mjs.map +1 -0
- package/dist/sessions/AuthenticationAuthority.d.mts +31 -0
- package/dist/sessions/AuthenticationAuthority.mjs +8 -0
- package/dist/sessions/AuthenticationAuthority.mjs.map +1 -0
- package/dist/sessions/PendingAuthentication.d.mts +108 -0
- package/dist/sessions/PendingAuthentication.mjs +40 -0
- package/dist/sessions/PendingAuthentication.mjs.map +1 -0
- package/dist/sessions/SessionStepUpPersistence.d.mts +152 -0
- package/dist/sessions/SessionStepUpPersistence.mjs +63 -0
- package/dist/sessions/SessionStepUpPersistence.mjs.map +1 -0
- package/dist/sessions/assurance.d.mts +163 -0
- package/dist/sessions/assurance.mjs +95 -0
- package/dist/sessions/assurance.mjs.map +1 -0
- package/dist/sessions/commit.d.mts +13 -0
- package/dist/sessions/configuration.d.mts +46 -0
- package/dist/sessions/configuration.mjs +55 -0
- package/dist/sessions/configuration.mjs.map +1 -0
- package/dist/sessions/contract.d.mts +663 -0
- package/dist/sessions/contract.mjs +174 -0
- package/dist/sessions/contract.mjs.map +1 -0
- package/dist/sessions/crypto.d.mts +24 -0
- package/dist/sessions/crypto.mjs +106 -0
- package/dist/sessions/crypto.mjs.map +1 -0
- package/dist/sessions/definition.d.mts +11 -0
- package/dist/sessions/definition.mjs +10 -0
- package/dist/sessions/definition.mjs.map +1 -0
- package/dist/sessions/errors.d.mts +35 -0
- package/dist/sessions/errors.mjs +34 -0
- package/dist/sessions/errors.mjs.map +1 -0
- package/dist/sessions/invalidation.d.mts +23 -0
- package/dist/sessions/invalidation.mjs +33 -0
- package/dist/sessions/invalidation.mjs.map +1 -0
- package/dist/sessions/models.d.mts +143 -0
- package/dist/sessions/models.mjs +94 -0
- package/dist/sessions/models.mjs.map +1 -0
- package/dist/sessions/module.d.mts +1091 -0
- package/dist/sessions/module.mjs +943 -0
- package/dist/sessions/module.mjs.map +1 -0
- package/dist/sessions/persistence.d.mts +93 -0
- package/dist/sessions/policy.d.mts +80 -0
- package/dist/sessions/policy.mjs +66 -0
- package/dist/sessions/policy.mjs.map +1 -0
- package/dist/testing/conformance/AuthStore.d.mts +11 -0
- package/dist/testing/conformance/AuthStore.mjs +173 -0
- package/dist/testing/conformance/AuthStore.mjs.map +1 -0
- package/dist/testing/conformance/OAuthConnectionStore.d.mts +11 -0
- package/dist/testing/conformance/OAuthConnectionStore.mjs +102 -0
- package/dist/testing/conformance/OAuthConnectionStore.mjs.map +1 -0
- package/dist/testing/conformance/OAuthStateStore.d.mts +11 -0
- package/dist/testing/conformance/OAuthStateStore.mjs +45 -0
- package/dist/testing/conformance/OAuthStateStore.mjs.map +1 -0
- package/dist/testing/conformance/PasswordCredentialStore.d.mts +20 -0
- package/dist/testing/conformance/PasswordCredentialStore.mjs +103 -0
- package/dist/testing/conformance/PasswordCredentialStore.mjs.map +1 -0
- package/dist/testing/conformance/support.mjs +17 -0
- package/dist/testing/conformance/support.mjs.map +1 -0
- package/dist/testing/crypto.d.mts +11 -0
- package/dist/testing/crypto.mjs +41 -0
- package/dist/testing/crypto.mjs.map +1 -0
- package/dist/testing/keyring.d.mts +9 -0
- package/dist/testing/keyring.mjs +17 -0
- package/dist/testing/keyring.mjs.map +1 -0
- package/dist/totp/TotpActionEvidence.d.mts +18 -0
- package/dist/totp/TotpActionEvidence.mjs +8 -0
- package/dist/totp/TotpActionEvidence.mjs.map +1 -0
- package/dist/totp/TotpPersistence.d.mts +19 -0
- package/dist/totp/TotpPersistence.mjs +8 -0
- package/dist/totp/TotpPersistence.mjs.map +1 -0
- package/dist/totp/TotpSecretKeys.d.mts +15 -0
- package/dist/totp/TotpSecretKeys.mjs +8 -0
- package/dist/totp/TotpSecretKeys.mjs.map +1 -0
- package/dist/totp/crypto.mjs +96 -0
- package/dist/totp/crypto.mjs.map +1 -0
- package/dist/totp/definition.d.mts +764 -0
- package/dist/totp/definition.mjs +24 -0
- package/dist/totp/definition.mjs.map +1 -0
- package/dist/totp/errors.d.mts +16 -0
- package/dist/totp/errors.mjs +18 -0
- package/dist/totp/errors.mjs.map +1 -0
- package/dist/totp/models.d.mts +377 -0
- package/dist/totp/models.mjs +137 -0
- package/dist/totp/models.mjs.map +1 -0
- package/dist/totp/module.d.mts +737 -0
- package/dist/totp/module.mjs +355 -0
- package/dist/totp/module.mjs.map +1 -0
- package/package.json +1 -0
- package/src/Atom.ts +4 -0
- package/src/Auth.ts +16 -0
- package/src/AuthContract.ts +17 -0
- package/src/AuthSession.ts +298 -0
- package/src/AuthStore.ts +367 -0
- package/src/AuthTokenCodec.ts +226 -0
- package/src/Client.ts +9 -0
- package/src/Cloudflare.ts +345 -0
- package/src/Drizzle.ts +378 -0
- package/src/DrizzleD1.ts +136 -0
- package/src/DrizzleLibsql.ts +288 -0
- package/src/DrizzleMysql2.ts +184 -0
- package/src/DrizzlePglite.ts +160 -0
- package/src/DrizzlePostgres.ts +160 -0
- package/src/DrizzleSqliteBun.ts +244 -0
- package/src/DrizzleSqliteDo.ts +473 -0
- package/src/DrizzleSqliteNode.ts +245 -0
- package/src/DrizzleSqliteWasm.ts +245 -0
- package/src/Email.ts +55 -0
- package/src/EmailOtp.ts +250 -0
- package/src/EmailOtpSender.ts +28 -0
- package/src/Errors.ts +103 -0
- package/src/GitHub.ts +16 -0
- package/src/Hooks.ts +50 -0
- package/src/Http.ts +47 -0
- package/src/HttpServer.ts +742 -0
- package/src/Identity.ts +53 -0
- package/src/IdentityResolver.ts +18 -0
- package/src/OAuth.ts +242 -0
- package/src/OpenIdClient.ts +13 -0
- package/src/OpenIdClientConnected.ts +18 -0
- package/src/OperationHttp.ts +14 -0
- package/src/OperationHttpClient.ts +6 -0
- package/src/OperationHttpServer.ts +15 -0
- package/src/Operations.ts +69 -0
- package/src/Passkey.ts +81 -0
- package/src/PasskeyBrowser.ts +19 -0
- package/src/PasskeyContract.ts +212 -0
- package/src/PasskeyPassword.ts +319 -0
- package/src/PasskeySimpleWebAuthn.ts +6 -0
- package/src/Password.ts +113 -0
- package/src/PasswordAuth.ts +197 -0
- package/src/PasswordCredentialStore.ts +140 -0
- package/src/PasswordHasher.ts +147 -0
- package/src/PhoneOtp.ts +32 -0
- package/src/Policy.ts +95 -0
- package/src/Proofs.ts +71 -0
- package/src/Rpc.ts +15 -0
- package/src/Schema.ts +235 -0
- package/src/SessionContract.ts +2 -0
- package/src/Sessions.ts +105 -0
- package/src/Testing.ts +24 -0
- package/src/Totp.ts +28 -0
- package/src/TotpContract.ts +147 -0
- package/src/WebCrypto.ts +61 -0
- package/src/Workflows.ts +12 -0
- package/src/atom/AuthAtomLifetime.ts +87 -0
- package/src/atom/AuthAtomWorkflow.ts +27 -0
- package/src/atom/client.ts +364 -0
- package/src/atom/operations.ts +183 -0
- package/src/atom/scoped-runtime.ts +249 -0
- package/src/auth/Auth.ts +482 -0
- package/src/auth/AuthConfigurationError.ts +9 -0
- package/src/auth/AuthRequest.ts +21 -0
- package/src/auth/AuthStrategy.ts +116 -0
- package/src/auth/ConsumeDecision.ts +4 -0
- package/src/auth/actions.ts +220 -0
- package/src/auth/defaults.ts +23 -0
- package/src/auth/definition.ts +88 -0
- package/src/auth/session.ts +146 -0
- package/src/drizzle/D1BatchStatements.ts +10 -0
- package/src/drizzle/PasswordPreparedPostconditions.ts +30 -0
- package/src/drizzle/SuppliedService.ts +10 -0
- package/src/drizzle/d1-emails.ts +1808 -0
- package/src/drizzle/d1-generated-statement.ts +129 -0
- package/src/drizzle/d1-identity.ts +374 -0
- package/src/drizzle/d1-oauth.ts +338 -0
- package/src/drizzle/d1-passkey.ts +371 -0
- package/src/drizzle/d1-password-prepared.ts +1273 -0
- package/src/drizzle/d1-passwords.ts +2661 -0
- package/src/drizzle/d1-phone.ts +94 -0
- package/src/drizzle/d1-planning.ts +105 -0
- package/src/drizzle/d1-proofs.ts +2305 -0
- package/src/drizzle/d1-sessions.ts +2867 -0
- package/src/drizzle/d1-totp.ts +79 -0
- package/src/drizzle/email-model.ts +512 -0
- package/src/drizzle/email-registration.ts +696 -0
- package/src/drizzle/email-sql.ts +1468 -0
- package/src/drizzle/email-target.ts +243 -0
- package/src/drizzle/model.ts +492 -0
- package/src/drizzle/mysql-emails.ts +323 -0
- package/src/drizzle/mysql-identity.ts +323 -0
- package/src/drizzle/mysql-password-prepared.ts +206 -0
- package/src/drizzle/mysql-passwords.ts +341 -0
- package/src/drizzle/mysql-proofs.ts +183 -0
- package/src/drizzle/mysql-sessions.ts +742 -0
- package/src/drizzle/mysql.ts +686 -0
- package/src/drizzle/oauth-accounts.ts +801 -0
- package/src/drizzle/oauth-connected-access.ts +354 -0
- package/src/drizzle/oauth-connected-collection.ts +324 -0
- package/src/drizzle/oauth-connected-custody.ts +277 -0
- package/src/drizzle/oauth-connected-drivers.ts +463 -0
- package/src/drizzle/oauth-connected-flow.ts +439 -0
- package/src/drizzle/oauth-connected-input.ts +128 -0
- package/src/drizzle/oauth-connected-maintenance.ts +345 -0
- package/src/drizzle/oauth-connected-management.ts +365 -0
- package/src/drizzle/oauth-connected-model.ts +347 -0
- package/src/drizzle/oauth-connected-reference.ts +112 -0
- package/src/drizzle/oauth-connected-settlement.ts +226 -0
- package/src/drizzle/oauth-connected-state.ts +846 -0
- package/src/drizzle/oauth-connected-target.ts +264 -0
- package/src/drizzle/oauth-drivers.ts +567 -0
- package/src/drizzle/oauth-flow.ts +461 -0
- package/src/drizzle/oauth-input.ts +205 -0
- package/src/drizzle/oauth-model.ts +610 -0
- package/src/drizzle/oauth-mysql.ts +10 -0
- package/src/drizzle/oauth-owner.ts +29 -0
- package/src/drizzle/oauth-registration.ts +638 -0
- package/src/drizzle/oauth-state.ts +213 -0
- package/src/drizzle/oauth-target.ts +751 -0
- package/src/drizzle/passkey-admission.ts +333 -0
- package/src/drizzle/passkey-credentials.ts +465 -0
- package/src/drizzle/passkey-drivers.ts +385 -0
- package/src/drizzle/passkey-enrollment.ts +280 -0
- package/src/drizzle/passkey-flow.ts +983 -0
- package/src/drizzle/passkey-management.ts +369 -0
- package/src/drizzle/passkey-model.ts +350 -0
- package/src/drizzle/passkey-registration-ceremony-model.ts +69 -0
- package/src/drizzle/passkey-registration-ceremony.ts +254 -0
- package/src/drizzle/passkey-registration-custody.ts +82 -0
- package/src/drizzle/passkey-registration-write.ts +378 -0
- package/src/drizzle/passkey-state.ts +307 -0
- package/src/drizzle/passkey-target.ts +528 -0
- package/src/drizzle/passkey-write-drivers.ts +396 -0
- package/src/drizzle/passkey-write-model.ts +265 -0
- package/src/drizzle/passkey-write-state.ts +627 -0
- package/src/drizzle/passkey-write-target.ts +406 -0
- package/src/drizzle/password-model.ts +491 -0
- package/src/drizzle/password-prepared-model.ts +259 -0
- package/src/drizzle/password-prepared-sql.ts +1198 -0
- package/src/drizzle/password-prepared-state.ts +232 -0
- package/src/drizzle/password-prepared-target.ts +158 -0
- package/src/drizzle/password-registration.ts +372 -0
- package/src/drizzle/password-sql.ts +2082 -0
- package/src/drizzle/password-target.ts +223 -0
- package/src/drizzle/pg-emails.ts +323 -0
- package/src/drizzle/pg-password-prepared.ts +207 -0
- package/src/drizzle/pg-passwords.ts +340 -0
- package/src/drizzle/pg-proofs.ts +193 -0
- package/src/drizzle/pg-sessions.ts +751 -0
- package/src/drizzle/pg.ts +982 -0
- package/src/drizzle/phone-model.ts +185 -0
- package/src/drizzle/phone-state.ts +802 -0
- package/src/drizzle/phone-target.ts +471 -0
- package/src/drizzle/proof-model.ts +398 -0
- package/src/drizzle/proof-sql.ts +1912 -0
- package/src/drizzle/proof-target.ts +120 -0
- package/src/drizzle/session-model.ts +368 -0
- package/src/drizzle/session-sql.ts +2152 -0
- package/src/drizzle/session-target.ts +335 -0
- package/src/drizzle/sqlite-emails.ts +368 -0
- package/src/drizzle/sqlite-identity.ts +343 -0
- package/src/drizzle/sqlite-password-prepared.ts +262 -0
- package/src/drizzle/sqlite-passwords.ts +499 -0
- package/src/drizzle/sqlite-proofs.ts +204 -0
- package/src/drizzle/sqlite-sessions.ts +972 -0
- package/src/drizzle/sqlite.ts +704 -0
- package/src/drizzle/standalone-guard.ts +38 -0
- package/src/drizzle/step-up-model.ts +129 -0
- package/src/drizzle/step-up-state.ts +141 -0
- package/src/drizzle/totp-model.ts +91 -0
- package/src/drizzle/totp-state.ts +520 -0
- package/src/drizzle/totp-target.ts +304 -0
- package/src/drizzle/transaction-execution.ts +290 -0
- package/src/drizzle/transaction-mysql.ts +104 -0
- package/src/drizzle/transaction-owner.ts +570 -0
- package/src/email/EmailActionEvidence.ts +37 -0
- package/src/email/EmailAddressPersistence.ts +71 -0
- package/src/email/EmailIdentifierNotifier.ts +48 -0
- package/src/email/EmailReturnTargets.ts +50 -0
- package/src/email/EmailSignInTargets.ts +20 -0
- package/src/email/addresses.ts +630 -0
- package/src/email/definition.ts +309 -0
- package/src/email/errors.ts +23 -0
- package/src/email/magicLink.ts +84 -0
- package/src/email/models.ts +50 -0
- package/src/email/module.ts +664 -0
- package/src/email/registration.ts +415 -0
- package/src/email/snapshot.ts +51 -0
- package/src/hooks/LifecycleHooks.ts +136 -0
- package/src/hooks/commit.ts +271 -0
- package/src/hooks/models.ts +111 -0
- package/src/hooks/plugins.ts +87 -0
- package/src/hooks/transactions.ts +51 -0
- package/src/http/auth-api.ts +17 -0
- package/src/http/auth-contract.ts +148 -0
- package/src/http/auth-http.ts +467 -0
- package/src/http/endpoints/get-session.ts +9 -0
- package/src/http/endpoints/password-sign-in.ts +19 -0
- package/src/http/endpoints/request-email-otp.ts +10 -0
- package/src/http/endpoints/set-password.ts +18 -0
- package/src/http/endpoints/sign-out.ts +5 -0
- package/src/http/endpoints/verify-email-otp.ts +15 -0
- package/src/http/models.ts +80 -0
- package/src/http/security.ts +102 -0
- package/src/http/session-contract.ts +92 -0
- package/src/http-operation/OperationHttpInvocation.ts +39 -0
- package/src/http-operation/OperationHttpServerConfig.ts +124 -0
- package/src/http-operation/auth-client.ts +273 -0
- package/src/http-operation/client.ts +453 -0
- package/src/http-operation/configuration-schema.ts +19 -0
- package/src/http-operation/contract.ts +116 -0
- package/src/http-operation/errors.ts +38 -0
- package/src/http-operation/models.ts +42 -0
- package/src/http-operation/private.ts +50 -0
- package/src/http-operation/security.ts +93 -0
- package/src/http-operation/server.ts +544 -0
- package/src/identity/ExternalIdentityMutation.ts +18 -0
- package/src/identity/IdentityMutation.ts +41 -0
- package/src/identity/IdentityRepository.ts +37 -0
- package/src/identity/SubjectLifecycle.ts +80 -0
- package/src/identity/SubjectProvisioner.ts +40 -0
- package/src/identity/codecs.ts +54 -0
- package/src/identity/models.ts +82 -0
- package/src/identity/operations.ts +182 -0
- package/src/index.ts +23 -0
- package/src/internal/AuthStoreDecisions.ts +23 -0
- package/src/internal/CurrentSession.ts +8 -0
- package/src/internal/diagnostics.ts +71 -0
- package/src/oauth/GithubOAuthProvider.ts +106 -0
- package/src/oauth/OAuth.ts +436 -0
- package/src/oauth/OAuthAccountsPersistence.ts +142 -0
- package/src/oauth/OAuthActionEvidence.ts +31 -0
- package/src/oauth/OAuthConnectedActionEvidence.ts +28 -0
- package/src/oauth/OAuthConnectedPersistence.ts +163 -0
- package/src/oauth/OAuthConnectedProtocol.ts +54 -0
- package/src/oauth/OAuthConnectedRevocations.ts +48 -0
- package/src/oauth/OAuthConnectedTokenProtector.ts +240 -0
- package/src/oauth/OAuthConnectedTransactionProtector.ts +56 -0
- package/src/oauth/OAuthConnectedUseAuthority.ts +26 -0
- package/src/oauth/OAuthConnectionStore.ts +59 -0
- package/src/oauth/OAuthLinkTransactionProtector.ts +58 -0
- package/src/oauth/OAuthProtocol.ts +39 -0
- package/src/oauth/OAuthProvider.ts +126 -0
- package/src/oauth/OAuthProviders.ts +53 -0
- package/src/oauth/OAuthRegistrationIntents.ts +42 -0
- package/src/oauth/OAuthReturnTargets.ts +44 -0
- package/src/oauth/OAuthSignInPersistence.ts +91 -0
- package/src/oauth/OAuthStateDecisions.ts +16 -0
- package/src/oauth/OAuthStateStore.ts +102 -0
- package/src/oauth/OAuthTransactionProtector.ts +103 -0
- package/src/oauth/accounts.ts +987 -0
- package/src/oauth/accountsModels.ts +214 -0
- package/src/oauth/connected.ts +995 -0
- package/src/oauth/connectedAccess.ts +644 -0
- package/src/oauth/connectedMaintenance.ts +248 -0
- package/src/oauth/connectedModels.ts +495 -0
- package/src/oauth/definition.ts +414 -0
- package/src/oauth/errors.ts +78 -0
- package/src/oauth/github/identity.ts +26 -0
- package/src/oauth/github/models.ts +37 -0
- package/src/oauth/github/protocol.ts +329 -0
- package/src/oauth/openid-client/ProviderRevocation.ts +22 -0
- package/src/oauth/openid-client/compatibility.ts +47 -0
- package/src/oauth/openid-client/configuration.ts +472 -0
- package/src/oauth/openid-client/connected/configuration.ts +565 -0
- package/src/oauth/openid-client/connected/models.ts +58 -0
- package/src/oauth/openid-client/connected/protocol.ts +866 -0
- package/src/oauth/openid-client/models.ts +78 -0
- package/src/oauth/openid-client/protocol.ts +437 -0
- package/src/oauth/openid-client/transport.ts +67 -0
- package/src/oauth/policy.ts +26 -0
- package/src/oauth/registration.ts +410 -0
- package/src/oauth/registrationModels.ts +115 -0
- package/src/oauth/registrationSecrets.ts +127 -0
- package/src/oauth/schema.ts +102 -0
- package/src/oauth/signInErrors.ts +23 -0
- package/src/oauth/signInModels.ts +266 -0
- package/src/oauth/signInModule.ts +875 -0
- package/src/oauth/signInSnapshot.ts +37 -0
- package/src/oauth/transactionEncryption.ts +198 -0
- package/src/operations/RequestBindingConfig.ts +12 -0
- package/src/operations/actions.ts +342 -0
- package/src/operations/context.ts +130 -0
- package/src/operations/credentials.ts +121 -0
- package/src/operations/errors.ts +53 -0
- package/src/operations/operation.ts +740 -0
- package/src/operations/requestBinding.ts +237 -0
- package/src/operations/requestBindingModels.ts +18 -0
- package/src/operations/reveals.ts +147 -0
- package/src/passkey/PasskeyActionEvidence.ts +25 -0
- package/src/passkey/PasskeyCredentials.ts +16 -0
- package/src/passkey/PasskeyEnrollmentContext.ts +26 -0
- package/src/passkey/PasskeyManagementPersistence.ts +124 -0
- package/src/passkey/PasskeyPersistence.ts +85 -0
- package/src/passkey/PasskeyProtocol.ts +48 -0
- package/src/passkey/actions.ts +905 -0
- package/src/passkey/browser/PasskeyBrowser.ts +26 -0
- package/src/passkey/browser/models.ts +67 -0
- package/src/passkey/browser/simplewebauthn.ts +621 -0
- package/src/passkey/definition.ts +386 -0
- package/src/passkey/errors.ts +39 -0
- package/src/passkey/management.ts +552 -0
- package/src/passkey/models.ts +414 -0
- package/src/passkey/module.ts +367 -0
- package/src/passkey/pending.ts +203 -0
- package/src/passkey/policy.ts +88 -0
- package/src/passkey/registration.ts +251 -0
- package/src/passkey/simplewebauthn/configuration.ts +97 -0
- package/src/passkey/simplewebauthn/models.ts +9 -0
- package/src/passkey/simplewebauthn/protocol.ts +729 -0
- package/src/passkey/snapshot.ts +48 -0
- package/src/passkey/stepUp.ts +212 -0
- package/src/password/CompromisedPasswords.ts +36 -0
- package/src/password/NewPasswordCheck.ts +89 -0
- package/src/password/PasswordHashing.ts +209 -0
- package/src/password/PasswordKdfAdmission.ts +44 -0
- package/src/password/configuration.ts +52 -0
- package/src/password/defaults.ts +15 -0
- package/src/password/encoding.ts +137 -0
- package/src/password/errors.ts +43 -0
- package/src/password/methods/PasswordActionEvidence.ts +41 -0
- package/src/password/methods/PasswordPersistence.ts +128 -0
- package/src/password/methods/PasswordPreparedPersistence.ts +123 -0
- package/src/password/methods/contracts.ts +47 -0
- package/src/password/methods/definition.ts +199 -0
- package/src/password/methods/errors.ts +26 -0
- package/src/password/methods/models.ts +80 -0
- package/src/password/methods/module.ts +986 -0
- package/src/password/methods/policy.ts +68 -0
- package/src/password/methods/preparation.ts +73 -0
- package/src/password/methods/prepared.ts +1199 -0
- package/src/password/methods/preparedModels.ts +496 -0
- package/src/password/methods/signIn.ts +136 -0
- package/src/password/methods/snapshot.ts +53 -0
- package/src/password/methods/verification.ts +266 -0
- package/src/password/models.ts +15 -0
- package/src/password/policy.ts +41 -0
- package/src/phone/PhoneActionEvidence.ts +26 -0
- package/src/phone/PhoneAdmission.ts +29 -0
- package/src/phone/PhoneDeliveryEligibility.ts +9 -0
- package/src/phone/PhonePersistence.ts +43 -0
- package/src/phone/PhoneRequestContext.ts +7 -0
- package/src/phone/PhoneSignInTargets.ts +19 -0
- package/src/phone/definition.ts +87 -0
- package/src/phone/failure.ts +40 -0
- package/src/phone/lifecycle.ts +662 -0
- package/src/phone/lifecycleModels.ts +108 -0
- package/src/phone/models.ts +41 -0
- package/src/phone/module.ts +433 -0
- package/src/proofs/EmailProofDelivery.ts +19 -0
- package/src/proofs/HostIngressLimiter.ts +20 -0
- package/src/proofs/ProofPersistence.ts +172 -0
- package/src/proofs/SmsProofDelivery.ts +19 -0
- package/src/proofs/abuse.ts +23 -0
- package/src/proofs/completion.ts +23 -0
- package/src/proofs/crypto.ts +326 -0
- package/src/proofs/definition.ts +39 -0
- package/src/proofs/delivery.ts +73 -0
- package/src/proofs/dispatch.ts +99 -0
- package/src/proofs/errors.ts +46 -0
- package/src/proofs/models.ts +131 -0
- package/src/proofs/module.ts +620 -0
- package/src/proofs/policy.ts +77 -0
- package/src/sessions/AuthenticationAuthority.ts +51 -0
- package/src/sessions/PendingAuthentication.ts +121 -0
- package/src/sessions/SessionStepUpPersistence.ts +164 -0
- package/src/sessions/assurance.ts +192 -0
- package/src/sessions/commit.ts +13 -0
- package/src/sessions/configuration.ts +133 -0
- package/src/sessions/contract.ts +203 -0
- package/src/sessions/crypto.ts +181 -0
- package/src/sessions/definition.ts +25 -0
- package/src/sessions/errors.ts +68 -0
- package/src/sessions/invalidation.ts +46 -0
- package/src/sessions/models.ts +138 -0
- package/src/sessions/module.ts +1991 -0
- package/src/sessions/persistence.ts +135 -0
- package/src/sessions/policy.ts +103 -0
- package/src/testing/conformance/AuthStore.ts +314 -0
- package/src/testing/conformance/OAuthConnectionStore.ts +167 -0
- package/src/testing/conformance/OAuthStateStore.ts +105 -0
- package/src/testing/conformance/PasswordCredentialStore.ts +205 -0
- package/src/testing/conformance/support.ts +38 -0
- package/src/testing/crypto.ts +55 -0
- package/src/testing/keyring.ts +17 -0
- package/src/totp/TotpActionEvidence.ts +18 -0
- package/src/totp/TotpPersistence.ts +26 -0
- package/src/totp/TotpSecretKeys.ts +15 -0
- package/src/totp/crypto.ts +160 -0
- package/src/totp/definition.ts +78 -0
- package/src/totp/errors.ts +25 -0
- package/src/totp/models.ts +164 -0
- package/src/totp/module.ts +717 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OAuthConnectedPersistence.mjs","names":[],"sources":["../../src/oauth/OAuthConnectedPersistence.ts"],"sourcesContent":["import { Context, type Effect } from \"effect\";\n\nimport type { PreparedCommit } from \"../hooks/commit\";\nimport type { SubjectId } from \"../Schema\";\nimport type { OAuthAccountRevision } from \"./accountsModels\";\nimport type * as M from \"./connectedModels\";\nimport type { PrepareOAuthCommit } from \"./OAuthSignInPersistence\";\nimport type { OAuthUnavailable } from \"./signInErrors\";\nimport type {\n OAuthClaimId,\n OAuthCleanupInput,\n OAuthCommandId,\n OAuthExternalIdentity,\n OAuthModuleId,\n} from \"./signInModels\";\n\ntype Mutation<A> = Effect.Effect<PreparedCommit<A>, OAuthUnavailable>;\n\n/** All joins use ONE physical authority. Synchronous prepare before commit; unknown\n * outcomes discard receipts/events, never retry prepare/owner/network. No plaintext.\n * Every relevant policy/binding change advances its authority revision. Final guards\n * recheck exact input, subject, credential/policy/profile/cohort versions and engine\n * time after all writes. Standalone operations reject ambient owners. */\nexport class OAuthConnectedPersistence extends Context.Service<\n OAuthConnectedPersistence,\n {\n readonly capture: (input: {\n readonly moduleId: typeof OAuthModuleId.Type;\n readonly subjectId: SubjectId;\n readonly grantId?: typeof M.OAuthGrantId.Type;\n }) => Effect.Effect<\n | { readonly revision: OAuthAccountRevision; readonly target?: M.OAuthConnectedTarget }\n | undefined,\n OAuthUnavailable\n >;\n readonly issue: <A>(\n input: {\n readonly flow: M.OAuthConnectedPendingFlow;\n readonly authorization: M.OAuthConnectedActionAuthorization;\n },\n prepare: PrepareOAuthCommit<typeof M.OAuthConnectedIssueDecision.Type, A>,\n ) => Mutation<A>;\n readonly preflight: (\n input: M.OAuthConnectedAccess,\n ) => Effect.Effect<M.OAuthConnectedPendingFlow | undefined, OAuthUnavailable>;\n /** Single Pending->Claimed CAS with fixed engine deadline. Assign durable total\n * order comparable with later-resolved cohort cutoff; never use caller clock. */\n readonly claim: <A>(\n input: {\n readonly access: M.OAuthConnectedAccess;\n readonly flow: M.OAuthConnectedPendingFlow;\n readonly claimId: typeof OAuthClaimId.Type;\n readonly authorization: M.OAuthConnectedActionAuthorization;\n },\n prepare: PrepareOAuthCommit<typeof M.OAuthConnectedClaimDecision.Type, A>,\n ) => Mutation<A>;\n /** Nonconsuming current cohort/ownership inspection after identity is known.\n * Neither this read nor its generation confers a final mutation right.\n * A recognized cutoff/barrier rejection returns Quarantine with its actual\n * generation so late tokens can be sealed into exact cohort custody. Foreign\n * ownership conflicts do not authorize compensating remote revocation. */\n readonly inspectGrant: (input: {\n readonly claim: M.OAuthConnectedClaim;\n readonly identity: typeof OAuthExternalIdentity.Type;\n }) => Effect.Effect<typeof M.OAuthConnectedGrantInspection.Type, OAuthUnavailable>;\n /** Recheck complete action, original revisions/deadline, global tuple INCLUDING\n * unresolved registration reservations, exact profile/target/cohort and claim\n * order after revocation cutoff. Connect cannot overwrite; Reconnect keeps tuple.\n * Join token ciphertext, ownership, flow erasure, result and journal. Verified\n * includes sealed cleanup for a cutoff advanced since inspectGrant; route it into\n * original cohort custody instead of activating. Quarantined can ONLY join sealed\n * cleanup custody, never Active. No login\n * credential/factor/session mutation. Unknown outcome MUST NOT trigger revoke. */\n readonly settle: <A>(\n input: {\n readonly claim: M.OAuthConnectedClaim;\n readonly outcome: M.OAuthConnectedOutcome;\n readonly authorization: M.OAuthConnectedActionAuthorization;\n readonly nowMillis: number;\n },\n prepare: PrepareOAuthCommit<typeof M.OAuthConnectedSettlementDecision.Type, A>,\n ) => Mutation<A>;\n readonly list: (input: {\n readonly authorization: M.OAuthConnectedUseAuthorization;\n readonly limit: number;\n readonly cursor?: string;\n }) => Effect.Effect<typeof M.OAuthConnectedListResult.Type, OAuthUnavailable>;\n /** Durable command first, current metadata policy on replay; no new factor.\n * Missing marker/target proves neither prior ownership nor rollback. */\n readonly inspectDisconnect: (input: {\n readonly moduleId: typeof OAuthModuleId.Type;\n readonly subjectId: SubjectId;\n readonly authorization: M.OAuthConnectedUseAuthorization;\n readonly commandId: typeof OAuthCommandId.Type;\n readonly grantId: typeof M.OAuthGrantId.Type;\n }) => Effect.Effect<typeof M.OAuthConnectedDisconnectInspection.Type, OAuthUnavailable>;\n /** Local-first: atomic disable + generation/cohort barrier + immutable command +\n * optional sealed revocation jobs. Conservative cohort-wide sibling invalidation.\n * Pending refresh counts as unresolved. Retain global ownership while any login,\n * grant, reservation, admission or unresolved cohort work needs it. No remote I/O. */\n readonly disconnect: <A>(\n input: {\n readonly moduleId: typeof OAuthModuleId.Type;\n readonly commandId: typeof OAuthCommandId.Type;\n readonly grant: M.OAuthConnectedDisconnectGrant;\n readonly authorization: M.OAuthConnectedActionAuthorization;\n readonly revocation?: M.OAuthConnectedRevocationJob;\n readonly retentionUntilMillis: number;\n },\n prepare: PrepareOAuthCommit<typeof M.OAuthConnectedDisconnectDecision.Type, A>,\n ) => Mutation<A>;\n readonly inspectAccess: (input: {\n readonly authorization: M.OAuthConnectedUseAuthorization;\n readonly grantId: typeof M.OAuthGrantId.Type;\n readonly profileKey: typeof M.OAuthPermissionProfileKey.Type;\n }) => Effect.Effect<typeof M.OAuthConnectedAccessInspection.Type, OAuthUnavailable>;\n /** One fixed claim only when due, exact grant/token/cohort/use authority. Busy\n * losers, no expired takeover/reset/renewal. Claimed work blocks cohort clearing. */\n readonly claimRefresh: <A>(\n input: {\n readonly grant: M.OAuthConnectedStoredGrant;\n readonly authorization: M.OAuthConnectedUseAuthorization;\n readonly claimId: typeof OAuthClaimId.Type;\n readonly nextTokenVersion: M.OAuthConnectedRefreshClaim[\"nextTokenVersion\"];\n readonly lifetimeMillis: number;\n },\n prepare: PrepareOAuthCommit<typeof M.OAuthConnectedRefreshDecision.Type, A>,\n ) => Mutation<A>;\n /** Exact CAS plus final policy/time. Late success never resurrects: route its\n * sealed cleanup to original unresolved cohort; old-token revoke alone cannot\n * clear pending work. Ambiguous/expired claim invalidates both token uses and\n * retains unresolved state; no future reuse of possibly spent refresh material. */\n readonly settleRefresh: <A>(\n input: {\n readonly claim: M.OAuthConnectedRefreshClaim;\n readonly authorization: M.OAuthConnectedUseAuthorization;\n readonly outcome: M.OAuthConnectedRefreshOutcome;\n },\n prepare: PrepareOAuthCommit<typeof M.OAuthConnectedRefreshSettlement.Type, A>,\n ) => Mutation<A>;\n /** AFTER decrypt, exact ciphertext/context+grant/token/cohort, active subject,\n * current policy/revisions/profile/permissions and engine expiry. One confirmed\n * admission receipt authorizes at most one callback; it does not prove I/O ran. */\n readonly admitUse: <A>(\n input: {\n readonly grant: M.OAuthConnectedStoredGrant;\n readonly authorization: M.OAuthConnectedUseAuthorization;\n readonly admissionId: typeof OAuthClaimId.Type;\n readonly lifetimeMillis: number;\n },\n prepare: PrepareOAuthCommit<typeof M.OAuthConnectedUseAdmission.Type, A>,\n ) => Mutation<A>;\n /** Bounded conditional cleanup; never remove unresolved initial exchanges,\n * refresh/revocation, ownership or cohort cutoffs, or turn expired work into new\n * authority. Unknown external tuples retain a conservative client-registration\n * dependency until exact cohort reconciliation or proven provider quiescence;\n * ordinary flow retention expiry cannot release that ordering dependency. */\n readonly cleanup: <A>(\n input: OAuthCleanupInput,\n prepare: PrepareOAuthCommit<typeof M.OAuthConnectedCleanupResult.Type, A>,\n ) => Mutation<A>;\n }\n>()(\"effect-auth/OAuthConnectedPersistence\") {}\n"],"mappings":";;;;;;;AAuBA,IAAa,4BAAb,cAA+C,QAAQ,QA2IrD,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { RequestBindingFlowId } from "../operations/requestBindingModels.mjs";
|
|
2
|
+
import "../operations/requestBinding.mjs";
|
|
3
|
+
import { OAuthProtocolRejected, OAuthUnavailable } from "./signInErrors.mjs";
|
|
4
|
+
import { OAuthCallbackId, OAuthCodeResponse, OAuthProtocolPreparation, OAuthTransactionSecrets } from "./signInModels.mjs";
|
|
5
|
+
import { OAuthConnectedConfiguration, OAuthConnectedGrantResponse, OAuthConnectedProfile, OAuthConnectedTokenContext, OAuthConnectedTokenMaterial } from "./connectedModels.mjs";
|
|
6
|
+
import { Context, DateTime, Effect } from "effect";
|
|
7
|
+
//#region src/oauth/OAuthConnectedProtocol.d.ts
|
|
8
|
+
declare const OAuthConnectedProtocol_base: Context.ServiceClass<OAuthConnectedProtocol, "effect-auth/OAuthConnectedProtocol", {
|
|
9
|
+
readonly prepareAuthorization: (input: {
|
|
10
|
+
readonly profile: OAuthConnectedProfile;
|
|
11
|
+
readonly callbackId: typeof OAuthCallbackId.Type;
|
|
12
|
+
readonly flowId: RequestBindingFlowId;
|
|
13
|
+
}) => Effect.Effect<Omit<OAuthProtocolPreparation, "configuration"> & {
|
|
14
|
+
readonly configuration: OAuthConnectedConfiguration;
|
|
15
|
+
}, OAuthProtocolRejected | OAuthUnavailable>;
|
|
16
|
+
readonly exchangeGrant: (input: {
|
|
17
|
+
readonly configuration: OAuthConnectedConfiguration;
|
|
18
|
+
readonly secrets: OAuthTransactionSecrets;
|
|
19
|
+
readonly response: OAuthCodeResponse;
|
|
20
|
+
readonly verificationStartedAt: DateTime.Utc;
|
|
21
|
+
}) => Effect.Effect<OAuthConnectedGrantResponse, OAuthProtocolRejected | OAuthUnavailable>;
|
|
22
|
+
readonly refreshGrant: (input: {
|
|
23
|
+
readonly context: OAuthConnectedTokenContext;
|
|
24
|
+
readonly material: OAuthConnectedTokenMaterial;
|
|
25
|
+
readonly verificationStartedAt: DateTime.Utc;
|
|
26
|
+
}) => Effect.Effect<OAuthConnectedGrantResponse, OAuthProtocolRejected | OAuthUnavailable>;
|
|
27
|
+
readonly revokeGrant: (input: {
|
|
28
|
+
readonly context: OAuthConnectedTokenContext;
|
|
29
|
+
readonly material: OAuthConnectedTokenMaterial;
|
|
30
|
+
}) => Effect.Effect<"Confirmed", OAuthUnavailable>;
|
|
31
|
+
}>;
|
|
32
|
+
/** Explicit server-only token capability; ordinary OAuthProtocol stays token-free.
|
|
33
|
+
* All provider/identity/refresh/revocation HTTP stays outside database owners.
|
|
34
|
+
* Exact retained config and fixed profiles only. No automatic exchange retry.
|
|
35
|
+
* Refresh validates original identity, optional OIDC nonce/auth_time and permissions;
|
|
36
|
+
* it never upgrades authentication freshness. Unknown outcomes are unavailable.
|
|
37
|
+
* Revocation reports Confirmed only under the declared provider cohort contract. */
|
|
38
|
+
declare class OAuthConnectedProtocol extends OAuthConnectedProtocol_base {}
|
|
39
|
+
//#endregion
|
|
40
|
+
export { OAuthConnectedProtocol };
|
|
41
|
+
//# sourceMappingURL=OAuthConnectedProtocol.d.mts.map
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Context } from "effect";
|
|
2
|
+
//#region src/oauth/OAuthConnectedProtocol.ts
|
|
3
|
+
/** Explicit server-only token capability; ordinary OAuthProtocol stays token-free.
|
|
4
|
+
* All provider/identity/refresh/revocation HTTP stays outside database owners.
|
|
5
|
+
* Exact retained config and fixed profiles only. No automatic exchange retry.
|
|
6
|
+
* Refresh validates original identity, optional OIDC nonce/auth_time and permissions;
|
|
7
|
+
* it never upgrades authentication freshness. Unknown outcomes are unavailable.
|
|
8
|
+
* Revocation reports Confirmed only under the declared provider cohort contract. */
|
|
9
|
+
var OAuthConnectedProtocol = class extends Context.Service()("effect-auth/OAuthConnectedProtocol") {};
|
|
10
|
+
//#endregion
|
|
11
|
+
export { OAuthConnectedProtocol };
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=OAuthConnectedProtocol.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OAuthConnectedProtocol.mjs","names":[],"sources":["../../src/oauth/OAuthConnectedProtocol.ts"],"sourcesContent":["import { Context, type DateTime, type Effect } from \"effect\";\n\nimport type { RequestBindingFlowId } from \"../operations/requestBinding\";\nimport type {\n OAuthConnectedConfiguration,\n OAuthConnectedGrantResponse,\n OAuthConnectedProfile,\n OAuthConnectedTokenContext,\n OAuthConnectedTokenMaterial,\n} from \"./connectedModels\";\nimport type { OAuthProtocolRejected, OAuthUnavailable } from \"./signInErrors\";\nimport type {\n OAuthCallbackId,\n OAuthCodeResponse,\n OAuthProtocolPreparation,\n OAuthTransactionSecrets,\n} from \"./signInModels\";\n\n/** Explicit server-only token capability; ordinary OAuthProtocol stays token-free.\n * All provider/identity/refresh/revocation HTTP stays outside database owners.\n * Exact retained config and fixed profiles only. No automatic exchange retry.\n * Refresh validates original identity, optional OIDC nonce/auth_time and permissions;\n * it never upgrades authentication freshness. Unknown outcomes are unavailable.\n * Revocation reports Confirmed only under the declared provider cohort contract. */\nexport class OAuthConnectedProtocol extends Context.Service<\n OAuthConnectedProtocol,\n {\n readonly prepareAuthorization: (input: {\n readonly profile: OAuthConnectedProfile;\n readonly callbackId: typeof OAuthCallbackId.Type;\n readonly flowId: RequestBindingFlowId;\n }) => Effect.Effect<\n Omit<OAuthProtocolPreparation, \"configuration\"> & {\n readonly configuration: OAuthConnectedConfiguration;\n },\n OAuthProtocolRejected | OAuthUnavailable\n >;\n readonly exchangeGrant: (input: {\n readonly configuration: OAuthConnectedConfiguration;\n readonly secrets: OAuthTransactionSecrets;\n readonly response: OAuthCodeResponse;\n readonly verificationStartedAt: DateTime.Utc;\n }) => Effect.Effect<OAuthConnectedGrantResponse, OAuthProtocolRejected | OAuthUnavailable>;\n readonly refreshGrant: (input: {\n readonly context: OAuthConnectedTokenContext;\n readonly material: OAuthConnectedTokenMaterial;\n readonly verificationStartedAt: DateTime.Utc;\n }) => Effect.Effect<OAuthConnectedGrantResponse, OAuthProtocolRejected | OAuthUnavailable>;\n readonly revokeGrant: (input: {\n readonly context: OAuthConnectedTokenContext;\n readonly material: OAuthConnectedTokenMaterial;\n }) => Effect.Effect<\"Confirmed\", OAuthUnavailable>;\n }\n>()(\"effect-auth/OAuthConnectedProtocol\") {}\n"],"mappings":";;;;;;;;AAwBA,IAAa,yBAAb,cAA4C,QAAQ,QA6BlD,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import { PreparedCommit } from "../hooks/commit.mjs";
|
|
2
|
+
import { OAuthUnavailable } from "./signInErrors.mjs";
|
|
3
|
+
import { OAuthClaimId, OAuthModuleId } from "./signInModels.mjs";
|
|
4
|
+
import { PrepareOAuthCommit } from "./OAuthSignInPersistence.mjs";
|
|
5
|
+
import { Context, Effect, Schema } from "effect";
|
|
6
|
+
//#region src/oauth/OAuthConnectedRevocations.d.ts
|
|
7
|
+
declare const OAuthConnectedRevocationClaim: Schema.Struct<{
|
|
8
|
+
readonly job: Schema.Struct<{
|
|
9
|
+
readonly context: Schema.Struct<{
|
|
10
|
+
readonly namespace: Schema.Literal<"effect-auth/oauth-connected-revocation-context/v1">;
|
|
11
|
+
readonly jobId: Schema.brand<Schema.String, "effect-auth/OAuthClaimId">;
|
|
12
|
+
readonly token: Schema.Struct<{
|
|
13
|
+
readonly namespace: Schema.Literal<"effect-auth/oauth-connected-token-context/v1">;
|
|
14
|
+
readonly moduleId: Schema.brand<Schema.String, "effect-auth/OAuthModuleId">;
|
|
15
|
+
readonly subjectId: Schema.brand<Schema.NonEmptyString, "effect-auth/SubjectId">;
|
|
16
|
+
readonly identity: Schema.Struct<{
|
|
17
|
+
readonly provider: Schema.brand<Schema.String, "effect-auth/OAuthProviderKey">;
|
|
18
|
+
readonly issuer: Schema.brand<Schema.String, "effect-auth/OAuthIssuer">;
|
|
19
|
+
readonly subject: Schema.NonEmptyString;
|
|
20
|
+
}>;
|
|
21
|
+
readonly configuration: Schema.Struct<{
|
|
22
|
+
readonly provider: Schema.brand<Schema.String, "effect-auth/OAuthProviderKey">;
|
|
23
|
+
readonly protocol: Schema.Literals<readonly ["oidc", "oauth"]>;
|
|
24
|
+
readonly configurationGeneration: Schema.Int;
|
|
25
|
+
readonly issuer: Schema.brand<Schema.String, "effect-auth/OAuthIssuer">;
|
|
26
|
+
readonly responseIssuerMode: Schema.Literals<readonly ["required", "unsupported"]>;
|
|
27
|
+
readonly callbackId: Schema.brand<Schema.String, "effect-auth/OAuthCallbackId">;
|
|
28
|
+
readonly redirectUri: Schema.brand<Schema.String, "effect-auth/OAuthRedirectUri">;
|
|
29
|
+
readonly profile: Schema.Struct<{
|
|
30
|
+
readonly key: Schema.brand<Schema.String, "effect-auth/OAuthPermissionProfileKey">;
|
|
31
|
+
readonly generation: Schema.Int;
|
|
32
|
+
readonly issuance: Schema.Literals<readonly ["active", "retired"]>;
|
|
33
|
+
readonly provider: Schema.brand<Schema.String, "effect-auth/OAuthProviderKey">;
|
|
34
|
+
readonly clientRegistrationId: Schema.String;
|
|
35
|
+
readonly scopes: Schema.$Array<Schema.String>;
|
|
36
|
+
readonly resources: Schema.$Array<Schema.NonEmptyString>;
|
|
37
|
+
readonly retention: Schema.Literals<readonly ["access-only", "access-and-refresh"]>;
|
|
38
|
+
readonly maximumAccessLifetimeMillis: Schema.Int;
|
|
39
|
+
readonly maximumRefreshLifetimeMillis: Schema.optionalKey<Schema.Int>;
|
|
40
|
+
readonly refreshAheadMillis: Schema.Int;
|
|
41
|
+
readonly refresh: Schema.Literals<readonly ["unsupported", "confidential", "rotating"]>;
|
|
42
|
+
readonly revocation: Schema.Literals<readonly ["unsupported", "cohort"]>;
|
|
43
|
+
}>;
|
|
44
|
+
}>;
|
|
45
|
+
readonly grantId: Schema.brand<Schema.String, "effect-auth/OAuthGrantId">;
|
|
46
|
+
readonly grantVersion: Schema.brand<Schema.NonEmptyString, "effect-auth/SecurityRevision">;
|
|
47
|
+
readonly tokenVersion: Schema.brand<Schema.NonEmptyString, "effect-auth/SecurityRevision">;
|
|
48
|
+
readonly cohortGeneration: Schema.brand<Schema.NonEmptyString, "effect-auth/SecurityRevision">;
|
|
49
|
+
readonly metadata: Schema.Struct<{
|
|
50
|
+
readonly scopes: Schema.$Array<Schema.String>;
|
|
51
|
+
readonly resources: Schema.$Array<Schema.NonEmptyString>;
|
|
52
|
+
readonly accessExpiresAtMillis: Schema.optionalKey<Schema.Int>;
|
|
53
|
+
readonly refreshExpiresAtMillis: Schema.optionalKey<Schema.Int>;
|
|
54
|
+
readonly useUntilMillis: Schema.Int;
|
|
55
|
+
readonly refreshUseUntilMillis: Schema.optionalKey<Schema.Int>;
|
|
56
|
+
readonly obtainedAtMillis: Schema.Int;
|
|
57
|
+
readonly profile: Schema.optionalKey<Schema.Struct<{
|
|
58
|
+
readonly displayName: Schema.optionalKey<Schema.String>;
|
|
59
|
+
readonly handle: Schema.optionalKey<Schema.String>;
|
|
60
|
+
}>>;
|
|
61
|
+
}>;
|
|
62
|
+
}>;
|
|
63
|
+
}>;
|
|
64
|
+
readonly sealed: Schema.Struct<{
|
|
65
|
+
readonly format: Schema.Literal<"oauth-connected-xchacha20poly1305-v1">;
|
|
66
|
+
readonly keyId: Schema.String;
|
|
67
|
+
readonly nonce: Schema.String;
|
|
68
|
+
readonly ciphertext: Schema.RedactedFromValue<Schema.String>;
|
|
69
|
+
}>;
|
|
70
|
+
}>;
|
|
71
|
+
readonly claimId: Schema.brand<Schema.String, "effect-auth/OAuthClaimId">;
|
|
72
|
+
readonly claimedAtMillis: Schema.Int;
|
|
73
|
+
readonly claimExpiresAtMillis: Schema.Int;
|
|
74
|
+
}>;
|
|
75
|
+
type OAuthConnectedRevocationClaim = typeof OAuthConnectedRevocationClaim.Type;
|
|
76
|
+
declare const OAuthConnectedRevocationDecision: Schema.Union<readonly [Schema.TaggedStruct<"Claimed", {
|
|
77
|
+
readonly claim: Schema.Struct<{
|
|
78
|
+
readonly job: Schema.Struct<{
|
|
79
|
+
readonly context: Schema.Struct<{
|
|
80
|
+
readonly namespace: Schema.Literal<"effect-auth/oauth-connected-revocation-context/v1">;
|
|
81
|
+
readonly jobId: Schema.brand<Schema.String, "effect-auth/OAuthClaimId">;
|
|
82
|
+
readonly token: Schema.Struct<{
|
|
83
|
+
readonly namespace: Schema.Literal<"effect-auth/oauth-connected-token-context/v1">;
|
|
84
|
+
readonly moduleId: Schema.brand<Schema.String, "effect-auth/OAuthModuleId">;
|
|
85
|
+
readonly subjectId: Schema.brand<Schema.NonEmptyString, "effect-auth/SubjectId">;
|
|
86
|
+
readonly identity: Schema.Struct<{
|
|
87
|
+
readonly provider: Schema.brand<Schema.String, "effect-auth/OAuthProviderKey">;
|
|
88
|
+
readonly issuer: Schema.brand<Schema.String, "effect-auth/OAuthIssuer">;
|
|
89
|
+
readonly subject: Schema.NonEmptyString;
|
|
90
|
+
}>;
|
|
91
|
+
readonly configuration: Schema.Struct<{
|
|
92
|
+
readonly provider: Schema.brand<Schema.String, "effect-auth/OAuthProviderKey">;
|
|
93
|
+
readonly protocol: Schema.Literals<readonly ["oidc", "oauth"]>;
|
|
94
|
+
readonly configurationGeneration: Schema.Int;
|
|
95
|
+
readonly issuer: Schema.brand<Schema.String, "effect-auth/OAuthIssuer">;
|
|
96
|
+
readonly responseIssuerMode: Schema.Literals<readonly ["required", "unsupported"]>;
|
|
97
|
+
readonly callbackId: Schema.brand<Schema.String, "effect-auth/OAuthCallbackId">;
|
|
98
|
+
readonly redirectUri: Schema.brand<Schema.String, "effect-auth/OAuthRedirectUri">;
|
|
99
|
+
readonly profile: Schema.Struct<{
|
|
100
|
+
readonly key: Schema.brand<Schema.String, "effect-auth/OAuthPermissionProfileKey">;
|
|
101
|
+
readonly generation: Schema.Int;
|
|
102
|
+
readonly issuance: Schema.Literals<readonly ["active", "retired"]>;
|
|
103
|
+
readonly provider: Schema.brand<Schema.String, "effect-auth/OAuthProviderKey">;
|
|
104
|
+
readonly clientRegistrationId: Schema.String;
|
|
105
|
+
readonly scopes: Schema.$Array<Schema.String>;
|
|
106
|
+
readonly resources: Schema.$Array<Schema.NonEmptyString>;
|
|
107
|
+
readonly retention: Schema.Literals<readonly ["access-only", "access-and-refresh"]>;
|
|
108
|
+
readonly maximumAccessLifetimeMillis: Schema.Int;
|
|
109
|
+
readonly maximumRefreshLifetimeMillis: Schema.optionalKey<Schema.Int>;
|
|
110
|
+
readonly refreshAheadMillis: Schema.Int;
|
|
111
|
+
readonly refresh: Schema.Literals<readonly ["unsupported", "confidential", "rotating"]>;
|
|
112
|
+
readonly revocation: Schema.Literals<readonly ["unsupported", "cohort"]>;
|
|
113
|
+
}>;
|
|
114
|
+
}>;
|
|
115
|
+
readonly grantId: Schema.brand<Schema.String, "effect-auth/OAuthGrantId">;
|
|
116
|
+
readonly grantVersion: Schema.brand<Schema.NonEmptyString, "effect-auth/SecurityRevision">;
|
|
117
|
+
readonly tokenVersion: Schema.brand<Schema.NonEmptyString, "effect-auth/SecurityRevision">;
|
|
118
|
+
readonly cohortGeneration: Schema.brand<Schema.NonEmptyString, "effect-auth/SecurityRevision">;
|
|
119
|
+
readonly metadata: Schema.Struct<{
|
|
120
|
+
readonly scopes: Schema.$Array<Schema.String>;
|
|
121
|
+
readonly resources: Schema.$Array<Schema.NonEmptyString>;
|
|
122
|
+
readonly accessExpiresAtMillis: Schema.optionalKey<Schema.Int>;
|
|
123
|
+
readonly refreshExpiresAtMillis: Schema.optionalKey<Schema.Int>;
|
|
124
|
+
readonly useUntilMillis: Schema.Int;
|
|
125
|
+
readonly refreshUseUntilMillis: Schema.optionalKey<Schema.Int>;
|
|
126
|
+
readonly obtainedAtMillis: Schema.Int;
|
|
127
|
+
readonly profile: Schema.optionalKey<Schema.Struct<{
|
|
128
|
+
readonly displayName: Schema.optionalKey<Schema.String>;
|
|
129
|
+
readonly handle: Schema.optionalKey<Schema.String>;
|
|
130
|
+
}>>;
|
|
131
|
+
}>;
|
|
132
|
+
}>;
|
|
133
|
+
}>;
|
|
134
|
+
readonly sealed: Schema.Struct<{
|
|
135
|
+
readonly format: Schema.Literal<"oauth-connected-xchacha20poly1305-v1">;
|
|
136
|
+
readonly keyId: Schema.String;
|
|
137
|
+
readonly nonce: Schema.String;
|
|
138
|
+
readonly ciphertext: Schema.RedactedFromValue<Schema.String>;
|
|
139
|
+
}>;
|
|
140
|
+
}>;
|
|
141
|
+
readonly claimId: Schema.brand<Schema.String, "effect-auth/OAuthClaimId">;
|
|
142
|
+
readonly claimedAtMillis: Schema.Int;
|
|
143
|
+
readonly claimExpiresAtMillis: Schema.Int;
|
|
144
|
+
}>;
|
|
145
|
+
}>, Schema.TaggedStruct<"Empty", {}>]>;
|
|
146
|
+
declare const OAuthConnectedRevocations_base: Context.ServiceClass<OAuthConnectedRevocations, "effect-auth/OAuthConnectedRevocations", {
|
|
147
|
+
readonly claim: <A>(input: {
|
|
148
|
+
readonly moduleId: typeof OAuthModuleId.Type;
|
|
149
|
+
readonly claimId: typeof OAuthClaimId.Type;
|
|
150
|
+
readonly lifetimeMillis: number;
|
|
151
|
+
}, prepare: PrepareOAuthCommit<typeof OAuthConnectedRevocationDecision.Type, A>) => Effect.Effect<PreparedCommit<A>, OAuthUnavailable>;
|
|
152
|
+
readonly settle: <A>(input: {
|
|
153
|
+
readonly claim: OAuthConnectedRevocationClaim;
|
|
154
|
+
readonly outcome: "Confirmed" | "Unknown";
|
|
155
|
+
}, prepare: PrepareOAuthCommit<{
|
|
156
|
+
readonly settled: boolean;
|
|
157
|
+
}, A>) => Effect.Effect<PreparedCommit<A>, OAuthUnavailable>;
|
|
158
|
+
}>;
|
|
159
|
+
/** Optional durable revocation authority sharing Disconnect's physical store.
|
|
160
|
+
* Claimed attempts never overlap by expired takeover. Retry only under explicit
|
|
161
|
+
* provider quiescence/idempotency semantics; Unknown/timeout cannot clear barriers.
|
|
162
|
+
* Cohort identity/order survives module/profile/secret rotation and queue cleanup.
|
|
163
|
+
* Confirmed job alone cannot clear outstanding refresh or earlier ambiguous work. */
|
|
164
|
+
declare class OAuthConnectedRevocations extends OAuthConnectedRevocations_base {}
|
|
165
|
+
//#endregion
|
|
166
|
+
export { OAuthConnectedRevocationClaim, OAuthConnectedRevocationDecision, OAuthConnectedRevocations };
|
|
167
|
+
//# sourceMappingURL=OAuthConnectedRevocations.d.mts.map
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { OAuthClaimId, OAuthInstant } from "./signInModels.mjs";
|
|
2
|
+
import { OAuthConnectedRevocationJob } from "./connectedModels.mjs";
|
|
3
|
+
import { Context, Schema } from "effect";
|
|
4
|
+
//#region src/oauth/OAuthConnectedRevocations.ts
|
|
5
|
+
const OAuthConnectedRevocationClaim = Schema.Struct({
|
|
6
|
+
job: OAuthConnectedRevocationJob,
|
|
7
|
+
claimId: OAuthClaimId,
|
|
8
|
+
claimedAtMillis: OAuthInstant,
|
|
9
|
+
claimExpiresAtMillis: OAuthInstant
|
|
10
|
+
});
|
|
11
|
+
const OAuthConnectedRevocationDecision = Schema.Union([Schema.TaggedStruct("Claimed", { claim: OAuthConnectedRevocationClaim }), Schema.TaggedStruct("Empty", {})]);
|
|
12
|
+
/** Optional durable revocation authority sharing Disconnect's physical store.
|
|
13
|
+
* Claimed attempts never overlap by expired takeover. Retry only under explicit
|
|
14
|
+
* provider quiescence/idempotency semantics; Unknown/timeout cannot clear barriers.
|
|
15
|
+
* Cohort identity/order survives module/profile/secret rotation and queue cleanup.
|
|
16
|
+
* Confirmed job alone cannot clear outstanding refresh or earlier ambiguous work. */
|
|
17
|
+
var OAuthConnectedRevocations = class extends Context.Service()("effect-auth/OAuthConnectedRevocations") {};
|
|
18
|
+
//#endregion
|
|
19
|
+
export { OAuthConnectedRevocationClaim, OAuthConnectedRevocationDecision, OAuthConnectedRevocations };
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=OAuthConnectedRevocations.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OAuthConnectedRevocations.mjs","names":[],"sources":["../../src/oauth/OAuthConnectedRevocations.ts"],"sourcesContent":["import { Context, type Effect, Schema } from \"effect\";\n\nimport type { PreparedCommit } from \"../hooks/commit\";\nimport { OAuthConnectedRevocationJob } from \"./connectedModels\";\nimport type { PrepareOAuthCommit } from \"./OAuthSignInPersistence\";\nimport type { OAuthUnavailable } from \"./signInErrors\";\nimport type { OAuthModuleId } from \"./signInModels\";\nimport { OAuthClaimId, OAuthInstant } from \"./signInModels\";\n\nexport const OAuthConnectedRevocationClaim = Schema.Struct({\n job: OAuthConnectedRevocationJob,\n claimId: OAuthClaimId,\n claimedAtMillis: OAuthInstant,\n claimExpiresAtMillis: OAuthInstant,\n});\n\nexport type OAuthConnectedRevocationClaim = typeof OAuthConnectedRevocationClaim.Type;\n\nexport const OAuthConnectedRevocationDecision = Schema.Union([\n Schema.TaggedStruct(\"Claimed\", { claim: OAuthConnectedRevocationClaim }),\n Schema.TaggedStruct(\"Empty\", {}),\n]);\n\n/** Optional durable revocation authority sharing Disconnect's physical store.\n * Claimed attempts never overlap by expired takeover. Retry only under explicit\n * provider quiescence/idempotency semantics; Unknown/timeout cannot clear barriers.\n * Cohort identity/order survives module/profile/secret rotation and queue cleanup.\n * Confirmed job alone cannot clear outstanding refresh or earlier ambiguous work. */\nexport class OAuthConnectedRevocations extends Context.Service<\n OAuthConnectedRevocations,\n {\n readonly claim: <A>(\n input: {\n readonly moduleId: typeof OAuthModuleId.Type;\n readonly claimId: typeof OAuthClaimId.Type;\n readonly lifetimeMillis: number;\n },\n prepare: PrepareOAuthCommit<typeof OAuthConnectedRevocationDecision.Type, A>,\n ) => Effect.Effect<PreparedCommit<A>, OAuthUnavailable>;\n readonly settle: <A>(\n input: {\n readonly claim: OAuthConnectedRevocationClaim;\n readonly outcome: \"Confirmed\" | \"Unknown\";\n },\n prepare: PrepareOAuthCommit<{ readonly settled: boolean }, A>,\n ) => Effect.Effect<PreparedCommit<A>, OAuthUnavailable>;\n }\n>()(\"effect-auth/OAuthConnectedRevocations\") {}\n"],"mappings":";;;;AASA,MAAa,gCAAgC,OAAO,OAAO;CACzD,KAAK;CACL,SAAS;CACT,iBAAiB;CACjB,sBAAsB;AACxB,CAAC;AAID,MAAa,mCAAmC,OAAO,MAAM,CAC3D,OAAO,aAAa,WAAW,EAAE,OAAO,8BAA8B,CAAC,GACvE,OAAO,aAAa,SAAS,CAAC,CAAC,CACjC,CAAC;;;;;;AAOD,IAAa,4BAAb,cAA+C,QAAQ,QAmBrD,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { OAuthConfigurationError, OAuthUnavailable } from "./signInErrors.mjs";
|
|
2
|
+
import { OAuthConnectedProtectionContext, OAuthConnectedSealedTokens, OAuthConnectedTokenMaterial } from "./connectedModels.mjs";
|
|
3
|
+
import { OAuthTransactionKeyring } from "./transactionEncryption.mjs";
|
|
4
|
+
import { Context, Crypto, Effect, Layer } from "effect";
|
|
5
|
+
//#region src/oauth/OAuthConnectedTokenProtector.d.ts
|
|
6
|
+
type OAuthConnectedTokenKeyring = OAuthTransactionKeyring;
|
|
7
|
+
declare const OAuthConnectedTokenProtector_base: Context.ServiceClass<OAuthConnectedTokenProtector, "effect-auth/OAuthConnectedTokenProtector", {
|
|
8
|
+
readonly seal: (input: {
|
|
9
|
+
readonly context: OAuthConnectedProtectionContext;
|
|
10
|
+
readonly material: OAuthConnectedTokenMaterial;
|
|
11
|
+
}) => Effect.Effect<OAuthConnectedSealedTokens, OAuthUnavailable>;
|
|
12
|
+
readonly open: (input: {
|
|
13
|
+
readonly context: OAuthConnectedProtectionContext;
|
|
14
|
+
readonly sealed: OAuthConnectedSealedTokens;
|
|
15
|
+
}) => Effect.Effect<OAuthConnectedTokenMaterial, OAuthUnavailable>;
|
|
16
|
+
}>;
|
|
17
|
+
/** Explicit encrypted long-lived tokens; dedicated key retention covers all live
|
|
18
|
+
* grants and unresolved refresh/revocation work. Fixed typed AAD, no raw context. */
|
|
19
|
+
declare class OAuthConnectedTokenProtector extends OAuthConnectedTokenProtector_base {
|
|
20
|
+
static readonly xchacha20poly1305: (keyring: OAuthConnectedTokenKeyring) => Layer.Layer<OAuthConnectedTokenProtector, OAuthConfigurationError, Crypto.Crypto>;
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
23
|
+
export { OAuthConnectedTokenKeyring, OAuthConnectedTokenProtector };
|
|
24
|
+
//# sourceMappingURL=OAuthConnectedTokenProtector.d.mts.map
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
import { OAuthEncryptionKeyId } from "./signInModels.mjs";
|
|
2
|
+
import { OAuthConfigurationError, OAuthUnavailable } from "./signInErrors.mjs";
|
|
3
|
+
import { snapshotOAuthSync } from "./signInSnapshot.mjs";
|
|
4
|
+
import { OAuthConnectedProtectionContext, OAuthConnectedSealedTokens, OAuthConnectedTokenMaterial } from "./connectedModels.mjs";
|
|
5
|
+
import { Context, Crypto, Effect, Encoding, Layer, Redacted, Result, Schema } from "effect";
|
|
6
|
+
import { xchacha20poly1305 } from "@noble/ciphers/chacha.js";
|
|
7
|
+
//#region src/oauth/OAuthConnectedTokenProtector.ts
|
|
8
|
+
const keyringSchema = Schema.Struct({
|
|
9
|
+
activeKeyId: OAuthEncryptionKeyId,
|
|
10
|
+
keys: Schema.Array(Schema.Struct({
|
|
11
|
+
id: OAuthEncryptionKeyId,
|
|
12
|
+
material: Schema.Redacted(Schema.String.check(Schema.isPattern(/^[A-Za-z0-9_-]{43}$/)))
|
|
13
|
+
})).check(Schema.isMinLength(1), Schema.isMaxLength(8))
|
|
14
|
+
});
|
|
15
|
+
const materialCodec = Schema.fromJsonString(OAuthConnectedTokenMaterial);
|
|
16
|
+
const contextCodec = Schema.fromJsonString(Schema.Tuple([
|
|
17
|
+
Schema.Literal("effect-auth/oauth-connected-token-aead/v1"),
|
|
18
|
+
OAuthConnectedSealedTokens.fields.format,
|
|
19
|
+
OAuthEncryptionKeyId,
|
|
20
|
+
OAuthConnectedProtectionContext
|
|
21
|
+
]));
|
|
22
|
+
const encoder = new TextEncoder();
|
|
23
|
+
const decode = (value, maximum, exact) => {
|
|
24
|
+
if (value.length > Math.ceil(maximum * 4 / 3) || value.length % 4 === 1 || !/^[A-Za-z0-9_-]+$/.test(value)) throw OAuthUnavailable.make({});
|
|
25
|
+
const bytes = Result.getOrUndefined(Encoding.decodeBase64Url(value));
|
|
26
|
+
if (!bytes || bytes.length > maximum || exact !== void 0 && bytes.length !== exact || Encoding.encodeBase64Url(bytes) !== value) {
|
|
27
|
+
bytes?.fill(0);
|
|
28
|
+
throw OAuthUnavailable.make({});
|
|
29
|
+
}
|
|
30
|
+
return bytes;
|
|
31
|
+
};
|
|
32
|
+
const validate = (context, input) => {
|
|
33
|
+
const material = snapshotOAuthSync(OAuthConnectedTokenMaterial, input);
|
|
34
|
+
const token = context.namespace === "effect-auth/oauth-connected-token-context/v1" ? context : context.token;
|
|
35
|
+
if (token.configuration.protocol === "oidc" !== (material.continuation._tag === "Oidc") || token.configuration.profile.retention === "access-only" && material.refreshToken !== void 0) throw OAuthUnavailable.make({});
|
|
36
|
+
return material;
|
|
37
|
+
};
|
|
38
|
+
const aad = (context, keyId) => {
|
|
39
|
+
const json = Schema.encodeSync(contextCodec)([
|
|
40
|
+
"effect-auth/oauth-connected-token-aead/v1",
|
|
41
|
+
"oauth-connected-xchacha20poly1305-v1",
|
|
42
|
+
keyId,
|
|
43
|
+
context
|
|
44
|
+
]);
|
|
45
|
+
if (json.length > 262144) throw OAuthUnavailable.make({});
|
|
46
|
+
const bytes = encoder.encode(json);
|
|
47
|
+
if (bytes.length > 262144) {
|
|
48
|
+
bytes.fill(0);
|
|
49
|
+
throw OAuthUnavailable.make({});
|
|
50
|
+
}
|
|
51
|
+
return bytes;
|
|
52
|
+
};
|
|
53
|
+
const make = (keyring) => {
|
|
54
|
+
let captured;
|
|
55
|
+
try {
|
|
56
|
+
captured = snapshotOAuthSync(keyringSchema, keyring);
|
|
57
|
+
} catch {}
|
|
58
|
+
return Effect.gen(function* () {
|
|
59
|
+
if (!captured) return yield* OAuthConfigurationError.make({ reason: "keyring" });
|
|
60
|
+
const configuration = captured;
|
|
61
|
+
const { randomBytes } = yield* Crypto.Crypto;
|
|
62
|
+
const keys = yield* Effect.try({
|
|
63
|
+
try: () => {
|
|
64
|
+
const map = /* @__PURE__ */ new Map();
|
|
65
|
+
try {
|
|
66
|
+
for (const key of configuration.keys) {
|
|
67
|
+
if (map.has(key.id)) throw OAuthUnavailable.make({});
|
|
68
|
+
map.set(key.id, decode(Redacted.value(key.material), 32, 32));
|
|
69
|
+
}
|
|
70
|
+
if (!map.has(configuration.activeKeyId)) throw OAuthUnavailable.make({});
|
|
71
|
+
return map;
|
|
72
|
+
} catch (error) {
|
|
73
|
+
for (const key of map.values()) key.fill(0);
|
|
74
|
+
throw error;
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
catch: () => OAuthConfigurationError.make({ reason: "keyring" })
|
|
78
|
+
});
|
|
79
|
+
return {
|
|
80
|
+
seal: Effect.fn("OAuthConnectedTokenProtector.seal")(function* (input) {
|
|
81
|
+
const retained = yield* Effect.try({
|
|
82
|
+
try: () => {
|
|
83
|
+
const context = snapshotOAuthSync(OAuthConnectedProtectionContext, input.context);
|
|
84
|
+
return {
|
|
85
|
+
context,
|
|
86
|
+
material: validate(context, input.material)
|
|
87
|
+
};
|
|
88
|
+
},
|
|
89
|
+
catch: () => OAuthUnavailable.make({})
|
|
90
|
+
});
|
|
91
|
+
const nonce = yield* randomBytes(24).pipe(Effect.mapError(() => OAuthUnavailable.make({})));
|
|
92
|
+
return yield* Effect.try({
|
|
93
|
+
try: () => {
|
|
94
|
+
let plaintext, ciphertext, associated;
|
|
95
|
+
try {
|
|
96
|
+
plaintext = encoder.encode(Schema.encodeSync(materialCodec)(retained.material));
|
|
97
|
+
associated = aad(retained.context, configuration.activeKeyId);
|
|
98
|
+
if (plaintext.length > 98304 || nonce.length !== 24) throw OAuthUnavailable.make({});
|
|
99
|
+
ciphertext = xchacha20poly1305(keys.get(configuration.activeKeyId), nonce, associated).encrypt(plaintext);
|
|
100
|
+
return snapshotOAuthSync(OAuthConnectedSealedTokens, {
|
|
101
|
+
format: "oauth-connected-xchacha20poly1305-v1",
|
|
102
|
+
keyId: configuration.activeKeyId,
|
|
103
|
+
nonce: Encoding.encodeBase64Url(nonce),
|
|
104
|
+
ciphertext: Redacted.make(Encoding.encodeBase64Url(ciphertext))
|
|
105
|
+
});
|
|
106
|
+
} finally {
|
|
107
|
+
plaintext?.fill(0);
|
|
108
|
+
ciphertext?.fill(0);
|
|
109
|
+
associated?.fill(0);
|
|
110
|
+
nonce.fill(0);
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
catch: () => OAuthUnavailable.make({})
|
|
114
|
+
});
|
|
115
|
+
}),
|
|
116
|
+
open: Effect.fn("OAuthConnectedTokenProtector.open")((input) => Effect.try({
|
|
117
|
+
try: () => {
|
|
118
|
+
const context = snapshotOAuthSync(OAuthConnectedProtectionContext, input.context);
|
|
119
|
+
const sealed = snapshotOAuthSync(OAuthConnectedSealedTokens, input.sealed);
|
|
120
|
+
const key = keys.get(sealed.keyId);
|
|
121
|
+
if (!key) throw OAuthUnavailable.make({});
|
|
122
|
+
let nonce, ciphertext, plaintext, associated;
|
|
123
|
+
try {
|
|
124
|
+
nonce = decode(sealed.nonce, 24, 24);
|
|
125
|
+
ciphertext = decode(Redacted.value(sealed.ciphertext), 98320);
|
|
126
|
+
associated = aad(context, sealed.keyId);
|
|
127
|
+
plaintext = xchacha20poly1305(key, nonce, associated).decrypt(ciphertext);
|
|
128
|
+
if (plaintext.length > 98304) throw OAuthUnavailable.make({});
|
|
129
|
+
const json = new TextDecoder("utf-8", { fatal: true }).decode(plaintext);
|
|
130
|
+
const material = Schema.decodeSync(materialCodec)(json);
|
|
131
|
+
if (Schema.encodeSync(materialCodec)(material) !== json) throw OAuthUnavailable.make({});
|
|
132
|
+
return validate(context, material);
|
|
133
|
+
} finally {
|
|
134
|
+
nonce?.fill(0);
|
|
135
|
+
ciphertext?.fill(0);
|
|
136
|
+
plaintext?.fill(0);
|
|
137
|
+
associated?.fill(0);
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
catch: () => OAuthUnavailable.make({})
|
|
141
|
+
}))
|
|
142
|
+
};
|
|
143
|
+
});
|
|
144
|
+
};
|
|
145
|
+
/** Explicit encrypted long-lived tokens; dedicated key retention covers all live
|
|
146
|
+
* grants and unresolved refresh/revocation work. Fixed typed AAD, no raw context. */
|
|
147
|
+
var OAuthConnectedTokenProtector = class extends Context.Service()("effect-auth/OAuthConnectedTokenProtector") {
|
|
148
|
+
static xchacha20poly1305 = (keyring) => Layer.effect(this, make(keyring));
|
|
149
|
+
};
|
|
150
|
+
//#endregion
|
|
151
|
+
export { OAuthConnectedTokenProtector };
|
|
152
|
+
|
|
153
|
+
//# sourceMappingURL=OAuthConnectedTokenProtector.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OAuthConnectedTokenProtector.mjs","names":[],"sources":["../../src/oauth/OAuthConnectedTokenProtector.ts"],"sourcesContent":["// oxlint-disable-next-line import/extensions -- Noble exposes only its explicit .js subpath.\nimport { xchacha20poly1305 } from \"@noble/ciphers/chacha.js\";\nimport { Context, Crypto, Effect, Encoding, Layer, Redacted, Result, Schema } from \"effect\";\n\nimport {\n OAuthConnectedProtectionContext,\n OAuthConnectedSealedTokens,\n OAuthConnectedTokenMaterial,\n} from \"./connectedModels\";\nimport { OAuthConfigurationError, OAuthUnavailable } from \"./signInErrors\";\nimport { OAuthEncryptionKeyId } from \"./signInModels\";\nimport { snapshotOAuthSync } from \"./signInSnapshot\";\nimport type { OAuthTransactionKeyring } from \"./transactionEncryption\";\n\nexport type OAuthConnectedTokenKeyring = OAuthTransactionKeyring;\n\nconst keyringSchema = Schema.Struct({\n activeKeyId: OAuthEncryptionKeyId,\n keys: Schema.Array(\n Schema.Struct({\n id: OAuthEncryptionKeyId,\n material: Schema.Redacted(Schema.String.check(Schema.isPattern(/^[A-Za-z0-9_-]{43}$/))),\n }),\n ).check(Schema.isMinLength(1), Schema.isMaxLength(8)),\n});\n\nconst materialCodec = Schema.fromJsonString(OAuthConnectedTokenMaterial);\n\nconst contextCodec = Schema.fromJsonString(\n Schema.Tuple([\n Schema.Literal(\"effect-auth/oauth-connected-token-aead/v1\"),\n OAuthConnectedSealedTokens.fields.format,\n OAuthEncryptionKeyId,\n OAuthConnectedProtectionContext,\n ]),\n);\n\nconst encoder = new TextEncoder();\n\nconst decode = (value: string, maximum: number, exact?: number) => {\n if (\n value.length > Math.ceil((maximum * 4) / 3) ||\n value.length % 4 === 1 ||\n !/^[A-Za-z0-9_-]+$/.test(value)\n )\n throw OAuthUnavailable.make({});\n const bytes = Result.getOrUndefined(Encoding.decodeBase64Url(value));\n\n if (\n !bytes ||\n bytes.length > maximum ||\n (exact !== undefined && bytes.length !== exact) ||\n Encoding.encodeBase64Url(bytes) !== value\n ) {\n bytes?.fill(0);\n throw OAuthUnavailable.make({});\n }\n\n return bytes;\n};\n\nconst validate = (context: OAuthConnectedProtectionContext, input: OAuthConnectedTokenMaterial) => {\n const material = snapshotOAuthSync(OAuthConnectedTokenMaterial, input);\n\n const token =\n context.namespace === \"effect-auth/oauth-connected-token-context/v1\" ? context : context.token;\n\n if (\n (token.configuration.protocol === \"oidc\") !== (material.continuation._tag === \"Oidc\") ||\n (token.configuration.profile.retention === \"access-only\" && material.refreshToken !== undefined)\n )\n throw OAuthUnavailable.make({});\n\n return material;\n};\n\nconst aad = (context: OAuthConnectedProtectionContext, keyId: string) => {\n const json = Schema.encodeSync(contextCodec)([\n \"effect-auth/oauth-connected-token-aead/v1\",\n \"oauth-connected-xchacha20poly1305-v1\",\n keyId,\n context,\n ]);\n\n if (json.length > 262144) throw OAuthUnavailable.make({});\n const bytes = encoder.encode(json);\n\n if (bytes.length > 262144) {\n bytes.fill(0);\n throw OAuthUnavailable.make({});\n }\n\n return bytes;\n};\n\nconst make = (keyring: OAuthConnectedTokenKeyring) => {\n let captured: typeof keyringSchema.Type | undefined;\n\n try {\n captured = snapshotOAuthSync(keyringSchema, keyring);\n } catch {\n /* Layer validates. */\n }\n\n return Effect.gen(function* () {\n if (!captured) return yield* OAuthConfigurationError.make({ reason: \"keyring\" });\n const configuration = captured;\n const { randomBytes } = yield* Crypto.Crypto;\n\n const keys = yield* Effect.try({\n try: () => {\n const map = new Map<string, Uint8Array>();\n\n try {\n for (const key of configuration.keys) {\n if (map.has(key.id)) throw OAuthUnavailable.make({});\n map.set(key.id, decode(Redacted.value(key.material), 32, 32));\n }\n if (!map.has(configuration.activeKeyId)) throw OAuthUnavailable.make({});\n\n return map;\n } catch (error) {\n for (const key of map.values()) key.fill(0);\n throw error;\n }\n },\n catch: () => OAuthConfigurationError.make({ reason: \"keyring\" }),\n });\n\n return {\n seal: Effect.fn(\"OAuthConnectedTokenProtector.seal\")(function* (input: {\n readonly context: OAuthConnectedProtectionContext;\n readonly material: OAuthConnectedTokenMaterial;\n }) {\n const retained = yield* Effect.try({\n try: () => {\n const context = snapshotOAuthSync(OAuthConnectedProtectionContext, input.context);\n\n return { context, material: validate(context, input.material) };\n },\n catch: () => OAuthUnavailable.make({}),\n });\n\n const nonce = yield* randomBytes(24).pipe(Effect.mapError(() => OAuthUnavailable.make({})));\n\n return yield* Effect.try({\n try: () => {\n let plaintext: Uint8Array | undefined,\n ciphertext: Uint8Array | undefined,\n associated: Uint8Array | undefined;\n\n try {\n plaintext = encoder.encode(Schema.encodeSync(materialCodec)(retained.material));\n associated = aad(retained.context, configuration.activeKeyId);\n if (plaintext.length > 98304 || nonce.length !== 24) throw OAuthUnavailable.make({});\n ciphertext = xchacha20poly1305(\n keys.get(configuration.activeKeyId)!,\n nonce,\n associated,\n ).encrypt(plaintext);\n\n return snapshotOAuthSync(OAuthConnectedSealedTokens, {\n format: \"oauth-connected-xchacha20poly1305-v1\",\n keyId: configuration.activeKeyId,\n nonce: Encoding.encodeBase64Url(nonce),\n ciphertext: Redacted.make(Encoding.encodeBase64Url(ciphertext)),\n });\n } finally {\n plaintext?.fill(0);\n ciphertext?.fill(0);\n associated?.fill(0);\n nonce.fill(0);\n }\n },\n catch: () => OAuthUnavailable.make({}),\n });\n }),\n open: Effect.fn(\"OAuthConnectedTokenProtector.open\")(\n (input: {\n readonly context: OAuthConnectedProtectionContext;\n readonly sealed: OAuthConnectedSealedTokens;\n }) =>\n Effect.try({\n try: () => {\n const context = snapshotOAuthSync(OAuthConnectedProtectionContext, input.context);\n const sealed = snapshotOAuthSync(OAuthConnectedSealedTokens, input.sealed);\n const key = keys.get(sealed.keyId);\n\n if (!key) throw OAuthUnavailable.make({});\n\n let nonce: Uint8Array | undefined,\n ciphertext: Uint8Array | undefined,\n plaintext: Uint8Array | undefined,\n associated: Uint8Array | undefined;\n\n try {\n nonce = decode(sealed.nonce, 24, 24);\n ciphertext = decode(Redacted.value(sealed.ciphertext), 98320);\n associated = aad(context, sealed.keyId);\n plaintext = xchacha20poly1305(key, nonce, associated).decrypt(ciphertext);\n if (plaintext.length > 98304) throw OAuthUnavailable.make({});\n const json = new TextDecoder(\"utf-8\", { fatal: true }).decode(plaintext);\n const material = Schema.decodeSync(materialCodec)(json);\n\n if (Schema.encodeSync(materialCodec)(material) !== json)\n throw OAuthUnavailable.make({});\n\n return validate(context, material);\n } finally {\n nonce?.fill(0);\n ciphertext?.fill(0);\n plaintext?.fill(0);\n associated?.fill(0);\n }\n },\n catch: () => OAuthUnavailable.make({}),\n }),\n ),\n };\n });\n};\n\n/** Explicit encrypted long-lived tokens; dedicated key retention covers all live\n * grants and unresolved refresh/revocation work. Fixed typed AAD, no raw context. */\nexport class OAuthConnectedTokenProtector extends Context.Service<\n OAuthConnectedTokenProtector,\n {\n readonly seal: (input: {\n readonly context: OAuthConnectedProtectionContext;\n readonly material: OAuthConnectedTokenMaterial;\n }) => Effect.Effect<OAuthConnectedSealedTokens, OAuthUnavailable>;\n readonly open: (input: {\n readonly context: OAuthConnectedProtectionContext;\n readonly sealed: OAuthConnectedSealedTokens;\n }) => Effect.Effect<OAuthConnectedTokenMaterial, OAuthUnavailable>;\n }\n>()(\"effect-auth/OAuthConnectedTokenProtector\") {\n static readonly xchacha20poly1305 = (keyring: OAuthConnectedTokenKeyring) =>\n Layer.effect(this, make(keyring));\n}\n"],"mappings":";;;;;;;AAgBA,MAAM,gBAAgB,OAAO,OAAO;CAClC,aAAa;CACb,MAAM,OAAO,MACX,OAAO,OAAO;EACZ,IAAI;EACJ,UAAU,OAAO,SAAS,OAAO,OAAO,MAAM,OAAO,UAAU,qBAAqB,CAAC,CAAC;CACxF,CAAC,CACH,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,GAAG,OAAO,YAAY,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,gBAAgB,OAAO,eAAe,2BAA2B;AAEvE,MAAM,eAAe,OAAO,eAC1B,OAAO,MAAM;CACX,OAAO,QAAQ,2CAA2C;CAC1D,2BAA2B,OAAO;CAClC;CACA;AACF,CAAC,CACH;AAEA,MAAM,UAAU,IAAI,YAAY;AAEhC,MAAM,UAAU,OAAe,SAAiB,UAAmB;CACjE,IACE,MAAM,SAAS,KAAK,KAAM,UAAU,IAAK,CAAC,KAC1C,MAAM,SAAS,MAAM,KACrB,CAAC,mBAAmB,KAAK,KAAK,GAE9B,MAAM,iBAAiB,KAAK,CAAC,CAAC;CAChC,MAAM,QAAQ,OAAO,eAAe,SAAS,gBAAgB,KAAK,CAAC;CAEnE,IACE,CAAC,SACD,MAAM,SAAS,WACd,UAAU,KAAA,KAAa,MAAM,WAAW,SACzC,SAAS,gBAAgB,KAAK,MAAM,OACpC;EACA,OAAO,KAAK,CAAC;EACb,MAAM,iBAAiB,KAAK,CAAC,CAAC;CAChC;CAEA,OAAO;AACT;AAEA,MAAM,YAAY,SAA0C,UAAuC;CACjG,MAAM,WAAW,kBAAkB,6BAA6B,KAAK;CAErE,MAAM,QACJ,QAAQ,cAAc,iDAAiD,UAAU,QAAQ;CAE3F,IACG,MAAM,cAAc,aAAa,YAAa,SAAS,aAAa,SAAS,WAC7E,MAAM,cAAc,QAAQ,cAAc,iBAAiB,SAAS,iBAAiB,KAAA,GAEtF,MAAM,iBAAiB,KAAK,CAAC,CAAC;CAEhC,OAAO;AACT;AAEA,MAAM,OAAO,SAA0C,UAAkB;CACvE,MAAM,OAAO,OAAO,WAAW,YAAY,CAAC,CAAC;EAC3C;EACA;EACA;EACA;CACF,CAAC;CAED,IAAI,KAAK,SAAS,QAAQ,MAAM,iBAAiB,KAAK,CAAC,CAAC;CACxD,MAAM,QAAQ,QAAQ,OAAO,IAAI;CAEjC,IAAI,MAAM,SAAS,QAAQ;EACzB,MAAM,KAAK,CAAC;EACZ,MAAM,iBAAiB,KAAK,CAAC,CAAC;CAChC;CAEA,OAAO;AACT;AAEA,MAAM,QAAQ,YAAwC;CACpD,IAAI;CAEJ,IAAI;EACF,WAAW,kBAAkB,eAAe,OAAO;CACrD,QAAQ,CAER;CAEA,OAAO,OAAO,IAAI,aAAa;EAC7B,IAAI,CAAC,UAAU,OAAO,OAAO,wBAAwB,KAAK,EAAE,QAAQ,UAAU,CAAC;EAC/E,MAAM,gBAAgB;EACtB,MAAM,EAAE,gBAAgB,OAAO,OAAO;EAEtC,MAAM,OAAO,OAAO,OAAO,IAAI;GAC7B,WAAW;IACT,MAAM,sBAAM,IAAI,IAAwB;IAExC,IAAI;KACF,KAAK,MAAM,OAAO,cAAc,MAAM;MACpC,IAAI,IAAI,IAAI,IAAI,EAAE,GAAG,MAAM,iBAAiB,KAAK,CAAC,CAAC;MACnD,IAAI,IAAI,IAAI,IAAI,OAAO,SAAS,MAAM,IAAI,QAAQ,GAAG,IAAI,EAAE,CAAC;KAC9D;KACA,IAAI,CAAC,IAAI,IAAI,cAAc,WAAW,GAAG,MAAM,iBAAiB,KAAK,CAAC,CAAC;KAEvE,OAAO;IACT,SAAS,OAAO;KACd,KAAK,MAAM,OAAO,IAAI,OAAO,GAAG,IAAI,KAAK,CAAC;KAC1C,MAAM;IACR;GACF;GACA,aAAa,wBAAwB,KAAK,EAAE,QAAQ,UAAU,CAAC;EACjE,CAAC;EAED,OAAO;GACL,MAAM,OAAO,GAAG,mCAAmC,CAAC,CAAC,WAAW,OAG7D;IACD,MAAM,WAAW,OAAO,OAAO,IAAI;KACjC,WAAW;MACT,MAAM,UAAU,kBAAkB,iCAAiC,MAAM,OAAO;MAEhF,OAAO;OAAE;OAAS,UAAU,SAAS,SAAS,MAAM,QAAQ;MAAE;KAChE;KACA,aAAa,iBAAiB,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,QAAQ,OAAO,YAAY,EAAE,CAAC,CAAC,KAAK,OAAO,eAAe,iBAAiB,KAAK,CAAC,CAAC,CAAC,CAAC;IAE1F,OAAO,OAAO,OAAO,IAAI;KACvB,WAAW;MACT,IAAI,WACF,YACA;MAEF,IAAI;OACF,YAAY,QAAQ,OAAO,OAAO,WAAW,aAAa,CAAC,CAAC,SAAS,QAAQ,CAAC;OAC9E,aAAa,IAAI,SAAS,SAAS,cAAc,WAAW;OAC5D,IAAI,UAAU,SAAS,SAAS,MAAM,WAAW,IAAI,MAAM,iBAAiB,KAAK,CAAC,CAAC;OACnF,aAAa,kBACX,KAAK,IAAI,cAAc,WAAW,GAClC,OACA,UACF,CAAC,CAAC,QAAQ,SAAS;OAEnB,OAAO,kBAAkB,4BAA4B;QACnD,QAAQ;QACR,OAAO,cAAc;QACrB,OAAO,SAAS,gBAAgB,KAAK;QACrC,YAAY,SAAS,KAAK,SAAS,gBAAgB,UAAU,CAAC;OAChE,CAAC;MACH,UAAU;OACR,WAAW,KAAK,CAAC;OACjB,YAAY,KAAK,CAAC;OAClB,YAAY,KAAK,CAAC;OAClB,MAAM,KAAK,CAAC;MACd;KACF;KACA,aAAa,iBAAiB,KAAK,CAAC,CAAC;IACvC,CAAC;GACH,CAAC;GACD,MAAM,OAAO,GAAG,mCAAmC,CAAC,EACjD,UAIC,OAAO,IAAI;IACT,WAAW;KACT,MAAM,UAAU,kBAAkB,iCAAiC,MAAM,OAAO;KAChF,MAAM,SAAS,kBAAkB,4BAA4B,MAAM,MAAM;KACzE,MAAM,MAAM,KAAK,IAAI,OAAO,KAAK;KAEjC,IAAI,CAAC,KAAK,MAAM,iBAAiB,KAAK,CAAC,CAAC;KAExC,IAAI,OACF,YACA,WACA;KAEF,IAAI;MACF,QAAQ,OAAO,OAAO,OAAO,IAAI,EAAE;MACnC,aAAa,OAAO,SAAS,MAAM,OAAO,UAAU,GAAG,KAAK;MAC5D,aAAa,IAAI,SAAS,OAAO,KAAK;MACtC,YAAY,kBAAkB,KAAK,OAAO,UAAU,CAAC,CAAC,QAAQ,UAAU;MACxE,IAAI,UAAU,SAAS,OAAO,MAAM,iBAAiB,KAAK,CAAC,CAAC;MAC5D,MAAM,OAAO,IAAI,YAAY,SAAS,EAAE,OAAO,KAAK,CAAC,CAAC,CAAC,OAAO,SAAS;MACvE,MAAM,WAAW,OAAO,WAAW,aAAa,CAAC,CAAC,IAAI;MAEtD,IAAI,OAAO,WAAW,aAAa,CAAC,CAAC,QAAQ,MAAM,MACjD,MAAM,iBAAiB,KAAK,CAAC,CAAC;MAEhC,OAAO,SAAS,SAAS,QAAQ;KACnC,UAAU;MACR,OAAO,KAAK,CAAC;MACb,YAAY,KAAK,CAAC;MAClB,WAAW,KAAK,CAAC;MACjB,YAAY,KAAK,CAAC;KACpB;IACF;IACA,aAAa,iBAAiB,KAAK,CAAC,CAAC;GACvC,CAAC,CACL;EACF;CACF,CAAC;AACH;;;AAIA,IAAa,+BAAb,cAAkD,QAAQ,QAYxD,CAAC,CAAC,0CAA0C,CAAC,CAAC;CAC9C,OAAgB,qBAAqB,YACnC,MAAM,OAAO,MAAM,KAAK,OAAO,CAAC;AACpC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { OAuthConfigurationError, OAuthUnavailable } from "./signInErrors.mjs";
|
|
2
|
+
import { OAuthSealedTransaction, OAuthTransactionSecrets } from "./signInModels.mjs";
|
|
3
|
+
import { OAuthConnectedTransactionContext } from "./connectedModels.mjs";
|
|
4
|
+
import { OAuthTransactionKeyring } from "./transactionEncryption.mjs";
|
|
5
|
+
import { Context, Effect, Layer } from "effect";
|
|
6
|
+
//#region src/oauth/OAuthConnectedTransactionProtector.d.ts
|
|
7
|
+
declare const OAuthConnectedTransactionProtector_base: Context.ServiceClass<OAuthConnectedTransactionProtector, "effect-auth/OAuthConnectedTransactionProtector", {
|
|
8
|
+
readonly seal: (input: {
|
|
9
|
+
readonly context: OAuthConnectedTransactionContext;
|
|
10
|
+
readonly secrets: OAuthTransactionSecrets;
|
|
11
|
+
}) => Effect.Effect<OAuthSealedTransaction, OAuthUnavailable>;
|
|
12
|
+
readonly open: (input: {
|
|
13
|
+
readonly context: OAuthConnectedTransactionContext;
|
|
14
|
+
readonly sealed: OAuthSealedTransaction;
|
|
15
|
+
}) => Effect.Effect<OAuthTransactionSecrets, OAuthUnavailable>;
|
|
16
|
+
}>;
|
|
17
|
+
/** Separate connected purpose. Key retention includes original claim horizons. */
|
|
18
|
+
declare class OAuthConnectedTransactionProtector extends OAuthConnectedTransactionProtector_base {
|
|
19
|
+
static readonly xchacha20poly1305: (keyring: OAuthTransactionKeyring) => Layer.Layer<OAuthConnectedTransactionProtector, OAuthConfigurationError, import("effect/Crypto").Crypto>;
|
|
20
|
+
}
|
|
21
|
+
//#endregion
|
|
22
|
+
export { OAuthConnectedTransactionProtector };
|
|
23
|
+
//# sourceMappingURL=OAuthConnectedTransactionProtector.d.mts.map
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { OAuthSealedTransaction } from "./signInModels.mjs";
|
|
2
|
+
import { OAuthUnavailable } from "./signInErrors.mjs";
|
|
3
|
+
import { snapshotOAuthSync } from "./signInSnapshot.mjs";
|
|
4
|
+
import { OAuthConnectedTransactionContext } from "./connectedModels.mjs";
|
|
5
|
+
import { transactionEncryption } from "./transactionEncryption.mjs";
|
|
6
|
+
import { Context, Layer, Schema } from "effect";
|
|
7
|
+
//#region src/oauth/OAuthConnectedTransactionProtector.ts
|
|
8
|
+
const codec = Schema.fromJsonString(Schema.Tuple([
|
|
9
|
+
Schema.Literal("effect-auth/oauth-connected-aead/v1"),
|
|
10
|
+
OAuthSealedTransaction.fields.format,
|
|
11
|
+
OAuthSealedTransaction.fields.keyId,
|
|
12
|
+
OAuthConnectedTransactionContext
|
|
13
|
+
]));
|
|
14
|
+
const encoder = new TextEncoder();
|
|
15
|
+
const aad = (context, keyId) => {
|
|
16
|
+
const value = Schema.encodeSync(codec)([
|
|
17
|
+
"effect-auth/oauth-connected-aead/v1",
|
|
18
|
+
"oauth-xchacha20poly1305-v1",
|
|
19
|
+
keyId,
|
|
20
|
+
snapshotOAuthSync(OAuthConnectedTransactionContext, context)
|
|
21
|
+
]);
|
|
22
|
+
if (value.length > 262144) throw OAuthUnavailable.make({});
|
|
23
|
+
const bytes = encoder.encode(value);
|
|
24
|
+
if (bytes.length > 262144) {
|
|
25
|
+
bytes.fill(0);
|
|
26
|
+
throw OAuthUnavailable.make({});
|
|
27
|
+
}
|
|
28
|
+
return bytes;
|
|
29
|
+
};
|
|
30
|
+
/** Separate connected purpose. Key retention includes original claim horizons. */
|
|
31
|
+
var OAuthConnectedTransactionProtector = class extends Context.Service()("effect-auth/OAuthConnectedTransactionProtector") {
|
|
32
|
+
static xchacha20poly1305 = (keyring) => Layer.effect(this, transactionEncryption(OAuthConnectedTransactionContext, aad, keyring));
|
|
33
|
+
};
|
|
34
|
+
//#endregion
|
|
35
|
+
export { OAuthConnectedTransactionProtector };
|
|
36
|
+
|
|
37
|
+
//# sourceMappingURL=OAuthConnectedTransactionProtector.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OAuthConnectedTransactionProtector.mjs","names":[],"sources":["../../src/oauth/OAuthConnectedTransactionProtector.ts"],"sourcesContent":["import { Context, type Effect, Layer, Schema } from \"effect\";\n\nimport { OAuthConnectedTransactionContext } from \"./connectedModels\";\nimport { OAuthUnavailable } from \"./signInErrors\";\nimport type { OAuthTransactionSecrets } from \"./signInModels\";\nimport { 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-connected-aead/v1\"),\n OAuthSealedTransaction.fields.format,\n OAuthSealedTransaction.fields.keyId,\n OAuthConnectedTransactionContext,\n ]),\n);\n\nconst encoder = new TextEncoder();\n\nconst aad = (context: OAuthConnectedTransactionContext, keyId: string) => {\n const value = Schema.encodeSync(codec)([\n \"effect-auth/oauth-connected-aead/v1\",\n \"oauth-xchacha20poly1305-v1\",\n keyId,\n snapshotOAuthSync(OAuthConnectedTransactionContext, context),\n ]);\n\n if (value.length > 262144) throw OAuthUnavailable.make({});\n const bytes = encoder.encode(value);\n\n if (bytes.length > 262144) {\n bytes.fill(0);\n throw OAuthUnavailable.make({});\n }\n\n return bytes;\n};\n\n/** Separate connected purpose. Key retention includes original claim horizons. */\nexport class OAuthConnectedTransactionProtector extends Context.Service<\n OAuthConnectedTransactionProtector,\n {\n readonly seal: (input: {\n readonly context: OAuthConnectedTransactionContext;\n readonly secrets: OAuthTransactionSecrets;\n }) => Effect.Effect<OAuthSealedTransaction, OAuthUnavailable>;\n readonly open: (input: {\n readonly context: OAuthConnectedTransactionContext;\n readonly sealed: OAuthSealedTransaction;\n }) => Effect.Effect<OAuthTransactionSecrets, OAuthUnavailable>;\n }\n>()(\"effect-auth/OAuthConnectedTransactionProtector\") {\n static readonly xchacha20poly1305 = (keyring: OAuthTransactionKeyring) =>\n Layer.effect(this, transactionEncryption(OAuthConnectedTransactionContext, aad, keyring));\n}\n"],"mappings":";;;;;;;AASA,MAAM,QAAQ,OAAO,eACnB,OAAO,MAAM;CACX,OAAO,QAAQ,qCAAqC;CACpD,uBAAuB,OAAO;CAC9B,uBAAuB,OAAO;CAC9B;AACF,CAAC,CACH;AAEA,MAAM,UAAU,IAAI,YAAY;AAEhC,MAAM,OAAO,SAA2C,UAAkB;CACxE,MAAM,QAAQ,OAAO,WAAW,KAAK,CAAC,CAAC;EACrC;EACA;EACA;EACA,kBAAkB,kCAAkC,OAAO;CAC7D,CAAC;CAED,IAAI,MAAM,SAAS,QAAQ,MAAM,iBAAiB,KAAK,CAAC,CAAC;CACzD,MAAM,QAAQ,QAAQ,OAAO,KAAK;CAElC,IAAI,MAAM,SAAS,QAAQ;EACzB,MAAM,KAAK,CAAC;EACZ,MAAM,iBAAiB,KAAK,CAAC,CAAC;CAChC;CAEA,OAAO;AACT;;AAGA,IAAa,qCAAb,cAAwD,QAAQ,QAY9D,CAAC,CAAC,gDAAgD,CAAC,CAAC;CACpD,OAAgB,qBAAqB,YACnC,MAAM,OAAO,MAAM,sBAAsB,kCAAkC,KAAK,OAAO,CAAC;AAC5F"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { AuthInvocation } from "../operations/context.mjs";
|
|
2
|
+
import { OAuthRejected, OAuthUnavailable } from "./signInErrors.mjs";
|
|
3
|
+
import { OAuthModuleId } from "./signInModels.mjs";
|
|
4
|
+
import { OAuthConnectedUseAuthorization, OAuthGrantId, OAuthPermissionProfileKey } from "./connectedModels.mjs";
|
|
5
|
+
import { Context, Effect } from "effect";
|
|
6
|
+
//#region src/oauth/OAuthConnectedUseAuthority.d.ts
|
|
7
|
+
declare const OAuthConnectedUseAuthority_base: Context.ServiceClass<OAuthConnectedUseAuthority, "effect-auth/OAuthConnectedUseAuthority", {
|
|
8
|
+
readonly authorize: (input: {
|
|
9
|
+
readonly invocation: AuthInvocation;
|
|
10
|
+
readonly moduleId: typeof OAuthModuleId.Type;
|
|
11
|
+
readonly purpose: "metadata" | "use";
|
|
12
|
+
readonly grantId?: typeof OAuthGrantId.Type;
|
|
13
|
+
readonly profileKey?: typeof OAuthPermissionProfileKey.Type;
|
|
14
|
+
}) => Effect.Effect<OAuthConnectedUseAuthorization, OAuthRejected | OAuthUnavailable>;
|
|
15
|
+
}>;
|
|
16
|
+
/** Current application metadata/use authority, not a boolean. Persistence must
|
|
17
|
+
* recheck the captured private revisions, policy and horizon in its final owner.
|
|
18
|
+
* Cross-authority rules cannot promise stronger consistency than their validity. */
|
|
19
|
+
declare class OAuthConnectedUseAuthority extends OAuthConnectedUseAuthority_base {}
|
|
20
|
+
//#endregion
|
|
21
|
+
export { OAuthConnectedUseAuthority };
|
|
22
|
+
//# sourceMappingURL=OAuthConnectedUseAuthority.d.mts.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Context } from "effect";
|
|
2
|
+
//#region src/oauth/OAuthConnectedUseAuthority.ts
|
|
3
|
+
/** Current application metadata/use authority, not a boolean. Persistence must
|
|
4
|
+
* recheck the captured private revisions, policy and horizon in its final owner.
|
|
5
|
+
* Cross-authority rules cannot promise stronger consistency than their validity. */
|
|
6
|
+
var OAuthConnectedUseAuthority = class extends Context.Service()("effect-auth/OAuthConnectedUseAuthority") {};
|
|
7
|
+
//#endregion
|
|
8
|
+
export { OAuthConnectedUseAuthority };
|
|
9
|
+
|
|
10
|
+
//# sourceMappingURL=OAuthConnectedUseAuthority.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OAuthConnectedUseAuthority.mjs","names":[],"sources":["../../src/oauth/OAuthConnectedUseAuthority.ts"],"sourcesContent":["import { Context, type Effect } from \"effect\";\n\nimport type { AuthInvocation } from \"../operations/context\";\nimport type {\n OAuthConnectedUseAuthorization,\n OAuthGrantId,\n OAuthPermissionProfileKey,\n} from \"./connectedModels\";\nimport type { OAuthRejected, OAuthUnavailable } from \"./signInErrors\";\nimport type { OAuthModuleId } from \"./signInModels\";\n\n/** Current application metadata/use authority, not a boolean. Persistence must\n * recheck the captured private revisions, policy and horizon in its final owner.\n * Cross-authority rules cannot promise stronger consistency than their validity. */\nexport class OAuthConnectedUseAuthority extends Context.Service<\n OAuthConnectedUseAuthority,\n {\n readonly authorize: (input: {\n readonly invocation: AuthInvocation;\n readonly moduleId: typeof OAuthModuleId.Type;\n readonly purpose: \"metadata\" | \"use\";\n readonly grantId?: typeof OAuthGrantId.Type;\n readonly profileKey?: typeof OAuthPermissionProfileKey.Type;\n }) => Effect.Effect<OAuthConnectedUseAuthorization, OAuthRejected | OAuthUnavailable>;\n }\n>()(\"effect-auth/OAuthConnectedUseAuthority\") {}\n"],"mappings":";;;;;AAcA,IAAa,6BAAb,cAAgD,QAAQ,QAWtD,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAC"}
|