@yielded/auth-persistence 0.1.0-beta.24 → 0.1.0-beta.26
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/README.md +6 -8
- package/dist/Adapter.d.mts +47 -33
- package/dist/Adapter.mjs +36 -23
- package/dist/OAuthPersistence.d.mts +35 -51
- package/dist/OAuthPersistence.mjs +60 -68
- package/dist/OAuthPersistence.mjs.map +1 -1
- package/dist/index.d.mts +2 -2
- package/dist/index.mjs +2 -2
- package/dist/internal/browser-login.d.mts +1 -1
- package/dist/internal/browser-login.mjs +29 -9
- package/dist/internal/browser-login.mjs.map +1 -1
- package/dist/internal/configuration.d.mts +13 -8
- package/dist/internal/configuration.mjs.map +1 -1
- package/dist/internal/crypto.d.mts +1 -0
- package/dist/internal/crypto.mjs +1 -1
- package/dist/internal/d1-planning.mjs +8 -0
- package/dist/internal/d1-planning.mjs.map +1 -0
- package/dist/internal/email-native-state.mjs +135 -0
- package/dist/internal/email-native-state.mjs.map +1 -0
- package/dist/internal/email-native.d.mts +17 -0
- package/dist/internal/email-native.mjs +245 -0
- package/dist/internal/email-native.mjs.map +1 -0
- package/dist/internal/email-policy.mjs +92 -0
- package/dist/internal/email-policy.mjs.map +1 -0
- package/dist/internal/email-registration-native.d.mts +38 -0
- package/dist/internal/email-registration-native.mjs +171 -0
- package/dist/internal/email-registration-native.mjs.map +1 -0
- package/dist/internal/models/email-model.d.mts +40 -104
- package/dist/internal/models/email-model.mjs +3 -5
- package/dist/internal/models/email-model.mjs.map +1 -1
- package/dist/internal/models/oauth-connected-model.d.mts +44 -213
- package/dist/internal/models/oauth-connected-model.mjs +6 -14
- package/dist/internal/models/oauth-connected-model.mjs.map +1 -1
- package/dist/internal/models/oauth-model.d.mts +95 -244
- package/dist/internal/models/oauth-model.mjs +28 -22
- package/dist/internal/models/oauth-model.mjs.map +1 -1
- package/dist/internal/models/passkey-model.d.mts +11 -147
- package/dist/internal/models/passkey-model.mjs +5 -24
- package/dist/internal/models/passkey-model.mjs.map +1 -1
- package/dist/internal/models/passkey-registration-ceremony-model.d.mts +5 -39
- package/dist/internal/models/passkey-write-model.d.mts +17 -75
- package/dist/internal/models/passkey-write-model.mjs +1 -7
- package/dist/internal/models/passkey-write-model.mjs.map +1 -1
- package/dist/internal/models/password-model.d.mts +16 -82
- package/dist/internal/models/password-model.mjs +1 -4
- package/dist/internal/models/password-model.mjs.map +1 -1
- package/dist/internal/models/phone-model.d.mts +86 -0
- package/dist/internal/models/phone-model.mjs +10 -0
- package/dist/internal/models/phone-model.mjs.map +1 -0
- package/dist/internal/models/proof-model.d.mts +43 -272
- package/dist/internal/models/proof-model.mjs +2 -10
- package/dist/internal/models/proof-model.mjs.map +1 -1
- package/dist/internal/models/session-model.d.mts +74 -93
- package/dist/internal/models/session-model.mjs +3 -11
- package/dist/internal/models/session-model.mjs.map +1 -1
- package/dist/internal/models/step-up-model.d.mts +12 -50
- package/dist/internal/models/step-up-model.mjs +2 -4
- package/dist/internal/models/step-up-model.mjs.map +1 -1
- package/dist/internal/models/totp-model.d.mts +76 -0
- package/dist/internal/models/totp-model.mjs +10 -0
- package/dist/internal/models/totp-model.mjs.map +1 -0
- package/dist/internal/native-sql-table.d.mts +21 -4
- package/dist/internal/native-sql-table.mjs +9 -5
- package/dist/internal/native-sql-table.mjs.map +1 -1
- package/dist/internal/oauth/native-accounts.d.mts +17 -0
- package/dist/internal/oauth/native-accounts.mjs +290 -0
- package/dist/internal/oauth/native-accounts.mjs.map +1 -0
- package/dist/internal/oauth/native-connected-state.d.mts +11 -0
- package/dist/internal/oauth/native-connected-state.mjs +146 -0
- package/dist/internal/oauth/native-connected-state.mjs.map +1 -0
- package/dist/internal/oauth/native-connected.d.mts +15 -0
- package/dist/internal/oauth/native-connected.mjs +462 -0
- package/dist/internal/oauth/native-connected.mjs.map +1 -0
- package/dist/internal/oauth/native-flow.mjs +138 -0
- package/dist/internal/oauth/native-flow.mjs.map +1 -0
- package/dist/internal/oauth/native-layers.d.mts +24 -0
- package/dist/internal/oauth/native-layers.mjs +13 -0
- package/dist/internal/oauth/native-layers.mjs.map +1 -0
- package/dist/internal/oauth/native-mutation.mjs +122 -0
- package/dist/internal/oauth/native-mutation.mjs.map +1 -0
- package/dist/internal/oauth/native-registration.d.mts +24 -0
- package/dist/internal/oauth/native-registration.mjs +328 -0
- package/dist/internal/oauth/native-registration.mjs.map +1 -0
- package/dist/internal/oauth/native-revocations.d.mts +17 -0
- package/dist/internal/oauth/native-revocations.mjs +106 -0
- package/dist/internal/oauth/native-revocations.mjs.map +1 -0
- package/dist/internal/oauth/native-sign-in.d.mts +17 -0
- package/dist/internal/oauth/native-sign-in.mjs +50 -0
- package/dist/internal/oauth/native-sign-in.mjs.map +1 -0
- package/dist/internal/oauth/native-state.d.mts +10 -0
- package/dist/internal/oauth/native-state.mjs +214 -0
- package/dist/internal/oauth/native-state.mjs.map +1 -0
- package/dist/internal/oauth/state.d.mts +10 -0
- package/dist/internal/oauth/state.mjs +3 -27
- package/dist/internal/oauth/state.mjs.map +1 -1
- package/dist/internal/passkey-actions.mjs +55 -0
- package/dist/internal/passkey-actions.mjs.map +1 -0
- package/dist/internal/passkey-inputs.mjs +73 -0
- package/dist/internal/passkey-inputs.mjs.map +1 -0
- package/dist/internal/passkey-managed.mjs +224 -0
- package/dist/internal/passkey-managed.mjs.map +1 -0
- package/dist/internal/passkey-native-ceremony.d.mts +35 -0
- package/dist/internal/passkey-native-ceremony.mjs +38 -0
- package/dist/internal/passkey-native-ceremony.mjs.map +1 -0
- package/dist/internal/passkey-native-flow.mjs +91 -0
- package/dist/internal/passkey-native-flow.mjs.map +1 -0
- package/dist/internal/passkey-native-registration.d.mts +10 -0
- package/dist/internal/passkey-native-registration.mjs +114 -0
- package/dist/internal/passkey-native-registration.mjs.map +1 -0
- package/dist/internal/passkey-native-state.d.mts +15 -0
- package/dist/internal/passkey-native-state.mjs +186 -0
- package/dist/internal/passkey-native-state.mjs.map +1 -0
- package/dist/internal/passkey-native-write.d.mts +82 -0
- package/dist/internal/passkey-native-write.mjs +330 -0
- package/dist/internal/passkey-native-write.mjs.map +1 -0
- package/dist/internal/passkey-native.d.mts +835 -0
- package/dist/internal/passkey-native.mjs +175 -0
- package/dist/internal/passkey-native.mjs.map +1 -0
- package/dist/internal/passkey-policy.mjs +115 -0
- package/dist/internal/passkey-policy.mjs.map +1 -0
- package/dist/internal/password-credentials.mjs +38 -9
- package/dist/internal/password-credentials.mjs.map +1 -1
- package/dist/internal/password-native.d.mts +14 -0
- package/dist/internal/password-native.mjs +292 -0
- package/dist/internal/password-native.mjs.map +1 -0
- package/dist/internal/password-policy.mjs +93 -0
- package/dist/internal/password-policy.mjs.map +1 -0
- package/dist/internal/password-registration-native.d.mts +22 -0
- package/dist/internal/password-registration-native.mjs +142 -0
- package/dist/internal/password-registration-native.mjs.map +1 -0
- package/dist/internal/persistence.d.mts +6 -19
- package/dist/internal/persistence.mjs +199 -166
- package/dist/internal/persistence.mjs.map +1 -1
- package/dist/internal/phone-composed.mjs +79 -0
- package/dist/internal/phone-composed.mjs.map +1 -0
- package/dist/internal/phone-native.d.mts +15 -0
- package/dist/internal/phone-native.mjs +354 -0
- package/dist/internal/phone-native.mjs.map +1 -0
- package/dist/internal/proof-native.d.mts +15 -0
- package/dist/internal/proof-native.mjs +289 -0
- package/dist/internal/proof-native.mjs.map +1 -0
- package/dist/internal/registration.mjs +50 -60
- package/dist/internal/registration.mjs.map +1 -1
- package/dist/internal/session-native-authority.d.mts +15 -0
- package/dist/internal/session-native-authority.mjs +91 -0
- package/dist/internal/session-native-authority.mjs.map +1 -0
- package/dist/internal/session-native-cleanup.d.mts +14 -0
- package/dist/internal/session-native-cleanup.mjs +48 -0
- package/dist/internal/session-native-cleanup.mjs.map +1 -0
- package/dist/internal/session-native-login.d.mts +15 -0
- package/dist/internal/session-native-login.mjs +87 -0
- package/dist/internal/session-native-login.mjs.map +1 -0
- package/dist/internal/session-native-pending-read.mjs +42 -0
- package/dist/internal/session-native-pending-read.mjs.map +1 -0
- package/dist/internal/session-native-pending.mjs +134 -0
- package/dist/internal/session-native-pending.mjs.map +1 -0
- package/dist/internal/session-native-record.mjs +79 -0
- package/dist/internal/session-native-record.mjs.map +1 -0
- package/dist/internal/session-native-state.mjs +130 -0
- package/dist/internal/session-native-state.mjs.map +1 -0
- package/dist/internal/session-native-stateful.d.mts +16 -0
- package/dist/internal/session-native-stateful.mjs +225 -0
- package/dist/internal/session-native-stateful.mjs.map +1 -0
- package/dist/internal/session-native-step-up.d.mts +15 -0
- package/dist/internal/session-native-step-up.mjs +212 -0
- package/dist/internal/session-native-step-up.mjs.map +1 -0
- package/dist/internal/session-native-validity.d.mts +15 -0
- package/dist/internal/session-native-validity.mjs +97 -0
- package/dist/internal/session-native-validity.mjs.map +1 -0
- package/dist/internal/session-policy.mjs +29 -0
- package/dist/internal/session-policy.mjs.map +1 -0
- package/dist/internal/sql-authority.d.mts +16 -0
- package/dist/internal/sql-authority.mjs +32 -0
- package/dist/internal/sql-authority.mjs.map +1 -0
- package/dist/internal/sql-change.mjs +21 -0
- package/dist/internal/sql-change.mjs.map +1 -0
- package/dist/internal/sql-cleanup.mjs +35 -0
- package/dist/internal/sql-cleanup.mjs.map +1 -0
- package/dist/internal/sql-commit.d.mts +72 -0
- package/dist/internal/sql-commit.mjs +176 -0
- package/dist/internal/sql-commit.mjs.map +1 -0
- package/dist/internal/sql-expression.d.mts +17 -0
- package/dist/internal/sql-expression.mjs +49 -0
- package/dist/internal/sql-expression.mjs.map +1 -0
- package/dist/internal/sql-oauth-connected-model.d.mts +7 -23
- package/dist/internal/sql-oauth-model.d.mts +27 -52
- package/dist/internal/sql-oauth-model.mjs +3 -4
- package/dist/internal/sql-oauth-model.mjs.map +1 -1
- package/dist/internal/sql-persistence.mjs +5 -9
- package/dist/internal/sql-persistence.mjs.map +1 -1
- package/dist/internal/sql-storage-validation.mjs +1 -2
- package/dist/internal/sql-storage-validation.mjs.map +1 -1
- package/dist/internal/sql-table.d.mts +3 -16
- package/dist/internal/sql-table.mjs +21 -42
- package/dist/internal/sql-table.mjs.map +1 -1
- package/dist/internal/standalone.mjs +2 -3
- package/dist/internal/standalone.mjs.map +1 -1
- package/dist/internal/step-up-state.mjs +5 -8
- package/dist/internal/step-up-state.mjs.map +1 -1
- package/dist/internal/storage-clock.mjs +44 -0
- package/dist/internal/storage-clock.mjs.map +1 -0
- package/dist/internal/storage-mapping.d.mts +11 -8
- package/dist/internal/storage-mapping.mjs +88 -302
- package/dist/internal/storage-mapping.mjs.map +1 -1
- package/dist/internal/storage-plans.mjs +15 -73
- package/dist/internal/storage-plans.mjs.map +1 -1
- package/dist/internal/storage-tables.d.mts +37 -520
- package/dist/internal/storage-tables.mjs +31 -211
- package/dist/internal/storage-tables.mjs.map +1 -1
- package/dist/internal/storage-validation.d.mts +1 -6
- package/dist/internal/storage-validation.mjs +1 -42
- package/dist/internal/storage-validation.mjs.map +1 -1
- package/dist/internal/table-model.d.mts +21 -0
- package/dist/internal/totp-native.d.mts +15 -0
- package/dist/internal/totp-native.mjs +401 -0
- package/dist/internal/totp-native.mjs.map +1 -0
- package/package.json +1 -1
- package/src/Adapter.ts +143 -199
- package/src/OAuthPersistence.ts +128 -271
- package/src/index.ts +1 -1
- package/src/internal/browser-login.ts +54 -24
- package/src/internal/configuration.ts +16 -31
- package/src/internal/d1-planning.ts +7 -0
- package/src/internal/email-native-state.ts +247 -0
- package/src/internal/email-native.ts +514 -0
- package/src/internal/email-policy.ts +235 -0
- package/src/internal/email-registration-native.ts +386 -0
- package/src/internal/models/email-model.ts +76 -214
- package/src/internal/models/oauth-connected-model.ts +50 -288
- package/src/internal/models/oauth-model.ts +147 -368
- package/src/internal/models/passkey-model.ts +11 -208
- package/src/internal/models/passkey-registration-ceremony-model.ts +6 -60
- package/src/internal/models/passkey-write-model.ts +14 -95
- package/src/internal/models/password-model.ts +28 -148
- package/src/internal/models/phone-model.ts +110 -0
- package/src/internal/models/proof-model.ts +48 -404
- package/src/internal/models/session-model.ts +102 -200
- package/src/internal/models/step-up-model.ts +17 -96
- package/src/internal/models/totp-model.ts +82 -0
- package/src/internal/native-sql-table.ts +32 -11
- package/src/internal/oauth/native-accounts.ts +576 -0
- package/src/internal/oauth/native-connected-state.ts +288 -0
- package/src/internal/oauth/native-connected.ts +888 -0
- package/src/internal/oauth/native-flow.ts +253 -0
- package/src/internal/oauth/native-layers.ts +83 -0
- package/src/internal/oauth/native-mutation.ts +222 -0
- package/src/internal/oauth/native-registration.ts +545 -0
- package/src/internal/oauth/native-revocations.ts +190 -0
- package/src/internal/oauth/native-sign-in.ts +111 -0
- package/src/internal/oauth/native-state.ts +346 -0
- package/src/internal/oauth/state.ts +2 -70
- package/src/internal/passkey-actions.ts +70 -0
- package/src/internal/passkey-inputs.ts +56 -0
- package/src/internal/passkey-managed.ts +360 -0
- package/src/internal/passkey-native-ceremony.ts +66 -0
- package/src/internal/passkey-native-flow.ts +140 -0
- package/src/internal/passkey-native-registration.ts +221 -0
- package/src/internal/passkey-native-state.ts +335 -0
- package/src/internal/passkey-native-write.ts +611 -0
- package/src/internal/passkey-native.ts +372 -0
- package/src/internal/passkey-policy.ts +246 -0
- package/src/internal/password-credentials.ts +52 -10
- package/src/internal/password-native.ts +571 -0
- package/src/internal/password-policy.ts +307 -0
- package/src/internal/password-registration-native.ts +322 -0
- package/src/internal/persistence.ts +336 -290
- package/src/internal/phone-composed.ts +86 -0
- package/src/internal/phone-native.ts +659 -0
- package/src/internal/proof-native.ts +448 -0
- package/src/internal/registration.ts +96 -143
- package/src/internal/session-native-authority.ts +247 -0
- package/src/internal/session-native-cleanup.ts +65 -0
- package/src/internal/session-native-login.ts +205 -0
- package/src/internal/session-native-pending-read.ts +68 -0
- package/src/internal/session-native-pending.ts +223 -0
- package/src/internal/session-native-record.ts +141 -0
- package/src/internal/session-native-state.ts +259 -0
- package/src/internal/session-native-stateful.ts +512 -0
- package/src/internal/session-native-step-up.ts +450 -0
- package/src/internal/session-native-validity.ts +208 -0
- package/src/internal/session-policy.ts +59 -0
- package/src/internal/sql-authority.ts +56 -0
- package/src/internal/sql-change.ts +38 -0
- package/src/internal/sql-cleanup.ts +56 -0
- package/src/internal/sql-commit.ts +435 -0
- package/src/internal/sql-expression.ts +94 -0
- package/src/internal/sql-metadata.ts +100 -0
- package/src/internal/sql-oauth-connected-model.ts +6 -95
- package/src/internal/sql-oauth-model.ts +31 -134
- package/src/internal/sql-persistence.ts +2 -6
- package/src/internal/sql-storage-validation.ts +1 -2
- package/src/internal/sql-table.ts +19 -52
- package/src/internal/standalone.ts +2 -11
- package/src/internal/step-up-state.ts +4 -17
- package/src/internal/storage-clock.ts +58 -0
- package/src/internal/storage-mapping.ts +125 -340
- package/src/internal/storage-plans.ts +14 -80
- package/src/internal/storage-tables.ts +28 -212
- package/src/internal/storage-validation.ts +0 -58
- package/src/internal/table-model.ts +24 -0
- package/src/internal/totp-native.ts +701 -0
- package/dist/internal/PasswordPreparedPostconditions.d.mts +0 -22
- package/dist/internal/PasswordPreparedPostconditions.mjs +0 -12
- package/dist/internal/PasswordPreparedPostconditions.mjs.map +0 -1
- package/dist/internal/authority-snapshot.mjs +0 -53
- package/dist/internal/authority-snapshot.mjs.map +0 -1
- package/dist/internal/email-kernel.d.mts +0 -276
- package/dist/internal/email-kernel.mjs +0 -497
- package/dist/internal/email-kernel.mjs.map +0 -1
- package/dist/internal/models/passkey-registration-ceremony-model.mjs +0 -18
- package/dist/internal/models/passkey-registration-ceremony-model.mjs.map +0 -1
- package/dist/internal/oauth/accounts.d.mts +0 -8
- package/dist/internal/oauth/accounts.mjs +0 -379
- package/dist/internal/oauth/accounts.mjs.map +0 -1
- package/dist/internal/oauth/connected-access.d.mts +0 -9
- package/dist/internal/oauth/connected-access.mjs +0 -229
- package/dist/internal/oauth/connected-access.mjs.map +0 -1
- package/dist/internal/oauth/connected-collection.d.mts +0 -7
- package/dist/internal/oauth/connected-collection.mjs +0 -214
- package/dist/internal/oauth/connected-collection.mjs.map +0 -1
- package/dist/internal/oauth/connected-custody.d.mts +0 -6
- package/dist/internal/oauth/connected-custody.mjs +0 -165
- package/dist/internal/oauth/connected-custody.mjs.map +0 -1
- package/dist/internal/oauth/connected-flow.d.mts +0 -7
- package/dist/internal/oauth/connected-flow.mjs +0 -324
- package/dist/internal/oauth/connected-flow.mjs.map +0 -1
- package/dist/internal/oauth/connected-input.mjs +0 -122
- package/dist/internal/oauth/connected-input.mjs.map +0 -1
- package/dist/internal/oauth/connected-keys.d.mts +0 -2
- package/dist/internal/oauth/connected-keys.mjs +0 -22
- package/dist/internal/oauth/connected-keys.mjs.map +0 -1
- package/dist/internal/oauth/connected-maintenance.d.mts +0 -9
- package/dist/internal/oauth/connected-maintenance.mjs +0 -226
- package/dist/internal/oauth/connected-maintenance.mjs.map +0 -1
- package/dist/internal/oauth/connected-management.d.mts +0 -9
- package/dist/internal/oauth/connected-management.mjs +0 -243
- package/dist/internal/oauth/connected-management.mjs.map +0 -1
- package/dist/internal/oauth/connected-reference.mjs +0 -63
- package/dist/internal/oauth/connected-reference.mjs.map +0 -1
- package/dist/internal/oauth/connected-settlement.d.mts +0 -8
- package/dist/internal/oauth/connected-settlement.mjs +0 -141
- package/dist/internal/oauth/connected-settlement.mjs.map +0 -1
- package/dist/internal/oauth/connected-sign-in.d.mts +0 -10
- package/dist/internal/oauth/connected-sign-in.mjs +0 -281
- package/dist/internal/oauth/connected-sign-in.mjs.map +0 -1
- package/dist/internal/oauth/connected-state.d.mts +0 -14
- package/dist/internal/oauth/connected-state.mjs +0 -469
- package/dist/internal/oauth/connected-state.mjs.map +0 -1
- package/dist/internal/oauth/connected-target.d.mts +0 -21
- package/dist/internal/oauth/connected-target.mjs +0 -117
- package/dist/internal/oauth/connected-target.mjs.map +0 -1
- package/dist/internal/oauth/flow.d.mts +0 -5
- package/dist/internal/oauth/flow.mjs +0 -279
- package/dist/internal/oauth/flow.mjs.map +0 -1
- package/dist/internal/oauth/input.mjs +0 -127
- package/dist/internal/oauth/input.mjs.map +0 -1
- package/dist/internal/oauth/owner.d.mts +0 -10
- package/dist/internal/oauth/owner.mjs +0 -10
- package/dist/internal/oauth/owner.mjs.map +0 -1
- package/dist/internal/oauth/query-compiler.d.mts +0 -7
- package/dist/internal/oauth/query-compiler.mjs +0 -9
- package/dist/internal/oauth/query-compiler.mjs.map +0 -1
- package/dist/internal/oauth/registration.d.mts +0 -7
- package/dist/internal/oauth/registration.mjs +0 -393
- package/dist/internal/oauth/registration.mjs.map +0 -1
- package/dist/internal/oauth/target.d.mts +0 -31
- package/dist/internal/oauth/target.mjs +0 -273
- package/dist/internal/oauth/target.mjs.map +0 -1
- package/dist/internal/oauth-kernel.d.mts +0 -1423
- package/dist/internal/oauth-kernel.mjs +0 -187
- package/dist/internal/oauth-kernel.mjs.map +0 -1
- package/dist/internal/passkey/admission.d.mts +0 -6
- package/dist/internal/passkey/admission.mjs +0 -220
- package/dist/internal/passkey/admission.mjs.map +0 -1
- package/dist/internal/passkey/credentials.d.mts +0 -14
- package/dist/internal/passkey/credentials.mjs +0 -249
- package/dist/internal/passkey/credentials.mjs.map +0 -1
- package/dist/internal/passkey/enrollment.mjs +0 -138
- package/dist/internal/passkey/enrollment.mjs.map +0 -1
- package/dist/internal/passkey/flow.d.mts +0 -21
- package/dist/internal/passkey/flow.mjs +0 -452
- package/dist/internal/passkey/flow.mjs.map +0 -1
- package/dist/internal/passkey/management.mjs +0 -231
- package/dist/internal/passkey/management.mjs.map +0 -1
- package/dist/internal/passkey/registration-ceremony.d.mts +0 -9
- package/dist/internal/passkey/registration-ceremony.mjs +0 -129
- package/dist/internal/passkey/registration-ceremony.mjs.map +0 -1
- package/dist/internal/passkey/registration-custody.d.mts +0 -2
- package/dist/internal/passkey/registration-custody.mjs +0 -52
- package/dist/internal/passkey/registration-custody.mjs.map +0 -1
- package/dist/internal/passkey/registration-write.mjs +0 -211
- package/dist/internal/passkey/registration-write.mjs.map +0 -1
- package/dist/internal/passkey/state.d.mts +0 -10
- package/dist/internal/passkey/state.mjs +0 -234
- package/dist/internal/passkey/state.mjs.map +0 -1
- package/dist/internal/passkey/target.d.mts +0 -20
- package/dist/internal/passkey/target.mjs +0 -200
- package/dist/internal/passkey/target.mjs.map +0 -1
- package/dist/internal/passkey/write-state.d.mts +0 -17
- package/dist/internal/passkey/write-state.mjs +0 -346
- package/dist/internal/passkey/write-state.mjs.map +0 -1
- package/dist/internal/passkey/write-target.mjs +0 -192
- package/dist/internal/passkey/write-target.mjs.map +0 -1
- package/dist/internal/passkey-kernel.d.mts +0 -6045
- package/dist/internal/passkey-kernel.mjs +0 -49
- package/dist/internal/passkey-kernel.mjs.map +0 -1
- package/dist/internal/passkeys.d.mts +0 -7
- package/dist/internal/passkeys.mjs +0 -387
- package/dist/internal/passkeys.mjs.map +0 -1
- package/dist/internal/password-credentials.d.mts +0 -11
- package/dist/internal/password-kernel.d.mts +0 -278
- package/dist/internal/password-kernel.mjs +0 -508
- package/dist/internal/password-kernel.mjs.map +0 -1
- package/dist/internal/phone-kernel.d.mts +0 -162
- package/dist/internal/phone-kernel.mjs +0 -437
- package/dist/internal/phone-kernel.mjs.map +0 -1
- package/dist/internal/proof-kernel.d.mts +0 -94
- package/dist/internal/proof-kernel.mjs +0 -624
- package/dist/internal/proof-kernel.mjs.map +0 -1
- package/dist/internal/query-operations.d.mts +0 -68
- package/dist/internal/session-kernel.d.mts +0 -62
- package/dist/internal/session-kernel.mjs +0 -820
- package/dist/internal/session-kernel.mjs.map +0 -1
- package/dist/internal/sql-oauth-connected-model.mjs +0 -7
- package/dist/internal/sql-oauth-connected-model.mjs.map +0 -1
- package/dist/internal/sql-query.d.mts +0 -12
- package/dist/internal/sql-query.mjs +0 -206
- package/dist/internal/sql-query.mjs.map +0 -1
- package/dist/internal/step-up-state.d.mts +0 -49
- package/dist/internal/transaction-execution-kernel.d.mts +0 -37
- package/dist/internal/transaction-execution-kernel.mjs +0 -120
- package/dist/internal/transaction-execution-kernel.mjs.map +0 -1
- package/dist/internal/transaction-kernel.d.mts +0 -81
- package/dist/internal/transaction-kernel.mjs +0 -264
- package/dist/internal/transaction-kernel.mjs.map +0 -1
- package/src/internal/PasswordPreparedPostconditions.ts +0 -30
- package/src/internal/authority-snapshot.ts +0 -91
- package/src/internal/email-kernel.ts +0 -1555
- package/src/internal/oauth/accounts.ts +0 -838
- package/src/internal/oauth/connected-access.ts +0 -388
- package/src/internal/oauth/connected-collection.ts +0 -345
- package/src/internal/oauth/connected-custody.ts +0 -308
- package/src/internal/oauth/connected-flow.ts +0 -562
- package/src/internal/oauth/connected-input.ts +0 -147
- package/src/internal/oauth/connected-keys.ts +0 -31
- package/src/internal/oauth/connected-maintenance.ts +0 -379
- package/src/internal/oauth/connected-management.ts +0 -391
- package/src/internal/oauth/connected-reference.ts +0 -135
- package/src/internal/oauth/connected-settlement.ts +0 -278
- package/src/internal/oauth/connected-sign-in.ts +0 -472
- package/src/internal/oauth/connected-state.ts +0 -924
- package/src/internal/oauth/connected-target.ts +0 -307
- package/src/internal/oauth/flow.ts +0 -505
- package/src/internal/oauth/input.ts +0 -201
- package/src/internal/oauth/owner.ts +0 -22
- package/src/internal/oauth/query-compiler.ts +0 -15
- package/src/internal/oauth/registration.ts +0 -676
- package/src/internal/oauth/target.ts +0 -803
- package/src/internal/oauth-kernel.ts +0 -294
- package/src/internal/passkey/admission.ts +0 -368
- package/src/internal/passkey/credentials.ts +0 -511
- package/src/internal/passkey/enrollment.ts +0 -326
- package/src/internal/passkey/flow.ts +0 -1062
- package/src/internal/passkey/management.ts +0 -426
- package/src/internal/passkey/registration-ceremony.ts +0 -283
- package/src/internal/passkey/registration-custody.ts +0 -91
- package/src/internal/passkey/registration-write.ts +0 -426
- package/src/internal/passkey/state.ts +0 -351
- package/src/internal/passkey/target.ts +0 -598
- package/src/internal/passkey/write-state.ts +0 -678
- package/src/internal/passkey/write-target.ts +0 -450
- package/src/internal/passkey-kernel.ts +0 -112
- package/src/internal/passkeys.ts +0 -652
- package/src/internal/password-kernel.ts +0 -1522
- package/src/internal/phone-kernel.ts +0 -872
- package/src/internal/proof-kernel.ts +0 -1992
- package/src/internal/query-operations.ts +0 -91
- package/src/internal/session-kernel.ts +0 -2406
- package/src/internal/sql-query.ts +0 -304
- package/src/internal/transaction-execution-kernel.ts +0 -335
- package/src/internal/transaction-kernel.ts +0 -603
|
@@ -1,22 +1,17 @@
|
|
|
1
|
+
import { SqlExpression, TableModel } from "../table-model.mjs";
|
|
1
2
|
import { PersistenceMappingError } from "../mapping-error.mjs";
|
|
2
|
-
import { SqlExpression, TableModel } from "../query-operations.mjs";
|
|
3
3
|
import { SubjectIdCodec } from "./common.mjs";
|
|
4
|
-
import {
|
|
5
|
-
import { TokenDigest } from "@yielded/auth/Schema";
|
|
4
|
+
import { Effect, Schema } from "effect";
|
|
6
5
|
import { PreparedCommit } from "@yielded/auth/Hooks";
|
|
6
|
+
import { CleanupResult } from "@yielded/auth/Persistence";
|
|
7
7
|
import { AuthenticationRequirement, SecurityRevision } from "@yielded/auth/Sessions";
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
8
|
+
import { TokenDigest } from "@yielded/auth/Schema";
|
|
9
|
+
import { OAuthAccountRevision, OAuthActionAuthorization, OAuthCleanupInput, OAuthCommandId, OAuthExternalIdentity, OAuthRegistrationAccess, OAuthRegistrationDecision, OAuthRegistrationInspection, OAuthRegistrationIntent, OAuthUnavailable, PrepareOAuthCommit } from "@yielded/auth/OAuth";
|
|
10
10
|
declare namespace oauth_model_d_exports {
|
|
11
|
-
export { OAuthAccountsMapping, OAuthAction, OAuthAuthorityReadTable, OAuthAuthorityTable, OAuthCleanupDescriptor, OAuthCleanupTable, OAuthClock, OAuthCredentialReadTable, OAuthCredentialTable, OAuthD1Mapping, OAuthEligibilityDescriptor, OAuthEligibilityFact, OAuthEligibilityTable,
|
|
11
|
+
export { OAuthAccountsMapping, OAuthAction, OAuthAuthorityReadTable, OAuthAuthorityTable, OAuthCleanupDescriptor, OAuthCleanupTable, OAuthClock, OAuthCredentialReadTable, OAuthCredentialTable, OAuthD1Mapping, OAuthEligibilityDescriptor, OAuthEligibilityFact, OAuthEligibilityTable, OAuthFlowTable, OAuthOwnershipReadTable, OAuthOwnershipTable, OAuthRegistrationAuthority, OAuthRegistrationGuardDescriptor, OAuthRegistrationGuardTable, OAuthRegistrationIntentMapping, OAuthRegistrationIntentTable, OAuthRegistrationMapping, OAuthSignInMapping, OAuthSubjectReadTable, OAuthSubjectTable, oauthCleanupTable, oauthEligibilityTable, oauthRegistrationGuardTable, requiredOAuthRegistrationConstraints, requiredOAuthSignInConstraints };
|
|
12
12
|
}
|
|
13
13
|
type Column<T extends TableModel> = T["column"];
|
|
14
|
-
export type OAuthFlowState = "Pending" | "Claimed" | "Verified" | "RegistrationIssued" | "Linked" | "Cancelled" | "Rejected" | "Ambiguous" | "Conflict";
|
|
15
|
-
export type OAuthTupleState = "Unowned" | "Reserved" | "Owned";
|
|
16
|
-
export type OAuthRegistrationState = "Unbound" | "Registered" | "ProvisioningPending" | "Rejected";
|
|
17
14
|
export type OAuthAction = OAuthActionAuthorization["challenge"]["action"];
|
|
18
|
-
/** The engine writes every critical column explicitly after applying the pure
|
|
19
|
-
* consumer encoder. Native instant values must roundtrip without precision loss. */
|
|
20
15
|
export interface OAuthClock<Expression extends SqlExpression = SqlExpression> {
|
|
21
16
|
readonly encodeInstant: (millis: number) => unknown;
|
|
22
17
|
readonly decodeInstant: (value: unknown) => number;
|
|
@@ -24,6 +19,9 @@ export interface OAuthClock<Expression extends SqlExpression = SqlExpression> {
|
|
|
24
19
|
* PostgreSQL uses clock_timestamp(), never now()/CURRENT_TIMESTAMP. D1 repeats
|
|
25
20
|
* its primary-engine sample bounds in final guards. Return integer milliseconds. */
|
|
26
21
|
readonly engineNowMillis: Expression;
|
|
22
|
+
/** Convert a stored timestamp expression to integer milliseconds. */
|
|
23
|
+
readonly toMillis: (expression: Expression) => Expression;
|
|
24
|
+
readonly fromMillis: (expression: Expression) => Expression;
|
|
27
25
|
}
|
|
28
26
|
export interface OAuthSubjectReadTable<S extends TableModel, Expression extends SqlExpression = SqlExpression> {
|
|
29
27
|
readonly table: S["table"];
|
|
@@ -32,24 +30,21 @@ export interface OAuthSubjectReadTable<S extends TableModel, Expression extends
|
|
|
32
30
|
readonly securityRevision: Column<S>;
|
|
33
31
|
readonly isActiveStatus: (value: unknown) => boolean;
|
|
34
32
|
readonly activeCondition: Expression;
|
|
33
|
+
readonly decodeAuthenticationRequirement: (row: S["select"]) => AuthenticationRequirement;
|
|
35
34
|
}
|
|
36
35
|
export interface OAuthSubjectTable<S extends TableModel, Expression extends SqlExpression = SqlExpression> extends OAuthSubjectReadTable<S, Expression> {
|
|
37
|
-
readonly decodeActionRequirement: (row: S["select"], action: OAuthAction) => AuthenticationRequirement;
|
|
38
|
-
readonly decodeAuthenticationRequirement: (row: S["select"]) => AuthenticationRequirement;
|
|
39
36
|
readonly nextSecurityRevision: (current: SecurityRevision) => SecurityRevision;
|
|
40
37
|
}
|
|
41
|
-
export interface OAuthOwnershipReadTable<O extends TableModel, N
|
|
38
|
+
export interface OAuthOwnershipReadTable<O extends TableModel, N> {
|
|
42
39
|
readonly table: O["table"];
|
|
43
40
|
readonly identityKey: Column<O>;
|
|
44
41
|
readonly provider: Column<O>;
|
|
45
42
|
readonly issuer: Column<O>;
|
|
46
43
|
readonly externalSubject: Column<O>;
|
|
47
44
|
readonly subjectId: Column<O>;
|
|
48
|
-
/** Includes Owned state when authority and ownership share a physical table. */
|
|
49
|
-
readonly ownedCondition: Expression;
|
|
50
45
|
readonly decodeSubjectId: (row: O["select"]) => N;
|
|
51
46
|
}
|
|
52
|
-
export interface OAuthOwnershipTable<O extends TableModel, N
|
|
47
|
+
export interface OAuthOwnershipTable<O extends TableModel, N> extends OAuthOwnershipReadTable<O, N> {
|
|
53
48
|
readonly encodeInsert: (input: {
|
|
54
49
|
readonly identity: typeof OAuthExternalIdentity.Type;
|
|
55
50
|
readonly identityKey: string;
|
|
@@ -94,112 +89,40 @@ export interface OAuthAuthorityTable<C extends TableModel, N, Expression extends
|
|
|
94
89
|
readonly revision: SecurityRevision;
|
|
95
90
|
}) => C["insert"];
|
|
96
91
|
}
|
|
97
|
-
/**
|
|
98
|
-
*
|
|
99
|
-
* codec; terminal writes erase it, while identity, claim and retention columns remain. */
|
|
92
|
+
/** Live ceremonies only. Predicate columns enforce access before deletion; the
|
|
93
|
+
* snapshot retains the exact authenticated context and encrypted protocol data. */
|
|
100
94
|
export interface OAuthFlowTable<F extends TableModel> {
|
|
101
95
|
readonly table: F["table"];
|
|
102
96
|
readonly moduleId: Column<F>;
|
|
103
97
|
readonly flowId: Column<F>;
|
|
104
|
-
readonly commandId: Column<F>;
|
|
105
98
|
readonly purpose: Column<F>;
|
|
106
99
|
readonly generation: Column<F>;
|
|
107
|
-
readonly
|
|
108
|
-
readonly
|
|
100
|
+
readonly provider: Column<F>;
|
|
101
|
+
readonly callbackId: Column<F>;
|
|
102
|
+
readonly issuer: Column<F>;
|
|
103
|
+
readonly responseIssuerMode: Column<F>;
|
|
104
|
+
readonly subjectId: Column<F>;
|
|
109
105
|
readonly stateDigest: Column<F>;
|
|
110
106
|
readonly binderVerifier: Column<F>;
|
|
111
107
|
readonly binderExpiresAt: Column<F>;
|
|
112
108
|
readonly snapshot: Column<F>;
|
|
113
109
|
readonly issuedAt: Column<F>;
|
|
114
110
|
readonly expiresAt: Column<F>;
|
|
115
|
-
readonly claimId: Column<F>;
|
|
116
|
-
readonly claimedAt: Column<F>;
|
|
117
|
-
readonly claimExpiresAt: Column<F>;
|
|
118
|
-
readonly retentionUntil: Column<F>;
|
|
119
111
|
readonly encodeInsert: (input: {
|
|
120
112
|
readonly moduleId: string;
|
|
121
113
|
readonly flowId: string;
|
|
122
|
-
readonly purpose: "sign-in" | "link";
|
|
114
|
+
readonly purpose: "sign-in" | "link" | "connect";
|
|
123
115
|
}) => F["insert"];
|
|
124
116
|
}
|
|
125
|
-
export
|
|
126
|
-
readonly
|
|
127
|
-
readonly
|
|
128
|
-
readonly
|
|
129
|
-
readonly
|
|
130
|
-
readonly
|
|
131
|
-
readonly
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
/** Exact reservation identity; no application payload or bearer. */
|
|
135
|
-
readonly reservation: Column<T>;
|
|
136
|
-
readonly encodeInsert: (input: {
|
|
137
|
-
readonly identityKey: string;
|
|
138
|
-
readonly identity: typeof OAuthExternalIdentity.Type;
|
|
139
|
-
readonly subjectId?: N;
|
|
140
|
-
}) => T["insert"];
|
|
141
|
-
}
|
|
142
|
-
export interface OAuthRegistrationIntentTable<I extends TableModel> {
|
|
143
|
-
readonly table: I["table"];
|
|
144
|
-
readonly moduleId: Column<I>;
|
|
145
|
-
readonly reference: Column<I>;
|
|
146
|
-
readonly flowId: Column<I>;
|
|
147
|
-
readonly claimId: Column<I>;
|
|
148
|
-
readonly identityKey: Column<I>;
|
|
149
|
-
readonly version: Column<I>;
|
|
150
|
-
readonly state: Column<I>;
|
|
151
|
-
readonly snapshot: Column<I>;
|
|
152
|
-
readonly commandId: Column<I>;
|
|
153
|
-
readonly fingerprint: Column<I>;
|
|
154
|
-
readonly pendingReference: Column<I>;
|
|
155
|
-
readonly expiresAt: Column<I>;
|
|
156
|
-
readonly retentionUntil: Column<I>;
|
|
157
|
-
readonly encodeInsert: (intent: OAuthRegistrationIntent) => I["insert"];
|
|
158
|
-
}
|
|
159
|
-
export interface OAuthRegistrationCommandTable<R extends TableModel, Registration> {
|
|
160
|
-
readonly table: R["table"];
|
|
161
|
-
readonly moduleId: Column<R>;
|
|
162
|
-
readonly commandId: Column<R>;
|
|
163
|
-
readonly reference: Column<R>;
|
|
164
|
-
readonly identityKey: Column<R>;
|
|
165
|
-
readonly fingerprint: Column<R>;
|
|
166
|
-
readonly intentSnapshot: Column<R>;
|
|
167
|
-
readonly applicationSnapshot: Column<R>;
|
|
168
|
-
readonly provisioningIdentity: Column<R>;
|
|
169
|
-
readonly decision: Column<R>;
|
|
170
|
-
readonly retentionUntil: Column<R>;
|
|
171
|
-
/** Persists exact detached Type before protected pending work can start. */
|
|
172
|
-
readonly encodeInsert: (input: {
|
|
173
|
-
readonly intent: OAuthRegistrationIntent;
|
|
174
|
-
readonly commandId: string;
|
|
175
|
-
readonly fingerprint: string;
|
|
176
|
-
readonly registration: Registration;
|
|
177
|
-
readonly provisioningIdentity: string;
|
|
178
|
-
}) => R["insert"];
|
|
179
|
-
}
|
|
180
|
-
export interface OAuthUnlinkCommandTable<U extends TableModel> {
|
|
181
|
-
readonly table: U["table"];
|
|
182
|
-
readonly moduleId: Column<U>;
|
|
183
|
-
readonly commandId: Column<U>;
|
|
184
|
-
readonly subjectId: Column<U>;
|
|
185
|
-
readonly credentialId: Column<U>;
|
|
186
|
-
readonly intentSnapshot: Column<U>;
|
|
187
|
-
readonly decision: Column<U>;
|
|
188
|
-
readonly retentionUntil: Column<U>;
|
|
189
|
-
readonly encodeInsert: (input: {
|
|
190
|
-
readonly moduleId: string;
|
|
191
|
-
readonly commandId: string;
|
|
192
|
-
readonly credential: OAuthCredentialSnapshot;
|
|
193
|
-
}) => U["insert"];
|
|
194
|
-
}
|
|
195
|
-
export interface OAuthEligibilityFact {
|
|
196
|
-
readonly credentialId: string;
|
|
197
|
-
readonly revision: SecurityRevision;
|
|
198
|
-
readonly usablePrimary: boolean;
|
|
199
|
-
readonly factors: ReadonlyArray<AuthenticationFactor>;
|
|
200
|
-
readonly userVerified: boolean;
|
|
201
|
-
readonly phishingResistant: boolean;
|
|
202
|
-
}
|
|
117
|
+
export declare const OAuthEligibilityFact: Schema.Struct<{
|
|
118
|
+
readonly credentialId: Schema.NonEmptyString;
|
|
119
|
+
readonly revision: Schema.brand<Schema.NonEmptyString, "effect-auth/SecurityRevision">;
|
|
120
|
+
readonly usablePrimary: Schema.Boolean;
|
|
121
|
+
readonly factors: Schema.$Array<Schema.Literals<readonly ["knowledge", "possession", "inherence"]>>;
|
|
122
|
+
readonly userVerified: Schema.Boolean;
|
|
123
|
+
readonly phishingResistant: Schema.Boolean;
|
|
124
|
+
}>;
|
|
125
|
+
export type OAuthEligibilityFact = typeof OAuthEligibilityFact.Type;
|
|
203
126
|
/** Each descriptor reads only its own subject-scoped method rows. The native row
|
|
204
127
|
* projector and SQL condition must express the same installed method eligibility.
|
|
205
128
|
* All source/identifier/policy mutations advance subject securityRevision. D1 also
|
|
@@ -214,11 +137,6 @@ export interface OAuthEligibilityTable<T extends TableModel, N, Expression exten
|
|
|
214
137
|
readonly condition: (subjectId: N) => Expression;
|
|
215
138
|
readonly decode: (row: T["select"]) => OAuthEligibilityFact | undefined;
|
|
216
139
|
}
|
|
217
|
-
/** Authenticated command replay uses current subject status and this additional
|
|
218
|
-
* nonconsuming SQL policy. It never consumes a fresh action factor. */
|
|
219
|
-
export interface OAuthMetadataPolicy<N, Expression extends SqlExpression = SqlExpression> {
|
|
220
|
-
readonly condition: (subjectId: N) => Expression;
|
|
221
|
-
}
|
|
222
140
|
export interface OAuthCleanupTable<T extends TableModel, N, Expression extends SqlExpression = SqlExpression> {
|
|
223
141
|
readonly table: T["table"];
|
|
224
142
|
readonly subjectId: Column<T>;
|
|
@@ -230,13 +148,51 @@ export interface OAuthCleanupTable<T extends TableModel, N, Expression extends S
|
|
|
230
148
|
}) => Expression;
|
|
231
149
|
readonly disposition: "delete";
|
|
232
150
|
}
|
|
233
|
-
export interface
|
|
234
|
-
|
|
151
|
+
export interface OAuthRegistrationGuardTable<T extends TableModel, Registration, N, Expression extends SqlExpression = SqlExpression> {
|
|
152
|
+
readonly table: T["table"];
|
|
153
|
+
readonly orderBy: Column<T>;
|
|
235
154
|
readonly condition: (input: {
|
|
236
155
|
readonly intent: OAuthRegistrationIntent;
|
|
156
|
+
readonly registration: Registration;
|
|
237
157
|
readonly nativeSubjectId?: N;
|
|
238
158
|
}) => Expression;
|
|
239
159
|
}
|
|
160
|
+
export interface OAuthRegistrationGuardDescriptor<Registration, N, Expression extends SqlExpression = SqlExpression, Descriptor extends object = object> {
|
|
161
|
+
readonly table: Descriptor;
|
|
162
|
+
readonly orderBy: string;
|
|
163
|
+
readonly condition: OAuthRegistrationGuardTable<TableModel, Registration, N, Expression>["condition"];
|
|
164
|
+
}
|
|
165
|
+
export declare const oauthRegistrationGuardTable: <T extends TableModel, Registration, N, Expression extends SqlExpression = SqlExpression>(input: OAuthRegistrationGuardTable<T, Registration, N, Expression>) => OAuthRegistrationGuardDescriptor<Registration, N, Expression, T["table"]>;
|
|
166
|
+
/** Heterogeneous descriptors are made by typed factories and projected privately. */
|
|
167
|
+
export interface OAuthEligibilityDescriptor<N, Expression extends SqlExpression = SqlExpression, Descriptor extends object = object> {
|
|
168
|
+
readonly _tag: "OAuthEligibilityDescriptor";
|
|
169
|
+
readonly scope: string;
|
|
170
|
+
readonly table: Descriptor;
|
|
171
|
+
readonly subjectId: string;
|
|
172
|
+
readonly credentialId: string;
|
|
173
|
+
readonly revision: string;
|
|
174
|
+
readonly condition: (subjectId: N) => Expression;
|
|
175
|
+
readonly decode: (row: unknown) => OAuthEligibilityFact | undefined;
|
|
176
|
+
}
|
|
177
|
+
export declare const oauthEligibilityTable: <T extends TableModel, N, Expression extends SqlExpression = SqlExpression>(input: OAuthEligibilityTable<T, N, Expression>) => OAuthEligibilityDescriptor<N, Expression, T["table"]>;
|
|
178
|
+
export interface OAuthCleanupDescriptor<N, Expression extends SqlExpression = SqlExpression, Descriptor extends object = object> {
|
|
179
|
+
readonly table: Descriptor;
|
|
180
|
+
readonly subjectId: string;
|
|
181
|
+
readonly condition: OAuthCleanupTable<TableModel, N, Expression>["condition"];
|
|
182
|
+
}
|
|
183
|
+
export declare const oauthCleanupTable: <T extends TableModel, N, Expression extends SqlExpression = SqlExpression>(input: OAuthCleanupTable<T, N, Expression>) => OAuthCleanupDescriptor<N, Expression, T["table"]>;
|
|
184
|
+
/** Original application binding and retained decision are encoded in snapshot. */
|
|
185
|
+
export interface OAuthRegistrationIntentTable<I extends TableModel> {
|
|
186
|
+
readonly table: I["table"];
|
|
187
|
+
readonly moduleId: Column<I>;
|
|
188
|
+
readonly reference: Column<I>;
|
|
189
|
+
readonly flowId: Column<I>;
|
|
190
|
+
readonly identityKey: Column<I>;
|
|
191
|
+
readonly snapshot: Column<I>;
|
|
192
|
+
readonly expiresAt: Column<I>;
|
|
193
|
+
readonly retentionUntil: Column<I>;
|
|
194
|
+
readonly encodeInsert: (intent: OAuthRegistrationIntent) => I["insert"];
|
|
195
|
+
}
|
|
240
196
|
export interface OAuthD1Mapping {
|
|
241
197
|
readonly d1: {
|
|
242
198
|
readonly primary: true;
|
|
@@ -244,27 +200,23 @@ export interface OAuthD1Mapping {
|
|
|
244
200
|
}
|
|
245
201
|
export declare const requiredOAuthSignInConstraints: {
|
|
246
202
|
readonly flow: "unique(flow.moduleId,flow.flowId)";
|
|
247
|
-
readonly command: "unique(flow.moduleId,flow.commandId)";
|
|
248
203
|
readonly stateDigest: "unique(flow.stateDigest)";
|
|
249
204
|
readonly ownership: "unique(ownership.identityKey)";
|
|
250
205
|
readonly credentialId: "unique(credential.credentialId)";
|
|
251
206
|
readonly credentialIdentity: "unique(credential.identityKey)";
|
|
252
207
|
readonly authorityCredential: "unique(authority.subjectId,authority.credentialId)";
|
|
253
208
|
};
|
|
254
|
-
export declare const requiredOAuthTupleConstraints: {
|
|
255
|
-
readonly identityKey: "unique(tuple.identityKey)";
|
|
256
|
-
};
|
|
257
209
|
export declare const requiredOAuthRegistrationConstraints: {
|
|
258
210
|
readonly intentReference: "unique(intent.moduleId,intent.reference)";
|
|
259
211
|
readonly intentFlow: "unique(intent.moduleId,intent.flowId)";
|
|
260
|
-
readonly
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
readonly
|
|
212
|
+
readonly ownership: "unique(ownership.identityKey)";
|
|
213
|
+
readonly credentialId: "unique(credential.credentialId)";
|
|
214
|
+
readonly credentialIdentity: "unique(credential.identityKey)";
|
|
215
|
+
readonly authorityCredential: "unique(authority.subjectId,authority.credentialId)";
|
|
264
216
|
};
|
|
265
217
|
export interface OAuthSignInMapping<S extends TableModel, O extends TableModel, C extends TableModel, AC extends TableModel, F extends TableModel, N, Expression extends SqlExpression = SqlExpression> {
|
|
266
218
|
readonly subject: OAuthSubjectReadTable<S, Expression>;
|
|
267
|
-
readonly ownership: OAuthOwnershipReadTable<O, N
|
|
219
|
+
readonly ownership: OAuthOwnershipReadTable<O, N>;
|
|
268
220
|
readonly credential: OAuthCredentialReadTable<C, Expression>;
|
|
269
221
|
readonly authority: OAuthAuthorityReadTable<AC, Expression>;
|
|
270
222
|
readonly flow: OAuthFlowTable<F>;
|
|
@@ -272,28 +224,22 @@ export interface OAuthSignInMapping<S extends TableModel, O extends TableModel,
|
|
|
272
224
|
readonly clock: OAuthClock<Expression>;
|
|
273
225
|
readonly constraints: typeof requiredOAuthSignInConstraints;
|
|
274
226
|
}
|
|
275
|
-
export
|
|
276
|
-
readonly
|
|
277
|
-
readonly tuple: OAuthTupleAuthorityTable<T, N>;
|
|
278
|
-
} | {
|
|
279
|
-
readonly mode: "separate";
|
|
280
|
-
readonly tuple: OAuthTupleAuthorityTable<T, N>;
|
|
281
|
-
readonly external: OAuthOwnershipTable<O, N, Expression>;
|
|
282
|
-
};
|
|
283
|
-
export interface OAuthRegistrationIntentMapping<S extends TableModel, O extends TableModel, C extends TableModel, AC extends TableModel, F extends TableModel, T extends TableModel, I extends TableModel, N, Expression extends SqlExpression = SqlExpression> {
|
|
284
|
-
readonly signIn: OAuthSignInMapping<S, O, C, AC, F, N, Expression>;
|
|
285
|
-
readonly ownership: OAuthOwnershipMutation<T, O, N, Expression>;
|
|
227
|
+
export interface OAuthRegistrationIntentMapping<O extends TableModel, I extends TableModel, N, Expression extends SqlExpression = SqlExpression> {
|
|
228
|
+
readonly ownership: OAuthOwnershipReadTable<O, N>;
|
|
286
229
|
readonly intent: OAuthRegistrationIntentTable<I>;
|
|
287
|
-
readonly
|
|
288
|
-
readonly
|
|
289
|
-
readonly
|
|
230
|
+
readonly clock: OAuthClock<Expression>;
|
|
231
|
+
readonly constraints: Pick<typeof requiredOAuthRegistrationConstraints, "intentReference" | "intentFlow" | "ownership">;
|
|
232
|
+
readonly eligible: (intent: OAuthRegistrationIntent) => Expression;
|
|
290
233
|
}
|
|
291
|
-
export interface
|
|
292
|
-
readonly
|
|
234
|
+
export interface OAuthRegistrationMapping<Registration, S extends TableModel, O extends TableModel, C extends TableModel, AC extends TableModel, I extends TableModel, N, Expression extends SqlExpression = SqlExpression, Descriptor extends object = object> {
|
|
235
|
+
readonly registration: Schema.Codec<Registration, unknown, never, never>;
|
|
236
|
+
readonly ownership: OAuthOwnershipTable<O, N>;
|
|
293
237
|
readonly intent: OAuthRegistrationIntentTable<I>;
|
|
294
|
-
readonly
|
|
238
|
+
readonly subject: OAuthSubjectReadTable<S, Expression>;
|
|
239
|
+
readonly credential: OAuthCredentialTable<C, N, Expression>;
|
|
240
|
+
readonly authority: OAuthAuthorityTable<AC, N, Expression>;
|
|
241
|
+
readonly subjectId: SubjectIdCodec<N>;
|
|
295
242
|
readonly clock: OAuthClock<Expression>;
|
|
296
|
-
readonly tupleConstraints: typeof requiredOAuthTupleConstraints;
|
|
297
243
|
readonly constraints: typeof requiredOAuthRegistrationConstraints;
|
|
298
244
|
readonly inspect: (input: {
|
|
299
245
|
readonly intent: OAuthRegistrationIntent;
|
|
@@ -302,142 +248,48 @@ export interface OAuthRegistrationBase<Registration, T extends TableModel, O ext
|
|
|
302
248
|
readonly fingerprint: string;
|
|
303
249
|
readonly eligible: boolean;
|
|
304
250
|
}, PersistenceMappingError>;
|
|
305
|
-
/** Required for an explicitly bound native/DO command: no asynchronous callback
|
|
306
|
-
* is evaluated inside the physical owner. Standalone inspection is pre-owner. */
|
|
307
|
-
readonly inspectSync?: (input: {
|
|
308
|
-
readonly intent: OAuthRegistrationIntent;
|
|
309
|
-
readonly registration: Registration;
|
|
310
|
-
}) => {
|
|
311
|
-
readonly fingerprint: string;
|
|
312
|
-
readonly eligible: boolean;
|
|
313
|
-
};
|
|
314
|
-
/** Type projection, never the original wire transformation. */
|
|
315
|
-
readonly snapshot: (registration: Registration) => Effect.Effect<Registration, PersistenceMappingError>;
|
|
316
|
-
readonly snapshotSync?: (registration: Registration) => Registration;
|
|
317
|
-
/** Canonical bounded storage of Registration.Type. These are Type codecs, not
|
|
318
|
-
* the original wire decoder/encoder; decode(encode(value)) must encode identically.
|
|
319
|
-
* The engine writes and roundtrip-checks this exact string (maximum 1 MiB). */
|
|
320
|
-
readonly application: {
|
|
321
|
-
readonly encode: (registration: Registration) => string;
|
|
322
|
-
readonly decode: (stored: string) => Registration;
|
|
323
|
-
};
|
|
324
251
|
readonly eligibility: {
|
|
325
|
-
/** Stable application authority anchors, in one configured global order.
|
|
326
|
-
* Omit only for immutable/tuple-local policy or an equivalent explicit outer
|
|
327
|
-
* owner lock. Each scope must match 1..64 rows, never an absent quota row.
|
|
328
|
-
* Locks precede tuple/intent/command locks; postcondition owns changed state. */
|
|
329
252
|
readonly guards?: ReadonlyArray<OAuthRegistrationGuardDescriptor<Registration, N, Expression, Descriptor>>;
|
|
330
253
|
readonly admission: (input: {
|
|
331
254
|
readonly intent: OAuthRegistrationIntent;
|
|
332
255
|
readonly registration: Registration;
|
|
333
256
|
readonly nativeSubjectId?: N;
|
|
334
257
|
}) => Expression;
|
|
335
|
-
/** Evaluated after subject/application writes, including appended coordinator
|
|
336
|
-
* writes. May assert consumption of the admission invitation/quota. */
|
|
337
258
|
readonly postcondition: (input: {
|
|
338
259
|
readonly intent: OAuthRegistrationIntent;
|
|
339
260
|
readonly registration: Registration;
|
|
340
261
|
readonly nativeSubjectId?: N;
|
|
341
262
|
}) => Expression;
|
|
342
263
|
};
|
|
343
|
-
readonly allocateProvisioningIdentity: Effect.Effect<string, PersistenceMappingError>;
|
|
344
|
-
readonly retentionMillis: number;
|
|
345
|
-
}
|
|
346
|
-
export interface OAuthRegistrationGuardTable<T extends TableModel, Registration, N, Expression extends SqlExpression = SqlExpression> {
|
|
347
|
-
readonly table: T["table"];
|
|
348
|
-
readonly orderBy: Column<T>;
|
|
349
|
-
readonly condition: (input: {
|
|
350
|
-
readonly intent: OAuthRegistrationIntent;
|
|
351
|
-
readonly registration: Registration;
|
|
352
|
-
readonly nativeSubjectId?: N;
|
|
353
|
-
}) => Expression;
|
|
354
|
-
}
|
|
355
|
-
export interface OAuthRegistrationGuardDescriptor<Registration, N, Expression extends SqlExpression = SqlExpression, Descriptor extends object = object> {
|
|
356
|
-
readonly table: Descriptor;
|
|
357
|
-
readonly orderBy: string;
|
|
358
|
-
readonly condition: OAuthRegistrationGuardTable<TableModel, Registration, N, Expression>["condition"];
|
|
359
|
-
}
|
|
360
|
-
export declare const oauthRegistrationGuardTable: <T extends TableModel, Registration, N, Expression extends SqlExpression = SqlExpression>(input: OAuthRegistrationGuardTable<T, Registration, N, Expression>) => OAuthRegistrationGuardDescriptor<Registration, N, Expression, T["table"]>;
|
|
361
|
-
export type OAuthRegistrationMapping<Registration, S extends TableModel, O extends TableModel, C extends TableModel, AC extends TableModel, T extends TableModel, I extends TableModel, R extends TableModel, N, Expression extends SqlExpression = SqlExpression, Descriptor extends object = object> = OAuthRegistrationBase<Registration, T, O, I, R, N, Expression, Descriptor> & ({
|
|
362
|
-
readonly mode: "pending";
|
|
363
|
-
readonly allocatePendingReference: Effect.Effect<string, PersistenceMappingError>;
|
|
364
|
-
} | {
|
|
365
|
-
readonly mode: "atomic";
|
|
366
|
-
readonly subjectId: SubjectIdCodec<N>;
|
|
367
|
-
readonly subject: OAuthSubjectReadTable<S, Expression>;
|
|
368
|
-
readonly credential: OAuthCredentialTable<C, N, Expression>;
|
|
369
|
-
readonly authority: OAuthAuthorityTable<AC, N, Expression>;
|
|
370
264
|
readonly allocateSubjectId: Effect.Effect<N, PersistenceMappingError>;
|
|
371
265
|
readonly allocateCredentialId: Effect.Effect<string, PersistenceMappingError>;
|
|
372
266
|
readonly allocateRevision: Effect.Effect<SecurityRevision, PersistenceMappingError>;
|
|
373
267
|
readonly encodeSubjectInsert: (input: {
|
|
374
268
|
readonly intent: OAuthRegistrationIntent;
|
|
375
269
|
readonly registration: Registration;
|
|
270
|
+
readonly requestId: string;
|
|
376
271
|
}, ids: {
|
|
377
272
|
readonly subjectId: N;
|
|
378
273
|
readonly securityRevision: SecurityRevision;
|
|
379
274
|
}) => S["insert"];
|
|
380
|
-
});
|
|
381
|
-
/** Heterogeneous descriptors are made by typed factories and projected privately. */
|
|
382
|
-
export interface OAuthEligibilityDescriptor<N, Expression extends SqlExpression = SqlExpression, Descriptor extends object = object> {
|
|
383
|
-
readonly _tag: "OAuthEligibilityDescriptor";
|
|
384
|
-
readonly scope: string;
|
|
385
|
-
readonly table: Descriptor;
|
|
386
|
-
readonly subjectId: string;
|
|
387
|
-
readonly credentialId: string;
|
|
388
|
-
readonly revision: string;
|
|
389
|
-
readonly condition: (subjectId: N) => Expression;
|
|
390
|
-
readonly decode: (row: unknown) => OAuthEligibilityFact | undefined;
|
|
391
|
-
}
|
|
392
|
-
export declare const oauthEligibilityTable: <T extends TableModel, N, Expression extends SqlExpression = SqlExpression>(input: OAuthEligibilityTable<T, N, Expression>) => OAuthEligibilityDescriptor<N, Expression, T["table"]>;
|
|
393
|
-
export interface OAuthCleanupDescriptor<N, Expression extends SqlExpression = SqlExpression, Descriptor extends object = object> {
|
|
394
|
-
readonly table: Descriptor;
|
|
395
|
-
readonly subjectId: string;
|
|
396
|
-
readonly condition: OAuthCleanupTable<TableModel, N, Expression>["condition"];
|
|
397
275
|
}
|
|
398
|
-
export
|
|
399
|
-
/** A stable application/reference lock acquired before an ownership target.
|
|
400
|
-
* Missing rows retain ownership. Conditions use detached native IDs; every
|
|
401
|
-
* writer of the guarded reference follows the same order. */
|
|
402
|
-
export interface OAuthReferenceGuardTable<T extends TableModel, N, Expression extends SqlExpression = SqlExpression> {
|
|
403
|
-
readonly table: T["table"];
|
|
404
|
-
readonly orderBy: Column<T>;
|
|
405
|
-
readonly condition: (input: {
|
|
406
|
-
readonly identity: typeof OAuthExternalIdentity.Type;
|
|
407
|
-
readonly identityKey: string;
|
|
408
|
-
readonly subjectId: N;
|
|
409
|
-
}) => Expression | Effect.Effect<Expression, PlatformError.PlatformError, Crypto.Crypto>;
|
|
410
|
-
}
|
|
411
|
-
export interface OAuthReferenceGuardDescriptor<N, Expression extends SqlExpression = SqlExpression, Descriptor extends object = object> {
|
|
412
|
-
readonly table: Descriptor;
|
|
413
|
-
readonly orderBy: string;
|
|
414
|
-
readonly condition: OAuthReferenceGuardTable<TableModel, N, Expression>["condition"];
|
|
415
|
-
}
|
|
416
|
-
export declare const oauthReferenceGuardTable: <T extends TableModel, N, Expression extends SqlExpression = SqlExpression>(input: OAuthReferenceGuardTable<T, N, Expression>) => OAuthReferenceGuardDescriptor<N, Expression, T["table"]>;
|
|
417
|
-
export interface OAuthAccountsMapping<S extends TableModel, O extends TableModel, C extends TableModel, AC extends TableModel, F extends TableModel, T extends TableModel, U extends TableModel, N, Expression extends SqlExpression = SqlExpression, Descriptor extends object = object> {
|
|
276
|
+
export interface OAuthAccountsMapping<S extends TableModel, O extends TableModel, C extends TableModel, AC extends TableModel, F extends TableModel, N, Expression extends SqlExpression = SqlExpression, Descriptor extends object = object> {
|
|
418
277
|
readonly subject: OAuthSubjectTable<S, Expression>;
|
|
419
|
-
readonly ownership:
|
|
278
|
+
readonly ownership: OAuthOwnershipTable<O, N>;
|
|
420
279
|
readonly credential: OAuthCredentialTable<C, N, Expression>;
|
|
421
280
|
readonly authority: OAuthAuthorityTable<AC, N, Expression>;
|
|
422
281
|
readonly flow: OAuthFlowTable<F>;
|
|
423
|
-
readonly command: OAuthUnlinkCommandTable<U>;
|
|
424
282
|
readonly subjectId: SubjectIdCodec<N>;
|
|
425
283
|
readonly clock: OAuthClock<Expression>;
|
|
426
|
-
readonly constraints: typeof requiredOAuthSignInConstraints
|
|
427
|
-
readonly tupleConstraints: typeof requiredOAuthTupleConstraints;
|
|
284
|
+
readonly constraints: typeof requiredOAuthSignInConstraints;
|
|
428
285
|
readonly eligibility: ReadonlyArray<OAuthEligibilityDescriptor<N, Expression, Descriptor>>;
|
|
429
286
|
readonly cleanup: ReadonlyArray<OAuthCleanupDescriptor<N, Expression, Descriptor>>;
|
|
430
|
-
readonly metadata: OAuthMetadataPolicy<N, Expression>;
|
|
431
287
|
readonly sessionInvalidation: "same-authority-immediate" | "original-absolute-expiry";
|
|
432
|
-
/**
|
|
433
|
-
|
|
434
|
-
readonly connectedReference?: (input: {
|
|
288
|
+
/** Indexed same-owner reference predicate for any installed grant/application references. */
|
|
289
|
+
readonly otherReferences: (input: {
|
|
435
290
|
readonly identityKey: string;
|
|
436
291
|
readonly subjectId: N;
|
|
437
292
|
}) => Expression;
|
|
438
|
-
/** At most 32 descriptors, each locking 1..64 stable rows in supplied order.
|
|
439
|
-
* Missing/empty guards retain Owned, even when the reference predicate is false. */
|
|
440
|
-
readonly connectedReferenceGuards?: ReadonlyArray<OAuthReferenceGuardDescriptor<N, Expression, Descriptor>>;
|
|
441
293
|
readonly allocateCredentialId: Effect.Effect<string, PersistenceMappingError>;
|
|
442
294
|
readonly allocateRevision: Effect.Effect<SecurityRevision, PersistenceMappingError>;
|
|
443
295
|
}
|
|
@@ -456,11 +308,10 @@ export interface OAuthRegistrationAuthority<Registration> {
|
|
|
456
308
|
readonly commandId: typeof OAuthCommandId.Type;
|
|
457
309
|
readonly registration: Registration;
|
|
458
310
|
readonly fingerprint: TokenDigest;
|
|
311
|
+
readonly payload: string;
|
|
312
|
+
readonly requestId: string;
|
|
459
313
|
}, prepare: PrepareOAuthCommit<OAuthRegistrationDecision, A>) => Effect.Effect<PreparedCommit<A>, OAuthUnavailable>;
|
|
460
|
-
readonly cleanup: <A>(input: OAuthCleanupInput, prepare: PrepareOAuthCommit<
|
|
461
|
-
readonly removed: number;
|
|
462
|
-
readonly hasMore: boolean;
|
|
463
|
-
}, A>) => Effect.Effect<PreparedCommit<A>, OAuthUnavailable>;
|
|
314
|
+
readonly cleanup: <A>(input: OAuthCleanupInput, prepare: PrepareOAuthCommit<CleanupResult, A>) => Effect.Effect<PreparedCommit<A>, OAuthUnavailable>;
|
|
464
315
|
}
|
|
465
316
|
//#endregion
|
|
466
317
|
export { oauth_model_d_exports };
|
|
@@ -1,20 +1,15 @@
|
|
|
1
|
+
import { Schema } from "effect";
|
|
2
|
+
import { SecurityRevision } from "@yielded/auth/Sessions";
|
|
3
|
+
import { AuthenticationFactor } from "@yielded/auth/Operations";
|
|
1
4
|
//#region src/internal/models/oauth-model.ts
|
|
2
|
-
const
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
};
|
|
11
|
-
const requiredOAuthTupleConstraints = { identityKey: "unique(tuple.identityKey)" };
|
|
12
|
-
const requiredOAuthRegistrationConstraints = {
|
|
13
|
-
intentReference: "unique(intent.moduleId,intent.reference)",
|
|
14
|
-
intentFlow: "unique(intent.moduleId,intent.flowId)",
|
|
15
|
-
command: "unique(registrationCommand.moduleId,registrationCommand.commandId)"
|
|
16
|
-
};
|
|
17
|
-
const requiredOAuthAccountsConstraints = { unlinkCommand: "unique(unlinkCommand.moduleId,unlinkCommand.commandId)" };
|
|
5
|
+
const OAuthEligibilityFact = Schema.Struct({
|
|
6
|
+
credentialId: Schema.NonEmptyString.check(Schema.isMaxLength(256)),
|
|
7
|
+
revision: SecurityRevision,
|
|
8
|
+
usablePrimary: Schema.Boolean,
|
|
9
|
+
factors: Schema.Array(AuthenticationFactor).check(Schema.isMaxLength(8)),
|
|
10
|
+
userVerified: Schema.Boolean,
|
|
11
|
+
phishingResistant: Schema.Boolean
|
|
12
|
+
});
|
|
18
13
|
const oauthRegistrationGuardTable = (input) => Object.freeze({
|
|
19
14
|
table: input.table,
|
|
20
15
|
orderBy: input.orderBy,
|
|
@@ -38,12 +33,23 @@ const oauthCleanupTable = (input) => Object.freeze({
|
|
|
38
33
|
subjectId: input.subjectId,
|
|
39
34
|
condition: input.condition
|
|
40
35
|
});
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
36
|
+
const requiredOAuthSignInConstraints = {
|
|
37
|
+
flow: "unique(flow.moduleId,flow.flowId)",
|
|
38
|
+
stateDigest: "unique(flow.stateDigest)",
|
|
39
|
+
ownership: "unique(ownership.identityKey)",
|
|
40
|
+
credentialId: "unique(credential.credentialId)",
|
|
41
|
+
credentialIdentity: "unique(credential.identityKey)",
|
|
42
|
+
authorityCredential: "unique(authority.subjectId,authority.credentialId)"
|
|
43
|
+
};
|
|
44
|
+
const requiredOAuthRegistrationConstraints = {
|
|
45
|
+
intentReference: "unique(intent.moduleId,intent.reference)",
|
|
46
|
+
intentFlow: "unique(intent.moduleId,intent.flowId)",
|
|
47
|
+
ownership: "unique(ownership.identityKey)",
|
|
48
|
+
credentialId: "unique(credential.credentialId)",
|
|
49
|
+
credentialIdentity: "unique(credential.identityKey)",
|
|
50
|
+
authorityCredential: "unique(authority.subjectId,authority.credentialId)"
|
|
51
|
+
};
|
|
46
52
|
//#endregion
|
|
47
|
-
export { oauthCleanupTable, oauthEligibilityTable,
|
|
53
|
+
export { OAuthEligibilityFact, oauthCleanupTable, oauthEligibilityTable, oauthRegistrationGuardTable, requiredOAuthRegistrationConstraints, requiredOAuthSignInConstraints };
|
|
48
54
|
|
|
49
55
|
//# sourceMappingURL=oauth-model.mjs.map
|