@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,16 +1,16 @@
1
- import { type RecoveryReference, type LoginIdentifier } from "@yielded/auth/Identity";
1
+ import { type LoginIdentifier } from "@yielded/auth/Identity";
2
2
  import type {
3
3
  PasswordAction,
4
4
  PasswordCredentialSnapshot,
5
5
  PasswordReplacement,
6
- PasswordRegistrationDecision,
7
6
  EncodedPasswordHash,
8
7
  } from "@yielded/auth/Password";
9
8
  import type { AuthenticationRequirement, SecurityRevision } from "@yielded/auth/Sessions";
10
9
  import type { Effect, Redacted } from "effect";
11
10
 
12
- import type { AnyTableModel, TableModel as Table, SqlExpression } from "../query-operations";
11
+ import type { AnyTableModel, TableModel as Table, SqlExpression } from "../table-model";
13
12
  import type { PersistenceMappingError, SubjectIdCodec } from "./common";
13
+ import type { ProofClock } from "./proof-model";
14
14
 
15
15
  type ColumnKey<T extends Table> = T["column"];
16
16
 
@@ -116,30 +116,11 @@ export interface PasswordCredentialTable<
116
116
  }) => Effect.Effect<PasswordCredentialSnapshot, PersistenceMappingError>;
117
117
  }
118
118
 
119
- export interface PasswordCommandTable<Command extends Table> {
120
- readonly table: Command["table"];
121
- readonly moduleId: ColumnKey<Command>;
122
- readonly commandId: ColumnKey<Command>;
123
- readonly action: ColumnKey<Command>;
124
- readonly bindingDigest: ColumnKey<Command>;
125
- readonly decision: ColumnKey<Command>;
126
- readonly retentionUntil: ColumnKey<Command>;
127
- readonly encodeInsert: (input: {
128
- readonly moduleId: string;
129
- readonly commandId: string;
130
- readonly action: string;
131
- readonly bindingDigest: string;
132
- readonly decision: "changed";
133
- readonly retentionUntilMillis: number;
134
- }) => Command["insert"];
135
- }
136
-
137
119
  export interface RequiredPasswordConstraints {
138
120
  readonly identifier: "unique(identifier.namespace,identifier.value)";
139
121
  readonly authorityCredential: "unique(authorityCredential.subjectId,authorityCredential.credentialId)";
140
122
  readonly credentialSubject: "unique(credential.moduleId,credential.subjectId)";
141
123
  readonly credentialId: "unique(credential.moduleId,credential.credentialId)";
142
- readonly command: "unique(command.moduleId,command.commandId)";
143
124
  }
144
125
 
