@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
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Daniel van der Merwe
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,18 @@
1
+ # @yielded/auth
2
+
3
+ Composable authentication workflows for Effect applications: sign-in, sessions,
4
+ OAuth, passwords, passkeys, email and phone proofs, and TOTP.
5
+
6
+ ```sh
7
+ vp add @yielded/auth@beta effect@4.0.0-rc.112
8
+ ```
9
+
10
+ The package owns security-sensitive workflow contracts. Applications own identity,
11
+ persistence, protocol verification, and delivery adapters. Resources live in the
12
+ caller’s Scope; credentials stay outside public results and telemetry.
13
+
14
+ Optional database, platform, browser, and OAuth adapters have separate exports.
15
+ The root import does not load their peer dependencies. Effect is supplied by the host.
16
+
17
+ See the [authentication guide](https://github.com/danieljvdm/effect-auth/blob/main/docs/guide/authentication.md)
18
+ and [consumer examples](https://github.com/danieljvdm/effect-auth/tree/main/examples/auth).
@@ -0,0 +1,5 @@
1
+ import { AuthAtomLifetime, AuthSubjectLifetime, makeLifetime } from "./atom/AuthAtomLifetime.mjs";
2
+ import { AuthAtomWorkflow } from "./atom/AuthAtomWorkflow.mjs";
3
+ import { ReactivityKeys, mutation, query, workflow } from "./atom/operations.mjs";
4
+ import { AuthActionAtom, AuthAtomOptions, AuthAtoms, make } from "./atom/client.mjs";
5
+ export { type AuthActionAtom, AuthAtomLifetime, type AuthAtomOptions, AuthAtomWorkflow, type AuthAtoms, type AuthSubjectLifetime, type ReactivityKeys, make, makeLifetime, mutation, query, workflow };
package/dist/Atom.mjs ADDED
@@ -0,0 +1,5 @@
1
+ import { AuthAtomLifetime, makeLifetime } from "./atom/AuthAtomLifetime.mjs";
2
+ import { AuthAtomWorkflow } from "./atom/AuthAtomWorkflow.mjs";
3
+ import { mutation, query, workflow } from "./atom/operations.mjs";
4
+ import { make } from "./atom/client.mjs";
5
+ export { AuthAtomLifetime, AuthAtomWorkflow, make, makeLifetime, mutation, query, workflow };
@@ -0,0 +1,9 @@
1
+ import { AuthenticationRequired } from "./operations/errors.mjs";
2
+ import { RequestBindingConfig } from "./operations/RequestBindingConfig.mjs";
3
+ import { SessionApi, SessionApiError } from "./auth/session.mjs";
4
+ import { AuthRequest } from "./auth/AuthRequest.mjs";
5
+ import { AuthConfigurationError } from "./auth/AuthConfigurationError.mjs";
6
+ import { BindingOf, ClaimsCodec, StrategyBinding, StrategyDefinition, StrategyTypeLambda } from "./auth/definition.mjs";
7
+ import { AuthApi, AuthService, Options, Service, make } from "./auth/Auth.mjs";
8
+ import { AuthMethod, makeAuthStrategy } from "./auth/AuthStrategy.mjs";
9
+ export { type AuthApi, AuthConfigurationError, type AuthMethod, AuthRequest, type AuthService, AuthenticationRequired, type BindingOf, type ClaimsCodec, type Options, RequestBindingConfig, Service, type SessionApi, type SessionApiError, type StrategyBinding, type StrategyDefinition, type StrategyTypeLambda, make, makeAuthStrategy as makeStrategy };
package/dist/Auth.mjs ADDED
@@ -0,0 +1,7 @@
1
+ import { AuthenticationRequired } from "./operations/errors.mjs";
2
+ import { AuthConfigurationError } from "./auth/AuthConfigurationError.mjs";
3
+ import { AuthRequest } from "./auth/AuthRequest.mjs";
4
+ import { Service, make } from "./auth/Auth.mjs";
5
+ import { makeAuthStrategy } from "./auth/AuthStrategy.mjs";
6
+ import { RequestBindingConfig } from "./operations/RequestBindingConfig.mjs";
7
+ export { AuthConfigurationError, AuthRequest, AuthenticationRequired, RequestBindingConfig, Service, make, makeAuthStrategy as makeStrategy };
@@ -0,0 +1,4 @@
1
+ import { ActionDefinitions, ActionError, ActionInput, ActionOptions, ActionSuccess, AnyAuthAction, AnyAuthContract, AuthActions, action, fromOperation, make } from "./operations/actions.mjs";
2
+ import { signIn } from "./password/methods/contracts.mjs";
3
+ import { httpGroup } from "./http/auth-contract.mjs";
4
+ export { type ActionDefinitions, type ActionError, type ActionInput, type ActionOptions, type ActionSuccess, type AnyAuthAction, type AnyAuthContract, type AuthActions, action, fromOperation, httpGroup, make, signIn as passwordSignIn };
@@ -0,0 +1,4 @@
1
+ import { action, fromOperation, make } from "./operations/actions.mjs";
2
+ import { signIn } from "./password/methods/contracts.mjs";
3
+ import { httpGroup } from "./http/auth-contract.mjs";
4
+ export { action, fromOperation, httpGroup, make, signIn as passwordSignIn };
@@ -0,0 +1,82 @@
1
+ import { Email, SessionClaims, SessionSummary, SubjectId } from "./Schema.mjs";
2
+ import { AuthTokenError, IdentityResolutionError, InvalidSession } from "./Errors.mjs";
3
+ import { AuthTokenCodec } from "./AuthTokenCodec.mjs";
4
+ import { Context, Crypto, Effect, Layer, Option, Redacted, Schema } from "effect";
5
+ //#region src/AuthSession.d.ts
6
+ declare const IssuedSession_base: Schema.Class<IssuedSession, Schema.Struct<{
7
+ readonly token: Schema.brand<Schema.NonEmptyString, "effect-auth/SessionToken">;
8
+ readonly summary: typeof SessionSummary;
9
+ }>, {}>;
10
+ declare class IssuedSession extends IssuedSession_base {}
11
+ /** A verified session and an optional replacement issued by rolling renewal. */
12
+ interface VerifiedSession {
13
+ readonly claims: SessionClaims;
14
+ readonly renewal: Option.Option<IssuedSession>;
15
+ }
16
+ interface IssueSessionOptions {
17
+ /** App-defined claims, signed into the envelope but opaque to effect-auth. */
18
+ readonly ext?: unknown;
19
+ }
20
+ /** Flow data available when effect-auth issues a session through its HTTP API. */
21
+ interface SessionExtContext {
22
+ readonly subjectId: SubjectId;
23
+ readonly email: Email;
24
+ }
25
+ /** A verified session whose app-defined extension has been decoded by its schema. */
26
+ interface VerifiedSessionWithExt<A> extends VerifiedSession {
27
+ readonly ext: Option.Option<A>;
28
+ }
29
+ interface AuthSessionWithExtService<A> {
30
+ readonly issue: (subjectId: SubjectId, ext: A) => Effect.Effect<IssuedSession, AuthTokenError>;
31
+ readonly verify: (token: Redacted.Redacted<string>) => Effect.Effect<VerifiedSessionWithExt<A>, InvalidSession | AuthTokenError>;
32
+ /** Verifies the token and renews it when the configured rolling interval is due. */
33
+ readonly verifyAndRenew: (token: Redacted.Redacted<string>) => Effect.Effect<VerifiedSessionWithExt<A>, InvalidSession | AuthTokenError | IdentityResolutionError>;
34
+ /** Issues from flow data using the optional builder in the declaration. */
35
+ readonly issueFromContext: (context: SessionExtContext) => Effect.Effect<IssuedSession, AuthTokenError>;
36
+ }
37
+ type SessionExtBuilder<A> = (context: SessionExtContext) => Effect.Effect<A>;
38
+ type AuthSessionWithExtOptions<S extends Schema.Codec<unknown, unknown>> = {
39
+ /** App-defined claims schema. The decoded type becomes the service extension type. */
40
+ readonly ext: S;
41
+ } & (SessionExtContext extends S["Encoded"] ? {
42
+ /** Overrides automatic decoding from the HTTP session context. */
43
+ readonly build?: SessionExtBuilder<NoInfer<S["Type"]>>;
44
+ } : {
45
+ /** Required when the schema cannot decode the HTTP session context directly. */
46
+ readonly build: SessionExtBuilder<NoInfer<S["Type"]>>;
47
+ });
48
+ type AuthSessionWithExtDefinition<S extends Schema.Codec<unknown, unknown>> = SessionExtContext extends S["Encoded"] ? S | AuthSessionWithExtOptions<S> : AuthSessionWithExtOptions<S>;
49
+ /** Context service class produced by {@link AuthSession.WithExt}. */
50
+ interface AuthSessionWithExtClass<Self, Id extends string, A> extends Context.ServiceClass<Self, Id, AuthSessionWithExtService<A>> {
51
+ readonly ext: Schema.Codec<A, unknown>;
52
+ readonly layer: Layer.Layer<Self, never, AuthSession>;
53
+ }
54
+ declare const makeAuthSessionWithExt: <Self>() => <const Id extends string, S extends Schema.Codec<unknown, unknown>>(id: Id, definition: AuthSessionWithExtDefinition<S>) => AuthSessionWithExtClass<Self, Id, S["Type"]>;
55
+ declare const AuthSession_base: Context.ServiceClass<AuthSession, "effect-auth/AuthSession", {
56
+ readonly issue: (subjectId: SubjectId, options?: IssueSessionOptions) => Effect.Effect<IssuedSession, AuthTokenError>;
57
+ readonly verify: (token: Redacted.Redacted<string>) => Effect.Effect<SessionClaims, InvalidSession | AuthTokenError>;
58
+ /** Verifies the token and issues a replacement when rolling renewal is due. */
59
+ readonly verifyAndRenew: (token: Redacted.Redacted<string>) => Effect.Effect<VerifiedSession, InvalidSession | AuthTokenError | IdentityResolutionError>;
60
+ }>;
61
+ /**
62
+ * Stateless session issuance and verification. Each token has a fixed expiry;
63
+ * authenticated HTTP activity can replace it after the configured renewal
64
+ * interval. There is no per-session revocation. Sign-out removes the browser
65
+ * cookie, and bulk invalidation happens through key removal or by bumping the
66
+ * configured session generation.
67
+ */
68
+ declare class AuthSession extends AuthSession_base {
69
+ /**
70
+ * Declares an app-typed session service from one extension schema. Passing
71
+ * the schema directly automatically constructs extensions from compatible
72
+ * HTTP session context; schemas with derived inputs provide a `build`
73
+ * override. The core service remains opaque: this wrapper encodes before
74
+ * issuance and decodes after verification, preserving `None` for legacy or
75
+ * undecodable extensions.
76
+ */
77
+ static readonly WithExt: typeof makeAuthSessionWithExt;
78
+ static readonly layer: Layer.Layer<AuthSession, never, AuthTokenCodec | Crypto.Crypto>;
79
+ }
80
+ //#endregion
81
+ export { AuthSession, AuthSessionWithExtClass, AuthSessionWithExtService, IssueSessionOptions, IssuedSession, SessionExtBuilder, SessionExtContext, VerifiedSession, VerifiedSessionWithExt };
82
+ //# sourceMappingURL=AuthSession.d.mts.map
@@ -0,0 +1,138 @@
1
+ import { SessionClaims, SessionSummary, SessionToken, SessionTokenId } from "./Schema.mjs";
2
+ import { AuthTokenError } from "./Errors.mjs";
3
+ import { AuthTokenCodec } from "./AuthTokenCodec.mjs";
4
+ import { AuthPolicy, revalidateSessionClaims } from "./Policy.mjs";
5
+ import { Context, Crypto, DateTime, Duration, Effect, Layer, Option, Schema } from "effect";
6
+ //#region src/AuthSession.ts
7
+ var IssuedSession = class extends Schema.Class("effect-auth/IssuedSession")({
8
+ token: SessionToken,
9
+ summary: SessionSummary
10
+ }) {};
11
+ const decodeSessionTokenId = Schema.decodeEffect(SessionTokenId);
12
+ const makeAuthSessionWithExt = () => (id, definition) => {
13
+ const definitionIsSchema = Schema.isSchema(definition);
14
+ const ext = definitionIsSchema ? definition : definition.ext;
15
+ const build = definitionIsSchema ? void 0 : definition.build;
16
+ const Service = Context.Service()(id);
17
+ const extCodec = ext;
18
+ const encodeExt = Schema.encodeEffect(extCodec);
19
+ const decodeContext = Schema.decodeEffect(extCodec);
20
+ const decodeExt = Schema.decodeUnknownEffect(ext);
21
+ const layer = Layer.effect(Service, Effect.map(AuthSession, (sessions) => {
22
+ const issue = Effect.fn(`${id}.issue`)(function* (subjectId, ext) {
23
+ const encoded = yield* encodeExt(ext).pipe(Effect.mapError((error) => AuthTokenError.make({ message: `Session extension encoding failed: ${error.message}` })));
24
+ return yield* sessions.issue(subjectId, { ext: encoded });
25
+ });
26
+ return Service.of({
27
+ issue,
28
+ verify: Effect.fn(`${id}.verify`)(function* (token) {
29
+ const claims = yield* sessions.verify(token);
30
+ return {
31
+ claims,
32
+ ext: yield* Effect.option(decodeExt(claims.ext)),
33
+ renewal: Option.none()
34
+ };
35
+ }),
36
+ verifyAndRenew: Effect.fn(`${id}.verifyAndRenew`)(function* (token) {
37
+ const verified = yield* sessions.verifyAndRenew(token);
38
+ const ext = yield* Effect.option(decodeExt(verified.claims.ext));
39
+ return {
40
+ ...verified,
41
+ ext
42
+ };
43
+ }),
44
+ issueFromContext: Effect.fn(`${id}.issueFromContext`)(function* (context) {
45
+ const ext = build === void 0 ? yield* decodeContext(context).pipe(Effect.mapError((error) => AuthTokenError.make({ message: `Session extension construction failed: ${error.message}` }))) : yield* build(context);
46
+ return yield* issue(context.subjectId, ext);
47
+ })
48
+ });
49
+ }));
50
+ return Object.assign(Service, {
51
+ ext,
52
+ layer
53
+ });
54
+ };
55
+ /**
56
+ * Stateless session issuance and verification. Each token has a fixed expiry;
57
+ * authenticated HTTP activity can replace it after the configured renewal
58
+ * interval. There is no per-session revocation. Sign-out removes the browser
59
+ * cookie, and bulk invalidation happens through key removal or by bumping the
60
+ * configured session generation.
61
+ */
62
+ var AuthSession = class AuthSession extends Context.Service()("effect-auth/AuthSession") {
63
+ /**
64
+ * Declares an app-typed session service from one extension schema. Passing
65
+ * the schema directly automatically constructs extensions from compatible
66
+ * HTTP session context; schemas with derived inputs provide a `build`
67
+ * override. The core service remains opaque: this wrapper encodes before
68
+ * issuance and decodes after verification, preserving `None` for legacy or
69
+ * undecodable extensions.
70
+ */
71
+ static WithExt = makeAuthSessionWithExt;
72
+ static layer = Layer.effect(AuthSession)(Effect.gen(function* () {
73
+ const policy = yield* AuthPolicy;
74
+ const codec = yield* AuthTokenCodec;
75
+ const crypto = yield* Crypto.Crypto;
76
+ const issue = Effect.fn("AuthSession.issue")(function* (subjectId, options) {
77
+ const now = yield* DateTime.now;
78
+ const expiresAt = DateTime.addDuration(now, policy.sessionLifetime);
79
+ const uuid = yield* crypto.randomUUIDv4.pipe(Effect.mapError(() => AuthTokenError.make({ message: "Secure randomness unavailable" })));
80
+ const tokenId = yield* decodeSessionTokenId(uuid).pipe(Effect.orDie);
81
+ const claims = SessionClaims.make({
82
+ ver: 1,
83
+ gen: policy.sessionGeneration,
84
+ kid: codec.activeKeyId,
85
+ sub: subjectId,
86
+ ...options?.ext === void 0 ? {} : { ext: options.ext },
87
+ iss: policy.issuer,
88
+ aud: policy.audience,
89
+ iat: now,
90
+ exp: expiresAt,
91
+ jti: tokenId
92
+ });
93
+ const token = yield* codec.encodeSession(claims);
94
+ return IssuedSession.make({
95
+ token,
96
+ summary: SessionSummary.make({
97
+ subjectId,
98
+ expiresAt
99
+ })
100
+ });
101
+ });
102
+ const verify = Effect.fn("AuthSession.verify")(function* (token) {
103
+ const claims = yield* codec.decodeSession(token);
104
+ return yield* revalidateSessionClaims(claims, {
105
+ issuer: policy.issuer,
106
+ audience: policy.audience,
107
+ sessionGeneration: policy.sessionGeneration,
108
+ allowedSigningKeyIds: new Set(codec.keyIds)
109
+ });
110
+ });
111
+ const renewIfDue = Effect.fn("AuthSession.renewIfDue")(function* (claims) {
112
+ const now = yield* DateTime.now;
113
+ const issuedAtMillis = DateTime.toEpochMillis(claims.iat);
114
+ const tokenLifetimeMillis = DateTime.toEpochMillis(claims.exp) - issuedAtMillis;
115
+ const tokenAgeMillis = DateTime.toEpochMillis(now) - issuedAtMillis;
116
+ const configuredLifetimeMillis = Duration.toMillis(policy.sessionLifetime);
117
+ const renewalIntervalMillis = Duration.toMillis(policy.sessionRenewalInterval);
118
+ if (!(tokenLifetimeMillis !== configuredLifetimeMillis || tokenAgeMillis >= renewalIntervalMillis)) return Option.none();
119
+ const renewed = yield* issue(claims.sub, claims.ext === void 0 ? void 0 : { ext: claims.ext });
120
+ return Option.some(renewed);
121
+ });
122
+ return AuthSession.of({
123
+ issue,
124
+ verify,
125
+ verifyAndRenew: Effect.fn("AuthSession.verifyAndRenew")(function* (token) {
126
+ const claims = yield* verify(token);
127
+ return {
128
+ claims,
129
+ renewal: yield* renewIfDue(claims)
130
+ };
131
+ })
132
+ });
133
+ }));
134
+ };
135
+ //#endregion
136
+ export { AuthSession, IssuedSession };
137
+
138
+ //# sourceMappingURL=AuthSession.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthSession.mjs","names":[],"sources":["../src/AuthSession.ts"],"sourcesContent":["import {\n Context,\n Crypto,\n DateTime,\n Duration,\n Effect,\n Layer,\n Option,\n type Redacted,\n Schema,\n} from \"effect\";\n\nimport { AuthTokenCodec } from \"./AuthTokenCodec\";\nimport type { IdentityResolutionError, InvalidSession } from \"./Errors\";\nimport { AuthTokenError } from \"./Errors\";\nimport { AuthPolicy, revalidateSessionClaims } from \"./Policy\";\nimport {\n type Email,\n type SubjectId,\n SessionClaims,\n SessionSummary,\n SessionToken,\n SessionTokenId,\n} from \"./Schema\";\n\nexport class IssuedSession extends Schema.Class<IssuedSession>(\"effect-auth/IssuedSession\")({\n token: SessionToken,\n summary: SessionSummary,\n}) {}\n\n/** A verified session and an optional replacement issued by rolling renewal. */\nexport interface VerifiedSession {\n readonly claims: SessionClaims;\n readonly renewal: Option.Option<IssuedSession>;\n}\n\nconst decodeSessionTokenId = Schema.decodeEffect(SessionTokenId);\n\nexport interface IssueSessionOptions {\n /** App-defined claims, signed into the envelope but opaque to effect-auth. */\n readonly ext?: unknown;\n}\n\n/** Flow data available when effect-auth issues a session through its HTTP API. */\nexport interface SessionExtContext {\n readonly subjectId: SubjectId;\n readonly email: Email;\n}\n\n/** A verified session whose app-defined extension has been decoded by its schema. */\nexport interface VerifiedSessionWithExt<A> extends VerifiedSession {\n readonly ext: Option.Option<A>;\n}\n\nexport interface AuthSessionWithExtService<A> {\n readonly issue: (subjectId: SubjectId, ext: A) => Effect.Effect<IssuedSession, AuthTokenError>;\n readonly verify: (\n token: Redacted.Redacted<string>,\n ) => Effect.Effect<VerifiedSessionWithExt<A>, InvalidSession | AuthTokenError>;\n /** Verifies the token and renews it when the configured rolling interval is due. */\n readonly verifyAndRenew: (\n token: Redacted.Redacted<string>,\n ) => Effect.Effect<\n VerifiedSessionWithExt<A>,\n InvalidSession | AuthTokenError | IdentityResolutionError\n >;\n /** Issues from flow data using the optional builder in the declaration. */\n readonly issueFromContext: (\n context: SessionExtContext,\n ) => Effect.Effect<IssuedSession, AuthTokenError>;\n}\n\nexport type SessionExtBuilder<A> = (context: SessionExtContext) => Effect.Effect<A>;\n\ntype AuthSessionWithExtOptions<S extends Schema.Codec<unknown, unknown>> = {\n /** App-defined claims schema. The decoded type becomes the service extension type. */\n readonly ext: S;\n} & (SessionExtContext extends S[\"Encoded\"]\n ? {\n /** Overrides automatic decoding from the HTTP session context. */\n readonly build?: SessionExtBuilder<NoInfer<S[\"Type\"]>>;\n }\n : {\n /** Required when the schema cannot decode the HTTP session context directly. */\n readonly build: SessionExtBuilder<NoInfer<S[\"Type\"]>>;\n });\n\ntype AuthSessionWithExtDefinition<S extends Schema.Codec<unknown, unknown>> =\n SessionExtContext extends S[\"Encoded\"]\n ? S | AuthSessionWithExtOptions<S>\n : AuthSessionWithExtOptions<S>;\n\n/** Context service class produced by {@link AuthSession.WithExt}. */\nexport interface AuthSessionWithExtClass<Self, Id extends string, A> extends Context.ServiceClass<\n Self,\n Id,\n AuthSessionWithExtService<A>\n> {\n readonly ext: Schema.Codec<A, unknown>;\n readonly layer: Layer.Layer<Self, never, AuthSession>;\n}\n\nconst makeAuthSessionWithExt =\n <Self>() =>\n <const Id extends string, S extends Schema.Codec<unknown, unknown>>(\n id: Id,\n definition: AuthSessionWithExtDefinition<S>,\n ): AuthSessionWithExtClass<Self, Id, S[\"Type\"]> => {\n const definitionIsSchema = Schema.isSchema(definition);\n const ext = definitionIsSchema ? (definition as S) : definition.ext;\n const build = definitionIsSchema ? undefined : definition.build;\n const Service = Context.Service<Self, AuthSessionWithExtService<S[\"Type\"]>>()(id);\n const extCodec: Schema.Codec<S[\"Type\"], S[\"Encoded\"]> = ext;\n const encodeExt = Schema.encodeEffect(extCodec);\n const decodeContext = Schema.decodeEffect(extCodec);\n // oxlint-disable-next-line no-restricted-properties -- SessionClaims.ext is an intentionally unknown wire boundary.\n const decodeExt = Schema.decodeUnknownEffect(ext);\n\n const layer = Layer.effect(\n Service,\n Effect.map(AuthSession, (sessions) => {\n const issue = Effect.fn(`${id}.issue`)(function* (subjectId: SubjectId, ext: S[\"Type\"]) {\n const encoded = yield* encodeExt(ext).pipe(\n Effect.mapError((error) =>\n AuthTokenError.make({\n message: `Session extension encoding failed: ${error.message}`,\n }),\n ),\n );\n\n return yield* sessions.issue(subjectId, { ext: encoded });\n });\n\n return Service.of({\n issue,\n verify: Effect.fn(`${id}.verify`)(function* (token) {\n const claims = yield* sessions.verify(token);\n const ext = yield* Effect.option(decodeExt(claims.ext));\n\n return { claims, ext, renewal: Option.none() };\n }),\n verifyAndRenew: Effect.fn(`${id}.verifyAndRenew`)(function* (token) {\n const verified = yield* sessions.verifyAndRenew(token);\n const ext = yield* Effect.option(decodeExt(verified.claims.ext));\n\n return { ...verified, ext };\n }),\n issueFromContext: Effect.fn(`${id}.issueFromContext`)(function* (context) {\n const ext =\n build === undefined\n ? // The options type admits this branch only when the context\n // structurally satisfies the schema's encoded input. TS does\n // not narrow indexed access types through that conditional.\n yield* decodeContext(context as S[\"Encoded\"]).pipe(\n Effect.mapError((error) =>\n AuthTokenError.make({\n message: `Session extension construction failed: ${error.message}`,\n }),\n ),\n )\n : yield* build(context);\n\n return yield* issue(context.subjectId, ext);\n }),\n });\n }),\n );\n\n return Object.assign(Service, {\n ext,\n layer,\n });\n };\n\n/**\n * Stateless session issuance and verification. Each token has a fixed expiry;\n * authenticated HTTP activity can replace it after the configured renewal\n * interval. There is no per-session revocation. Sign-out removes the browser\n * cookie, and bulk invalidation happens through key removal or by bumping the\n * configured session generation.\n */\nexport class AuthSession extends Context.Service<\n AuthSession,\n {\n readonly issue: (\n subjectId: SubjectId,\n options?: IssueSessionOptions,\n ) => Effect.Effect<IssuedSession, AuthTokenError>;\n readonly verify: (\n token: Redacted.Redacted<string>,\n ) => Effect.Effect<SessionClaims, InvalidSession | AuthTokenError>;\n /** Verifies the token and issues a replacement when rolling renewal is due. */\n readonly verifyAndRenew: (\n token: Redacted.Redacted<string>,\n ) => Effect.Effect<VerifiedSession, InvalidSession | AuthTokenError | IdentityResolutionError>;\n }\n>()(\"effect-auth/AuthSession\") {\n /**\n * Declares an app-typed session service from one extension schema. Passing\n * the schema directly automatically constructs extensions from compatible\n * HTTP session context; schemas with derived inputs provide a `build`\n * override. The core service remains opaque: this wrapper encodes before\n * issuance and decodes after verification, preserving `None` for legacy or\n * undecodable extensions.\n */\n static readonly WithExt = makeAuthSessionWithExt;\n\n static readonly layer: Layer.Layer<AuthSession, never, AuthTokenCodec | Crypto.Crypto> =\n Layer.effect(AuthSession)(\n Effect.gen(function* () {\n const policy = yield* AuthPolicy;\n const codec = yield* AuthTokenCodec;\n const crypto = yield* Crypto.Crypto;\n\n const issue = Effect.fn(\"AuthSession.issue\")(function* (\n subjectId: SubjectId,\n options?: IssueSessionOptions,\n ) {\n const now = yield* DateTime.now;\n const expiresAt = DateTime.addDuration(now, policy.sessionLifetime);\n\n const uuid = yield* crypto.randomUUIDv4.pipe(\n Effect.mapError(() =>\n AuthTokenError.make({ message: \"Secure randomness unavailable\" }),\n ),\n );\n\n const tokenId = yield* decodeSessionTokenId(uuid).pipe(Effect.orDie);\n\n const claims = SessionClaims.make({\n ver: 1,\n gen: policy.sessionGeneration,\n kid: codec.activeKeyId,\n sub: subjectId,\n ...(options?.ext === undefined ? {} : { ext: options.ext }),\n iss: policy.issuer,\n aud: policy.audience,\n iat: now,\n exp: expiresAt,\n jti: tokenId,\n });\n\n const token = yield* codec.encodeSession(claims);\n\n return IssuedSession.make({\n token,\n summary: SessionSummary.make({ subjectId, expiresAt }),\n });\n });\n\n const verify = Effect.fn(\"AuthSession.verify\")(function* (\n token: Redacted.Redacted<string>,\n ) {\n const claims = yield* codec.decodeSession(token);\n\n return yield* revalidateSessionClaims(claims, {\n issuer: policy.issuer,\n audience: policy.audience,\n sessionGeneration: policy.sessionGeneration,\n allowedSigningKeyIds: new Set(codec.keyIds),\n });\n });\n\n const renewIfDue = Effect.fn(\"AuthSession.renewIfDue\")(function* (claims: SessionClaims) {\n const now = yield* DateTime.now;\n const issuedAtMillis = DateTime.toEpochMillis(claims.iat);\n const tokenLifetimeMillis = DateTime.toEpochMillis(claims.exp) - issuedAtMillis;\n const tokenAgeMillis = DateTime.toEpochMillis(now) - issuedAtMillis;\n const configuredLifetimeMillis = Duration.toMillis(policy.sessionLifetime);\n const renewalIntervalMillis = Duration.toMillis(policy.sessionRenewalInterval);\n\n const renewalDue =\n tokenLifetimeMillis !== configuredLifetimeMillis ||\n tokenAgeMillis >= renewalIntervalMillis;\n\n if (!renewalDue) return Option.none<IssuedSession>();\n\n const renewed = yield* issue(\n claims.sub,\n claims.ext === undefined ? undefined : { ext: claims.ext },\n );\n\n return Option.some(renewed);\n });\n\n return AuthSession.of({\n issue,\n verify,\n verifyAndRenew: Effect.fn(\"AuthSession.verifyAndRenew\")(function* (token) {\n const claims = yield* verify(token);\n const renewal = yield* renewIfDue(claims);\n\n return { claims, renewal };\n }),\n });\n }),\n );\n}\n"],"mappings":";;;;;;AAyBA,IAAa,gBAAb,cAAmC,OAAO,MAAqB,2BAA2B,CAAC,CAAC;CAC1F,OAAO;CACP,SAAS;AACX,CAAC,CAAC,CAAC,CAAC;AAQJ,MAAM,uBAAuB,OAAO,aAAa,cAAc;AAkE/D,MAAM,gCAGF,IACA,eACiD;CACjD,MAAM,qBAAqB,OAAO,SAAS,UAAU;CACrD,MAAM,MAAM,qBAAsB,aAAmB,WAAW;CAChE,MAAM,QAAQ,qBAAqB,KAAA,IAAY,WAAW;CAC1D,MAAM,UAAU,QAAQ,QAAoD,CAAC,CAAC,EAAE;CAChF,MAAM,WAAkD;CACxD,MAAM,YAAY,OAAO,aAAa,QAAQ;CAC9C,MAAM,gBAAgB,OAAO,aAAa,QAAQ;CAElD,MAAM,YAAY,OAAO,oBAAoB,GAAG;CAEhD,MAAM,QAAQ,MAAM,OAClB,SACA,OAAO,IAAI,cAAc,aAAa;EACpC,MAAM,QAAQ,OAAO,GAAG,GAAG,GAAG,OAAO,CAAC,CAAC,WAAW,WAAsB,KAAgB;GACtF,MAAM,UAAU,OAAO,UAAU,GAAG,CAAC,CAAC,KACpC,OAAO,UAAU,UACf,eAAe,KAAK,EAClB,SAAS,sCAAsC,MAAM,UACvD,CAAC,CACH,CACF;GAEA,OAAO,OAAO,SAAS,MAAM,WAAW,EAAE,KAAK,QAAQ,CAAC;EAC1D,CAAC;EAED,OAAO,QAAQ,GAAG;GAChB;GACA,QAAQ,OAAO,GAAG,GAAG,GAAG,QAAQ,CAAC,CAAC,WAAW,OAAO;IAClD,MAAM,SAAS,OAAO,SAAS,OAAO,KAAK;IAG3C,OAAO;KAAE;KAAQ,KAAA,OAFE,OAAO,OAAO,UAAU,OAAO,GAAG,CAAC;KAEhC,SAAS,OAAO,KAAK;IAAE;GAC/C,CAAC;GACD,gBAAgB,OAAO,GAAG,GAAG,GAAG,gBAAgB,CAAC,CAAC,WAAW,OAAO;IAClE,MAAM,WAAW,OAAO,SAAS,eAAe,KAAK;IACrD,MAAM,MAAM,OAAO,OAAO,OAAO,UAAU,SAAS,OAAO,GAAG,CAAC;IAE/D,OAAO;KAAE,GAAG;KAAU;IAAI;GAC5B,CAAC;GACD,kBAAkB,OAAO,GAAG,GAAG,GAAG,kBAAkB,CAAC,CAAC,WAAW,SAAS;IACxE,MAAM,MACJ,UAAU,KAAA,IAIN,OAAO,cAAc,OAAuB,CAAC,CAAC,KAC5C,OAAO,UAAU,UACf,eAAe,KAAK,EAClB,SAAS,0CAA0C,MAAM,UAC3D,CAAC,CACH,CACF,IACA,OAAO,MAAM,OAAO;IAE1B,OAAO,OAAO,MAAM,QAAQ,WAAW,GAAG;GAC5C,CAAC;EACH,CAAC;CACH,CAAC,CACH;CAEA,OAAO,OAAO,OAAO,SAAS;EAC5B;EACA;CACF,CAAC;AACH;;;;;;;;AASF,IAAa,cAAb,MAAa,oBAAoB,QAAQ,QAevC,CAAC,CAAC,yBAAyB,CAAC,CAAC;;;;;;;;;CAS7B,OAAgB,UAAU;CAE1B,OAAgB,QACd,MAAM,OAAO,WAAW,CAAC,CACvB,OAAO,IAAI,aAAa;EACtB,MAAM,SAAS,OAAO;EACtB,MAAM,QAAQ,OAAO;EACrB,MAAM,SAAS,OAAO,OAAO;EAE7B,MAAM,QAAQ,OAAO,GAAG,mBAAmB,CAAC,CAAC,WAC3C,WACA,SACA;GACA,MAAM,MAAM,OAAO,SAAS;GAC5B,MAAM,YAAY,SAAS,YAAY,KAAK,OAAO,eAAe;GAElE,MAAM,OAAO,OAAO,OAAO,aAAa,KACtC,OAAO,eACL,eAAe,KAAK,EAAE,SAAS,gCAAgC,CAAC,CAClE,CACF;GAEA,MAAM,UAAU,OAAO,qBAAqB,IAAI,CAAC,CAAC,KAAK,OAAO,KAAK;GAEnE,MAAM,SAAS,cAAc,KAAK;IAChC,KAAK;IACL,KAAK,OAAO;IACZ,KAAK,MAAM;IACX,KAAK;IACL,GAAI,SAAS,QAAQ,KAAA,IAAY,CAAC,IAAI,EAAE,KAAK,QAAQ,IAAI;IACzD,KAAK,OAAO;IACZ,KAAK,OAAO;IACZ,KAAK;IACL,KAAK;IACL,KAAK;GACP,CAAC;GAED,MAAM,QAAQ,OAAO,MAAM,cAAc,MAAM;GAE/C,OAAO,cAAc,KAAK;IACxB;IACA,SAAS,eAAe,KAAK;KAAE;KAAW;IAAU,CAAC;GACvD,CAAC;EACH,CAAC;EAED,MAAM,SAAS,OAAO,GAAG,oBAAoB,CAAC,CAAC,WAC7C,OACA;GACA,MAAM,SAAS,OAAO,MAAM,cAAc,KAAK;GAE/C,OAAO,OAAO,wBAAwB,QAAQ;IAC5C,QAAQ,OAAO;IACf,UAAU,OAAO;IACjB,mBAAmB,OAAO;IAC1B,sBAAsB,IAAI,IAAI,MAAM,MAAM;GAC5C,CAAC;EACH,CAAC;EAED,MAAM,aAAa,OAAO,GAAG,wBAAwB,CAAC,CAAC,WAAW,QAAuB;GACvF,MAAM,MAAM,OAAO,SAAS;GAC5B,MAAM,iBAAiB,SAAS,cAAc,OAAO,GAAG;GACxD,MAAM,sBAAsB,SAAS,cAAc,OAAO,GAAG,IAAI;GACjE,MAAM,iBAAiB,SAAS,cAAc,GAAG,IAAI;GACrD,MAAM,2BAA2B,SAAS,SAAS,OAAO,eAAe;GACzE,MAAM,wBAAwB,SAAS,SAAS,OAAO,sBAAsB;GAM7E,IAAI,EAHF,wBAAwB,4BACxB,kBAAkB,wBAEH,OAAO,OAAO,KAAoB;GAEnD,MAAM,UAAU,OAAO,MACrB,OAAO,KACP,OAAO,QAAQ,KAAA,IAAY,KAAA,IAAY,EAAE,KAAK,OAAO,IAAI,CAC3D;GAEA,OAAO,OAAO,KAAK,OAAO;EAC5B,CAAC;EAED,OAAO,YAAY,GAAG;GACpB;GACA;GACA,gBAAgB,OAAO,GAAG,4BAA4B,CAAC,CAAC,WAAW,OAAO;IACxE,MAAM,SAAS,OAAO,OAAO,KAAK;IAGlC,OAAO;KAAE;KAAQ,SAAA,OAFM,WAAW,MAAM;IAEf;GAC3B,CAAC;EACH,CAAC;CACH,CAAC,CACH;AACJ"}
@@ -0,0 +1,68 @@
1
+ import { ConsumeChallenge, ConsumeRegistration, NewChallenge, NewRegistration, PendingRegistration, TokenDigest, VerifiedEmail } from "./Schema.mjs";
2
+ import { AuthRateLimited, AuthStoreError, InvalidRegistration } from "./Errors.mjs";
3
+ import { ConsumeDecision } from "./auth/ConsumeDecision.mjs";
4
+ import { AuthStoreDecisions, ChallengeConsumeDecision } from "./internal/AuthStoreDecisions.mjs";
5
+ import { Context, Effect, Layer, Schema } from "effect";
6
+ //#region src/AuthStore.d.ts
7
+ type IssueChallengeError = AuthRateLimited | AuthStoreError;
8
+ declare const EmailOtpRejectionReason: Schema.Literals<readonly ["missing_challenge", "consumed_challenge", "superseded_challenge", "expired_challenge", "missing_challenge_series", "attempts_exhausted", "bad_code"]>;
9
+ declare const EmailOtpRejected_base: Schema.Class<EmailOtpRejected, Schema.TaggedStruct<"EmailOtpRejected", {
10
+ readonly reason: Schema.Literals<readonly ["missing_challenge", "consumed_challenge", "superseded_challenge", "expired_challenge", "missing_challenge_series", "attempts_exhausted", "bad_code"]>;
11
+ }>, import("effect/Cause").YieldableError>;
12
+ /** Internal rejection detail that the HTTP workflow collapses to `InvalidEmailOtp`. */
13
+ declare class EmailOtpRejected extends EmailOtpRejected_base {}
14
+ declare const AuthStoreBackend_base: Context.ServiceClass<AuthStoreBackend, "effect-auth/AuthStoreBackend", {
15
+ /** Resolves the stored value for a key, or `undefined` when absent. */
16
+ readonly get: (key: string) => Effect.Effect<unknown, AuthStoreError>;
17
+ readonly put: (key: string, value: unknown) => Effect.Effect<void, AuthStoreError>;
18
+ readonly remove: (key: string) => Effect.Effect<void, AuthStoreError>;
19
+ }>;
20
+ /**
21
+ * Deliberately narrow storage driver behind the store state machine: the
22
+ * in-memory map, Durable Object storage, or any keyed store whose writes
23
+ * become visible in order. Values handed to `put` are already JSON-safe
24
+ * encoded rows, so `get` legitimately yields `unknown`.
25
+ * Retain challenge rows through their original expiry, including after consumption.
26
+ */
27
+ declare class AuthStoreBackend extends AuthStoreBackend_base {
28
+ /** In-memory backend for tests and local development; never durable. */
29
+ static readonly layerMemory: Layer.Layer<AuthStoreBackend>;
30
+ }
31
+ declare const AuthStore_base: Context.ServiceClass<AuthStore, "effect-auth/AuthStore", {
32
+ readonly issueChallenge: (input: NewChallenge) => Effect.Effect<void, IssueChallengeError>;
33
+ /**
34
+ * Checks token digest, OTP digest, purpose, expiry, supersession,
35
+ * consumption, and attempt budget as one atomic operation. A failed
36
+ * comparison increments the rolling attempt budget; success consumes the
37
+ * challenge. The workflow logs the internal rejection reason, then
38
+ * collapses every failure to the public `InvalidEmailOtp`.
39
+ */
40
+ readonly consumeChallenge: (input: ConsumeChallenge) => Effect.Effect<VerifiedEmail, EmailOtpRejected | AuthStoreError>;
41
+ readonly issueRegistration: (input: NewRegistration) => Effect.Effect<void, AuthStoreError>;
42
+ readonly inspectRegistration: (tokenDigest: TokenDigest) => Effect.Effect<PendingRegistration, InvalidRegistration | AuthStoreError>;
43
+ readonly consumeRegistration: (input: ConsumeRegistration) => Effect.Effect<void, InvalidRegistration | AuthStoreError>;
44
+ }>;
45
+ /**
46
+ * Semantic persistence port for challenges and pending registrations, not
47
+ * CRUD. The consume operations must be atomic: exactly one of concurrent
48
+ * valid consumptions may succeed. Per-challenge attempts, resend cooldown,
49
+ * and email-scoped issuance limits live behind this contract; IP/network
50
+ * limits stay at the edge.
51
+ *
52
+ * Adapters either implement this interface directly against a store with real
53
+ * transactions, or provide an `AuthStoreBackend` to `layerBackend`. Either
54
+ * way, the conformance suite exported from `effect-auth/Testing` is the
55
+ * acceptance test.
56
+ */
57
+ declare class AuthStore extends AuthStore_base {
58
+ /** The canonical state machine over whichever `AuthStoreBackend` is provided. */
59
+ static readonly layerBackend: Layer.Layer<AuthStore, never, AuthStoreBackend>;
60
+ /**
61
+ * In-memory adapter for tests and local development. Never a durable
62
+ * production adapter.
63
+ */
64
+ static readonly layerMemory: Layer.Layer<AuthStore>;
65
+ }
66
+ //#endregion
67
+ export { AuthStore, AuthStoreBackend, AuthStoreDecisions, type ChallengeConsumeDecision, type ConsumeDecision, EmailOtpRejected, EmailOtpRejectionReason, IssueChallengeError };
68
+ //# sourceMappingURL=AuthStore.d.mts.map
@@ -0,0 +1,194 @@
1
+ import { NewChallenge, NewRegistration, PendingRegistration, VerifiedEmail, timingSafeStringEqual } from "./Schema.mjs";
2
+ import { AuthRateLimited, AuthStoreError, InvalidRegistration } from "./Errors.mjs";
3
+ import { AuthStoreDecisions } from "./internal/AuthStoreDecisions.mjs";
4
+ import { Context, DateTime, Duration, Effect, Layer, Schema, Semaphore } from "effect";
5
+ //#region src/AuthStore.ts
6
+ const EmailOtpRejectionReason = Schema.Literals([
7
+ "missing_challenge",
8
+ "consumed_challenge",
9
+ "superseded_challenge",
10
+ "expired_challenge",
11
+ "missing_challenge_series",
12
+ "attempts_exhausted",
13
+ "bad_code"
14
+ ]);
15
+ /** Internal rejection detail that the HTTP workflow collapses to `InvalidEmailOtp`. */
16
+ var EmailOtpRejected = class extends Schema.TaggedError()("EmailOtpRejected", { reason: EmailOtpRejectionReason }) {};
17
+ /**
18
+ * Deliberately narrow storage driver behind the store state machine: the
19
+ * in-memory map, Durable Object storage, or any keyed store whose writes
20
+ * become visible in order. Values handed to `put` are already JSON-safe
21
+ * encoded rows, so `get` legitimately yields `unknown`.
22
+ * Retain challenge rows through their original expiry, including after consumption.
23
+ */
24
+ var AuthStoreBackend = class AuthStoreBackend extends Context.Service()("effect-auth/AuthStoreBackend") {
25
+ /** In-memory backend for tests and local development; never durable. */
26
+ static layerMemory = Layer.sync(AuthStoreBackend)(() => {
27
+ const entries = /* @__PURE__ */ new Map();
28
+ return AuthStoreBackend.of({
29
+ get: (key) => Effect.sync(() => entries.get(key)),
30
+ put: (key, value) => Effect.sync(() => {
31
+ entries.set(key, value);
32
+ }),
33
+ remove: (key) => Effect.sync(() => {
34
+ entries.delete(key);
35
+ })
36
+ });
37
+ });
38
+ };
39
+ var StoredChallenge = class extends Schema.Class("effect-auth/StoredChallenge")({
40
+ challenge: NewChallenge,
41
+ consumed: Schema.Boolean,
42
+ superseded: Schema.Boolean
43
+ }) {};
44
+ var StoredEmailSeries = class extends Schema.Class("effect-auth/StoredEmailSeries")({
45
+ activeChallengeKey: Schema.UndefinedOr(Schema.String),
46
+ lastIssuedAt: Schema.DateTimeUtcFromMillis,
47
+ rollingAttempts: Schema.Natural,
48
+ windowExpiresAt: Schema.DateTimeUtcFromMillis
49
+ }) {};
50
+ var StoredRegistration = class extends Schema.Class("effect-auth/StoredRegistration")({
51
+ registration: NewRegistration,
52
+ consumed: Schema.Boolean
53
+ }) {};
54
+ const decodeChallengeRow = Schema.decodeUnknownEffect(StoredChallenge);
55
+ const encodeChallengeRow = Schema.encodeEffect(StoredChallenge);
56
+ const decodeSeriesRow = Schema.decodeUnknownEffect(StoredEmailSeries);
57
+ const encodeSeriesRow = Schema.encodeEffect(StoredEmailSeries);
58
+ const decodeRegistrationRow = Schema.decodeUnknownEffect(StoredRegistration);
59
+ const encodeRegistrationRow = Schema.encodeEffect(StoredRegistration);
60
+ const challengeKey = (tokenDigest) => `challenge:${tokenDigest}`;
61
+ const seriesKey = (purpose, email) => `series:${purpose}|${email}`;
62
+ const registrationKey = (tokenDigest) => `registration:${tokenDigest}`;
63
+ /**
64
+ * The canonical store state machine over an `AuthStoreBackend`. Operations are
65
+ * serialized through an internal semaphore, so the exactly-once consume
66
+ * guarantees hold even when the backend's reads and writes suspend. Runtimes
67
+ * that already serialize requests (a Durable Object's input gates) get a
68
+ * second, redundant layer of protection.
69
+ */
70
+ const makeBackendAuthStore = Effect.gen(function* () {
71
+ const backend = yield* AuthStoreBackend;
72
+ const serialized = (yield* Semaphore.make(1)).withPermits(1);
73
+ const read = (key, decode) => backend.get(key).pipe(Effect.mapError(() => AuthStoreError.make({ message: "Auth store read failed" })), Effect.flatMap((value) => value === void 0 ? Effect.succeed(void 0) : decode(value).pipe(Effect.mapError(() => AuthStoreError.make({ message: "Corrupt auth store row" })))));
74
+ const write = (key, encode, row) => encode(row).pipe(Effect.mapError(() => AuthStoreError.make({ message: "Auth store write failed" })), Effect.flatMap((value) => backend.put(key, value).pipe(Effect.mapError(() => AuthStoreError.make({ message: "Auth store write failed" })))));
75
+ const issueChallenge = Effect.fn("AuthStore.issueChallenge")(function* (input) {
76
+ const now = DateTime.toEpochMillis(yield* DateTime.now);
77
+ if ((yield* read(challengeKey(input.tokenDigest), decodeChallengeRow)) !== void 0) return yield* AuthRateLimited.make({ retryAfterSeconds: 1 });
78
+ const key = seriesKey(input.purpose, input.email);
79
+ const series = yield* read(key, decodeSeriesRow);
80
+ const cooldownMillis = Duration.toMillis(input.resendCooldown);
81
+ if (series !== void 0) {
82
+ const lastIssuedAt = DateTime.toEpochMillis(series.lastIssuedAt);
83
+ if (now < lastIssuedAt + cooldownMillis) return yield* AuthRateLimited.make({ retryAfterSeconds: Math.ceil((lastIssuedAt + cooldownMillis - now) / 1e3) });
84
+ if (series.activeChallengeKey !== void 0) {
85
+ const active = yield* read(series.activeChallengeKey, decodeChallengeRow);
86
+ if (active !== void 0 && !active.superseded) yield* write(series.activeChallengeKey, encodeChallengeRow, StoredChallenge.make({
87
+ ...active,
88
+ superseded: true
89
+ }));
90
+ }
91
+ }
92
+ const rollingAttempts = series !== void 0 && now < DateTime.toEpochMillis(series.windowExpiresAt) ? series.rollingAttempts : 0;
93
+ yield* write(challengeKey(input.tokenDigest), encodeChallengeRow, StoredChallenge.make({
94
+ challenge: input,
95
+ consumed: false,
96
+ superseded: false
97
+ }));
98
+ yield* write(key, encodeSeriesRow, StoredEmailSeries.make({
99
+ activeChallengeKey: challengeKey(input.tokenDigest),
100
+ lastIssuedAt: yield* DateTime.now,
101
+ rollingAttempts,
102
+ windowExpiresAt: input.expiresAt
103
+ }));
104
+ });
105
+ const consumeChallenge = Effect.fn("AuthStore.consumeChallenge")(function* (input) {
106
+ const reject = (reason) => EmailOtpRejected.make({ reason });
107
+ const now = DateTime.toEpochMillis(yield* DateTime.now);
108
+ const row = yield* read(challengeKey(input.tokenDigest), decodeChallengeRow);
109
+ if (row === void 0) return yield* reject("missing_challenge");
110
+ const key = seriesKey(row.challenge.purpose, row.challenge.email);
111
+ const series = yield* read(key, decodeSeriesRow);
112
+ if (row.consumed) return yield* reject("consumed_challenge");
113
+ if (row.superseded) return yield* reject("superseded_challenge");
114
+ if (now >= DateTime.toEpochMillis(row.challenge.expiresAt)) return yield* reject("expired_challenge");
115
+ if (series === void 0) return yield* reject("missing_challenge_series");
116
+ if (series.rollingAttempts >= row.challenge.attemptLimit) return yield* reject("attempts_exhausted");
117
+ const candidate = input.otpDigests[row.challenge.otpKeyId];
118
+ if (!(candidate !== void 0 && timingSafeStringEqual(candidate, row.challenge.otpDigest))) {
119
+ yield* write(key, encodeSeriesRow, StoredEmailSeries.make({
120
+ ...series,
121
+ rollingAttempts: series.rollingAttempts + 1
122
+ }));
123
+ return yield* reject("bad_code");
124
+ }
125
+ yield* write(challengeKey(input.tokenDigest), encodeChallengeRow, StoredChallenge.make({
126
+ ...row,
127
+ consumed: true
128
+ }));
129
+ yield* backend.remove(key).pipe(Effect.mapError(() => AuthStoreError.make({ message: "Auth store write failed" })));
130
+ return VerifiedEmail.make({
131
+ email: row.challenge.email,
132
+ purpose: row.challenge.purpose
133
+ });
134
+ });
135
+ const issueRegistration = Effect.fn("AuthStore.issueRegistration")(function* (input) {
136
+ yield* write(registrationKey(input.tokenDigest), encodeRegistrationRow, StoredRegistration.make({
137
+ registration: input,
138
+ consumed: false
139
+ }));
140
+ });
141
+ const inspectRegistration = Effect.fn("AuthStore.inspectRegistration")(function* (tokenDigest) {
142
+ const now = DateTime.toEpochMillis(yield* DateTime.now);
143
+ const row = yield* read(registrationKey(tokenDigest), decodeRegistrationRow);
144
+ if (row === void 0 || row.consumed || now >= DateTime.toEpochMillis(row.registration.expiresAt)) return yield* InvalidRegistration.make();
145
+ return PendingRegistration.make({
146
+ registrationId: row.registration.registrationId,
147
+ email: row.registration.email,
148
+ purpose: row.registration.purpose,
149
+ issuedAt: row.registration.issuedAt,
150
+ expiresAt: row.registration.expiresAt
151
+ });
152
+ });
153
+ const consumeRegistration = Effect.fn("AuthStore.consumeRegistration")(function* (input) {
154
+ const now = DateTime.toEpochMillis(yield* DateTime.now);
155
+ const row = yield* read(registrationKey(input.tokenDigest), decodeRegistrationRow);
156
+ if (row === void 0 || row.consumed || now >= DateTime.toEpochMillis(row.registration.expiresAt)) return yield* InvalidRegistration.make();
157
+ yield* write(registrationKey(input.tokenDigest), encodeRegistrationRow, StoredRegistration.make({
158
+ ...row,
159
+ consumed: true
160
+ }));
161
+ });
162
+ return {
163
+ issueChallenge: (input) => serialized(issueChallenge(input)),
164
+ consumeChallenge: (input) => serialized(consumeChallenge(input)),
165
+ issueRegistration: (input) => serialized(issueRegistration(input)),
166
+ inspectRegistration: (tokenDigest) => serialized(inspectRegistration(tokenDigest)),
167
+ consumeRegistration: (input) => serialized(consumeRegistration(input))
168
+ };
169
+ });
170
+ /**
171
+ * Semantic persistence port for challenges and pending registrations, not
172
+ * CRUD. The consume operations must be atomic: exactly one of concurrent
173
+ * valid consumptions may succeed. Per-challenge attempts, resend cooldown,
174
+ * and email-scoped issuance limits live behind this contract; IP/network
175
+ * limits stay at the edge.
176
+ *
177
+ * Adapters either implement this interface directly against a store with real
178
+ * transactions, or provide an `AuthStoreBackend` to `layerBackend`. Either
179
+ * way, the conformance suite exported from `effect-auth/Testing` is the
180
+ * acceptance test.
181
+ */
182
+ var AuthStore = class AuthStore extends Context.Service()("effect-auth/AuthStore") {
183
+ /** The canonical state machine over whichever `AuthStoreBackend` is provided. */
184
+ static layerBackend = Layer.effect(AuthStore)(makeBackendAuthStore);
185
+ /**
186
+ * In-memory adapter for tests and local development. Never a durable
187
+ * production adapter.
188
+ */
189
+ static layerMemory = AuthStore.layerBackend.pipe(Layer.provide(AuthStoreBackend.layerMemory));
190
+ };
191
+ //#endregion
192
+ export { AuthStore, AuthStoreBackend, AuthStoreDecisions, EmailOtpRejected, EmailOtpRejectionReason };
193
+
194
+ //# sourceMappingURL=AuthStore.mjs.map