@yielded/auth 0.1.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1466) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +18 -0
  3. package/dist/Atom.d.mts +5 -0
  4. package/dist/Atom.mjs +5 -0
  5. package/dist/Auth.d.mts +9 -0
  6. package/dist/Auth.mjs +7 -0
  7. package/dist/AuthContract.d.mts +4 -0
  8. package/dist/AuthContract.mjs +4 -0
  9. package/dist/AuthSession.d.mts +82 -0
  10. package/dist/AuthSession.mjs +138 -0
  11. package/dist/AuthSession.mjs.map +1 -0
  12. package/dist/AuthStore.d.mts +68 -0
  13. package/dist/AuthStore.mjs +194 -0
  14. package/dist/AuthStore.mjs.map +1 -0
  15. package/dist/AuthTokenCodec.d.mts +40 -0
  16. package/dist/AuthTokenCodec.mjs +104 -0
  17. package/dist/AuthTokenCodec.mjs.map +1 -0
  18. package/dist/Client.d.mts +2 -0
  19. package/dist/Client.mjs +2 -0
  20. package/dist/Cloudflare.d.mts +89 -0
  21. package/dist/Cloudflare.mjs +166 -0
  22. package/dist/Cloudflare.mjs.map +1 -0
  23. package/dist/Drizzle.d.mts +28 -0
  24. package/dist/Drizzle.mjs +27 -0
  25. package/dist/DrizzleD1.d.mts +935 -0
  26. package/dist/DrizzleD1.mjs +29 -0
  27. package/dist/DrizzleD1.mjs.map +1 -0
  28. package/dist/DrizzleLibsql.d.mts +2288 -0
  29. package/dist/DrizzleLibsql.mjs +85 -0
  30. package/dist/DrizzleLibsql.mjs.map +1 -0
  31. package/dist/DrizzleMysql2.d.mts +1809 -0
  32. package/dist/DrizzleMysql2.mjs +55 -0
  33. package/dist/DrizzleMysql2.mjs.map +1 -0
  34. package/dist/DrizzlePglite.d.mts +1808 -0
  35. package/dist/DrizzlePglite.mjs +45 -0
  36. package/dist/DrizzlePglite.mjs.map +1 -0
  37. package/dist/DrizzlePostgres.d.mts +1808 -0
  38. package/dist/DrizzlePostgres.mjs +45 -0
  39. package/dist/DrizzlePostgres.mjs.map +1 -0
  40. package/dist/DrizzleSqliteBun.d.mts +2287 -0
  41. package/dist/DrizzleSqliteBun.mjs +62 -0
  42. package/dist/DrizzleSqliteBun.mjs.map +1 -0
  43. package/dist/DrizzleSqliteDo.d.mts +2343 -0
  44. package/dist/DrizzleSqliteDo.mjs +105 -0
  45. package/dist/DrizzleSqliteDo.mjs.map +1 -0
  46. package/dist/DrizzleSqliteNode.d.mts +2287 -0
  47. package/dist/DrizzleSqliteNode.mjs +62 -0
  48. package/dist/DrizzleSqliteNode.mjs.map +1 -0
  49. package/dist/DrizzleSqliteWasm.d.mts +2287 -0
  50. package/dist/DrizzleSqliteWasm.mjs +62 -0
  51. package/dist/DrizzleSqliteWasm.mjs.map +1 -0
  52. package/dist/Email.d.mts +12 -0
  53. package/dist/Email.mjs +11 -0
  54. package/dist/EmailOtp.d.mts +42 -0
  55. package/dist/EmailOtp.mjs +120 -0
  56. package/dist/EmailOtp.mjs.map +1 -0
  57. package/dist/EmailOtpSender.d.mts +22 -0
  58. package/dist/EmailOtpSender.mjs +18 -0
  59. package/dist/EmailOtpSender.mjs.map +1 -0
  60. package/dist/Errors.d.mts +55 -0
  61. package/dist/Errors.mjs +31 -0
  62. package/dist/Errors.mjs.map +1 -0
  63. package/dist/GitHub.d.mts +5 -0
  64. package/dist/GitHub.mjs +4 -0
  65. package/dist/Hooks.d.mts +6 -0
  66. package/dist/Hooks.mjs +6 -0
  67. package/dist/Http.d.mts +12 -0
  68. package/dist/Http.mjs +12 -0
  69. package/dist/HttpServer.d.mts +103 -0
  70. package/dist/HttpServer.mjs +326 -0
  71. package/dist/HttpServer.mjs.map +1 -0
  72. package/dist/Identity.d.mts +9 -0
  73. package/dist/Identity.mjs +9 -0
  74. package/dist/IdentityResolver.d.mts +16 -0
  75. package/dist/IdentityResolver.mjs +12 -0
  76. package/dist/IdentityResolver.mjs.map +1 -0
  77. package/dist/OAuth.d.mts +36 -0
  78. package/dist/OAuth.mjs +35 -0
  79. package/dist/OpenIdClient.d.mts +3 -0
  80. package/dist/OpenIdClient.mjs +3 -0
  81. package/dist/OpenIdClientConnected.d.mts +4 -0
  82. package/dist/OpenIdClientConnected.mjs +3 -0
  83. package/dist/OperationHttp.d.mts +3 -0
  84. package/dist/OperationHttp.mjs +3 -0
  85. package/dist/OperationHttpClient.d.mts +2 -0
  86. package/dist/OperationHttpClient.mjs +2 -0
  87. package/dist/OperationHttpServer.d.mts +5 -0
  88. package/dist/OperationHttpServer.mjs +4 -0
  89. package/dist/Operations.d.mts +8 -0
  90. package/dist/Operations.mjs +8 -0
  91. package/dist/Passkey.d.mts +12 -0
  92. package/dist/Passkey.mjs +12 -0
  93. package/dist/PasskeyBrowser.d.mts +4 -0
  94. package/dist/PasskeyBrowser.mjs +4 -0
  95. package/dist/PasskeyContract.d.mts +641 -0
  96. package/dist/PasskeyContract.mjs +174 -0
  97. package/dist/PasskeyContract.mjs.map +1 -0
  98. package/dist/PasskeyPassword.d.mts +412 -0
  99. package/dist/PasskeyPassword.mjs +174 -0
  100. package/dist/PasskeyPassword.mjs.map +1 -0
  101. package/dist/PasskeySimpleWebAuthn.d.mts +3 -0
  102. package/dist/PasskeySimpleWebAuthn.mjs +3 -0
  103. package/dist/Password.d.mts +19 -0
  104. package/dist/Password.mjs +17 -0
  105. package/dist/PasswordAuth.d.mts +45 -0
  106. package/dist/PasswordAuth.mjs +79 -0
  107. package/dist/PasswordAuth.mjs.map +1 -0
  108. package/dist/PasswordCredentialStore.d.mts +46 -0
  109. package/dist/PasswordCredentialStore.mjs +62 -0
  110. package/dist/PasswordCredentialStore.mjs.map +1 -0
  111. package/dist/PasswordHasher.d.mts +31 -0
  112. package/dist/PasswordHasher.mjs +76 -0
  113. package/dist/PasswordHasher.mjs.map +1 -0
  114. package/dist/PhoneOtp.d.mts +11 -0
  115. package/dist/PhoneOtp.mjs +11 -0
  116. package/dist/Policy.d.mts +52 -0
  117. package/dist/Policy.mjs +36 -0
  118. package/dist/Policy.mjs.map +1 -0
  119. package/dist/Proofs.d.mts +14 -0
  120. package/dist/Proofs.mjs +13 -0
  121. package/dist/Rpc.d.mts +12 -0
  122. package/dist/Rpc.mjs +11 -0
  123. package/dist/Rpc.mjs.map +1 -0
  124. package/dist/Schema.d.mts +160 -0
  125. package/dist/Schema.mjs +141 -0
  126. package/dist/Schema.mjs.map +1 -0
  127. package/dist/SessionContract.d.mts +3 -0
  128. package/dist/SessionContract.mjs +3 -0
  129. package/dist/Sessions.d.mts +14 -0
  130. package/dist/Sessions.mjs +12 -0
  131. package/dist/Testing.d.mts +7 -0
  132. package/dist/Testing.mjs +7 -0
  133. package/dist/Totp.d.mts +8 -0
  134. package/dist/Totp.mjs +8 -0
  135. package/dist/TotpContract.d.mts +318 -0
  136. package/dist/TotpContract.mjs +119 -0
  137. package/dist/TotpContract.mjs.map +1 -0
  138. package/dist/WebCrypto.d.mts +28 -0
  139. package/dist/WebCrypto.mjs +42 -0
  140. package/dist/WebCrypto.mjs.map +1 -0
  141. package/dist/Workflows.d.mts +16 -0
  142. package/dist/Workflows.mjs +11 -0
  143. package/dist/Workflows.mjs.map +1 -0
  144. package/dist/atom/AuthAtomLifetime.d.mts +35 -0
  145. package/dist/atom/AuthAtomLifetime.mjs +50 -0
  146. package/dist/atom/AuthAtomLifetime.mjs.map +1 -0
  147. package/dist/atom/AuthAtomWorkflow.d.mts +17 -0
  148. package/dist/atom/AuthAtomWorkflow.mjs +9 -0
  149. package/dist/atom/AuthAtomWorkflow.mjs.map +1 -0
  150. package/dist/atom/client.d.mts +43 -0
  151. package/dist/atom/client.mjs +168 -0
  152. package/dist/atom/client.mjs.map +1 -0
  153. package/dist/atom/operations.d.mts +35 -0
  154. package/dist/atom/operations.mjs +58 -0
  155. package/dist/atom/operations.mjs.map +1 -0
  156. package/dist/atom/scoped-runtime.mjs +151 -0
  157. package/dist/atom/scoped-runtime.mjs.map +1 -0
  158. package/dist/auth/Auth.d.mts +7806 -0
  159. package/dist/auth/Auth.mjs +141 -0
  160. package/dist/auth/Auth.mjs.map +1 -0
  161. package/dist/auth/AuthConfigurationError.d.mts +10 -0
  162. package/dist/auth/AuthConfigurationError.mjs +14 -0
  163. package/dist/auth/AuthConfigurationError.mjs.map +1 -0
  164. package/dist/auth/AuthRequest.d.mts +21 -0
  165. package/dist/auth/AuthRequest.mjs +10 -0
  166. package/dist/auth/AuthRequest.mjs.map +1 -0
  167. package/dist/auth/AuthStrategy.d.mts +23 -0
  168. package/dist/auth/AuthStrategy.mjs +33 -0
  169. package/dist/auth/AuthStrategy.mjs.map +1 -0
  170. package/dist/auth/ConsumeDecision.d.mts +11 -0
  171. package/dist/auth/actions.d.mts +18 -0
  172. package/dist/auth/actions.mjs +70 -0
  173. package/dist/auth/actions.mjs.map +1 -0
  174. package/dist/auth/defaults.mjs +12 -0
  175. package/dist/auth/defaults.mjs.map +1 -0
  176. package/dist/auth/definition.d.mts +46 -0
  177. package/dist/auth/session.d.mts +27 -0
  178. package/dist/auth/session.mjs +56 -0
  179. package/dist/auth/session.mjs.map +1 -0
  180. package/dist/drizzle/D1BatchStatements.d.mts +11 -0
  181. package/dist/drizzle/D1BatchStatements.mjs +8 -0
  182. package/dist/drizzle/D1BatchStatements.mjs.map +1 -0
  183. package/dist/drizzle/PasswordPreparedPostconditions.mjs +12 -0
  184. package/dist/drizzle/PasswordPreparedPostconditions.mjs.map +1 -0
  185. package/dist/drizzle/SuppliedService.d.mts +10 -0
  186. package/dist/drizzle/d1-emails.d.mts +68 -0
  187. package/dist/drizzle/d1-emails.mjs +580 -0
  188. package/dist/drizzle/d1-emails.mjs.map +1 -0
  189. package/dist/drizzle/d1-generated-statement.mjs +79 -0
  190. package/dist/drizzle/d1-generated-statement.mjs.map +1 -0
  191. package/dist/drizzle/d1-identity.d.mts +33 -0
  192. package/dist/drizzle/d1-identity.mjs +120 -0
  193. package/dist/drizzle/d1-identity.mjs.map +1 -0
  194. package/dist/drizzle/d1-oauth.d.mts +316 -0
  195. package/dist/drizzle/d1-oauth.mjs +79 -0
  196. package/dist/drizzle/d1-oauth.mjs.map +1 -0
  197. package/dist/drizzle/d1-passkey.d.mts +52 -0
  198. package/dist/drizzle/d1-passkey.mjs +97 -0
  199. package/dist/drizzle/d1-passkey.mjs.map +1 -0
  200. package/dist/drizzle/d1-password-prepared.d.mts +27 -0
  201. package/dist/drizzle/d1-password-prepared.mjs +464 -0
  202. package/dist/drizzle/d1-password-prepared.mjs.map +1 -0
  203. package/dist/drizzle/d1-passwords.d.mts +96 -0
  204. package/dist/drizzle/d1-passwords.mjs +1008 -0
  205. package/dist/drizzle/d1-passwords.mjs.map +1 -0
  206. package/dist/drizzle/d1-phone.d.mts +29 -0
  207. package/dist/drizzle/d1-phone.mjs +33 -0
  208. package/dist/drizzle/d1-phone.mjs.map +1 -0
  209. package/dist/drizzle/d1-planning.d.mts +12 -0
  210. package/dist/drizzle/d1-planning.mjs +43 -0
  211. package/dist/drizzle/d1-planning.mjs.map +1 -0
  212. package/dist/drizzle/d1-proofs.d.mts +88 -0
  213. package/dist/drizzle/d1-proofs.mjs +833 -0
  214. package/dist/drizzle/d1-proofs.mjs.map +1 -0
  215. package/dist/drizzle/d1-sessions.d.mts +77 -0
  216. package/dist/drizzle/d1-sessions.mjs +970 -0
  217. package/dist/drizzle/d1-sessions.mjs.map +1 -0
  218. package/dist/drizzle/d1-totp.d.mts +27 -0
  219. package/dist/drizzle/d1-totp.mjs +28 -0
  220. package/dist/drizzle/d1-totp.mjs.map +1 -0
  221. package/dist/drizzle/email-model.d.mts +352 -0
  222. package/dist/drizzle/email-model.mjs +21 -0
  223. package/dist/drizzle/email-model.mjs.map +1 -0
  224. package/dist/drizzle/email-registration.d.mts +33 -0
  225. package/dist/drizzle/email-registration.mjs +238 -0
  226. package/dist/drizzle/email-registration.mjs.map +1 -0
  227. package/dist/drizzle/email-sql.d.mts +18 -0
  228. package/dist/drizzle/email-sql.mjs +473 -0
  229. package/dist/drizzle/email-sql.mjs.map +1 -0
  230. package/dist/drizzle/email-target.d.mts +28 -0
  231. package/dist/drizzle/email-target.mjs +75 -0
  232. package/dist/drizzle/email-target.mjs.map +1 -0
  233. package/dist/drizzle/model.d.mts +259 -0
  234. package/dist/drizzle/model.mjs +81 -0
  235. package/dist/drizzle/model.mjs.map +1 -0
  236. package/dist/drizzle/mysql-emails.d.mts +82 -0
  237. package/dist/drizzle/mysql-emails.mjs +38 -0
  238. package/dist/drizzle/mysql-emails.mjs.map +1 -0
  239. package/dist/drizzle/mysql-identity.d.mts +24 -0
  240. package/dist/drizzle/mysql-identity.mjs +95 -0
  241. package/dist/drizzle/mysql-identity.mjs.map +1 -0
  242. package/dist/drizzle/mysql-password-prepared.d.mts +32 -0
  243. package/dist/drizzle/mysql-password-prepared.mjs +16 -0
  244. package/dist/drizzle/mysql-password-prepared.mjs.map +1 -0
  245. package/dist/drizzle/mysql-passwords.d.mts +102 -0
  246. package/dist/drizzle/mysql-passwords.mjs +38 -0
  247. package/dist/drizzle/mysql-passwords.mjs.map +1 -0
  248. package/dist/drizzle/mysql-proofs.d.mts +83 -0
  249. package/dist/drizzle/mysql-proofs.mjs +23 -0
  250. package/dist/drizzle/mysql-proofs.mjs.map +1 -0
  251. package/dist/drizzle/mysql-sessions.d.mts +250 -0
  252. package/dist/drizzle/mysql-sessions.mjs +53 -0
  253. package/dist/drizzle/mysql-sessions.mjs.map +1 -0
  254. package/dist/drizzle/mysql.d.mts +73 -0
  255. package/dist/drizzle/mysql.mjs +221 -0
  256. package/dist/drizzle/mysql.mjs.map +1 -0
  257. package/dist/drizzle/oauth-accounts.mjs +361 -0
  258. package/dist/drizzle/oauth-accounts.mjs.map +1 -0
  259. package/dist/drizzle/oauth-connected-access.mjs +210 -0
  260. package/dist/drizzle/oauth-connected-access.mjs.map +1 -0
  261. package/dist/drizzle/oauth-connected-collection.mjs +202 -0
  262. package/dist/drizzle/oauth-connected-collection.mjs.map +1 -0
  263. package/dist/drizzle/oauth-connected-custody.mjs +146 -0
  264. package/dist/drizzle/oauth-connected-custody.mjs.map +1 -0
  265. package/dist/drizzle/oauth-connected-drivers.mjs +78 -0
  266. package/dist/drizzle/oauth-connected-drivers.mjs.map +1 -0
  267. package/dist/drizzle/oauth-connected-flow.mjs +248 -0
  268. package/dist/drizzle/oauth-connected-flow.mjs.map +1 -0
  269. package/dist/drizzle/oauth-connected-input.mjs +105 -0
  270. package/dist/drizzle/oauth-connected-input.mjs.map +1 -0
  271. package/dist/drizzle/oauth-connected-maintenance.mjs +215 -0
  272. package/dist/drizzle/oauth-connected-maintenance.mjs.map +1 -0
  273. package/dist/drizzle/oauth-connected-management.mjs +228 -0
  274. package/dist/drizzle/oauth-connected-management.mjs.map +1 -0
  275. package/dist/drizzle/oauth-connected-model.d.mts +278 -0
  276. package/dist/drizzle/oauth-connected-model.mjs +22 -0
  277. package/dist/drizzle/oauth-connected-model.mjs.map +1 -0
  278. package/dist/drizzle/oauth-connected-reference.d.mts +17 -0
  279. package/dist/drizzle/oauth-connected-reference.mjs +53 -0
  280. package/dist/drizzle/oauth-connected-reference.mjs.map +1 -0
  281. package/dist/drizzle/oauth-connected-settlement.mjs +117 -0
  282. package/dist/drizzle/oauth-connected-settlement.mjs.map +1 -0
  283. package/dist/drizzle/oauth-connected-state.d.mts +16 -0
  284. package/dist/drizzle/oauth-connected-state.mjs +422 -0
  285. package/dist/drizzle/oauth-connected-state.mjs.map +1 -0
  286. package/dist/drizzle/oauth-connected-target.d.mts +114 -0
  287. package/dist/drizzle/oauth-connected-target.mjs +94 -0
  288. package/dist/drizzle/oauth-connected-target.mjs.map +1 -0
  289. package/dist/drizzle/oauth-drivers.mjs +53 -0
  290. package/dist/drizzle/oauth-drivers.mjs.map +1 -0
  291. package/dist/drizzle/oauth-flow.d.mts +7 -0
  292. package/dist/drizzle/oauth-flow.mjs +255 -0
  293. package/dist/drizzle/oauth-flow.mjs.map +1 -0
  294. package/dist/drizzle/oauth-input.mjs +130 -0
  295. package/dist/drizzle/oauth-input.mjs.map +1 -0
  296. package/dist/drizzle/oauth-model.d.mts +468 -0
  297. package/dist/drizzle/oauth-model.mjs +49 -0
  298. package/dist/drizzle/oauth-model.mjs.map +1 -0
  299. package/dist/drizzle/oauth-mysql.mjs +8 -0
  300. package/dist/drizzle/oauth-mysql.mjs.map +1 -0
  301. package/dist/drizzle/oauth-owner.d.mts +4 -0
  302. package/dist/drizzle/oauth-owner.mjs +10 -0
  303. package/dist/drizzle/oauth-owner.mjs.map +1 -0
  304. package/dist/drizzle/oauth-registration.d.mts +8 -0
  305. package/dist/drizzle/oauth-registration.mjs +375 -0
  306. package/dist/drizzle/oauth-registration.mjs.map +1 -0
  307. package/dist/drizzle/oauth-state.mjs +109 -0
  308. package/dist/drizzle/oauth-state.mjs.map +1 -0
  309. package/dist/drizzle/oauth-target.d.mts +125 -0
  310. package/dist/drizzle/oauth-target.mjs +252 -0
  311. package/dist/drizzle/oauth-target.mjs.map +1 -0
  312. package/dist/drizzle/passkey-admission.mjs +203 -0
  313. package/dist/drizzle/passkey-admission.mjs.map +1 -0
  314. package/dist/drizzle/passkey-credentials.mjs +239 -0
  315. package/dist/drizzle/passkey-credentials.mjs.map +1 -0
  316. package/dist/drizzle/passkey-drivers.mjs +34 -0
  317. package/dist/drizzle/passkey-drivers.mjs.map +1 -0
  318. package/dist/drizzle/passkey-enrollment.mjs +132 -0
  319. package/dist/drizzle/passkey-enrollment.mjs.map +1 -0
  320. package/dist/drizzle/passkey-flow.mjs +436 -0
  321. package/dist/drizzle/passkey-flow.mjs.map +1 -0
  322. package/dist/drizzle/passkey-management.mjs +225 -0
  323. package/dist/drizzle/passkey-management.mjs.map +1 -0
  324. package/dist/drizzle/passkey-model.d.mts +275 -0
  325. package/dist/drizzle/passkey-model.mjs +36 -0
  326. package/dist/drizzle/passkey-model.mjs.map +1 -0
  327. package/dist/drizzle/passkey-registration-ceremony-model.d.mts +50 -0
  328. package/dist/drizzle/passkey-registration-ceremony-model.mjs +18 -0
  329. package/dist/drizzle/passkey-registration-ceremony-model.mjs.map +1 -0
  330. package/dist/drizzle/passkey-registration-ceremony.mjs +124 -0
  331. package/dist/drizzle/passkey-registration-ceremony.mjs.map +1 -0
  332. package/dist/drizzle/passkey-registration-custody.mjs +51 -0
  333. package/dist/drizzle/passkey-registration-custody.mjs.map +1 -0
  334. package/dist/drizzle/passkey-registration-write.mjs +205 -0
  335. package/dist/drizzle/passkey-registration-write.mjs.map +1 -0
  336. package/dist/drizzle/passkey-state.d.mts +5 -0
  337. package/dist/drizzle/passkey-state.mjs +207 -0
  338. package/dist/drizzle/passkey-state.mjs.map +1 -0
  339. package/dist/drizzle/passkey-target.d.mts +16 -0
  340. package/dist/drizzle/passkey-target.mjs +174 -0
  341. package/dist/drizzle/passkey-target.mjs.map +1 -0
  342. package/dist/drizzle/passkey-write-drivers.mjs +33 -0
  343. package/dist/drizzle/passkey-write-drivers.mjs.map +1 -0
  344. package/dist/drizzle/passkey-write-model.d.mts +192 -0
  345. package/dist/drizzle/passkey-write-model.mjs +13 -0
  346. package/dist/drizzle/passkey-write-model.mjs.map +1 -0
  347. package/dist/drizzle/passkey-write-state.mjs +326 -0
  348. package/dist/drizzle/passkey-write-state.mjs.map +1 -0
  349. package/dist/drizzle/passkey-write-target.d.mts +14 -0
  350. package/dist/drizzle/passkey-write-target.mjs +185 -0
  351. package/dist/drizzle/passkey-write-target.mjs.map +1 -0
  352. package/dist/drizzle/password-model.d.mts +330 -0
  353. package/dist/drizzle/password-model.mjs +22 -0
  354. package/dist/drizzle/password-model.mjs.map +1 -0
  355. package/dist/drizzle/password-prepared-model.d.mts +93 -0
  356. package/dist/drizzle/password-prepared-model.mjs +11 -0
  357. package/dist/drizzle/password-prepared-model.mjs.map +1 -0
  358. package/dist/drizzle/password-prepared-sql.mjs +394 -0
  359. package/dist/drizzle/password-prepared-sql.mjs.map +1 -0
  360. package/dist/drizzle/password-prepared-state.mjs +107 -0
  361. package/dist/drizzle/password-prepared-state.mjs.map +1 -0
  362. package/dist/drizzle/password-prepared-target.d.mts +12 -0
  363. package/dist/drizzle/password-prepared-target.mjs +57 -0
  364. package/dist/drizzle/password-prepared-target.mjs.map +1 -0
  365. package/dist/drizzle/password-registration.d.mts +23 -0
  366. package/dist/drizzle/password-registration.mjs +136 -0
  367. package/dist/drizzle/password-registration.mjs.map +1 -0
  368. package/dist/drizzle/password-sql.d.mts +20 -0
  369. package/dist/drizzle/password-sql.mjs +702 -0
  370. package/dist/drizzle/password-sql.mjs.map +1 -0
  371. package/dist/drizzle/password-target.d.mts +25 -0
  372. package/dist/drizzle/password-target.mjs +63 -0
  373. package/dist/drizzle/password-target.mjs.map +1 -0
  374. package/dist/drizzle/pg-emails.d.mts +83 -0
  375. package/dist/drizzle/pg-emails.mjs +38 -0
  376. package/dist/drizzle/pg-emails.mjs.map +1 -0
  377. package/dist/drizzle/pg-password-prepared.d.mts +33 -0
  378. package/dist/drizzle/pg-password-prepared.mjs +16 -0
  379. package/dist/drizzle/pg-password-prepared.mjs.map +1 -0
  380. package/dist/drizzle/pg-passwords.d.mts +103 -0
  381. package/dist/drizzle/pg-passwords.mjs +38 -0
  382. package/dist/drizzle/pg-passwords.mjs.map +1 -0
  383. package/dist/drizzle/pg-proofs.d.mts +84 -0
  384. package/dist/drizzle/pg-proofs.mjs +22 -0
  385. package/dist/drizzle/pg-proofs.mjs.map +1 -0
  386. package/dist/drizzle/pg-sessions.d.mts +251 -0
  387. package/dist/drizzle/pg-sessions.mjs +53 -0
  388. package/dist/drizzle/pg-sessions.mjs.map +1 -0
  389. package/dist/drizzle/pg.d.mts +88 -0
  390. package/dist/drizzle/pg.mjs +294 -0
  391. package/dist/drizzle/pg.mjs.map +1 -0
  392. package/dist/drizzle/phone-model.d.mts +117 -0
  393. package/dist/drizzle/phone-model.mjs +39 -0
  394. package/dist/drizzle/phone-model.mjs.map +1 -0
  395. package/dist/drizzle/phone-state.mjs +426 -0
  396. package/dist/drizzle/phone-state.mjs.map +1 -0
  397. package/dist/drizzle/phone-target.d.mts +19 -0
  398. package/dist/drizzle/phone-target.mjs +171 -0
  399. package/dist/drizzle/phone-target.mjs.map +1 -0
  400. package/dist/drizzle/proof-model.d.mts +287 -0
  401. package/dist/drizzle/proof-model.mjs +17 -0
  402. package/dist/drizzle/proof-model.mjs.map +1 -0
  403. package/dist/drizzle/proof-sql.d.mts +16 -0
  404. package/dist/drizzle/proof-sql.mjs +618 -0
  405. package/dist/drizzle/proof-sql.mjs.map +1 -0
  406. package/dist/drizzle/proof-target.d.mts +17 -0
  407. package/dist/drizzle/proof-target.mjs +38 -0
  408. package/dist/drizzle/proof-target.mjs.map +1 -0
  409. package/dist/drizzle/session-model.d.mts +201 -0
  410. package/dist/drizzle/session-model.mjs +19 -0
  411. package/dist/drizzle/session-model.mjs.map +1 -0
  412. package/dist/drizzle/session-sql.mjs +732 -0
  413. package/dist/drizzle/session-sql.mjs.map +1 -0
  414. package/dist/drizzle/session-target.d.mts +37 -0
  415. package/dist/drizzle/session-target.mjs +47 -0
  416. package/dist/drizzle/session-target.mjs.map +1 -0
  417. package/dist/drizzle/sqlite-emails.mjs +45 -0
  418. package/dist/drizzle/sqlite-emails.mjs.map +1 -0
  419. package/dist/drizzle/sqlite-identity.mjs +92 -0
  420. package/dist/drizzle/sqlite-identity.mjs.map +1 -0
  421. package/dist/drizzle/sqlite-password-prepared.mjs +21 -0
  422. package/dist/drizzle/sqlite-password-prepared.mjs.map +1 -0
  423. package/dist/drizzle/sqlite-passwords.mjs +49 -0
  424. package/dist/drizzle/sqlite-passwords.mjs.map +1 -0
  425. package/dist/drizzle/sqlite-proofs.mjs +29 -0
  426. package/dist/drizzle/sqlite-proofs.mjs.map +1 -0
  427. package/dist/drizzle/sqlite-sessions.mjs +74 -0
  428. package/dist/drizzle/sqlite-sessions.mjs.map +1 -0
  429. package/dist/drizzle/sqlite.d.mts +81 -0
  430. package/dist/drizzle/sqlite.mjs +220 -0
  431. package/dist/drizzle/sqlite.mjs.map +1 -0
  432. package/dist/drizzle/standalone-guard.mjs +19 -0
  433. package/dist/drizzle/standalone-guard.mjs.map +1 -0
  434. package/dist/drizzle/step-up-model.d.mts +65 -0
  435. package/dist/drizzle/step-up-model.mjs +9 -0
  436. package/dist/drizzle/step-up-model.mjs.map +1 -0
  437. package/dist/drizzle/step-up-state.mjs +34 -0
  438. package/dist/drizzle/step-up-state.mjs.map +1 -0
  439. package/dist/drizzle/totp-model.d.mts +85 -0
  440. package/dist/drizzle/totp-model.mjs +13 -0
  441. package/dist/drizzle/totp-model.mjs.map +1 -0
  442. package/dist/drizzle/totp-state.d.mts +39 -0
  443. package/dist/drizzle/totp-state.mjs +288 -0
  444. package/dist/drizzle/totp-state.mjs.map +1 -0
  445. package/dist/drizzle/totp-target.d.mts +16 -0
  446. package/dist/drizzle/totp-target.mjs +83 -0
  447. package/dist/drizzle/totp-target.mjs.map +1 -0
  448. package/dist/drizzle/transaction-execution.d.mts +20 -0
  449. package/dist/drizzle/transaction-execution.mjs +111 -0
  450. package/dist/drizzle/transaction-execution.mjs.map +1 -0
  451. package/dist/drizzle/transaction-mysql.mjs +46 -0
  452. package/dist/drizzle/transaction-mysql.mjs.map +1 -0
  453. package/dist/drizzle/transaction-owner.d.mts +6 -0
  454. package/dist/drizzle/transaction-owner.mjs +252 -0
  455. package/dist/drizzle/transaction-owner.mjs.map +1 -0
  456. package/dist/email/EmailActionEvidence.d.mts +33 -0
  457. package/dist/email/EmailActionEvidence.mjs +15 -0
  458. package/dist/email/EmailActionEvidence.mjs.map +1 -0
  459. package/dist/email/EmailAddressPersistence.d.mts +63 -0
  460. package/dist/email/EmailAddressPersistence.mjs +19 -0
  461. package/dist/email/EmailAddressPersistence.mjs.map +1 -0
  462. package/dist/email/EmailIdentifierNotifier.d.mts +30 -0
  463. package/dist/email/EmailIdentifierNotifier.mjs +31 -0
  464. package/dist/email/EmailIdentifierNotifier.mjs.map +1 -0
  465. package/dist/email/EmailReturnTargets.d.mts +19 -0
  466. package/dist/email/EmailReturnTargets.mjs +29 -0
  467. package/dist/email/EmailReturnTargets.mjs.map +1 -0
  468. package/dist/email/EmailSignInTargets.d.mts +20 -0
  469. package/dist/email/EmailSignInTargets.mjs +12 -0
  470. package/dist/email/EmailSignInTargets.mjs.map +1 -0
  471. package/dist/email/addresses.d.mts +33 -0
  472. package/dist/email/addresses.mjs +404 -0
  473. package/dist/email/addresses.mjs.map +1 -0
  474. package/dist/email/definition.d.mts +10153 -0
  475. package/dist/email/definition.mjs +111 -0
  476. package/dist/email/definition.mjs.map +1 -0
  477. package/dist/email/errors.d.mts +15 -0
  478. package/dist/email/errors.mjs +11 -0
  479. package/dist/email/errors.mjs.map +1 -0
  480. package/dist/email/magicLink.d.mts +33 -0
  481. package/dist/email/magicLink.mjs +58 -0
  482. package/dist/email/magicLink.mjs.map +1 -0
  483. package/dist/email/models.d.mts +56 -0
  484. package/dist/email/models.mjs +31 -0
  485. package/dist/email/models.mjs.map +1 -0
  486. package/dist/email/module.d.mts +22296 -0
  487. package/dist/email/module.mjs +415 -0
  488. package/dist/email/module.mjs.map +1 -0
  489. package/dist/email/registration.d.mts +28 -0
  490. package/dist/email/registration.mjs +243 -0
  491. package/dist/email/registration.mjs.map +1 -0
  492. package/dist/email/snapshot.mjs +37 -0
  493. package/dist/email/snapshot.mjs.map +1 -0
  494. package/dist/hooks/LifecycleHooks.d.mts +34 -0
  495. package/dist/hooks/LifecycleHooks.mjs +74 -0
  496. package/dist/hooks/LifecycleHooks.mjs.map +1 -0
  497. package/dist/hooks/commit.d.mts +66 -0
  498. package/dist/hooks/commit.mjs +136 -0
  499. package/dist/hooks/commit.mjs.map +1 -0
  500. package/dist/hooks/models.d.mts +51 -0
  501. package/dist/hooks/models.mjs +87 -0
  502. package/dist/hooks/models.mjs.map +1 -0
  503. package/dist/hooks/plugins.d.mts +36 -0
  504. package/dist/hooks/plugins.mjs +60 -0
  505. package/dist/hooks/plugins.mjs.map +1 -0
  506. package/dist/hooks/transactions.d.mts +31 -0
  507. package/dist/hooks/transactions.mjs +38 -0
  508. package/dist/hooks/transactions.mjs.map +1 -0
  509. package/dist/http/auth-api.d.mts +9 -0
  510. package/dist/http/auth-api.mjs +13 -0
  511. package/dist/http/auth-api.mjs.map +1 -0
  512. package/dist/http/auth-contract.d.mts +84 -0
  513. package/dist/http/auth-contract.mjs +75 -0
  514. package/dist/http/auth-contract.mjs.map +1 -0
  515. package/dist/http/auth-http.d.mts +216 -0
  516. package/dist/http/auth-http.mjs +184 -0
  517. package/dist/http/auth-http.mjs.map +1 -0
  518. package/dist/http/endpoints/get-session.d.mts +8 -0
  519. package/dist/http/endpoints/get-session.mjs +12 -0
  520. package/dist/http/endpoints/get-session.mjs.map +1 -0
  521. package/dist/http/endpoints/password-sign-in.d.mts +8 -0
  522. package/dist/http/endpoints/password-sign-in.mjs +18 -0
  523. package/dist/http/endpoints/password-sign-in.mjs.map +1 -0
  524. package/dist/http/endpoints/request-email-otp.d.mts +8 -0
  525. package/dist/http/endpoints/request-email-otp.mjs +17 -0
  526. package/dist/http/endpoints/request-email-otp.mjs.map +1 -0
  527. package/dist/http/endpoints/set-password.d.mts +9 -0
  528. package/dist/http/endpoints/set-password.mjs +19 -0
  529. package/dist/http/endpoints/set-password.mjs.map +1 -0
  530. package/dist/http/endpoints/sign-out.d.mts +6 -0
  531. package/dist/http/endpoints/sign-out.mjs +7 -0
  532. package/dist/http/endpoints/sign-out.mjs.map +1 -0
  533. package/dist/http/endpoints/verify-email-otp.d.mts +9 -0
  534. package/dist/http/endpoints/verify-email-otp.mjs +18 -0
  535. package/dist/http/endpoints/verify-email-otp.mjs.map +1 -0
  536. package/dist/http/models.d.mts +49 -0
  537. package/dist/http/models.mjs +35 -0
  538. package/dist/http/models.mjs.map +1 -0
  539. package/dist/http/security.d.mts +91 -0
  540. package/dist/http/security.mjs +77 -0
  541. package/dist/http/security.mjs.map +1 -0
  542. package/dist/http/session-contract.d.mts +303 -0
  543. package/dist/http/session-contract.mjs +38 -0
  544. package/dist/http/session-contract.mjs.map +1 -0
  545. package/dist/http-operation/OperationHttpInvocation.d.mts +16 -0
  546. package/dist/http-operation/OperationHttpInvocation.mjs +11 -0
  547. package/dist/http-operation/OperationHttpInvocation.mjs.map +1 -0
  548. package/dist/http-operation/OperationHttpServerConfig.d.mts +18 -0
  549. package/dist/http-operation/OperationHttpServerConfig.mjs +72 -0
  550. package/dist/http-operation/OperationHttpServerConfig.mjs.map +1 -0
  551. package/dist/http-operation/auth-client.d.mts +75 -0
  552. package/dist/http-operation/auth-client.mjs +116 -0
  553. package/dist/http-operation/auth-client.mjs.map +1 -0
  554. package/dist/http-operation/client.d.mts +50 -0
  555. package/dist/http-operation/client.mjs +188 -0
  556. package/dist/http-operation/client.mjs.map +1 -0
  557. package/dist/http-operation/configuration-schema.mjs +19 -0
  558. package/dist/http-operation/configuration-schema.mjs.map +1 -0
  559. package/dist/http-operation/contract.d.mts +40 -0
  560. package/dist/http-operation/contract.mjs +37 -0
  561. package/dist/http-operation/contract.mjs.map +1 -0
  562. package/dist/http-operation/errors.d.mts +13 -0
  563. package/dist/http-operation/errors.mjs +31 -0
  564. package/dist/http-operation/errors.mjs.map +1 -0
  565. package/dist/http-operation/models.d.mts +32 -0
  566. package/dist/http-operation/models.mjs +14 -0
  567. package/dist/http-operation/models.mjs.map +1 -0
  568. package/dist/http-operation/private.mjs +35 -0
  569. package/dist/http-operation/private.mjs.map +1 -0
  570. package/dist/http-operation/security.mjs +58 -0
  571. package/dist/http-operation/security.mjs.map +1 -0
  572. package/dist/http-operation/server.d.mts +33 -0
  573. package/dist/http-operation/server.mjs +268 -0
  574. package/dist/http-operation/server.mjs.map +1 -0
  575. package/dist/identity/ExternalIdentityMutation.d.mts +15 -0
  576. package/dist/identity/ExternalIdentityMutation.mjs +11 -0
  577. package/dist/identity/ExternalIdentityMutation.mjs.map +1 -0
  578. package/dist/identity/IdentityMutation.d.mts +22 -0
  579. package/dist/identity/IdentityMutation.mjs +17 -0
  580. package/dist/identity/IdentityMutation.mjs.map +1 -0
  581. package/dist/identity/IdentityRepository.d.mts +20 -0
  582. package/dist/identity/IdentityRepository.mjs +11 -0
  583. package/dist/identity/IdentityRepository.mjs.map +1 -0
  584. package/dist/identity/SubjectLifecycle.d.mts +58 -0
  585. package/dist/identity/SubjectLifecycle.mjs +43 -0
  586. package/dist/identity/SubjectLifecycle.mjs.map +1 -0
  587. package/dist/identity/SubjectProvisioner.d.mts +37 -0
  588. package/dist/identity/SubjectProvisioner.mjs +20 -0
  589. package/dist/identity/SubjectProvisioner.mjs.map +1 -0
  590. package/dist/identity/codecs.d.mts +34 -0
  591. package/dist/identity/codecs.mjs +40 -0
  592. package/dist/identity/codecs.mjs.map +1 -0
  593. package/dist/identity/models.d.mts +62 -0
  594. package/dist/identity/models.mjs +51 -0
  595. package/dist/identity/models.mjs.map +1 -0
  596. package/dist/identity/operations.d.mts +118 -0
  597. package/dist/identity/operations.mjs +124 -0
  598. package/dist/identity/operations.mjs.map +1 -0
  599. package/dist/index.d.mts +23 -0
  600. package/dist/index.mjs +23 -0
  601. package/dist/internal/AuthStoreDecisions.d.mts +22 -0
  602. package/dist/internal/AuthStoreDecisions.mjs +8 -0
  603. package/dist/internal/AuthStoreDecisions.mjs.map +1 -0
  604. package/dist/internal/CurrentSession.d.mts +9 -0
  605. package/dist/internal/CurrentSession.mjs +8 -0
  606. package/dist/internal/CurrentSession.mjs.map +1 -0
  607. package/dist/internal/diagnostics.mjs +23 -0
  608. package/dist/internal/diagnostics.mjs.map +1 -0
  609. package/dist/oauth/GithubOAuthProvider.d.mts +43 -0
  610. package/dist/oauth/GithubOAuthProvider.mjs +66 -0
  611. package/dist/oauth/GithubOAuthProvider.mjs.map +1 -0
  612. package/dist/oauth/OAuth.d.mts +73 -0
  613. package/dist/oauth/OAuth.mjs +180 -0
  614. package/dist/oauth/OAuth.mjs.map +1 -0
  615. package/dist/oauth/OAuthAccountsPersistence.d.mts +109 -0
  616. package/dist/oauth/OAuthAccountsPersistence.mjs +12 -0
  617. package/dist/oauth/OAuthAccountsPersistence.mjs.map +1 -0
  618. package/dist/oauth/OAuthActionEvidence.d.mts +28 -0
  619. package/dist/oauth/OAuthActionEvidence.mjs +15 -0
  620. package/dist/oauth/OAuthActionEvidence.mjs.map +1 -0
  621. package/dist/oauth/OAuthConnectedActionEvidence.d.mts +22 -0
  622. package/dist/oauth/OAuthConnectedActionEvidence.mjs +9 -0
  623. package/dist/oauth/OAuthConnectedActionEvidence.mjs.map +1 -0
  624. package/dist/oauth/OAuthConnectedPersistence.d.mts +129 -0
  625. package/dist/oauth/OAuthConnectedPersistence.mjs +12 -0
  626. package/dist/oauth/OAuthConnectedPersistence.mjs.map +1 -0
  627. package/dist/oauth/OAuthConnectedProtocol.d.mts +41 -0
  628. package/dist/oauth/OAuthConnectedProtocol.mjs +13 -0
  629. package/dist/oauth/OAuthConnectedProtocol.mjs.map +1 -0
  630. package/dist/oauth/OAuthConnectedRevocations.d.mts +167 -0
  631. package/dist/oauth/OAuthConnectedRevocations.mjs +21 -0
  632. package/dist/oauth/OAuthConnectedRevocations.mjs.map +1 -0
  633. package/dist/oauth/OAuthConnectedTokenProtector.d.mts +24 -0
  634. package/dist/oauth/OAuthConnectedTokenProtector.mjs +153 -0
  635. package/dist/oauth/OAuthConnectedTokenProtector.mjs.map +1 -0
  636. package/dist/oauth/OAuthConnectedTransactionProtector.d.mts +23 -0
  637. package/dist/oauth/OAuthConnectedTransactionProtector.mjs +37 -0
  638. package/dist/oauth/OAuthConnectedTransactionProtector.mjs.map +1 -0
  639. package/dist/oauth/OAuthConnectedUseAuthority.d.mts +22 -0
  640. package/dist/oauth/OAuthConnectedUseAuthority.mjs +10 -0
  641. package/dist/oauth/OAuthConnectedUseAuthority.mjs.map +1 -0
  642. package/dist/oauth/OAuthConnectionStore.d.mts +33 -0
  643. package/dist/oauth/OAuthConnectionStore.mjs +38 -0
  644. package/dist/oauth/OAuthConnectionStore.mjs.map +1 -0
  645. package/dist/oauth/OAuthLinkTransactionProtector.d.mts +25 -0
  646. package/dist/oauth/OAuthLinkTransactionProtector.mjs +39 -0
  647. package/dist/oauth/OAuthLinkTransactionProtector.mjs.map +1 -0
  648. package/dist/oauth/OAuthProtocol.d.mts +33 -0
  649. package/dist/oauth/OAuthProtocol.mjs +16 -0
  650. package/dist/oauth/OAuthProtocol.mjs.map +1 -0
  651. package/dist/oauth/OAuthProvider.d.mts +70 -0
  652. package/dist/oauth/OAuthProvider.mjs +39 -0
  653. package/dist/oauth/OAuthProvider.mjs.map +1 -0
  654. package/dist/oauth/OAuthProviders.d.mts +27 -0
  655. package/dist/oauth/OAuthProviders.mjs +33 -0
  656. package/dist/oauth/OAuthProviders.mjs.map +1 -0
  657. package/dist/oauth/OAuthRegistrationIntents.d.mts +87 -0
  658. package/dist/oauth/OAuthRegistrationIntents.mjs +19 -0
  659. package/dist/oauth/OAuthRegistrationIntents.mjs.map +1 -0
  660. package/dist/oauth/OAuthReturnTargets.d.mts +15 -0
  661. package/dist/oauth/OAuthReturnTargets.mjs +24 -0
  662. package/dist/oauth/OAuthReturnTargets.mjs.map +1 -0
  663. package/dist/oauth/OAuthSignInPersistence.d.mts +68 -0
  664. package/dist/oauth/OAuthSignInPersistence.mjs +12 -0
  665. package/dist/oauth/OAuthSignInPersistence.mjs.map +1 -0
  666. package/dist/oauth/OAuthStateDecisions.d.mts +14 -0
  667. package/dist/oauth/OAuthStateDecisions.mjs +8 -0
  668. package/dist/oauth/OAuthStateDecisions.mjs.map +1 -0
  669. package/dist/oauth/OAuthStateStore.d.mts +35 -0
  670. package/dist/oauth/OAuthStateStore.mjs +64 -0
  671. package/dist/oauth/OAuthStateStore.mjs.map +1 -0
  672. package/dist/oauth/OAuthTransactionProtector.d.mts +26 -0
  673. package/dist/oauth/OAuthTransactionProtector.mjs +78 -0
  674. package/dist/oauth/OAuthTransactionProtector.mjs.map +1 -0
  675. package/dist/oauth/accounts.d.mts +29 -0
  676. package/dist/oauth/accounts.mjs +515 -0
  677. package/dist/oauth/accounts.mjs.map +1 -0
  678. package/dist/oauth/accountsModels.d.mts +463 -0
  679. package/dist/oauth/accountsModels.mjs +155 -0
  680. package/dist/oauth/accountsModels.mjs.map +1 -0
  681. package/dist/oauth/connected.d.mts +442 -0
  682. package/dist/oauth/connected.mjs +526 -0
  683. package/dist/oauth/connected.mjs.map +1 -0
  684. package/dist/oauth/connectedAccess.d.mts +20 -0
  685. package/dist/oauth/connectedAccess.mjs +279 -0
  686. package/dist/oauth/connectedAccess.mjs.map +1 -0
  687. package/dist/oauth/connectedMaintenance.d.mts +19 -0
  688. package/dist/oauth/connectedMaintenance.mjs +133 -0
  689. package/dist/oauth/connectedMaintenance.mjs.map +1 -0
  690. package/dist/oauth/connectedModels.d.mts +2023 -0
  691. package/dist/oauth/connectedModels.mjs +375 -0
  692. package/dist/oauth/connectedModels.mjs.map +1 -0
  693. package/dist/oauth/definition.d.mts +4396 -0
  694. package/dist/oauth/definition.mjs +120 -0
  695. package/dist/oauth/definition.mjs.map +1 -0
  696. package/dist/oauth/errors.d.mts +49 -0
  697. package/dist/oauth/errors.mjs +42 -0
  698. package/dist/oauth/errors.mjs.map +1 -0
  699. package/dist/oauth/github/identity.d.mts +8 -0
  700. package/dist/oauth/github/identity.mjs +24 -0
  701. package/dist/oauth/github/identity.mjs.map +1 -0
  702. package/dist/oauth/github/models.d.mts +34 -0
  703. package/dist/oauth/github/protocol.d.mts +54 -0
  704. package/dist/oauth/github/protocol.mjs +204 -0
  705. package/dist/oauth/github/protocol.mjs.map +1 -0
  706. package/dist/oauth/openid-client/ProviderRevocation.d.mts +4 -0
  707. package/dist/oauth/openid-client/ProviderRevocation.mjs +11 -0
  708. package/dist/oauth/openid-client/ProviderRevocation.mjs.map +1 -0
  709. package/dist/oauth/openid-client/compatibility.d.mts +1 -0
  710. package/dist/oauth/openid-client/compatibility.mjs +6 -0
  711. package/dist/oauth/openid-client/compatibility.mjs.map +1 -0
  712. package/dist/oauth/openid-client/configuration.mjs +305 -0
  713. package/dist/oauth/openid-client/configuration.mjs.map +1 -0
  714. package/dist/oauth/openid-client/connected/configuration.mjs +338 -0
  715. package/dist/oauth/openid-client/connected/configuration.mjs.map +1 -0
  716. package/dist/oauth/openid-client/connected/models.d.mts +42 -0
  717. package/dist/oauth/openid-client/connected/protocol.d.mts +16 -0
  718. package/dist/oauth/openid-client/connected/protocol.mjs +402 -0
  719. package/dist/oauth/openid-client/connected/protocol.mjs.map +1 -0
  720. package/dist/oauth/openid-client/models.d.mts +67 -0
  721. package/dist/oauth/openid-client/models.mjs +16 -0
  722. package/dist/oauth/openid-client/models.mjs.map +1 -0
  723. package/dist/oauth/openid-client/protocol.d.mts +27 -0
  724. package/dist/oauth/openid-client/protocol.mjs +218 -0
  725. package/dist/oauth/openid-client/protocol.mjs.map +1 -0
  726. package/dist/oauth/openid-client/transport.mjs +59 -0
  727. package/dist/oauth/openid-client/transport.mjs.map +1 -0
  728. package/dist/oauth/policy.d.mts +18 -0
  729. package/dist/oauth/policy.mjs +16 -0
  730. package/dist/oauth/policy.mjs.map +1 -0
  731. package/dist/oauth/registration.d.mts +24 -0
  732. package/dist/oauth/registration.mjs +177 -0
  733. package/dist/oauth/registration.mjs.map +1 -0
  734. package/dist/oauth/registrationModels.d.mts +152 -0
  735. package/dist/oauth/registrationModels.mjs +93 -0
  736. package/dist/oauth/registrationModels.mjs.map +1 -0
  737. package/dist/oauth/registrationSecrets.mjs +70 -0
  738. package/dist/oauth/registrationSecrets.mjs.map +1 -0
  739. package/dist/oauth/schema.d.mts +86 -0
  740. package/dist/oauth/schema.mjs +81 -0
  741. package/dist/oauth/schema.mjs.map +1 -0
  742. package/dist/oauth/signInErrors.d.mts +17 -0
  743. package/dist/oauth/signInErrors.mjs +16 -0
  744. package/dist/oauth/signInErrors.mjs.map +1 -0
  745. package/dist/oauth/signInModels.d.mts +343 -0
  746. package/dist/oauth/signInModels.mjs +181 -0
  747. package/dist/oauth/signInModels.mjs.map +1 -0
  748. package/dist/oauth/signInModule.d.mts +1546 -0
  749. package/dist/oauth/signInModule.mjs +430 -0
  750. package/dist/oauth/signInModule.mjs.map +1 -0
  751. package/dist/oauth/signInSnapshot.mjs +29 -0
  752. package/dist/oauth/signInSnapshot.mjs.map +1 -0
  753. package/dist/oauth/transactionEncryption.d.mts +14 -0
  754. package/dist/oauth/transactionEncryption.mjs +129 -0
  755. package/dist/oauth/transactionEncryption.mjs.map +1 -0
  756. package/dist/operations/RequestBindingConfig.d.mts +11 -0
  757. package/dist/operations/RequestBindingConfig.mjs +10 -0
  758. package/dist/operations/RequestBindingConfig.mjs.map +1 -0
  759. package/dist/operations/actions.d.mts +947 -0
  760. package/dist/operations/actions.mjs +148 -0
  761. package/dist/operations/actions.mjs.map +1 -0
  762. package/dist/operations/context.d.mts +63 -0
  763. package/dist/operations/context.mjs +55 -0
  764. package/dist/operations/context.mjs.map +1 -0
  765. package/dist/operations/credentials.d.mts +39 -0
  766. package/dist/operations/credentials.mjs +60 -0
  767. package/dist/operations/credentials.mjs.map +1 -0
  768. package/dist/operations/errors.d.mts +24 -0
  769. package/dist/operations/errors.mjs +31 -0
  770. package/dist/operations/errors.mjs.map +1 -0
  771. package/dist/operations/operation.d.mts +124 -0
  772. package/dist/operations/operation.mjs +220 -0
  773. package/dist/operations/operation.mjs.map +1 -0
  774. package/dist/operations/requestBinding.d.mts +46 -0
  775. package/dist/operations/requestBinding.mjs +130 -0
  776. package/dist/operations/requestBinding.mjs.map +1 -0
  777. package/dist/operations/requestBindingModels.d.mts +13 -0
  778. package/dist/operations/requestBindingModels.mjs +12 -0
  779. package/dist/operations/requestBindingModels.mjs.map +1 -0
  780. package/dist/operations/reveals.d.mts +28 -0
  781. package/dist/operations/reveals.mjs +88 -0
  782. package/dist/operations/reveals.mjs.map +1 -0
  783. package/dist/passkey/PasskeyActionEvidence.d.mts +22 -0
  784. package/dist/passkey/PasskeyActionEvidence.mjs +9 -0
  785. package/dist/passkey/PasskeyActionEvidence.mjs.map +1 -0
  786. package/dist/passkey/PasskeyCredentials.d.mts +16 -0
  787. package/dist/passkey/PasskeyCredentials.mjs +9 -0
  788. package/dist/passkey/PasskeyCredentials.mjs.map +1 -0
  789. package/dist/passkey/PasskeyEnrollmentContext.d.mts +22 -0
  790. package/dist/passkey/PasskeyEnrollmentContext.mjs +9 -0
  791. package/dist/passkey/PasskeyEnrollmentContext.mjs.map +1 -0
  792. package/dist/passkey/PasskeyManagementPersistence.d.mts +106 -0
  793. package/dist/passkey/PasskeyManagementPersistence.mjs +9 -0
  794. package/dist/passkey/PasskeyManagementPersistence.mjs.map +1 -0
  795. package/dist/passkey/PasskeyPersistence.d.mts +63 -0
  796. package/dist/passkey/PasskeyPersistence.mjs +10 -0
  797. package/dist/passkey/PasskeyPersistence.mjs.map +1 -0
  798. package/dist/passkey/PasskeyProtocol.d.mts +38 -0
  799. package/dist/passkey/PasskeyProtocol.mjs +11 -0
  800. package/dist/passkey/PasskeyProtocol.mjs.map +1 -0
  801. package/dist/passkey/actions.d.mts +50 -0
  802. package/dist/passkey/actions.mjs +376 -0
  803. package/dist/passkey/actions.mjs.map +1 -0
  804. package/dist/passkey/browser/PasskeyBrowser.d.mts +18 -0
  805. package/dist/passkey/browser/PasskeyBrowser.mjs +9 -0
  806. package/dist/passkey/browser/PasskeyBrowser.mjs.map +1 -0
  807. package/dist/passkey/browser/models.d.mts +38 -0
  808. package/dist/passkey/browser/models.mjs +41 -0
  809. package/dist/passkey/browser/models.mjs.map +1 -0
  810. package/dist/passkey/browser/simplewebauthn.d.mts +17 -0
  811. package/dist/passkey/browser/simplewebauthn.mjs +411 -0
  812. package/dist/passkey/browser/simplewebauthn.mjs.map +1 -0
  813. package/dist/passkey/definition.d.mts +5626 -0
  814. package/dist/passkey/definition.mjs +114 -0
  815. package/dist/passkey/definition.mjs.map +1 -0
  816. package/dist/passkey/errors.d.mts +20 -0
  817. package/dist/passkey/errors.mjs +20 -0
  818. package/dist/passkey/errors.mjs.map +1 -0
  819. package/dist/passkey/management.mjs +276 -0
  820. package/dist/passkey/management.mjs.map +1 -0
  821. package/dist/passkey/models.d.mts +1245 -0
  822. package/dist/passkey/models.mjs +301 -0
  823. package/dist/passkey/models.mjs.map +1 -0
  824. package/dist/passkey/module.d.mts +2132 -0
  825. package/dist/passkey/module.mjs +174 -0
  826. package/dist/passkey/module.mjs.map +1 -0
  827. package/dist/passkey/pending.mjs +99 -0
  828. package/dist/passkey/pending.mjs.map +1 -0
  829. package/dist/passkey/policy.d.mts +48 -0
  830. package/dist/passkey/policy.mjs +77 -0
  831. package/dist/passkey/policy.mjs.map +1 -0
  832. package/dist/passkey/registration.mjs +107 -0
  833. package/dist/passkey/registration.mjs.map +1 -0
  834. package/dist/passkey/simplewebauthn/configuration.mjs +45 -0
  835. package/dist/passkey/simplewebauthn/configuration.mjs.map +1 -0
  836. package/dist/passkey/simplewebauthn/models.d.mts +21 -0
  837. package/dist/passkey/simplewebauthn/models.mjs +8 -0
  838. package/dist/passkey/simplewebauthn/models.mjs.map +1 -0
  839. package/dist/passkey/simplewebauthn/protocol.d.mts +62 -0
  840. package/dist/passkey/simplewebauthn/protocol.mjs +402 -0
  841. package/dist/passkey/simplewebauthn/protocol.mjs.map +1 -0
  842. package/dist/passkey/snapshot.mjs +31 -0
  843. package/dist/passkey/snapshot.mjs.map +1 -0
  844. package/dist/passkey/stepUp.mjs +101 -0
  845. package/dist/passkey/stepUp.mjs.map +1 -0
  846. package/dist/password/CompromisedPasswords.d.mts +26 -0
  847. package/dist/password/CompromisedPasswords.mjs +23 -0
  848. package/dist/password/CompromisedPasswords.mjs.map +1 -0
  849. package/dist/password/NewPasswordCheck.d.mts +21 -0
  850. package/dist/password/NewPasswordCheck.mjs +39 -0
  851. package/dist/password/NewPasswordCheck.mjs.map +1 -0
  852. package/dist/password/PasswordHashing.d.mts +24 -0
  853. package/dist/password/PasswordHashing.mjs +96 -0
  854. package/dist/password/PasswordHashing.mjs.map +1 -0
  855. package/dist/password/PasswordKdfAdmission.d.mts +19 -0
  856. package/dist/password/PasswordKdfAdmission.mjs +25 -0
  857. package/dist/password/PasswordKdfAdmission.mjs.map +1 -0
  858. package/dist/password/configuration.d.mts +43 -0
  859. package/dist/password/configuration.mjs +64 -0
  860. package/dist/password/configuration.mjs.map +1 -0
  861. package/dist/password/defaults.mjs +13 -0
  862. package/dist/password/defaults.mjs.map +1 -0
  863. package/dist/password/encoding.mjs +64 -0
  864. package/dist/password/encoding.mjs.map +1 -0
  865. package/dist/password/errors.d.mts +28 -0
  866. package/dist/password/errors.mjs +25 -0
  867. package/dist/password/errors.mjs.map +1 -0
  868. package/dist/password/methods/PasswordActionEvidence.d.mts +38 -0
  869. package/dist/password/methods/PasswordActionEvidence.mjs +22 -0
  870. package/dist/password/methods/PasswordActionEvidence.mjs.map +1 -0
  871. package/dist/password/methods/PasswordPersistence.d.mts +102 -0
  872. package/dist/password/methods/PasswordPersistence.mjs +13 -0
  873. package/dist/password/methods/PasswordPersistence.mjs.map +1 -0
  874. package/dist/password/methods/PasswordPreparedPersistence.d.mts +111 -0
  875. package/dist/password/methods/contracts.d.mts +43 -0
  876. package/dist/password/methods/contracts.mjs +33 -0
  877. package/dist/password/methods/contracts.mjs.map +1 -0
  878. package/dist/password/methods/definition.d.mts +3813 -0
  879. package/dist/password/methods/definition.mjs +56 -0
  880. package/dist/password/methods/definition.mjs.map +1 -0
  881. package/dist/password/methods/errors.d.mts +15 -0
  882. package/dist/password/methods/errors.mjs +11 -0
  883. package/dist/password/methods/errors.mjs.map +1 -0
  884. package/dist/password/methods/models.d.mts +70 -0
  885. package/dist/password/methods/models.mjs +44 -0
  886. package/dist/password/methods/models.mjs.map +1 -0
  887. package/dist/password/methods/module.d.mts +3567 -0
  888. package/dist/password/methods/module.mjs +553 -0
  889. package/dist/password/methods/module.mjs.map +1 -0
  890. package/dist/password/methods/policy.d.mts +84 -0
  891. package/dist/password/methods/policy.mjs +80 -0
  892. package/dist/password/methods/policy.mjs.map +1 -0
  893. package/dist/password/methods/preparation.mjs +54 -0
  894. package/dist/password/methods/preparation.mjs.map +1 -0
  895. package/dist/password/methods/prepared.d.mts +53 -0
  896. package/dist/password/methods/prepared.mjs +610 -0
  897. package/dist/password/methods/prepared.mjs.map +1 -0
  898. package/dist/password/methods/preparedModels.d.mts +1295 -0
  899. package/dist/password/methods/preparedModels.mjs +278 -0
  900. package/dist/password/methods/preparedModels.mjs.map +1 -0
  901. package/dist/password/methods/signIn.d.mts +180 -0
  902. package/dist/password/methods/signIn.mjs +73 -0
  903. package/dist/password/methods/signIn.mjs.map +1 -0
  904. package/dist/password/methods/snapshot.mjs +38 -0
  905. package/dist/password/methods/snapshot.mjs.map +1 -0
  906. package/dist/password/methods/verification.mjs +138 -0
  907. package/dist/password/methods/verification.mjs.map +1 -0
  908. package/dist/password/models.d.mts +13 -0
  909. package/dist/password/models.mjs +12 -0
  910. package/dist/password/models.mjs.map +1 -0
  911. package/dist/password/policy.d.mts +33 -0
  912. package/dist/password/policy.mjs +37 -0
  913. package/dist/password/policy.mjs.map +1 -0
  914. package/dist/phone/PhoneActionEvidence.d.mts +23 -0
  915. package/dist/phone/PhoneActionEvidence.mjs +10 -0
  916. package/dist/phone/PhoneActionEvidence.mjs.map +1 -0
  917. package/dist/phone/PhoneAdmission.d.mts +29 -0
  918. package/dist/phone/PhoneAdmission.mjs +10 -0
  919. package/dist/phone/PhoneAdmission.mjs.map +1 -0
  920. package/dist/phone/PhoneDeliveryEligibility.d.mts +11 -0
  921. package/dist/phone/PhoneDeliveryEligibility.mjs +8 -0
  922. package/dist/phone/PhoneDeliveryEligibility.mjs.map +1 -0
  923. package/dist/phone/PhonePersistence.d.mts +33 -0
  924. package/dist/phone/PhonePersistence.mjs +10 -0
  925. package/dist/phone/PhonePersistence.mjs.map +1 -0
  926. package/dist/phone/PhoneRequestContext.d.mts +10 -0
  927. package/dist/phone/PhoneRequestContext.mjs +8 -0
  928. package/dist/phone/PhoneRequestContext.mjs.map +1 -0
  929. package/dist/phone/PhoneSignInTargets.d.mts +19 -0
  930. package/dist/phone/PhoneSignInTargets.mjs +13 -0
  931. package/dist/phone/PhoneSignInTargets.mjs.map +1 -0
  932. package/dist/phone/definition.d.mts +7190 -0
  933. package/dist/phone/definition.mjs +28 -0
  934. package/dist/phone/definition.mjs.map +1 -0
  935. package/dist/phone/failure.mjs +23 -0
  936. package/dist/phone/failure.mjs.map +1 -0
  937. package/dist/phone/lifecycle.mjs +427 -0
  938. package/dist/phone/lifecycle.mjs.map +1 -0
  939. package/dist/phone/lifecycleModels.d.mts +164 -0
  940. package/dist/phone/lifecycleModels.mjs +91 -0
  941. package/dist/phone/lifecycleModels.mjs.map +1 -0
  942. package/dist/phone/models.d.mts +41 -0
  943. package/dist/phone/models.mjs +29 -0
  944. package/dist/phone/models.mjs.map +1 -0
  945. package/dist/phone/module.d.mts +6027 -0
  946. package/dist/phone/module.mjs +293 -0
  947. package/dist/phone/module.mjs.map +1 -0
  948. package/dist/proofs/EmailProofDelivery.d.mts +13 -0
  949. package/dist/proofs/EmailProofDelivery.mjs +11 -0
  950. package/dist/proofs/EmailProofDelivery.mjs.map +1 -0
  951. package/dist/proofs/HostIngressLimiter.d.mts +20 -0
  952. package/dist/proofs/HostIngressLimiter.mjs +13 -0
  953. package/dist/proofs/HostIngressLimiter.mjs.map +1 -0
  954. package/dist/proofs/ProofPersistence.d.mts +140 -0
  955. package/dist/proofs/ProofPersistence.mjs +13 -0
  956. package/dist/proofs/ProofPersistence.mjs.map +1 -0
  957. package/dist/proofs/SmsProofDelivery.d.mts +13 -0
  958. package/dist/proofs/SmsProofDelivery.mjs +11 -0
  959. package/dist/proofs/SmsProofDelivery.mjs.map +1 -0
  960. package/dist/proofs/abuse.d.mts +15 -0
  961. package/dist/proofs/abuse.mjs +12 -0
  962. package/dist/proofs/abuse.mjs.map +1 -0
  963. package/dist/proofs/completion.d.mts +22 -0
  964. package/dist/proofs/crypto.d.mts +196 -0
  965. package/dist/proofs/crypto.mjs +189 -0
  966. package/dist/proofs/crypto.mjs.map +1 -0
  967. package/dist/proofs/definition.d.mts +335 -0
  968. package/dist/proofs/definition.mjs +10 -0
  969. package/dist/proofs/definition.mjs.map +1 -0
  970. package/dist/proofs/delivery.d.mts +30 -0
  971. package/dist/proofs/delivery.mjs +26 -0
  972. package/dist/proofs/delivery.mjs.map +1 -0
  973. package/dist/proofs/dispatch.d.mts +20 -0
  974. package/dist/proofs/dispatch.mjs +54 -0
  975. package/dist/proofs/dispatch.mjs.map +1 -0
  976. package/dist/proofs/errors.d.mts +21 -0
  977. package/dist/proofs/errors.mjs +25 -0
  978. package/dist/proofs/errors.mjs.map +1 -0
  979. package/dist/proofs/models.d.mts +141 -0
  980. package/dist/proofs/models.mjs +93 -0
  981. package/dist/proofs/models.mjs.map +1 -0
  982. package/dist/proofs/module.d.mts +344 -0
  983. package/dist/proofs/module.mjs +350 -0
  984. package/dist/proofs/module.mjs.map +1 -0
  985. package/dist/proofs/policy.d.mts +152 -0
  986. package/dist/proofs/policy.mjs +51 -0
  987. package/dist/proofs/policy.mjs.map +1 -0
  988. package/dist/sessions/AuthenticationAuthority.d.mts +31 -0
  989. package/dist/sessions/AuthenticationAuthority.mjs +8 -0
  990. package/dist/sessions/AuthenticationAuthority.mjs.map +1 -0
  991. package/dist/sessions/PendingAuthentication.d.mts +108 -0
  992. package/dist/sessions/PendingAuthentication.mjs +40 -0
  993. package/dist/sessions/PendingAuthentication.mjs.map +1 -0
  994. package/dist/sessions/SessionStepUpPersistence.d.mts +152 -0
  995. package/dist/sessions/SessionStepUpPersistence.mjs +63 -0
  996. package/dist/sessions/SessionStepUpPersistence.mjs.map +1 -0
  997. package/dist/sessions/assurance.d.mts +163 -0
  998. package/dist/sessions/assurance.mjs +95 -0
  999. package/dist/sessions/assurance.mjs.map +1 -0
  1000. package/dist/sessions/commit.d.mts +13 -0
  1001. package/dist/sessions/configuration.d.mts +46 -0
  1002. package/dist/sessions/configuration.mjs +55 -0
  1003. package/dist/sessions/configuration.mjs.map +1 -0
  1004. package/dist/sessions/contract.d.mts +663 -0
  1005. package/dist/sessions/contract.mjs +174 -0
  1006. package/dist/sessions/contract.mjs.map +1 -0
  1007. package/dist/sessions/crypto.d.mts +24 -0
  1008. package/dist/sessions/crypto.mjs +106 -0
  1009. package/dist/sessions/crypto.mjs.map +1 -0
  1010. package/dist/sessions/definition.d.mts +11 -0
  1011. package/dist/sessions/definition.mjs +10 -0
  1012. package/dist/sessions/definition.mjs.map +1 -0
  1013. package/dist/sessions/errors.d.mts +35 -0
  1014. package/dist/sessions/errors.mjs +34 -0
  1015. package/dist/sessions/errors.mjs.map +1 -0
  1016. package/dist/sessions/invalidation.d.mts +23 -0
  1017. package/dist/sessions/invalidation.mjs +33 -0
  1018. package/dist/sessions/invalidation.mjs.map +1 -0
  1019. package/dist/sessions/models.d.mts +143 -0
  1020. package/dist/sessions/models.mjs +94 -0
  1021. package/dist/sessions/models.mjs.map +1 -0
  1022. package/dist/sessions/module.d.mts +1091 -0
  1023. package/dist/sessions/module.mjs +943 -0
  1024. package/dist/sessions/module.mjs.map +1 -0
  1025. package/dist/sessions/persistence.d.mts +93 -0
  1026. package/dist/sessions/policy.d.mts +80 -0
  1027. package/dist/sessions/policy.mjs +66 -0
  1028. package/dist/sessions/policy.mjs.map +1 -0
  1029. package/dist/testing/conformance/AuthStore.d.mts +11 -0
  1030. package/dist/testing/conformance/AuthStore.mjs +173 -0
  1031. package/dist/testing/conformance/AuthStore.mjs.map +1 -0
  1032. package/dist/testing/conformance/OAuthConnectionStore.d.mts +11 -0
  1033. package/dist/testing/conformance/OAuthConnectionStore.mjs +102 -0
  1034. package/dist/testing/conformance/OAuthConnectionStore.mjs.map +1 -0
  1035. package/dist/testing/conformance/OAuthStateStore.d.mts +11 -0
  1036. package/dist/testing/conformance/OAuthStateStore.mjs +45 -0
  1037. package/dist/testing/conformance/OAuthStateStore.mjs.map +1 -0
  1038. package/dist/testing/conformance/PasswordCredentialStore.d.mts +20 -0
  1039. package/dist/testing/conformance/PasswordCredentialStore.mjs +103 -0
  1040. package/dist/testing/conformance/PasswordCredentialStore.mjs.map +1 -0
  1041. package/dist/testing/conformance/support.mjs +17 -0
  1042. package/dist/testing/conformance/support.mjs.map +1 -0
  1043. package/dist/testing/crypto.d.mts +11 -0
  1044. package/dist/testing/crypto.mjs +41 -0
  1045. package/dist/testing/crypto.mjs.map +1 -0
  1046. package/dist/testing/keyring.d.mts +9 -0
  1047. package/dist/testing/keyring.mjs +17 -0
  1048. package/dist/testing/keyring.mjs.map +1 -0
  1049. package/dist/totp/TotpActionEvidence.d.mts +18 -0
  1050. package/dist/totp/TotpActionEvidence.mjs +8 -0
  1051. package/dist/totp/TotpActionEvidence.mjs.map +1 -0
  1052. package/dist/totp/TotpPersistence.d.mts +19 -0
  1053. package/dist/totp/TotpPersistence.mjs +8 -0
  1054. package/dist/totp/TotpPersistence.mjs.map +1 -0
  1055. package/dist/totp/TotpSecretKeys.d.mts +15 -0
  1056. package/dist/totp/TotpSecretKeys.mjs +8 -0
  1057. package/dist/totp/TotpSecretKeys.mjs.map +1 -0
  1058. package/dist/totp/crypto.mjs +96 -0
  1059. package/dist/totp/crypto.mjs.map +1 -0
  1060. package/dist/totp/definition.d.mts +764 -0
  1061. package/dist/totp/definition.mjs +24 -0
  1062. package/dist/totp/definition.mjs.map +1 -0
  1063. package/dist/totp/errors.d.mts +16 -0
  1064. package/dist/totp/errors.mjs +18 -0
  1065. package/dist/totp/errors.mjs.map +1 -0
  1066. package/dist/totp/models.d.mts +377 -0
  1067. package/dist/totp/models.mjs +137 -0
  1068. package/dist/totp/models.mjs.map +1 -0
  1069. package/dist/totp/module.d.mts +737 -0
  1070. package/dist/totp/module.mjs +355 -0
  1071. package/dist/totp/module.mjs.map +1 -0
  1072. package/package.json +1 -0
  1073. package/src/Atom.ts +4 -0
  1074. package/src/Auth.ts +16 -0
  1075. package/src/AuthContract.ts +17 -0
  1076. package/src/AuthSession.ts +298 -0
  1077. package/src/AuthStore.ts +367 -0
  1078. package/src/AuthTokenCodec.ts +226 -0
  1079. package/src/Client.ts +9 -0
  1080. package/src/Cloudflare.ts +345 -0
  1081. package/src/Drizzle.ts +378 -0
  1082. package/src/DrizzleD1.ts +136 -0
  1083. package/src/DrizzleLibsql.ts +288 -0
  1084. package/src/DrizzleMysql2.ts +184 -0
  1085. package/src/DrizzlePglite.ts +160 -0
  1086. package/src/DrizzlePostgres.ts +160 -0
  1087. package/src/DrizzleSqliteBun.ts +244 -0
  1088. package/src/DrizzleSqliteDo.ts +473 -0
  1089. package/src/DrizzleSqliteNode.ts +245 -0
  1090. package/src/DrizzleSqliteWasm.ts +245 -0
  1091. package/src/Email.ts +55 -0
  1092. package/src/EmailOtp.ts +250 -0
  1093. package/src/EmailOtpSender.ts +28 -0
  1094. package/src/Errors.ts +103 -0
  1095. package/src/GitHub.ts +16 -0
  1096. package/src/Hooks.ts +50 -0
  1097. package/src/Http.ts +47 -0
  1098. package/src/HttpServer.ts +742 -0
  1099. package/src/Identity.ts +53 -0
  1100. package/src/IdentityResolver.ts +18 -0
  1101. package/src/OAuth.ts +242 -0
  1102. package/src/OpenIdClient.ts +13 -0
  1103. package/src/OpenIdClientConnected.ts +18 -0
  1104. package/src/OperationHttp.ts +14 -0
  1105. package/src/OperationHttpClient.ts +6 -0
  1106. package/src/OperationHttpServer.ts +15 -0
  1107. package/src/Operations.ts +69 -0
  1108. package/src/Passkey.ts +81 -0
  1109. package/src/PasskeyBrowser.ts +19 -0
  1110. package/src/PasskeyContract.ts +212 -0
  1111. package/src/PasskeyPassword.ts +319 -0
  1112. package/src/PasskeySimpleWebAuthn.ts +6 -0
  1113. package/src/Password.ts +113 -0
  1114. package/src/PasswordAuth.ts +197 -0
  1115. package/src/PasswordCredentialStore.ts +140 -0
  1116. package/src/PasswordHasher.ts +147 -0
  1117. package/src/PhoneOtp.ts +32 -0
  1118. package/src/Policy.ts +95 -0
  1119. package/src/Proofs.ts +71 -0
  1120. package/src/Rpc.ts +15 -0
  1121. package/src/Schema.ts +235 -0
  1122. package/src/SessionContract.ts +2 -0
  1123. package/src/Sessions.ts +105 -0
  1124. package/src/Testing.ts +24 -0
  1125. package/src/Totp.ts +28 -0
  1126. package/src/TotpContract.ts +147 -0
  1127. package/src/WebCrypto.ts +61 -0
  1128. package/src/Workflows.ts +12 -0
  1129. package/src/atom/AuthAtomLifetime.ts +87 -0
  1130. package/src/atom/AuthAtomWorkflow.ts +27 -0
  1131. package/src/atom/client.ts +364 -0
  1132. package/src/atom/operations.ts +183 -0
  1133. package/src/atom/scoped-runtime.ts +249 -0
  1134. package/src/auth/Auth.ts +482 -0
  1135. package/src/auth/AuthConfigurationError.ts +9 -0
  1136. package/src/auth/AuthRequest.ts +21 -0
  1137. package/src/auth/AuthStrategy.ts +116 -0
  1138. package/src/auth/ConsumeDecision.ts +4 -0
  1139. package/src/auth/actions.ts +220 -0
  1140. package/src/auth/defaults.ts +23 -0
  1141. package/src/auth/definition.ts +88 -0
  1142. package/src/auth/session.ts +146 -0
  1143. package/src/drizzle/D1BatchStatements.ts +10 -0
  1144. package/src/drizzle/PasswordPreparedPostconditions.ts +30 -0
  1145. package/src/drizzle/SuppliedService.ts +10 -0
  1146. package/src/drizzle/d1-emails.ts +1808 -0
  1147. package/src/drizzle/d1-generated-statement.ts +129 -0
  1148. package/src/drizzle/d1-identity.ts +374 -0
  1149. package/src/drizzle/d1-oauth.ts +338 -0
  1150. package/src/drizzle/d1-passkey.ts +371 -0
  1151. package/src/drizzle/d1-password-prepared.ts +1273 -0
  1152. package/src/drizzle/d1-passwords.ts +2661 -0
  1153. package/src/drizzle/d1-phone.ts +94 -0
  1154. package/src/drizzle/d1-planning.ts +105 -0
  1155. package/src/drizzle/d1-proofs.ts +2305 -0
  1156. package/src/drizzle/d1-sessions.ts +2867 -0
  1157. package/src/drizzle/d1-totp.ts +79 -0
  1158. package/src/drizzle/email-model.ts +512 -0
  1159. package/src/drizzle/email-registration.ts +696 -0
  1160. package/src/drizzle/email-sql.ts +1468 -0
  1161. package/src/drizzle/email-target.ts +243 -0
  1162. package/src/drizzle/model.ts +492 -0
  1163. package/src/drizzle/mysql-emails.ts +323 -0
  1164. package/src/drizzle/mysql-identity.ts +323 -0
  1165. package/src/drizzle/mysql-password-prepared.ts +206 -0
  1166. package/src/drizzle/mysql-passwords.ts +341 -0
  1167. package/src/drizzle/mysql-proofs.ts +183 -0
  1168. package/src/drizzle/mysql-sessions.ts +742 -0
  1169. package/src/drizzle/mysql.ts +686 -0
  1170. package/src/drizzle/oauth-accounts.ts +801 -0
  1171. package/src/drizzle/oauth-connected-access.ts +354 -0
  1172. package/src/drizzle/oauth-connected-collection.ts +324 -0
  1173. package/src/drizzle/oauth-connected-custody.ts +277 -0
  1174. package/src/drizzle/oauth-connected-drivers.ts +463 -0
  1175. package/src/drizzle/oauth-connected-flow.ts +439 -0
  1176. package/src/drizzle/oauth-connected-input.ts +128 -0
  1177. package/src/drizzle/oauth-connected-maintenance.ts +345 -0
  1178. package/src/drizzle/oauth-connected-management.ts +365 -0
  1179. package/src/drizzle/oauth-connected-model.ts +347 -0
  1180. package/src/drizzle/oauth-connected-reference.ts +112 -0
  1181. package/src/drizzle/oauth-connected-settlement.ts +226 -0
  1182. package/src/drizzle/oauth-connected-state.ts +846 -0
  1183. package/src/drizzle/oauth-connected-target.ts +264 -0
  1184. package/src/drizzle/oauth-drivers.ts +567 -0
  1185. package/src/drizzle/oauth-flow.ts +461 -0
  1186. package/src/drizzle/oauth-input.ts +205 -0
  1187. package/src/drizzle/oauth-model.ts +610 -0
  1188. package/src/drizzle/oauth-mysql.ts +10 -0
  1189. package/src/drizzle/oauth-owner.ts +29 -0
  1190. package/src/drizzle/oauth-registration.ts +638 -0
  1191. package/src/drizzle/oauth-state.ts +213 -0
  1192. package/src/drizzle/oauth-target.ts +751 -0
  1193. package/src/drizzle/passkey-admission.ts +333 -0
  1194. package/src/drizzle/passkey-credentials.ts +465 -0
  1195. package/src/drizzle/passkey-drivers.ts +385 -0
  1196. package/src/drizzle/passkey-enrollment.ts +280 -0
  1197. package/src/drizzle/passkey-flow.ts +983 -0
  1198. package/src/drizzle/passkey-management.ts +369 -0
  1199. package/src/drizzle/passkey-model.ts +350 -0
  1200. package/src/drizzle/passkey-registration-ceremony-model.ts +69 -0
  1201. package/src/drizzle/passkey-registration-ceremony.ts +254 -0
  1202. package/src/drizzle/passkey-registration-custody.ts +82 -0
  1203. package/src/drizzle/passkey-registration-write.ts +378 -0
  1204. package/src/drizzle/passkey-state.ts +307 -0
  1205. package/src/drizzle/passkey-target.ts +528 -0
  1206. package/src/drizzle/passkey-write-drivers.ts +396 -0
  1207. package/src/drizzle/passkey-write-model.ts +265 -0
  1208. package/src/drizzle/passkey-write-state.ts +627 -0
  1209. package/src/drizzle/passkey-write-target.ts +406 -0
  1210. package/src/drizzle/password-model.ts +491 -0
  1211. package/src/drizzle/password-prepared-model.ts +259 -0
  1212. package/src/drizzle/password-prepared-sql.ts +1198 -0
  1213. package/src/drizzle/password-prepared-state.ts +232 -0
  1214. package/src/drizzle/password-prepared-target.ts +158 -0
  1215. package/src/drizzle/password-registration.ts +372 -0
  1216. package/src/drizzle/password-sql.ts +2082 -0
  1217. package/src/drizzle/password-target.ts +223 -0
  1218. package/src/drizzle/pg-emails.ts +323 -0
  1219. package/src/drizzle/pg-password-prepared.ts +207 -0
  1220. package/src/drizzle/pg-passwords.ts +340 -0
  1221. package/src/drizzle/pg-proofs.ts +193 -0
  1222. package/src/drizzle/pg-sessions.ts +751 -0
  1223. package/src/drizzle/pg.ts +982 -0
  1224. package/src/drizzle/phone-model.ts +185 -0
  1225. package/src/drizzle/phone-state.ts +802 -0
  1226. package/src/drizzle/phone-target.ts +471 -0
  1227. package/src/drizzle/proof-model.ts +398 -0
  1228. package/src/drizzle/proof-sql.ts +1912 -0
  1229. package/src/drizzle/proof-target.ts +120 -0
  1230. package/src/drizzle/session-model.ts +368 -0
  1231. package/src/drizzle/session-sql.ts +2152 -0
  1232. package/src/drizzle/session-target.ts +335 -0
  1233. package/src/drizzle/sqlite-emails.ts +368 -0
  1234. package/src/drizzle/sqlite-identity.ts +343 -0
  1235. package/src/drizzle/sqlite-password-prepared.ts +262 -0
  1236. package/src/drizzle/sqlite-passwords.ts +499 -0
  1237. package/src/drizzle/sqlite-proofs.ts +204 -0
  1238. package/src/drizzle/sqlite-sessions.ts +972 -0
  1239. package/src/drizzle/sqlite.ts +704 -0
  1240. package/src/drizzle/standalone-guard.ts +38 -0
  1241. package/src/drizzle/step-up-model.ts +129 -0
  1242. package/src/drizzle/step-up-state.ts +141 -0
  1243. package/src/drizzle/totp-model.ts +91 -0
  1244. package/src/drizzle/totp-state.ts +520 -0
  1245. package/src/drizzle/totp-target.ts +304 -0
  1246. package/src/drizzle/transaction-execution.ts +290 -0
  1247. package/src/drizzle/transaction-mysql.ts +104 -0
  1248. package/src/drizzle/transaction-owner.ts +570 -0
  1249. package/src/email/EmailActionEvidence.ts +37 -0
  1250. package/src/email/EmailAddressPersistence.ts +71 -0
  1251. package/src/email/EmailIdentifierNotifier.ts +48 -0
  1252. package/src/email/EmailReturnTargets.ts +50 -0
  1253. package/src/email/EmailSignInTargets.ts +20 -0
  1254. package/src/email/addresses.ts +630 -0
  1255. package/src/email/definition.ts +309 -0
  1256. package/src/email/errors.ts +23 -0
  1257. package/src/email/magicLink.ts +84 -0
  1258. package/src/email/models.ts +50 -0
  1259. package/src/email/module.ts +664 -0
  1260. package/src/email/registration.ts +415 -0
  1261. package/src/email/snapshot.ts +51 -0
  1262. package/src/hooks/LifecycleHooks.ts +136 -0
  1263. package/src/hooks/commit.ts +271 -0
  1264. package/src/hooks/models.ts +111 -0
  1265. package/src/hooks/plugins.ts +87 -0
  1266. package/src/hooks/transactions.ts +51 -0
  1267. package/src/http/auth-api.ts +17 -0
  1268. package/src/http/auth-contract.ts +148 -0
  1269. package/src/http/auth-http.ts +467 -0
  1270. package/src/http/endpoints/get-session.ts +9 -0
  1271. package/src/http/endpoints/password-sign-in.ts +19 -0
  1272. package/src/http/endpoints/request-email-otp.ts +10 -0
  1273. package/src/http/endpoints/set-password.ts +18 -0
  1274. package/src/http/endpoints/sign-out.ts +5 -0
  1275. package/src/http/endpoints/verify-email-otp.ts +15 -0
  1276. package/src/http/models.ts +80 -0
  1277. package/src/http/security.ts +102 -0
  1278. package/src/http/session-contract.ts +92 -0
  1279. package/src/http-operation/OperationHttpInvocation.ts +39 -0
  1280. package/src/http-operation/OperationHttpServerConfig.ts +124 -0
  1281. package/src/http-operation/auth-client.ts +273 -0
  1282. package/src/http-operation/client.ts +453 -0
  1283. package/src/http-operation/configuration-schema.ts +19 -0
  1284. package/src/http-operation/contract.ts +116 -0
  1285. package/src/http-operation/errors.ts +38 -0
  1286. package/src/http-operation/models.ts +42 -0
  1287. package/src/http-operation/private.ts +50 -0
  1288. package/src/http-operation/security.ts +93 -0
  1289. package/src/http-operation/server.ts +544 -0
  1290. package/src/identity/ExternalIdentityMutation.ts +18 -0
  1291. package/src/identity/IdentityMutation.ts +41 -0
  1292. package/src/identity/IdentityRepository.ts +37 -0
  1293. package/src/identity/SubjectLifecycle.ts +80 -0
  1294. package/src/identity/SubjectProvisioner.ts +40 -0
  1295. package/src/identity/codecs.ts +54 -0
  1296. package/src/identity/models.ts +82 -0
  1297. package/src/identity/operations.ts +182 -0
  1298. package/src/index.ts +23 -0
  1299. package/src/internal/AuthStoreDecisions.ts +23 -0
  1300. package/src/internal/CurrentSession.ts +8 -0
  1301. package/src/internal/diagnostics.ts +71 -0
  1302. package/src/oauth/GithubOAuthProvider.ts +106 -0
  1303. package/src/oauth/OAuth.ts +436 -0
  1304. package/src/oauth/OAuthAccountsPersistence.ts +142 -0
  1305. package/src/oauth/OAuthActionEvidence.ts +31 -0
  1306. package/src/oauth/OAuthConnectedActionEvidence.ts +28 -0
  1307. package/src/oauth/OAuthConnectedPersistence.ts +163 -0
  1308. package/src/oauth/OAuthConnectedProtocol.ts +54 -0
  1309. package/src/oauth/OAuthConnectedRevocations.ts +48 -0
  1310. package/src/oauth/OAuthConnectedTokenProtector.ts +240 -0
  1311. package/src/oauth/OAuthConnectedTransactionProtector.ts +56 -0
  1312. package/src/oauth/OAuthConnectedUseAuthority.ts +26 -0
  1313. package/src/oauth/OAuthConnectionStore.ts +59 -0
  1314. package/src/oauth/OAuthLinkTransactionProtector.ts +58 -0
  1315. package/src/oauth/OAuthProtocol.ts +39 -0
  1316. package/src/oauth/OAuthProvider.ts +126 -0
  1317. package/src/oauth/OAuthProviders.ts +53 -0
  1318. package/src/oauth/OAuthRegistrationIntents.ts +42 -0
  1319. package/src/oauth/OAuthReturnTargets.ts +44 -0
  1320. package/src/oauth/OAuthSignInPersistence.ts +91 -0
  1321. package/src/oauth/OAuthStateDecisions.ts +16 -0
  1322. package/src/oauth/OAuthStateStore.ts +102 -0
  1323. package/src/oauth/OAuthTransactionProtector.ts +103 -0
  1324. package/src/oauth/accounts.ts +987 -0
  1325. package/src/oauth/accountsModels.ts +214 -0
  1326. package/src/oauth/connected.ts +995 -0
  1327. package/src/oauth/connectedAccess.ts +644 -0
  1328. package/src/oauth/connectedMaintenance.ts +248 -0
  1329. package/src/oauth/connectedModels.ts +495 -0
  1330. package/src/oauth/definition.ts +414 -0
  1331. package/src/oauth/errors.ts +78 -0
  1332. package/src/oauth/github/identity.ts +26 -0
  1333. package/src/oauth/github/models.ts +37 -0
  1334. package/src/oauth/github/protocol.ts +329 -0
  1335. package/src/oauth/openid-client/ProviderRevocation.ts +22 -0
  1336. package/src/oauth/openid-client/compatibility.ts +47 -0
  1337. package/src/oauth/openid-client/configuration.ts +472 -0
  1338. package/src/oauth/openid-client/connected/configuration.ts +565 -0
  1339. package/src/oauth/openid-client/connected/models.ts +58 -0
  1340. package/src/oauth/openid-client/connected/protocol.ts +866 -0
  1341. package/src/oauth/openid-client/models.ts +78 -0
  1342. package/src/oauth/openid-client/protocol.ts +437 -0
  1343. package/src/oauth/openid-client/transport.ts +67 -0
  1344. package/src/oauth/policy.ts +26 -0
  1345. package/src/oauth/registration.ts +410 -0
  1346. package/src/oauth/registrationModels.ts +115 -0
  1347. package/src/oauth/registrationSecrets.ts +127 -0
  1348. package/src/oauth/schema.ts +102 -0
  1349. package/src/oauth/signInErrors.ts +23 -0
  1350. package/src/oauth/signInModels.ts +266 -0
  1351. package/src/oauth/signInModule.ts +875 -0
  1352. package/src/oauth/signInSnapshot.ts +37 -0
  1353. package/src/oauth/transactionEncryption.ts +198 -0
  1354. package/src/operations/RequestBindingConfig.ts +12 -0
  1355. package/src/operations/actions.ts +342 -0
  1356. package/src/operations/context.ts +130 -0
  1357. package/src/operations/credentials.ts +121 -0
  1358. package/src/operations/errors.ts +53 -0
  1359. package/src/operations/operation.ts +740 -0
  1360. package/src/operations/requestBinding.ts +237 -0
  1361. package/src/operations/requestBindingModels.ts +18 -0
  1362. package/src/operations/reveals.ts +147 -0
  1363. package/src/passkey/PasskeyActionEvidence.ts +25 -0
  1364. package/src/passkey/PasskeyCredentials.ts +16 -0
  1365. package/src/passkey/PasskeyEnrollmentContext.ts +26 -0
  1366. package/src/passkey/PasskeyManagementPersistence.ts +124 -0
  1367. package/src/passkey/PasskeyPersistence.ts +85 -0
  1368. package/src/passkey/PasskeyProtocol.ts +48 -0
  1369. package/src/passkey/actions.ts +905 -0
  1370. package/src/passkey/browser/PasskeyBrowser.ts +26 -0
  1371. package/src/passkey/browser/models.ts +67 -0
  1372. package/src/passkey/browser/simplewebauthn.ts +621 -0
  1373. package/src/passkey/definition.ts +386 -0
  1374. package/src/passkey/errors.ts +39 -0
  1375. package/src/passkey/management.ts +552 -0
  1376. package/src/passkey/models.ts +414 -0
  1377. package/src/passkey/module.ts +367 -0
  1378. package/src/passkey/pending.ts +203 -0
  1379. package/src/passkey/policy.ts +88 -0
  1380. package/src/passkey/registration.ts +251 -0
  1381. package/src/passkey/simplewebauthn/configuration.ts +97 -0
  1382. package/src/passkey/simplewebauthn/models.ts +9 -0
  1383. package/src/passkey/simplewebauthn/protocol.ts +729 -0
  1384. package/src/passkey/snapshot.ts +48 -0
  1385. package/src/passkey/stepUp.ts +212 -0
  1386. package/src/password/CompromisedPasswords.ts +36 -0
  1387. package/src/password/NewPasswordCheck.ts +89 -0
  1388. package/src/password/PasswordHashing.ts +209 -0
  1389. package/src/password/PasswordKdfAdmission.ts +44 -0
  1390. package/src/password/configuration.ts +52 -0
  1391. package/src/password/defaults.ts +15 -0
  1392. package/src/password/encoding.ts +137 -0
  1393. package/src/password/errors.ts +43 -0
  1394. package/src/password/methods/PasswordActionEvidence.ts +41 -0
  1395. package/src/password/methods/PasswordPersistence.ts +128 -0
  1396. package/src/password/methods/PasswordPreparedPersistence.ts +123 -0
  1397. package/src/password/methods/contracts.ts +47 -0
  1398. package/src/password/methods/definition.ts +199 -0
  1399. package/src/password/methods/errors.ts +26 -0
  1400. package/src/password/methods/models.ts +80 -0
  1401. package/src/password/methods/module.ts +986 -0
  1402. package/src/password/methods/policy.ts +68 -0
  1403. package/src/password/methods/preparation.ts +73 -0
  1404. package/src/password/methods/prepared.ts +1199 -0
  1405. package/src/password/methods/preparedModels.ts +496 -0
  1406. package/src/password/methods/signIn.ts +136 -0
  1407. package/src/password/methods/snapshot.ts +53 -0
  1408. package/src/password/methods/verification.ts +266 -0
  1409. package/src/password/models.ts +15 -0
  1410. package/src/password/policy.ts +41 -0
  1411. package/src/phone/PhoneActionEvidence.ts +26 -0
  1412. package/src/phone/PhoneAdmission.ts +29 -0
  1413. package/src/phone/PhoneDeliveryEligibility.ts +9 -0
  1414. package/src/phone/PhonePersistence.ts +43 -0
  1415. package/src/phone/PhoneRequestContext.ts +7 -0
  1416. package/src/phone/PhoneSignInTargets.ts +19 -0
  1417. package/src/phone/definition.ts +87 -0
  1418. package/src/phone/failure.ts +40 -0
  1419. package/src/phone/lifecycle.ts +662 -0
  1420. package/src/phone/lifecycleModels.ts +108 -0
  1421. package/src/phone/models.ts +41 -0
  1422. package/src/phone/module.ts +433 -0
  1423. package/src/proofs/EmailProofDelivery.ts +19 -0
  1424. package/src/proofs/HostIngressLimiter.ts +20 -0
  1425. package/src/proofs/ProofPersistence.ts +172 -0
  1426. package/src/proofs/SmsProofDelivery.ts +19 -0
  1427. package/src/proofs/abuse.ts +23 -0
  1428. package/src/proofs/completion.ts +23 -0
  1429. package/src/proofs/crypto.ts +326 -0
  1430. package/src/proofs/definition.ts +39 -0
  1431. package/src/proofs/delivery.ts +73 -0
  1432. package/src/proofs/dispatch.ts +99 -0
  1433. package/src/proofs/errors.ts +46 -0
  1434. package/src/proofs/models.ts +131 -0
  1435. package/src/proofs/module.ts +620 -0
  1436. package/src/proofs/policy.ts +77 -0
  1437. package/src/sessions/AuthenticationAuthority.ts +51 -0
  1438. package/src/sessions/PendingAuthentication.ts +121 -0
  1439. package/src/sessions/SessionStepUpPersistence.ts +164 -0
  1440. package/src/sessions/assurance.ts +192 -0
  1441. package/src/sessions/commit.ts +13 -0
  1442. package/src/sessions/configuration.ts +133 -0
  1443. package/src/sessions/contract.ts +203 -0
  1444. package/src/sessions/crypto.ts +181 -0
  1445. package/src/sessions/definition.ts +25 -0
  1446. package/src/sessions/errors.ts +68 -0
  1447. package/src/sessions/invalidation.ts +46 -0
  1448. package/src/sessions/models.ts +138 -0
  1449. package/src/sessions/module.ts +1991 -0
  1450. package/src/sessions/persistence.ts +135 -0
  1451. package/src/sessions/policy.ts +103 -0
  1452. package/src/testing/conformance/AuthStore.ts +314 -0
  1453. package/src/testing/conformance/OAuthConnectionStore.ts +167 -0
  1454. package/src/testing/conformance/OAuthStateStore.ts +105 -0
  1455. package/src/testing/conformance/PasswordCredentialStore.ts +205 -0
  1456. package/src/testing/conformance/support.ts +38 -0
  1457. package/src/testing/crypto.ts +55 -0
  1458. package/src/testing/keyring.ts +17 -0
  1459. package/src/totp/TotpActionEvidence.ts +18 -0
  1460. package/src/totp/TotpPersistence.ts +26 -0
  1461. package/src/totp/TotpSecretKeys.ts +15 -0
  1462. package/src/totp/crypto.ts +160 -0
  1463. package/src/totp/definition.ts +78 -0
  1464. package/src/totp/errors.ts +25 -0
  1465. package/src/totp/models.ts +164 -0
  1466. package/src/totp/module.ts +717 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"passkey-write-target.mjs","names":["M.PasskeyCeremony","M.PasskeyActionAuthorization","M.PasskeyClaim","M.PasskeyRegistrationVerified","M.PasskeyInstant","M.PasskeyModuleId","M.PasskeyCommandId","M.PasskeyCredentialId","M.PasskeyLabel","M.PasskeyCredential","M.PasskeyCredentialSummary","M.PasskeyRemoved","M.PasskeyRegistrationResult","M.PasskeyIssueDecision"],"sources":["../../src/drizzle/passkey-write-target.ts"],"sourcesContent":["import { getTableColumns } from \"drizzle-orm\";\n/* oxlint-disable no-explicit-any -- private execution bridge; target wrappers retain payload, table, ID, and requirement types. */\nimport { Effect, Layer, Schema } from \"effect\";\nimport type { Statement } from \"effect/unstable/sql/Statement\";\n\nimport { LifecycleHooks } from \"../hooks/LifecycleHooks\";\nimport { PasskeyConfigurationError } from \"../passkey/errors\";\nimport * as M from \"../passkey/models\";\nimport { PasskeyManagementPersistence } from \"../passkey/PasskeyManagementPersistence\";\nimport { PasskeyManagementPolicy, PasskeyMethodPolicy } from \"../passkey/policy\";\nimport { snapshotPasskeySync } from \"../passkey/snapshot\";\nimport { SubjectId } from \"../Schema\";\nimport { SessionInvalidationWindow } from \"../sessions/invalidation\";\nimport { completeEnrollment, issueEnrollment } from \"./passkey-enrollment\";\nimport {\n inspectRemove,\n listCredentials,\n removeCredential,\n renameCredential,\n} from \"./passkey-management\";\nimport type { PasskeyMappingSource } from \"./passkey-model\";\nimport {\n completeRegistration,\n inspectRegistration,\n issueRegistration,\n} from \"./passkey-registration-write\";\nimport { CurrentPasskeyTransaction, invariant, nonce, unavailable } from \"./passkey-state\";\nimport {\n capturedMapping,\n capturedService,\n makePasskeyExecution,\n makePasskeyPersistence,\n observationalContext,\n prepareValue,\n type PasskeyExecution,\n type PasskeyCoordinatorError,\n type PasskeyTargetConfiguration,\n} from \"./passkey-target\";\nimport type {\n PasskeyManagementServices,\n PasskeyRegistrationServices,\n PasskeyRegistrationWriter,\n} from \"./passkey-write-model\";\nimport { coordinateTransactionOwner } from \"./transaction-execution\";\n\nexport const passkeyManagementPersistenceLayer = <E, R>(\n services: Effect.Effect<PasskeyManagementServices, E, R>,\n) =>\n Layer.effect(\n PasskeyManagementPersistence,\n Effect.map(services, (value) => value.passkeyManagementPersistence),\n );\n\nconst issueSchema = Schema.Struct({\n ceremony: M.PasskeyCeremony,\n policy: PasskeyMethodPolicy,\n management: PasskeyManagementPolicy,\n authorization: M.PasskeyActionAuthorization,\n});\n\nconst completeSchema = Schema.Struct({\n claim: M.PasskeyClaim,\n verified: M.PasskeyRegistrationVerified,\n authorization: M.PasskeyActionAuthorization,\n management: PasskeyManagementPolicy,\n invalidation: SessionInvalidationWindow,\n nowMillis: M.PasskeyInstant,\n});\n\nconst metadata = { moduleId: M.PasskeyModuleId, subjectId: SubjectId };\n\nconst identity = {\n ...metadata,\n commandId: M.PasskeyCommandId,\n credentialId: M.PasskeyCredentialId,\n};\n\nconst retention = { nowMillis: M.PasskeyInstant, retentionUntilMillis: M.PasskeyInstant };\n\nconst managementSchemas = {\n list: Schema.Struct({\n ...metadata,\n cursor: Schema.optionalKey(M.PasskeyCredentialId),\n limit: Schema.Int.check(Schema.isBetween({ minimum: 1, maximum: 64 })),\n }),\n issueEnrollment: issueSchema,\n completeEnrollment: completeSchema,\n inspectRemove: Schema.Struct(identity),\n rename: Schema.Struct({ ...identity, ...retention, name: M.PasskeyLabel }),\n remove: Schema.Struct({\n moduleId: M.PasskeyModuleId,\n commandId: M.PasskeyCommandId,\n credential: M.PasskeyCredential,\n authorization: M.PasskeyActionAuthorization,\n management: PasskeyManagementPolicy,\n invalidation: SessionInvalidationWindow,\n ...retention,\n }),\n};\n\nconst enrolled = Schema.Union([\n Schema.TaggedStruct(\"Enrolled\", { credential: M.PasskeyCredentialSummary }),\n Schema.TaggedStruct(\"Rejected\", {}),\n]);\n\nconst renamed = Schema.Union([\n Schema.TaggedStruct(\"Renamed\", {\n credential: M.PasskeyCredentialSummary,\n replayed: Schema.Boolean,\n }),\n Schema.TaggedStruct(\"Rejected\", {}),\n]);\n\nconst removed = Schema.Union([\n Schema.TaggedStruct(\"Removed\", { result: M.PasskeyRemoved }),\n Schema.TaggedStruct(\"Rejected\", {}),\n Schema.TaggedStruct(\"LastSignInMethod\", {}),\n]);\n\nconst registrationDecision = Schema.Union([\n M.PasskeyRegistrationResult,\n Schema.TaggedStruct(\"Rejected\", {}),\n]);\n\nconst managementService = (\n mapping: any,\n execute: PasskeyExecution,\n): PasskeyManagementPersistence[\"Service\"] =>\n capturedService<PasskeyManagementPersistence[\"Service\"]>(\n {\n list: (input) => execute.run(observationalContext(listCredentials(mapping, input)), false),\n inspectRemove: (input) =>\n execute.run(observationalContext(inspectRemove(mapping, input)), false),\n issueEnrollment: (input, prepare) =>\n execute.run(\n Effect.gen(function* () {\n return yield* prepareValue(\n snapshotPasskeySync(M.PasskeyIssueDecision, yield* issueEnrollment(mapping, input)),\n prepare,\n );\n }),\n ),\n completeEnrollment: (input, prepare) =>\n execute.run(\n Effect.gen(function* () {\n return yield* prepareValue(\n snapshotPasskeySync(enrolled, yield* completeEnrollment(mapping, input)),\n prepare,\n );\n }),\n ),\n rename: (input, prepare) =>\n execute.run(\n Effect.gen(function* () {\n return yield* prepareValue(\n snapshotPasskeySync(renamed, yield* renameCredential(mapping, input)),\n prepare,\n );\n }),\n ),\n remove: (input, prepare) =>\n execute.run(\n Effect.gen(function* () {\n return yield* prepareValue(\n snapshotPasskeySync(removed, yield* removeCredential(mapping, input)),\n prepare,\n );\n }),\n ),\n },\n managementSchemas,\n execute,\n );\n\nconst registrationService = <R>(\n mapping: any,\n execute: PasskeyExecution,\n): PasskeyRegistrationWriter<R> =>\n capturedService<PasskeyRegistrationWriter<R>>(\n {\n inspect: (registration) =>\n execute.run(observationalContext(inspectRegistration(mapping, registration)), false),\n issueRegistration: (input, prepare) =>\n execute.run(\n Effect.gen(function* () {\n return yield* prepareValue(\n snapshotPasskeySync(M.PasskeyIssueDecision, yield* issueRegistration(mapping, input)),\n prepare,\n );\n }),\n ),\n completeRegistration: (input, prepare) =>\n execute.run(\n Effect.gen(function* () {\n return yield* prepareValue(\n snapshotPasskeySync(\n registrationDecision,\n yield* completeRegistration(mapping, input),\n ),\n prepare,\n );\n }),\n ),\n },\n {\n inspect: Schema.toType(mapping.registration.schema),\n issueRegistration: Schema.Struct({\n ceremony: M.PasskeyCeremony,\n policy: PasskeyMethodPolicy,\n registration: Schema.toType(mapping.registration.schema),\n }),\n completeRegistration: Schema.Struct({\n claim: M.PasskeyClaim,\n verified: M.PasskeyRegistrationVerified,\n nowMillis: M.PasskeyInstant,\n }),\n },\n execute,\n );\n\nconst descriptor = (table: any) => {\n const columns = getTableColumns(table.table);\n\n for (const [field, name] of Object.entries(table))\n if (typeof name === \"string\" && !field.endsWith(\"State\"))\n invariant(columns[name] !== undefined);\n};\n\nconst writeMapping = <M, RSetup>(\n source: PasskeyMappingSource<M, RSetup>,\n configuration: PasskeyTargetConfiguration,\n registration: boolean,\n) =>\n Effect.flatMap(capturedMapping(source, \"assertion\", configuration), (mapping) =>\n Effect.try({\n try: () => {\n const m = mapping as any;\n\n for (const name of [m.write.credential.name, m.write.credential.createdAt])\n invariant(getTableColumns(m.read.credential.table)[name] !== undefined);\n for (const name of m.write.policy.subjectColumns)\n invariant(getTableColumns(m.read.subject.table)[name] !== undefined);\n invariant(\n m.write.credential.activeStatus !== m.write.credential.removedStatus &&\n m.write.authority.activeStatus !== m.write.authority.removedStatus &&\n m.write.credentialOwnership.ownedState !== m.write.credentialOwnership.removedState,\n );\n invariant(\n m.read.credential.isActiveStatus(m.write.credential.activeStatus) &&\n !m.read.credential.isActiveStatus(m.write.credential.removedStatus) &&\n m.read.authority.isActiveStatus(m.write.authority.activeStatus) &&\n !m.read.authority.isActiveStatus(m.write.authority.removedStatus) &&\n m.read.credentialOwnership.isOwnedState(m.write.credentialOwnership.ownedState) &&\n !m.read.credentialOwnership.isOwnedState(m.write.credentialOwnership.removedState) &&\n m.read.handleOwnership.isOwnedState(m.write.handleOwnership.ownedState),\n );\n if (registration) {\n descriptor(m.intent);\n descriptor(m.handle);\n invariant(m.handle.table === m.read.handleOwnership.table);\n invariant(\n m.handle.reservedState !== m.write.handleOwnership.ownedState &&\n m.intent.pendingState !== m.intent.acceptedState &&\n m.intent.rejectedState !== m.intent.pendingState &&\n m.intent.rejectedState !== m.intent.acceptedState,\n );\n invariant(\n m.registrationConstraints.intentFlow.join(\"/\") === \"moduleId/flowId\" &&\n m.registrationConstraints.intentCommand.join(\"/\") === \"moduleId/commandId\" &&\n m.registrationConstraints.handle.join(\"/\") === \"handleKey\",\n );\n } else {\n descriptor(m.command);\n invariant(m.managementConstraints.command.join(\"/\") === \"moduleId/commandId\");\n snapshotPasskeySync(SessionInvalidationWindow, m.invalidation.window);\n invariant(\n m.invalidation.window.trigger === \"credential-change\" &&\n m.invalidation.mutations.length <= 32,\n );\n }\n\n return mapping;\n },\n catch: () => PasskeyConfigurationError.make({}),\n }),\n );\n\nconst managementServices = (\n mapping: any,\n execute: PasskeyExecution,\n configuration: PasskeyTargetConfiguration,\n): PasskeyManagementServices => ({\n passkeyManagementPersistence: managementService(mapping, execute),\n passkeyPersistence: makePasskeyPersistence(mapping, execute, configuration, false, true),\n});\n\nconst registrationServices = <R>(\n mapping: any,\n execute: PasskeyExecution,\n configuration: PasskeyTargetConfiguration,\n): PasskeyRegistrationServices<R> => ({\n passkeyRegistrationAuthority: registrationService<R>(mapping, execute),\n passkeyPersistence: makePasskeyPersistence(mapping, execute, configuration, true),\n});\n\nexport const makeTargetPasskeyManagement = <M, RSetup>(\n database: any,\n source: PasskeyMappingSource<M, RSetup>,\n configuration: PasskeyTargetConfiguration,\n) =>\n Effect.gen(function* () {\n const mapping = yield* writeMapping(source, configuration, false);\n const hooks = yield* LifecycleHooks;\n\n return managementServices(\n mapping,\n makePasskeyExecution(database, hooks, configuration),\n configuration,\n );\n });\n\nexport const makeTargetPasskeyRegistrationWriter = <M, R, RSetup>(\n database: any,\n source: PasskeyMappingSource<M, RSetup>,\n configuration: PasskeyTargetConfiguration,\n) =>\n Effect.gen(function* () {\n const mapping = yield* writeMapping(source, configuration, true);\n const hooks = yield* LifecycleHooks;\n\n return registrationServices<R>(\n mapping,\n makePasskeyExecution(database, hooks, configuration),\n configuration,\n );\n });\n\nexport const coordinateTargetPasskeyManagement = <M, RSetup, Transaction, A, E, R>(\n database: any,\n source: PasskeyMappingSource<M, RSetup>,\n configuration: PasskeyTargetConfiguration,\n body: (\n transaction: Transaction,\n services: PasskeyManagementServices,\n append: (statement: Statement<unknown>) => void,\n ) => Effect.Effect<A, E, R>,\n): Effect.Effect<A, PasskeyCoordinatorError<E>, R | RSetup | LifecycleHooks> =>\n Effect.gen(function* () {\n const mapping = yield* writeMapping(source, configuration, false);\n const hooks = yield* LifecycleHooks;\n\n return yield* coordinateTransactionOwner(\n database,\n CurrentPasskeyTransaction,\n configuration,\n Effect.void,\n unavailable,\n nonce,\n (execute) =>\n managementServices(\n mapping,\n {\n ...execute,\n run: (operation, mutation) =>\n execute.run(operation, mutation).pipe(Effect.provideService(LifecycleHooks, hooks)),\n },\n configuration,\n ),\n body,\n ).pipe(Effect.provideService(LifecycleHooks, hooks));\n });\n\nexport const coordinateTargetPasskeyRegistrationWriter = <M, Value, RSetup, Transaction, A, E, R>(\n database: any,\n source: PasskeyMappingSource<M, RSetup>,\n configuration: PasskeyTargetConfiguration,\n body: (\n transaction: Transaction,\n services: PasskeyRegistrationServices<Value>,\n append: (statement: Statement<unknown>) => void,\n ) => Effect.Effect<A, E, R>,\n): Effect.Effect<A, PasskeyCoordinatorError<E>, R | RSetup | LifecycleHooks> =>\n Effect.gen(function* () {\n const mapping = yield* writeMapping(source, configuration, true);\n const hooks = yield* LifecycleHooks;\n\n return yield* coordinateTransactionOwner(\n database,\n CurrentPasskeyTransaction,\n configuration,\n Effect.void,\n unavailable,\n nonce,\n (execute) =>\n registrationServices<Value>(\n mapping,\n {\n ...execute,\n run: (operation, mutation) =>\n execute.run(operation, mutation).pipe(Effect.provideService(LifecycleHooks, hooks)),\n },\n configuration,\n ),\n body,\n ).pipe(Effect.provideService(LifecycleHooks, hooks));\n });\n"],"mappings":";;;;;;;;;;;;;;;;;AA6CA,MAAa,qCACX,aAEA,MAAM,OACJ,8BACA,OAAO,IAAI,WAAW,UAAU,MAAM,4BAA4B,CACpE;AAEF,MAAM,cAAc,OAAO,OAAO;CAChC,UAAUA;CACV,QAAQ;CACR,YAAY;CACZ,eAAeC;AACjB,CAAC;AAED,MAAM,iBAAiB,OAAO,OAAO;CACnC,OAAOC;CACP,UAAUC;CACV,eAAeF;CACf,YAAY;CACZ,cAAc;CACd,WAAWG;AACb,CAAC;AAED,MAAM,WAAW;CAAE,UAAUC;CAAmB,WAAW;AAAU;AAErE,MAAM,WAAW;CACf,GAAG;CACH,WAAWC;CACX,cAAcC;AAChB;AAEA,MAAM,YAAY;CAAE,WAAWH;CAAkB,sBAAsBA;AAAiB;AAExF,MAAM,oBAAoB;CACxB,MAAM,OAAO,OAAO;EAClB,GAAG;EACH,QAAQ,OAAO,YAAYG,mBAAqB;EAChD,OAAO,OAAO,IAAI,MAAM,OAAO,UAAU;GAAE,SAAS;GAAG,SAAS;EAAG,CAAC,CAAC;CACvE,CAAC;CACD,iBAAiB;CACjB,oBAAoB;CACpB,eAAe,OAAO,OAAO,QAAQ;CACrC,QAAQ,OAAO,OAAO;EAAE,GAAG;EAAU,GAAG;EAAW,MAAMC;CAAe,CAAC;CACzE,QAAQ,OAAO,OAAO;EACpB,UAAUH;EACV,WAAWC;EACX,YAAYG;EACZ,eAAeR;EACf,YAAY;EACZ,cAAc;EACd,GAAG;CACL,CAAC;AACH;AAEA,MAAM,WAAW,OAAO,MAAM,CAC5B,OAAO,aAAa,YAAY,EAAE,YAAYS,yBAA2B,CAAC,GAC1E,OAAO,aAAa,YAAY,CAAC,CAAC,CACpC,CAAC;AAED,MAAM,UAAU,OAAO,MAAM,CAC3B,OAAO,aAAa,WAAW;CAC7B,YAAYA;CACZ,UAAU,OAAO;AACnB,CAAC,GACD,OAAO,aAAa,YAAY,CAAC,CAAC,CACpC,CAAC;AAED,MAAM,UAAU,OAAO,MAAM;CAC3B,OAAO,aAAa,WAAW,EAAE,QAAQC,eAAiB,CAAC;CAC3D,OAAO,aAAa,YAAY,CAAC,CAAC;CAClC,OAAO,aAAa,oBAAoB,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,uBAAuB,OAAO,MAAM,CACxCC,2BACA,OAAO,aAAa,YAAY,CAAC,CAAC,CACpC,CAAC;AAED,MAAM,qBACJ,SACA,YAEA,gBACE;CACE,OAAO,UAAU,QAAQ,IAAI,qBAAqB,gBAAgB,SAAS,KAAK,CAAC,GAAG,KAAK;CACzF,gBAAgB,UACd,QAAQ,IAAI,qBAAqB,cAAc,SAAS,KAAK,CAAC,GAAG,KAAK;CACxE,kBAAkB,OAAO,YACvB,QAAQ,IACN,OAAO,IAAI,aAAa;EACtB,OAAO,OAAO,aACZ,oBAAoBC,sBAAwB,OAAO,gBAAgB,SAAS,KAAK,CAAC,GAClF,OACF;CACF,CAAC,CACH;CACF,qBAAqB,OAAO,YAC1B,QAAQ,IACN,OAAO,IAAI,aAAa;EACtB,OAAO,OAAO,aACZ,oBAAoB,UAAU,OAAO,mBAAmB,SAAS,KAAK,CAAC,GACvE,OACF;CACF,CAAC,CACH;CACF,SAAS,OAAO,YACd,QAAQ,IACN,OAAO,IAAI,aAAa;EACtB,OAAO,OAAO,aACZ,oBAAoB,SAAS,OAAO,iBAAiB,SAAS,KAAK,CAAC,GACpE,OACF;CACF,CAAC,CACH;CACF,SAAS,OAAO,YACd,QAAQ,IACN,OAAO,IAAI,aAAa;EACtB,OAAO,OAAO,aACZ,oBAAoB,SAAS,OAAO,iBAAiB,SAAS,KAAK,CAAC,GACpE,OACF;CACF,CAAC,CACH;AACJ,GACA,mBACA,OACF;AAEF,MAAM,uBACJ,SACA,YAEA,gBACE;CACE,UAAU,iBACR,QAAQ,IAAI,qBAAqB,oBAAoB,SAAS,YAAY,CAAC,GAAG,KAAK;CACrF,oBAAoB,OAAO,YACzB,QAAQ,IACN,OAAO,IAAI,aAAa;EACtB,OAAO,OAAO,aACZ,oBAAoBA,sBAAwB,OAAO,kBAAkB,SAAS,KAAK,CAAC,GACpF,OACF;CACF,CAAC,CACH;CACF,uBAAuB,OAAO,YAC5B,QAAQ,IACN,OAAO,IAAI,aAAa;EACtB,OAAO,OAAO,aACZ,oBACE,sBACA,OAAO,qBAAqB,SAAS,KAAK,CAC5C,GACA,OACF;CACF,CAAC,CACH;AACJ,GACA;CACE,SAAS,OAAO,OAAO,QAAQ,aAAa,MAAM;CAClD,mBAAmB,OAAO,OAAO;EAC/B,UAAUb;EACV,QAAQ;EACR,cAAc,OAAO,OAAO,QAAQ,aAAa,MAAM;CACzD,CAAC;CACD,sBAAsB,OAAO,OAAO;EAClC,OAAOE;EACP,UAAUC;EACV,WAAWC;CACb,CAAC;AACH,GACA,OACF;AAEF,MAAM,cAAc,UAAe;CACjC,MAAM,UAAU,gBAAgB,MAAM,KAAK;CAE3C,KAAK,MAAM,CAAC,OAAO,SAAS,OAAO,QAAQ,KAAK,GAC9C,IAAI,OAAO,SAAS,YAAY,CAAC,MAAM,SAAS,OAAO,GACrD,UAAU,QAAQ,UAAU,KAAA,CAAS;AAC3C;AAEA,MAAM,gBACJ,QACA,eACA,iBAEA,OAAO,QAAQ,gBAAgB,QAAQ,aAAa,aAAa,IAAI,YACnE,OAAO,IAAI;CACT,WAAW;EACT,MAAM,IAAI;EAEV,KAAK,MAAM,QAAQ,CAAC,EAAE,MAAM,WAAW,MAAM,EAAE,MAAM,WAAW,SAAS,GACvE,UAAU,gBAAgB,EAAE,KAAK,WAAW,KAAK,CAAC,CAAC,UAAU,KAAA,CAAS;EACxE,KAAK,MAAM,QAAQ,EAAE,MAAM,OAAO,gBAChC,UAAU,gBAAgB,EAAE,KAAK,QAAQ,KAAK,CAAC,CAAC,UAAU,KAAA,CAAS;EACrE,UACE,EAAE,MAAM,WAAW,iBAAiB,EAAE,MAAM,WAAW,iBACrD,EAAE,MAAM,UAAU,iBAAiB,EAAE,MAAM,UAAU,iBACrD,EAAE,MAAM,oBAAoB,eAAe,EAAE,MAAM,oBAAoB,YAC3E;EACA,UACE,EAAE,KAAK,WAAW,eAAe,EAAE,MAAM,WAAW,YAAY,KAC9D,CAAC,EAAE,KAAK,WAAW,eAAe,EAAE,MAAM,WAAW,aAAa,KAClE,EAAE,KAAK,UAAU,eAAe,EAAE,MAAM,UAAU,YAAY,KAC9D,CAAC,EAAE,KAAK,UAAU,eAAe,EAAE,MAAM,UAAU,aAAa,KAChE,EAAE,KAAK,oBAAoB,aAAa,EAAE,MAAM,oBAAoB,UAAU,KAC9E,CAAC,EAAE,KAAK,oBAAoB,aAAa,EAAE,MAAM,oBAAoB,YAAY,KACjF,EAAE,KAAK,gBAAgB,aAAa,EAAE,MAAM,gBAAgB,UAAU,CAC1E;EACA,IAAI,cAAc;GAChB,WAAW,EAAE,MAAM;GACnB,WAAW,EAAE,MAAM;GACnB,UAAU,EAAE,OAAO,UAAU,EAAE,KAAK,gBAAgB,KAAK;GACzD,UACE,EAAE,OAAO,kBAAkB,EAAE,MAAM,gBAAgB,cACjD,EAAE,OAAO,iBAAiB,EAAE,OAAO,iBACnC,EAAE,OAAO,kBAAkB,EAAE,OAAO,gBACpC,EAAE,OAAO,kBAAkB,EAAE,OAAO,aACxC;GACA,UACE,EAAE,wBAAwB,WAAW,KAAK,GAAG,MAAM,qBACjD,EAAE,wBAAwB,cAAc,KAAK,GAAG,MAAM,wBACtD,EAAE,wBAAwB,OAAO,KAAK,GAAG,MAAM,WACnD;EACF,OAAO;GACL,WAAW,EAAE,OAAO;GACpB,UAAU,EAAE,sBAAsB,QAAQ,KAAK,GAAG,MAAM,oBAAoB;GAC5E,oBAAoB,2BAA2B,EAAE,aAAa,MAAM;GACpE,UACE,EAAE,aAAa,OAAO,YAAY,uBAChC,EAAE,aAAa,UAAU,UAAU,EACvC;EACF;EAEA,OAAO;CACT;CACA,aAAa,0BAA0B,KAAK,CAAC,CAAC;AAChD,CAAC,CACH;AAEF,MAAM,sBACJ,SACA,SACA,mBAC+B;CAC/B,8BAA8B,kBAAkB,SAAS,OAAO;CAChE,oBAAoB,uBAAuB,SAAS,SAAS,eAAe,OAAO,IAAI;AACzF;AAEA,MAAM,wBACJ,SACA,SACA,mBACoC;CACpC,8BAA8B,oBAAuB,SAAS,OAAO;CACrE,oBAAoB,uBAAuB,SAAS,SAAS,eAAe,IAAI;AAClF;AAEA,MAAa,+BACX,UACA,QACA,kBAEA,OAAO,IAAI,aAAa;CACtB,MAAM,UAAU,OAAO,aAAa,QAAQ,eAAe,KAAK;CAChE,MAAM,QAAQ,OAAO;CAErB,OAAO,mBACL,SACA,qBAAqB,UAAU,OAAO,aAAa,GACnD,aACF;AACF,CAAC;AAEH,MAAa,uCACX,UACA,QACA,kBAEA,OAAO,IAAI,aAAa;CACtB,MAAM,UAAU,OAAO,aAAa,QAAQ,eAAe,IAAI;CAC/D,MAAM,QAAQ,OAAO;CAErB,OAAO,qBACL,SACA,qBAAqB,UAAU,OAAO,aAAa,GACnD,aACF;AACF,CAAC;AAEH,MAAa,qCACX,UACA,QACA,eACA,SAMA,OAAO,IAAI,aAAa;CACtB,MAAM,UAAU,OAAO,aAAa,QAAQ,eAAe,KAAK;CAChE,MAAM,QAAQ,OAAO;CAErB,OAAO,OAAO,2BACZ,UACA,2BACA,eACA,OAAO,MACP,aACA,QACC,YACC,mBACE,SACA;EACE,GAAG;EACH,MAAM,WAAW,aACf,QAAQ,IAAI,WAAW,QAAQ,CAAC,CAAC,KAAK,OAAO,eAAe,gBAAgB,KAAK,CAAC;CACtF,GACA,aACF,GACF,IACF,CAAC,CAAC,KAAK,OAAO,eAAe,gBAAgB,KAAK,CAAC;AACrD,CAAC;AAEH,MAAa,6CACX,UACA,QACA,eACA,SAMA,OAAO,IAAI,aAAa;CACtB,MAAM,UAAU,OAAO,aAAa,QAAQ,eAAe,IAAI;CAC/D,MAAM,QAAQ,OAAO;CAErB,OAAO,OAAO,2BACZ,UACA,2BACA,eACA,OAAO,MACP,aACA,QACC,YACC,qBACE,SACA;EACE,GAAG;EACH,MAAM,WAAW,aACf,QAAQ,IAAI,WAAW,QAAQ,CAAC,CAAC,KAAK,OAAO,eAAe,gBAAgB,KAAK,CAAC;CACtF,GACA,aACF,GACF,IACF,CAAC,CAAC,KAAK,OAAO,eAAe,gBAAgB,KAAK,CAAC;AACrD,CAAC"}
