@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.
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 +16 -82
  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 +28 -148
  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 -346
  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 -1555
  439. package/src/internal/oauth/accounts.ts +0 -838
  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 -678
  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 -1522
  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,424 +1,68 @@
1
- import type {
2
- ProofBinding,
3
- ProofContinuationId,
4
- ProofId,
5
- ProofPurpose,
6
- ProofRequestReceipt,
7
- ProofVersion,
8
- ProofPolicy,
9
- ProofRecord,
10
- } from "@yielded/auth/Proofs";
11
- import type { TokenDigest } from "@yielded/auth/Schema";
12
- import type { Effect } from "effect";
13
-
14
- import type { AnyTableModel, TableModel as Table, SqlExpression } from "../query-operations";
15
- import type { PersistenceMappingError, SubjectIdCodec } from "./common";
16
-
17
- type ColumnKey<T extends Table> = T["column"];
18
-
19
- export type ProofAction = "issue" | "attempt";
20
-
21
- export type ProofScopeKind = "action" | "identifier" | "subject";
22
-
23
- export type ProofGenerationState = "active" | "consumed" | "cancelled" | "superseded";
24
-
25
- export type ProofDeliveryState = "new" | "claimed" | "accepted" | "failed" | "ambiguous";
26
-
27
- export type ProofCommandKind = "attempt" | "complete";
28
-
29
- export type ProofCommandDecision = "accepted" | "rejected" | "completed";
30
-
31
- export interface ProofScopeKeys {
32
- /** Stable across flow/context/request changes and bounded by the consumer codec. */
33
- readonly series: string;
34
- readonly identifier: string;
35
- /** A tagged non-null value; use a stable sentinel when the binding has no subject. */
36
- readonly subject: string;
37
- }
38
-
39
- export interface ProofAuthorityInput<NativeSubjectId> {
40
- readonly moduleId: string;
41
- readonly purpose: ProofPurpose;
42
- readonly binding: ProofBinding;
43
- /** Resolved by Effect preplanning before an interactive check or D1 predicate compile. */
44
- readonly nativeSubjectId?: NativeSubjectId;
45
- }
46
-
47
- export interface ProofAuthorityTables<
48
- Subject extends Table,
49
- Identifier extends Table,
50
- Credential extends Table,
51
- NativeSubjectId,
52
- Expression extends SqlExpression = SqlExpression,
53
- > {
54
- readonly identifier: {
55
- readonly table: Identifier["table"];
56
- readonly namespace: ColumnKey<Identifier>;
57
- readonly value: ColumnKey<Identifier>;
58
- /** Evaluate the consumer's explicit current-ownership/availability semantics. */
59
- readonly isCurrent: (
60
- input: ProofAuthorityInput<NativeSubjectId>,
61
- rows: ReadonlyArray<Identifier["select"]>,
62
- ) => boolean;
63
- /** Optional outside D1. Never infer this semantic predicate from eligibility. */
64
- readonly d1CurrentCondition?: (input: ProofAuthorityInput<NativeSubjectId>) => Expression;
65
- };
66
- readonly subject?: {
67
- readonly table: Subject["table"];
68
- readonly id: ColumnKey<Subject>;
69
- readonly status: ColumnKey<Subject>;
70
- readonly securityRevision: ColumnKey<Subject>;
71
- readonly isActiveStatus: (value: unknown) => boolean;
72
- readonly d1ActiveStatusValue: unknown;
73
- };
74
- readonly credential?: {
75
- readonly table: Credential["table"];
76
- readonly subjectId: ColumnKey<Credential>;
77
- readonly credentialId: ColumnKey<Credential>;
78
- readonly revision: ColumnKey<Credential>;
79
- readonly status?: ColumnKey<Credential>;
80
- readonly isActiveStatus?: (value: unknown) => boolean;
81
- readonly d1ActiveStatusValue?: unknown;
82
- };
83
- readonly subjectId?: SubjectIdCodec<NativeSubjectId>;
84
- }
85
-
86
- export interface ProofRequestTable<Request extends Table> {
87
- readonly table: Request["table"];
88
- readonly moduleId: ColumnKey<Request>;
89
- readonly requestId: ColumnKey<Request>;
90
- readonly fingerprint: ColumnKey<Request>;
91
- readonly proofId: ColumnKey<Request>;
92
- readonly purpose: ColumnKey<Request>;
93
- readonly keyId: ColumnKey<Request>;
94
- readonly createdAt: ColumnKey<Request>;
95
- readonly retentionUntil: ColumnKey<Request>;
96
- readonly encodeInsert: (input: {
97
- readonly record: ProofRecord;
98
- readonly createdAtMillis: number;
99
- readonly retentionUntilMillis: number;
100
- }) => Request["insert"];
101
- readonly decodeReceipt: (
102
- row: Request["select"],
103
- ) => Effect.Effect<ProofRequestReceipt, PersistenceMappingError>;
104
- }
105
-
106
- export interface ProofSeriesTable<Series extends Table> {
107
- readonly table: Series["table"];
108
- readonly moduleId: ColumnKey<Series>;
109
- readonly purpose: ColumnKey<Series>;
110
- readonly scopeKey: ColumnKey<Series>;
111
- readonly activeProofId: ColumnKey<Series>;
112
- readonly lastIssueAt: ColumnKey<Series>;
113
- readonly version: ColumnKey<Series>;
114
- readonly encodeInsert: (input: {
115
- readonly moduleId: string;
116
- readonly purpose: ProofPurpose;
117
- readonly scopeKey: string;
118
- readonly version: ProofVersion;
119
- }) => Series["insert"];
120
- }
121
-
122
- export interface ProofGenerationTable<Generation extends Table> {
123
- readonly table: Generation["table"];
124
- readonly moduleId: ColumnKey<Generation>;
125
- readonly purpose: ColumnKey<Generation>;
126
- readonly proofId: ColumnKey<Generation>;
127
- readonly requestId: ColumnKey<Generation>;
128
- readonly seriesKey: ColumnKey<Generation>;
129
- readonly deliveryId: ColumnKey<Generation>;
130
- readonly binding: ColumnKey<Generation>;
131
- readonly verifierKeyId: ColumnKey<Generation>;
132
- readonly verifierDigest: ColumnKey<Generation>;
133
- readonly issuedAt: ColumnKey<Generation>;
134
- readonly expiresAt: ColumnKey<Generation>;
135
- readonly version: ColumnKey<Generation>;
136
- readonly state: ColumnKey<Generation>;
137
- readonly sendCount: ColumnKey<Generation>;
138
- readonly deliveryState: ColumnKey<Generation>;
139
- readonly claimVersion: ColumnKey<Generation>;
140
- readonly claimDeadline: ColumnKey<Generation>;
141
- readonly retryAt: ColumnKey<Generation>;
142
- readonly deliveryRetryMillis: ColumnKey<Generation>;
143
- readonly retentionUntil: ColumnKey<Generation>;
144
- readonly encodeInsert: (input: {
145
- readonly record: ProofRecord;
146
- readonly seriesKey: string;
147
- readonly retentionUntilMillis: number;
148
- readonly state: ProofGenerationState;
149
- readonly deliveryState: ProofDeliveryState;
150
- readonly policy: ProofPolicy;
151
- }) => Generation["insert"];
152
- readonly decodeRecord: (
153
- row: Generation["select"],
154
- ) => Effect.Effect<ProofRecord, PersistenceMappingError>;
155
- readonly decodeBinding: (
156
- row: Generation["select"],
157
- ) => Effect.Effect<ProofBinding, PersistenceMappingError>;
158
- }
159
-
160
- export interface ProofContinuationRecord {
161
- readonly moduleId: string;
162
- readonly purpose: ProofPurpose;
163
- readonly continuationId: ProofContinuationId;
164
- readonly digest: TokenDigest;
165
- readonly proofId: ProofId;
166
- readonly seriesKey: string;
167
- readonly binding: ProofBinding;
168
- readonly expiresAtMillis: number;
169
- readonly version: ProofVersion;
170
- }
171
-
172
- export interface ProofContinuationTable<Continuation extends Table> {
173
- readonly table: Continuation["table"];
174
- readonly moduleId: ColumnKey<Continuation>;
175
- readonly purpose: ColumnKey<Continuation>;
176
- readonly continuationId: ColumnKey<Continuation>;
177
- readonly digest: ColumnKey<Continuation>;
178
- readonly proofId: ColumnKey<Continuation>;
179
- readonly seriesKey: ColumnKey<Continuation>;
180
- readonly binding: ColumnKey<Continuation>;
181
- readonly expiresAt: ColumnKey<Continuation>;
182
- readonly consumed: ColumnKey<Continuation>;
183
- readonly version: ColumnKey<Continuation>;
184
- readonly retentionUntil: ColumnKey<Continuation>;
185
- readonly encodeInsert: (
186
- record: ProofContinuationRecord & {
187
- readonly retentionUntilMillis: number;
188
- },
189
- ) => Continuation["insert"];
190
- readonly decode: (
191
- row: Continuation["select"],
192
- ) => Effect.Effect<ProofContinuationRecord, PersistenceMappingError>;
193
- }
194
-
195
- export interface ProofRateScopeTable<RateScope extends Table> {
196
- readonly table: RateScope["table"];
197
- readonly moduleId: ColumnKey<RateScope>;
198
- readonly purpose: ColumnKey<RateScope>;
199
- readonly action: ColumnKey<RateScope>;
200
- readonly scopeKind: ColumnKey<RateScope>;
201
- readonly scopeKey: ColumnKey<RateScope>;
1
+ import type { ProofIssueRecord } from "@yielded/auth/Proofs";
2
+
3
+ import type { AnyTableModel, TableModel as Table, SqlExpression } from "../table-model";
4
+ import type { SubjectIdCodec } from "./common";
5
+
6
+ type Column<T extends Table> = T["column"];
7
+
8
+ /** One current code per canonical identifier and subject. Binding is canonical
9
+ * Schema JSON, and token comparisons are byte exact even on collated columns. */
10
+ export interface ProofTable<Proof extends Table> {
11
+ readonly table: Proof["table"];
12
+ readonly moduleId: Column<Proof>;
13
+ readonly purpose: Column<Proof>;
14
+ readonly seriesKey: Column<Proof>;
15
+ readonly proofId: Column<Proof>;
16
+ readonly binding: Column<Proof>;
17
+ readonly verifierKeyId: Column<Proof>;
18
+ readonly verifierDigest: Column<Proof>;
19
+ readonly issuedAt: Column<Proof>;
20
+ readonly expiresAt: Column<Proof>;
21
+ readonly failedAttempts: Column<Proof>;
202
22
  readonly encodeInsert: (input: {
203
- readonly moduleId: string;
204
- readonly purpose: ProofPurpose;
205
- readonly action: ProofAction;
206
- readonly scopeKind: ProofScopeKind;
207
- readonly scopeKey: string;
208
- }) => RateScope["insert"];
209
- }
210
-
211
- export interface ProofAbuseEventTable<AbuseEvent extends Table> {
212
- readonly table: AbuseEvent["table"];
213
- readonly moduleId: ColumnKey<AbuseEvent>;
214
- readonly purpose: ColumnKey<AbuseEvent>;
215
- readonly action: ColumnKey<AbuseEvent>;
216
- readonly scopeKind: ColumnKey<AbuseEvent>;
217
- readonly scopeKey: ColumnKey<AbuseEvent>;
218
- readonly commandId: ColumnKey<AbuseEvent>;
219
- readonly occurredAt: ColumnKey<AbuseEvent>;
220
- readonly retentionUntil: ColumnKey<AbuseEvent>;
221
- readonly encodeInsert: (input: {
222
- readonly moduleId: string;
223
- readonly purpose: ProofPurpose;
224
- readonly action: ProofAction;
225
- readonly scopeKind: ProofScopeKind;
226
- readonly scopeKey: string;
227
- readonly commandId: string;
228
- readonly occurredAtMillis: number;
229
- readonly retentionUntilMillis: number;
230
- }) => AbuseEvent["insert"];
231
- }
232
-
233
- export interface ProofFailureEventTable<FailureEvent extends Table> {
234
- readonly table: FailureEvent["table"];
235
- readonly moduleId: ColumnKey<FailureEvent>;
236
- readonly purpose: ColumnKey<FailureEvent>;
237
- readonly seriesKey: ColumnKey<FailureEvent>;
238
- readonly commandId: ColumnKey<FailureEvent>;
239
- readonly occurredAt: ColumnKey<FailureEvent>;
240
- readonly retentionUntil: ColumnKey<FailureEvent>;
241
- readonly encodeInsert: (input: {
242
- readonly moduleId: string;
243
- readonly purpose: ProofPurpose;
23
+ readonly record: ProofIssueRecord;
244
24
  readonly seriesKey: string;
245
- readonly commandId: string;
246
- readonly occurredAtMillis: number;
247
- readonly retentionUntilMillis: number;
248
- }) => FailureEvent["insert"];
25
+ }) => Proof["insert"];
249
26
  }
