@yielded/auth-persistence 0.1.0-beta.25 → 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.
Files changed (481) hide show
  1. package/README.md +6 -8
  2. package/dist/Adapter.d.mts +47 -33
  3. package/dist/Adapter.mjs +36 -23
  4. package/dist/OAuthPersistence.d.mts +35 -51
  5. package/dist/OAuthPersistence.mjs +60 -68
  6. package/dist/OAuthPersistence.mjs.map +1 -1
  7. package/dist/index.d.mts +2 -2
  8. package/dist/index.mjs +2 -2
  9. package/dist/internal/browser-login.d.mts +1 -1
  10. package/dist/internal/browser-login.mjs +29 -9
  11. package/dist/internal/browser-login.mjs.map +1 -1
  12. package/dist/internal/configuration.d.mts +13 -8
  13. package/dist/internal/configuration.mjs.map +1 -1
  14. package/dist/internal/crypto.d.mts +1 -0
  15. package/dist/internal/crypto.mjs +1 -1
  16. package/dist/internal/d1-planning.mjs +8 -0
  17. package/dist/internal/d1-planning.mjs.map +1 -0
  18. package/dist/internal/email-native-state.mjs +135 -0
  19. package/dist/internal/email-native-state.mjs.map +1 -0
  20. package/dist/internal/email-native.d.mts +17 -0
  21. package/dist/internal/email-native.mjs +245 -0
  22. package/dist/internal/email-native.mjs.map +1 -0
  23. package/dist/internal/email-policy.mjs +92 -0
  24. package/dist/internal/email-policy.mjs.map +1 -0
  25. package/dist/internal/email-registration-native.d.mts +38 -0
  26. package/dist/internal/email-registration-native.mjs +171 -0
  27. package/dist/internal/email-registration-native.mjs.map +1 -0
  28. package/dist/internal/models/email-model.d.mts +40 -104
  29. package/dist/internal/models/email-model.mjs +3 -5
  30. package/dist/internal/models/email-model.mjs.map +1 -1
  31. package/dist/internal/models/oauth-connected-model.d.mts +44 -213
  32. package/dist/internal/models/oauth-connected-model.mjs +6 -14
  33. package/dist/internal/models/oauth-connected-model.mjs.map +1 -1
  34. package/dist/internal/models/oauth-model.d.mts +95 -244
  35. package/dist/internal/models/oauth-model.mjs +28 -22
  36. package/dist/internal/models/oauth-model.mjs.map +1 -1
  37. package/dist/internal/models/passkey-model.d.mts +11 -147
  38. package/dist/internal/models/passkey-model.mjs +5 -24
  39. package/dist/internal/models/passkey-model.mjs.map +1 -1
  40. package/dist/internal/models/passkey-registration-ceremony-model.d.mts +5 -39
  41. package/dist/internal/models/passkey-write-model.d.mts +17 -75
  42. package/dist/internal/models/passkey-write-model.mjs +1 -7
  43. package/dist/internal/models/passkey-write-model.mjs.map +1 -1
  44. package/dist/internal/models/password-model.d.mts +14 -81
  45. package/dist/internal/models/password-model.mjs +1 -4
  46. package/dist/internal/models/password-model.mjs.map +1 -1
  47. package/dist/internal/models/phone-model.d.mts +86 -0
  48. package/dist/internal/models/phone-model.mjs +10 -0
  49. package/dist/internal/models/phone-model.mjs.map +1 -0
  50. package/dist/internal/models/proof-model.d.mts +43 -272
  51. package/dist/internal/models/proof-model.mjs +2 -10
  52. package/dist/internal/models/proof-model.mjs.map +1 -1
  53. package/dist/internal/models/session-model.d.mts +74 -93
  54. package/dist/internal/models/session-model.mjs +3 -11
  55. package/dist/internal/models/session-model.mjs.map +1 -1
  56. package/dist/internal/models/step-up-model.d.mts +12 -50
  57. package/dist/internal/models/step-up-model.mjs +2 -4
  58. package/dist/internal/models/step-up-model.mjs.map +1 -1
  59. package/dist/internal/models/totp-model.d.mts +76 -0
  60. package/dist/internal/models/totp-model.mjs +10 -0
  61. package/dist/internal/models/totp-model.mjs.map +1 -0
  62. package/dist/internal/native-sql-table.d.mts +21 -4
  63. package/dist/internal/native-sql-table.mjs +9 -5
  64. package/dist/internal/native-sql-table.mjs.map +1 -1
  65. package/dist/internal/oauth/native-accounts.d.mts +17 -0
  66. package/dist/internal/oauth/native-accounts.mjs +290 -0
  67. package/dist/internal/oauth/native-accounts.mjs.map +1 -0
  68. package/dist/internal/oauth/native-connected-state.d.mts +11 -0
  69. package/dist/internal/oauth/native-connected-state.mjs +146 -0
  70. package/dist/internal/oauth/native-connected-state.mjs.map +1 -0
  71. package/dist/internal/oauth/native-connected.d.mts +15 -0
  72. package/dist/internal/oauth/native-connected.mjs +462 -0
  73. package/dist/internal/oauth/native-connected.mjs.map +1 -0
  74. package/dist/internal/oauth/native-flow.mjs +138 -0
  75. package/dist/internal/oauth/native-flow.mjs.map +1 -0
  76. package/dist/internal/oauth/native-layers.d.mts +24 -0
  77. package/dist/internal/oauth/native-layers.mjs +13 -0
  78. package/dist/internal/oauth/native-layers.mjs.map +1 -0
  79. package/dist/internal/oauth/native-mutation.mjs +122 -0
  80. package/dist/internal/oauth/native-mutation.mjs.map +1 -0
  81. package/dist/internal/oauth/native-registration.d.mts +24 -0
  82. package/dist/internal/oauth/native-registration.mjs +328 -0
  83. package/dist/internal/oauth/native-registration.mjs.map +1 -0
  84. package/dist/internal/oauth/native-revocations.d.mts +17 -0
  85. package/dist/internal/oauth/native-revocations.mjs +106 -0
  86. package/dist/internal/oauth/native-revocations.mjs.map +1 -0
  87. package/dist/internal/oauth/native-sign-in.d.mts +17 -0
  88. package/dist/internal/oauth/native-sign-in.mjs +50 -0
  89. package/dist/internal/oauth/native-sign-in.mjs.map +1 -0
  90. package/dist/internal/oauth/native-state.d.mts +10 -0
  91. package/dist/internal/oauth/native-state.mjs +214 -0
  92. package/dist/internal/oauth/native-state.mjs.map +1 -0
  93. package/dist/internal/oauth/state.d.mts +10 -0
  94. package/dist/internal/oauth/state.mjs +3 -27
  95. package/dist/internal/oauth/state.mjs.map +1 -1
  96. package/dist/internal/passkey-actions.mjs +55 -0
  97. package/dist/internal/passkey-actions.mjs.map +1 -0
  98. package/dist/internal/passkey-inputs.mjs +73 -0
  99. package/dist/internal/passkey-inputs.mjs.map +1 -0
  100. package/dist/internal/passkey-managed.mjs +224 -0
  101. package/dist/internal/passkey-managed.mjs.map +1 -0
  102. package/dist/internal/passkey-native-ceremony.d.mts +35 -0
  103. package/dist/internal/passkey-native-ceremony.mjs +38 -0
  104. package/dist/internal/passkey-native-ceremony.mjs.map +1 -0
  105. package/dist/internal/passkey-native-flow.mjs +91 -0
  106. package/dist/internal/passkey-native-flow.mjs.map +1 -0
  107. package/dist/internal/passkey-native-registration.d.mts +10 -0
  108. package/dist/internal/passkey-native-registration.mjs +114 -0
  109. package/dist/internal/passkey-native-registration.mjs.map +1 -0
  110. package/dist/internal/passkey-native-state.d.mts +15 -0
  111. package/dist/internal/passkey-native-state.mjs +186 -0
  112. package/dist/internal/passkey-native-state.mjs.map +1 -0
  113. package/dist/internal/passkey-native-write.d.mts +82 -0
  114. package/dist/internal/passkey-native-write.mjs +330 -0
  115. package/dist/internal/passkey-native-write.mjs.map +1 -0
  116. package/dist/internal/passkey-native.d.mts +835 -0
  117. package/dist/internal/passkey-native.mjs +175 -0
  118. package/dist/internal/passkey-native.mjs.map +1 -0
  119. package/dist/internal/passkey-policy.mjs +115 -0
  120. package/dist/internal/passkey-policy.mjs.map +1 -0
  121. package/dist/internal/password-credentials.mjs +38 -9
  122. package/dist/internal/password-credentials.mjs.map +1 -1
  123. package/dist/internal/password-native.d.mts +14 -0
  124. package/dist/internal/password-native.mjs +292 -0
  125. package/dist/internal/password-native.mjs.map +1 -0
  126. package/dist/internal/password-policy.mjs +93 -0
  127. package/dist/internal/password-policy.mjs.map +1 -0
  128. package/dist/internal/password-registration-native.d.mts +22 -0
  129. package/dist/internal/password-registration-native.mjs +142 -0
  130. package/dist/internal/password-registration-native.mjs.map +1 -0
  131. package/dist/internal/persistence.d.mts +6 -19
  132. package/dist/internal/persistence.mjs +199 -166
  133. package/dist/internal/persistence.mjs.map +1 -1
  134. package/dist/internal/phone-composed.mjs +79 -0
  135. package/dist/internal/phone-composed.mjs.map +1 -0
  136. package/dist/internal/phone-native.d.mts +15 -0
  137. package/dist/internal/phone-native.mjs +354 -0
  138. package/dist/internal/phone-native.mjs.map +1 -0
  139. package/dist/internal/proof-native.d.mts +15 -0
  140. package/dist/internal/proof-native.mjs +289 -0
  141. package/dist/internal/proof-native.mjs.map +1 -0
  142. package/dist/internal/registration.mjs +50 -60
  143. package/dist/internal/registration.mjs.map +1 -1
  144. package/dist/internal/session-native-authority.d.mts +15 -0
  145. package/dist/internal/session-native-authority.mjs +91 -0
  146. package/dist/internal/session-native-authority.mjs.map +1 -0
  147. package/dist/internal/session-native-cleanup.d.mts +14 -0
  148. package/dist/internal/session-native-cleanup.mjs +48 -0
  149. package/dist/internal/session-native-cleanup.mjs.map +1 -0
  150. package/dist/internal/session-native-login.d.mts +15 -0
  151. package/dist/internal/session-native-login.mjs +87 -0
  152. package/dist/internal/session-native-login.mjs.map +1 -0
  153. package/dist/internal/session-native-pending-read.mjs +42 -0
  154. package/dist/internal/session-native-pending-read.mjs.map +1 -0
  155. package/dist/internal/session-native-pending.mjs +134 -0
  156. package/dist/internal/session-native-pending.mjs.map +1 -0
  157. package/dist/internal/session-native-record.mjs +79 -0
  158. package/dist/internal/session-native-record.mjs.map +1 -0
  159. package/dist/internal/session-native-state.mjs +130 -0
  160. package/dist/internal/session-native-state.mjs.map +1 -0
  161. package/dist/internal/session-native-stateful.d.mts +16 -0
  162. package/dist/internal/session-native-stateful.mjs +225 -0
  163. package/dist/internal/session-native-stateful.mjs.map +1 -0
  164. package/dist/internal/session-native-step-up.d.mts +15 -0
  165. package/dist/internal/session-native-step-up.mjs +212 -0
  166. package/dist/internal/session-native-step-up.mjs.map +1 -0
  167. package/dist/internal/session-native-validity.d.mts +15 -0
  168. package/dist/internal/session-native-validity.mjs +97 -0
  169. package/dist/internal/session-native-validity.mjs.map +1 -0
  170. package/dist/internal/session-policy.mjs +29 -0
  171. package/dist/internal/session-policy.mjs.map +1 -0
  172. package/dist/internal/sql-authority.d.mts +16 -0
  173. package/dist/internal/sql-authority.mjs +32 -0
  174. package/dist/internal/sql-authority.mjs.map +1 -0
  175. package/dist/internal/sql-change.mjs +21 -0
  176. package/dist/internal/sql-change.mjs.map +1 -0
  177. package/dist/internal/sql-cleanup.mjs +35 -0
  178. package/dist/internal/sql-cleanup.mjs.map +1 -0
  179. package/dist/internal/sql-commit.d.mts +72 -0
  180. package/dist/internal/sql-commit.mjs +176 -0
  181. package/dist/internal/sql-commit.mjs.map +1 -0
  182. package/dist/internal/sql-expression.d.mts +17 -0
  183. package/dist/internal/sql-expression.mjs +49 -0
  184. package/dist/internal/sql-expression.mjs.map +1 -0
  185. package/dist/internal/sql-oauth-connected-model.d.mts +7 -23
  186. package/dist/internal/sql-oauth-model.d.mts +27 -52
  187. package/dist/internal/sql-oauth-model.mjs +3 -4
  188. package/dist/internal/sql-oauth-model.mjs.map +1 -1
  189. package/dist/internal/sql-persistence.mjs +5 -9
  190. package/dist/internal/sql-persistence.mjs.map +1 -1
  191. package/dist/internal/sql-storage-validation.mjs +1 -2
  192. package/dist/internal/sql-storage-validation.mjs.map +1 -1
  193. package/dist/internal/sql-table.d.mts +3 -16
  194. package/dist/internal/sql-table.mjs +21 -42
  195. package/dist/internal/sql-table.mjs.map +1 -1
  196. package/dist/internal/standalone.mjs +2 -3
  197. package/dist/internal/standalone.mjs.map +1 -1
  198. package/dist/internal/step-up-state.mjs +5 -8
  199. package/dist/internal/step-up-state.mjs.map +1 -1
  200. package/dist/internal/storage-clock.mjs +44 -0
  201. package/dist/internal/storage-clock.mjs.map +1 -0
  202. package/dist/internal/storage-mapping.d.mts +11 -8
  203. package/dist/internal/storage-mapping.mjs +88 -302
  204. package/dist/internal/storage-mapping.mjs.map +1 -1
  205. package/dist/internal/storage-plans.mjs +15 -73
  206. package/dist/internal/storage-plans.mjs.map +1 -1
  207. package/dist/internal/storage-tables.d.mts +37 -520
  208. package/dist/internal/storage-tables.mjs +31 -211
  209. package/dist/internal/storage-tables.mjs.map +1 -1
  210. package/dist/internal/storage-validation.d.mts +1 -6
  211. package/dist/internal/storage-validation.mjs +1 -42
  212. package/dist/internal/storage-validation.mjs.map +1 -1
  213. package/dist/internal/table-model.d.mts +21 -0
  214. package/dist/internal/totp-native.d.mts +15 -0
  215. package/dist/internal/totp-native.mjs +401 -0
  216. package/dist/internal/totp-native.mjs.map +1 -0
  217. package/package.json +1 -1
  218. package/src/Adapter.ts +143 -199
  219. package/src/OAuthPersistence.ts +128 -271
  220. package/src/index.ts +1 -1
  221. package/src/internal/browser-login.ts +54 -24
  222. package/src/internal/configuration.ts +16 -31
  223. package/src/internal/d1-planning.ts +7 -0
  224. package/src/internal/email-native-state.ts +247 -0
  225. package/src/internal/email-native.ts +514 -0
  226. package/src/internal/email-policy.ts +235 -0
  227. package/src/internal/email-registration-native.ts +386 -0
  228. package/src/internal/models/email-model.ts +76 -214
  229. package/src/internal/models/oauth-connected-model.ts +50 -288
  230. package/src/internal/models/oauth-model.ts +147 -368
  231. package/src/internal/models/passkey-model.ts +11 -208
  232. package/src/internal/models/passkey-registration-ceremony-model.ts +6 -60
  233. package/src/internal/models/passkey-write-model.ts +14 -95
  234. package/src/internal/models/password-model.ts +26 -147
  235. package/src/internal/models/phone-model.ts +110 -0
  236. package/src/internal/models/proof-model.ts +48 -404
  237. package/src/internal/models/session-model.ts +102 -200
  238. package/src/internal/models/step-up-model.ts +17 -96
  239. package/src/internal/models/totp-model.ts +82 -0
  240. package/src/internal/native-sql-table.ts +32 -11
  241. package/src/internal/oauth/native-accounts.ts +576 -0
  242. package/src/internal/oauth/native-connected-state.ts +288 -0
  243. package/src/internal/oauth/native-connected.ts +888 -0
  244. package/src/internal/oauth/native-flow.ts +253 -0
  245. package/src/internal/oauth/native-layers.ts +83 -0
  246. package/src/internal/oauth/native-mutation.ts +222 -0
  247. package/src/internal/oauth/native-registration.ts +545 -0
  248. package/src/internal/oauth/native-revocations.ts +190 -0
  249. package/src/internal/oauth/native-sign-in.ts +111 -0
  250. package/src/internal/oauth/native-state.ts +346 -0
  251. package/src/internal/oauth/state.ts +2 -70
  252. package/src/internal/passkey-actions.ts +70 -0
  253. package/src/internal/passkey-inputs.ts +56 -0
  254. package/src/internal/passkey-managed.ts +360 -0
  255. package/src/internal/passkey-native-ceremony.ts +66 -0
  256. package/src/internal/passkey-native-flow.ts +140 -0
  257. package/src/internal/passkey-native-registration.ts +221 -0
  258. package/src/internal/passkey-native-state.ts +335 -0
  259. package/src/internal/passkey-native-write.ts +611 -0
  260. package/src/internal/passkey-native.ts +372 -0
  261. package/src/internal/passkey-policy.ts +246 -0
  262. package/src/internal/password-credentials.ts +52 -10
  263. package/src/internal/password-native.ts +571 -0
  264. package/src/internal/password-policy.ts +307 -0
  265. package/src/internal/password-registration-native.ts +322 -0
  266. package/src/internal/persistence.ts +336 -290
  267. package/src/internal/phone-composed.ts +86 -0
  268. package/src/internal/phone-native.ts +659 -0
  269. package/src/internal/proof-native.ts +448 -0
  270. package/src/internal/registration.ts +96 -143
  271. package/src/internal/session-native-authority.ts +247 -0
  272. package/src/internal/session-native-cleanup.ts +65 -0
  273. package/src/internal/session-native-login.ts +205 -0
  274. package/src/internal/session-native-pending-read.ts +68 -0
  275. package/src/internal/session-native-pending.ts +223 -0
  276. package/src/internal/session-native-record.ts +141 -0
  277. package/src/internal/session-native-state.ts +259 -0
  278. package/src/internal/session-native-stateful.ts +512 -0
  279. package/src/internal/session-native-step-up.ts +450 -0
  280. package/src/internal/session-native-validity.ts +208 -0
  281. package/src/internal/session-policy.ts +59 -0
  282. package/src/internal/sql-authority.ts +56 -0
  283. package/src/internal/sql-change.ts +38 -0
  284. package/src/internal/sql-cleanup.ts +56 -0
  285. package/src/internal/sql-commit.ts +435 -0
  286. package/src/internal/sql-expression.ts +94 -0
  287. package/src/internal/sql-metadata.ts +100 -0
  288. package/src/internal/sql-oauth-connected-model.ts +6 -95
  289. package/src/internal/sql-oauth-model.ts +31 -134
  290. package/src/internal/sql-persistence.ts +2 -6
  291. package/src/internal/sql-storage-validation.ts +1 -2
  292. package/src/internal/sql-table.ts +19 -52
  293. package/src/internal/standalone.ts +2 -11
  294. package/src/internal/step-up-state.ts +4 -17
  295. package/src/internal/storage-clock.ts +58 -0
  296. package/src/internal/storage-mapping.ts +125 -340
  297. package/src/internal/storage-plans.ts +14 -80
  298. package/src/internal/storage-tables.ts +28 -212
  299. package/src/internal/storage-validation.ts +0 -58
  300. package/src/internal/table-model.ts +24 -0
  301. package/src/internal/totp-native.ts +701 -0
  302. package/dist/internal/PasswordPreparedPostconditions.d.mts +0 -22
  303. package/dist/internal/PasswordPreparedPostconditions.mjs +0 -12
  304. package/dist/internal/PasswordPreparedPostconditions.mjs.map +0 -1
  305. package/dist/internal/authority-snapshot.mjs +0 -53
  306. package/dist/internal/authority-snapshot.mjs.map +0 -1
  307. package/dist/internal/email-kernel.d.mts +0 -276
  308. package/dist/internal/email-kernel.mjs +0 -497
  309. package/dist/internal/email-kernel.mjs.map +0 -1
  310. package/dist/internal/models/passkey-registration-ceremony-model.mjs +0 -18
  311. package/dist/internal/models/passkey-registration-ceremony-model.mjs.map +0 -1
  312. package/dist/internal/oauth/accounts.d.mts +0 -8
  313. package/dist/internal/oauth/accounts.mjs +0 -379
  314. package/dist/internal/oauth/accounts.mjs.map +0 -1
  315. package/dist/internal/oauth/connected-access.d.mts +0 -9
  316. package/dist/internal/oauth/connected-access.mjs +0 -229
  317. package/dist/internal/oauth/connected-access.mjs.map +0 -1
  318. package/dist/internal/oauth/connected-collection.d.mts +0 -7
  319. package/dist/internal/oauth/connected-collection.mjs +0 -214
  320. package/dist/internal/oauth/connected-collection.mjs.map +0 -1
  321. package/dist/internal/oauth/connected-custody.d.mts +0 -6
  322. package/dist/internal/oauth/connected-custody.mjs +0 -165
  323. package/dist/internal/oauth/connected-custody.mjs.map +0 -1
  324. package/dist/internal/oauth/connected-flow.d.mts +0 -7
  325. package/dist/internal/oauth/connected-flow.mjs +0 -324
  326. package/dist/internal/oauth/connected-flow.mjs.map +0 -1
  327. package/dist/internal/oauth/connected-input.mjs +0 -122
  328. package/dist/internal/oauth/connected-input.mjs.map +0 -1
  329. package/dist/internal/oauth/connected-keys.d.mts +0 -2
  330. package/dist/internal/oauth/connected-keys.mjs +0 -22
  331. package/dist/internal/oauth/connected-keys.mjs.map +0 -1
  332. package/dist/internal/oauth/connected-maintenance.d.mts +0 -9
  333. package/dist/internal/oauth/connected-maintenance.mjs +0 -226
  334. package/dist/internal/oauth/connected-maintenance.mjs.map +0 -1
  335. package/dist/internal/oauth/connected-management.d.mts +0 -9
  336. package/dist/internal/oauth/connected-management.mjs +0 -243
  337. package/dist/internal/oauth/connected-management.mjs.map +0 -1
  338. package/dist/internal/oauth/connected-reference.mjs +0 -63
  339. package/dist/internal/oauth/connected-reference.mjs.map +0 -1
  340. package/dist/internal/oauth/connected-settlement.d.mts +0 -8
  341. package/dist/internal/oauth/connected-settlement.mjs +0 -141
  342. package/dist/internal/oauth/connected-settlement.mjs.map +0 -1
  343. package/dist/internal/oauth/connected-sign-in.d.mts +0 -10
  344. package/dist/internal/oauth/connected-sign-in.mjs +0 -281
  345. package/dist/internal/oauth/connected-sign-in.mjs.map +0 -1
  346. package/dist/internal/oauth/connected-state.d.mts +0 -14
  347. package/dist/internal/oauth/connected-state.mjs +0 -469
  348. package/dist/internal/oauth/connected-state.mjs.map +0 -1
  349. package/dist/internal/oauth/connected-target.d.mts +0 -21
  350. package/dist/internal/oauth/connected-target.mjs +0 -117
  351. package/dist/internal/oauth/connected-target.mjs.map +0 -1
  352. package/dist/internal/oauth/flow.d.mts +0 -5
  353. package/dist/internal/oauth/flow.mjs +0 -279
  354. package/dist/internal/oauth/flow.mjs.map +0 -1
  355. package/dist/internal/oauth/input.mjs +0 -127
  356. package/dist/internal/oauth/input.mjs.map +0 -1
  357. package/dist/internal/oauth/owner.d.mts +0 -10
  358. package/dist/internal/oauth/owner.mjs +0 -10
  359. package/dist/internal/oauth/owner.mjs.map +0 -1
  360. package/dist/internal/oauth/query-compiler.d.mts +0 -7
  361. package/dist/internal/oauth/query-compiler.mjs +0 -9
  362. package/dist/internal/oauth/query-compiler.mjs.map +0 -1
  363. package/dist/internal/oauth/registration.d.mts +0 -7
  364. package/dist/internal/oauth/registration.mjs +0 -393
  365. package/dist/internal/oauth/registration.mjs.map +0 -1
  366. package/dist/internal/oauth/target.d.mts +0 -31
  367. package/dist/internal/oauth/target.mjs +0 -273
  368. package/dist/internal/oauth/target.mjs.map +0 -1
  369. package/dist/internal/oauth-kernel.d.mts +0 -1423
  370. package/dist/internal/oauth-kernel.mjs +0 -187
  371. package/dist/internal/oauth-kernel.mjs.map +0 -1
  372. package/dist/internal/passkey/admission.d.mts +0 -6
  373. package/dist/internal/passkey/admission.mjs +0 -220
  374. package/dist/internal/passkey/admission.mjs.map +0 -1
  375. package/dist/internal/passkey/credentials.d.mts +0 -14
  376. package/dist/internal/passkey/credentials.mjs +0 -249
  377. package/dist/internal/passkey/credentials.mjs.map +0 -1
  378. package/dist/internal/passkey/enrollment.mjs +0 -138
  379. package/dist/internal/passkey/enrollment.mjs.map +0 -1
  380. package/dist/internal/passkey/flow.d.mts +0 -21
  381. package/dist/internal/passkey/flow.mjs +0 -452
  382. package/dist/internal/passkey/flow.mjs.map +0 -1
  383. package/dist/internal/passkey/management.mjs +0 -231
  384. package/dist/internal/passkey/management.mjs.map +0 -1
  385. package/dist/internal/passkey/registration-ceremony.d.mts +0 -9
  386. package/dist/internal/passkey/registration-ceremony.mjs +0 -129
  387. package/dist/internal/passkey/registration-ceremony.mjs.map +0 -1
  388. package/dist/internal/passkey/registration-custody.d.mts +0 -2
  389. package/dist/internal/passkey/registration-custody.mjs +0 -52
  390. package/dist/internal/passkey/registration-custody.mjs.map +0 -1
  391. package/dist/internal/passkey/registration-write.mjs +0 -211
  392. package/dist/internal/passkey/registration-write.mjs.map +0 -1
  393. package/dist/internal/passkey/state.d.mts +0 -10
  394. package/dist/internal/passkey/state.mjs +0 -234
  395. package/dist/internal/passkey/state.mjs.map +0 -1
  396. package/dist/internal/passkey/target.d.mts +0 -20
  397. package/dist/internal/passkey/target.mjs +0 -200
  398. package/dist/internal/passkey/target.mjs.map +0 -1
  399. package/dist/internal/passkey/write-state.d.mts +0 -17
  400. package/dist/internal/passkey/write-state.mjs +0 -354
  401. package/dist/internal/passkey/write-state.mjs.map +0 -1
  402. package/dist/internal/passkey/write-target.mjs +0 -192
  403. package/dist/internal/passkey/write-target.mjs.map +0 -1
  404. package/dist/internal/passkey-kernel.d.mts +0 -6045
  405. package/dist/internal/passkey-kernel.mjs +0 -49
  406. package/dist/internal/passkey-kernel.mjs.map +0 -1
  407. package/dist/internal/passkeys.d.mts +0 -7
  408. package/dist/internal/passkeys.mjs +0 -387
  409. package/dist/internal/passkeys.mjs.map +0 -1
  410. package/dist/internal/password-credentials.d.mts +0 -11
  411. package/dist/internal/password-kernel.d.mts +0 -278
  412. package/dist/internal/password-kernel.mjs +0 -508
  413. package/dist/internal/password-kernel.mjs.map +0 -1
  414. package/dist/internal/phone-kernel.d.mts +0 -162
  415. package/dist/internal/phone-kernel.mjs +0 -437
  416. package/dist/internal/phone-kernel.mjs.map +0 -1
  417. package/dist/internal/proof-kernel.d.mts +0 -94
  418. package/dist/internal/proof-kernel.mjs +0 -624
  419. package/dist/internal/proof-kernel.mjs.map +0 -1
  420. package/dist/internal/query-operations.d.mts +0 -68
  421. package/dist/internal/session-kernel.d.mts +0 -62
  422. package/dist/internal/session-kernel.mjs +0 -820
  423. package/dist/internal/session-kernel.mjs.map +0 -1
  424. package/dist/internal/sql-oauth-connected-model.mjs +0 -7
  425. package/dist/internal/sql-oauth-connected-model.mjs.map +0 -1
  426. package/dist/internal/sql-query.d.mts +0 -12
  427. package/dist/internal/sql-query.mjs +0 -206
  428. package/dist/internal/sql-query.mjs.map +0 -1
  429. package/dist/internal/step-up-state.d.mts +0 -49
  430. package/dist/internal/transaction-execution-kernel.d.mts +0 -37
  431. package/dist/internal/transaction-execution-kernel.mjs +0 -120
  432. package/dist/internal/transaction-execution-kernel.mjs.map +0 -1
  433. package/dist/internal/transaction-kernel.d.mts +0 -81
  434. package/dist/internal/transaction-kernel.mjs +0 -264
  435. package/dist/internal/transaction-kernel.mjs.map +0 -1
  436. package/src/internal/PasswordPreparedPostconditions.ts +0 -30
  437. package/src/internal/authority-snapshot.ts +0 -91
  438. package/src/internal/email-kernel.ts +0 -1556
  439. package/src/internal/oauth/accounts.ts +0 -839
  440. package/src/internal/oauth/connected-access.ts +0 -388
  441. package/src/internal/oauth/connected-collection.ts +0 -345
  442. package/src/internal/oauth/connected-custody.ts +0 -308
  443. package/src/internal/oauth/connected-flow.ts +0 -562
  444. package/src/internal/oauth/connected-input.ts +0 -147
  445. package/src/internal/oauth/connected-keys.ts +0 -31
  446. package/src/internal/oauth/connected-maintenance.ts +0 -379
  447. package/src/internal/oauth/connected-management.ts +0 -391
  448. package/src/internal/oauth/connected-reference.ts +0 -135
  449. package/src/internal/oauth/connected-settlement.ts +0 -278
  450. package/src/internal/oauth/connected-sign-in.ts +0 -472
  451. package/src/internal/oauth/connected-state.ts +0 -924
  452. package/src/internal/oauth/connected-target.ts +0 -307
  453. package/src/internal/oauth/flow.ts +0 -505
  454. package/src/internal/oauth/input.ts +0 -201
  455. package/src/internal/oauth/owner.ts +0 -22
  456. package/src/internal/oauth/query-compiler.ts +0 -15
  457. package/src/internal/oauth/registration.ts +0 -676
  458. package/src/internal/oauth/target.ts +0 -803
  459. package/src/internal/oauth-kernel.ts +0 -294
  460. package/src/internal/passkey/admission.ts +0 -368
  461. package/src/internal/passkey/credentials.ts +0 -511
  462. package/src/internal/passkey/enrollment.ts +0 -326
  463. package/src/internal/passkey/flow.ts +0 -1062
  464. package/src/internal/passkey/management.ts +0 -426
  465. package/src/internal/passkey/registration-ceremony.ts +0 -283
  466. package/src/internal/passkey/registration-custody.ts +0 -91
  467. package/src/internal/passkey/registration-write.ts +0 -426
  468. package/src/internal/passkey/state.ts +0 -351
  469. package/src/internal/passkey/target.ts +0 -598
  470. package/src/internal/passkey/write-state.ts +0 -692
  471. package/src/internal/passkey/write-target.ts +0 -450
  472. package/src/internal/passkey-kernel.ts +0 -112
  473. package/src/internal/passkeys.ts +0 -652
  474. package/src/internal/password-kernel.ts +0 -1523
  475. package/src/internal/phone-kernel.ts +0 -872
  476. package/src/internal/proof-kernel.ts +0 -1992
  477. package/src/internal/query-operations.ts +0 -91
  478. package/src/internal/session-kernel.ts +0 -2406
  479. package/src/internal/sql-query.ts +0 -304
  480. package/src/internal/transaction-execution-kernel.ts +0 -335
  481. package/src/internal/transaction-kernel.ts +0 -603