@@ -0,0 +1,330 @@
1
+ import { AuthenticationRequirement, SecurityRevision } from "../sessions/models.mjs";
2
+ import { LoginIdentifier, RecoveryReference } from "../identity/models.mjs";
3
+ import { DrizzleMappingError, SubjectIdCodec } from "./model.mjs";
4
+ import { PasswordAction, PasswordAttemptId, PasswordCredentialSnapshot, PasswordReplacement } from "../password/methods/models.mjs";
5
+ import { EncodedPasswordHash } from "../password/models.mjs";
6
+ import { PasswordRegistrationDecision } from "../password/methods/module.mjs";
7
+ import { Effect, Redacted } from "effect";
8
+ import { InferInsertModel, InferSelectModel, SQL, Table } from "drizzle-orm";
9
+ //#region src/drizzle/password-model.d.ts
10
+ type ColumnKey<T extends Table> = Extract<keyof T["_"]["columns"], string>;
11
+ type PasswordAttemptAction = "sign-in" | "change";
12
+ type PasswordAttemptState = "pending" | "verified" | "rejected";
13
+ type PasswordRateScopeKind = "action" | "identifier" | "subject";
14
+ interface PasswordScopeKeys {
15
+ readonly action: string;
16
+ readonly identifier: string;
17
+ readonly subject?: string;
18
+ }
19
+ interface PasswordSubjectTable<Subject extends Table, _NativeSubjectId> {
20
+ readonly table: Subject;
21
+ readonly id: ColumnKey<Subject>;
22
+ readonly status: ColumnKey<Subject>;
23
+ readonly securityRevision: ColumnKey<Subject>;
24
+ readonly isActiveStatus: (value: unknown) => boolean;
25
+ readonly decodeRequirement: (row: InferSelectModel<Subject>) => Effect.Effect<AuthenticationRequirement, DrizzleMappingError>;
26
+ /** Current policy for this exact credential mutation, decoded under the subject lock. */
27
+ readonly decodeActionRequirement: (row: InferSelectModel<Subject>, action: PasswordAction) => Effect.Effect<AuthenticationRequirement, DrizzleMappingError>;
28
+ readonly nextSecurityRevision?: (current: SecurityRevision) => Effect.Effect<SecurityRevision, DrizzleMappingError>;
29
+ readonly nextSecurityRevisionSync?: (current: SecurityRevision) => SecurityRevision;
30
+ /** Required only by D1 conditional statements. */
31
+ readonly d1ActiveStatusValue?: unknown;
32
+ }
33
+ interface PasswordIdentifierTable<Identifier extends Table, NativeSubjectId> {
34
+ readonly table: Identifier;
35
+ readonly namespace: ColumnKey<Identifier>;
36
+ readonly value: ColumnKey<Identifier>;
37
+ readonly subjectId: ColumnKey<Identifier>;
38
+ readonly verifiedAt: ColumnKey<Identifier>;
39
+ readonly bindingRevision: ColumnKey<Identifier>;
40
+ /** Consumer-owned current login/recovery eligibility, including row status. */
41
+ readonly isCurrent: (row: InferSelectModel<Identifier>) => boolean;
42
+ /** Required by D1 so current ownership/eligibility is rechecked in the batch. */
43
+ readonly d1CurrentCondition?: (input: {
44
+ readonly identifier: LoginIdentifier;
45
+ readonly nativeSubjectId: NativeSubjectId;
46
+ }) => SQL;
47
+ readonly encodeInitialInsert: (identifier: LoginIdentifier, subjectId: NativeSubjectId, bindingRevision: SecurityRevision) => InferInsertModel<Identifier>;
48
+ }
49
+ interface PasswordAuthorityCredentialTable<Credential extends Table, NativeSubjectId> {
50
+ readonly table: Credential;
51
+ readonly subjectId: ColumnKey<Credential>;
52
+ readonly credentialId: ColumnKey<Credential>;
53
+ readonly revision: ColumnKey<Credential>;
54
+ readonly status?: ColumnKey<Credential>;
55
+ readonly isActiveStatus?: (value: unknown) => boolean;
56
+ readonly d1ActiveStatusValue?: unknown;
57
+ readonly encodeInsert: (input: {
58
+ readonly subjectId: NativeSubjectId;
59
+ readonly credentialId: string;
60
+ readonly revision: SecurityRevision;
61
+ }) => InferInsertModel<Credential>;
62
+ readonly encodeRevision: (revision: SecurityRevision) => Partial<InferInsertModel<Credential>>;
63
+ }
64
+ interface PasswordCredentialTable<Subject extends Table, Identifier extends Table, Credential extends Table, NativeSubjectId> {
65
+ readonly table: Credential;
66
+ readonly moduleId: ColumnKey<Credential>;
67
+ readonly subjectId: ColumnKey<Credential>;
68
+ readonly credentialId: ColumnKey<Credential>;
69
+ readonly credentialRevision: ColumnKey<Credential>;
70
+ readonly verifierVersion: ColumnKey<Credential>;
71
+ readonly verifier: ColumnKey<Credential>;
72
+ readonly normalization: ColumnKey<Credential>;
73
+ readonly encodeInsert: (input: {
74
+ readonly moduleId: string;
75
+ readonly subjectId: NativeSubjectId;
76
+ readonly credentialId: string;
77
+ readonly credentialRevision: SecurityRevision;
78
+ readonly verifierVersion: SecurityRevision;
79
+ readonly replacement: PasswordReplacement;
80
+ }) => InferInsertModel<Credential>;
81
+ readonly encodeVerifier: (verifier: Redacted.Redacted<EncodedPasswordHash>, verifierVersion: SecurityRevision) => Partial<InferInsertModel<Credential>>;
82
+ readonly encodeReplacement: (input: {
83
+ readonly replacement: PasswordReplacement;
84
+ readonly credentialRevision: SecurityRevision;
85
+ readonly verifierVersion: SecurityRevision;
86
+ }) => Partial<InferInsertModel<Credential>>;
87
+ readonly decode: (input: {
88
+ readonly moduleId: string;
89
+ readonly subject: InferSelectModel<Subject>;
90
+ readonly identifier: InferSelectModel<Identifier>;
91
+ readonly credential: InferSelectModel<Credential>;
92
+ }) => Effect.Effect<PasswordCredentialSnapshot, DrizzleMappingError>;
93
+ }
94
+ interface PasswordAttemptRecord {
95
+ readonly moduleId: string;
96
+ readonly action: PasswordAttemptAction;
97
+ readonly attemptId: PasswordAttemptId;
98
+ readonly identifier: LoginIdentifier;
99
+ readonly subjectId?: string;
100
+ readonly credentialId?: string;
101
+ readonly securityRevision?: SecurityRevision;
102
+ readonly credentialRevision?: SecurityRevision;
103
+ readonly verifierVersion?: SecurityRevision;
104
+ readonly identifierBindingRevision?: SecurityRevision;
105
+ readonly admittedAtMillis: number;
106
+ readonly deadlineMillis: number;
107
+ readonly retentionUntilMillis: number;
108
+ }
109
+ interface PasswordAttemptTable<Attempt extends Table, NativeSubjectId> {
110
+ readonly table: Attempt;
111
+ readonly moduleId: ColumnKey<Attempt>;
112
+ readonly action: ColumnKey<Attempt>;
113
+ readonly attemptId: ColumnKey<Attempt>;
114
+ readonly identifierNamespace: ColumnKey<Attempt>;
115
+ readonly identifierValue: ColumnKey<Attempt>;
116
+ readonly subjectId: ColumnKey<Attempt>;
117
+ readonly credentialId: ColumnKey<Attempt>;
118
+ readonly securityRevision: ColumnKey<Attempt>;
119
+ readonly credentialRevision: ColumnKey<Attempt>;
120
+ readonly verifierVersion: ColumnKey<Attempt>;
121
+ readonly identifierBindingRevision: ColumnKey<Attempt>;
122
+ readonly admittedAt: ColumnKey<Attempt>;
123
+ readonly deadline: ColumnKey<Attempt>;
124
+ readonly retentionUntil: ColumnKey<Attempt>;
125
+ readonly state: ColumnKey<Attempt>;
126
+ readonly encodeInsert: (record: PasswordAttemptRecord, input: {
127
+ readonly nativeSubjectId?: NativeSubjectId;
128
+ readonly state: "pending";
129
+ }) => InferInsertModel<Attempt>;
130
+ }
131
+ interface PasswordRateScopeTable<RateScope extends Table> {
132
+ readonly table: RateScope;
133
+ readonly moduleId: ColumnKey<RateScope>;
134
+ readonly action: ColumnKey<RateScope>;
135
+ readonly scopeKind: ColumnKey<RateScope>;
136
+ readonly scopeKey: ColumnKey<RateScope>;
137
+ readonly encodeInsert: (input: {
138
+ readonly moduleId: string;
139
+ readonly action: PasswordAttemptAction;
140
+ readonly scopeKind: PasswordRateScopeKind;
141
+ readonly scopeKey: string;
142
+ }) => InferInsertModel<RateScope>;
143
+ }
144
+ interface PasswordChargeTable<Charge extends Table> {
145
+ readonly table: Charge;
146
+ readonly moduleId: ColumnKey<Charge>;
147
+ readonly action: ColumnKey<Charge>;
148
+ readonly scopeKind: ColumnKey<Charge>;
149
+ readonly scopeKey: ColumnKey<Charge>;
150
+ readonly attemptId: ColumnKey<Charge>;
151
+ readonly occurredAt: ColumnKey<Charge>;
152
+ readonly retentionUntil: ColumnKey<Charge>;
153
+ readonly encodeInsert: (input: {
154
+ readonly moduleId: string;
155
+ readonly action: PasswordAttemptAction;
156
+ readonly scopeKind: PasswordRateScopeKind;
157
+ readonly scopeKey: string;
158
+ readonly attemptId: PasswordAttemptId;
159
+ readonly occurredAtMillis: number;
160
+ readonly retentionUntilMillis: number;
161
+ }) => InferInsertModel<Charge>;
162
+ }
163
+ interface PasswordCommandTable<Command extends Table> {
164
+ readonly table: Command;
165
+ readonly moduleId: ColumnKey<Command>;
166
+ readonly commandId: ColumnKey<Command>;
167
+ readonly action: ColumnKey<Command>;
168
+ readonly bindingDigest: ColumnKey<Command>;
169
+ readonly decision: ColumnKey<Command>;
170
+ readonly retentionUntil: ColumnKey<Command>;
171
+ readonly encodeInsert: (input: {
172
+ readonly moduleId: string;
173
+ readonly commandId: string;
174
+ readonly action: string;
175
+ readonly bindingDigest: string;
176
+ readonly decision: "changed";
177
+ readonly retentionUntilMillis: number;
178
+ }) => InferInsertModel<Command>;
179
+ }
180
+ interface RequiredPasswordConstraints {
181
+ readonly identifier: "unique(identifier.namespace,identifier.value)";
182
+ readonly authorityCredential: "unique(authorityCredential.subjectId,authorityCredential.credentialId)";
183
+ readonly credentialSubject: "unique(credential.moduleId,credential.subjectId)";
184
+ readonly credentialId: "unique(credential.moduleId,credential.credentialId)";
185
+ readonly attempt: "unique(attempt.moduleId,attempt.attemptId)";
186
+ readonly rateScope: "unique(rateScope.moduleId,rateScope.action,rateScope.scopeKind,rateScope.scopeKey)";
187
+ readonly charge: "unique(charge.moduleId,charge.action,charge.scopeKind,charge.scopeKey,charge.attemptId)";
188
+ readonly command: "unique(command.moduleId,command.commandId)";
189
+ }
190
+ declare const requiredPasswordConstraints: RequiredPasswordConstraints;
191
+ interface PasswordConstraintClassifier {
192
+ /** Match only the mapped command uniqueness constraint. */
193
+ readonly isCommandConflict: (cause: unknown) => boolean;
194
+ /** Match only the mapped rate-scope uniqueness constraint. */
195
+ readonly isRateScopeConflict: (cause: unknown) => boolean;
196
+ }
197
+ interface PasswordD1Clock {
198
+ readonly engineNow: SQL;
199
+ readonly engineNowMillis: SQL;
200
+ readonly engineInstantMinus: (millis: number) => SQL;
201
+ readonly engineInstantPlus: (millis: number) => SQL;
202
+ }
203
+ interface PasswordPersistenceMapping<Subject extends Table, Identifier extends Table, Credential extends Table, AuthorityCredential extends Table, Attempt extends Table, RateScope extends Table, Charge extends Table, Command extends Table, NativeSubjectId> extends PasswordConstraintClassifier {
204
+ readonly subject: PasswordSubjectTable<Subject, NativeSubjectId>;
205
+ readonly identifier: PasswordIdentifierTable<Identifier, NativeSubjectId>;
206
+ readonly credential: PasswordCredentialTable<Subject, Identifier, Credential, NativeSubjectId>;
207
+ /** Every factor revision named by action evidence, including non-password factors. */
208
+ readonly authorityCredential: PasswordAuthorityCredentialTable<AuthorityCredential, NativeSubjectId>;
209
+ readonly attempt: PasswordAttemptTable<Attempt, NativeSubjectId>;
210
+ readonly rateScope: PasswordRateScopeTable<RateScope>;
211
+ readonly charge: PasswordChargeTable<Charge>;
212
+ readonly command: PasswordCommandTable<Command>;
213
+ readonly subjectId: SubjectIdCodec<NativeSubjectId>;
214
+ readonly constraints: RequiredPasswordConstraints;
215
+ readonly scopeKeys: (input: {
216
+ readonly moduleId: string;
217
+ readonly action: PasswordAttemptAction;
218
+ readonly identifier: LoginIdentifier;
219
+ readonly subjectId?: string;
220
+ }) => PasswordScopeKeys;
221
+ readonly encodeInstant: (epochMillis: number) => unknown;
222
+ readonly decodeInstant: (native: unknown) => Effect.Effect<number, DrizzleMappingError>;
223
+ readonly allocateAttemptId?: Effect.Effect<PasswordAttemptId, DrizzleMappingError>;
224
+ readonly allocateAttemptIdSync?: () => PasswordAttemptId;
225
+ readonly allocateCredentialId?: Effect.Effect<string, DrizzleMappingError>;
226
+ readonly allocateCredentialIdSync?: () => string;
227
+ readonly allocateRevision?: Effect.Effect<SecurityRevision, DrizzleMappingError>;
228
+ readonly allocateRevisionSync?: () => SecurityRevision;
229
+ readonly commandRetentionMillis: number;
230
+ /** All semantic replacements still bump subject revision. This flag only declares bearer invalidation latency. */
231
+ readonly sessionInvalidation: "same-authority-immediate" | "original-absolute-expiry";
232
+ readonly d1?: PasswordD1Clock;
233
+ }
234
+ type D1PasswordPersistenceMapping<Subject extends Table, Identifier extends Table, Credential extends Table, AuthorityCredential extends Table, Attempt extends Table, RateScope extends Table, Charge extends Table, Command extends Table, NativeSubjectId> = PasswordPersistenceMapping<Subject, Identifier, Credential, AuthorityCredential, Attempt, RateScope, Charge, Command, NativeSubjectId> & {
235
+ readonly d1: PasswordD1Clock;
236
+ readonly subject: PasswordSubjectTable<Subject, NativeSubjectId> & {
237
+ readonly d1ActiveStatusValue: unknown;
238
+ };
239
+ readonly identifier: PasswordIdentifierTable<Identifier, NativeSubjectId> & {
240
+ readonly d1CurrentCondition: (input: {
241
+ readonly identifier: LoginIdentifier;
242
+ readonly nativeSubjectId: NativeSubjectId;
243
+ }) => SQL;
244
+ };
245
+ readonly authorityCredential: PasswordAuthorityCredentialTable<AuthorityCredential, NativeSubjectId> & {
246
+ readonly d1ActiveStatusValue: unknown;
247
+ };
248
+ };
249
+ type PasswordRegistrationState = "pending" | "created";
250
+ interface PasswordRegistrationIntent<Registration> {
251
+ readonly moduleId: string;
252
+ readonly requestId: string;
253
+ readonly identifier: LoginIdentifier;
254
+ readonly registration: Registration;
255
+ readonly replacement: PasswordReplacement;
256
+ }
257
+ interface PasswordRegistrationTable<Registration, Request extends Table, NativeSubjectId> {
258
+ readonly table: Request;
259
+ readonly moduleId: ColumnKey<Request>;
260
+ readonly requestId: ColumnKey<Request>;
261
+ readonly state: ColumnKey<Request>;
262
+ readonly subjectId: ColumnKey<Request>;
263
+ readonly recoveryReference: ColumnKey<Request>;
264
+ readonly encodeInsert: (input: PasswordRegistrationIntent<Registration>, state: {
265
+ readonly state: PasswordRegistrationState;
266
+ readonly nativeSubjectId?: NativeSubjectId;
267
+ readonly recoveryReference?: typeof RecoveryReference.Type;
268
+ }) => InferInsertModel<Request>;
269
+ /** Replay projection must never expose a stored subject or decode protected intent. */
270
+ readonly decodeReplay: (row: InferSelectModel<Request>) => Effect.Effect<Exclude<PasswordRegistrationDecision, {
271
+ readonly _tag: "Created";
272
+ }>, DrizzleMappingError>;
273
+ }
274
+ interface PasswordRegistrationProvisioning<Registration, Subject extends Table, NativeSubjectId> {
275
+ readonly encodeSubjectInsert: (input: PasswordRegistrationIntent<Registration>, values: {
276
+ readonly nativeSubjectId: NativeSubjectId | undefined;
277
+ readonly securityRevision: SecurityRevision;
278
+ }) => InferInsertModel<Subject>;
279
+ readonly allocateSubjectId?: Effect.Effect<NativeSubjectId, DrizzleMappingError>;
280
+ readonly allocateSubjectIdSync?: () => NativeSubjectId;
281
+ /** Interactive targets use this for database-generated/autoincrement keys. */
282
+ readonly decodeGeneratedId?: (rows: ReadonlyArray<unknown>) => Effect.Effect<NativeSubjectId, DrizzleMappingError>;
283
+ }
284
+ interface RequiredPasswordRegistrationConstraints {
285
+ readonly request: "unique(registration.moduleId,registration.requestId)";
286
+ readonly recoveryReference: "unique(registration.recoveryReference)";
287
+ readonly identifier: "unique(identifier.namespace,identifier.value)";
288
+ readonly credentialSubject: "unique(credential.moduleId,credential.subjectId)";
289
+ readonly authorityCredential: "unique(authorityCredential.subjectId,authorityCredential.credentialId)";
290
+ }
291
+ declare const requiredPasswordRegistrationConstraints: RequiredPasswordRegistrationConstraints;
292
+ interface PasswordRegistrationConstraintClassifier {
293
+ readonly isRequestConflict: (cause: unknown) => boolean;
294
+ readonly isIdentifierConflict: (cause: unknown) => boolean;
295
+ readonly isCredentialConflict: (cause: unknown) => boolean;
296
+ }
297
+ type PasswordRegistrationMapping<Registration, Subject extends Table, Identifier extends Table, Credential extends Table, AuthorityCredential extends Table, Request extends Table, NativeSubjectId> = PasswordRegistrationConstraintClassifier & {
298
+ readonly subject: PasswordSubjectTable<Subject, NativeSubjectId>;
299
+ readonly identifier: PasswordIdentifierTable<Identifier, NativeSubjectId>;
300
+ readonly credential: PasswordCredentialTable<Subject, Identifier, Credential, NativeSubjectId>;
301
+ readonly authorityCredential: PasswordAuthorityCredentialTable<AuthorityCredential, NativeSubjectId>;
302
+ readonly registration: PasswordRegistrationTable<Registration, Request, NativeSubjectId>;
303
+ readonly subjectId: SubjectIdCodec<NativeSubjectId>;
304
+ readonly constraints: RequiredPasswordRegistrationConstraints;
305
+ readonly allocateCredentialId?: Effect.Effect<string, DrizzleMappingError>;
306
+ readonly allocateCredentialIdSync?: () => string;
307
+ readonly allocateRevision?: Effect.Effect<SecurityRevision, DrizzleMappingError>;
308
+ readonly allocateRevisionSync?: () => SecurityRevision;
309
+ } & ({
310
+ readonly mode: "atomic";
311
+ readonly provisioning: PasswordRegistrationProvisioning<Registration, Subject, NativeSubjectId> & ({
312
+ readonly idMode: "allocated";
313
+ readonly allocateSubjectId: Effect.Effect<NativeSubjectId, DrizzleMappingError>;
314
+ } | {
315
+ readonly idMode: "synchronous";
316
+ readonly allocateSubjectIdSync: () => NativeSubjectId;
317
+ } | {
318
+ readonly idMode: "generated";
319
+ readonly decodeGeneratedId: (rows: ReadonlyArray<unknown>) => Effect.Effect<NativeSubjectId, DrizzleMappingError>;
320
+ });
321
+ } | {
322
+ readonly mode: "pending";
323
+ readonly allocateRecoveryReference?: Effect.Effect<typeof RecoveryReference.Type, DrizzleMappingError>;
324
+ readonly allocateRecoveryReferenceSync?: () => typeof RecoveryReference.Type;
325
+ });
326
+ type AnyPasswordPersistenceMapping = PasswordPersistenceMapping<Table, Table, Table, Table, Table, Table, Table, Table, unknown>;
327
+ type AnyPasswordRegistrationMapping<Registration = unknown> = PasswordRegistrationMapping<Registration, Table, Table, Table, Table, Table, unknown>;
328
+ //#endregion
329
+ export { AnyPasswordPersistenceMapping, AnyPasswordRegistrationMapping, D1PasswordPersistenceMapping, PasswordAttemptAction, PasswordAttemptRecord, PasswordAttemptState, PasswordAttemptTable, PasswordAuthorityCredentialTable, PasswordChargeTable, PasswordCommandTable, PasswordConstraintClassifier, PasswordCredentialTable, PasswordD1Clock, PasswordIdentifierTable, PasswordPersistenceMapping, PasswordRateScopeKind, PasswordRateScopeTable, PasswordRegistrationConstraintClassifier, PasswordRegistrationIntent, PasswordRegistrationMapping, PasswordRegistrationProvisioning, PasswordRegistrationState, PasswordRegistrationTable, PasswordScopeKeys, PasswordSubjectTable, RequiredPasswordConstraints, RequiredPasswordRegistrationConstraints, requiredPasswordConstraints, requiredPasswordRegistrationConstraints };
330
+ //# sourceMappingURL=password-model.d.mts.map
@@ -0,0 +1,22 @@
1
+ //#region src/drizzle/password-model.ts
2
+ const requiredPasswordConstraints = {
3
+ identifier: "unique(identifier.namespace,identifier.value)",
4
+ authorityCredential: "unique(authorityCredential.subjectId,authorityCredential.credentialId)",
5
+ credentialSubject: "unique(credential.moduleId,credential.subjectId)",
6
+ credentialId: "unique(credential.moduleId,credential.credentialId)",
7
+ attempt: "unique(attempt.moduleId,attempt.attemptId)",
8
+ rateScope: "unique(rateScope.moduleId,rateScope.action,rateScope.scopeKind,rateScope.scopeKey)",
9
+ charge: "unique(charge.moduleId,charge.action,charge.scopeKind,charge.scopeKey,charge.attemptId)",
10
+ command: "unique(command.moduleId,command.commandId)"
11
+ };
12
+ const requiredPasswordRegistrationConstraints = {
13
+ request: "unique(registration.moduleId,registration.requestId)",
14
+ recoveryReference: "unique(registration.recoveryReference)",
15
+ identifier: "unique(identifier.namespace,identifier.value)",
16
+ credentialSubject: "unique(credential.moduleId,credential.subjectId)",
17
+ authorityCredential: "unique(authorityCredential.subjectId,authorityCredential.credentialId)"
18
+ };
19
+ //#endregion
20
+ export { requiredPasswordConstraints, requiredPasswordRegistrationConstraints };
21
+
22
+ //# sourceMappingURL=password-model.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"password-model.mjs","names":[],"sources":["../../src/drizzle/password-model.ts"],"sourcesContent":["import type { InferInsertModel, InferSelectModel, SQL, Table } from \"drizzle-orm\";\nimport type { Effect, Redacted } from \"effect\";\n\nimport { type RecoveryReference, type LoginIdentifier } from \"../identity/models\";\nimport type {\n PasswordAction,\n PasswordAttemptId,\n PasswordCredentialSnapshot,\n PasswordReplacement,\n} from \"../password/methods/models\";\nimport type { PasswordRegistrationDecision } from \"../password/methods/module\";\nimport type { EncodedPasswordHash } from \"../password/models\";\nimport type { AuthenticationRequirement, SecurityRevision } from \"../sessions/models\";\nimport type { DrizzleMappingError, SubjectIdCodec } from \"./model\";\n\ntype ColumnKey<T extends Table> = Extract<keyof T[\"_\"][\"columns\"], string>;\n\nexport type PasswordAttemptAction = \"sign-in\" | \"change\";\nexport type PasswordAttemptState = \"pending\" | \"verified\" | \"rejected\";\nexport type PasswordRateScopeKind = \"action\" | \"identifier\" | \"subject\";\n\nexport interface PasswordScopeKeys {\n readonly action: string;\n readonly identifier: string;\n readonly subject?: string;\n}\n\nexport interface PasswordSubjectTable<Subject extends Table, _NativeSubjectId> {\n readonly table: Subject;\n readonly id: ColumnKey<Subject>;\n readonly status: ColumnKey<Subject>;\n readonly securityRevision: ColumnKey<Subject>;\n readonly isActiveStatus: (value: unknown) => boolean;\n readonly decodeRequirement: (\n row: InferSelectModel<Subject>,\n ) => Effect.Effect<AuthenticationRequirement, DrizzleMappingError>;\n /** Current policy for this exact credential mutation, decoded under the subject lock. */\n readonly decodeActionRequirement: (\n row: InferSelectModel<Subject>,\n action: PasswordAction,\n ) => Effect.Effect<AuthenticationRequirement, DrizzleMappingError>;\n readonly nextSecurityRevision?: (\n current: SecurityRevision,\n ) => Effect.Effect<SecurityRevision, DrizzleMappingError>;\n readonly nextSecurityRevisionSync?: (current: SecurityRevision) => SecurityRevision;\n /** Required only by D1 conditional statements. */\n readonly d1ActiveStatusValue?: unknown;\n}\n\nexport interface PasswordIdentifierTable<Identifier extends Table, NativeSubjectId> {\n readonly table: Identifier;\n readonly namespace: ColumnKey<Identifier>;\n readonly value: ColumnKey<Identifier>;\n readonly subjectId: ColumnKey<Identifier>;\n readonly verifiedAt: ColumnKey<Identifier>;\n readonly bindingRevision: ColumnKey<Identifier>;\n /** Consumer-owned current login/recovery eligibility, including row status. */\n readonly isCurrent: (row: InferSelectModel<Identifier>) => boolean;\n /** Required by D1 so current ownership/eligibility is rechecked in the batch. */\n readonly d1CurrentCondition?: (input: {\n readonly identifier: LoginIdentifier;\n readonly nativeSubjectId: NativeSubjectId;\n }) => SQL;\n readonly encodeInitialInsert: (\n identifier: LoginIdentifier,\n subjectId: NativeSubjectId,\n bindingRevision: SecurityRevision,\n ) => InferInsertModel<Identifier>;\n}\n\nexport interface PasswordAuthorityCredentialTable<Credential extends Table, NativeSubjectId> {\n readonly table: Credential;\n readonly subjectId: ColumnKey<Credential>;\n readonly credentialId: ColumnKey<Credential>;\n readonly revision: ColumnKey<Credential>;\n readonly status?: ColumnKey<Credential>;\n readonly isActiveStatus?: (value: unknown) => boolean;\n readonly d1ActiveStatusValue?: unknown;\n readonly encodeInsert: (input: {\n readonly subjectId: NativeSubjectId;\n readonly credentialId: string;\n readonly revision: SecurityRevision;\n }) => InferInsertModel<Credential>;\n readonly encodeRevision: (revision: SecurityRevision) => Partial<InferInsertModel<Credential>>;\n}\n\nexport interface PasswordCredentialTable<\n Subject extends Table,\n Identifier extends Table,\n Credential extends Table,\n NativeSubjectId,\n> {\n readonly table: Credential;\n readonly moduleId: ColumnKey<Credential>;\n readonly subjectId: ColumnKey<Credential>;\n readonly credentialId: ColumnKey<Credential>;\n readonly credentialRevision: ColumnKey<Credential>;\n readonly verifierVersion: ColumnKey<Credential>;\n readonly verifier: ColumnKey<Credential>;\n readonly normalization: ColumnKey<Credential>;\n readonly encodeInsert: (input: {\n readonly moduleId: string;\n readonly subjectId: NativeSubjectId;\n readonly credentialId: string;\n readonly credentialRevision: SecurityRevision;\n readonly verifierVersion: SecurityRevision;\n readonly replacement: PasswordReplacement;\n }) => InferInsertModel<Credential>;\n readonly encodeVerifier: (\n verifier: Redacted.Redacted<EncodedPasswordHash>,\n verifierVersion: SecurityRevision,\n ) => Partial<InferInsertModel<Credential>>;\n readonly encodeReplacement: (input: {\n readonly replacement: PasswordReplacement;\n readonly credentialRevision: SecurityRevision;\n readonly verifierVersion: SecurityRevision;\n }) => Partial<InferInsertModel<Credential>>;\n readonly decode: (input: {\n readonly moduleId: string;\n readonly subject: InferSelectModel<Subject>;\n readonly identifier: InferSelectModel<Identifier>;\n readonly credential: InferSelectModel<Credential>;\n }) => Effect.Effect<PasswordCredentialSnapshot, DrizzleMappingError>;\n}\n\nexport interface PasswordAttemptRecord {\n readonly moduleId: string;\n readonly action: PasswordAttemptAction;\n readonly attemptId: PasswordAttemptId;\n readonly identifier: LoginIdentifier;\n readonly subjectId?: string;\n readonly credentialId?: string;\n readonly securityRevision?: SecurityRevision;\n readonly credentialRevision?: SecurityRevision;\n readonly verifierVersion?: SecurityRevision;\n readonly identifierBindingRevision?: SecurityRevision;\n readonly admittedAtMillis: number;\n readonly deadlineMillis: number;\n readonly retentionUntilMillis: number;\n}\n\nexport interface PasswordAttemptTable<Attempt extends Table, NativeSubjectId> {\n readonly table: Attempt;\n readonly moduleId: ColumnKey<Attempt>;\n readonly action: ColumnKey<Attempt>;\n readonly attemptId: ColumnKey<Attempt>;\n readonly identifierNamespace: ColumnKey<Attempt>;\n readonly identifierValue: ColumnKey<Attempt>;\n readonly subjectId: ColumnKey<Attempt>;\n readonly credentialId: ColumnKey<Attempt>;\n readonly securityRevision: ColumnKey<Attempt>;\n readonly credentialRevision: ColumnKey<Attempt>;\n readonly verifierVersion: ColumnKey<Attempt>;\n readonly identifierBindingRevision: ColumnKey<Attempt>;\n readonly admittedAt: ColumnKey<Attempt>;\n readonly deadline: ColumnKey<Attempt>;\n readonly retentionUntil: ColumnKey<Attempt>;\n readonly state: ColumnKey<Attempt>;\n readonly encodeInsert: (\n record: PasswordAttemptRecord,\n input: { readonly nativeSubjectId?: NativeSubjectId; readonly state: \"pending\" },\n ) => InferInsertModel<Attempt>;\n}\n\nexport interface PasswordRateScopeTable<RateScope extends Table> {\n readonly table: RateScope;\n readonly moduleId: ColumnKey<RateScope>;\n readonly action: ColumnKey<RateScope>;\n readonly scopeKind: ColumnKey<RateScope>;\n readonly scopeKey: ColumnKey<RateScope>;\n readonly encodeInsert: (input: {\n readonly moduleId: string;\n readonly action: PasswordAttemptAction;\n readonly scopeKind: PasswordRateScopeKind;\n readonly scopeKey: string;\n }) => InferInsertModel<RateScope>;\n}\n\nexport interface PasswordChargeTable<Charge extends Table> {\n readonly table: Charge;\n readonly moduleId: ColumnKey<Charge>;\n readonly action: ColumnKey<Charge>;\n readonly scopeKind: ColumnKey<Charge>;\n readonly scopeKey: ColumnKey<Charge>;\n readonly attemptId: ColumnKey<Charge>;\n readonly occurredAt: ColumnKey<Charge>;\n readonly retentionUntil: ColumnKey<Charge>;\n readonly encodeInsert: (input: {\n readonly moduleId: string;\n readonly action: PasswordAttemptAction;\n readonly scopeKind: PasswordRateScopeKind;\n readonly scopeKey: string;\n readonly attemptId: PasswordAttemptId;\n readonly occurredAtMillis: number;\n readonly retentionUntilMillis: number;\n }) => InferInsertModel<Charge>;\n}\n\nexport interface PasswordCommandTable<Command extends Table> {\n readonly table: Command;\n readonly moduleId: ColumnKey<Command>;\n readonly commandId: ColumnKey<Command>;\n readonly action: ColumnKey<Command>;\n readonly bindingDigest: ColumnKey<Command>;\n readonly decision: ColumnKey<Command>;\n readonly retentionUntil: ColumnKey<Command>;\n readonly encodeInsert: (input: {\n readonly moduleId: string;\n readonly commandId: string;\n readonly action: string;\n readonly bindingDigest: string;\n readonly decision: \"changed\";\n readonly retentionUntilMillis: number;\n }) => InferInsertModel<Command>;\n}\n\nexport interface RequiredPasswordConstraints {\n readonly identifier: \"unique(identifier.namespace,identifier.value)\";\n readonly authorityCredential: \"unique(authorityCredential.subjectId,authorityCredential.credentialId)\";\n readonly credentialSubject: \"unique(credential.moduleId,credential.subjectId)\";\n readonly credentialId: \"unique(credential.moduleId,credential.credentialId)\";\n readonly attempt: \"unique(attempt.moduleId,attempt.attemptId)\";\n readonly rateScope: \"unique(rateScope.moduleId,rateScope.action,rateScope.scopeKind,rateScope.scopeKey)\";\n readonly charge: \"unique(charge.moduleId,charge.action,charge.scopeKind,charge.scopeKey,charge.attemptId)\";\n readonly command: \"unique(command.moduleId,command.commandId)\";\n}\n\nexport const requiredPasswordConstraints: RequiredPasswordConstraints = {\n identifier: \"unique(identifier.namespace,identifier.value)\",\n authorityCredential: \"unique(authorityCredential.subjectId,authorityCredential.credentialId)\",\n credentialSubject: \"unique(credential.moduleId,credential.subjectId)\",\n credentialId: \"unique(credential.moduleId,credential.credentialId)\",\n attempt: \"unique(attempt.moduleId,attempt.attemptId)\",\n rateScope: \"unique(rateScope.moduleId,rateScope.action,rateScope.scopeKind,rateScope.scopeKey)\",\n charge: \"unique(charge.moduleId,charge.action,charge.scopeKind,charge.scopeKey,charge.attemptId)\",\n command: \"unique(command.moduleId,command.commandId)\",\n};\n\nexport interface PasswordConstraintClassifier {\n /** Match only the mapped command uniqueness constraint. */\n readonly isCommandConflict: (cause: unknown) => boolean;\n /** Match only the mapped rate-scope uniqueness constraint. */\n readonly isRateScopeConflict: (cause: unknown) => boolean;\n}\n\nexport interface PasswordD1Clock {\n readonly engineNow: SQL;\n readonly engineNowMillis: SQL;\n readonly engineInstantMinus: (millis: number) => SQL;\n readonly engineInstantPlus: (millis: number) => SQL;\n}\n\nexport interface PasswordPersistenceMapping<\n Subject extends Table,\n Identifier extends Table,\n Credential extends Table,\n AuthorityCredential extends Table,\n Attempt extends Table,\n RateScope extends Table,\n Charge extends Table,\n Command extends Table,\n NativeSubjectId,\n> extends PasswordConstraintClassifier {\n readonly subject: PasswordSubjectTable<Subject, NativeSubjectId>;\n readonly identifier: PasswordIdentifierTable<Identifier, NativeSubjectId>;\n readonly credential: PasswordCredentialTable<Subject, Identifier, Credential, NativeSubjectId>;\n /** Every factor revision named by action evidence, including non-password factors. */\n readonly authorityCredential: PasswordAuthorityCredentialTable<\n AuthorityCredential,\n NativeSubjectId\n >;\n readonly attempt: PasswordAttemptTable<Attempt, NativeSubjectId>;\n readonly rateScope: PasswordRateScopeTable<RateScope>;\n readonly charge: PasswordChargeTable<Charge>;\n readonly command: PasswordCommandTable<Command>;\n readonly subjectId: SubjectIdCodec<NativeSubjectId>;\n readonly constraints: RequiredPasswordConstraints;\n readonly scopeKeys: (input: {\n readonly moduleId: string;\n readonly action: PasswordAttemptAction;\n readonly identifier: LoginIdentifier;\n readonly subjectId?: string;\n }) => PasswordScopeKeys;\n readonly encodeInstant: (epochMillis: number) => unknown;\n readonly decodeInstant: (native: unknown) => Effect.Effect<number, DrizzleMappingError>;\n readonly allocateAttemptId?: Effect.Effect<PasswordAttemptId, DrizzleMappingError>;\n readonly allocateAttemptIdSync?: () => PasswordAttemptId;\n readonly allocateCredentialId?: Effect.Effect<string, DrizzleMappingError>;\n readonly allocateCredentialIdSync?: () => string;\n readonly allocateRevision?: Effect.Effect<SecurityRevision, DrizzleMappingError>;\n readonly allocateRevisionSync?: () => SecurityRevision;\n readonly commandRetentionMillis: number;\n /** All semantic replacements still bump subject revision. This flag only declares bearer invalidation latency. */\n readonly sessionInvalidation: \"same-authority-immediate\" | \"original-absolute-expiry\";\n readonly d1?: PasswordD1Clock;\n}\n\nexport type D1PasswordPersistenceMapping<\n Subject extends Table,\n Identifier extends Table,\n Credential extends Table,\n AuthorityCredential extends Table,\n Attempt extends Table,\n RateScope extends Table,\n Charge extends Table,\n Command extends Table,\n NativeSubjectId,\n> = PasswordPersistenceMapping<\n Subject,\n Identifier,\n Credential,\n AuthorityCredential,\n Attempt,\n RateScope,\n Charge,\n Command,\n NativeSubjectId\n> & {\n readonly d1: PasswordD1Clock;\n readonly subject: PasswordSubjectTable<Subject, NativeSubjectId> & {\n readonly d1ActiveStatusValue: unknown;\n };\n readonly identifier: PasswordIdentifierTable<Identifier, NativeSubjectId> & {\n readonly d1CurrentCondition: (input: {\n readonly identifier: LoginIdentifier;\n readonly nativeSubjectId: NativeSubjectId;\n }) => SQL;\n };\n readonly authorityCredential: PasswordAuthorityCredentialTable<\n AuthorityCredential,\n NativeSubjectId\n > & {\n readonly d1ActiveStatusValue: unknown;\n };\n};\n\nexport type PasswordRegistrationState = \"pending\" | \"created\";\n\nexport interface PasswordRegistrationIntent<Registration> {\n readonly moduleId: string;\n readonly requestId: string;\n readonly identifier: LoginIdentifier;\n readonly registration: Registration;\n readonly replacement: PasswordReplacement;\n}\n\nexport interface PasswordRegistrationTable<Registration, Request extends Table, NativeSubjectId> {\n readonly table: Request;\n readonly moduleId: ColumnKey<Request>;\n readonly requestId: ColumnKey<Request>;\n readonly state: ColumnKey<Request>;\n readonly subjectId: ColumnKey<Request>;\n readonly recoveryReference: ColumnKey<Request>;\n readonly encodeInsert: (\n input: PasswordRegistrationIntent<Registration>,\n state: {\n readonly state: PasswordRegistrationState;\n readonly nativeSubjectId?: NativeSubjectId;\n readonly recoveryReference?: typeof RecoveryReference.Type;\n },\n ) => InferInsertModel<Request>;\n /** Replay projection must never expose a stored subject or decode protected intent. */\n readonly decodeReplay: (\n row: InferSelectModel<Request>,\n ) => Effect.Effect<\n Exclude<PasswordRegistrationDecision, { readonly _tag: \"Created\" }>,\n DrizzleMappingError\n >;\n}\n\nexport interface PasswordRegistrationProvisioning<\n Registration,\n Subject extends Table,\n NativeSubjectId,\n> {\n readonly encodeSubjectInsert: (\n input: PasswordRegistrationIntent<Registration>,\n values: {\n readonly nativeSubjectId: NativeSubjectId | undefined;\n readonly securityRevision: SecurityRevision;\n },\n ) => InferInsertModel<Subject>;\n readonly allocateSubjectId?: Effect.Effect<NativeSubjectId, DrizzleMappingError>;\n readonly allocateSubjectIdSync?: () => NativeSubjectId;\n /** Interactive targets use this for database-generated/autoincrement keys. */\n readonly decodeGeneratedId?: (\n rows: ReadonlyArray<unknown>,\n ) => Effect.Effect<NativeSubjectId, DrizzleMappingError>;\n}\n\nexport interface RequiredPasswordRegistrationConstraints {\n readonly request: \"unique(registration.moduleId,registration.requestId)\";\n readonly recoveryReference: \"unique(registration.recoveryReference)\";\n readonly identifier: \"unique(identifier.namespace,identifier.value)\";\n readonly credentialSubject: \"unique(credential.moduleId,credential.subjectId)\";\n readonly authorityCredential: \"unique(authorityCredential.subjectId,authorityCredential.credentialId)\";\n}\n\nexport const requiredPasswordRegistrationConstraints: RequiredPasswordRegistrationConstraints = {\n request: \"unique(registration.moduleId,registration.requestId)\",\n recoveryReference: \"unique(registration.recoveryReference)\",\n identifier: \"unique(identifier.namespace,identifier.value)\",\n credentialSubject: \"unique(credential.moduleId,credential.subjectId)\",\n authorityCredential: \"unique(authorityCredential.subjectId,authorityCredential.credentialId)\",\n};\n\nexport interface PasswordRegistrationConstraintClassifier {\n readonly isRequestConflict: (cause: unknown) => boolean;\n readonly isIdentifierConflict: (cause: unknown) => boolean;\n readonly isCredentialConflict: (cause: unknown) => boolean;\n}\n\nexport type PasswordRegistrationMapping<\n Registration,\n Subject extends Table,\n Identifier extends Table,\n Credential extends Table,\n AuthorityCredential extends Table,\n Request extends Table,\n NativeSubjectId,\n> = PasswordRegistrationConstraintClassifier & {\n readonly subject: PasswordSubjectTable<Subject, NativeSubjectId>;\n readonly identifier: PasswordIdentifierTable<Identifier, NativeSubjectId>;\n readonly credential: PasswordCredentialTable<Subject, Identifier, Credential, NativeSubjectId>;\n readonly authorityCredential: PasswordAuthorityCredentialTable<\n AuthorityCredential,\n NativeSubjectId\n >;\n readonly registration: PasswordRegistrationTable<Registration, Request, NativeSubjectId>;\n readonly subjectId: SubjectIdCodec<NativeSubjectId>;\n readonly constraints: RequiredPasswordRegistrationConstraints;\n readonly allocateCredentialId?: Effect.Effect<string, DrizzleMappingError>;\n readonly allocateCredentialIdSync?: () => string;\n readonly allocateRevision?: Effect.Effect<SecurityRevision, DrizzleMappingError>;\n readonly allocateRevisionSync?: () => SecurityRevision;\n} & (\n | {\n readonly mode: \"atomic\";\n readonly provisioning: PasswordRegistrationProvisioning<\n Registration,\n Subject,\n NativeSubjectId\n > &\n (\n | {\n readonly idMode: \"allocated\";\n readonly allocateSubjectId: Effect.Effect<NativeSubjectId, DrizzleMappingError>;\n }\n | {\n readonly idMode: \"synchronous\";\n readonly allocateSubjectIdSync: () => NativeSubjectId;\n }\n | {\n readonly idMode: \"generated\";\n readonly decodeGeneratedId: (\n rows: ReadonlyArray<unknown>,\n ) => Effect.Effect<NativeSubjectId, DrizzleMappingError>;\n }\n );\n }\n | {\n readonly mode: \"pending\";\n readonly allocateRecoveryReference?: Effect.Effect<\n typeof RecoveryReference.Type,\n DrizzleMappingError\n >;\n readonly allocateRecoveryReferenceSync?: () => typeof RecoveryReference.Type;\n }\n );\n\nexport type AnyPasswordPersistenceMapping = PasswordPersistenceMapping<\n Table,\n Table,\n Table,\n Table,\n Table,\n Table,\n Table,\n Table,\n unknown\n>;\n\nexport type AnyPasswordRegistrationMapping<Registration = unknown> = PasswordRegistrationMapping<\n Registration,\n Table,\n Table,\n Table,\n Table,\n Table,\n unknown\n>;\n"],"mappings":";AAmOA,MAAa,8BAA2D;CACtE,YAAY;CACZ,qBAAqB;CACrB,mBAAmB;CACnB,cAAc;CACd,SAAS;CACT,WAAW;CACX,QAAQ;CACR,SAAS;AACX;AAkKA,MAAa,0CAAmF;CAC9F,SAAS;CACT,mBAAmB;CACnB,YAAY;CACZ,mBAAmB;CACnB,qBAAqB;AACvB"}
@@ -0,0 +1,93 @@
1
+ import { DrizzleMappingError } from "./model.mjs";
2
+ import { PasswordPreparedReady, PasswordPreparedReservation, PasswordPreparedVersion } from "../password/methods/preparedModels.mjs";
3
+ import { D1PasswordPersistenceMapping, PasswordPersistenceMapping } from "./password-model.mjs";
4
+ import { D1ProofPersistenceMapping, ProofPersistenceMapping, RequiredProofConstraints } from "./proof-model.mjs";
5
+ import { Effect } from "effect";
6
+ import { InferInsertModel, InferSelectModel, SQL, Table } from "drizzle-orm";
7
+ //#region src/drizzle/password-prepared-model.d.ts
8
+ type ColumnKey<T extends Table> = Extract<keyof T["_"]["columns"], string>;
9
+ type PasswordPreparedState = "Preparing" | "Ready" | "Consumed" | "Cancelled" | "Expired";
10
+ /** The retained intent is also its nonrefundable admission charge. Scalar identity,
11
+ * scope and timing columns survive sensitive snapshot/digest erasure. */
12
+ interface PasswordPreparedIntentTable<Intent extends Table, NativeSubjectId> {
13
+ readonly table: Intent;
14
+ readonly moduleId: ColumnKey<Intent>;
15
+ readonly intentId: ColumnKey<Intent>;
16
+ readonly commandId: ColumnKey<Intent>;
17
+ readonly subjectId: ColumnKey<Intent>;
18
+ readonly action: ColumnKey<Intent>;
19
+ readonly generation: ColumnKey<Intent>;
20
+ readonly version: ColumnKey<Intent>;
21
+ readonly state: ColumnKey<Intent>;
22
+ readonly digest: ColumnKey<Intent>;
23
+ readonly snapshot: ColumnKey<Intent>;
24
+ readonly identifierScope: ColumnKey<Intent>;
25
+ readonly createdAt: ColumnKey<Intent>;
26
+ readonly admittedAt: ColumnKey<Intent>;
27
+ readonly admissionRetainUntil: ColumnKey<Intent>;
28
+ readonly preparationExpiresAt: ColumnKey<Intent>;
29
+ readonly expiresAt: ColumnKey<Intent>;
30
+ readonly retainUntil: ColumnKey<Intent>;
31
+ readonly states: Readonly<Record<PasswordPreparedState, InferSelectModel<Intent>[ColumnKey<Intent>]>>;
32
+ readonly encodeInsert: (input: {
33
+ readonly reservation: PasswordPreparedReservation;
34
+ readonly nativeSubjectId: NativeSubjectId;
35
+ readonly identifierScope: string;
36
+ readonly admittedAtMillis: number;
37
+ readonly admissionRetainUntilMillis: number;
38
+ /** Bounded private core codec output; contains a salted verifier for Change/Reset. */
39
+ readonly snapshot: string;
40
+ }) => InferInsertModel<Intent>;
41
+ readonly encodeReady: (input: {
42
+ readonly ready: PasswordPreparedReady;
43
+ readonly snapshot: string;
44
+ }) => Partial<InferInsertModel<Intent>>;
45
+ /** Erase snapshot and digest, preserving every identity/scope/time column. */
46
+ readonly encodeTerminal: (state: Exclude<PasswordPreparedState, "Preparing" | "Ready">) => Partial<InferInsertModel<Intent>>;
47
+ }
48
+ /** One permanent row per configured module; never one row per attacker input.
49
+ * Native owners lock this before subject → identifier → sorted credentials → intent.
50
+ * It serializes admission and maintenance without process-local locks. */
51
+ interface PasswordPreparedAdmissionTable<Admission extends Table> {
52
+ readonly table: Admission;
53
+ readonly moduleId: ColumnKey<Admission>;
54
+ readonly intentId: ColumnKey<Admission>;
55
+ readonly admittedAt: ColumnKey<Admission>;
56
+ readonly admissionRetainUntil: ColumnKey<Admission>;
57
+ readonly encodeInsert: (moduleId: string) => InferInsertModel<Admission>;
58
+ }
59
+ declare const requiredPasswordPreparedConstraints: {
60
+ readonly admission: "unique(admission.moduleId)";
61
+ readonly intent: "unique(intent.moduleId,intent.intentId)";
62
+ readonly command: "unique(intent.moduleId,intent.commandId)";
63
+ readonly digest: "unique(intent.digest)";
64
+ };
65
+ type RequiredPasswordPreparedConstraints = typeof requiredPasswordPreparedConstraints;
66
+ interface PasswordPreparedPersistenceMapping<Subject extends Table, Identifier extends Table, Credential extends Table, AuthorityCredential extends Table, Attempt extends Table, RateScope extends Table, Charge extends Table, Command extends Table, Intent extends Table, Admission extends Table, NativeSubjectId> {
67
+ readonly password: PasswordPersistenceMapping<Subject, Identifier, Credential, AuthorityCredential, Attempt, RateScope, Charge, Command, NativeSubjectId>;
68
+ readonly intent: PasswordPreparedIntentTable<Intent, NativeSubjectId>;
69
+ readonly admission: PasswordPreparedAdmissionTable<Admission>;
70
+ readonly constraints: RequiredPasswordPreparedConstraints;
71
+ readonly allocateVersion?: Effect.Effect<PasswordPreparedVersion, DrizzleMappingError>;
72
+ /** Required by synchronous owners, invoked inside their actual transactionSync. */
73
+ readonly allocateVersionSync?: () => PasswordPreparedVersion;
74
+ }
75
+ type D1PasswordPreparedPersistenceMapping<Subject extends Table, Identifier extends Table, Credential extends Table, AuthorityCredential extends Table, Attempt extends Table, RateScope extends Table, Charge extends Table, Command extends Table, Intent extends Table, Admission extends Table, NativeSubjectId> = PasswordPreparedPersistenceMapping<Subject, Identifier, Credential, AuthorityCredential, Attempt, RateScope, Charge, Command, Intent, Admission, NativeSubjectId> & {
76
+ /** Convert a stored native instant to epoch milliseconds in the same SQL engine. */
77
+ readonly admissionClock: {
78
+ readonly toMillis: (instant: SQL) => SQL;
79
+ };
80
+ readonly password: D1PasswordPersistenceMapping<Subject, Identifier, Credential, AuthorityCredential, Attempt, RateScope, Charge, Command, NativeSubjectId>;
81
+ };
82
+ /** Optional real proof completion authority. Request/delivery/abuse capabilities
83
+ * are not required to complete the original continuation. */
84
+ type PasswordPreparedProofMapping<Series extends Table, Continuation extends Table, Command extends Table, Subject extends Table, Identifier extends Table, Credential extends Table, NativeSubjectId> = Pick<ProofPersistenceMapping<Table, Series, Table, Continuation, Table, Table, Table, Command, Subject, Identifier, Credential, NativeSubjectId>, "series" | "continuation" | "command" | "authority" | "scopeKeys" | "encodeInstant" | "decodeInstant" | "allocateVersion" | "allocateVersionSync" | "isSeriesConflict" | "isCommandConflict" | "d1"> & {
85
+ readonly constraints: Pick<RequiredProofConstraints, "series" | "continuationId" | "continuationDigest" | "command">;
86
+ };
87
+ type D1PasswordPreparedProofMapping<Series extends Table, Continuation extends Table, Command extends Table, Subject extends Table, Identifier extends Table, Credential extends Table, NativeSubjectId> = Pick<D1ProofPersistenceMapping<Table, Series, Table, Continuation, Table, Table, Table, Command, Subject, Identifier, Credential, NativeSubjectId>, Exclude<keyof PasswordPreparedProofMapping<Series, Continuation, Command, Subject, Identifier, Credential, NativeSubjectId>, "constraints">> & {
88
+ readonly constraints: PasswordPreparedProofMapping<Series, Continuation, Command, Subject, Identifier, Credential, NativeSubjectId>["constraints"];
89
+ };
90
+ type AnyPasswordPreparedPersistenceMapping = PasswordPreparedPersistenceMapping<Table, Table, Table, Table, Table, Table, Table, Table, Table, Table, unknown>;
91
+ //#endregion
92
+ export { AnyPasswordPreparedPersistenceMapping, D1PasswordPreparedPersistenceMapping, D1PasswordPreparedProofMapping, PasswordPreparedAdmissionTable, PasswordPreparedIntentTable, PasswordPreparedPersistenceMapping, PasswordPreparedProofMapping, PasswordPreparedState, RequiredPasswordPreparedConstraints, requiredPasswordPreparedConstraints };
93
+ //# sourceMappingURL=password-prepared-model.d.mts.map
@@ -0,0 +1,11 @@
1
+ //#region src/drizzle/password-prepared-model.ts
2
+ const requiredPasswordPreparedConstraints = {
3
+ admission: "unique(admission.moduleId)",
4
+ intent: "unique(intent.moduleId,intent.intentId)",
5
+ command: "unique(intent.moduleId,intent.commandId)",
6
+ digest: "unique(intent.digest)"
7
+ };
8
+ //#endregion
9
+ export { requiredPasswordPreparedConstraints };
10
+
11
+ //# sourceMappingURL=password-prepared-model.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"password-prepared-model.mjs","names":[],"sources":["../../src/drizzle/password-prepared-model.ts"],"sourcesContent":["import type { InferInsertModel, InferSelectModel, SQL, Table } from \"drizzle-orm\";\nimport type { Effect } from \"effect\";\n\nimport type {\n PasswordPreparedReady,\n PasswordPreparedReservation,\n PasswordPreparedVersion,\n} from \"../password/methods/preparedModels\";\nimport type { DrizzleMappingError } from \"./model\";\nimport type { D1PasswordPersistenceMapping, PasswordPersistenceMapping } from \"./password-model\";\nimport type {\n D1ProofPersistenceMapping,\n ProofPersistenceMapping,\n RequiredProofConstraints,\n} from \"./proof-model\";\n\ntype ColumnKey<T extends Table> = Extract<keyof T[\"_\"][\"columns\"], string>;\nexport type PasswordPreparedState = \"Preparing\" | \"Ready\" | \"Consumed\" | \"Cancelled\" | \"Expired\";\n\n/** The retained intent is also its nonrefundable admission charge. Scalar identity,\n * scope and timing columns survive sensitive snapshot/digest erasure. */\nexport interface PasswordPreparedIntentTable<Intent extends Table, NativeSubjectId> {\n readonly table: Intent;\n readonly moduleId: ColumnKey<Intent>;\n readonly intentId: ColumnKey<Intent>;\n readonly commandId: ColumnKey<Intent>;\n readonly subjectId: ColumnKey<Intent>;\n readonly action: ColumnKey<Intent>;\n readonly generation: ColumnKey<Intent>;\n readonly version: ColumnKey<Intent>;\n readonly state: ColumnKey<Intent>;\n readonly digest: ColumnKey<Intent>;\n readonly snapshot: ColumnKey<Intent>;\n readonly identifierScope: ColumnKey<Intent>;\n readonly createdAt: ColumnKey<Intent>;\n readonly admittedAt: ColumnKey<Intent>;\n readonly admissionRetainUntil: ColumnKey<Intent>;\n readonly preparationExpiresAt: ColumnKey<Intent>;\n readonly expiresAt: ColumnKey<Intent>;\n readonly retainUntil: ColumnKey<Intent>;\n readonly states: Readonly<\n Record<PasswordPreparedState, InferSelectModel<Intent>[ColumnKey<Intent>]>\n >;\n readonly encodeInsert: (input: {\n readonly reservation: PasswordPreparedReservation;\n readonly nativeSubjectId: NativeSubjectId;\n readonly identifierScope: string;\n readonly admittedAtMillis: number;\n readonly admissionRetainUntilMillis: number;\n /** Bounded private core codec output; contains a salted verifier for Change/Reset. */\n readonly snapshot: string;\n }) => InferInsertModel<Intent>;\n readonly encodeReady: (input: {\n readonly ready: PasswordPreparedReady;\n readonly snapshot: string;\n }) => Partial<InferInsertModel<Intent>>;\n /** Erase snapshot and digest, preserving every identity/scope/time column. */\n readonly encodeTerminal: (\n state: Exclude<PasswordPreparedState, \"Preparing\" | \"Ready\">,\n ) => Partial<InferInsertModel<Intent>>;\n}\n\n/** One permanent row per configured module; never one row per attacker input.\n * Native owners lock this before subject → identifier → sorted credentials → intent.\n * It serializes admission and maintenance without process-local locks. */\nexport interface PasswordPreparedAdmissionTable<Admission extends Table> {\n readonly table: Admission;\n readonly moduleId: ColumnKey<Admission>;\n readonly intentId: ColumnKey<Admission>;\n readonly admittedAt: ColumnKey<Admission>;\n readonly admissionRetainUntil: ColumnKey<Admission>;\n readonly encodeInsert: (moduleId: string) => InferInsertModel<Admission>;\n}\n\nexport const requiredPasswordPreparedConstraints = {\n admission: \"unique(admission.moduleId)\",\n intent: \"unique(intent.moduleId,intent.intentId)\",\n command: \"unique(intent.moduleId,intent.commandId)\",\n digest: \"unique(intent.digest)\",\n} as const;\n\nexport type RequiredPasswordPreparedConstraints = typeof requiredPasswordPreparedConstraints;\n\nexport interface PasswordPreparedPersistenceMapping<\n Subject extends Table,\n Identifier extends Table,\n Credential extends Table,\n AuthorityCredential extends Table,\n Attempt extends Table,\n RateScope extends Table,\n Charge extends Table,\n Command extends Table,\n Intent extends Table,\n Admission extends Table,\n NativeSubjectId,\n> {\n readonly password: PasswordPersistenceMapping<\n Subject,\n Identifier,\n Credential,\n AuthorityCredential,\n Attempt,\n RateScope,\n Charge,\n Command,\n NativeSubjectId\n >;\n readonly intent: PasswordPreparedIntentTable<Intent, NativeSubjectId>;\n readonly admission: PasswordPreparedAdmissionTable<Admission>;\n readonly constraints: RequiredPasswordPreparedConstraints;\n readonly allocateVersion?: Effect.Effect<PasswordPreparedVersion, DrizzleMappingError>;\n /** Required by synchronous owners, invoked inside their actual transactionSync. */\n readonly allocateVersionSync?: () => PasswordPreparedVersion;\n}\n\nexport type D1PasswordPreparedPersistenceMapping<\n Subject extends Table,\n Identifier extends Table,\n Credential extends Table,\n AuthorityCredential extends Table,\n Attempt extends Table,\n RateScope extends Table,\n Charge extends Table,\n Command extends Table,\n Intent extends Table,\n Admission extends Table,\n NativeSubjectId,\n> = PasswordPreparedPersistenceMapping<\n Subject,\n Identifier,\n Credential,\n AuthorityCredential,\n Attempt,\n RateScope,\n Charge,\n Command,\n Intent,\n Admission,\n NativeSubjectId\n> & {\n /** Convert a stored native instant to epoch milliseconds in the same SQL engine. */\n readonly admissionClock: { readonly toMillis: (instant: SQL) => SQL };\n readonly password: D1PasswordPersistenceMapping<\n Subject,\n Identifier,\n Credential,\n AuthorityCredential,\n Attempt,\n RateScope,\n Charge,\n Command,\n NativeSubjectId\n >;\n};\n\n/** Optional real proof completion authority. Request/delivery/abuse capabilities\n * are not required to complete the original continuation. */\nexport type PasswordPreparedProofMapping<\n Series extends Table,\n Continuation extends Table,\n Command extends Table,\n Subject extends Table,\n Identifier extends Table,\n Credential extends Table,\n NativeSubjectId,\n> = Pick<\n ProofPersistenceMapping<\n Table,\n Series,\n Table,\n Continuation,\n Table,\n Table,\n Table,\n Command,\n Subject,\n Identifier,\n Credential,\n NativeSubjectId\n >,\n | \"series\"\n | \"continuation\"\n | \"command\"\n | \"authority\"\n | \"scopeKeys\"\n | \"encodeInstant\"\n | \"decodeInstant\"\n | \"allocateVersion\"\n | \"allocateVersionSync\"\n | \"isSeriesConflict\"\n | \"isCommandConflict\"\n | \"d1\"\n> & {\n readonly constraints: Pick<\n RequiredProofConstraints,\n \"series\" | \"continuationId\" | \"continuationDigest\" | \"command\"\n >;\n};\n\nexport type D1PasswordPreparedProofMapping<\n Series extends Table,\n Continuation extends Table,\n Command extends Table,\n Subject extends Table,\n Identifier extends Table,\n Credential extends Table,\n NativeSubjectId,\n> = Pick<\n D1ProofPersistenceMapping<\n Table,\n Series,\n Table,\n Continuation,\n Table,\n Table,\n Table,\n Command,\n Subject,\n Identifier,\n Credential,\n NativeSubjectId\n >,\n Exclude<\n keyof PasswordPreparedProofMapping<\n Series,\n Continuation,\n Command,\n Subject,\n Identifier,\n Credential,\n NativeSubjectId\n >,\n \"constraints\"\n >\n> & {\n readonly constraints: PasswordPreparedProofMapping<\n Series,\n Continuation,\n Command,\n Subject,\n Identifier,\n Credential,\n NativeSubjectId\n >[\"constraints\"];\n};\n\nexport type AnyPasswordPreparedPersistenceMapping = PasswordPreparedPersistenceMapping<\n Table,\n Table,\n Table,\n Table,\n Table,\n Table,\n Table,\n Table,\n Table,\n Table,\n unknown\n>;\n"],"mappings":";AA0EA,MAAa,sCAAsC;CACjD,WAAW;CACX,QAAQ;CACR,SAAS;CACT,QAAQ;AACV"}