250
27
 
251
- export interface ProofCommandTable<Command extends Table> {
252
- readonly table: Command["table"];
253
- readonly moduleId: ColumnKey<Command>;
254
- readonly commandId: ColumnKey<Command>;
255
- readonly kind: ColumnKey<Command>;
256
- readonly decision: ColumnKey<Command>;
257
- readonly retentionUntil: ColumnKey<Command>;
258
- readonly encodeInsert: (input: {
259
- readonly moduleId: string;
260
- readonly commandId: string;
261
- readonly kind: ProofCommandKind;
262
- readonly decision: ProofCommandDecision;
263
- readonly retentionUntilMillis: number;
264
- }) => Command["insert"];
28
+ export interface ProofClock<Expression extends SqlExpression = SqlExpression> {
29
+ readonly encodeInstant: (millis: number) => unknown;
30
+ readonly decodeInstant: (value: unknown) => number;
31
+ /** Integer engine wall-clock milliseconds; PostgreSQL uses clock_timestamp(). */
32
+ readonly engineNowMillis: Expression;
33
+ readonly toMillis: (expression: Expression) => Expression;
34
+ readonly fromMillis: (expression: Expression) => Expression;
265
35
  }
266
36
 
267
37
  export interface RequiredProofConstraints {
268
- readonly request: "unique(request.moduleId,request.requestId)";
269
- readonly series: "unique(series.moduleId,series.purpose,series.scopeKey)";
270
- readonly proof: "unique(generation.moduleId,generation.proofId)";
271
- readonly delivery: "unique(generation.moduleId,generation.deliveryId)";
272
- readonly continuationId: "unique(continuation.moduleId,continuation.continuationId)";
273
- readonly continuationDigest: "unique(continuation.moduleId,continuation.digest)";
274
- readonly rateScope: "unique(rateScope.moduleId,rateScope.purpose,rateScope.action,rateScope.scopeKind,rateScope.scopeKey)";
275
- readonly abuseEvent: "unique(abuseEvent.moduleId,abuseEvent.action,abuseEvent.scopeKind,abuseEvent.scopeKey,abuseEvent.commandId)";
276
- readonly failureEvent: "unique(failureEvent.moduleId,failureEvent.seriesKey,failureEvent.commandId)";
277
- readonly command: "unique(command.moduleId,command.commandId)";
38
+ readonly series: "unique(proof.moduleId,proof.purpose,proof.seriesKey)";
39
+ readonly proof: "unique(proof.moduleId,proof.proofId)";
278
40
  }
279
41
 
280
42
  export const requiredProofConstraints: RequiredProofConstraints = {
281
- request: "unique(request.moduleId,request.requestId)",
282
- series: "unique(series.moduleId,series.purpose,series.scopeKey)",
283
- proof: "unique(generation.moduleId,generation.proofId)",
284
- delivery: "unique(generation.moduleId,generation.deliveryId)",
285
- continuationId: "unique(continuation.moduleId,continuation.continuationId)",
286
- continuationDigest: "unique(continuation.moduleId,continuation.digest)",
287
- rateScope:
288
- "unique(rateScope.moduleId,rateScope.purpose,rateScope.action,rateScope.scopeKind,rateScope.scopeKey)",
289
- abuseEvent:
290
- "unique(abuseEvent.moduleId,abuseEvent.action,abuseEvent.scopeKind,abuseEvent.scopeKey,abuseEvent.commandId)",
291
- failureEvent: "unique(failureEvent.moduleId,failureEvent.seriesKey,failureEvent.commandId)",
292
- command: "unique(command.moduleId,command.commandId)",
43
+ series: "unique(proof.moduleId,proof.purpose,proof.seriesKey)",
44
+ proof: "unique(proof.moduleId,proof.proofId)",
293
45
  };
294
46
 
295
- export interface ProofConstraintClassifier {
296
- /** Match only the declared request uniqueness constraint, including wrapped driver errors. */
297
- readonly isRequestConflict: (cause: unknown) => boolean;
298
- /** Match only the declared series uniqueness constraint, including wrapped driver errors. */
299
- readonly isSeriesConflict: (cause: unknown) => boolean;
300
- /** Match only the declared command uniqueness constraint, including wrapped driver errors. */
301
- readonly isCommandConflict: (cause: unknown) => boolean;
302
- }
303
-
304
- export interface ProofD1Clock<Expression extends SqlExpression = SqlExpression> {
305
- /** Native instant expression evaluated by SQLite inside the submitted batch. */
306
- readonly engineNow: Expression;
307
- /** Integer Unix milliseconds expression evaluated inside the submitted batch. */
308
- readonly engineNowMillis: Expression;
309
- /** Native instant expression for an engine-time rolling-window cutoff. */
310
- readonly engineInstantMinus: (millis: number) => Expression;
311
- /** Native instant expression for a retention/lease deadline from engine time. */
312
- readonly engineInstantPlus: (millis: number) => Expression;
313
- }
314
-
315
47
  export interface ProofPersistenceMapping<
316
- Request extends Table,
317
- Series extends Table,
318
- Generation extends Table,
319
- Continuation extends Table,
320
- RateScope extends Table,
321
- AbuseEvent extends Table,
322
- FailureEvent extends Table,
323
- Command extends Table,
48
+ Proof extends Table,
324
49
  Subject extends Table,
325
- Identifier extends Table,
326
- Credential extends Table,
327
50
  NativeSubjectId,
328
51
  Expression extends SqlExpression = SqlExpression,
329
- > extends ProofConstraintClassifier {
330
- readonly request: ProofRequestTable<Request>;
331
- readonly series: ProofSeriesTable<Series>;
332
- readonly generation: ProofGenerationTable<Generation>;
333
- readonly continuation: ProofContinuationTable<Continuation>;
334
- readonly rateScope: ProofRateScopeTable<RateScope>;
335
- readonly abuseEvent: ProofAbuseEventTable<AbuseEvent>;
336
- readonly failureEvent: ProofFailureEventTable<FailureEvent>;
337
- readonly command: ProofCommandTable<Command>;
338
- readonly authority: ProofAuthorityTables<
339
- Subject,
340
- Identifier,
341
- Credential,
342
- NativeSubjectId,
343
- Expression
344
- >;
52
+ > {
53
+ readonly proof: ProofTable<Proof>;
54
+ /** Bare subject-bound redemption takes this lock before touching the proof.
55
+ * Protected mutation owners already holding it use the shared locked primitive. */
56
+ readonly subject: {
57
+ readonly table: Subject["table"];
58
+ readonly id: Column<Subject>;
59
+ };
60
+ readonly subjectId: SubjectIdCodec<NativeSubjectId>;
61
+ readonly clock: ProofClock<Expression>;
345
62
  readonly constraints: RequiredProofConstraints;
346
- readonly scopeKeys: (input: {
347
- readonly moduleId: string;
348
- readonly purpose: ProofPurpose;
349
- readonly binding: ProofBinding;
350
- }) => ProofScopeKeys;
351
- readonly encodeInstant: (epochMillis: number) => unknown;
352
- readonly decodeInstant: (native: unknown) => Effect.Effect<number, PersistenceMappingError>;
353
- readonly allocateVersion?: Effect.Effect<ProofVersion, PersistenceMappingError>;
354
- readonly allocateVersionSync?: () => ProofVersion;
355
- /** Required by D1 mappings and ignored by interactive targets. */
356
- readonly d1?: ProofD1Clock<Expression>;
63
+ /** D1 planning reads use the primary engine. */
64
+ readonly d1?: { readonly primary: true };
357
65
  }
358
66
 
359
- export type D1ProofPersistenceMapping<
360
- Request extends Table,
361
- Series extends Table,
362
- Generation extends Table,
363
- Continuation extends Table,
364
- RateScope extends Table,
365
- AbuseEvent extends Table,
366
- FailureEvent extends Table,
367
- Command extends Table,
368
- Subject extends Table,
369
- Identifier extends Table,
370
- Credential extends Table,
371
- NativeSubjectId,
372
- Expression extends SqlExpression = SqlExpression,
373
- > = ProofPersistenceMapping<
374
- Request,
375
- Series,
376
- Generation,
377
- Continuation,
378
- RateScope,
379
- AbuseEvent,
380
- FailureEvent,
381
- Command,
382
- Subject,
383
- Identifier,
384
- Credential,
385
- NativeSubjectId,
386
- Expression
387
- > & {
388
- readonly d1: ProofD1Clock<Expression>;
389
- readonly authority: ProofAuthorityTables<
390
- Subject,
391
- Identifier,
392
- Credential,
393
- NativeSubjectId,
394
- Expression
395
- > & {
396
- readonly identifier: ProofAuthorityTables<
397
- Subject,
398
- Identifier,
399
- Credential,
400
- NativeSubjectId,
401
- Expression
402
- >["identifier"] & {
403
- /** Synchronous SQL compiler; Effect-based ID conversion has already completed. */
404
- readonly d1CurrentCondition: (input: ProofAuthorityInput<NativeSubjectId>) => Expression;
405
- };
406
- };
407
- };
408
-
409
67
  export type AnyProofPersistenceMapping<Expression extends SqlExpression = SqlExpression> =
410
- ProofPersistenceMapping<
411
- AnyTableModel,
412
- AnyTableModel,
413
- AnyTableModel,
414
- AnyTableModel,
415
- AnyTableModel,
416
- AnyTableModel,
417
- AnyTableModel,
418
- AnyTableModel,
419
- AnyTableModel,
420
- AnyTableModel,
421
- AnyTableModel,
422
- unknown,
423
- Expression
424
- >;
68
+ ProofPersistenceMapping<AnyTableModel, AnyTableModel, unknown, Expression>;