@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,120 @@
|
|
|
1
|
+
import { cryptoLayer, defaultLayer, hooksLayer } from "../auth/defaults.mjs";
|
|
2
|
+
import { makeAuthStrategy } from "../auth/AuthStrategy.mjs";
|
|
3
|
+
import { makeOAuthMethod } from "./signInModule.mjs";
|
|
4
|
+
import { Array, Layer } from "effect";
|
|
5
|
+
//#region src/oauth/definition.ts
|
|
6
|
+
const captureDefine = (_namespace, input) => {
|
|
7
|
+
return { options: Object.freeze({
|
|
8
|
+
...input,
|
|
9
|
+
policy: Object.freeze({ ...input.policy })
|
|
10
|
+
}) };
|
|
11
|
+
};
|
|
12
|
+
const bindDefine = (binding, captured) => {
|
|
13
|
+
const { options } = captured;
|
|
14
|
+
const module = makeOAuthMethod(binding.namespace, { sessions: binding.sessions });
|
|
15
|
+
return Object.freeze({
|
|
16
|
+
...module,
|
|
17
|
+
strategy: makeAuthStrategy({
|
|
18
|
+
signIn: module.operations.Begin.invoke,
|
|
19
|
+
completeSignIn: module.operations.Complete.invoke
|
|
20
|
+
}, module.layer(options.policy), { completion: true })
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
const define = (namespace, input) => {
|
|
24
|
+
const captured = captureDefine(namespace, input);
|
|
25
|
+
const bind = (binding) => bindDefine(binding, captured);
|
|
26
|
+
return Object.freeze({
|
|
27
|
+
namespace,
|
|
28
|
+
bind
|
|
29
|
+
});
|
|
30
|
+
};
|
|
31
|
+
function make(options) {
|
|
32
|
+
return define(options.namespace, options);
|
|
33
|
+
}
|
|
34
|
+
const captureDefineRegistration = (_namespace, input) => {
|
|
35
|
+
return { options: Object.freeze({
|
|
36
|
+
...input,
|
|
37
|
+
policy: Object.freeze({ ...input.policy }),
|
|
38
|
+
registrationPolicy: Object.freeze({ ...input.registrationPolicy })
|
|
39
|
+
}) };
|
|
40
|
+
};
|
|
41
|
+
const bindDefineRegistration = (binding, captured) => {
|
|
42
|
+
const { options } = captured;
|
|
43
|
+
const module = makeOAuthMethod(binding.namespace, { sessions: binding.sessions });
|
|
44
|
+
const registration = module.registration(options.registration);
|
|
45
|
+
const layer = Layer.merge(module.handlersLayer, registration.handlersLayer).pipe(Layer.provide(Layer.merge(defaultLayer(module.SignIn, registration.signInLayer(options.policy, options.registrationPolicy)), defaultLayer(registration.Registrations, registration.layer))), Layer.provide(defaultLayer(module.binding.RequestBinding, module.binding.layer)), Layer.provide([cryptoLayer, hooksLayer]));
|
|
46
|
+
return Object.freeze({
|
|
47
|
+
...module,
|
|
48
|
+
registration,
|
|
49
|
+
strategy: makeAuthStrategy({
|
|
50
|
+
signIn: module.operations.Begin.invoke,
|
|
51
|
+
completeSignIn: module.operations.Complete.invoke,
|
|
52
|
+
register: registration.operations.Complete.invoke
|
|
53
|
+
}, layer, { completion: true })
|
|
54
|
+
});
|
|
55
|
+
};
|
|
56
|
+
const defineRegistration = (namespace, input) => {
|
|
57
|
+
const captured = captureDefineRegistration(namespace, input);
|
|
58
|
+
const bind = (binding) => bindDefineRegistration(binding, captured);
|
|
59
|
+
return Object.freeze({
|
|
60
|
+
namespace,
|
|
61
|
+
bind
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
/** Registration selects the protocol's registration transition and its separate completion. */
|
|
65
|
+
function makeRegistration(options) {
|
|
66
|
+
return defineRegistration(options.namespace, options);
|
|
67
|
+
}
|
|
68
|
+
const captureDefineAccounts = (_namespace, input) => {
|
|
69
|
+
return { options: Object.freeze({
|
|
70
|
+
...input,
|
|
71
|
+
policy: Object.freeze({ ...input.policy })
|
|
72
|
+
}) };
|
|
73
|
+
};
|
|
74
|
+
const bindDefineAccounts = (binding, captured) => {
|
|
75
|
+
const { options } = captured;
|
|
76
|
+
return makeOAuthMethod(binding.namespace, { sessions: binding.sessions }).accounts(options.policy);
|
|
77
|
+
};
|
|
78
|
+
const defineAccounts = (namespace, input) => {
|
|
79
|
+
const captured = captureDefineAccounts(namespace, input);
|
|
80
|
+
const bind = (binding) => bindDefineAccounts(binding, captured);
|
|
81
|
+
return Object.freeze({
|
|
82
|
+
namespace,
|
|
83
|
+
bind
|
|
84
|
+
});
|
|
85
|
+
};
|
|
86
|
+
function makeAccounts(options) {
|
|
87
|
+
return defineAccounts(options.namespace, options);
|
|
88
|
+
}
|
|
89
|
+
const captureDefineConnected = (_namespace, input) => {
|
|
90
|
+
return { options: Object.freeze({
|
|
91
|
+
...input,
|
|
92
|
+
policy: Object.freeze({
|
|
93
|
+
...input.policy,
|
|
94
|
+
profiles: globalThis.Array.isArray(input.policy?.profiles) ? Object.freeze(Array.map(input.policy?.profiles, (profile) => Object.freeze({
|
|
95
|
+
...profile,
|
|
96
|
+
scopes: globalThis.Array.isArray(profile?.scopes) ? Object.freeze([...profile.scopes]) : profile?.scopes,
|
|
97
|
+
resources: globalThis.Array.isArray(profile?.resources) ? Object.freeze([...profile.resources]) : profile?.resources
|
|
98
|
+
}))) : input.policy?.profiles
|
|
99
|
+
})
|
|
100
|
+
}) };
|
|
101
|
+
};
|
|
102
|
+
const bindDefineConnected = (binding, captured) => {
|
|
103
|
+
const { options } = captured;
|
|
104
|
+
return makeOAuthMethod(binding.namespace, { sessions: binding.sessions }).connected(options.policy);
|
|
105
|
+
};
|
|
106
|
+
const defineConnected = (namespace, input) => {
|
|
107
|
+
const captured = captureDefineConnected(namespace, input);
|
|
108
|
+
const bind = (binding) => bindDefineConnected(binding, captured);
|
|
109
|
+
return Object.freeze({
|
|
110
|
+
namespace,
|
|
111
|
+
bind
|
|
112
|
+
});
|
|
113
|
+
};
|
|
114
|
+
function makeConnected(options) {
|
|
115
|
+
return defineConnected(options.namespace, options);
|
|
116
|
+
}
|
|
117
|
+
//#endregion
|
|
118
|
+
export { make, makeAccounts, makeConnected, makeRegistration };
|
|
119
|
+
|
|
120
|
+
//# sourceMappingURL=definition.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"definition.mjs","names":[],"sources":["../../src/oauth/definition.ts"],"sourcesContent":["import { Array, Layer } from \"effect\";\n\nimport { makeAuthStrategy } from \"../auth/AuthStrategy\";\nimport { cryptoLayer, defaultLayer, hooksLayer } from \"../auth/defaults\";\nimport type {\n BindingOf,\n ClaimsCodec,\n StrategyBinding,\n StrategyDefinition,\n StrategyTypeLambda,\n} from \"../auth/definition\";\nimport type { OAuthAccountsPolicy } from \"./accountsModels\";\nimport type { OAuthConnectedPolicy } from \"./connectedModels\";\nimport type { OAuthRegistrationPolicy } from \"./registrationModels\";\nimport type { OAuthSignInPolicy } from \"./signInModels\";\nimport { makeOAuthMethod } from \"./signInModule\";\n\nexport interface OAuthOptions<Namespace extends string | undefined = undefined> {\n readonly namespace?: Namespace;\n readonly policy: OAuthSignInPolicy;\n}\n\nexport interface OAuthRegistrationOptions<\n Registration extends ClaimsCodec,\n Namespace extends string | undefined = undefined,\n> extends OAuthOptions<Namespace> {\n readonly registration: Registration;\n readonly registrationPolicy: OAuthRegistrationPolicy;\n}\n\nconst captureDefine = <const Namespace extends string | undefined>(\n _namespace: Namespace,\n input: OAuthOptions<Namespace>,\n) => {\n const options = Object.freeze({ ...input, policy: Object.freeze({ ...input.policy }) });\n\n return { options };\n};\n\nconst bindDefine = <\n const Namespace extends string | undefined,\n Claims extends ClaimsCodec,\n const Id extends string,\n const SessionId extends string,\n>(\n binding: StrategyBinding<Claims, Id, SessionId>,\n captured: ReturnType<typeof captureDefine<Namespace>>,\n) => {\n const { options } = captured;\n\n const module = makeOAuthMethod<Id, SessionId, Claims>(binding.namespace, {\n sessions: binding.sessions,\n });\n\n return Object.freeze({\n ...module,\n strategy: makeAuthStrategy(\n {\n signIn: module.operations.Begin.invoke,\n completeSignIn: module.operations.Complete.invoke,\n },\n module.layer(options.policy),\n { completion: true },\n ),\n });\n};\n\nexport interface DefineStrategy<Namespace extends string | undefined> extends StrategyTypeLambda {\n readonly type: ReturnType<\n typeof bindDefine<\n Namespace,\n BindingOf<this>[\"claims\"],\n BindingOf<this>[\"namespace\"],\n BindingOf<this>[\"sessionNamespace\"]\n >\n >;\n}\n\nconst define = <const Namespace extends string | undefined>(\n namespace: Namespace,\n input: OAuthOptions<Namespace>,\n) => {\n const captured = captureDefine<Namespace>(namespace, input);\n\n const bind = <\n Claims extends ClaimsCodec,\n const Id extends string,\n const SessionId extends string,\n >(\n binding: StrategyBinding<Claims, Id, SessionId>,\n ) => bindDefine<Namespace, Claims, Id, SessionId>(binding, captured);\n\n const definition: StrategyDefinition<DefineStrategy<Namespace>, Namespace> = {\n namespace,\n bind,\n };\n\n return Object.freeze(definition);\n};\n\nexport function make<const Namespace extends string>(\n options: OAuthOptions<Namespace> & { readonly namespace: Namespace },\n): ReturnType<typeof define<Namespace>>;\n\nexport function make<const Namespace extends string | undefined = undefined>(\n options: OAuthOptions<Namespace>,\n): ReturnType<typeof define<Namespace | undefined>>;\n\nexport function make<const Namespace extends string | undefined>(options: OAuthOptions<Namespace>) {\n return define(options.namespace, options);\n}\n\nconst captureDefineRegistration = <\n Registration extends ClaimsCodec,\n const Namespace extends string | undefined = undefined,\n>(\n _namespace: Namespace,\n input: OAuthRegistrationOptions<Registration, Namespace>,\n) => {\n const options = Object.freeze({\n ...input,\n policy: Object.freeze({ ...input.policy }),\n registrationPolicy: Object.freeze({ ...input.registrationPolicy }),\n });\n\n return { options };\n};\n\nconst bindDefineRegistration = <\n Registration extends ClaimsCodec,\n const Namespace extends string | undefined,\n Claims extends ClaimsCodec,\n const Id extends string,\n const SessionId extends string,\n>(\n binding: StrategyBinding<Claims, Id, SessionId>,\n captured: ReturnType<typeof captureDefineRegistration<Registration, Namespace>>,\n) => {\n const { options } = captured;\n\n const module = makeOAuthMethod<Id, SessionId, Claims>(binding.namespace, {\n sessions: binding.sessions,\n });\n\n const registration = module.registration(options.registration);\n\n const layer = Layer.merge(module.handlersLayer, registration.handlersLayer).pipe(\n Layer.provide(\n Layer.merge(\n defaultLayer(\n module.SignIn,\n registration.signInLayer(options.policy, options.registrationPolicy),\n ),\n defaultLayer(registration.Registrations, registration.layer),\n ),\n ),\n Layer.provide(defaultLayer(module.binding.RequestBinding, module.binding.layer)),\n Layer.provide([cryptoLayer, hooksLayer]),\n );\n\n return Object.freeze({\n ...module,\n registration,\n strategy: makeAuthStrategy(\n {\n signIn: module.operations.Begin.invoke,\n completeSignIn: module.operations.Complete.invoke,\n register: registration.operations.Complete.invoke,\n },\n layer,\n { completion: true },\n ),\n });\n};\n\nexport interface DefineRegistrationStrategy<\n Registration extends ClaimsCodec,\n Namespace extends string | undefined = undefined,\n> extends StrategyTypeLambda {\n readonly type: ReturnType<\n typeof bindDefineRegistration<\n Registration,\n Namespace,\n BindingOf<this>[\"claims\"],\n BindingOf<this>[\"namespace\"],\n BindingOf<this>[\"sessionNamespace\"]\n >\n >;\n}\n\nconst defineRegistration = <\n Registration extends ClaimsCodec,\n const Namespace extends string | undefined = undefined,\n>(\n namespace: Namespace,\n input: OAuthRegistrationOptions<Registration, Namespace>,\n) => {\n const captured = captureDefineRegistration<Registration, Namespace>(namespace, input);\n\n const bind = <\n Claims extends ClaimsCodec,\n const Id extends string,\n const SessionId extends string,\n >(\n binding: StrategyBinding<Claims, Id, SessionId>,\n ) => bindDefineRegistration<Registration, Namespace, Claims, Id, SessionId>(binding, captured);\n\n const definition: StrategyDefinition<\n DefineRegistrationStrategy<Registration, Namespace>,\n Namespace\n > = {\n namespace,\n bind,\n };\n\n return Object.freeze(definition);\n};\n\nexport function makeRegistration<Registration extends ClaimsCodec, const Namespace extends string>(\n options: OAuthRegistrationOptions<Registration, Namespace> & { readonly namespace: Namespace },\n): ReturnType<typeof defineRegistration<Registration, Namespace>>;\n\nexport function makeRegistration<\n Registration extends ClaimsCodec,\n const Namespace extends string | undefined = undefined,\n>(\n options: OAuthRegistrationOptions<Registration, Namespace>,\n): ReturnType<typeof defineRegistration<Registration, Namespace | undefined>>;\n\n/** Registration selects the protocol's registration transition and its separate completion. */\nexport function makeRegistration<\n Registration extends ClaimsCodec,\n const Namespace extends string | undefined,\n>(options: OAuthRegistrationOptions<Registration, Namespace>) {\n return defineRegistration(options.namespace, options);\n}\n\nexport interface OAuthAccountsOptions<Namespace extends string | undefined = undefined> {\n readonly namespace?: Namespace;\n readonly policy: OAuthAccountsPolicy;\n}\n\nconst captureDefineAccounts = <const Namespace extends string | undefined>(\n _namespace: Namespace,\n input: OAuthAccountsOptions<Namespace>,\n) => {\n const options = Object.freeze({ ...input, policy: Object.freeze({ ...input.policy }) });\n\n return { options };\n};\n\nconst bindDefineAccounts = <\n const Namespace extends string | undefined,\n Claims extends ClaimsCodec,\n const Id extends string,\n const SessionId extends string,\n>(\n binding: StrategyBinding<Claims, Id, SessionId>,\n captured: ReturnType<typeof captureDefineAccounts<Namespace>>,\n) => {\n const { options } = captured;\n\n return makeOAuthMethod<Id, SessionId, Claims>(binding.namespace, {\n sessions: binding.sessions,\n }).accounts(options.policy);\n};\n\nexport interface DefineAccountsStrategy<\n Namespace extends string | undefined,\n> extends StrategyTypeLambda {\n readonly type: ReturnType<\n typeof bindDefineAccounts<\n Namespace,\n BindingOf<this>[\"claims\"],\n BindingOf<this>[\"namespace\"],\n BindingOf<this>[\"sessionNamespace\"]\n >\n >;\n}\n\nconst defineAccounts = <const Namespace extends string | undefined>(\n namespace: Namespace,\n input: OAuthAccountsOptions<Namespace>,\n) => {\n const captured = captureDefineAccounts<Namespace>(namespace, input);\n\n const bind = <\n Claims extends ClaimsCodec,\n const Id extends string,\n const SessionId extends string,\n >(\n binding: StrategyBinding<Claims, Id, SessionId>,\n ) => bindDefineAccounts<Namespace, Claims, Id, SessionId>(binding, captured);\n\n const definition: StrategyDefinition<DefineAccountsStrategy<Namespace>, Namespace> = {\n namespace,\n bind,\n };\n\n return Object.freeze(definition);\n};\n\nexport function makeAccounts<const Namespace extends string>(\n options: OAuthAccountsOptions<Namespace> & { readonly namespace: Namespace },\n): ReturnType<typeof defineAccounts<Namespace>>;\n\nexport function makeAccounts<const Namespace extends string | undefined = undefined>(\n options: OAuthAccountsOptions<Namespace>,\n): ReturnType<typeof defineAccounts<Namespace | undefined>>;\n\nexport function makeAccounts<const Namespace extends string | undefined>(\n options: OAuthAccountsOptions<Namespace>,\n) {\n return defineAccounts(options.namespace, options);\n}\n\nexport interface OAuthConnectedOptions<Namespace extends string | undefined = undefined> {\n readonly namespace?: Namespace;\n readonly policy: OAuthConnectedPolicy;\n}\n\nconst captureDefineConnected = <const Namespace extends string | undefined>(\n _namespace: Namespace,\n input: OAuthConnectedOptions<Namespace>,\n) => {\n const options = Object.freeze({\n ...input,\n policy: Object.freeze({\n ...input.policy,\n profiles: globalThis.Array.isArray(input.policy?.profiles)\n ? Object.freeze(\n Array.map(input.policy?.profiles, (profile) =>\n Object.freeze({\n ...profile,\n scopes: globalThis.Array.isArray(profile?.scopes)\n ? Object.freeze([...profile.scopes])\n : profile?.scopes,\n resources: globalThis.Array.isArray(profile?.resources)\n ? Object.freeze([...profile.resources])\n : profile?.resources,\n }),\n ),\n )\n : input.policy?.profiles,\n }),\n });\n\n return { options };\n};\n\nconst bindDefineConnected = <\n const Namespace extends string | undefined,\n Claims extends ClaimsCodec,\n const Id extends string,\n const SessionId extends string,\n>(\n binding: StrategyBinding<Claims, Id, SessionId>,\n captured: ReturnType<typeof captureDefineConnected<Namespace>>,\n) => {\n const { options } = captured;\n\n return makeOAuthMethod<Id, SessionId, Claims>(binding.namespace, {\n sessions: binding.sessions,\n }).connected(options.policy);\n};\n\nexport interface DefineConnectedStrategy<\n Namespace extends string | undefined,\n> extends StrategyTypeLambda {\n readonly type: ReturnType<\n typeof bindDefineConnected<\n Namespace,\n BindingOf<this>[\"claims\"],\n BindingOf<this>[\"namespace\"],\n BindingOf<this>[\"sessionNamespace\"]\n >\n >;\n}\n\nconst defineConnected = <const Namespace extends string | undefined>(\n namespace: Namespace,\n input: OAuthConnectedOptions<Namespace>,\n) => {\n const captured = captureDefineConnected<Namespace>(namespace, input);\n\n const bind = <\n Claims extends ClaimsCodec,\n const Id extends string,\n const SessionId extends string,\n >(\n binding: StrategyBinding<Claims, Id, SessionId>,\n ) => bindDefineConnected<Namespace, Claims, Id, SessionId>(binding, captured);\n\n const definition: StrategyDefinition<DefineConnectedStrategy<Namespace>, Namespace> = {\n namespace,\n bind,\n };\n\n return Object.freeze(definition);\n};\n\nexport function makeConnected<const Namespace extends string>(\n options: OAuthConnectedOptions<Namespace> & { readonly namespace: Namespace },\n): ReturnType<typeof defineConnected<Namespace>>;\n\nexport function makeConnected<const Namespace extends string | undefined = undefined>(\n options: OAuthConnectedOptions<Namespace>,\n): ReturnType<typeof defineConnected<Namespace | undefined>>;\n\nexport function makeConnected<const Namespace extends string | undefined>(\n options: OAuthConnectedOptions<Namespace>,\n) {\n return defineConnected(options.namespace, options);\n}\n"],"mappings":";;;;;AA8BA,MAAM,iBACJ,YACA,UACG;CAGH,OAAO,EAAE,SAFO,OAAO,OAAO;EAAE,GAAG;EAAO,QAAQ,OAAO,OAAO,EAAE,GAAG,MAAM,OAAO,CAAC;CAAE,CAEtE,EAAE;AACnB;AAEA,MAAM,cAMJ,SACA,aACG;CACH,MAAM,EAAE,YAAY;CAEpB,MAAM,SAAS,gBAAuC,QAAQ,WAAW,EACvE,UAAU,QAAQ,SACpB,CAAC;CAED,OAAO,OAAO,OAAO;EACnB,GAAG;EACH,UAAU,iBACR;GACE,QAAQ,OAAO,WAAW,MAAM;GAChC,gBAAgB,OAAO,WAAW,SAAS;EAC7C,GACA,OAAO,MAAM,QAAQ,MAAM,GAC3B,EAAE,YAAY,KAAK,CACrB;CACF,CAAC;AACH;AAaA,MAAM,UACJ,WACA,UACG;CACH,MAAM,WAAW,cAAyB,WAAW,KAAK;CAE1D,MAAM,QAKJ,YACG,WAA6C,SAAS,QAAQ;CAOnE,OAAO,OAAO,OAAO;EAJnB;EACA;CAG4B,CAAC;AACjC;AAUA,SAAgB,KAAiD,SAAkC;CACjG,OAAO,OAAO,QAAQ,WAAW,OAAO;AAC1C;AAEA,MAAM,6BAIJ,YACA,UACG;CAOH,OAAO,EAAE,SANO,OAAO,OAAO;EAC5B,GAAG;EACH,QAAQ,OAAO,OAAO,EAAE,GAAG,MAAM,OAAO,CAAC;EACzC,oBAAoB,OAAO,OAAO,EAAE,GAAG,MAAM,mBAAmB,CAAC;CACnE,CAEe,EAAE;AACnB;AAEA,MAAM,0BAOJ,SACA,aACG;CACH,MAAM,EAAE,YAAY;CAEpB,MAAM,SAAS,gBAAuC,QAAQ,WAAW,EACvE,UAAU,QAAQ,SACpB,CAAC;CAED,MAAM,eAAe,OAAO,aAAa,QAAQ,YAAY;CAE7D,MAAM,QAAQ,MAAM,MAAM,OAAO,eAAe,aAAa,aAAa,CAAC,CAAC,KAC1E,MAAM,QACJ,MAAM,MACJ,aACE,OAAO,QACP,aAAa,YAAY,QAAQ,QAAQ,QAAQ,kBAAkB,CACrE,GACA,aAAa,aAAa,eAAe,aAAa,KAAK,CAC7D,CACF,GACA,MAAM,QAAQ,aAAa,OAAO,QAAQ,gBAAgB,OAAO,QAAQ,KAAK,CAAC,GAC/E,MAAM,QAAQ,CAAC,aAAa,UAAU,CAAC,CACzC;CAEA,OAAO,OAAO,OAAO;EACnB,GAAG;EACH;EACA,UAAU,iBACR;GACE,QAAQ,OAAO,WAAW,MAAM;GAChC,gBAAgB,OAAO,WAAW,SAAS;GAC3C,UAAU,aAAa,WAAW,SAAS;EAC7C,GACA,OACA,EAAE,YAAY,KAAK,CACrB;CACF,CAAC;AACH;AAiBA,MAAM,sBAIJ,WACA,UACG;CACH,MAAM,WAAW,0BAAmD,WAAW,KAAK;CAEpF,MAAM,QAKJ,YACG,uBAAuE,SAAS,QAAQ;CAU7F,OAAO,OAAO,OAAO;EAJnB;EACA;CAG4B,CAAC;AACjC;;AAcA,SAAgB,iBAGd,SAA4D;CAC5D,OAAO,mBAAmB,QAAQ,WAAW,OAAO;AACtD;AAOA,MAAM,yBACJ,YACA,UACG;CAGH,OAAO,EAAE,SAFO,OAAO,OAAO;EAAE,GAAG;EAAO,QAAQ,OAAO,OAAO,EAAE,GAAG,MAAM,OAAO,CAAC;CAAE,CAEtE,EAAE;AACnB;AAEA,MAAM,sBAMJ,SACA,aACG;CACH,MAAM,EAAE,YAAY;CAEpB,OAAO,gBAAuC,QAAQ,WAAW,EAC/D,UAAU,QAAQ,SACpB,CAAC,CAAC,CAAC,SAAS,QAAQ,MAAM;AAC5B;AAeA,MAAM,kBACJ,WACA,UACG;CACH,MAAM,WAAW,sBAAiC,WAAW,KAAK;CAElE,MAAM,QAKJ,YACG,mBAAqD,SAAS,QAAQ;CAO3E,OAAO,OAAO,OAAO;EAJnB;EACA;CAG4B,CAAC;AACjC;AAUA,SAAgB,aACd,SACA;CACA,OAAO,eAAe,QAAQ,WAAW,OAAO;AAClD;AAOA,MAAM,0BACJ,YACA,UACG;CAuBH,OAAO,EAAE,SAtBO,OAAO,OAAO;EAC5B,GAAG;EACH,QAAQ,OAAO,OAAO;GACpB,GAAG,MAAM;GACT,UAAU,WAAW,MAAM,QAAQ,MAAM,QAAQ,QAAQ,IACrD,OAAO,OACL,MAAM,IAAI,MAAM,QAAQ,WAAW,YACjC,OAAO,OAAO;IACZ,GAAG;IACH,QAAQ,WAAW,MAAM,QAAQ,SAAS,MAAM,IAC5C,OAAO,OAAO,CAAC,GAAG,QAAQ,MAAM,CAAC,IACjC,SAAS;IACb,WAAW,WAAW,MAAM,QAAQ,SAAS,SAAS,IAClD,OAAO,OAAO,CAAC,GAAG,QAAQ,SAAS,CAAC,IACpC,SAAS;GACf,CAAC,CACH,CACF,IACA,MAAM,QAAQ;EACpB,CAAC;CACH,CAEe,EAAE;AACnB;AAEA,MAAM,uBAMJ,SACA,aACG;CACH,MAAM,EAAE,YAAY;CAEpB,OAAO,gBAAuC,QAAQ,WAAW,EAC/D,UAAU,QAAQ,SACpB,CAAC,CAAC,CAAC,UAAU,QAAQ,MAAM;AAC7B;AAeA,MAAM,mBACJ,WACA,UACG;CACH,MAAM,WAAW,uBAAkC,WAAW,KAAK;CAEnE,MAAM,QAKJ,YACG,oBAAsD,SAAS,QAAQ;CAO5E,OAAO,OAAO,OAAO;EAJnB;EACA;CAG4B,CAAC;AACjC;AAUA,SAAgB,cACd,SACA;CACA,OAAO,gBAAgB,QAAQ,WAAW,OAAO;AACnD"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Schema } from "effect";
|
|
2
|
+
//#region src/oauth/errors.d.ts
|
|
3
|
+
declare const UnknownOAuthProvider_base: Schema.Class<UnknownOAuthProvider, Schema.TaggedStruct<"UnknownOAuthProvider", {
|
|
4
|
+
readonly provider: Schema.String;
|
|
5
|
+
}>, import("effect/Cause").YieldableError>;
|
|
6
|
+
/** The callback names a provider the application did not configure. */
|
|
7
|
+
declare class UnknownOAuthProvider extends UnknownOAuthProvider_base {}
|
|
8
|
+
declare const InvalidOAuthState_base: Schema.Class<InvalidOAuthState, Schema.TaggedStruct<"InvalidOAuthState", {}>, import("effect/Cause").YieldableError>;
|
|
9
|
+
/**
|
|
10
|
+
* Authorization state failure. The reasons (missing, unknown, expired,
|
|
11
|
+
* already consumed, wrong subject, wrong provider, wrong redirect URI, missing
|
|
12
|
+
* code) deliberately collapse into one payload-free error so callback
|
|
13
|
+
* responses cannot be used to probe state.
|
|
14
|
+
*/
|
|
15
|
+
declare class InvalidOAuthState extends InvalidOAuthState_base {}
|
|
16
|
+
declare const OAuthAccessDenied_base: Schema.Class<OAuthAccessDenied, Schema.TaggedStruct<"OAuthAccessDenied", {}>, import("effect/Cause").YieldableError>;
|
|
17
|
+
/** The actor declined the provider's consent screen. */
|
|
18
|
+
declare class OAuthAccessDenied extends OAuthAccessDenied_base {}
|
|
19
|
+
declare const OAuthReauthorizationRequired_base: Schema.Class<OAuthReauthorizationRequired, Schema.TaggedStruct<"OAuthReauthorizationRequired", {}>, import("effect/Cause").YieldableError>;
|
|
20
|
+
/**
|
|
21
|
+
* No usable access token exists for the subject: the access token expired and
|
|
22
|
+
* there is no live refresh token, or the provider rejected the refresh grant.
|
|
23
|
+
* The application must send the actor back through {@link OAuth.begin}.
|
|
24
|
+
*/
|
|
25
|
+
declare class OAuthReauthorizationRequired extends OAuthReauthorizationRequired_base {}
|
|
26
|
+
declare const OAuthConnectionNotFound_base: Schema.Class<OAuthConnectionNotFound, Schema.TaggedStruct<"OAuthConnectionNotFound", {}>, import("effect/Cause").YieldableError>;
|
|
27
|
+
/** The subject has no connection for the provider. */
|
|
28
|
+
declare class OAuthConnectionNotFound extends OAuthConnectionNotFound_base {}
|
|
29
|
+
declare const OAuthGrantRejected_base: Schema.Class<OAuthGrantRejected, Schema.TaggedStruct<"OAuthGrantRejected", {
|
|
30
|
+
readonly provider: Schema.brand<Schema.String, "effect-auth/OAuthProviderKey">;
|
|
31
|
+
/** The provider's `error` code (e.g. `access_denied`, `bad_verification_code`). */
|
|
32
|
+
readonly code: Schema.NonEmptyString;
|
|
33
|
+
}>, import("effect/Cause").YieldableError>;
|
|
34
|
+
/**
|
|
35
|
+
* The provider's token endpoint answered with a well-formed OAuth error
|
|
36
|
+
* payload. Raised by provider token-grant decoders; the workflow maps it to
|
|
37
|
+
* `OAuthAccessDenied`, `OAuthReauthorizationRequired`, or
|
|
38
|
+
* `OAuthProviderError` depending on the grant being attempted.
|
|
39
|
+
*/
|
|
40
|
+
declare class OAuthGrantRejected extends OAuthGrantRejected_base {}
|
|
41
|
+
declare const OAuthProviderError_base: Schema.Class<OAuthProviderError, Schema.TaggedStruct<"OAuthProviderError", {
|
|
42
|
+
readonly provider: Schema.brand<Schema.String, "effect-auth/OAuthProviderKey">;
|
|
43
|
+
readonly message: Schema.NonEmptyString;
|
|
44
|
+
}>, import("effect/Cause").YieldableError>;
|
|
45
|
+
/** The provider is unreachable or answered outside its contract. */
|
|
46
|
+
declare class OAuthProviderError extends OAuthProviderError_base {}
|
|
47
|
+
//#endregion
|
|
48
|
+
export { InvalidOAuthState, OAuthAccessDenied, OAuthConnectionNotFound, OAuthGrantRejected, OAuthProviderError, OAuthReauthorizationRequired, UnknownOAuthProvider };
|
|
49
|
+
//# sourceMappingURL=errors.d.mts.map
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { OAuthProviderKey } from "./schema.mjs";
|
|
2
|
+
import { Schema } from "effect";
|
|
3
|
+
//#region src/oauth/errors.ts
|
|
4
|
+
/** The callback names a provider the application did not configure. */
|
|
5
|
+
var UnknownOAuthProvider = class extends Schema.TaggedError()("UnknownOAuthProvider", { provider: Schema.String }, { httpApiStatus: 404 }) {};
|
|
6
|
+
/**
|
|
7
|
+
* Authorization state failure. The reasons (missing, unknown, expired,
|
|
8
|
+
* already consumed, wrong subject, wrong provider, wrong redirect URI, missing
|
|
9
|
+
* code) deliberately collapse into one payload-free error so callback
|
|
10
|
+
* responses cannot be used to probe state.
|
|
11
|
+
*/
|
|
12
|
+
var InvalidOAuthState = class extends Schema.TaggedError()("InvalidOAuthState", {}, { httpApiStatus: 401 }) {};
|
|
13
|
+
/** The actor declined the provider's consent screen. */
|
|
14
|
+
var OAuthAccessDenied = class extends Schema.TaggedError()("OAuthAccessDenied", {}, { httpApiStatus: 403 }) {};
|
|
15
|
+
/**
|
|
16
|
+
* No usable access token exists for the subject: the access token expired and
|
|
17
|
+
* there is no live refresh token, or the provider rejected the refresh grant.
|
|
18
|
+
* The application must send the actor back through {@link OAuth.begin}.
|
|
19
|
+
*/
|
|
20
|
+
var OAuthReauthorizationRequired = class extends Schema.TaggedError()("OAuthReauthorizationRequired", {}, { httpApiStatus: 409 }) {};
|
|
21
|
+
/** The subject has no connection for the provider. */
|
|
22
|
+
var OAuthConnectionNotFound = class extends Schema.TaggedError()("OAuthConnectionNotFound", {}, { httpApiStatus: 404 }) {};
|
|
23
|
+
/**
|
|
24
|
+
* The provider's token endpoint answered with a well-formed OAuth error
|
|
25
|
+
* payload. Raised by provider token-grant decoders; the workflow maps it to
|
|
26
|
+
* `OAuthAccessDenied`, `OAuthReauthorizationRequired`, or
|
|
27
|
+
* `OAuthProviderError` depending on the grant being attempted.
|
|
28
|
+
*/
|
|
29
|
+
var OAuthGrantRejected = class extends Schema.TaggedError()("OAuthGrantRejected", {
|
|
30
|
+
provider: OAuthProviderKey,
|
|
31
|
+
/** The provider's `error` code (e.g. `access_denied`, `bad_verification_code`). */
|
|
32
|
+
code: Schema.NonEmptyString
|
|
33
|
+
}) {};
|
|
34
|
+
/** The provider is unreachable or answered outside its contract. */
|
|
35
|
+
var OAuthProviderError = class extends Schema.TaggedError()("OAuthProviderError", {
|
|
36
|
+
provider: OAuthProviderKey,
|
|
37
|
+
message: Schema.NonEmptyString
|
|
38
|
+
}) {};
|
|
39
|
+
//#endregion
|
|
40
|
+
export { InvalidOAuthState, OAuthAccessDenied, OAuthConnectionNotFound, OAuthGrantRejected, OAuthProviderError, OAuthReauthorizationRequired, UnknownOAuthProvider };
|
|
41
|
+
|
|
42
|
+
//# sourceMappingURL=errors.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.mjs","names":[],"sources":["../../src/oauth/errors.ts"],"sourcesContent":["import { Schema } from \"effect\";\n\nimport { OAuthProviderKey } from \"./schema\";\n\n// Declared in the style of the package's root `errors.ts`: expected\n// transport-facing errors carry their HTTP status as a schema annotation;\n// infrastructure failures carry none and are mapped at the HTTP boundary.\n// Messages must never contain tokens, codes, or state values.\n\n/** The callback names a provider the application did not configure. */\nexport class UnknownOAuthProvider extends Schema.TaggedError<UnknownOAuthProvider>()(\n \"UnknownOAuthProvider\",\n {\n provider: Schema.String,\n },\n { httpApiStatus: 404 },\n) {}\n\n/**\n * Authorization state failure. The reasons (missing, unknown, expired,\n * already consumed, wrong subject, wrong provider, wrong redirect URI, missing\n * code) deliberately collapse into one payload-free error so callback\n * responses cannot be used to probe state.\n */\nexport class InvalidOAuthState extends Schema.TaggedError<InvalidOAuthState>()(\n \"InvalidOAuthState\",\n {},\n { httpApiStatus: 401 },\n) {}\n\n/** The actor declined the provider's consent screen. */\nexport class OAuthAccessDenied extends Schema.TaggedError<OAuthAccessDenied>()(\n \"OAuthAccessDenied\",\n {},\n { httpApiStatus: 403 },\n) {}\n\n/**\n * No usable access token exists for the subject: the access token expired and\n * there is no live refresh token, or the provider rejected the refresh grant.\n * The application must send the actor back through {@link OAuth.begin}.\n */\nexport class OAuthReauthorizationRequired extends Schema.TaggedError<OAuthReauthorizationRequired>()(\n \"OAuthReauthorizationRequired\",\n {},\n { httpApiStatus: 409 },\n) {}\n\n/** The subject has no connection for the provider. */\nexport class OAuthConnectionNotFound extends Schema.TaggedError<OAuthConnectionNotFound>()(\n \"OAuthConnectionNotFound\",\n {},\n { httpApiStatus: 404 },\n) {}\n\n/**\n * The provider's token endpoint answered with a well-formed OAuth error\n * payload. Raised by provider token-grant decoders; the workflow maps it to\n * `OAuthAccessDenied`, `OAuthReauthorizationRequired`, or\n * `OAuthProviderError` depending on the grant being attempted.\n */\nexport class OAuthGrantRejected extends Schema.TaggedError<OAuthGrantRejected>()(\n \"OAuthGrantRejected\",\n {\n provider: OAuthProviderKey,\n /** The provider's `error` code (e.g. `access_denied`, `bad_verification_code`). */\n code: Schema.NonEmptyString,\n },\n) {}\n\n/** The provider is unreachable or answered outside its contract. */\nexport class OAuthProviderError extends Schema.TaggedError<OAuthProviderError>()(\n \"OAuthProviderError\",\n {\n provider: OAuthProviderKey,\n message: Schema.NonEmptyString,\n },\n) {}\n"],"mappings":";;;;AAUA,IAAa,uBAAb,cAA0C,OAAO,YAAkC,CAAC,CAClF,wBACA,EACE,UAAU,OAAO,OACnB,GACA,EAAE,eAAe,IAAI,CACvB,CAAC,CAAC,CAAC;;;;;;;AAQH,IAAa,oBAAb,cAAuC,OAAO,YAA+B,CAAC,CAC5E,qBACA,CAAC,GACD,EAAE,eAAe,IAAI,CACvB,CAAC,CAAC,CAAC;;AAGH,IAAa,oBAAb,cAAuC,OAAO,YAA+B,CAAC,CAC5E,qBACA,CAAC,GACD,EAAE,eAAe,IAAI,CACvB,CAAC,CAAC,CAAC;;;;;;AAOH,IAAa,+BAAb,cAAkD,OAAO,YAA0C,CAAC,CAClG,gCACA,CAAC,GACD,EAAE,eAAe,IAAI,CACvB,CAAC,CAAC,CAAC;;AAGH,IAAa,0BAAb,cAA6C,OAAO,YAAqC,CAAC,CACxF,2BACA,CAAC,GACD,EAAE,eAAe,IAAI,CACvB,CAAC,CAAC,CAAC;;;;;;;AAQH,IAAa,qBAAb,cAAwC,OAAO,YAAgC,CAAC,CAC9E,sBACA;CACE,UAAU;;CAEV,MAAM,OAAO;AACf,CACF,CAAC,CAAC,CAAC;;AAGH,IAAa,qBAAb,cAAwC,OAAO,YAAgC,CAAC,CAC9E,sBACA;CACE,UAAU;CACV,SAAS,OAAO;AAClB,CACF,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import "../signInErrors.mjs";
|
|
2
|
+
import "../openid-client/models.mjs";
|
|
3
|
+
import { Effect } from "effect";
|
|
4
|
+
//#region src/oauth/github/identity.d.ts
|
|
5
|
+
declare const gitHubOAuthAppProviderKey: string & import("effect/Brand").Brand<"effect-auth/OAuthProviderKey">;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { gitHubOAuthAppProviderKey };
|
|
8
|
+
//# sourceMappingURL=identity.d.mts.map
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { OAuthProviderKey } from "../schema.mjs";
|
|
2
|
+
import { OAuthProtocolRejected } from "../signInErrors.mjs";
|
|
3
|
+
import { Effect, Schema } from "effect";
|
|
4
|
+
//#region src/oauth/github/identity.ts
|
|
5
|
+
const gitHubOAuthAppProviderKey = OAuthProviderKey.make("github");
|
|
6
|
+
const identity = Schema.Struct({
|
|
7
|
+
id: Schema.Int.check(Schema.isBetween({
|
|
8
|
+
minimum: 1,
|
|
9
|
+
maximum: Number.MAX_SAFE_INTEGER
|
|
10
|
+
})),
|
|
11
|
+
login: Schema.optionalKey(Schema.NonEmptyString.check(Schema.isMaxLength(256)))
|
|
12
|
+
});
|
|
13
|
+
const decode = Schema.decodeUnknownEffect(identity);
|
|
14
|
+
const decodeGitHubIdentity = Effect.fn("GitHubOAuthApp.decodeIdentity")(function* (body) {
|
|
15
|
+
const value = yield* decode(body).pipe(Effect.mapError(() => OAuthProtocolRejected.make({})));
|
|
16
|
+
return {
|
|
17
|
+
subject: String(value.id),
|
|
18
|
+
...value.login === void 0 ? {} : { profile: { displayName: value.login } }
|
|
19
|
+
};
|
|
20
|
+
});
|
|
21
|
+
//#endregion
|
|
22
|
+
export { decodeGitHubIdentity, gitHubOAuthAppProviderKey };
|
|
23
|
+
|
|
24
|
+
//# sourceMappingURL=identity.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity.mjs","names":[],"sources":["../../../src/oauth/github/identity.ts"],"sourcesContent":["import { Effect, Schema } from \"effect\";\n\nimport type { PlainOAuthIdentity } from \"../openid-client/models\";\nimport { OAuthProviderKey } from \"../schema\";\nimport { OAuthProtocolRejected } from \"../signInErrors\";\n\nexport const gitHubOAuthAppProviderKey = OAuthProviderKey.make(\"github\");\n\nconst identity = Schema.Struct({\n id: Schema.Int.check(Schema.isBetween({ minimum: 1, maximum: Number.MAX_SAFE_INTEGER })),\n login: Schema.optionalKey(Schema.NonEmptyString.check(Schema.isMaxLength(256))),\n});\n\n// oxlint-disable-next-line no-restricted-properties -- GitHub /user is an untyped, freshly authenticated JSON boundary.\nconst decode = Schema.decodeUnknownEffect(identity);\n\nexport const decodeGitHubIdentity = Effect.fn(\"GitHubOAuthApp.decodeIdentity\")(function* (\n body: unknown,\n): Effect.fn.Return<PlainOAuthIdentity, OAuthProtocolRejected> {\n const value = yield* decode(body).pipe(Effect.mapError(() => OAuthProtocolRejected.make({})));\n\n return {\n subject: String(value.id),\n ...(value.login === undefined ? {} : { profile: { displayName: value.login } }),\n };\n});\n"],"mappings":";;;;AAMA,MAAa,4BAA4B,iBAAiB,KAAK,QAAQ;AAEvE,MAAM,WAAW,OAAO,OAAO;CAC7B,IAAI,OAAO,IAAI,MAAM,OAAO,UAAU;EAAE,SAAS;EAAG,SAAS,OAAO;CAAiB,CAAC,CAAC;CACvF,OAAO,OAAO,YAAY,OAAO,eAAe,MAAM,OAAO,YAAY,GAAG,CAAC,CAAC;AAChF,CAAC;AAGD,MAAM,SAAS,OAAO,oBAAoB,QAAQ;AAElD,MAAa,uBAAuB,OAAO,GAAG,+BAA+B,CAAC,CAAC,WAC7E,MAC6D;CAC7D,MAAM,QAAQ,OAAO,OAAO,IAAI,CAAC,CAAC,KAAK,OAAO,eAAe,sBAAsB,KAAK,CAAC,CAAC,CAAC,CAAC;CAE5F,OAAO;EACL,SAAS,OAAO,MAAM,EAAE;EACxB,GAAI,MAAM,UAAU,KAAA,IAAY,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,MAAM,MAAM,EAAE;CAC/E;AACF,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { OAuthProtocolConfiguration } from "../signInModels.mjs";
|
|
2
|
+
import { OAuthConnectedProfile } from "../connectedModels.mjs";
|
|
3
|
+
import { OpenIdClientConfigurationError } from "../openid-client/models.mjs";
|
|
4
|
+
import { Redacted } from "effect";
|
|
5
|
+
import { CustomFetch } from "openid-client";
|
|
6
|
+
//#region src/oauth/github/models.d.ts
|
|
7
|
+
/** GitHub.com OAuth App credentials, distinct from GitHub App installation or user tokens. */
|
|
8
|
+
interface GitHubOAuthAppGeneration {
|
|
9
|
+
readonly configurationGeneration: OAuthProtocolConfiguration["configurationGeneration"];
|
|
10
|
+
readonly issuance: "active" | "retired";
|
|
11
|
+
readonly clientId: string;
|
|
12
|
+
readonly clientSecret: Redacted.Redacted<string>;
|
|
13
|
+
readonly callbacks: ReadonlyArray<{
|
|
14
|
+
readonly callbackId: OAuthProtocolConfiguration["callbackId"];
|
|
15
|
+
readonly redirectUri: OAuthProtocolConfiguration["redirectUri"];
|
|
16
|
+
}>;
|
|
17
|
+
}
|
|
18
|
+
interface GitHubOAuthAppProtocolOptions {
|
|
19
|
+
readonly registrations: ReadonlyArray<GitHubOAuthAppGeneration>;
|
|
20
|
+
readonly timeoutSeconds: number;
|
|
21
|
+
/** Trusted transport: preserve endpoint authority and cancellation; never retry or log credentials. */
|
|
22
|
+
readonly fetch?: CustomFetch;
|
|
23
|
+
}
|
|
24
|
+
interface GitHubOAuthAppConnectedProtocolOptions {
|
|
25
|
+
readonly registrations: ReadonlyArray<GitHubOAuthAppGeneration & {
|
|
26
|
+
/** Each profile uses provider "github" and its actual clientId as clientRegistrationId. */
|
|
27
|
+
readonly profiles: ReadonlyArray<OAuthConnectedProfile>;
|
|
28
|
+
}>;
|
|
29
|
+
readonly timeoutSeconds: number;
|
|
30
|
+
readonly fetch?: CustomFetch;
|
|
31
|
+
}
|
|
32
|
+
//#endregion
|
|
33
|
+
export { GitHubOAuthAppConnectedProtocolOptions, GitHubOAuthAppGeneration, GitHubOAuthAppProtocolOptions };
|
|
34
|
+
//# sourceMappingURL=models.d.mts.map
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { RequestBindingFlowId } from "../../operations/requestBindingModels.mjs";
|
|
2
|
+
import "../../Operations.mjs";
|
|
3
|
+
import { OAuthProviderKey } from "../schema.mjs";
|
|
4
|
+
import { OAuthProtocolRejected, OAuthRejected, OAuthUnavailable } from "../signInErrors.mjs";
|
|
5
|
+
import { OAuthCallbackId, OAuthCodeResponse, OAuthProtocolConfiguration, OAuthProtocolPreparation, OAuthTransactionSecrets, OAuthVerifiedExternalIdentity } from "../signInModels.mjs";
|
|
6
|
+
import { OAuthConnectedConfiguration, OAuthConnectedGrantResponse, OAuthConnectedProfile, OAuthConnectedTokenContext, OAuthConnectedTokenMaterial } from "../connectedModels.mjs";
|
|
7
|
+
import { OAuthConnectedProtocol } from "../OAuthConnectedProtocol.mjs";
|
|
8
|
+
import { OAuthProtocol } from "../OAuthProtocol.mjs";
|
|
9
|
+
import { OpenIdClientConfigurationError } from "../openid-client/models.mjs";
|
|
10
|
+
import { GitHubOAuthAppConnectedProtocolOptions, GitHubOAuthAppProtocolOptions } from "./models.mjs";
|
|
11
|
+
import { Effect, Layer } from "effect";
|
|
12
|
+
//#region src/oauth/github/protocol.d.ts
|
|
13
|
+
declare const makeGitHubOAuthAppProtocol: (options: GitHubOAuthAppProtocolOptions) => Effect.Effect<{
|
|
14
|
+
readonly prepareAuthorization: (input: {
|
|
15
|
+
readonly provider: OAuthProviderKey;
|
|
16
|
+
readonly callbackId: typeof OAuthCallbackId.Type;
|
|
17
|
+
readonly flowId: RequestBindingFlowId;
|
|
18
|
+
}) => Effect.Effect<OAuthProtocolPreparation, OAuthRejected | OAuthUnavailable>;
|
|
19
|
+
readonly exchangeVerifiedIdentity: (input: {
|
|
20
|
+
readonly configuration: OAuthProtocolConfiguration;
|
|
21
|
+
readonly response: OAuthCodeResponse;
|
|
22
|
+
readonly secrets: OAuthTransactionSecrets;
|
|
23
|
+
readonly verificationStartedAt: import("effect/DateTime").Utc;
|
|
24
|
+
}) => Effect.Effect<OAuthVerifiedExternalIdentity, OAuthProtocolRejected | OAuthUnavailable>;
|
|
25
|
+
}, OAuthUnavailable | OpenIdClientConfigurationError, never>;
|
|
26
|
+
declare const makeGitHubOAuthAppConnectedProtocol: (options: GitHubOAuthAppConnectedProtocolOptions) => Effect.Effect<{
|
|
27
|
+
readonly prepareAuthorization: (input: {
|
|
28
|
+
readonly profile: OAuthConnectedProfile;
|
|
29
|
+
readonly callbackId: typeof OAuthCallbackId.Type;
|
|
30
|
+
readonly flowId: RequestBindingFlowId;
|
|
31
|
+
}) => Effect.Effect<Omit<OAuthProtocolPreparation, "configuration"> & {
|
|
32
|
+
readonly configuration: OAuthConnectedConfiguration;
|
|
33
|
+
}, OAuthProtocolRejected | OAuthUnavailable>;
|
|
34
|
+
readonly exchangeGrant: (input: {
|
|
35
|
+
readonly configuration: OAuthConnectedConfiguration;
|
|
36
|
+
readonly secrets: OAuthTransactionSecrets;
|
|
37
|
+
readonly response: OAuthCodeResponse;
|
|
38
|
+
readonly verificationStartedAt: import("effect/DateTime").Utc;
|
|
39
|
+
}) => Effect.Effect<OAuthConnectedGrantResponse, OAuthProtocolRejected | OAuthUnavailable>;
|
|
40
|
+
readonly refreshGrant: (input: {
|
|
41
|
+
readonly context: OAuthConnectedTokenContext;
|
|
42
|
+
readonly material: OAuthConnectedTokenMaterial;
|
|
43
|
+
readonly verificationStartedAt: import("effect/DateTime").Utc;
|
|
44
|
+
}) => Effect.Effect<OAuthConnectedGrantResponse, OAuthProtocolRejected | OAuthUnavailable>;
|
|
45
|
+
readonly revokeGrant: (input: {
|
|
46
|
+
readonly context: OAuthConnectedTokenContext;
|
|
47
|
+
readonly material: OAuthConnectedTokenMaterial;
|
|
48
|
+
}) => Effect.Effect<"Confirmed", OAuthUnavailable>;
|
|
49
|
+
}, OAuthUnavailable | OpenIdClientConfigurationError, never>;
|
|
50
|
+
declare const gitHubOAuthAppProtocolLayer: (options: GitHubOAuthAppProtocolOptions) => Layer.Layer<OAuthProtocol, OAuthUnavailable | OpenIdClientConfigurationError, never>;
|
|
51
|
+
declare const gitHubOAuthAppConnectedProtocolLayer: (options: GitHubOAuthAppConnectedProtocolOptions) => Layer.Layer<OAuthConnectedProtocol, OAuthUnavailable | OpenIdClientConfigurationError, never>;
|
|
52
|
+
//#endregion
|
|
53
|
+
export { gitHubOAuthAppConnectedProtocolLayer, gitHubOAuthAppProtocolLayer, makeGitHubOAuthAppConnectedProtocol, makeGitHubOAuthAppProtocol };
|
|
54
|
+
//# sourceMappingURL=protocol.d.mts.map
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import { OAuthCallbackId, OAuthGeneration, OAuthIssuer, OAuthRedirectUri } from "../signInModels.mjs";
|
|
2
|
+
import { OAuthUnavailable } from "../signInErrors.mjs";
|
|
3
|
+
import { snapshotOAuthSync } from "../signInSnapshot.mjs";
|
|
4
|
+
import { OAuthConnectedProfile } from "../connectedModels.mjs";
|
|
5
|
+
import { OAuthConnectedProtocol } from "../OAuthConnectedProtocol.mjs";
|
|
6
|
+
import { OAuthProtocol } from "../OAuthProtocol.mjs";
|
|
7
|
+
import { OpenIdClientConfigurationError } from "../openid-client/models.mjs";
|
|
8
|
+
import { DefiniteTokenRejection } from "../openid-client/compatibility.mjs";
|
|
9
|
+
import { boundedFetch } from "../openid-client/transport.mjs";
|
|
10
|
+
import { makeOAuthProtocolWithCompatibility } from "../openid-client/protocol.mjs";
|
|
11
|
+
import { ProviderRevocation } from "../openid-client/ProviderRevocation.mjs";
|
|
12
|
+
import { makeConnectedProtocolWithCompatibility } from "../openid-client/connected/protocol.mjs";
|
|
13
|
+
import { decodeGitHubIdentity, gitHubOAuthAppProviderKey } from "./identity.mjs";
|
|
14
|
+
import { Effect, Encoding, Layer, Predicate, Redacted, Schema } from "effect";
|
|
15
|
+
//#region src/oauth/github/protocol.ts
|
|
16
|
+
const unavailable = () => OAuthUnavailable.make({});
|
|
17
|
+
const invalid = () => OpenIdClientConfigurationError.make({ reason: "provider" });
|
|
18
|
+
const issuer = OAuthIssuer.make("https://github.com");
|
|
19
|
+
const headers = Object.freeze({
|
|
20
|
+
Accept: "application/vnd.github+json",
|
|
21
|
+
"User-Agent": "effect-auth-github-oauth-app",
|
|
22
|
+
"X-GitHub-Api-Version": "2026-03-10"
|
|
23
|
+
});
|
|
24
|
+
const generation = Schema.Struct({
|
|
25
|
+
configurationGeneration: OAuthGeneration,
|
|
26
|
+
issuance: Schema.Literals(["active", "retired"]),
|
|
27
|
+
clientId: Schema.String.check(Schema.isPattern(/^[A-Za-z0-9._-]{1,256}$/)),
|
|
28
|
+
clientSecret: Schema.RedactedFromValue(Schema.NonEmptyString.check(Schema.isMaxLength(4096))),
|
|
29
|
+
callbacks: Schema.Array(Schema.Struct({
|
|
30
|
+
callbackId: OAuthCallbackId,
|
|
31
|
+
redirectUri: OAuthRedirectUri
|
|
32
|
+
})).check(Schema.isMinLength(1), Schema.isMaxLength(16))
|
|
33
|
+
});
|
|
34
|
+
const generations = Schema.Array(generation).check(Schema.isMinLength(1), Schema.isMaxLength(64));
|
|
35
|
+
const connectedGenerations = Schema.Array(Schema.Struct({
|
|
36
|
+
...generation.fields,
|
|
37
|
+
profiles: Schema.Array(OAuthConnectedProfile).check(Schema.isMinLength(1), Schema.isMaxLength(64))
|
|
38
|
+
})).check(Schema.isMinLength(1), Schema.isMaxLength(64));
|
|
39
|
+
const timeout = Schema.Finite.check(Schema.isBetween({
|
|
40
|
+
minimum: 1,
|
|
41
|
+
maximum: 30
|
|
42
|
+
}));
|
|
43
|
+
const isTimeout = Schema.is(timeout);
|
|
44
|
+
const capture = (schema, registrations, options) => Effect.try({
|
|
45
|
+
try: () => {
|
|
46
|
+
const result = snapshotOAuthSync(schema, registrations);
|
|
47
|
+
const fetch = options.fetch;
|
|
48
|
+
const timeoutSeconds = options.timeoutSeconds;
|
|
49
|
+
if (!isTimeout(timeoutSeconds) || fetch !== void 0 && !Predicate.isFunction(fetch)) throw invalid();
|
|
50
|
+
return {
|
|
51
|
+
registrations: result,
|
|
52
|
+
timeoutSeconds,
|
|
53
|
+
...fetch === void 0 ? {} : { fetch }
|
|
54
|
+
};
|
|
55
|
+
},
|
|
56
|
+
catch: invalid
|
|
57
|
+
});
|
|
58
|
+
const provider = (registration) => ({
|
|
59
|
+
provider: gitHubOAuthAppProviderKey,
|
|
60
|
+
configurationGeneration: registration.configurationGeneration,
|
|
61
|
+
issuance: registration.issuance,
|
|
62
|
+
issuer,
|
|
63
|
+
protocol: "oauth",
|
|
64
|
+
responseIssuerMode: "unsupported",
|
|
65
|
+
clientId: registration.clientId,
|
|
66
|
+
authentication: {
|
|
67
|
+
method: "client_secret_post",
|
|
68
|
+
secret: registration.clientSecret
|
|
69
|
+
},
|
|
70
|
+
callbacks: registration.callbacks,
|
|
71
|
+
authorizationEndpoint: "https://github.com/login/oauth/authorize",
|
|
72
|
+
tokenEndpoint: "https://github.com/login/oauth/access_token",
|
|
73
|
+
pkceS256: true,
|
|
74
|
+
identitySource: {
|
|
75
|
+
url: "https://api.github.com/user",
|
|
76
|
+
headers,
|
|
77
|
+
decodeIdentity: decodeGitHubIdentity
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
const csvCell = Schema.String.check(Schema.isPattern(/^[A-Za-z0-9_:-]{1,256}$/));
|
|
81
|
+
const isCell = Schema.is(csvCell);
|
|
82
|
+
/** GitHub's receipt is comma-delimited, unlike the generic OAuth scope string. */
|
|
83
|
+
const scopes = (receipt, expected) => {
|
|
84
|
+
if (receipt === void 0 || receipt.length > 16447) throw unavailable();
|
|
85
|
+
const result = receipt === "" ? [] : receipt.split(",").map((cell) => cell.replace(/^[ \t]+|[ \t]+$/g, ""));
|
|
86
|
+
if (result.length > 64 || result.some((cell) => !isCell(cell)) || new Set(result).size !== result.length || result.length !== expected.length || result.some((cell) => !expected.includes(cell))) throw unavailable();
|
|
87
|
+
return result;
|
|
88
|
+
};
|
|
89
|
+
const token = Schema.NonEmptyString.check(Schema.isMaxLength(16384));
|
|
90
|
+
const expiry = Schema.Finite.check(Schema.isGreaterThan(0));
|
|
91
|
+
const receiptSchema = Schema.Struct({
|
|
92
|
+
access_token: token,
|
|
93
|
+
token_type: Schema.String.check(Schema.isPattern(/^[Bb][Ee][Aa][Rr][Ee][Rr]$/)),
|
|
94
|
+
scope: Schema.String.check(Schema.isMaxLength(16447)),
|
|
95
|
+
expires_in: Schema.optionalKey(expiry),
|
|
96
|
+
refresh_token: Schema.optionalKey(token),
|
|
97
|
+
refresh_token_expires_in: Schema.optionalKey(expiry)
|
|
98
|
+
});
|
|
99
|
+
const decodeReceipt = Schema.decodeUnknownSync(receiptSchema);
|
|
100
|
+
const encodeRevocation = Schema.encodeSync(Schema.fromJsonString(Schema.Struct({ access_token: token })));
|
|
101
|
+
const terminalReceipt = Schema.Struct({
|
|
102
|
+
error: Schema.NonEmptyString.check(Schema.isMaxLength(128)),
|
|
103
|
+
error_description: Schema.optionalKey(Schema.String.check(Schema.isMaxLength(4096))),
|
|
104
|
+
error_uri: Schema.optionalKey(Schema.String.check(Schema.isMaxLength(2048)))
|
|
105
|
+
});
|
|
106
|
+
const decodeTerminalReceipt = Schema.decodeUnknownSync(terminalReceipt);
|
|
107
|
+
const successKeys = [
|
|
108
|
+
"access_token",
|
|
109
|
+
"token_type",
|
|
110
|
+
"scope",
|
|
111
|
+
"expires_in",
|
|
112
|
+
"refresh_token",
|
|
113
|
+
"refresh_token_expires_in",
|
|
114
|
+
"id_token"
|
|
115
|
+
];
|
|
116
|
+
const compatibility = Object.freeze({
|
|
117
|
+
inspectReceipt: ({ body, status, contentType }, input) => {
|
|
118
|
+
if (contentType?.split(";", 1)[0]?.trim().toLowerCase() !== "application/json") throw unavailable();
|
|
119
|
+
if (!Predicate.isObject(body)) throw unavailable();
|
|
120
|
+
if (Object.hasOwn(body, "error")) {
|
|
121
|
+
if (successKeys.some((key) => Object.hasOwn(body, key))) throw unavailable();
|
|
122
|
+
const terminal = decodeTerminalReceipt(body);
|
|
123
|
+
if ((status === 200 || status === 400) && terminal.error === (input.operation === "authorization_code" ? "bad_verification_code" : "bad_refresh_token")) throw new DefiniteTokenRejection();
|
|
124
|
+
throw unavailable();
|
|
125
|
+
}
|
|
126
|
+
if (status !== 200 || [
|
|
127
|
+
"error_description",
|
|
128
|
+
"error_uri",
|
|
129
|
+
"id_token"
|
|
130
|
+
].some((key) => Object.hasOwn(body, key))) throw unavailable();
|
|
131
|
+
const receipt = decodeReceipt(body);
|
|
132
|
+
scopes(receipt.scope, input.scopes);
|
|
133
|
+
if (input.refreshRequired && (receipt.refresh_token === void 0 || receipt.expires_in === void 0 || receipt.refresh_token_expires_in === void 0)) throw unavailable();
|
|
134
|
+
},
|
|
135
|
+
authorizationScopes: (permissions, refresh) => refresh ? [...permissions, "offline_access"] : permissions,
|
|
136
|
+
decodeScopes: scopes,
|
|
137
|
+
includeRefreshScope: false
|
|
138
|
+
});
|
|
139
|
+
const revocationLayer = (options) => {
|
|
140
|
+
const fetch = options.fetch ?? ((url, init) => globalThis.fetch(url, {
|
|
141
|
+
...init,
|
|
142
|
+
body: init.body instanceof Uint8Array ? new Uint8Array(init.body) : init.body
|
|
143
|
+
}));
|
|
144
|
+
const timeoutSeconds = options.timeoutSeconds;
|
|
145
|
+
return Layer.succeed(ProviderRevocation, ProviderRevocation.of({ revoke: Effect.fn("GitHubOAuthApp.revoke")(function* (input) {
|
|
146
|
+
yield* Effect.tryPromise({
|
|
147
|
+
try: async (effectSignal) => {
|
|
148
|
+
if (input.authentication.method !== "client_secret_post" || input.context.configuration.profile.clientRegistrationId !== input.clientId || input.context.identity.provider !== gitHubOAuthAppProviderKey || input.context.identity.issuer !== issuer) throw unavailable();
|
|
149
|
+
const url = `https://api.github.com/applications/${encodeURIComponent(input.clientId)}/grant`;
|
|
150
|
+
const signal = AbortSignal.any([effectSignal, AbortSignal.timeout(Math.ceil(timeoutSeconds * 1e3))]);
|
|
151
|
+
const response = await boundedFetch(fetch, signal, /* @__PURE__ */ new Set([url]))(url, {
|
|
152
|
+
method: "DELETE",
|
|
153
|
+
redirect: "manual",
|
|
154
|
+
headers: {
|
|
155
|
+
...headers,
|
|
156
|
+
"Content-Type": "application/json",
|
|
157
|
+
Authorization: `Basic ${Encoding.encodeBase64(`${input.clientId}:${Redacted.value(input.authentication.secret)}`)}`
|
|
158
|
+
},
|
|
159
|
+
body: encodeRevocation({ access_token: Redacted.value(input.material.accessToken) }),
|
|
160
|
+
signal
|
|
161
|
+
});
|
|
162
|
+
signal.throwIfAborted();
|
|
163
|
+
if (response.status !== 204) throw unavailable();
|
|
164
|
+
},
|
|
165
|
+
catch: unavailable
|
|
166
|
+
});
|
|
167
|
+
}) }));
|
|
168
|
+
};
|
|
169
|
+
const makeGitHubOAuthAppProtocol = Effect.fn("makeGitHubOAuthAppProtocol")(function* (options) {
|
|
170
|
+
const saved = yield* capture(generations, options.registrations, options);
|
|
171
|
+
if (saved.registrations.filter((item) => item.issuance === "active").length !== 1) return yield* invalid();
|
|
172
|
+
return yield* makeOAuthProtocolWithCompatibility({
|
|
173
|
+
...saved,
|
|
174
|
+
providers: saved.registrations.map((item) => ({
|
|
175
|
+
...provider(item),
|
|
176
|
+
scopes: ["read:user"]
|
|
177
|
+
}))
|
|
178
|
+
}, compatibility);
|
|
179
|
+
});
|
|
180
|
+
const makeGitHubOAuthAppConnectedProtocol = Effect.fn("makeGitHubOAuthAppConnectedProtocol")(function* (options) {
|
|
181
|
+
const saved = yield* capture(connectedGenerations, options.registrations, options);
|
|
182
|
+
if (saved.registrations.filter((item) => item.issuance === "active").length !== 1) return yield* invalid();
|
|
183
|
+
for (const registration of saved.registrations) for (const profile of registration.profiles) if (profile.provider !== gitHubOAuthAppProviderKey || profile.clientRegistrationId !== registration.clientId || profile.resources.length !== 0 || profile.scopes.some((scope) => scope === "offline_access" || !isCell(scope)) || (profile.retention === "access-only" ? profile.refresh !== "unsupported" || profile.maximumRefreshLifetimeMillis !== void 0 : profile.refresh !== "rotating" || profile.maximumRefreshLifetimeMillis === void 0)) return yield* invalid();
|
|
184
|
+
return yield* makeConnectedProtocolWithCompatibility({
|
|
185
|
+
...saved,
|
|
186
|
+
providers: saved.registrations.map((item) => ({
|
|
187
|
+
...provider(item),
|
|
188
|
+
profiles: item.profiles,
|
|
189
|
+
clientRegistrationId: item.clientId,
|
|
190
|
+
resourceIndicators: "unsupported",
|
|
191
|
+
refreshExpiry: {
|
|
192
|
+
field: "refresh_token_expires_in",
|
|
193
|
+
zero: "expired"
|
|
194
|
+
},
|
|
195
|
+
revocation: { mode: "provider-cohort" }
|
|
196
|
+
}))
|
|
197
|
+
}, compatibility).pipe(Effect.provide(revocationLayer(saved)));
|
|
198
|
+
});
|
|
199
|
+
const gitHubOAuthAppProtocolLayer = (options) => Layer.effect(OAuthProtocol, makeGitHubOAuthAppProtocol(options));
|
|
200
|
+
const gitHubOAuthAppConnectedProtocolLayer = (options) => Layer.effect(OAuthConnectedProtocol, makeGitHubOAuthAppConnectedProtocol(options));
|
|
201
|
+
//#endregion
|
|
202
|
+
export { gitHubOAuthAppConnectedProtocolLayer, gitHubOAuthAppProtocolLayer, makeGitHubOAuthAppConnectedProtocol, makeGitHubOAuthAppProtocol };
|
|
203
|
+
|
|
204
|
+
//# sourceMappingURL=protocol.mjs.map
|