@@ -1,188 +1,59 @@
1
- import type { OAuthAccountRevision } from "@yielded/auth/OAuth";
2
1
  import type * as M from "@yielded/auth/OAuth";
3
- import type { AuthenticationRequirement } from "@yielded/auth/Sessions";
4
2
 
5
- import type { TableModel as Table, SqlExpression } from "../query-operations";
3
+ import type { TableModel as Table, SqlExpression } from "../table-model";
6
4
  import type { SubjectIdCodec } from "./common";
7
5
  import type {
8
6
  OAuthAuthorityReadTable,
9
7
  OAuthClock,
10
8
  OAuthCredentialReadTable,
11
9
  OAuthFlowTable,
12
- OAuthOwnershipMutation,
10
+ OAuthOwnershipTable,
11
+ OAuthOwnershipReadTable,
13
12
  OAuthSubjectReadTable,
14
- requiredOAuthTupleConstraints,
15
13
  } from "./oauth-model";
16
14
 
17
15
  type Column<T extends Table> = T["column"];
18
16
  export type OAuthConnectedAction = M.OAuthConnectedActionChallenge["action"];
19
17
 
20
- export interface OAuthConnectedSubjectTable<
21
- S extends Table,
22
- Expression extends SqlExpression = SqlExpression,
23
- > extends OAuthSubjectReadTable<S, Expression> {
24
- readonly decodeActionRequirement: (
25
- row: S["select"],
26
- action: OAuthConnectedAction,
27
- ) => AuthenticationRequirement;
28
- }
29
-
30
- /** All mapped order columns use exact SQL integer comparison through 2^53-1.
31
- * These codecs bridge driver representations, not alternative ordering rules. */
32
- export interface OAuthConnectedOrderCodec {
33
- readonly encode: (order: number) => unknown;
34
- readonly decode: (value: unknown) => number;
35
- }
36
-
37
- export interface OAuthConnectedFlowTable<F extends Table, N> {
38
- readonly table: F["table"];
39
- readonly moduleId: Column<F>;
40
- readonly flowId: Column<F>;
41
- readonly commandId: Column<F>;
42
- readonly subjectId: Column<F>;
43
- readonly clientKey: Column<F>;
44
- readonly cohortKey: Column<F>;
45
- readonly state: Column<F>;
46
- readonly version: Column<F>;
47
- readonly stateDigest: Column<F>;
48
- readonly snapshot: Column<F>;
49
- readonly claimId: Column<F>;
50
- readonly claimDigest: Column<F>;
51
- readonly claimOrder: Column<F>;
52
- readonly claimedAt: Column<F>;
53
- readonly claimExpiresAt: Column<F>;
54
- readonly expiresAt: Column<F>;
55
- readonly retentionUntil: Column<F>;
56
- /** None before claim, Unresolved after claim, Resolved only after definite
57
- * cancellation or atomic transfer to a grant/job. Never reset by cleanup. */
58
- readonly work: Column<F>;
59
- /** Exact sealed quarantine when no correctly sealed revocation job is available. */
60
- readonly custody: Column<F>;
61
- /** Required when retaining grants during sign-in. subjectId is NULL until
62
- * identity resolution; custom required columns are supplied by this encoder. */
63
- readonly encodeSignIn?: (reservation: M.OAuthSignInAccessClaim) => F["insert"];
64
- readonly encodeInsert: (input: {
65
- readonly flow: M.OAuthConnectedPendingFlow;
66
- readonly subjectId: N;
67
- }) => F["insert"];
68
- }
69
-
18
+ /** Immutable sealed data plus the exact refresh compare-and-set fields. */
70
19
  export interface OAuthConnectedGrantTable<G extends Table, N> {
71
20
  readonly table: G["table"];
72
21
  readonly moduleId: Column<G>;
73
22
  readonly grantId: Column<G>;
74
23
  readonly subjectId: Column<G>;
75
24
  readonly identityKey: Column<G>;
76
- /** Nullable unique active slot; historical/disconnected records use null. */
77
- readonly activeIdentityKey: Column<G>;
78
- readonly clientKey: Column<G>;
79
- readonly cohortKey: Column<G>;
80
25
  readonly profileKey: Column<G>;
81
26
  readonly grantVersion: Column<G>;
82
27
  readonly tokenVersion: Column<G>;
83
- readonly cohortGeneration: Column<G>;
84
28
  readonly state: Column<G>;
85
- readonly version: Column<G>;
86
- readonly context: Column<G>;
87
- readonly sealed: Column<G>;
88
- /** Canonical OAuthConnectedSummary only: list never loads token envelopes. */
29
+ readonly snapshot: Column<G>;
30
+ /** Listing selects this bounded projection, never encrypted token material. */
89
31
  readonly summary: Column<G>;
90
- readonly revocationJobId: Column<G>;
91
- readonly refreshWork: Column<G>;
92
- readonly refreshClaim: Column<G>;
32
+ readonly refreshClaimId: Column<G>;
33
+ readonly refreshNextTokenVersion: Column<G>;
34
+ readonly refreshClaimedAt: Column<G>;
93
35
  readonly refreshClaimExpiresAt: Column<G>;
94
- readonly retentionUntil: Column<G>;
36
+ readonly expiresAt: Column<G>;
95
37
  readonly encodeInsert: (input: {
96
38
  readonly grant: M.OAuthConnectedStoredGrant;
97
39
  readonly subjectId: N;
98
40
  }) => G["insert"];
99
41
  }