145
126
  export const requiredPasswordConstraints: RequiredPasswordConstraints = {
@@ -147,30 +128,16 @@ export const requiredPasswordConstraints: RequiredPasswordConstraints = {
147
128
  authorityCredential: "unique(authorityCredential.subjectId,authorityCredential.credentialId)",
148
129
  credentialSubject: "unique(credential.moduleId,credential.subjectId)",
149
130
  credentialId: "unique(credential.moduleId,credential.credentialId)",
150
- command: "unique(command.moduleId,command.commandId)",
151
131
  };
152
132
 
153
- export interface PasswordConstraintClassifier {
154
- /** Match only the mapped command uniqueness constraint. */
155
- readonly isCommandConflict: (cause: unknown) => boolean;
156
- }
157
-
158
- export interface PasswordD1Clock<Expression extends SqlExpression = SqlExpression> {
159
- readonly engineNow: Expression;
160
- readonly engineNowMillis: Expression;
161
- readonly engineInstantMinus: (millis: number) => Expression;
162
- readonly engineInstantPlus: (millis: number) => Expression;
163
- }
164
-
165
133
  export interface PasswordPersistenceMapping<
166
134
  Subject extends Table,
167
135
  Identifier extends Table,
168
136
  Credential extends Table,
169
137
  AuthorityCredential extends Table,
170
- Command extends Table,
171
138
  NativeSubjectId,
172
139
  Expression extends SqlExpression = SqlExpression,
173
- > extends PasswordConstraintClassifier {
140
+ > {
174
141
  readonly subject: PasswordSubjectTable<Subject, NativeSubjectId>;
175
142
  readonly identifier: PasswordIdentifierTable<Identifier, NativeSubjectId, Expression>;
176
143
  readonly credential: PasswordCredentialTable<Subject, Identifier, Credential, NativeSubjectId>;
@@ -179,7 +146,6 @@ export interface PasswordPersistenceMapping<
179
146
  AuthorityCredential,
180
147
  NativeSubjectId
181
148
  >;
182
- readonly command: PasswordCommandTable<Command>;
183
149
  readonly subjectId: SubjectIdCodec<NativeSubjectId>;
184
150
  readonly constraints: RequiredPasswordConstraints;
185
151
  readonly encodeInstant: (epochMillis: number) => unknown;
@@ -188,49 +154,13 @@ export interface PasswordPersistenceMapping<
188
154
  readonly allocateCredentialIdSync?: () => string;
189
155
  readonly allocateRevision?: Effect.Effect<SecurityRevision, PersistenceMappingError>;
190
156
  readonly allocateRevisionSync?: () => SecurityRevision;
191
- readonly commandRetentionMillis: number;
192
- /** All semantic replacements still bump subject revision. This flag only declares bearer invalidation latency. */
157
+ /** All semantic replacements still bump subject revision. This flag declares
158
+ * authoritative verification's invalidation latency; cookie exposure is separate. */
193
159
  readonly sessionInvalidation: "same-authority-immediate" | "original-absolute-expiry";
194
- readonly d1?: PasswordD1Clock<Expression>;
160
+ readonly clock: ProofClock<Expression>;
161
+ readonly d1?: { readonly primary: true };
195
162
  }
196
163
 
197
- export type D1PasswordPersistenceMapping<
198
- Subject extends Table,
199
- Identifier extends Table,
200
- Credential extends Table,
201
- AuthorityCredential extends Table,
202
- Command extends Table,
203
- NativeSubjectId,
204
- Expression extends SqlExpression = SqlExpression,
205
- > = PasswordPersistenceMapping<
206
- Subject,
207
- Identifier,
208
- Credential,
209
- AuthorityCredential,
210
- Command,
211
- NativeSubjectId,
212
- Expression
213
- > & {
214
- readonly d1: PasswordD1Clock<Expression>;
215
- readonly subject: PasswordSubjectTable<Subject, NativeSubjectId> & {
216
- readonly d1ActiveStatusValue: unknown;
217
- };
218
- readonly identifier: PasswordIdentifierTable<Identifier, NativeSubjectId, Expression> & {
219
- readonly d1CurrentCondition: (input: {
220
- readonly identifier: LoginIdentifier;
221
- readonly nativeSubjectId: NativeSubjectId;
222
- }) => Expression;
223
- };
224
- readonly authorityCredential: PasswordAuthorityCredentialTable<
225
- AuthorityCredential,
226
- NativeSubjectId
227
- > & {
228
- readonly d1ActiveStatusValue: unknown;
229
- };
230
- };
231
-
232
- export type PasswordRegistrationState = "pending" | "created";
233
-
234
164
  export interface PasswordRegistrationIntent<Registration> {
235
165
  readonly moduleId: string;
236
166
  readonly requestId: string;
@@ -239,33 +169,6 @@ export interface PasswordRegistrationIntent<Registration> {
239
169
  readonly replacement: PasswordReplacement;
240
170
  }
241
171
 
242
- export interface PasswordRegistrationTable<Registration, Request extends Table, NativeSubjectId> {
243
- readonly table: Request["table"];
244
- readonly moduleId: ColumnKey<Request>;
245
- readonly requestId: ColumnKey<Request>;
246
- readonly state: ColumnKey<Request>;
247
- readonly subjectId: ColumnKey<Request>;
248
- readonly recoveryReference: ColumnKey<Request>;
249
- readonly encodeInsert: (
250
- input: PasswordRegistrationIntent<Registration>,
251
- state: {
252
- readonly state: PasswordRegistrationState;
253
- readonly nativeSubjectId?: NativeSubjectId;
254
- readonly recoveryReference?: typeof RecoveryReference.Type;
255
- },
256
- ) => Request["insert"];
257
- /** Replay projection must never expose a stored subject or decode protected intent. */
258
- readonly decodeReplay: (row: Request["select"]) => Effect.Effect<
259
- Exclude<
260
- PasswordRegistrationDecision,
261
- {
262
- readonly _tag: "Created";
263
- }
264
- >,
265
- PersistenceMappingError
266
- >;
267
- }
268
-
269
172
  export interface PasswordRegistrationProvisioning<
270
173
  Registration,
271
174
  Subject extends Table,
@@ -287,23 +190,18 @@ export interface PasswordRegistrationProvisioning<
287
190
  }
288
191
 
289
192
  export interface RequiredPasswordRegistrationConstraints {
290
- readonly request: "unique(registration.moduleId,registration.requestId)";
291
- readonly recoveryReference: "unique(registration.recoveryReference)";
292
193
  readonly identifier: "unique(identifier.namespace,identifier.value)";
293
194
  readonly credentialSubject: "unique(credential.moduleId,credential.subjectId)";
294
195
  readonly authorityCredential: "unique(authorityCredential.subjectId,authorityCredential.credentialId)";
295
196
  }
296
197
 
297
198
  export const requiredPasswordRegistrationConstraints: RequiredPasswordRegistrationConstraints = {
298
- request: "unique(registration.moduleId,registration.requestId)",
299
- recoveryReference: "unique(registration.recoveryReference)",
300
199
  identifier: "unique(identifier.namespace,identifier.value)",
301
200
  credentialSubject: "unique(credential.moduleId,credential.subjectId)",
302
201
  authorityCredential: "unique(authorityCredential.subjectId,authorityCredential.credentialId)",
303
202
  };
304
203
 
305
204
  export interface PasswordRegistrationConstraintClassifier {
306
- readonly isRequestConflict: (cause: unknown) => boolean;
307
205
  readonly isIdentifierConflict: (cause: unknown) => boolean;
308
206
  readonly isCredentialConflict: (cause: unknown) => boolean;
309
207
  }
@@ -314,7 +212,6 @@ export type PasswordRegistrationMapping<
314
212
  Identifier extends Table,
315
213
  Credential extends Table,
316
214
  AuthorityCredential extends Table,
317
- Request extends Table,
318
215
  NativeSubjectId,
319
216
  Expression extends SqlExpression = SqlExpression,
320
217
  > = PasswordRegistrationConstraintClassifier & {
@@ -325,47 +222,32 @@ export type PasswordRegistrationMapping<
325
222
  AuthorityCredential,
326
223
  NativeSubjectId
327
224
  >;
328
- readonly registration: PasswordRegistrationTable<Registration, Request, NativeSubjectId>;
329
225
  readonly subjectId: SubjectIdCodec<NativeSubjectId>;
330
226
  readonly constraints: RequiredPasswordRegistrationConstraints;
331
227
  readonly allocateCredentialId?: Effect.Effect<string, PersistenceMappingError>;
332
228
  readonly allocateCredentialIdSync?: () => string;
333
229
  readonly allocateRevision?: Effect.Effect<SecurityRevision, PersistenceMappingError>;
334
230
  readonly allocateRevisionSync?: () => SecurityRevision;
335
- } & (
336
- | {
337
- readonly mode: "atomic";
338
- readonly provisioning: PasswordRegistrationProvisioning<
339
- Registration,
340
- Subject,
341
- NativeSubjectId
342
- > &
343
- (
344
- | {
345
- readonly idMode: "allocated";
346
- readonly allocateSubjectId: Effect.Effect<NativeSubjectId, PersistenceMappingError>;
347
- }
348
- | {
349
- readonly idMode: "synchronous";
350
- readonly allocateSubjectIdSync: () => NativeSubjectId;
351
- }
352
- | {
353
- readonly idMode: "generated";
354
- readonly decodeGeneratedId: (
355
- rows: ReadonlyArray<unknown>,
356
- ) => Effect.Effect<NativeSubjectId, PersistenceMappingError>;
357
- }
358
- );
359
- }
360
- | {
361
- readonly mode: "pending";
362
- readonly allocateRecoveryReference?: Effect.Effect<
363
- typeof RecoveryReference.Type,
364
- PersistenceMappingError
365
- >;
366
- readonly allocateRecoveryReferenceSync?: () => typeof RecoveryReference.Type;
367
- }
368
- );
231
+ } & {
232
+ readonly mode: "atomic";
233
+ readonly provisioning: PasswordRegistrationProvisioning<Registration, Subject, NativeSubjectId> &
234
+ (
235
+ | {
236
+ readonly idMode: "allocated";
237
+ readonly allocateSubjectId: Effect.Effect<NativeSubjectId, PersistenceMappingError>;
238
+ }
239
+ | {
240
+ readonly idMode: "synchronous";
241
+ readonly allocateSubjectIdSync: () => NativeSubjectId;
242
+ }
243
+ | {
244
+ readonly idMode: "generated";
245
+ readonly decodeGeneratedId: (
246
+ rows: ReadonlyArray<unknown>,
247
+ ) => Effect.Effect<NativeSubjectId, PersistenceMappingError>;
248
+ }
249
+ );
250
+ };
369
251
 
370
252
  export type AnyPasswordPersistenceMapping<Expression extends SqlExpression = SqlExpression> =
371
253
  PasswordPersistenceMapping<
@@ -373,7 +255,6 @@ export type AnyPasswordPersistenceMapping<Expression extends SqlExpression = Sql
373
255
  AnyTableModel,
374
256
  AnyTableModel,
375
257
  AnyTableModel,
376
- AnyTableModel,
377
258
  unknown,
378
259
  Expression
379
260
  >;
@@ -387,7 +268,6 @@ export type AnyPasswordRegistrationMapping<
387
268
  AnyTableModel,
388
269
  AnyTableModel,
389
270
  AnyTableModel,
390
- AnyTableModel,
391
271
  unknown,
392
272
  Expression
393
273
  >;
@@ -0,0 +1,110 @@
1
+ import type { PhoneLifecyclePolicy, PhoneNumber } from "@yielded/auth/PhoneOtp";
2
+ import type { SubjectId } from "@yielded/auth/Schema";
3
+ import type { AuthenticationRequirement } from "@yielded/auth/Sessions";
4
+ import type { Effect } from "effect";
5
+
6
+ import type { AnyTableModel, TableModel as Table, SqlExpression } from "../table-model";
7
+ import type { PersistenceMappingError } from "./common";
8
+ import type { ProofPersistenceMapping } from "./proof-model";
9
+
10
+ type PhoneColumn<T extends Table> = T["column"];
11
+
12
+ export const requiredPhoneConstraints = {
13
+ subject: "unique(id)",
14
+ identifier: "unique(namespace,value)",
15
+ credential: "unique(credentialId)",
16
+ } as const;
17
+
18
+ /** Consumer-owned schema; encoders and allocators are synchronous and side-effect free.
19
+ * Identifiers store permanent number custody. Never delete retired rows to make a recycled number eligible. A consumer's
20
+ * explicit recovery workflow may resolve custody only after independent authentication.
21
+ * Subject defaults own account provisioning; no email/profile schema is prescribed. */
22
+ export interface PhoneMapping<
23
+ S extends Table,
24
+ I extends Table,
25
+ C extends Table,
26
+ P extends Table,
27
+ N,
28
+ Expression extends SqlExpression = SqlExpression,
29
+ > {
30
+ readonly moduleId: string;
31
+ readonly policy: PhoneLifecyclePolicy;
32
+ readonly constraints: typeof requiredPhoneConstraints;
33
+ readonly proofs: ProofPersistenceMapping<P, S, N, Expression>;
34
+ readonly subjectIds: {
35
+ readonly toNative: (id: SubjectId) => N | Effect.Effect<N, PersistenceMappingError>;
36
+ readonly toSubject: (id: N) => SubjectId | Effect.Effect<SubjectId, PersistenceMappingError>;
37
+ readonly allocate?: () => N | Effect.Effect<N, PersistenceMappingError>;
38
+ };
39
+ readonly subject: {
40
+ readonly table: S["table"];
41
+ readonly id: PhoneColumn<S>;
42
+ readonly securityRevision: PhoneColumn<S>;
43
+ readonly activeCondition: Expression;
44
+ readonly decodeRequirement: (
45
+ row: S["select"],
46
+ ) =>
47
+ | AuthenticationRequirement
48
+ | Effect.Effect<AuthenticationRequirement, PersistenceMappingError>;
49
+ /** Current action policy, independently from primary sign-in assurance. */
50
+ readonly decodeActionRequirement?: (
51
+ row: S["select"],
52
+ action: "verify" | "change",
53
+ ) =>
54
+ | AuthenticationRequirement
55
+ | Effect.Effect<AuthenticationRequirement, PersistenceMappingError>;
56
+ readonly encodeInsert?: (input: {
57
+ readonly id: N;
58
+ readonly securityRevision: string;
59
+ readonly phoneNumber: PhoneNumber;
60
+ }) => S["insert"];
61
+ };
62
+ readonly identifier: {
63
+ readonly table: I["table"];
64
+ readonly moduleId: PhoneColumn<I>;
65
+ readonly credentialId: PhoneColumn<I>;
66
+ readonly namespace: PhoneColumn<I>;
67
+ readonly value: PhoneColumn<I>;
68
+ readonly subjectId: PhoneColumn<I>;
69
+ readonly revision: PhoneColumn<I>;
70
+ readonly verifiedAt: PhoneColumn<I>;
71
+ readonly status: PhoneColumn<I>;
72
+ readonly activeCondition: Expression;
73
+ readonly encodeStatus: (active: boolean) => unknown;
74
+ readonly encodeInsert: (input: {
75
+ readonly moduleId: string;
76
+ readonly credentialId: string;
77
+ readonly phoneNumber: PhoneNumber;
78
+ readonly subjectId: N;
79
+ readonly revision: string;
80
+ readonly verifiedAtMillis: number;
81
+ readonly active: boolean;
82
+ }) => I["insert"];
83
+ };
84
+ readonly credential: {
85
+ readonly table: C["table"];
86
+ readonly id: PhoneColumn<C>;
87
+ readonly subjectId: PhoneColumn<C>;
88
+ readonly revision: PhoneColumn<C>;
89
+ readonly status: PhoneColumn<C>;
90
+ readonly activeCondition: Expression;
91
+ readonly encodeStatus: (active: boolean) => unknown;
92
+ readonly encodeInsert: (input: {
93
+ readonly credentialId: string;
94
+ readonly subjectId: N;
95
+ readonly revision: string;
96
+ readonly active: boolean;
97
+ }) => C["insert"];
98
+ };
99
+ readonly encodeInstant: (millis: number) => unknown;
100
+ readonly engineNowMillis: Expression;
101
+ }
102
+
103
+ export type AnyPhoneMapping<Expression extends SqlExpression = SqlExpression> = PhoneMapping<
104
+ AnyTableModel,
105
+ AnyTableModel,
106
+ AnyTableModel,
107
+ AnyTableModel,
108
+ unknown,
109
+ Expression
110
+ >;