100
42
 
101
- /** Also stores a permanent provider/issuer scope anchor. clientKey must fit 52
102
- * ASCII characters. Empty clientRegistrationId is reserved for that anchor;
103
- * actual profile registrations are nonempty. Scope counter stays zero. */
104
- export interface OAuthConnectedClientRegistrationTable<C extends Table> {
105
- readonly table: C["table"];
106
- readonly clientKey: Column<C>;
107
- readonly provider: Column<C>;
108
- readonly issuer: Column<C>;
109
- readonly clientRegistrationId: Column<C>;
110
- readonly counter: Column<C>;
111
- readonly version: Column<C>;
112
- readonly encodeInsert: (configuration: M.OAuthConnectedConfiguration) => C["insert"];
113
- }
114
-
115
- /** Remote authority: no local-subject column or subject-scoped key. Retain this
116
- * anchor/cutoff when a legitimately released tuple gains a different local owner. */
117
- export interface OAuthConnectedCohortTable<C extends Table> {
118
- readonly table: C["table"];
119
- readonly cohortKey: Column<C>;
120
- readonly clientKey: Column<C>;
121
- readonly identityKey: Column<C>;
122
- readonly generation: Column<C>;
123
- readonly cutoff: Column<C>;
124
- readonly state: Column<C>;
125
- readonly version: Column<C>;
126
- readonly encodeInsert: (input: {
127
- readonly clientKey: string;
128
- readonly identityKey: string;
129
- }) => C["insert"];
130
- }
131
-
132
- export interface OAuthConnectedAdmissionTable<A extends Table, N> {
133
- readonly table: A["table"];
134
- readonly admissionId: Column<A>;
135
- readonly moduleId: Column<A>;
136
- readonly grantId: Column<A>;
137
- readonly subjectId: Column<A>;
138
- readonly identityKey: Column<A>;
139
- readonly clientKey: Column<A>;
140
- readonly cohortKey: Column<A>;
141
- readonly snapshot: Column<A>;
142
- readonly admittedAt: Column<A>;
143
- readonly expiresAt: Column<A>;
144
- readonly version: Column<A>;
145
- readonly encodeInsert: (input: {
146
- readonly admissionId: string;
147
- readonly grant: M.OAuthConnectedStoredGrant;
148
- readonly authorization: M.OAuthConnectedUseAuthorization;
149
- readonly subjectId: N;
150
- }) => A["insert"];
151
- }
152
-
153
- export interface OAuthConnectedCommandTable<C extends Table, N> {
154
- readonly table: C["table"];
155
- readonly moduleId: Column<C>;
156
- readonly commandId: Column<C>;
157
- readonly subjectId: Column<C>;
158
- readonly grantId: Column<C>;
159
- readonly intent: Column<C>;
160
- readonly decision: Column<C>;
161
- readonly retentionUntil: Column<C>;
162
- readonly version: Column<C>;
163
- readonly encodeInsert: (input: {
164
- readonly commandId: string;
165
- readonly grant: M.OAuthConnectedDisconnectGrant;
166
- readonly subjectId: N;
167
- }) => C["insert"];
168
- }
169
-
43
+ /** Optional provider revocation retains the exact removed grant ciphertext. A
44
+ * possibly spent claim is never reset to Pending or reclaimed after timeout. */
170
45
  export interface OAuthConnectedRevocationJobTable<J extends Table, N> {
171
46
  readonly table: J["table"];
172
47
  readonly jobId: Column<J>;
173
48
  readonly moduleId: Column<J>;
174
49
  readonly subjectId: Column<J>;
175
50
  readonly identityKey: Column<J>;
176
- readonly clientKey: Column<J>;
177
- readonly cohortKey: Column<J>;
178
- readonly grantId: Column<J>;
179
51
  readonly snapshot: Column<J>;
180
52
  readonly state: Column<J>;
181
53
  readonly claimId: Column<J>;
182
54
  readonly claimedAt: Column<J>;
183
55
  readonly claimExpiresAt: Column<J>;
184
56
  readonly retentionUntil: Column<J>;
185
- readonly version: Column<J>;
186
57
  readonly encodeInsert: (input: {
187
58
  readonly job: M.OAuthConnectedRevocationJob;
188
59
  readonly subjectId: N;
@@ -191,20 +62,18 @@ export interface OAuthConnectedRevocationJobTable<J extends Table, N> {
191
62
 
192
63
  export type OAuthConnectedPolicyInput<N> = {
193
64
  readonly subjectId: N;
194
- readonly revision: OAuthAccountRevision;
65
+ readonly revision: M.OAuthAccountRevision;
195
66
  } & (
196
67
  | {
197
68
  readonly kind: "action";
198
- readonly operation: "issue" | "claim" | "settle" | "disconnect";
69
+ readonly operation: "settle" | "disconnect";
199
70
  readonly authorization: M.OAuthConnectedActionAuthorization;
200
- readonly configuration: M.OAuthConnectedConfiguration;
201
71
  readonly grant?: M.OAuthConnectedTokenContext;
202
72
  }
203
73
  | {
204
74
  readonly kind: "sign-in";
205
75
  readonly credential: M.OAuthCredentialSnapshot;
206
- readonly configuration: M.OAuthConnectedConfiguration;
207
- readonly grant?: M.OAuthConnectedTokenContext;
76
+ readonly grant: M.OAuthConnectedTokenContext;
208
77
  }
209
78
  | {
210
79
  readonly kind: "metadata" | "use";
@@ -213,184 +82,77 @@ export type OAuthConnectedPolicyInput<N> = {
213
82
  }
214
83
  );
215
84
 
216
- export interface OAuthConnectedPolicyGuardTable<
217
- T extends Table,
218
- N,
219
- Expression extends SqlExpression = SqlExpression,
220
- > {
221
- readonly table: T["table"];
222
- readonly orderBy: Column<T>;
223
- readonly condition: (input: OAuthConnectedPolicyInput<N>) => Expression;
224
- }
225
-
226
- export interface OAuthConnectedPolicyGuard<
227
- N,
228
- Expression extends SqlExpression = SqlExpression,
229
- Descriptor extends object = object,
230
- > {
231
- readonly table: Descriptor;
232
- readonly orderBy: string;
233
- readonly condition: (input: OAuthConnectedPolicyInput<N>) => Expression;
234
- }
235
-
236
- export const oauthConnectedPolicyGuard = <
237
- T extends Table,
238
- N,
239
- Expression extends SqlExpression = SqlExpression,
240
- >(
241
- input: OAuthConnectedPolicyGuardTable<T, N, Expression>,
242
- ): OAuthConnectedPolicyGuard<N, Expression, T["table"]> =>
243
- Object.freeze({
244
- table: input.table,
245
- orderBy: input.orderBy,
246
- condition: input.condition,
247
- });
248
-
249
- export interface OAuthConnectedSqlPolicy<
250
- N,
251
- Expression extends SqlExpression = SqlExpression,
252
- Descriptor extends object = object,
253
- > {
254
- /** Up to 32 scopes, each selecting 1..64 stable rows in global lock order.
255
- * Omit only when subject/shared authority locks already serialize every mutable
256
- * policy dependency or policy is immutable. All writers follow that order. */
257
- readonly guards?: ReadonlyArray<OAuthConnectedPolicyGuard<N, Expression, Descriptor>>;
258
- /** Recheck exact policy revision, purpose, optional grant/profile restrictions
259
- * and current profile/permissions; joins and absence assumptions are authority.
260
- * The engine checks this before and after every owner/application write. */
85
+ /** Changes to mutable policy advance the same subject security revision. This
86
+ * predicate participates in the guarded write and final application postcondition. */
87
+ export interface OAuthConnectedSqlPolicy<N, Expression extends SqlExpression = SqlExpression> {
261
88
  readonly condition: (input: OAuthConnectedPolicyInput<N>) => Expression;
262
89
  }
263
90
 
264
91
  export const requiredOAuthConnectedConstraints = {
265
- flow: "unique(connectedFlow.moduleId,connectedFlow.flowId)",
266
- flowCommand: "unique(connectedFlow.moduleId,connectedFlow.commandId)",
267
- stateDigest: "unique(connectedFlow.stateDigest)",
268
- client: "unique(connectedClient.clientKey)",
269
- cohort: "unique(connectedCohort.cohortKey)",
92
+ flow: "unique(flow.moduleId,flow.flowId)",
93
+ stateDigest: "unique(flow.stateDigest)",
94
+ ownership: "unique(ownership.identityKey)",
270
95
  grant: "unique(connectedGrant.moduleId,connectedGrant.grantId)",
271
- grantIdentity:
272
- "unique(connectedGrant.moduleId,connectedGrant.subjectId,connectedGrant.profileKey,connectedGrant.activeIdentityKey)",
273
- admission: "unique(connectedAdmission.admissionId)",
274
- command: "unique(connectedCommand.moduleId,connectedCommand.commandId)",
96
+ activeIdentity:
97
+ "unique(connectedGrant.moduleId,connectedGrant.subjectId,connectedGrant.profileKey,connectedGrant.identityKey)",
98
+ authorityCredential: "unique(authority.subjectId,authority.credentialId)",
275
99
  } as const;
276
100
 
277
101
  export const requiredOAuthConnectedRevocationConstraints = {
278
102
  job: "unique(connectedRevocation.jobId)",
279
103
  } as const;
280
104
 
281
- /** Existing ownership only; workers never allocate or acquire a tuple. */
282
- export type OAuthConnectedOwnershipRead<
283
- T extends Table,
284
- O extends Table,
285
- N,
286
- Expression extends SqlExpression = SqlExpression,
287
- > =
288
- | {
289
- readonly mode: "integrated";
290
- readonly tuple: Omit<OAuthOwnershipMutation<T, O, N, Expression>["tuple"], "encodeInsert">;
291
- }
292
- | {
293
- readonly mode: "separate";
294
- readonly tuple: Omit<OAuthOwnershipMutation<T, O, N, Expression>["tuple"], "encodeInsert">;
295
- readonly external: Omit<
296
- Extract<
297
- OAuthOwnershipMutation<T, O, N, Expression>,
298
- { readonly mode: "separate" }
299
- >["external"],
300
- "encodeInsert"
301
- >;
302
- };
303
-
304
- export interface OAuthConnectedAuthorityMapping<
305
- T extends Table,
306
- O extends Table,
307
- F extends Table,
308
- G extends Table,
309
- C extends Table,
310
- H extends Table,
311
- N,
312
- Expression extends SqlExpression = SqlExpression,
313
- > {
314
- readonly ownership: OAuthConnectedOwnershipRead<T, O, N, Expression>;
315
- readonly subjectId: SubjectIdCodec<N>;
316
- readonly flow: Omit<OAuthConnectedFlowTable<F, N>, "encodeInsert">;
317
- readonly grant: Omit<OAuthConnectedGrantTable<G, N>, "encodeInsert">;
318
- readonly client: Omit<OAuthConnectedClientRegistrationTable<C>, "encodeInsert">;
319
- readonly cohort: Omit<OAuthConnectedCohortTable<H>, "encodeInsert">;
320
- readonly clock: OAuthClock<Expression>;
321
- readonly order: OAuthConnectedOrderCodec;
322
- readonly tupleConstraints: typeof requiredOAuthTupleConstraints;
323
- /** Safe metadata retention, never an expiry/quiescence proof for unresolved work. */
324
- readonly retentionMillis: number;
325
- }
326
-
327
105
  export interface OAuthConnectedMapping<
328
106
  S extends Table,
329
107
  AC extends Table,
330
- T extends Table,
331
108
  O extends Table,
332
109
  F extends Table,
333
110
  G extends Table,
334
- C extends Table,
335
- H extends Table,
336
- A extends Table,
337
- D extends Table,
338
111
  N,
339
- J extends Table = never,
112
+ J extends Table = Table,
340
113
  Expression extends SqlExpression = SqlExpression,
341
- Descriptor extends object = object,
342
114
  SignIn extends Table = Table,
343
- > extends OAuthConnectedAuthorityMapping<T, O, F, G, C, H, N, Expression> {
344
- readonly ownership: OAuthOwnershipMutation<T, O, N, Expression>;
345
- readonly flow: OAuthConnectedFlowTable<F, N>;
346
- readonly grant: OAuthConnectedGrantTable<G, N>;
347
- readonly client: OAuthConnectedClientRegistrationTable<C>;
348
- readonly cohort: OAuthConnectedCohortTable<H>;
349
- readonly subject: OAuthConnectedSubjectTable<S, Expression>;
115
+ > {
116
+ readonly ownership: OAuthOwnershipTable<O, N>;
117
+ readonly subject: OAuthSubjectReadTable<S, Expression>;
350
118
  readonly authority: OAuthAuthorityReadTable<AC, Expression>;
351
- readonly admission: OAuthConnectedAdmissionTable<A, N>;
352
- /** Same shared sign-in tables used by OAuthSignInPersistence. Enable only
353
- * alongside a nullable connected-flow subjectId and flow.encodeSignIn. */
354
- readonly signIn?: {
355
- readonly credential: OAuthCredentialReadTable<SignIn, Expression>;
356
- readonly flow: OAuthFlowTable<SignIn>;
357
- };
358
- readonly command: OAuthConnectedCommandTable<D, N>;
359
- readonly policy: OAuthConnectedSqlPolicy<N, Expression, Descriptor>;
119
+ readonly subjectId: SubjectIdCodec<N>;
120
+ readonly flow: OAuthFlowTable<F>;
121
+ readonly grant: OAuthConnectedGrantTable<G, N>;
122
+ readonly credential?: OAuthCredentialReadTable<SignIn, Expression>;
123
+ readonly clock: OAuthClock<Expression>;
124
+ readonly policy: OAuthConnectedSqlPolicy<N, Expression>;
360
125
  readonly constraints: typeof requiredOAuthConnectedConstraints;
361
126
  readonly revocation:
362
127
  | { readonly mode: "unsupported" }
363
128
  | {
364
- readonly mode: "cohort";
129
+ readonly mode: "provider";
365
130
  readonly job: OAuthConnectedRevocationJobTable<J, N>;
131
+ readonly retentionMillis: number;
366
132
  readonly constraints: typeof requiredOAuthConnectedRevocationConstraints;
367
133
  };
368
- /** Without an authoritative same-owner predicate, conservatively retain Owned.
369
- * Include login/other installed references; never filter away former-subject
370
- * work. This pure SQL constructor supports both bound values and correlated
371
- * column expressions with identical semantics; it performs no I/O.
372
- * Compare through the reference table's typed columns (for example, eq) so
373
- * native values use their encoders. Back the same-owner lookup with an index:
374
- * discovery applies this predicate before its candidate limit.
375
- * Connected references are checked separately. */
376
- readonly externalReference?: (
377
- input:
378
- | { readonly identityKey: string; readonly subjectId: N }
379
- | { readonly identityKey: Expression; readonly subjectId: Expression },
380
- ) => Expression;
134
+ /** Indexed same-owner predicate for installed references beyond these grants/jobs. */
135
+ readonly otherReferences: (input: {
136
+ readonly identityKey: string;
137
+ readonly subjectId: N;
138
+ }) => Expression;
381
139
  }
382
140
 
383
141
  export interface OAuthConnectedRevocationMapping<
384
- T extends Table,
385
142
  O extends Table,
386
- F extends Table,
387
143
  G extends Table,
388
- C extends Table,
389
- H extends Table,
390
144
  J extends Table,
391
145
  N,
392
146
  Expression extends SqlExpression = SqlExpression,
393
- > extends OAuthConnectedAuthorityMapping<T, O, F, G, C, H, N, Expression> {
147
+ > {
148
+ readonly ownership: OAuthOwnershipReadTable<O, N>;
149
+ readonly subjectId: SubjectIdCodec<N>;
150
+ readonly grant: Omit<OAuthConnectedGrantTable<G, N>, "encodeInsert">;
394
151
  readonly job: Omit<OAuthConnectedRevocationJobTable<J, N>, "encodeInsert">;
152
+ readonly clock: OAuthClock<Expression>;
153
+ readonly otherReferences: (input: {
154
+ readonly identityKey: string;
155
+ readonly subjectId: N;
156
+ }) => Expression;
395
157
  readonly constraints: typeof requiredOAuthConnectedRevocationConstraints;
396
158
  }