@yielded/auth 0.1.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1466) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +18 -0
  3. package/dist/Atom.d.mts +5 -0
  4. package/dist/Atom.mjs +5 -0
  5. package/dist/Auth.d.mts +9 -0
  6. package/dist/Auth.mjs +7 -0
  7. package/dist/AuthContract.d.mts +4 -0
  8. package/dist/AuthContract.mjs +4 -0
  9. package/dist/AuthSession.d.mts +82 -0
  10. package/dist/AuthSession.mjs +138 -0
  11. package/dist/AuthSession.mjs.map +1 -0
  12. package/dist/AuthStore.d.mts +68 -0
  13. package/dist/AuthStore.mjs +194 -0
  14. package/dist/AuthStore.mjs.map +1 -0
  15. package/dist/AuthTokenCodec.d.mts +40 -0
  16. package/dist/AuthTokenCodec.mjs +104 -0
  17. package/dist/AuthTokenCodec.mjs.map +1 -0
  18. package/dist/Client.d.mts +2 -0
  19. package/dist/Client.mjs +2 -0
  20. package/dist/Cloudflare.d.mts +89 -0
  21. package/dist/Cloudflare.mjs +166 -0
  22. package/dist/Cloudflare.mjs.map +1 -0
  23. package/dist/Drizzle.d.mts +28 -0
  24. package/dist/Drizzle.mjs +27 -0
  25. package/dist/DrizzleD1.d.mts +935 -0
  26. package/dist/DrizzleD1.mjs +29 -0
  27. package/dist/DrizzleD1.mjs.map +1 -0
  28. package/dist/DrizzleLibsql.d.mts +2288 -0
  29. package/dist/DrizzleLibsql.mjs +85 -0
  30. package/dist/DrizzleLibsql.mjs.map +1 -0
  31. package/dist/DrizzleMysql2.d.mts +1809 -0
  32. package/dist/DrizzleMysql2.mjs +55 -0
  33. package/dist/DrizzleMysql2.mjs.map +1 -0
  34. package/dist/DrizzlePglite.d.mts +1808 -0
  35. package/dist/DrizzlePglite.mjs +45 -0
  36. package/dist/DrizzlePglite.mjs.map +1 -0
  37. package/dist/DrizzlePostgres.d.mts +1808 -0
  38. package/dist/DrizzlePostgres.mjs +45 -0
  39. package/dist/DrizzlePostgres.mjs.map +1 -0
  40. package/dist/DrizzleSqliteBun.d.mts +2287 -0
  41. package/dist/DrizzleSqliteBun.mjs +62 -0
  42. package/dist/DrizzleSqliteBun.mjs.map +1 -0
  43. package/dist/DrizzleSqliteDo.d.mts +2343 -0
  44. package/dist/DrizzleSqliteDo.mjs +105 -0
  45. package/dist/DrizzleSqliteDo.mjs.map +1 -0
  46. package/dist/DrizzleSqliteNode.d.mts +2287 -0
  47. package/dist/DrizzleSqliteNode.mjs +62 -0
  48. package/dist/DrizzleSqliteNode.mjs.map +1 -0
  49. package/dist/DrizzleSqliteWasm.d.mts +2287 -0
  50. package/dist/DrizzleSqliteWasm.mjs +62 -0
  51. package/dist/DrizzleSqliteWasm.mjs.map +1 -0
  52. package/dist/Email.d.mts +12 -0
  53. package/dist/Email.mjs +11 -0
  54. package/dist/EmailOtp.d.mts +42 -0
  55. package/dist/EmailOtp.mjs +120 -0
  56. package/dist/EmailOtp.mjs.map +1 -0
  57. package/dist/EmailOtpSender.d.mts +22 -0
  58. package/dist/EmailOtpSender.mjs +18 -0
  59. package/dist/EmailOtpSender.mjs.map +1 -0
  60. package/dist/Errors.d.mts +55 -0
  61. package/dist/Errors.mjs +31 -0
  62. package/dist/Errors.mjs.map +1 -0
  63. package/dist/GitHub.d.mts +5 -0
  64. package/dist/GitHub.mjs +4 -0
  65. package/dist/Hooks.d.mts +6 -0
  66. package/dist/Hooks.mjs +6 -0
  67. package/dist/Http.d.mts +12 -0
  68. package/dist/Http.mjs +12 -0
  69. package/dist/HttpServer.d.mts +103 -0
  70. package/dist/HttpServer.mjs +326 -0
  71. package/dist/HttpServer.mjs.map +1 -0
  72. package/dist/Identity.d.mts +9 -0
  73. package/dist/Identity.mjs +9 -0
  74. package/dist/IdentityResolver.d.mts +16 -0
  75. package/dist/IdentityResolver.mjs +12 -0
  76. package/dist/IdentityResolver.mjs.map +1 -0
  77. package/dist/OAuth.d.mts +36 -0
  78. package/dist/OAuth.mjs +35 -0
  79. package/dist/OpenIdClient.d.mts +3 -0
  80. package/dist/OpenIdClient.mjs +3 -0
  81. package/dist/OpenIdClientConnected.d.mts +4 -0
  82. package/dist/OpenIdClientConnected.mjs +3 -0
  83. package/dist/OperationHttp.d.mts +3 -0
  84. package/dist/OperationHttp.mjs +3 -0
  85. package/dist/OperationHttpClient.d.mts +2 -0
  86. package/dist/OperationHttpClient.mjs +2 -0
  87. package/dist/OperationHttpServer.d.mts +5 -0
  88. package/dist/OperationHttpServer.mjs +4 -0
  89. package/dist/Operations.d.mts +8 -0
  90. package/dist/Operations.mjs +8 -0
  91. package/dist/Passkey.d.mts +12 -0
  92. package/dist/Passkey.mjs +12 -0
  93. package/dist/PasskeyBrowser.d.mts +4 -0
  94. package/dist/PasskeyBrowser.mjs +4 -0
  95. package/dist/PasskeyContract.d.mts +641 -0
  96. package/dist/PasskeyContract.mjs +174 -0
  97. package/dist/PasskeyContract.mjs.map +1 -0
  98. package/dist/PasskeyPassword.d.mts +412 -0
  99. package/dist/PasskeyPassword.mjs +174 -0
  100. package/dist/PasskeyPassword.mjs.map +1 -0
  101. package/dist/PasskeySimpleWebAuthn.d.mts +3 -0
  102. package/dist/PasskeySimpleWebAuthn.mjs +3 -0
  103. package/dist/Password.d.mts +19 -0
  104. package/dist/Password.mjs +17 -0
  105. package/dist/PasswordAuth.d.mts +45 -0
  106. package/dist/PasswordAuth.mjs +79 -0
  107. package/dist/PasswordAuth.mjs.map +1 -0
  108. package/dist/PasswordCredentialStore.d.mts +46 -0
  109. package/dist/PasswordCredentialStore.mjs +62 -0
  110. package/dist/PasswordCredentialStore.mjs.map +1 -0
  111. package/dist/PasswordHasher.d.mts +31 -0
  112. package/dist/PasswordHasher.mjs +76 -0
  113. package/dist/PasswordHasher.mjs.map +1 -0
  114. package/dist/PhoneOtp.d.mts +11 -0
  115. package/dist/PhoneOtp.mjs +11 -0
  116. package/dist/Policy.d.mts +52 -0
  117. package/dist/Policy.mjs +36 -0
  118. package/dist/Policy.mjs.map +1 -0
  119. package/dist/Proofs.d.mts +14 -0
  120. package/dist/Proofs.mjs +13 -0
  121. package/dist/Rpc.d.mts +12 -0
  122. package/dist/Rpc.mjs +11 -0
  123. package/dist/Rpc.mjs.map +1 -0
  124. package/dist/Schema.d.mts +160 -0
  125. package/dist/Schema.mjs +141 -0
  126. package/dist/Schema.mjs.map +1 -0
  127. package/dist/SessionContract.d.mts +3 -0
  128. package/dist/SessionContract.mjs +3 -0
  129. package/dist/Sessions.d.mts +14 -0
  130. package/dist/Sessions.mjs +12 -0
  131. package/dist/Testing.d.mts +7 -0
  132. package/dist/Testing.mjs +7 -0
  133. package/dist/Totp.d.mts +8 -0
  134. package/dist/Totp.mjs +8 -0
  135. package/dist/TotpContract.d.mts +318 -0
  136. package/dist/TotpContract.mjs +119 -0
  137. package/dist/TotpContract.mjs.map +1 -0
  138. package/dist/WebCrypto.d.mts +28 -0
  139. package/dist/WebCrypto.mjs +42 -0
  140. package/dist/WebCrypto.mjs.map +1 -0
  141. package/dist/Workflows.d.mts +16 -0
  142. package/dist/Workflows.mjs +11 -0
  143. package/dist/Workflows.mjs.map +1 -0
  144. package/dist/atom/AuthAtomLifetime.d.mts +35 -0
  145. package/dist/atom/AuthAtomLifetime.mjs +50 -0
  146. package/dist/atom/AuthAtomLifetime.mjs.map +1 -0
  147. package/dist/atom/AuthAtomWorkflow.d.mts +17 -0
  148. package/dist/atom/AuthAtomWorkflow.mjs +9 -0
  149. package/dist/atom/AuthAtomWorkflow.mjs.map +1 -0
  150. package/dist/atom/client.d.mts +43 -0
  151. package/dist/atom/client.mjs +168 -0
  152. package/dist/atom/client.mjs.map +1 -0
  153. package/dist/atom/operations.d.mts +35 -0
  154. package/dist/atom/operations.mjs +58 -0
  155. package/dist/atom/operations.mjs.map +1 -0
  156. package/dist/atom/scoped-runtime.mjs +151 -0
  157. package/dist/atom/scoped-runtime.mjs.map +1 -0
  158. package/dist/auth/Auth.d.mts +7806 -0
  159. package/dist/auth/Auth.mjs +141 -0
  160. package/dist/auth/Auth.mjs.map +1 -0
  161. package/dist/auth/AuthConfigurationError.d.mts +10 -0
  162. package/dist/auth/AuthConfigurationError.mjs +14 -0
  163. package/dist/auth/AuthConfigurationError.mjs.map +1 -0
  164. package/dist/auth/AuthRequest.d.mts +21 -0
  165. package/dist/auth/AuthRequest.mjs +10 -0
  166. package/dist/auth/AuthRequest.mjs.map +1 -0
  167. package/dist/auth/AuthStrategy.d.mts +23 -0
  168. package/dist/auth/AuthStrategy.mjs +33 -0
  169. package/dist/auth/AuthStrategy.mjs.map +1 -0
  170. package/dist/auth/ConsumeDecision.d.mts +11 -0
  171. package/dist/auth/actions.d.mts +18 -0
  172. package/dist/auth/actions.mjs +70 -0
  173. package/dist/auth/actions.mjs.map +1 -0
  174. package/dist/auth/defaults.mjs +12 -0
  175. package/dist/auth/defaults.mjs.map +1 -0
  176. package/dist/auth/definition.d.mts +46 -0
  177. package/dist/auth/session.d.mts +27 -0
  178. package/dist/auth/session.mjs +56 -0
  179. package/dist/auth/session.mjs.map +1 -0
  180. package/dist/drizzle/D1BatchStatements.d.mts +11 -0
  181. package/dist/drizzle/D1BatchStatements.mjs +8 -0
  182. package/dist/drizzle/D1BatchStatements.mjs.map +1 -0
  183. package/dist/drizzle/PasswordPreparedPostconditions.mjs +12 -0
  184. package/dist/drizzle/PasswordPreparedPostconditions.mjs.map +1 -0
  185. package/dist/drizzle/SuppliedService.d.mts +10 -0
  186. package/dist/drizzle/d1-emails.d.mts +68 -0
  187. package/dist/drizzle/d1-emails.mjs +580 -0
  188. package/dist/drizzle/d1-emails.mjs.map +1 -0
  189. package/dist/drizzle/d1-generated-statement.mjs +79 -0
  190. package/dist/drizzle/d1-generated-statement.mjs.map +1 -0
  191. package/dist/drizzle/d1-identity.d.mts +33 -0
  192. package/dist/drizzle/d1-identity.mjs +120 -0
  193. package/dist/drizzle/d1-identity.mjs.map +1 -0
  194. package/dist/drizzle/d1-oauth.d.mts +316 -0
  195. package/dist/drizzle/d1-oauth.mjs +79 -0
  196. package/dist/drizzle/d1-oauth.mjs.map +1 -0
  197. package/dist/drizzle/d1-passkey.d.mts +52 -0
  198. package/dist/drizzle/d1-passkey.mjs +97 -0
  199. package/dist/drizzle/d1-passkey.mjs.map +1 -0
  200. package/dist/drizzle/d1-password-prepared.d.mts +27 -0
  201. package/dist/drizzle/d1-password-prepared.mjs +464 -0
  202. package/dist/drizzle/d1-password-prepared.mjs.map +1 -0
  203. package/dist/drizzle/d1-passwords.d.mts +96 -0
  204. package/dist/drizzle/d1-passwords.mjs +1008 -0
  205. package/dist/drizzle/d1-passwords.mjs.map +1 -0
  206. package/dist/drizzle/d1-phone.d.mts +29 -0
  207. package/dist/drizzle/d1-phone.mjs +33 -0
  208. package/dist/drizzle/d1-phone.mjs.map +1 -0
  209. package/dist/drizzle/d1-planning.d.mts +12 -0
  210. package/dist/drizzle/d1-planning.mjs +43 -0
  211. package/dist/drizzle/d1-planning.mjs.map +1 -0
  212. package/dist/drizzle/d1-proofs.d.mts +88 -0
  213. package/dist/drizzle/d1-proofs.mjs +833 -0
  214. package/dist/drizzle/d1-proofs.mjs.map +1 -0
  215. package/dist/drizzle/d1-sessions.d.mts +77 -0
  216. package/dist/drizzle/d1-sessions.mjs +970 -0
  217. package/dist/drizzle/d1-sessions.mjs.map +1 -0
  218. package/dist/drizzle/d1-totp.d.mts +27 -0
  219. package/dist/drizzle/d1-totp.mjs +28 -0
  220. package/dist/drizzle/d1-totp.mjs.map +1 -0
  221. package/dist/drizzle/email-model.d.mts +352 -0
  222. package/dist/drizzle/email-model.mjs +21 -0
  223. package/dist/drizzle/email-model.mjs.map +1 -0
  224. package/dist/drizzle/email-registration.d.mts +33 -0
  225. package/dist/drizzle/email-registration.mjs +238 -0
  226. package/dist/drizzle/email-registration.mjs.map +1 -0
  227. package/dist/drizzle/email-sql.d.mts +18 -0
  228. package/dist/drizzle/email-sql.mjs +473 -0
  229. package/dist/drizzle/email-sql.mjs.map +1 -0
  230. package/dist/drizzle/email-target.d.mts +28 -0
  231. package/dist/drizzle/email-target.mjs +75 -0
  232. package/dist/drizzle/email-target.mjs.map +1 -0
  233. package/dist/drizzle/model.d.mts +259 -0
  234. package/dist/drizzle/model.mjs +81 -0
  235. package/dist/drizzle/model.mjs.map +1 -0
  236. package/dist/drizzle/mysql-emails.d.mts +82 -0
  237. package/dist/drizzle/mysql-emails.mjs +38 -0
  238. package/dist/drizzle/mysql-emails.mjs.map +1 -0
  239. package/dist/drizzle/mysql-identity.d.mts +24 -0
  240. package/dist/drizzle/mysql-identity.mjs +95 -0
  241. package/dist/drizzle/mysql-identity.mjs.map +1 -0
  242. package/dist/drizzle/mysql-password-prepared.d.mts +32 -0
  243. package/dist/drizzle/mysql-password-prepared.mjs +16 -0
  244. package/dist/drizzle/mysql-password-prepared.mjs.map +1 -0
  245. package/dist/drizzle/mysql-passwords.d.mts +102 -0
  246. package/dist/drizzle/mysql-passwords.mjs +38 -0
  247. package/dist/drizzle/mysql-passwords.mjs.map +1 -0
  248. package/dist/drizzle/mysql-proofs.d.mts +83 -0
  249. package/dist/drizzle/mysql-proofs.mjs +23 -0
  250. package/dist/drizzle/mysql-proofs.mjs.map +1 -0
  251. package/dist/drizzle/mysql-sessions.d.mts +250 -0
  252. package/dist/drizzle/mysql-sessions.mjs +53 -0
  253. package/dist/drizzle/mysql-sessions.mjs.map +1 -0
  254. package/dist/drizzle/mysql.d.mts +73 -0
  255. package/dist/drizzle/mysql.mjs +221 -0
  256. package/dist/drizzle/mysql.mjs.map +1 -0
  257. package/dist/drizzle/oauth-accounts.mjs +361 -0
  258. package/dist/drizzle/oauth-accounts.mjs.map +1 -0
  259. package/dist/drizzle/oauth-connected-access.mjs +210 -0
  260. package/dist/drizzle/oauth-connected-access.mjs.map +1 -0
  261. package/dist/drizzle/oauth-connected-collection.mjs +202 -0
  262. package/dist/drizzle/oauth-connected-collection.mjs.map +1 -0
  263. package/dist/drizzle/oauth-connected-custody.mjs +146 -0
  264. package/dist/drizzle/oauth-connected-custody.mjs.map +1 -0
  265. package/dist/drizzle/oauth-connected-drivers.mjs +78 -0
  266. package/dist/drizzle/oauth-connected-drivers.mjs.map +1 -0
  267. package/dist/drizzle/oauth-connected-flow.mjs +248 -0
  268. package/dist/drizzle/oauth-connected-flow.mjs.map +1 -0
  269. package/dist/drizzle/oauth-connected-input.mjs +105 -0
  270. package/dist/drizzle/oauth-connected-input.mjs.map +1 -0
  271. package/dist/drizzle/oauth-connected-maintenance.mjs +215 -0
  272. package/dist/drizzle/oauth-connected-maintenance.mjs.map +1 -0
  273. package/dist/drizzle/oauth-connected-management.mjs +228 -0
  274. package/dist/drizzle/oauth-connected-management.mjs.map +1 -0
  275. package/dist/drizzle/oauth-connected-model.d.mts +278 -0
  276. package/dist/drizzle/oauth-connected-model.mjs +22 -0
  277. package/dist/drizzle/oauth-connected-model.mjs.map +1 -0
  278. package/dist/drizzle/oauth-connected-reference.d.mts +17 -0
  279. package/dist/drizzle/oauth-connected-reference.mjs +53 -0
  280. package/dist/drizzle/oauth-connected-reference.mjs.map +1 -0
  281. package/dist/drizzle/oauth-connected-settlement.mjs +117 -0
  282. package/dist/drizzle/oauth-connected-settlement.mjs.map +1 -0
  283. package/dist/drizzle/oauth-connected-state.d.mts +16 -0
  284. package/dist/drizzle/oauth-connected-state.mjs +422 -0
  285. package/dist/drizzle/oauth-connected-state.mjs.map +1 -0
  286. package/dist/drizzle/oauth-connected-target.d.mts +114 -0
  287. package/dist/drizzle/oauth-connected-target.mjs +94 -0
  288. package/dist/drizzle/oauth-connected-target.mjs.map +1 -0
  289. package/dist/drizzle/oauth-drivers.mjs +53 -0
  290. package/dist/drizzle/oauth-drivers.mjs.map +1 -0
  291. package/dist/drizzle/oauth-flow.d.mts +7 -0
  292. package/dist/drizzle/oauth-flow.mjs +255 -0
  293. package/dist/drizzle/oauth-flow.mjs.map +1 -0
  294. package/dist/drizzle/oauth-input.mjs +130 -0
  295. package/dist/drizzle/oauth-input.mjs.map +1 -0
  296. package/dist/drizzle/oauth-model.d.mts +468 -0
  297. package/dist/drizzle/oauth-model.mjs +49 -0
  298. package/dist/drizzle/oauth-model.mjs.map +1 -0
  299. package/dist/drizzle/oauth-mysql.mjs +8 -0
  300. package/dist/drizzle/oauth-mysql.mjs.map +1 -0
  301. package/dist/drizzle/oauth-owner.d.mts +4 -0
  302. package/dist/drizzle/oauth-owner.mjs +10 -0
  303. package/dist/drizzle/oauth-owner.mjs.map +1 -0
  304. package/dist/drizzle/oauth-registration.d.mts +8 -0
  305. package/dist/drizzle/oauth-registration.mjs +375 -0
  306. package/dist/drizzle/oauth-registration.mjs.map +1 -0
  307. package/dist/drizzle/oauth-state.mjs +109 -0
  308. package/dist/drizzle/oauth-state.mjs.map +1 -0
  309. package/dist/drizzle/oauth-target.d.mts +125 -0
  310. package/dist/drizzle/oauth-target.mjs +252 -0
  311. package/dist/drizzle/oauth-target.mjs.map +1 -0
  312. package/dist/drizzle/passkey-admission.mjs +203 -0
  313. package/dist/drizzle/passkey-admission.mjs.map +1 -0
  314. package/dist/drizzle/passkey-credentials.mjs +239 -0
  315. package/dist/drizzle/passkey-credentials.mjs.map +1 -0
  316. package/dist/drizzle/passkey-drivers.mjs +34 -0
  317. package/dist/drizzle/passkey-drivers.mjs.map +1 -0
  318. package/dist/drizzle/passkey-enrollment.mjs +132 -0
  319. package/dist/drizzle/passkey-enrollment.mjs.map +1 -0
  320. package/dist/drizzle/passkey-flow.mjs +436 -0
  321. package/dist/drizzle/passkey-flow.mjs.map +1 -0
  322. package/dist/drizzle/passkey-management.mjs +225 -0
  323. package/dist/drizzle/passkey-management.mjs.map +1 -0
  324. package/dist/drizzle/passkey-model.d.mts +275 -0
  325. package/dist/drizzle/passkey-model.mjs +36 -0
  326. package/dist/drizzle/passkey-model.mjs.map +1 -0
  327. package/dist/drizzle/passkey-registration-ceremony-model.d.mts +50 -0
  328. package/dist/drizzle/passkey-registration-ceremony-model.mjs +18 -0
  329. package/dist/drizzle/passkey-registration-ceremony-model.mjs.map +1 -0
  330. package/dist/drizzle/passkey-registration-ceremony.mjs +124 -0
  331. package/dist/drizzle/passkey-registration-ceremony.mjs.map +1 -0
  332. package/dist/drizzle/passkey-registration-custody.mjs +51 -0
  333. package/dist/drizzle/passkey-registration-custody.mjs.map +1 -0
  334. package/dist/drizzle/passkey-registration-write.mjs +205 -0
  335. package/dist/drizzle/passkey-registration-write.mjs.map +1 -0
  336. package/dist/drizzle/passkey-state.d.mts +5 -0
  337. package/dist/drizzle/passkey-state.mjs +207 -0
  338. package/dist/drizzle/passkey-state.mjs.map +1 -0
  339. package/dist/drizzle/passkey-target.d.mts +16 -0
  340. package/dist/drizzle/passkey-target.mjs +174 -0
  341. package/dist/drizzle/passkey-target.mjs.map +1 -0
  342. package/dist/drizzle/passkey-write-drivers.mjs +33 -0
  343. package/dist/drizzle/passkey-write-drivers.mjs.map +1 -0
  344. package/dist/drizzle/passkey-write-model.d.mts +192 -0
  345. package/dist/drizzle/passkey-write-model.mjs +13 -0
  346. package/dist/drizzle/passkey-write-model.mjs.map +1 -0
  347. package/dist/drizzle/passkey-write-state.mjs +326 -0
  348. package/dist/drizzle/passkey-write-state.mjs.map +1 -0
  349. package/dist/drizzle/passkey-write-target.d.mts +14 -0
  350. package/dist/drizzle/passkey-write-target.mjs +185 -0
  351. package/dist/drizzle/passkey-write-target.mjs.map +1 -0
  352. package/dist/drizzle/password-model.d.mts +330 -0
  353. package/dist/drizzle/password-model.mjs +22 -0
  354. package/dist/drizzle/password-model.mjs.map +1 -0
  355. package/dist/drizzle/password-prepared-model.d.mts +93 -0
  356. package/dist/drizzle/password-prepared-model.mjs +11 -0
  357. package/dist/drizzle/password-prepared-model.mjs.map +1 -0
  358. package/dist/drizzle/password-prepared-sql.mjs +394 -0
  359. package/dist/drizzle/password-prepared-sql.mjs.map +1 -0
  360. package/dist/drizzle/password-prepared-state.mjs +107 -0
  361. package/dist/drizzle/password-prepared-state.mjs.map +1 -0
  362. package/dist/drizzle/password-prepared-target.d.mts +12 -0
  363. package/dist/drizzle/password-prepared-target.mjs +57 -0
  364. package/dist/drizzle/password-prepared-target.mjs.map +1 -0
  365. package/dist/drizzle/password-registration.d.mts +23 -0
  366. package/dist/drizzle/password-registration.mjs +136 -0
  367. package/dist/drizzle/password-registration.mjs.map +1 -0
  368. package/dist/drizzle/password-sql.d.mts +20 -0
  369. package/dist/drizzle/password-sql.mjs +702 -0
  370. package/dist/drizzle/password-sql.mjs.map +1 -0
  371. package/dist/drizzle/password-target.d.mts +25 -0
  372. package/dist/drizzle/password-target.mjs +63 -0
  373. package/dist/drizzle/password-target.mjs.map +1 -0
  374. package/dist/drizzle/pg-emails.d.mts +83 -0
  375. package/dist/drizzle/pg-emails.mjs +38 -0
  376. package/dist/drizzle/pg-emails.mjs.map +1 -0
  377. package/dist/drizzle/pg-password-prepared.d.mts +33 -0
  378. package/dist/drizzle/pg-password-prepared.mjs +16 -0
  379. package/dist/drizzle/pg-password-prepared.mjs.map +1 -0
  380. package/dist/drizzle/pg-passwords.d.mts +103 -0
  381. package/dist/drizzle/pg-passwords.mjs +38 -0
  382. package/dist/drizzle/pg-passwords.mjs.map +1 -0
  383. package/dist/drizzle/pg-proofs.d.mts +84 -0
  384. package/dist/drizzle/pg-proofs.mjs +22 -0
  385. package/dist/drizzle/pg-proofs.mjs.map +1 -0
  386. package/dist/drizzle/pg-sessions.d.mts +251 -0
  387. package/dist/drizzle/pg-sessions.mjs +53 -0
  388. package/dist/drizzle/pg-sessions.mjs.map +1 -0
  389. package/dist/drizzle/pg.d.mts +88 -0
  390. package/dist/drizzle/pg.mjs +294 -0
  391. package/dist/drizzle/pg.mjs.map +1 -0
  392. package/dist/drizzle/phone-model.d.mts +117 -0
  393. package/dist/drizzle/phone-model.mjs +39 -0
  394. package/dist/drizzle/phone-model.mjs.map +1 -0
  395. package/dist/drizzle/phone-state.mjs +426 -0
  396. package/dist/drizzle/phone-state.mjs.map +1 -0
  397. package/dist/drizzle/phone-target.d.mts +19 -0
  398. package/dist/drizzle/phone-target.mjs +171 -0
  399. package/dist/drizzle/phone-target.mjs.map +1 -0
  400. package/dist/drizzle/proof-model.d.mts +287 -0
  401. package/dist/drizzle/proof-model.mjs +17 -0
  402. package/dist/drizzle/proof-model.mjs.map +1 -0
  403. package/dist/drizzle/proof-sql.d.mts +16 -0
  404. package/dist/drizzle/proof-sql.mjs +618 -0
  405. package/dist/drizzle/proof-sql.mjs.map +1 -0
  406. package/dist/drizzle/proof-target.d.mts +17 -0
  407. package/dist/drizzle/proof-target.mjs +38 -0
  408. package/dist/drizzle/proof-target.mjs.map +1 -0
  409. package/dist/drizzle/session-model.d.mts +201 -0
  410. package/dist/drizzle/session-model.mjs +19 -0
  411. package/dist/drizzle/session-model.mjs.map +1 -0
  412. package/dist/drizzle/session-sql.mjs +732 -0
  413. package/dist/drizzle/session-sql.mjs.map +1 -0
  414. package/dist/drizzle/session-target.d.mts +37 -0
  415. package/dist/drizzle/session-target.mjs +47 -0
  416. package/dist/drizzle/session-target.mjs.map +1 -0
  417. package/dist/drizzle/sqlite-emails.mjs +45 -0
  418. package/dist/drizzle/sqlite-emails.mjs.map +1 -0
  419. package/dist/drizzle/sqlite-identity.mjs +92 -0
  420. package/dist/drizzle/sqlite-identity.mjs.map +1 -0
  421. package/dist/drizzle/sqlite-password-prepared.mjs +21 -0
  422. package/dist/drizzle/sqlite-password-prepared.mjs.map +1 -0
  423. package/dist/drizzle/sqlite-passwords.mjs +49 -0
  424. package/dist/drizzle/sqlite-passwords.mjs.map +1 -0
  425. package/dist/drizzle/sqlite-proofs.mjs +29 -0
  426. package/dist/drizzle/sqlite-proofs.mjs.map +1 -0
  427. package/dist/drizzle/sqlite-sessions.mjs +74 -0
  428. package/dist/drizzle/sqlite-sessions.mjs.map +1 -0
  429. package/dist/drizzle/sqlite.d.mts +81 -0
  430. package/dist/drizzle/sqlite.mjs +220 -0
  431. package/dist/drizzle/sqlite.mjs.map +1 -0
  432. package/dist/drizzle/standalone-guard.mjs +19 -0
  433. package/dist/drizzle/standalone-guard.mjs.map +1 -0
  434. package/dist/drizzle/step-up-model.d.mts +65 -0
  435. package/dist/drizzle/step-up-model.mjs +9 -0
  436. package/dist/drizzle/step-up-model.mjs.map +1 -0
  437. package/dist/drizzle/step-up-state.mjs +34 -0
  438. package/dist/drizzle/step-up-state.mjs.map +1 -0
  439. package/dist/drizzle/totp-model.d.mts +85 -0
  440. package/dist/drizzle/totp-model.mjs +13 -0
  441. package/dist/drizzle/totp-model.mjs.map +1 -0
  442. package/dist/drizzle/totp-state.d.mts +39 -0
  443. package/dist/drizzle/totp-state.mjs +288 -0
  444. package/dist/drizzle/totp-state.mjs.map +1 -0
  445. package/dist/drizzle/totp-target.d.mts +16 -0
  446. package/dist/drizzle/totp-target.mjs +83 -0
  447. package/dist/drizzle/totp-target.mjs.map +1 -0
  448. package/dist/drizzle/transaction-execution.d.mts +20 -0
  449. package/dist/drizzle/transaction-execution.mjs +111 -0
  450. package/dist/drizzle/transaction-execution.mjs.map +1 -0
  451. package/dist/drizzle/transaction-mysql.mjs +46 -0
  452. package/dist/drizzle/transaction-mysql.mjs.map +1 -0
  453. package/dist/drizzle/transaction-owner.d.mts +6 -0
  454. package/dist/drizzle/transaction-owner.mjs +252 -0
  455. package/dist/drizzle/transaction-owner.mjs.map +1 -0
  456. package/dist/email/EmailActionEvidence.d.mts +33 -0
  457. package/dist/email/EmailActionEvidence.mjs +15 -0
  458. package/dist/email/EmailActionEvidence.mjs.map +1 -0
  459. package/dist/email/EmailAddressPersistence.d.mts +63 -0
  460. package/dist/email/EmailAddressPersistence.mjs +19 -0
  461. package/dist/email/EmailAddressPersistence.mjs.map +1 -0
  462. package/dist/email/EmailIdentifierNotifier.d.mts +30 -0
  463. package/dist/email/EmailIdentifierNotifier.mjs +31 -0
  464. package/dist/email/EmailIdentifierNotifier.mjs.map +1 -0
  465. package/dist/email/EmailReturnTargets.d.mts +19 -0
  466. package/dist/email/EmailReturnTargets.mjs +29 -0
  467. package/dist/email/EmailReturnTargets.mjs.map +1 -0
  468. package/dist/email/EmailSignInTargets.d.mts +20 -0
  469. package/dist/email/EmailSignInTargets.mjs +12 -0
  470. package/dist/email/EmailSignInTargets.mjs.map +1 -0
  471. package/dist/email/addresses.d.mts +33 -0
  472. package/dist/email/addresses.mjs +404 -0
  473. package/dist/email/addresses.mjs.map +1 -0
  474. package/dist/email/definition.d.mts +10153 -0
  475. package/dist/email/definition.mjs +111 -0
  476. package/dist/email/definition.mjs.map +1 -0
  477. package/dist/email/errors.d.mts +15 -0
  478. package/dist/email/errors.mjs +11 -0
  479. package/dist/email/errors.mjs.map +1 -0
  480. package/dist/email/magicLink.d.mts +33 -0
  481. package/dist/email/magicLink.mjs +58 -0
  482. package/dist/email/magicLink.mjs.map +1 -0
  483. package/dist/email/models.d.mts +56 -0
  484. package/dist/email/models.mjs +31 -0
  485. package/dist/email/models.mjs.map +1 -0
  486. package/dist/email/module.d.mts +22296 -0
  487. package/dist/email/module.mjs +415 -0
  488. package/dist/email/module.mjs.map +1 -0
  489. package/dist/email/registration.d.mts +28 -0
  490. package/dist/email/registration.mjs +243 -0
  491. package/dist/email/registration.mjs.map +1 -0
  492. package/dist/email/snapshot.mjs +37 -0
  493. package/dist/email/snapshot.mjs.map +1 -0
  494. package/dist/hooks/LifecycleHooks.d.mts +34 -0
  495. package/dist/hooks/LifecycleHooks.mjs +74 -0
  496. package/dist/hooks/LifecycleHooks.mjs.map +1 -0
  497. package/dist/hooks/commit.d.mts +66 -0
  498. package/dist/hooks/commit.mjs +136 -0
  499. package/dist/hooks/commit.mjs.map +1 -0
  500. package/dist/hooks/models.d.mts +51 -0
  501. package/dist/hooks/models.mjs +87 -0
  502. package/dist/hooks/models.mjs.map +1 -0
  503. package/dist/hooks/plugins.d.mts +36 -0
  504. package/dist/hooks/plugins.mjs +60 -0
  505. package/dist/hooks/plugins.mjs.map +1 -0
  506. package/dist/hooks/transactions.d.mts +31 -0
  507. package/dist/hooks/transactions.mjs +38 -0
  508. package/dist/hooks/transactions.mjs.map +1 -0
  509. package/dist/http/auth-api.d.mts +9 -0
  510. package/dist/http/auth-api.mjs +13 -0
  511. package/dist/http/auth-api.mjs.map +1 -0
  512. package/dist/http/auth-contract.d.mts +84 -0
  513. package/dist/http/auth-contract.mjs +75 -0
  514. package/dist/http/auth-contract.mjs.map +1 -0
  515. package/dist/http/auth-http.d.mts +216 -0
  516. package/dist/http/auth-http.mjs +184 -0
  517. package/dist/http/auth-http.mjs.map +1 -0
  518. package/dist/http/endpoints/get-session.d.mts +8 -0
  519. package/dist/http/endpoints/get-session.mjs +12 -0
  520. package/dist/http/endpoints/get-session.mjs.map +1 -0
  521. package/dist/http/endpoints/password-sign-in.d.mts +8 -0
  522. package/dist/http/endpoints/password-sign-in.mjs +18 -0
  523. package/dist/http/endpoints/password-sign-in.mjs.map +1 -0
  524. package/dist/http/endpoints/request-email-otp.d.mts +8 -0
  525. package/dist/http/endpoints/request-email-otp.mjs +17 -0
  526. package/dist/http/endpoints/request-email-otp.mjs.map +1 -0
  527. package/dist/http/endpoints/set-password.d.mts +9 -0
  528. package/dist/http/endpoints/set-password.mjs +19 -0
  529. package/dist/http/endpoints/set-password.mjs.map +1 -0
  530. package/dist/http/endpoints/sign-out.d.mts +6 -0
  531. package/dist/http/endpoints/sign-out.mjs +7 -0
  532. package/dist/http/endpoints/sign-out.mjs.map +1 -0
  533. package/dist/http/endpoints/verify-email-otp.d.mts +9 -0
  534. package/dist/http/endpoints/verify-email-otp.mjs +18 -0
  535. package/dist/http/endpoints/verify-email-otp.mjs.map +1 -0
  536. package/dist/http/models.d.mts +49 -0
  537. package/dist/http/models.mjs +35 -0
  538. package/dist/http/models.mjs.map +1 -0
  539. package/dist/http/security.d.mts +91 -0
  540. package/dist/http/security.mjs +77 -0
  541. package/dist/http/security.mjs.map +1 -0
  542. package/dist/http/session-contract.d.mts +303 -0
  543. package/dist/http/session-contract.mjs +38 -0
  544. package/dist/http/session-contract.mjs.map +1 -0
  545. package/dist/http-operation/OperationHttpInvocation.d.mts +16 -0
  546. package/dist/http-operation/OperationHttpInvocation.mjs +11 -0
  547. package/dist/http-operation/OperationHttpInvocation.mjs.map +1 -0
  548. package/dist/http-operation/OperationHttpServerConfig.d.mts +18 -0
  549. package/dist/http-operation/OperationHttpServerConfig.mjs +72 -0
  550. package/dist/http-operation/OperationHttpServerConfig.mjs.map +1 -0
  551. package/dist/http-operation/auth-client.d.mts +75 -0
  552. package/dist/http-operation/auth-client.mjs +116 -0
  553. package/dist/http-operation/auth-client.mjs.map +1 -0
  554. package/dist/http-operation/client.d.mts +50 -0
  555. package/dist/http-operation/client.mjs +188 -0
  556. package/dist/http-operation/client.mjs.map +1 -0
  557. package/dist/http-operation/configuration-schema.mjs +19 -0
  558. package/dist/http-operation/configuration-schema.mjs.map +1 -0
  559. package/dist/http-operation/contract.d.mts +40 -0
  560. package/dist/http-operation/contract.mjs +37 -0
  561. package/dist/http-operation/contract.mjs.map +1 -0
  562. package/dist/http-operation/errors.d.mts +13 -0
  563. package/dist/http-operation/errors.mjs +31 -0
  564. package/dist/http-operation/errors.mjs.map +1 -0
  565. package/dist/http-operation/models.d.mts +32 -0
  566. package/dist/http-operation/models.mjs +14 -0
  567. package/dist/http-operation/models.mjs.map +1 -0
  568. package/dist/http-operation/private.mjs +35 -0
  569. package/dist/http-operation/private.mjs.map +1 -0
  570. package/dist/http-operation/security.mjs +58 -0
  571. package/dist/http-operation/security.mjs.map +1 -0
  572. package/dist/http-operation/server.d.mts +33 -0
  573. package/dist/http-operation/server.mjs +268 -0
  574. package/dist/http-operation/server.mjs.map +1 -0
  575. package/dist/identity/ExternalIdentityMutation.d.mts +15 -0
  576. package/dist/identity/ExternalIdentityMutation.mjs +11 -0
  577. package/dist/identity/ExternalIdentityMutation.mjs.map +1 -0
  578. package/dist/identity/IdentityMutation.d.mts +22 -0
  579. package/dist/identity/IdentityMutation.mjs +17 -0
  580. package/dist/identity/IdentityMutation.mjs.map +1 -0
  581. package/dist/identity/IdentityRepository.d.mts +20 -0
  582. package/dist/identity/IdentityRepository.mjs +11 -0
  583. package/dist/identity/IdentityRepository.mjs.map +1 -0
  584. package/dist/identity/SubjectLifecycle.d.mts +58 -0
  585. package/dist/identity/SubjectLifecycle.mjs +43 -0
  586. package/dist/identity/SubjectLifecycle.mjs.map +1 -0
  587. package/dist/identity/SubjectProvisioner.d.mts +37 -0
  588. package/dist/identity/SubjectProvisioner.mjs +20 -0
  589. package/dist/identity/SubjectProvisioner.mjs.map +1 -0
  590. package/dist/identity/codecs.d.mts +34 -0
  591. package/dist/identity/codecs.mjs +40 -0
  592. package/dist/identity/codecs.mjs.map +1 -0
  593. package/dist/identity/models.d.mts +62 -0
  594. package/dist/identity/models.mjs +51 -0
  595. package/dist/identity/models.mjs.map +1 -0
  596. package/dist/identity/operations.d.mts +118 -0
  597. package/dist/identity/operations.mjs +124 -0
  598. package/dist/identity/operations.mjs.map +1 -0
  599. package/dist/index.d.mts +23 -0
  600. package/dist/index.mjs +23 -0
  601. package/dist/internal/AuthStoreDecisions.d.mts +22 -0
  602. package/dist/internal/AuthStoreDecisions.mjs +8 -0
  603. package/dist/internal/AuthStoreDecisions.mjs.map +1 -0
  604. package/dist/internal/CurrentSession.d.mts +9 -0
  605. package/dist/internal/CurrentSession.mjs +8 -0
  606. package/dist/internal/CurrentSession.mjs.map +1 -0
  607. package/dist/internal/diagnostics.mjs +23 -0
  608. package/dist/internal/diagnostics.mjs.map +1 -0
  609. package/dist/oauth/GithubOAuthProvider.d.mts +43 -0
  610. package/dist/oauth/GithubOAuthProvider.mjs +66 -0
  611. package/dist/oauth/GithubOAuthProvider.mjs.map +1 -0
  612. package/dist/oauth/OAuth.d.mts +73 -0
  613. package/dist/oauth/OAuth.mjs +180 -0
  614. package/dist/oauth/OAuth.mjs.map +1 -0
  615. package/dist/oauth/OAuthAccountsPersistence.d.mts +109 -0
  616. package/dist/oauth/OAuthAccountsPersistence.mjs +12 -0
  617. package/dist/oauth/OAuthAccountsPersistence.mjs.map +1 -0
  618. package/dist/oauth/OAuthActionEvidence.d.mts +28 -0
  619. package/dist/oauth/OAuthActionEvidence.mjs +15 -0
  620. package/dist/oauth/OAuthActionEvidence.mjs.map +1 -0
  621. package/dist/oauth/OAuthConnectedActionEvidence.d.mts +22 -0
  622. package/dist/oauth/OAuthConnectedActionEvidence.mjs +9 -0
  623. package/dist/oauth/OAuthConnectedActionEvidence.mjs.map +1 -0
  624. package/dist/oauth/OAuthConnectedPersistence.d.mts +129 -0
  625. package/dist/oauth/OAuthConnectedPersistence.mjs +12 -0
  626. package/dist/oauth/OAuthConnectedPersistence.mjs.map +1 -0
  627. package/dist/oauth/OAuthConnectedProtocol.d.mts +41 -0
  628. package/dist/oauth/OAuthConnectedProtocol.mjs +13 -0
  629. package/dist/oauth/OAuthConnectedProtocol.mjs.map +1 -0
  630. package/dist/oauth/OAuthConnectedRevocations.d.mts +167 -0
  631. package/dist/oauth/OAuthConnectedRevocations.mjs +21 -0
  632. package/dist/oauth/OAuthConnectedRevocations.mjs.map +1 -0
  633. package/dist/oauth/OAuthConnectedTokenProtector.d.mts +24 -0
  634. package/dist/oauth/OAuthConnectedTokenProtector.mjs +153 -0
  635. package/dist/oauth/OAuthConnectedTokenProtector.mjs.map +1 -0
  636. package/dist/oauth/OAuthConnectedTransactionProtector.d.mts +23 -0
  637. package/dist/oauth/OAuthConnectedTransactionProtector.mjs +37 -0
  638. package/dist/oauth/OAuthConnectedTransactionProtector.mjs.map +1 -0
  639. package/dist/oauth/OAuthConnectedUseAuthority.d.mts +22 -0
  640. package/dist/oauth/OAuthConnectedUseAuthority.mjs +10 -0
  641. package/dist/oauth/OAuthConnectedUseAuthority.mjs.map +1 -0
  642. package/dist/oauth/OAuthConnectionStore.d.mts +33 -0
  643. package/dist/oauth/OAuthConnectionStore.mjs +38 -0
  644. package/dist/oauth/OAuthConnectionStore.mjs.map +1 -0
  645. package/dist/oauth/OAuthLinkTransactionProtector.d.mts +25 -0
  646. package/dist/oauth/OAuthLinkTransactionProtector.mjs +39 -0
  647. package/dist/oauth/OAuthLinkTransactionProtector.mjs.map +1 -0
  648. package/dist/oauth/OAuthProtocol.d.mts +33 -0
  649. package/dist/oauth/OAuthProtocol.mjs +16 -0
  650. package/dist/oauth/OAuthProtocol.mjs.map +1 -0
  651. package/dist/oauth/OAuthProvider.d.mts +70 -0
  652. package/dist/oauth/OAuthProvider.mjs +39 -0
  653. package/dist/oauth/OAuthProvider.mjs.map +1 -0
  654. package/dist/oauth/OAuthProviders.d.mts +27 -0
  655. package/dist/oauth/OAuthProviders.mjs +33 -0
  656. package/dist/oauth/OAuthProviders.mjs.map +1 -0
  657. package/dist/oauth/OAuthRegistrationIntents.d.mts +87 -0
  658. package/dist/oauth/OAuthRegistrationIntents.mjs +19 -0
  659. package/dist/oauth/OAuthRegistrationIntents.mjs.map +1 -0
  660. package/dist/oauth/OAuthReturnTargets.d.mts +15 -0
  661. package/dist/oauth/OAuthReturnTargets.mjs +24 -0
  662. package/dist/oauth/OAuthReturnTargets.mjs.map +1 -0
  663. package/dist/oauth/OAuthSignInPersistence.d.mts +68 -0
  664. package/dist/oauth/OAuthSignInPersistence.mjs +12 -0
  665. package/dist/oauth/OAuthSignInPersistence.mjs.map +1 -0
  666. package/dist/oauth/OAuthStateDecisions.d.mts +14 -0
  667. package/dist/oauth/OAuthStateDecisions.mjs +8 -0
  668. package/dist/oauth/OAuthStateDecisions.mjs.map +1 -0
  669. package/dist/oauth/OAuthStateStore.d.mts +35 -0
  670. package/dist/oauth/OAuthStateStore.mjs +64 -0
  671. package/dist/oauth/OAuthStateStore.mjs.map +1 -0
  672. package/dist/oauth/OAuthTransactionProtector.d.mts +26 -0
  673. package/dist/oauth/OAuthTransactionProtector.mjs +78 -0
  674. package/dist/oauth/OAuthTransactionProtector.mjs.map +1 -0
  675. package/dist/oauth/accounts.d.mts +29 -0
  676. package/dist/oauth/accounts.mjs +515 -0
  677. package/dist/oauth/accounts.mjs.map +1 -0
  678. package/dist/oauth/accountsModels.d.mts +463 -0
  679. package/dist/oauth/accountsModels.mjs +155 -0
  680. package/dist/oauth/accountsModels.mjs.map +1 -0
  681. package/dist/oauth/connected.d.mts +442 -0
  682. package/dist/oauth/connected.mjs +526 -0
  683. package/dist/oauth/connected.mjs.map +1 -0
  684. package/dist/oauth/connectedAccess.d.mts +20 -0
  685. package/dist/oauth/connectedAccess.mjs +279 -0
  686. package/dist/oauth/connectedAccess.mjs.map +1 -0
  687. package/dist/oauth/connectedMaintenance.d.mts +19 -0
  688. package/dist/oauth/connectedMaintenance.mjs +133 -0
  689. package/dist/oauth/connectedMaintenance.mjs.map +1 -0
  690. package/dist/oauth/connectedModels.d.mts +2023 -0
  691. package/dist/oauth/connectedModels.mjs +375 -0
  692. package/dist/oauth/connectedModels.mjs.map +1 -0
  693. package/dist/oauth/definition.d.mts +4396 -0
  694. package/dist/oauth/definition.mjs +120 -0
  695. package/dist/oauth/definition.mjs.map +1 -0
  696. package/dist/oauth/errors.d.mts +49 -0
  697. package/dist/oauth/errors.mjs +42 -0
  698. package/dist/oauth/errors.mjs.map +1 -0
  699. package/dist/oauth/github/identity.d.mts +8 -0
  700. package/dist/oauth/github/identity.mjs +24 -0
  701. package/dist/oauth/github/identity.mjs.map +1 -0
  702. package/dist/oauth/github/models.d.mts +34 -0
  703. package/dist/oauth/github/protocol.d.mts +54 -0
  704. package/dist/oauth/github/protocol.mjs +204 -0
  705. package/dist/oauth/github/protocol.mjs.map +1 -0
  706. package/dist/oauth/openid-client/ProviderRevocation.d.mts +4 -0
  707. package/dist/oauth/openid-client/ProviderRevocation.mjs +11 -0
  708. package/dist/oauth/openid-client/ProviderRevocation.mjs.map +1 -0
  709. package/dist/oauth/openid-client/compatibility.d.mts +1 -0
  710. package/dist/oauth/openid-client/compatibility.mjs +6 -0
  711. package/dist/oauth/openid-client/compatibility.mjs.map +1 -0
  712. package/dist/oauth/openid-client/configuration.mjs +305 -0
  713. package/dist/oauth/openid-client/configuration.mjs.map +1 -0
  714. package/dist/oauth/openid-client/connected/configuration.mjs +338 -0
  715. package/dist/oauth/openid-client/connected/configuration.mjs.map +1 -0
  716. package/dist/oauth/openid-client/connected/models.d.mts +42 -0
  717. package/dist/oauth/openid-client/connected/protocol.d.mts +16 -0
  718. package/dist/oauth/openid-client/connected/protocol.mjs +402 -0
  719. package/dist/oauth/openid-client/connected/protocol.mjs.map +1 -0
  720. package/dist/oauth/openid-client/models.d.mts +67 -0
  721. package/dist/oauth/openid-client/models.mjs +16 -0
  722. package/dist/oauth/openid-client/models.mjs.map +1 -0
  723. package/dist/oauth/openid-client/protocol.d.mts +27 -0
  724. package/dist/oauth/openid-client/protocol.mjs +218 -0
  725. package/dist/oauth/openid-client/protocol.mjs.map +1 -0
  726. package/dist/oauth/openid-client/transport.mjs +59 -0
  727. package/dist/oauth/openid-client/transport.mjs.map +1 -0
  728. package/dist/oauth/policy.d.mts +18 -0
  729. package/dist/oauth/policy.mjs +16 -0
  730. package/dist/oauth/policy.mjs.map +1 -0
  731. package/dist/oauth/registration.d.mts +24 -0
  732. package/dist/oauth/registration.mjs +177 -0
  733. package/dist/oauth/registration.mjs.map +1 -0
  734. package/dist/oauth/registrationModels.d.mts +152 -0
  735. package/dist/oauth/registrationModels.mjs +93 -0
  736. package/dist/oauth/registrationModels.mjs.map +1 -0
  737. package/dist/oauth/registrationSecrets.mjs +70 -0
  738. package/dist/oauth/registrationSecrets.mjs.map +1 -0
  739. package/dist/oauth/schema.d.mts +86 -0
  740. package/dist/oauth/schema.mjs +81 -0
  741. package/dist/oauth/schema.mjs.map +1 -0
  742. package/dist/oauth/signInErrors.d.mts +17 -0
  743. package/dist/oauth/signInErrors.mjs +16 -0
  744. package/dist/oauth/signInErrors.mjs.map +1 -0
  745. package/dist/oauth/signInModels.d.mts +343 -0
  746. package/dist/oauth/signInModels.mjs +181 -0
  747. package/dist/oauth/signInModels.mjs.map +1 -0
  748. package/dist/oauth/signInModule.d.mts +1546 -0
  749. package/dist/oauth/signInModule.mjs +430 -0
  750. package/dist/oauth/signInModule.mjs.map +1 -0
  751. package/dist/oauth/signInSnapshot.mjs +29 -0
  752. package/dist/oauth/signInSnapshot.mjs.map +1 -0
  753. package/dist/oauth/transactionEncryption.d.mts +14 -0
  754. package/dist/oauth/transactionEncryption.mjs +129 -0
  755. package/dist/oauth/transactionEncryption.mjs.map +1 -0
  756. package/dist/operations/RequestBindingConfig.d.mts +11 -0
  757. package/dist/operations/RequestBindingConfig.mjs +10 -0
  758. package/dist/operations/RequestBindingConfig.mjs.map +1 -0
  759. package/dist/operations/actions.d.mts +947 -0
  760. package/dist/operations/actions.mjs +148 -0
  761. package/dist/operations/actions.mjs.map +1 -0
  762. package/dist/operations/context.d.mts +63 -0
  763. package/dist/operations/context.mjs +55 -0
  764. package/dist/operations/context.mjs.map +1 -0
  765. package/dist/operations/credentials.d.mts +39 -0
  766. package/dist/operations/credentials.mjs +60 -0
  767. package/dist/operations/credentials.mjs.map +1 -0
  768. package/dist/operations/errors.d.mts +24 -0
  769. package/dist/operations/errors.mjs +31 -0
  770. package/dist/operations/errors.mjs.map +1 -0
  771. package/dist/operations/operation.d.mts +124 -0
  772. package/dist/operations/operation.mjs +220 -0
  773. package/dist/operations/operation.mjs.map +1 -0
  774. package/dist/operations/requestBinding.d.mts +46 -0
  775. package/dist/operations/requestBinding.mjs +130 -0
  776. package/dist/operations/requestBinding.mjs.map +1 -0
  777. package/dist/operations/requestBindingModels.d.mts +13 -0
  778. package/dist/operations/requestBindingModels.mjs +12 -0
  779. package/dist/operations/requestBindingModels.mjs.map +1 -0
  780. package/dist/operations/reveals.d.mts +28 -0
  781. package/dist/operations/reveals.mjs +88 -0
  782. package/dist/operations/reveals.mjs.map +1 -0
  783. package/dist/passkey/PasskeyActionEvidence.d.mts +22 -0
  784. package/dist/passkey/PasskeyActionEvidence.mjs +9 -0
  785. package/dist/passkey/PasskeyActionEvidence.mjs.map +1 -0
  786. package/dist/passkey/PasskeyCredentials.d.mts +16 -0
  787. package/dist/passkey/PasskeyCredentials.mjs +9 -0
  788. package/dist/passkey/PasskeyCredentials.mjs.map +1 -0
  789. package/dist/passkey/PasskeyEnrollmentContext.d.mts +22 -0
  790. package/dist/passkey/PasskeyEnrollmentContext.mjs +9 -0
  791. package/dist/passkey/PasskeyEnrollmentContext.mjs.map +1 -0
  792. package/dist/passkey/PasskeyManagementPersistence.d.mts +106 -0
  793. package/dist/passkey/PasskeyManagementPersistence.mjs +9 -0
  794. package/dist/passkey/PasskeyManagementPersistence.mjs.map +1 -0
  795. package/dist/passkey/PasskeyPersistence.d.mts +63 -0
  796. package/dist/passkey/PasskeyPersistence.mjs +10 -0
  797. package/dist/passkey/PasskeyPersistence.mjs.map +1 -0
  798. package/dist/passkey/PasskeyProtocol.d.mts +38 -0
  799. package/dist/passkey/PasskeyProtocol.mjs +11 -0
  800. package/dist/passkey/PasskeyProtocol.mjs.map +1 -0
  801. package/dist/passkey/actions.d.mts +50 -0
  802. package/dist/passkey/actions.mjs +376 -0
  803. package/dist/passkey/actions.mjs.map +1 -0
  804. package/dist/passkey/browser/PasskeyBrowser.d.mts +18 -0
  805. package/dist/passkey/browser/PasskeyBrowser.mjs +9 -0
  806. package/dist/passkey/browser/PasskeyBrowser.mjs.map +1 -0
  807. package/dist/passkey/browser/models.d.mts +38 -0
  808. package/dist/passkey/browser/models.mjs +41 -0
  809. package/dist/passkey/browser/models.mjs.map +1 -0
  810. package/dist/passkey/browser/simplewebauthn.d.mts +17 -0
  811. package/dist/passkey/browser/simplewebauthn.mjs +411 -0
  812. package/dist/passkey/browser/simplewebauthn.mjs.map +1 -0
  813. package/dist/passkey/definition.d.mts +5626 -0
  814. package/dist/passkey/definition.mjs +114 -0
  815. package/dist/passkey/definition.mjs.map +1 -0
  816. package/dist/passkey/errors.d.mts +20 -0
  817. package/dist/passkey/errors.mjs +20 -0
  818. package/dist/passkey/errors.mjs.map +1 -0
  819. package/dist/passkey/management.mjs +276 -0
  820. package/dist/passkey/management.mjs.map +1 -0
  821. package/dist/passkey/models.d.mts +1245 -0
  822. package/dist/passkey/models.mjs +301 -0
  823. package/dist/passkey/models.mjs.map +1 -0
  824. package/dist/passkey/module.d.mts +2132 -0
  825. package/dist/passkey/module.mjs +174 -0
  826. package/dist/passkey/module.mjs.map +1 -0
  827. package/dist/passkey/pending.mjs +99 -0
  828. package/dist/passkey/pending.mjs.map +1 -0
  829. package/dist/passkey/policy.d.mts +48 -0
  830. package/dist/passkey/policy.mjs +77 -0
  831. package/dist/passkey/policy.mjs.map +1 -0
  832. package/dist/passkey/registration.mjs +107 -0
  833. package/dist/passkey/registration.mjs.map +1 -0
  834. package/dist/passkey/simplewebauthn/configuration.mjs +45 -0
  835. package/dist/passkey/simplewebauthn/configuration.mjs.map +1 -0
  836. package/dist/passkey/simplewebauthn/models.d.mts +21 -0
  837. package/dist/passkey/simplewebauthn/models.mjs +8 -0
  838. package/dist/passkey/simplewebauthn/models.mjs.map +1 -0
  839. package/dist/passkey/simplewebauthn/protocol.d.mts +62 -0
  840. package/dist/passkey/simplewebauthn/protocol.mjs +402 -0
  841. package/dist/passkey/simplewebauthn/protocol.mjs.map +1 -0
  842. package/dist/passkey/snapshot.mjs +31 -0
  843. package/dist/passkey/snapshot.mjs.map +1 -0
  844. package/dist/passkey/stepUp.mjs +101 -0
  845. package/dist/passkey/stepUp.mjs.map +1 -0
  846. package/dist/password/CompromisedPasswords.d.mts +26 -0
  847. package/dist/password/CompromisedPasswords.mjs +23 -0
  848. package/dist/password/CompromisedPasswords.mjs.map +1 -0
  849. package/dist/password/NewPasswordCheck.d.mts +21 -0
  850. package/dist/password/NewPasswordCheck.mjs +39 -0
  851. package/dist/password/NewPasswordCheck.mjs.map +1 -0
  852. package/dist/password/PasswordHashing.d.mts +24 -0
  853. package/dist/password/PasswordHashing.mjs +96 -0
  854. package/dist/password/PasswordHashing.mjs.map +1 -0
  855. package/dist/password/PasswordKdfAdmission.d.mts +19 -0
  856. package/dist/password/PasswordKdfAdmission.mjs +25 -0
  857. package/dist/password/PasswordKdfAdmission.mjs.map +1 -0
  858. package/dist/password/configuration.d.mts +43 -0
  859. package/dist/password/configuration.mjs +64 -0
  860. package/dist/password/configuration.mjs.map +1 -0
  861. package/dist/password/defaults.mjs +13 -0
  862. package/dist/password/defaults.mjs.map +1 -0
  863. package/dist/password/encoding.mjs +64 -0
  864. package/dist/password/encoding.mjs.map +1 -0
  865. package/dist/password/errors.d.mts +28 -0
  866. package/dist/password/errors.mjs +25 -0
  867. package/dist/password/errors.mjs.map +1 -0
  868. package/dist/password/methods/PasswordActionEvidence.d.mts +38 -0
  869. package/dist/password/methods/PasswordActionEvidence.mjs +22 -0
  870. package/dist/password/methods/PasswordActionEvidence.mjs.map +1 -0
  871. package/dist/password/methods/PasswordPersistence.d.mts +102 -0
  872. package/dist/password/methods/PasswordPersistence.mjs +13 -0
  873. package/dist/password/methods/PasswordPersistence.mjs.map +1 -0
  874. package/dist/password/methods/PasswordPreparedPersistence.d.mts +111 -0
  875. package/dist/password/methods/contracts.d.mts +43 -0
  876. package/dist/password/methods/contracts.mjs +33 -0
  877. package/dist/password/methods/contracts.mjs.map +1 -0
  878. package/dist/password/methods/definition.d.mts +3813 -0
  879. package/dist/password/methods/definition.mjs +56 -0
  880. package/dist/password/methods/definition.mjs.map +1 -0
  881. package/dist/password/methods/errors.d.mts +15 -0
  882. package/dist/password/methods/errors.mjs +11 -0
  883. package/dist/password/methods/errors.mjs.map +1 -0
  884. package/dist/password/methods/models.d.mts +70 -0
  885. package/dist/password/methods/models.mjs +44 -0
  886. package/dist/password/methods/models.mjs.map +1 -0
  887. package/dist/password/methods/module.d.mts +3567 -0
  888. package/dist/password/methods/module.mjs +553 -0
  889. package/dist/password/methods/module.mjs.map +1 -0
  890. package/dist/password/methods/policy.d.mts +84 -0
  891. package/dist/password/methods/policy.mjs +80 -0
  892. package/dist/password/methods/policy.mjs.map +1 -0
  893. package/dist/password/methods/preparation.mjs +54 -0
  894. package/dist/password/methods/preparation.mjs.map +1 -0
  895. package/dist/password/methods/prepared.d.mts +53 -0
  896. package/dist/password/methods/prepared.mjs +610 -0
  897. package/dist/password/methods/prepared.mjs.map +1 -0
  898. package/dist/password/methods/preparedModels.d.mts +1295 -0
  899. package/dist/password/methods/preparedModels.mjs +278 -0
  900. package/dist/password/methods/preparedModels.mjs.map +1 -0
  901. package/dist/password/methods/signIn.d.mts +180 -0
  902. package/dist/password/methods/signIn.mjs +73 -0
  903. package/dist/password/methods/signIn.mjs.map +1 -0
  904. package/dist/password/methods/snapshot.mjs +38 -0
  905. package/dist/password/methods/snapshot.mjs.map +1 -0
  906. package/dist/password/methods/verification.mjs +138 -0
  907. package/dist/password/methods/verification.mjs.map +1 -0
  908. package/dist/password/models.d.mts +13 -0
  909. package/dist/password/models.mjs +12 -0
  910. package/dist/password/models.mjs.map +1 -0
  911. package/dist/password/policy.d.mts +33 -0
  912. package/dist/password/policy.mjs +37 -0
  913. package/dist/password/policy.mjs.map +1 -0
  914. package/dist/phone/PhoneActionEvidence.d.mts +23 -0
  915. package/dist/phone/PhoneActionEvidence.mjs +10 -0
  916. package/dist/phone/PhoneActionEvidence.mjs.map +1 -0
  917. package/dist/phone/PhoneAdmission.d.mts +29 -0
  918. package/dist/phone/PhoneAdmission.mjs +10 -0
  919. package/dist/phone/PhoneAdmission.mjs.map +1 -0
  920. package/dist/phone/PhoneDeliveryEligibility.d.mts +11 -0
  921. package/dist/phone/PhoneDeliveryEligibility.mjs +8 -0
  922. package/dist/phone/PhoneDeliveryEligibility.mjs.map +1 -0
  923. package/dist/phone/PhonePersistence.d.mts +33 -0
  924. package/dist/phone/PhonePersistence.mjs +10 -0
  925. package/dist/phone/PhonePersistence.mjs.map +1 -0
  926. package/dist/phone/PhoneRequestContext.d.mts +10 -0
  927. package/dist/phone/PhoneRequestContext.mjs +8 -0
  928. package/dist/phone/PhoneRequestContext.mjs.map +1 -0
  929. package/dist/phone/PhoneSignInTargets.d.mts +19 -0
  930. package/dist/phone/PhoneSignInTargets.mjs +13 -0
  931. package/dist/phone/PhoneSignInTargets.mjs.map +1 -0
  932. package/dist/phone/definition.d.mts +7190 -0
  933. package/dist/phone/definition.mjs +28 -0
  934. package/dist/phone/definition.mjs.map +1 -0
  935. package/dist/phone/failure.mjs +23 -0
  936. package/dist/phone/failure.mjs.map +1 -0
  937. package/dist/phone/lifecycle.mjs +427 -0
  938. package/dist/phone/lifecycle.mjs.map +1 -0
  939. package/dist/phone/lifecycleModels.d.mts +164 -0
  940. package/dist/phone/lifecycleModels.mjs +91 -0
  941. package/dist/phone/lifecycleModels.mjs.map +1 -0
  942. package/dist/phone/models.d.mts +41 -0
  943. package/dist/phone/models.mjs +29 -0
  944. package/dist/phone/models.mjs.map +1 -0
  945. package/dist/phone/module.d.mts +6027 -0
  946. package/dist/phone/module.mjs +293 -0
  947. package/dist/phone/module.mjs.map +1 -0
  948. package/dist/proofs/EmailProofDelivery.d.mts +13 -0
  949. package/dist/proofs/EmailProofDelivery.mjs +11 -0
  950. package/dist/proofs/EmailProofDelivery.mjs.map +1 -0
  951. package/dist/proofs/HostIngressLimiter.d.mts +20 -0
  952. package/dist/proofs/HostIngressLimiter.mjs +13 -0
  953. package/dist/proofs/HostIngressLimiter.mjs.map +1 -0
  954. package/dist/proofs/ProofPersistence.d.mts +140 -0
  955. package/dist/proofs/ProofPersistence.mjs +13 -0
  956. package/dist/proofs/ProofPersistence.mjs.map +1 -0
  957. package/dist/proofs/SmsProofDelivery.d.mts +13 -0
  958. package/dist/proofs/SmsProofDelivery.mjs +11 -0
  959. package/dist/proofs/SmsProofDelivery.mjs.map +1 -0
  960. package/dist/proofs/abuse.d.mts +15 -0
  961. package/dist/proofs/abuse.mjs +12 -0
  962. package/dist/proofs/abuse.mjs.map +1 -0
  963. package/dist/proofs/completion.d.mts +22 -0
  964. package/dist/proofs/crypto.d.mts +196 -0
  965. package/dist/proofs/crypto.mjs +189 -0
  966. package/dist/proofs/crypto.mjs.map +1 -0
  967. package/dist/proofs/definition.d.mts +335 -0
  968. package/dist/proofs/definition.mjs +10 -0
  969. package/dist/proofs/definition.mjs.map +1 -0
  970. package/dist/proofs/delivery.d.mts +30 -0
  971. package/dist/proofs/delivery.mjs +26 -0
  972. package/dist/proofs/delivery.mjs.map +1 -0
  973. package/dist/proofs/dispatch.d.mts +20 -0
  974. package/dist/proofs/dispatch.mjs +54 -0
  975. package/dist/proofs/dispatch.mjs.map +1 -0
  976. package/dist/proofs/errors.d.mts +21 -0
  977. package/dist/proofs/errors.mjs +25 -0
  978. package/dist/proofs/errors.mjs.map +1 -0
  979. package/dist/proofs/models.d.mts +141 -0
  980. package/dist/proofs/models.mjs +93 -0
  981. package/dist/proofs/models.mjs.map +1 -0
  982. package/dist/proofs/module.d.mts +344 -0
  983. package/dist/proofs/module.mjs +350 -0
  984. package/dist/proofs/module.mjs.map +1 -0
  985. package/dist/proofs/policy.d.mts +152 -0
  986. package/dist/proofs/policy.mjs +51 -0
  987. package/dist/proofs/policy.mjs.map +1 -0
  988. package/dist/sessions/AuthenticationAuthority.d.mts +31 -0
  989. package/dist/sessions/AuthenticationAuthority.mjs +8 -0
  990. package/dist/sessions/AuthenticationAuthority.mjs.map +1 -0
  991. package/dist/sessions/PendingAuthentication.d.mts +108 -0
  992. package/dist/sessions/PendingAuthentication.mjs +40 -0
  993. package/dist/sessions/PendingAuthentication.mjs.map +1 -0
  994. package/dist/sessions/SessionStepUpPersistence.d.mts +152 -0
  995. package/dist/sessions/SessionStepUpPersistence.mjs +63 -0
  996. package/dist/sessions/SessionStepUpPersistence.mjs.map +1 -0
  997. package/dist/sessions/assurance.d.mts +163 -0
  998. package/dist/sessions/assurance.mjs +95 -0
  999. package/dist/sessions/assurance.mjs.map +1 -0
  1000. package/dist/sessions/commit.d.mts +13 -0
  1001. package/dist/sessions/configuration.d.mts +46 -0
  1002. package/dist/sessions/configuration.mjs +55 -0
  1003. package/dist/sessions/configuration.mjs.map +1 -0
  1004. package/dist/sessions/contract.d.mts +663 -0
  1005. package/dist/sessions/contract.mjs +174 -0
  1006. package/dist/sessions/contract.mjs.map +1 -0
  1007. package/dist/sessions/crypto.d.mts +24 -0
  1008. package/dist/sessions/crypto.mjs +106 -0
  1009. package/dist/sessions/crypto.mjs.map +1 -0
  1010. package/dist/sessions/definition.d.mts +11 -0
  1011. package/dist/sessions/definition.mjs +10 -0
  1012. package/dist/sessions/definition.mjs.map +1 -0
  1013. package/dist/sessions/errors.d.mts +35 -0
  1014. package/dist/sessions/errors.mjs +34 -0
  1015. package/dist/sessions/errors.mjs.map +1 -0
  1016. package/dist/sessions/invalidation.d.mts +23 -0
  1017. package/dist/sessions/invalidation.mjs +33 -0
  1018. package/dist/sessions/invalidation.mjs.map +1 -0
  1019. package/dist/sessions/models.d.mts +143 -0
  1020. package/dist/sessions/models.mjs +94 -0
  1021. package/dist/sessions/models.mjs.map +1 -0
  1022. package/dist/sessions/module.d.mts +1091 -0
  1023. package/dist/sessions/module.mjs +943 -0
  1024. package/dist/sessions/module.mjs.map +1 -0
  1025. package/dist/sessions/persistence.d.mts +93 -0
  1026. package/dist/sessions/policy.d.mts +80 -0
  1027. package/dist/sessions/policy.mjs +66 -0
  1028. package/dist/sessions/policy.mjs.map +1 -0
  1029. package/dist/testing/conformance/AuthStore.d.mts +11 -0
  1030. package/dist/testing/conformance/AuthStore.mjs +173 -0
  1031. package/dist/testing/conformance/AuthStore.mjs.map +1 -0
  1032. package/dist/testing/conformance/OAuthConnectionStore.d.mts +11 -0
  1033. package/dist/testing/conformance/OAuthConnectionStore.mjs +102 -0
  1034. package/dist/testing/conformance/OAuthConnectionStore.mjs.map +1 -0
  1035. package/dist/testing/conformance/OAuthStateStore.d.mts +11 -0
  1036. package/dist/testing/conformance/OAuthStateStore.mjs +45 -0
  1037. package/dist/testing/conformance/OAuthStateStore.mjs.map +1 -0
  1038. package/dist/testing/conformance/PasswordCredentialStore.d.mts +20 -0
  1039. package/dist/testing/conformance/PasswordCredentialStore.mjs +103 -0
  1040. package/dist/testing/conformance/PasswordCredentialStore.mjs.map +1 -0
  1041. package/dist/testing/conformance/support.mjs +17 -0
  1042. package/dist/testing/conformance/support.mjs.map +1 -0
  1043. package/dist/testing/crypto.d.mts +11 -0
  1044. package/dist/testing/crypto.mjs +41 -0
  1045. package/dist/testing/crypto.mjs.map +1 -0
  1046. package/dist/testing/keyring.d.mts +9 -0
  1047. package/dist/testing/keyring.mjs +17 -0
  1048. package/dist/testing/keyring.mjs.map +1 -0
  1049. package/dist/totp/TotpActionEvidence.d.mts +18 -0
  1050. package/dist/totp/TotpActionEvidence.mjs +8 -0
  1051. package/dist/totp/TotpActionEvidence.mjs.map +1 -0
  1052. package/dist/totp/TotpPersistence.d.mts +19 -0
  1053. package/dist/totp/TotpPersistence.mjs +8 -0
  1054. package/dist/totp/TotpPersistence.mjs.map +1 -0
  1055. package/dist/totp/TotpSecretKeys.d.mts +15 -0
  1056. package/dist/totp/TotpSecretKeys.mjs +8 -0
  1057. package/dist/totp/TotpSecretKeys.mjs.map +1 -0
  1058. package/dist/totp/crypto.mjs +96 -0
  1059. package/dist/totp/crypto.mjs.map +1 -0
  1060. package/dist/totp/definition.d.mts +764 -0
  1061. package/dist/totp/definition.mjs +24 -0
  1062. package/dist/totp/definition.mjs.map +1 -0
  1063. package/dist/totp/errors.d.mts +16 -0
  1064. package/dist/totp/errors.mjs +18 -0
  1065. package/dist/totp/errors.mjs.map +1 -0
  1066. package/dist/totp/models.d.mts +377 -0
  1067. package/dist/totp/models.mjs +137 -0
  1068. package/dist/totp/models.mjs.map +1 -0
  1069. package/dist/totp/module.d.mts +737 -0
  1070. package/dist/totp/module.mjs +355 -0
  1071. package/dist/totp/module.mjs.map +1 -0
  1072. package/package.json +1 -0
  1073. package/src/Atom.ts +4 -0
  1074. package/src/Auth.ts +16 -0
  1075. package/src/AuthContract.ts +17 -0
  1076. package/src/AuthSession.ts +298 -0
  1077. package/src/AuthStore.ts +367 -0
  1078. package/src/AuthTokenCodec.ts +226 -0
  1079. package/src/Client.ts +9 -0
  1080. package/src/Cloudflare.ts +345 -0
  1081. package/src/Drizzle.ts +378 -0
  1082. package/src/DrizzleD1.ts +136 -0
  1083. package/src/DrizzleLibsql.ts +288 -0
  1084. package/src/DrizzleMysql2.ts +184 -0
  1085. package/src/DrizzlePglite.ts +160 -0
  1086. package/src/DrizzlePostgres.ts +160 -0
  1087. package/src/DrizzleSqliteBun.ts +244 -0
  1088. package/src/DrizzleSqliteDo.ts +473 -0
  1089. package/src/DrizzleSqliteNode.ts +245 -0
  1090. package/src/DrizzleSqliteWasm.ts +245 -0
  1091. package/src/Email.ts +55 -0
  1092. package/src/EmailOtp.ts +250 -0
  1093. package/src/EmailOtpSender.ts +28 -0
  1094. package/src/Errors.ts +103 -0
  1095. package/src/GitHub.ts +16 -0
  1096. package/src/Hooks.ts +50 -0
  1097. package/src/Http.ts +47 -0
  1098. package/src/HttpServer.ts +742 -0
  1099. package/src/Identity.ts +53 -0
  1100. package/src/IdentityResolver.ts +18 -0
  1101. package/src/OAuth.ts +242 -0
  1102. package/src/OpenIdClient.ts +13 -0
  1103. package/src/OpenIdClientConnected.ts +18 -0
  1104. package/src/OperationHttp.ts +14 -0
  1105. package/src/OperationHttpClient.ts +6 -0
  1106. package/src/OperationHttpServer.ts +15 -0
  1107. package/src/Operations.ts +69 -0
  1108. package/src/Passkey.ts +81 -0
  1109. package/src/PasskeyBrowser.ts +19 -0
  1110. package/src/PasskeyContract.ts +212 -0
  1111. package/src/PasskeyPassword.ts +319 -0
  1112. package/src/PasskeySimpleWebAuthn.ts +6 -0
  1113. package/src/Password.ts +113 -0
  1114. package/src/PasswordAuth.ts +197 -0
  1115. package/src/PasswordCredentialStore.ts +140 -0
  1116. package/src/PasswordHasher.ts +147 -0
  1117. package/src/PhoneOtp.ts +32 -0
  1118. package/src/Policy.ts +95 -0
  1119. package/src/Proofs.ts +71 -0
  1120. package/src/Rpc.ts +15 -0
  1121. package/src/Schema.ts +235 -0
  1122. package/src/SessionContract.ts +2 -0
  1123. package/src/Sessions.ts +105 -0
  1124. package/src/Testing.ts +24 -0
  1125. package/src/Totp.ts +28 -0
  1126. package/src/TotpContract.ts +147 -0
  1127. package/src/WebCrypto.ts +61 -0
  1128. package/src/Workflows.ts +12 -0
  1129. package/src/atom/AuthAtomLifetime.ts +87 -0
  1130. package/src/atom/AuthAtomWorkflow.ts +27 -0
  1131. package/src/atom/client.ts +364 -0
  1132. package/src/atom/operations.ts +183 -0
  1133. package/src/atom/scoped-runtime.ts +249 -0
  1134. package/src/auth/Auth.ts +482 -0
  1135. package/src/auth/AuthConfigurationError.ts +9 -0
  1136. package/src/auth/AuthRequest.ts +21 -0
  1137. package/src/auth/AuthStrategy.ts +116 -0
  1138. package/src/auth/ConsumeDecision.ts +4 -0
  1139. package/src/auth/actions.ts +220 -0
  1140. package/src/auth/defaults.ts +23 -0
  1141. package/src/auth/definition.ts +88 -0
  1142. package/src/auth/session.ts +146 -0
  1143. package/src/drizzle/D1BatchStatements.ts +10 -0
  1144. package/src/drizzle/PasswordPreparedPostconditions.ts +30 -0
  1145. package/src/drizzle/SuppliedService.ts +10 -0
  1146. package/src/drizzle/d1-emails.ts +1808 -0
  1147. package/src/drizzle/d1-generated-statement.ts +129 -0
  1148. package/src/drizzle/d1-identity.ts +374 -0
  1149. package/src/drizzle/d1-oauth.ts +338 -0
  1150. package/src/drizzle/d1-passkey.ts +371 -0
  1151. package/src/drizzle/d1-password-prepared.ts +1273 -0
  1152. package/src/drizzle/d1-passwords.ts +2661 -0
  1153. package/src/drizzle/d1-phone.ts +94 -0
  1154. package/src/drizzle/d1-planning.ts +105 -0
  1155. package/src/drizzle/d1-proofs.ts +2305 -0
  1156. package/src/drizzle/d1-sessions.ts +2867 -0
  1157. package/src/drizzle/d1-totp.ts +79 -0
  1158. package/src/drizzle/email-model.ts +512 -0
  1159. package/src/drizzle/email-registration.ts +696 -0
  1160. package/src/drizzle/email-sql.ts +1468 -0
  1161. package/src/drizzle/email-target.ts +243 -0
  1162. package/src/drizzle/model.ts +492 -0
  1163. package/src/drizzle/mysql-emails.ts +323 -0
  1164. package/src/drizzle/mysql-identity.ts +323 -0
  1165. package/src/drizzle/mysql-password-prepared.ts +206 -0
  1166. package/src/drizzle/mysql-passwords.ts +341 -0
  1167. package/src/drizzle/mysql-proofs.ts +183 -0
  1168. package/src/drizzle/mysql-sessions.ts +742 -0
  1169. package/src/drizzle/mysql.ts +686 -0
  1170. package/src/drizzle/oauth-accounts.ts +801 -0
  1171. package/src/drizzle/oauth-connected-access.ts +354 -0
  1172. package/src/drizzle/oauth-connected-collection.ts +324 -0
  1173. package/src/drizzle/oauth-connected-custody.ts +277 -0
  1174. package/src/drizzle/oauth-connected-drivers.ts +463 -0
  1175. package/src/drizzle/oauth-connected-flow.ts +439 -0
  1176. package/src/drizzle/oauth-connected-input.ts +128 -0
  1177. package/src/drizzle/oauth-connected-maintenance.ts +345 -0
  1178. package/src/drizzle/oauth-connected-management.ts +365 -0
  1179. package/src/drizzle/oauth-connected-model.ts +347 -0
  1180. package/src/drizzle/oauth-connected-reference.ts +112 -0
  1181. package/src/drizzle/oauth-connected-settlement.ts +226 -0
  1182. package/src/drizzle/oauth-connected-state.ts +846 -0
  1183. package/src/drizzle/oauth-connected-target.ts +264 -0
  1184. package/src/drizzle/oauth-drivers.ts +567 -0
  1185. package/src/drizzle/oauth-flow.ts +461 -0
  1186. package/src/drizzle/oauth-input.ts +205 -0
  1187. package/src/drizzle/oauth-model.ts +610 -0
  1188. package/src/drizzle/oauth-mysql.ts +10 -0
  1189. package/src/drizzle/oauth-owner.ts +29 -0
  1190. package/src/drizzle/oauth-registration.ts +638 -0
  1191. package/src/drizzle/oauth-state.ts +213 -0
  1192. package/src/drizzle/oauth-target.ts +751 -0
  1193. package/src/drizzle/passkey-admission.ts +333 -0
  1194. package/src/drizzle/passkey-credentials.ts +465 -0
  1195. package/src/drizzle/passkey-drivers.ts +385 -0
  1196. package/src/drizzle/passkey-enrollment.ts +280 -0
  1197. package/src/drizzle/passkey-flow.ts +983 -0
  1198. package/src/drizzle/passkey-management.ts +369 -0
  1199. package/src/drizzle/passkey-model.ts +350 -0
  1200. package/src/drizzle/passkey-registration-ceremony-model.ts +69 -0
  1201. package/src/drizzle/passkey-registration-ceremony.ts +254 -0
  1202. package/src/drizzle/passkey-registration-custody.ts +82 -0
  1203. package/src/drizzle/passkey-registration-write.ts +378 -0
  1204. package/src/drizzle/passkey-state.ts +307 -0
  1205. package/src/drizzle/passkey-target.ts +528 -0
  1206. package/src/drizzle/passkey-write-drivers.ts +396 -0
  1207. package/src/drizzle/passkey-write-model.ts +265 -0
  1208. package/src/drizzle/passkey-write-state.ts +627 -0
  1209. package/src/drizzle/passkey-write-target.ts +406 -0
  1210. package/src/drizzle/password-model.ts +491 -0
  1211. package/src/drizzle/password-prepared-model.ts +259 -0
  1212. package/src/drizzle/password-prepared-sql.ts +1198 -0
  1213. package/src/drizzle/password-prepared-state.ts +232 -0
  1214. package/src/drizzle/password-prepared-target.ts +158 -0
  1215. package/src/drizzle/password-registration.ts +372 -0
  1216. package/src/drizzle/password-sql.ts +2082 -0
  1217. package/src/drizzle/password-target.ts +223 -0
  1218. package/src/drizzle/pg-emails.ts +323 -0
  1219. package/src/drizzle/pg-password-prepared.ts +207 -0
  1220. package/src/drizzle/pg-passwords.ts +340 -0
  1221. package/src/drizzle/pg-proofs.ts +193 -0
  1222. package/src/drizzle/pg-sessions.ts +751 -0
  1223. package/src/drizzle/pg.ts +982 -0
  1224. package/src/drizzle/phone-model.ts +185 -0
  1225. package/src/drizzle/phone-state.ts +802 -0
  1226. package/src/drizzle/phone-target.ts +471 -0
  1227. package/src/drizzle/proof-model.ts +398 -0
  1228. package/src/drizzle/proof-sql.ts +1912 -0
  1229. package/src/drizzle/proof-target.ts +120 -0
  1230. package/src/drizzle/session-model.ts +368 -0
  1231. package/src/drizzle/session-sql.ts +2152 -0
  1232. package/src/drizzle/session-target.ts +335 -0
  1233. package/src/drizzle/sqlite-emails.ts +368 -0
  1234. package/src/drizzle/sqlite-identity.ts +343 -0
  1235. package/src/drizzle/sqlite-password-prepared.ts +262 -0
  1236. package/src/drizzle/sqlite-passwords.ts +499 -0
  1237. package/src/drizzle/sqlite-proofs.ts +204 -0
  1238. package/src/drizzle/sqlite-sessions.ts +972 -0
  1239. package/src/drizzle/sqlite.ts +704 -0
  1240. package/src/drizzle/standalone-guard.ts +38 -0
  1241. package/src/drizzle/step-up-model.ts +129 -0
  1242. package/src/drizzle/step-up-state.ts +141 -0
  1243. package/src/drizzle/totp-model.ts +91 -0
  1244. package/src/drizzle/totp-state.ts +520 -0
  1245. package/src/drizzle/totp-target.ts +304 -0
  1246. package/src/drizzle/transaction-execution.ts +290 -0
  1247. package/src/drizzle/transaction-mysql.ts +104 -0
  1248. package/src/drizzle/transaction-owner.ts +570 -0
  1249. package/src/email/EmailActionEvidence.ts +37 -0
  1250. package/src/email/EmailAddressPersistence.ts +71 -0
  1251. package/src/email/EmailIdentifierNotifier.ts +48 -0
  1252. package/src/email/EmailReturnTargets.ts +50 -0
  1253. package/src/email/EmailSignInTargets.ts +20 -0
  1254. package/src/email/addresses.ts +630 -0
  1255. package/src/email/definition.ts +309 -0
  1256. package/src/email/errors.ts +23 -0
  1257. package/src/email/magicLink.ts +84 -0
  1258. package/src/email/models.ts +50 -0
  1259. package/src/email/module.ts +664 -0
  1260. package/src/email/registration.ts +415 -0
  1261. package/src/email/snapshot.ts +51 -0
  1262. package/src/hooks/LifecycleHooks.ts +136 -0
  1263. package/src/hooks/commit.ts +271 -0
  1264. package/src/hooks/models.ts +111 -0
  1265. package/src/hooks/plugins.ts +87 -0
  1266. package/src/hooks/transactions.ts +51 -0
  1267. package/src/http/auth-api.ts +17 -0
  1268. package/src/http/auth-contract.ts +148 -0
  1269. package/src/http/auth-http.ts +467 -0
  1270. package/src/http/endpoints/get-session.ts +9 -0
  1271. package/src/http/endpoints/password-sign-in.ts +19 -0
  1272. package/src/http/endpoints/request-email-otp.ts +10 -0
  1273. package/src/http/endpoints/set-password.ts +18 -0
  1274. package/src/http/endpoints/sign-out.ts +5 -0
  1275. package/src/http/endpoints/verify-email-otp.ts +15 -0
  1276. package/src/http/models.ts +80 -0
  1277. package/src/http/security.ts +102 -0
  1278. package/src/http/session-contract.ts +92 -0
  1279. package/src/http-operation/OperationHttpInvocation.ts +39 -0
  1280. package/src/http-operation/OperationHttpServerConfig.ts +124 -0
  1281. package/src/http-operation/auth-client.ts +273 -0
  1282. package/src/http-operation/client.ts +453 -0
  1283. package/src/http-operation/configuration-schema.ts +19 -0
  1284. package/src/http-operation/contract.ts +116 -0
  1285. package/src/http-operation/errors.ts +38 -0
  1286. package/src/http-operation/models.ts +42 -0
  1287. package/src/http-operation/private.ts +50 -0
  1288. package/src/http-operation/security.ts +93 -0
  1289. package/src/http-operation/server.ts +544 -0
  1290. package/src/identity/ExternalIdentityMutation.ts +18 -0
  1291. package/src/identity/IdentityMutation.ts +41 -0
  1292. package/src/identity/IdentityRepository.ts +37 -0
  1293. package/src/identity/SubjectLifecycle.ts +80 -0
  1294. package/src/identity/SubjectProvisioner.ts +40 -0
  1295. package/src/identity/codecs.ts +54 -0
  1296. package/src/identity/models.ts +82 -0
  1297. package/src/identity/operations.ts +182 -0
  1298. package/src/index.ts +23 -0
  1299. package/src/internal/AuthStoreDecisions.ts +23 -0
  1300. package/src/internal/CurrentSession.ts +8 -0
  1301. package/src/internal/diagnostics.ts +71 -0
  1302. package/src/oauth/GithubOAuthProvider.ts +106 -0
  1303. package/src/oauth/OAuth.ts +436 -0
  1304. package/src/oauth/OAuthAccountsPersistence.ts +142 -0
  1305. package/src/oauth/OAuthActionEvidence.ts +31 -0
  1306. package/src/oauth/OAuthConnectedActionEvidence.ts +28 -0
  1307. package/src/oauth/OAuthConnectedPersistence.ts +163 -0
  1308. package/src/oauth/OAuthConnectedProtocol.ts +54 -0
  1309. package/src/oauth/OAuthConnectedRevocations.ts +48 -0
  1310. package/src/oauth/OAuthConnectedTokenProtector.ts +240 -0
  1311. package/src/oauth/OAuthConnectedTransactionProtector.ts +56 -0
  1312. package/src/oauth/OAuthConnectedUseAuthority.ts +26 -0
  1313. package/src/oauth/OAuthConnectionStore.ts +59 -0
  1314. package/src/oauth/OAuthLinkTransactionProtector.ts +58 -0
  1315. package/src/oauth/OAuthProtocol.ts +39 -0
  1316. package/src/oauth/OAuthProvider.ts +126 -0
  1317. package/src/oauth/OAuthProviders.ts +53 -0
  1318. package/src/oauth/OAuthRegistrationIntents.ts +42 -0
  1319. package/src/oauth/OAuthReturnTargets.ts +44 -0
  1320. package/src/oauth/OAuthSignInPersistence.ts +91 -0
  1321. package/src/oauth/OAuthStateDecisions.ts +16 -0
  1322. package/src/oauth/OAuthStateStore.ts +102 -0
  1323. package/src/oauth/OAuthTransactionProtector.ts +103 -0
  1324. package/src/oauth/accounts.ts +987 -0
  1325. package/src/oauth/accountsModels.ts +214 -0
  1326. package/src/oauth/connected.ts +995 -0
  1327. package/src/oauth/connectedAccess.ts +644 -0
  1328. package/src/oauth/connectedMaintenance.ts +248 -0
  1329. package/src/oauth/connectedModels.ts +495 -0
  1330. package/src/oauth/definition.ts +414 -0
  1331. package/src/oauth/errors.ts +78 -0
  1332. package/src/oauth/github/identity.ts +26 -0
  1333. package/src/oauth/github/models.ts +37 -0
  1334. package/src/oauth/github/protocol.ts +329 -0
  1335. package/src/oauth/openid-client/ProviderRevocation.ts +22 -0
  1336. package/src/oauth/openid-client/compatibility.ts +47 -0
  1337. package/src/oauth/openid-client/configuration.ts +472 -0
  1338. package/src/oauth/openid-client/connected/configuration.ts +565 -0
  1339. package/src/oauth/openid-client/connected/models.ts +58 -0
  1340. package/src/oauth/openid-client/connected/protocol.ts +866 -0
  1341. package/src/oauth/openid-client/models.ts +78 -0
  1342. package/src/oauth/openid-client/protocol.ts +437 -0
  1343. package/src/oauth/openid-client/transport.ts +67 -0
  1344. package/src/oauth/policy.ts +26 -0
  1345. package/src/oauth/registration.ts +410 -0
  1346. package/src/oauth/registrationModels.ts +115 -0
  1347. package/src/oauth/registrationSecrets.ts +127 -0
  1348. package/src/oauth/schema.ts +102 -0
  1349. package/src/oauth/signInErrors.ts +23 -0
  1350. package/src/oauth/signInModels.ts +266 -0
  1351. package/src/oauth/signInModule.ts +875 -0
  1352. package/src/oauth/signInSnapshot.ts +37 -0
  1353. package/src/oauth/transactionEncryption.ts +198 -0
  1354. package/src/operations/RequestBindingConfig.ts +12 -0
  1355. package/src/operations/actions.ts +342 -0
  1356. package/src/operations/context.ts +130 -0
  1357. package/src/operations/credentials.ts +121 -0
  1358. package/src/operations/errors.ts +53 -0
  1359. package/src/operations/operation.ts +740 -0
  1360. package/src/operations/requestBinding.ts +237 -0
  1361. package/src/operations/requestBindingModels.ts +18 -0
  1362. package/src/operations/reveals.ts +147 -0
  1363. package/src/passkey/PasskeyActionEvidence.ts +25 -0
  1364. package/src/passkey/PasskeyCredentials.ts +16 -0
  1365. package/src/passkey/PasskeyEnrollmentContext.ts +26 -0
  1366. package/src/passkey/PasskeyManagementPersistence.ts +124 -0
  1367. package/src/passkey/PasskeyPersistence.ts +85 -0
  1368. package/src/passkey/PasskeyProtocol.ts +48 -0
  1369. package/src/passkey/actions.ts +905 -0
  1370. package/src/passkey/browser/PasskeyBrowser.ts +26 -0
  1371. package/src/passkey/browser/models.ts +67 -0
  1372. package/src/passkey/browser/simplewebauthn.ts +621 -0
  1373. package/src/passkey/definition.ts +386 -0
  1374. package/src/passkey/errors.ts +39 -0
  1375. package/src/passkey/management.ts +552 -0
  1376. package/src/passkey/models.ts +414 -0
  1377. package/src/passkey/module.ts +367 -0
  1378. package/src/passkey/pending.ts +203 -0
  1379. package/src/passkey/policy.ts +88 -0
  1380. package/src/passkey/registration.ts +251 -0
  1381. package/src/passkey/simplewebauthn/configuration.ts +97 -0
  1382. package/src/passkey/simplewebauthn/models.ts +9 -0
  1383. package/src/passkey/simplewebauthn/protocol.ts +729 -0
  1384. package/src/passkey/snapshot.ts +48 -0
  1385. package/src/passkey/stepUp.ts +212 -0
  1386. package/src/password/CompromisedPasswords.ts +36 -0
  1387. package/src/password/NewPasswordCheck.ts +89 -0
  1388. package/src/password/PasswordHashing.ts +209 -0
  1389. package/src/password/PasswordKdfAdmission.ts +44 -0
  1390. package/src/password/configuration.ts +52 -0
  1391. package/src/password/defaults.ts +15 -0
  1392. package/src/password/encoding.ts +137 -0
  1393. package/src/password/errors.ts +43 -0
  1394. package/src/password/methods/PasswordActionEvidence.ts +41 -0
  1395. package/src/password/methods/PasswordPersistence.ts +128 -0
  1396. package/src/password/methods/PasswordPreparedPersistence.ts +123 -0
  1397. package/src/password/methods/contracts.ts +47 -0
  1398. package/src/password/methods/definition.ts +199 -0
  1399. package/src/password/methods/errors.ts +26 -0
  1400. package/src/password/methods/models.ts +80 -0
  1401. package/src/password/methods/module.ts +986 -0
  1402. package/src/password/methods/policy.ts +68 -0
  1403. package/src/password/methods/preparation.ts +73 -0
  1404. package/src/password/methods/prepared.ts +1199 -0
  1405. package/src/password/methods/preparedModels.ts +496 -0
  1406. package/src/password/methods/signIn.ts +136 -0
  1407. package/src/password/methods/snapshot.ts +53 -0
  1408. package/src/password/methods/verification.ts +266 -0
  1409. package/src/password/models.ts +15 -0
  1410. package/src/password/policy.ts +41 -0
  1411. package/src/phone/PhoneActionEvidence.ts +26 -0
  1412. package/src/phone/PhoneAdmission.ts +29 -0
  1413. package/src/phone/PhoneDeliveryEligibility.ts +9 -0
  1414. package/src/phone/PhonePersistence.ts +43 -0
  1415. package/src/phone/PhoneRequestContext.ts +7 -0
  1416. package/src/phone/PhoneSignInTargets.ts +19 -0
  1417. package/src/phone/definition.ts +87 -0
  1418. package/src/phone/failure.ts +40 -0
  1419. package/src/phone/lifecycle.ts +662 -0
  1420. package/src/phone/lifecycleModels.ts +108 -0
  1421. package/src/phone/models.ts +41 -0
  1422. package/src/phone/module.ts +433 -0
  1423. package/src/proofs/EmailProofDelivery.ts +19 -0
  1424. package/src/proofs/HostIngressLimiter.ts +20 -0
  1425. package/src/proofs/ProofPersistence.ts +172 -0
  1426. package/src/proofs/SmsProofDelivery.ts +19 -0
  1427. package/src/proofs/abuse.ts +23 -0
  1428. package/src/proofs/completion.ts +23 -0
  1429. package/src/proofs/crypto.ts +326 -0
  1430. package/src/proofs/definition.ts +39 -0
  1431. package/src/proofs/delivery.ts +73 -0
  1432. package/src/proofs/dispatch.ts +99 -0
  1433. package/src/proofs/errors.ts +46 -0
  1434. package/src/proofs/models.ts +131 -0
  1435. package/src/proofs/module.ts +620 -0
  1436. package/src/proofs/policy.ts +77 -0
  1437. package/src/sessions/AuthenticationAuthority.ts +51 -0
  1438. package/src/sessions/PendingAuthentication.ts +121 -0
  1439. package/src/sessions/SessionStepUpPersistence.ts +164 -0
  1440. package/src/sessions/assurance.ts +192 -0
  1441. package/src/sessions/commit.ts +13 -0
  1442. package/src/sessions/configuration.ts +133 -0
  1443. package/src/sessions/contract.ts +203 -0
  1444. package/src/sessions/crypto.ts +181 -0
  1445. package/src/sessions/definition.ts +25 -0
  1446. package/src/sessions/errors.ts +68 -0
  1447. package/src/sessions/invalidation.ts +46 -0
  1448. package/src/sessions/models.ts +138 -0
  1449. package/src/sessions/module.ts +1991 -0
  1450. package/src/sessions/persistence.ts +135 -0
  1451. package/src/sessions/policy.ts +103 -0
  1452. package/src/testing/conformance/AuthStore.ts +314 -0
  1453. package/src/testing/conformance/OAuthConnectionStore.ts +167 -0
  1454. package/src/testing/conformance/OAuthStateStore.ts +105 -0
  1455. package/src/testing/conformance/PasswordCredentialStore.ts +205 -0
  1456. package/src/testing/conformance/support.ts +38 -0
  1457. package/src/testing/crypto.ts +55 -0
  1458. package/src/testing/keyring.ts +17 -0
  1459. package/src/totp/TotpActionEvidence.ts +18 -0
  1460. package/src/totp/TotpPersistence.ts +26 -0
  1461. package/src/totp/TotpSecretKeys.ts +15 -0
  1462. package/src/totp/crypto.ts +160 -0
  1463. package/src/totp/definition.ts +78 -0
  1464. package/src/totp/errors.ts +25 -0
  1465. package/src/totp/models.ts +164 -0
  1466. package/src/totp/module.ts +717 -0
@@ -0,0 +1,103 @@
1
+ import { SessionSummary } from "./Schema.mjs";
2
+ import { AuthStoreError, AuthTokenError, AuthUnavailable, IdentityResolutionError, InvalidRegistration, RegistrationIncomplete } from "./Errors.mjs";
3
+ import { AuthSession, AuthSessionWithExtClass, IssuedSession } from "./AuthSession.mjs";
4
+ import { EmailOtp } from "./EmailOtp.mjs";
5
+ import { SessionStateAnonymous, SessionStateAuthenticated, SessionStateRegistrationRequired } from "./http/models.mjs";
6
+ import { ChallengeMiddleware, CurrentRegistration, RegistrationMiddleware, SessionMiddleware } from "./http/security.mjs";
7
+ import { AuthApi } from "./http/auth-api.mjs";
8
+ import { PasswordAuth } from "./PasswordAuth.mjs";
9
+ import { Effect, Layer } from "effect";
10
+ import { HttpApi, HttpApiEndpoint, HttpApiGroup, HttpApiSecurity } from "effect/unstable/httpapi";
11
+ import { HttpServerResponse } from "effect/unstable/http";
12
+ //#region src/HttpServer.d.ts
13
+ /** Registers a pre-response handler that expires one of the auth cookies. */
14
+ declare const expireSecurityCookie: (security: HttpApiSecurity.ApiKey) => Effect.Effect<void, never, import("effect/unstable/http/HttpServerRequest").HttpServerRequest>;
15
+ /**
16
+ * Bearer-transport counterpart of {@link expireSecurityCookie}: an empty
17
+ * `set-auth-token` header tells cookie-less clients to drop their stored
18
+ * session token. Without it, sign-out only expires the cookie and a bearer
19
+ * client races its own token cleanup against the session refetch — the
20
+ * stateless token keeps verifying and the client re-authenticates itself
21
+ * straight back into the session it just revoked.
22
+ */
23
+ declare const expireAuthTokenHeader: Effect.Effect<void, never, import("effect/unstable/http/HttpServerRequest").HttpServerRequest>;
24
+ /**
25
+ * Applies the session to a concrete response for both transports. This is the
26
+ * raw-handler counterpart to {@link registerSession}; keeping both here makes
27
+ * the cookie and bearer-header contract a single source of truth.
28
+ */
29
+ declare const setSessionOnResponse: (response: HttpServerResponse.HttpServerResponse, issued: IssuedSession) => HttpServerResponse.HttpServerResponse;
30
+ /**
31
+ * Registers the session on the response for both transports: the HttpOnly
32
+ * cookie for browsers, and the `set-auth-token` header for clients that
33
+ * cannot read the cookie and echo the token back as `Authorization: Bearer`.
34
+ * Every place that issues a session must go through this so the two
35
+ * transports never drift — including application-owned handlers that issue
36
+ * sessions outside this module's workflows.
37
+ */
38
+ declare const registerSession: (issued: IssuedSession) => Effect.Effect<void, never, import("effect/unstable/http/HttpServerRequest").HttpServerRequest>;
39
+ /**
40
+ * Resolves the request's optional session and pending-registration credentials.
41
+ * Browser credentials prefer cookies; native clients can supply the same tokens
42
+ * through their corresponding headers.
43
+ * Invalid or expired credentials degrade to the next public state; failures
44
+ * in the token codec or auth store remain an explicit availability error.
45
+ */
46
+ declare const resolveSessionState: Effect.Effect<SessionStateAnonymous | SessionStateAuthenticated | SessionStateRegistrationRequired, AuthUnavailable, AuthSession | EmailOtp | import("effect/unstable/http/HttpServerRequest").HttpServerRequest | import("effect/unstable/http/HttpServerRequest").ParsedSearchParams>;
47
+ declare const SessionMiddlewareLayer: Layer.Layer<SessionMiddleware, never, AuthSession>;
48
+ declare const RegistrationMiddlewareLayer: Layer.Layer<RegistrationMiddleware, never, EmailOtp>;
49
+ declare const ChallengeMiddlewareLayer: Layer.Layer<ChallengeMiddleware>;
50
+ /**
51
+ * Gate for the handler-layer factories: the consumer's API must contain an
52
+ * `auth` group with every canonical endpoint. API prefixes and middleware may
53
+ * wrap endpoint path and requirement types, so the check allows those two
54
+ * differences while preserving every transport schema.
55
+ */
56
+ type AuthGroup<Groups> = Extract<Groups, {
57
+ readonly identifier: "auth";
58
+ }>;
59
+ type AuthGroupEndpoints<Groups> = AuthGroup<Groups> extends {
60
+ readonly endpoints: infer Endpoints;
61
+ } ? Endpoints : never;
62
+ type CanonicalAuthEndpoints = (typeof AuthApi)["endpoints"];
63
+ type AuthEndpoint<Groups, Name> = Name extends keyof AuthGroupEndpoints<Groups> ? AuthGroupEndpoints<Groups>[Name] : never;
64
+ type EndpointContract<Endpoint> = Endpoint extends HttpApiEndpoint.HttpApiEndpoint<infer Identifier, infer Method, infer _Path, infer Params, infer Query, infer Payload, infer Headers, infer Success, infer Error, infer _Middleware, infer _MiddlewareRequirements> ? [Identifier, Method, Params, Query, Payload, Headers, Success, Error] : never;
65
+ type EndpointPath<Endpoint> = Endpoint extends {
66
+ readonly path: infer Path extends string;
67
+ } ? Path : never;
68
+ type Equal<Left, Right> = [Left, Right] extends [Right, Left] ? true : false;
69
+ type CompatibleEndpoint<Candidate, Canonical> = Equal<EndpointContract<Candidate>, EndpointContract<Canonical>> extends true ? EndpointPath<Candidate> extends `${string}${EndpointPath<Canonical>}` ? true : false : false;
70
+ type IncompatibleAuthEndpoints<Groups> = { [Name in keyof CanonicalAuthEndpoints]: CompatibleEndpoint<AuthEndpoint<Groups, Name>, CanonicalAuthEndpoints[Name]> extends true ? never : Name; }[keyof CanonicalAuthEndpoints];
71
+ type RequiresAuthGroup<Groups> = [AuthGroup<Groups>] extends [never] ? {
72
+ readonly "~effect-auth": "the consumer HttpApi must include the AuthApi group";
73
+ } : [IncompatibleAuthEndpoints<Groups>] extends [never] ? unknown : {
74
+ readonly "~effect-auth": "the consumer auth group must preserve every AuthApi endpoint contract";
75
+ };
76
+ /**
77
+ * Builds the handler layer for the `auth` group of a consumer `HttpApi` that
78
+ * includes {@link AuthApi}. The internal assertion re-anchors the builder on
79
+ * the canonical group so endpoint handlers type against it.
80
+ */
81
+ declare const layerAuthHandlers: <ApiId extends string, Groups extends HttpApiGroup.Constraint, Self = never, Id extends string = string, A = never>(api: HttpApi.HttpApi<ApiId, Groups> & NoInfer<RequiresAuthGroup<Groups>>, sessionExt?: AuthSessionWithExtClass<Self, Id, A>) => Layer.Layer<HttpApiGroup.Service<ApiId, "auth">, never, AuthSession | ChallengeMiddleware | EmailOtp | PasswordAuth | SessionMiddleware | Exclude<Self, import("effect/Scope").Scope>>;
82
+ declare const establishSessionFromRegistration: Effect.Effect<SessionSummary, AuthStoreError | AuthTokenError | IdentityResolutionError | InvalidRegistration | RegistrationIncomplete, AuthSession | CurrentRegistration | EmailOtp | import("effect/unstable/http/HttpServerRequest").HttpServerRequest>;
83
+ /**
84
+ * Everything the auth group needs at the HTTP boundary: handlers plus the
85
+ * middleware implementations. Requires `EmailOtp`, `PasswordAuth`, and
86
+ * `AuthSession`.
87
+ */
88
+ declare const layerAuthHttp: <ApiId extends string, Groups extends HttpApiGroup.Constraint, Self = never, Id extends string = string, A = never>(api: HttpApi.HttpApi<ApiId, Groups> & NoInfer<RequiresAuthGroup<Groups>>, sessionExt?: AuthSessionWithExtClass<Self, Id, A>) => Layer.Layer<RegistrationMiddleware | HttpApiGroup.Service<ApiId, "auth"> | SessionMiddleware, never, AuthSession | EmailOtp | PasswordAuth | Exclude<Exclude<Exclude<Self, import("effect/Scope").Scope>, ChallengeMiddleware>, RegistrationMiddleware | SessionMiddleware>>;
89
+ declare const withSession: <Self, Id extends string, A>(sessionExt: AuthSessionWithExtClass<Self, Id, A>) => {
90
+ readonly layerHandlers: <ApiId extends string, Groups extends HttpApiGroup.Constraint>(api: HttpApi.HttpApi<ApiId, Groups> & NoInfer<RequiresAuthGroup<Groups>>) => Layer.Layer<HttpApiGroup.Service<ApiId, "auth">, never, AuthSession | ChallengeMiddleware | EmailOtp | PasswordAuth | SessionMiddleware | Exclude<Self, import("effect/Scope").Scope>>;
91
+ readonly layer: <ApiId extends string, Groups extends HttpApiGroup.Constraint>(api: HttpApi.HttpApi<ApiId, Groups> & NoInfer<RequiresAuthGroup<Groups>>) => Layer.Layer<RegistrationMiddleware | HttpApiGroup.Service<ApiId, "auth"> | SessionMiddleware, never, AuthSession | EmailOtp | PasswordAuth | Exclude<Exclude<Exclude<Self, import("effect/Scope").Scope>, ChallengeMiddleware>, RegistrationMiddleware | SessionMiddleware>>;
92
+ readonly establishSessionFromRegistration: Effect.Effect<SessionSummary, AuthStoreError | AuthTokenError | IdentityResolutionError | InvalidRegistration | RegistrationIncomplete, Self | AuthSession | CurrentRegistration | EmailOtp | import("effect/unstable/http/HttpServerRequest").HttpServerRequest>;
93
+ };
94
+ /**
95
+ * Binds an app-typed session declaration to extension-aware HTTP handlers and
96
+ * registration issuance while retaining runtime services as Effect requirements.
97
+ */
98
+ declare const AuthHttp: {
99
+ readonly withSession: typeof withSession;
100
+ };
101
+ //#endregion
102
+ export { AuthHttp, ChallengeMiddlewareLayer, RegistrationMiddlewareLayer, SessionMiddlewareLayer, establishSessionFromRegistration, expireAuthTokenHeader, expireSecurityCookie, layerAuthHandlers, layerAuthHttp, registerSession, resolveSessionState, setSessionOnResponse };
103
+ //# sourceMappingURL=HttpServer.d.mts.map
@@ -0,0 +1,326 @@
1
+ import { Email, SessionSummary } from "./Schema.mjs";
2
+ import { AuthUnavailable, InvalidAuthRequest, InvalidEmailOtp, InvalidRegistration, Unauthorized } from "./Errors.mjs";
3
+ import { ExistingSessionResult, RegistrationRequiredResult, SessionStateAnonymous, SessionStateAuthenticated, SessionStateRegistrationRequired } from "./http/models.mjs";
4
+ import { CurrentSession } from "./internal/CurrentSession.mjs";
5
+ import { ChallengeMiddleware, ChallengeSecurity, CurrentChallenge, CurrentRegistration, RegistrationHeaderSecurity, RegistrationMiddleware, RegistrationSecurity, SessionBearerSecurity, SessionMiddleware, SessionSecurity, authChallengeHeaderName, authRegistrationHeaderName, authTokenHeaderName } from "./http/security.mjs";
6
+ import { AuthSession } from "./AuthSession.mjs";
7
+ import { EmailOtp } from "./EmailOtp.mjs";
8
+ import { PasswordAuth } from "./PasswordAuth.mjs";
9
+ import { DateTime, Effect, Layer, Option, Redacted, Schema } from "effect";
10
+ import { HttpApiBuilder } from "effect/unstable/httpapi";
11
+ import { HttpEffect, HttpServerResponse } from "effect/unstable/http";
12
+ //#region src/HttpServer.ts
13
+ const decodeEmail = Schema.decodeEffect(Email);
14
+ const issueSession = Effect.fn("effect-auth/issueSession")(function* (sessions, context, sessionExt) {
15
+ if (sessionExt === void 0) return yield* sessions.issue(context.subjectId);
16
+ return yield* sessionExt.issueFromContext(context);
17
+ });
18
+ const baseCookieOptions = {
19
+ path: "/",
20
+ sameSite: "lax",
21
+ secure: true,
22
+ httpOnly: true
23
+ };
24
+ const cookieOptionsUntil = (expiresAt) => ({
25
+ ...baseCookieOptions,
26
+ expires: DateTime.toDateUtc(expiresAt)
27
+ });
28
+ /** Registers a pre-response handler that expires one of the auth cookies. */
29
+ const expireSecurityCookie = (security) => HttpEffect.appendPreResponseHandler((_request, response) => Effect.orDie(HttpServerResponse.expireCookie(response, security.key, baseCookieOptions)));
30
+ /**
31
+ * Bearer-transport counterpart of {@link expireSecurityCookie}: an empty
32
+ * `set-auth-token` header tells cookie-less clients to drop their stored
33
+ * session token. Without it, sign-out only expires the cookie and a bearer
34
+ * client races its own token cleanup against the session refetch — the
35
+ * stateless token keeps verifying and the client re-authenticates itself
36
+ * straight back into the session it just revoked.
37
+ */
38
+ const expireAuthTokenHeader = HttpEffect.appendPreResponseHandler((_request, response) => Effect.succeed(HttpServerResponse.setHeader(response, authTokenHeaderName, "")));
39
+ /** Auth responses must never be cached. */
40
+ const noStore = HttpEffect.appendPreResponseHandler((_request, response) => Effect.succeed(HttpServerResponse.setHeader(response, "cache-control", "no-store")));
41
+ /**
42
+ * Applies the session to a concrete response for both transports. This is the
43
+ * raw-handler counterpart to {@link registerSession}; keeping both here makes
44
+ * the cookie and bearer-header contract a single source of truth.
45
+ */
46
+ const setSessionOnResponse = (response, issued) => response.pipe(HttpServerResponse.setCookieUnsafe(SessionSecurity.key, issued.token, cookieOptionsUntil(issued.summary.expiresAt)), HttpServerResponse.setHeader(authTokenHeaderName, issued.token));
47
+ /**
48
+ * Registers the session on the response for both transports: the HttpOnly
49
+ * cookie for browsers, and the `set-auth-token` header for clients that
50
+ * cannot read the cookie and echo the token back as `Authorization: Bearer`.
51
+ * Every place that issues a session must go through this so the two
52
+ * transports never drift — including application-owned handlers that issue
53
+ * sessions outside this module's workflows.
54
+ */
55
+ const registerSession = (issued) => HttpEffect.appendPreResponseHandler((_request, response) => Effect.succeed(setSessionOnResponse(response, issued)));
56
+ /**
57
+ * Mirrors a flow-intermediate token (challenge, registration) on a response
58
+ * header, the same dual-transport rule as {@link registerSession}: the
59
+ * SameSite cookie serves browsers, the header serves clients whose cookie
60
+ * store never carries it, which echo it back as the matching `x-auth-*`
61
+ * request header.
62
+ */
63
+ const mirrorTokenHeader = (headerName, token) => HttpEffect.appendPreResponseHandler((_request, response) => Effect.succeed(HttpServerResponse.setHeader(response, headerName, Redacted.value(token))));
64
+ const failUnavailable = Effect.fn("failUnavailable")(function* (operation, fault, detail) {
65
+ yield* Effect.logError(`${operation} failed`).pipe(Effect.annotateLogs({
66
+ fault,
67
+ detail
68
+ }));
69
+ return yield* AuthUnavailable.make();
70
+ });
71
+ /**
72
+ * Resolves the request's optional session and pending-registration credentials.
73
+ * Browser credentials prefer cookies; native clients can supply the same tokens
74
+ * through their corresponding headers.
75
+ * Invalid or expired credentials degrade to the next public state; failures
76
+ * in the token codec or auth store remain an explicit availability error.
77
+ */
78
+ const resolveSessionState = Effect.gen(function* () {
79
+ const sessions = yield* AuthSession;
80
+ const emailOtp = yield* EmailOtp;
81
+ const cookieCredential = yield* HttpApiBuilder.securityDecode(SessionSecurity);
82
+ const sessionCredential = Redacted.value(cookieCredential) !== "" ? cookieCredential : yield* HttpApiBuilder.securityDecode(SessionBearerSecurity);
83
+ if (Redacted.value(sessionCredential) !== "") {
84
+ const authenticated = yield* sessions.verifyAndRenew(sessionCredential).pipe(Effect.flatMap((verified) => Effect.gen(function* () {
85
+ if (Option.isSome(verified.renewal)) yield* registerSession(verified.renewal.value);
86
+ return Option.some(SessionStateAuthenticated.make({ session: SessionSummary.make({
87
+ subjectId: verified.claims.sub,
88
+ expiresAt: Option.match(verified.renewal, {
89
+ onNone: () => verified.claims.exp,
90
+ onSome: (renewal) => renewal.summary.expiresAt
91
+ })
92
+ }) }));
93
+ })), Effect.catchTags({
94
+ InvalidSession: () => Effect.succeed(Option.none()),
95
+ AuthTokenError: () => AuthUnavailable.make(),
96
+ IdentityResolutionError: () => AuthUnavailable.make()
97
+ }));
98
+ if (Option.isSome(authenticated)) return authenticated.value;
99
+ }
100
+ const registrationCookieCredential = yield* HttpApiBuilder.securityDecode(RegistrationSecurity);
101
+ const registrationCredential = Redacted.value(registrationCookieCredential) !== "" ? registrationCookieCredential : yield* HttpApiBuilder.securityDecode(RegistrationHeaderSecurity);
102
+ if (Redacted.value(registrationCredential) !== "") {
103
+ const pending = yield* emailOtp.inspectRegistration(registrationCredential).pipe(Effect.map((registration) => Option.some(SessionStateRegistrationRequired.make({
104
+ email: registration.email,
105
+ registrationExpiresAt: registration.expiresAt
106
+ }))), Effect.catchTags({
107
+ InvalidRegistration: () => Effect.succeed(Option.none()),
108
+ AuthStoreError: () => AuthUnavailable.make(),
109
+ AuthTokenError: () => AuthUnavailable.make()
110
+ }));
111
+ if (Option.isSome(pending)) return pending.value;
112
+ }
113
+ return SessionStateAnonymous.make();
114
+ }).pipe(Effect.withSpan("effect-auth.resolveSessionState"));
115
+ const SessionMiddlewareLayer = Layer.effect(SessionMiddleware)(Effect.map(AuthSession, (sessions) => {
116
+ const verifySession = Effect.fn("SessionMiddleware.session")(function* (httpEffect, { credential }) {
117
+ const sessionCredential = Redacted.value(credential) === "" ? yield* HttpApiBuilder.securityDecode(SessionSecurity) : credential;
118
+ if (Redacted.value(sessionCredential) === "") return yield* Unauthorized.make();
119
+ const verified = yield* sessions.verifyAndRenew(sessionCredential).pipe(Effect.catchTags({
120
+ InvalidSession: () => Unauthorized.make(),
121
+ AuthTokenError: () => AuthUnavailable.make(),
122
+ IdentityResolutionError: () => AuthUnavailable.make()
123
+ }));
124
+ const response = yield* Effect.provideService(httpEffect, CurrentSession, verified.claims);
125
+ if (Option.isSome(verified.renewal)) yield* registerSession(verified.renewal.value);
126
+ return response;
127
+ });
128
+ return SessionMiddleware.of({
129
+ session: verifySession,
130
+ sessionBearer: verifySession
131
+ });
132
+ }));
133
+ const RegistrationMiddlewareLayer = Layer.effect(RegistrationMiddleware)(Effect.map(EmailOtp, (emailOtp) => {
134
+ const verifyRegistration = Effect.fn("RegistrationMiddleware.registration")(function* (httpEffect, { credential }) {
135
+ if (Redacted.value(credential) === "") return yield* InvalidRegistration.make();
136
+ const registration = yield* emailOtp.inspectRegistration(credential).pipe(Effect.catchTags({
137
+ AuthStoreError: () => AuthUnavailable.make(),
138
+ AuthTokenError: () => AuthUnavailable.make()
139
+ }));
140
+ return yield* Effect.provideService(httpEffect, CurrentRegistration, {
141
+ registration,
142
+ token: credential
143
+ });
144
+ });
145
+ return RegistrationMiddleware.of({
146
+ registration: verifyRegistration,
147
+ registrationHeader: verifyRegistration
148
+ });
149
+ }));
150
+ const provideChallenge = (httpEffect, { credential }) => Redacted.value(credential) === "" ? Effect.fail(InvalidEmailOtp.make()) : Effect.provideService(httpEffect, CurrentChallenge, credential);
151
+ const provideChallengeHeader = (httpEffect, input) => Redacted.value(input.credential) === "" ? Effect.logInfo("Email OTP verification rejected").pipe(Effect.annotateLogs({
152
+ "auth.method": "email_otp",
153
+ "auth.outcome": "rejected",
154
+ "auth.reason": "missing_challenge_credential"
155
+ }), Effect.andThen(InvalidEmailOtp.make())) : provideChallenge(httpEffect, input);
156
+ const ChallengeMiddlewareLayer = Layer.succeed(ChallengeMiddleware)(ChallengeMiddleware.of({
157
+ challenge: provideChallenge,
158
+ challengeHeader: provideChallengeHeader
159
+ }));
160
+ /**
161
+ * Builds the handler layer for the `auth` group of a consumer `HttpApi` that
162
+ * includes {@link AuthApi}. The internal assertion re-anchors the builder on
163
+ * the canonical group so endpoint handlers type against it.
164
+ */
165
+ const layerAuthHandlers = (api, sessionExt) => HttpApiBuilder.group(api, "auth", (handlers) => Effect.gen(function* () {
166
+ const emailOtp = yield* EmailOtp;
167
+ const sessions = yield* AuthSession;
168
+ const sessionsWithExt = sessionExt === void 0 ? void 0 : yield* sessionExt;
169
+ const passwords = yield* PasswordAuth;
170
+ const currentSessionState = resolveSessionState.pipe(Effect.provideService(EmailOtp, emailOtp), Effect.provideService(AuthSession, sessions));
171
+ return handlers.handle("requestEmailOtp", ({ payload }) => Effect.gen(function* () {
172
+ yield* noStore;
173
+ const email = yield* decodeEmail(payload.email).pipe(Effect.mapError(() => InvalidAuthRequest.make({ message: "A valid email address is required" })));
174
+ const challenge = yield* emailOtp.request(email).pipe(Effect.catchTags({
175
+ AuthStoreError: (error) => failUnavailable("Email OTP request", "auth store", error.message),
176
+ AuthTokenError: (error) => failUnavailable("Email OTP request", "token codec", error.message),
177
+ EmailDeliveryError: (error) => failUnavailable("Email OTP request", "email delivery", error.message)
178
+ }));
179
+ yield* HttpApiBuilder.securitySetCookie(ChallengeSecurity, challenge.challengeToken, cookieOptionsUntil(challenge.expiresAt));
180
+ yield* mirrorTokenHeader(authChallengeHeaderName, challenge.challengeToken);
181
+ yield* Effect.logInfo("Sign-in code requested").pipe(Effect.annotateLogs({
182
+ "auth.method": "email_otp",
183
+ "auth.outcome": "challenge_issued",
184
+ email,
185
+ expiresAt: DateTime.formatIso(challenge.expiresAt)
186
+ }));
187
+ })).handle("verifyEmailOtp", ({ payload }) => Effect.gen(function* () {
188
+ yield* noStore;
189
+ const challengeToken = yield* CurrentChallenge;
190
+ const outcome = yield* emailOtp.verify({
191
+ challengeToken,
192
+ code: payload.code
193
+ }).pipe(Effect.catchTags({
194
+ AuthStoreError: (error) => failUnavailable("Email OTP verification", "auth store", error.message),
195
+ AuthTokenError: (error) => failUnavailable("Email OTP verification", "token codec", error.message),
196
+ IdentityResolutionError: (error) => failUnavailable("Email OTP verification", "identity resolution", error.message)
197
+ }));
198
+ yield* expireSecurityCookie(ChallengeSecurity);
199
+ yield* Effect.logInfo("Sign-in code verified").pipe(Effect.annotateLogs({
200
+ "auth.method": "email_otp",
201
+ "auth.outcome": outcome._tag === "ExistingSubject" ? "existing_subject" : "registration_required"
202
+ }));
203
+ if (outcome._tag === "ExistingSubject") {
204
+ const issued = yield* issueSession(sessions, {
205
+ subjectId: outcome.subjectId,
206
+ email: outcome.email
207
+ }, sessionsWithExt).pipe(Effect.catchTag("AuthTokenError", (error) => failUnavailable("Session issuance", "token codec", error.message)));
208
+ yield* registerSession(issued);
209
+ yield* Effect.logInfo("Session issued").pipe(Effect.annotateLogs({
210
+ "auth.method": "email_otp",
211
+ "auth.outcome": "session_issued",
212
+ subjectId: outcome.subjectId,
213
+ expiresAt: DateTime.formatIso(issued.summary.expiresAt)
214
+ }));
215
+ return ExistingSessionResult.make({ session: issued.summary });
216
+ }
217
+ yield* HttpApiBuilder.securitySetCookie(RegistrationSecurity, outcome.registrationToken, cookieOptionsUntil(outcome.expiresAt));
218
+ yield* mirrorTokenHeader(authRegistrationHeaderName, outcome.registrationToken);
219
+ yield* Effect.logInfo("Registration required").pipe(Effect.annotateLogs({
220
+ "auth.method": "email_otp",
221
+ "auth.outcome": "registration_required",
222
+ email: outcome.email,
223
+ expiresAt: DateTime.formatIso(outcome.expiresAt)
224
+ }));
225
+ return RegistrationRequiredResult.make({
226
+ email: outcome.email,
227
+ registrationExpiresAt: outcome.expiresAt
228
+ });
229
+ })).handle("passwordSignIn", ({ payload }) => Effect.gen(function* () {
230
+ yield* noStore;
231
+ const email = yield* decodeEmail(payload.email).pipe(Effect.mapError(() => InvalidAuthRequest.make({ message: "A valid email address is required" })));
232
+ const subjectId = yield* passwords.signIn(email, payload.password).pipe(Effect.catchTags({
233
+ AuthStoreError: (error) => failUnavailable("Password sign-in", "credential store", error.message),
234
+ AuthTokenError: (error) => failUnavailable("Password sign-in", "password hasher", error.message)
235
+ }));
236
+ const issued = yield* issueSession(sessions, {
237
+ subjectId,
238
+ email
239
+ }, sessionsWithExt).pipe(Effect.catchTag("AuthTokenError", (error) => failUnavailable("Session issuance", "token codec", error.message)));
240
+ yield* registerSession(issued);
241
+ yield* Effect.logInfo("Session issued").pipe(Effect.annotateLogs({
242
+ "auth.method": "password",
243
+ "auth.outcome": "session_issued",
244
+ subjectId,
245
+ expiresAt: DateTime.formatIso(issued.summary.expiresAt)
246
+ }));
247
+ return SessionStateAuthenticated.make({ session: issued.summary });
248
+ })).handle("setPassword", ({ payload }) => Effect.gen(function* () {
249
+ yield* noStore;
250
+ const session = yield* CurrentSession;
251
+ yield* passwords.setPassword(session.sub, {
252
+ currentPassword: Option.fromNullishOr(payload.currentPassword),
253
+ newPassword: payload.newPassword
254
+ }).pipe(Effect.catchTags({
255
+ AuthStoreError: (error) => failUnavailable("Password change", "credential store", error.message),
256
+ AuthTokenError: (error) => failUnavailable("Password change", "password hasher", error.message)
257
+ }));
258
+ yield* Effect.logInfo("Password changed").pipe(Effect.annotateLogs({
259
+ "auth.method": "password",
260
+ "auth.outcome": "password_changed",
261
+ subjectId: session.sub
262
+ }));
263
+ })).handle("getSession", () => noStore.pipe(Effect.andThen(currentSessionState))).handle("signOut", () => Effect.gen(function* () {
264
+ yield* noStore;
265
+ yield* expireSecurityCookie(ChallengeSecurity);
266
+ yield* expireSecurityCookie(RegistrationSecurity);
267
+ yield* expireSecurityCookie(SessionSecurity);
268
+ yield* expireAuthTokenHeader;
269
+ yield* Effect.logInfo("Session signed out").pipe(Effect.annotateLogs({ "auth.outcome": "signed_out" }));
270
+ }));
271
+ }));
272
+ /**
273
+ * Real onboarding workflow for application-owned, registration-protected
274
+ * account endpoints: consumes the current pending registration, registers the
275
+ * session cookie on the
276
+ * response, and returns the session summary. Call it after the application has
277
+ * idempotently created the account and email mapping.
278
+ */
279
+ const establishSessionFromRegistrationWith = Effect.fn("effect-auth/establishSessionFromRegistration")(function* (sessionExt) {
280
+ const { registration, token } = yield* CurrentRegistration;
281
+ const emailOtp = yield* EmailOtp;
282
+ const sessions = yield* AuthSession;
283
+ const subjectId = yield* emailOtp.completeRegistration(token);
284
+ const issued = yield* issueSession(sessions, {
285
+ subjectId,
286
+ email: registration.email
287
+ }, sessionExt);
288
+ yield* registerSession(issued);
289
+ yield* expireSecurityCookie(RegistrationSecurity);
290
+ yield* Effect.logInfo("Registration completed; session issued").pipe(Effect.annotateLogs({
291
+ "auth.method": "email_otp",
292
+ "auth.outcome": "registration_completed",
293
+ subjectId,
294
+ email: registration.email,
295
+ expiresAt: DateTime.formatIso(issued.summary.expiresAt)
296
+ }));
297
+ return issued.summary;
298
+ });
299
+ const establishSessionFromRegistration = establishSessionFromRegistrationWith();
300
+ /**
301
+ * Everything the auth group needs at the HTTP boundary: handlers plus the
302
+ * middleware implementations. Requires `EmailOtp`, `PasswordAuth`, and
303
+ * `AuthSession`.
304
+ */
305
+ const layerAuthHttp = (api, sessionExt) => layerAuthHandlers(api, sessionExt).pipe(Layer.provide(ChallengeMiddlewareLayer), Layer.provideMerge(Layer.mergeAll(SessionMiddlewareLayer, RegistrationMiddlewareLayer)));
306
+ const withSession = (sessionExt) => {
307
+ const layerHandlers = (api) => layerAuthHandlers(api, sessionExt);
308
+ const layer = (api) => layerAuthHttp(api, sessionExt);
309
+ return {
310
+ layerHandlers,
311
+ layer,
312
+ establishSessionFromRegistration: Effect.gen(function* () {
313
+ const sessionsWithExt = yield* sessionExt;
314
+ return yield* establishSessionFromRegistrationWith(sessionsWithExt);
315
+ })
316
+ };
317
+ };
318
+ /**
319
+ * Binds an app-typed session declaration to extension-aware HTTP handlers and
320
+ * registration issuance while retaining runtime services as Effect requirements.
321
+ */
322
+ const AuthHttp = { withSession };
323
+ //#endregion
324
+ export { AuthHttp, ChallengeMiddlewareLayer, RegistrationMiddlewareLayer, SessionMiddlewareLayer, establishSessionFromRegistration, expireAuthTokenHeader, expireSecurityCookie, layerAuthHandlers, layerAuthHttp, registerSession, resolveSessionState, setSessionOnResponse };
325
+
326
+ //# sourceMappingURL=HttpServer.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HttpServer.mjs","names":[],"sources":["../src/HttpServer.ts"],"sourcesContent":["import { type Types, DateTime, Effect, Layer, Option, Redacted, Schema } from \"effect\";\nimport { type Cookies, HttpEffect, HttpServerResponse } from \"effect/unstable/http\";\nimport {\n type HttpApi,\n HttpApiBuilder,\n type HttpApiEndpoint,\n type HttpApiGroup,\n type HttpApiSecurity,\n} from \"effect/unstable/httpapi\";\n\nimport {\n type AuthSessionWithExtClass,\n type AuthSessionWithExtService,\n type IssuedSession,\n type SessionExtContext,\n AuthSession,\n} from \"./AuthSession\";\nimport { EmailOtp } from \"./EmailOtp\";\nimport {\n AuthUnavailable,\n InvalidAuthRequest,\n InvalidEmailOtp,\n InvalidRegistration,\n Unauthorized,\n} from \"./Errors\";\nimport { type AuthApi } from \"./http/auth-api\";\nimport {\n ExistingSessionResult,\n RegistrationRequiredResult,\n SessionStateAnonymous,\n SessionStateAuthenticated,\n SessionStateRegistrationRequired,\n} from \"./http/models\";\nimport {\n authChallengeHeaderName,\n authRegistrationHeaderName,\n authTokenHeaderName,\n ChallengeMiddleware,\n ChallengeSecurity,\n CurrentChallenge,\n CurrentRegistration,\n CurrentSession,\n RegistrationHeaderSecurity,\n RegistrationMiddleware,\n RegistrationSecurity,\n SessionBearerSecurity,\n SessionMiddleware,\n SessionSecurity,\n} from \"./http/security\";\nimport { PasswordAuth } from \"./PasswordAuth\";\nimport { Email, SessionSummary } from \"./Schema\";\n\nconst decodeEmail = Schema.decodeEffect(Email);\n\nconst issueSession = Effect.fn(\"effect-auth/issueSession\")(function* <A>(\n sessions: AuthSession[\"Service\"],\n context: SessionExtContext,\n sessionExt?: AuthSessionWithExtService<A>,\n) {\n if (sessionExt === undefined) {\n return yield* sessions.issue(context.subjectId);\n }\n\n return yield* sessionExt.issueFromContext(context);\n});\n\n// --- Cookie helpers ----------------------------------------------------------\n//\n// Handlers never build `Set-Cookie` headers or parse `Cookie` headers; cookies\n// go through the Effect security helpers and pre-response combinators.\n\nconst baseCookieOptions = {\n path: \"/\",\n sameSite: \"lax\",\n secure: true,\n httpOnly: true,\n} satisfies Cookies.Cookie[\"options\"];\n\nconst cookieOptionsUntil = (expiresAt: DateTime.Utc): Cookies.Cookie[\"options\"] => ({\n ...baseCookieOptions,\n expires: DateTime.toDateUtc(expiresAt),\n});\n\n/** Registers a pre-response handler that expires one of the auth cookies. */\nexport const expireSecurityCookie = (security: HttpApiSecurity.ApiKey) =>\n HttpEffect.appendPreResponseHandler((_request, response) =>\n Effect.orDie(HttpServerResponse.expireCookie(response, security.key, baseCookieOptions)),\n );\n\n/**\n * Bearer-transport counterpart of {@link expireSecurityCookie}: an empty\n * `set-auth-token` header tells cookie-less clients to drop their stored\n * session token. Without it, sign-out only expires the cookie and a bearer\n * client races its own token cleanup against the session refetch — the\n * stateless token keeps verifying and the client re-authenticates itself\n * straight back into the session it just revoked.\n */\nexport const expireAuthTokenHeader = HttpEffect.appendPreResponseHandler((_request, response) =>\n Effect.succeed(HttpServerResponse.setHeader(response, authTokenHeaderName, \"\")),\n);\n\n/** Auth responses must never be cached. */\nconst noStore = HttpEffect.appendPreResponseHandler((_request, response) =>\n Effect.succeed(HttpServerResponse.setHeader(response, \"cache-control\", \"no-store\")),\n);\n\n/**\n * Applies the session to a concrete response for both transports. This is the\n * raw-handler counterpart to {@link registerSession}; keeping both here makes\n * the cookie and bearer-header contract a single source of truth.\n */\nexport const setSessionOnResponse = (\n response: HttpServerResponse.HttpServerResponse,\n issued: IssuedSession,\n): HttpServerResponse.HttpServerResponse =>\n response.pipe(\n HttpServerResponse.setCookieUnsafe(\n SessionSecurity.key,\n issued.token,\n cookieOptionsUntil(issued.summary.expiresAt),\n ),\n HttpServerResponse.setHeader(authTokenHeaderName, issued.token),\n );\n\n/**\n * Registers the session on the response for both transports: the HttpOnly\n * cookie for browsers, and the `set-auth-token` header for clients that\n * cannot read the cookie and echo the token back as `Authorization: Bearer`.\n * Every place that issues a session must go through this so the two\n * transports never drift — including application-owned handlers that issue\n * sessions outside this module's workflows.\n */\nexport const registerSession = (issued: IssuedSession) =>\n HttpEffect.appendPreResponseHandler((_request, response) =>\n Effect.succeed(setSessionOnResponse(response, issued)),\n );\n\n/**\n * Mirrors a flow-intermediate token (challenge, registration) on a response\n * header, the same dual-transport rule as {@link registerSession}: the\n * SameSite cookie serves browsers, the header serves clients whose cookie\n * store never carries it, which echo it back as the matching `x-auth-*`\n * request header.\n */\nconst mirrorTokenHeader = (headerName: string, token: Redacted.Redacted<string>) =>\n HttpEffect.appendPreResponseHandler((_request, response) =>\n Effect.succeed(HttpServerResponse.setHeader(response, headerName, Redacted.value(token))),\n );\n\n// `AuthUnavailable` is all the caller should learn from a failed auth\n// operation, but collapsing distinct faults into one status leaves a 503 with\n// nothing to diagnose. Name the fault on the way past. Expected outcomes such\n// as rate limiting or invalid credentials are deliberately never logged.\nconst failUnavailable = Effect.fn(\"failUnavailable\")(function* (\n operation: string,\n fault: string,\n detail: string,\n): Effect.fn.Return<never, AuthUnavailable> {\n yield* Effect.logError(`${operation} failed`).pipe(Effect.annotateLogs({ fault, detail }));\n\n return yield* AuthUnavailable.make();\n});\n\n/**\n * Resolves the request's optional session and pending-registration credentials.\n * Browser credentials prefer cookies; native clients can supply the same tokens\n * through their corresponding headers.\n * Invalid or expired credentials degrade to the next public state; failures\n * in the token codec or auth store remain an explicit availability error.\n */\nexport const resolveSessionState = Effect.gen(function* () {\n const sessions = yield* AuthSession;\n const emailOtp = yield* EmailOtp;\n const cookieCredential = yield* HttpApiBuilder.securityDecode(SessionSecurity);\n\n const sessionCredential =\n Redacted.value(cookieCredential) !== \"\"\n ? cookieCredential\n : yield* HttpApiBuilder.securityDecode(SessionBearerSecurity);\n\n if (Redacted.value(sessionCredential) !== \"\") {\n const authenticated = yield* sessions.verifyAndRenew(sessionCredential).pipe(\n Effect.flatMap((verified) =>\n Effect.gen(function* () {\n if (Option.isSome(verified.renewal)) {\n yield* registerSession(verified.renewal.value);\n }\n\n return Option.some(\n SessionStateAuthenticated.make({\n session: SessionSummary.make({\n subjectId: verified.claims.sub,\n expiresAt: Option.match(verified.renewal, {\n onNone: () => verified.claims.exp,\n onSome: (renewal) => renewal.summary.expiresAt,\n }),\n }),\n }),\n );\n }),\n ),\n Effect.catchTags({\n InvalidSession: () => Effect.succeed(Option.none<SessionStateAuthenticated>()),\n AuthTokenError: () => AuthUnavailable.make(),\n IdentityResolutionError: () => AuthUnavailable.make(),\n }),\n );\n\n if (Option.isSome(authenticated)) {\n return authenticated.value;\n }\n }\n const registrationCookieCredential = yield* HttpApiBuilder.securityDecode(RegistrationSecurity);\n\n const registrationCredential =\n Redacted.value(registrationCookieCredential) !== \"\"\n ? registrationCookieCredential\n : yield* HttpApiBuilder.securityDecode(RegistrationHeaderSecurity);\n\n if (Redacted.value(registrationCredential) !== \"\") {\n const pending = yield* emailOtp.inspectRegistration(registrationCredential).pipe(\n Effect.map((registration) =>\n Option.some(\n SessionStateRegistrationRequired.make({\n email: registration.email,\n registrationExpiresAt: registration.expiresAt,\n }),\n ),\n ),\n Effect.catchTags({\n InvalidRegistration: () => Effect.succeed(Option.none<SessionStateRegistrationRequired>()),\n AuthStoreError: () => AuthUnavailable.make(),\n AuthTokenError: () => AuthUnavailable.make(),\n }),\n );\n\n if (Option.isSome(pending)) {\n return pending.value;\n }\n }\n\n return SessionStateAnonymous.make();\n}).pipe(Effect.withSpan(\"effect-auth.resolveSessionState\"));\n\n// --- Middleware implementations ------------------------------------------------\n\nexport const SessionMiddlewareLayer: Layer.Layer<SessionMiddleware, never, AuthSession> =\n Layer.effect(SessionMiddleware)(\n Effect.map(AuthSession, (sessions) => {\n // Cookie and bearer carry the same session token, so both securities\n // verify identically; failing on an absent credential is what lets the\n // security dispatch fall through to the other transport.\n const verifySession = Effect.fn(\"SessionMiddleware.session\")(function* (\n httpEffect: Effect.Effect<\n HttpServerResponse.HttpServerResponse,\n Types.unhandled,\n CurrentSession\n >,\n { credential }: { readonly credential: Redacted.Redacted<string> },\n ) {\n // An empty bearer fallback must not replace a cookie infrastructure\n // failure with Unauthorized after security dispatch tries both.\n const sessionCredential =\n Redacted.value(credential) === \"\"\n ? yield* HttpApiBuilder.securityDecode(SessionSecurity)\n : credential;\n\n if (Redacted.value(sessionCredential) === \"\") {\n return yield* Unauthorized.make();\n }\n\n const verified = yield* sessions.verifyAndRenew(sessionCredential).pipe(\n Effect.catchTags({\n InvalidSession: () => Unauthorized.make(),\n AuthTokenError: () => AuthUnavailable.make(),\n IdentityResolutionError: () => AuthUnavailable.make(),\n }),\n );\n\n const response = yield* Effect.provideService(httpEffect, CurrentSession, verified.claims);\n\n if (Option.isSome(verified.renewal)) {\n yield* registerSession(verified.renewal.value);\n }\n\n return response;\n });\n\n return SessionMiddleware.of({\n session: verifySession,\n sessionBearer: verifySession,\n });\n }),\n );\n\nexport const RegistrationMiddlewareLayer: Layer.Layer<RegistrationMiddleware, never, EmailOtp> =\n Layer.effect(RegistrationMiddleware)(\n Effect.map(EmailOtp, (emailOtp) => {\n // Cookie and header carry the same registration token; failing on an\n // absent credential lets the security dispatch fall through to the\n // other transport, same as SessionMiddleware.\n const verifyRegistration = Effect.fn(\"RegistrationMiddleware.registration\")(function* (\n httpEffect: Effect.Effect<\n HttpServerResponse.HttpServerResponse,\n Types.unhandled,\n CurrentRegistration\n >,\n { credential }: { readonly credential: Redacted.Redacted<string> },\n ) {\n if (Redacted.value(credential) === \"\") {\n return yield* InvalidRegistration.make();\n }\n\n const registration = yield* emailOtp.inspectRegistration(credential).pipe(\n Effect.catchTags({\n AuthStoreError: () => AuthUnavailable.make(),\n AuthTokenError: () => AuthUnavailable.make(),\n }),\n );\n\n return yield* Effect.provideService(httpEffect, CurrentRegistration, {\n registration,\n token: credential,\n });\n });\n\n return RegistrationMiddleware.of({\n registration: verifyRegistration,\n registrationHeader: verifyRegistration,\n });\n }),\n );\n\nconst provideChallenge = (\n httpEffect: Effect.Effect<\n HttpServerResponse.HttpServerResponse,\n Types.unhandled,\n CurrentChallenge\n >,\n { credential }: { readonly credential: Redacted.Redacted<string> },\n) =>\n Redacted.value(credential) === \"\"\n ? Effect.fail(InvalidEmailOtp.make())\n : Effect.provideService(httpEffect, CurrentChallenge, credential);\n\nconst provideChallengeHeader = (\n httpEffect: Effect.Effect<\n HttpServerResponse.HttpServerResponse,\n Types.unhandled,\n CurrentChallenge\n >,\n input: { readonly credential: Redacted.Redacted<string> },\n) =>\n Redacted.value(input.credential) === \"\"\n ? Effect.logInfo(\"Email OTP verification rejected\").pipe(\n Effect.annotateLogs({\n \"auth.method\": \"email_otp\",\n \"auth.outcome\": \"rejected\",\n \"auth.reason\": \"missing_challenge_credential\",\n }),\n Effect.andThen(InvalidEmailOtp.make()),\n )\n : provideChallenge(httpEffect, input);\n\nexport const ChallengeMiddlewareLayer: Layer.Layer<ChallengeMiddleware> = Layer.succeed(\n ChallengeMiddleware,\n)(\n ChallengeMiddleware.of({\n challenge: provideChallenge,\n challengeHeader: provideChallengeHeader,\n }),\n);\n\n// --- Handlers -------------------------------------------------------------------\n\n/**\n * Gate for the handler-layer factories: the consumer's API must contain an\n * `auth` group with every canonical endpoint. API prefixes and middleware may\n * wrap endpoint path and requirement types, so the check allows those two\n * differences while preserving every transport schema.\n */\ntype AuthGroup<Groups> = Extract<Groups, { readonly identifier: \"auth\" }>;\ntype AuthGroupEndpoints<Groups> =\n AuthGroup<Groups> extends {\n readonly endpoints: infer Endpoints;\n }\n ? Endpoints\n : never;\ntype CanonicalAuthEndpoints = (typeof AuthApi)[\"endpoints\"];\ntype AuthEndpoint<Groups, Name> = Name extends keyof AuthGroupEndpoints<Groups>\n ? AuthGroupEndpoints<Groups>[Name]\n : never;\ntype EndpointContract<Endpoint> =\n Endpoint extends HttpApiEndpoint.HttpApiEndpoint<\n infer Identifier,\n infer Method,\n infer _Path,\n infer Params,\n infer Query,\n infer Payload,\n infer Headers,\n infer Success,\n infer Error,\n infer _Middleware,\n infer _MiddlewareRequirements\n >\n ? [Identifier, Method, Params, Query, Payload, Headers, Success, Error]\n : never;\ntype EndpointPath<Endpoint> = Endpoint extends { readonly path: infer Path extends string }\n ? Path\n : never;\ntype Equal<Left, Right> = [Left, Right] extends [Right, Left] ? true : false;\ntype CompatibleEndpoint<Candidate, Canonical> =\n Equal<EndpointContract<Candidate>, EndpointContract<Canonical>> extends true\n ? EndpointPath<Candidate> extends `${string}${EndpointPath<Canonical>}`\n ? true\n : false\n : false;\ntype IncompatibleAuthEndpoints<Groups> = {\n [Name in keyof CanonicalAuthEndpoints]: CompatibleEndpoint<\n AuthEndpoint<Groups, Name>,\n CanonicalAuthEndpoints[Name]\n > extends true\n ? never\n : Name;\n}[keyof CanonicalAuthEndpoints];\ntype RequiresAuthGroup<Groups> = [AuthGroup<Groups>] extends [never]\n ? { readonly \"~effect-auth\": \"the consumer HttpApi must include the AuthApi group\" }\n : [IncompatibleAuthEndpoints<Groups>] extends [never]\n ? unknown\n : {\n readonly \"~effect-auth\": \"the consumer auth group must preserve every AuthApi endpoint contract\";\n };\n\n/**\n * Builds the handler layer for the `auth` group of a consumer `HttpApi` that\n * includes {@link AuthApi}. The internal assertion re-anchors the builder on\n * the canonical group so endpoint handlers type against it.\n */\nexport const layerAuthHandlers = <\n ApiId extends string,\n Groups extends HttpApiGroup.Constraint,\n Self = never,\n Id extends string = string,\n A = never,\n>(\n api: HttpApi.HttpApi<ApiId, Groups> & NoInfer<RequiresAuthGroup<Groups>>,\n sessionExt?: AuthSessionWithExtClass<Self, Id, A>,\n) =>\n HttpApiBuilder.group(\n api as unknown as HttpApi.HttpApi<ApiId, typeof AuthApi>,\n \"auth\",\n (handlers) =>\n Effect.gen(function* () {\n const emailOtp = yield* EmailOtp;\n const sessions = yield* AuthSession;\n const sessionsWithExt = sessionExt === undefined ? undefined : yield* sessionExt;\n const passwords = yield* PasswordAuth;\n\n const currentSessionState = resolveSessionState.pipe(\n Effect.provideService(EmailOtp, emailOtp),\n Effect.provideService(AuthSession, sessions),\n );\n\n return handlers\n .handle(\"requestEmailOtp\", ({ payload }) =>\n Effect.gen(function* () {\n yield* noStore;\n\n const email = yield* decodeEmail(payload.email).pipe(\n Effect.mapError(() =>\n InvalidAuthRequest.make({ message: \"A valid email address is required\" }),\n ),\n );\n\n const challenge = yield* emailOtp.request(email).pipe(\n Effect.catchTags({\n AuthStoreError: (error) =>\n failUnavailable(\"Email OTP request\", \"auth store\", error.message),\n AuthTokenError: (error) =>\n failUnavailable(\"Email OTP request\", \"token codec\", error.message),\n EmailDeliveryError: (error) =>\n failUnavailable(\"Email OTP request\", \"email delivery\", error.message),\n }),\n );\n\n yield* HttpApiBuilder.securitySetCookie(\n ChallengeSecurity,\n challenge.challengeToken,\n cookieOptionsUntil(challenge.expiresAt),\n );\n yield* mirrorTokenHeader(authChallengeHeaderName, challenge.challengeToken);\n yield* Effect.logInfo(\"Sign-in code requested\").pipe(\n Effect.annotateLogs({\n \"auth.method\": \"email_otp\",\n \"auth.outcome\": \"challenge_issued\",\n email,\n expiresAt: DateTime.formatIso(challenge.expiresAt),\n }),\n );\n }),\n )\n .handle(\"verifyEmailOtp\", ({ payload }) =>\n Effect.gen(function* () {\n yield* noStore;\n const challengeToken = yield* CurrentChallenge;\n\n const outcome = yield* emailOtp.verify({ challengeToken, code: payload.code }).pipe(\n Effect.catchTags({\n AuthStoreError: (error) =>\n failUnavailable(\"Email OTP verification\", \"auth store\", error.message),\n AuthTokenError: (error) =>\n failUnavailable(\"Email OTP verification\", \"token codec\", error.message),\n IdentityResolutionError: (error) =>\n failUnavailable(\"Email OTP verification\", \"identity resolution\", error.message),\n }),\n );\n\n yield* expireSecurityCookie(ChallengeSecurity);\n yield* Effect.logInfo(\"Sign-in code verified\").pipe(\n Effect.annotateLogs({\n \"auth.method\": \"email_otp\",\n \"auth.outcome\":\n outcome._tag === \"ExistingSubject\"\n ? \"existing_subject\"\n : \"registration_required\",\n }),\n );\n if (outcome._tag === \"ExistingSubject\") {\n const issued = yield* issueSession(\n sessions,\n { subjectId: outcome.subjectId, email: outcome.email },\n sessionsWithExt,\n ).pipe(\n Effect.catchTag(\"AuthTokenError\", (error) =>\n failUnavailable(\"Session issuance\", \"token codec\", error.message),\n ),\n );\n\n yield* registerSession(issued);\n yield* Effect.logInfo(\"Session issued\").pipe(\n Effect.annotateLogs({\n \"auth.method\": \"email_otp\",\n \"auth.outcome\": \"session_issued\",\n subjectId: outcome.subjectId,\n expiresAt: DateTime.formatIso(issued.summary.expiresAt),\n }),\n );\n\n return ExistingSessionResult.make({ session: issued.summary });\n }\n yield* HttpApiBuilder.securitySetCookie(\n RegistrationSecurity,\n outcome.registrationToken,\n cookieOptionsUntil(outcome.expiresAt),\n );\n yield* mirrorTokenHeader(authRegistrationHeaderName, outcome.registrationToken);\n yield* Effect.logInfo(\"Registration required\").pipe(\n Effect.annotateLogs({\n \"auth.method\": \"email_otp\",\n \"auth.outcome\": \"registration_required\",\n email: outcome.email,\n expiresAt: DateTime.formatIso(outcome.expiresAt),\n }),\n );\n\n return RegistrationRequiredResult.make({\n email: outcome.email,\n registrationExpiresAt: outcome.expiresAt,\n });\n }),\n )\n .handle(\"passwordSignIn\", ({ payload }) =>\n Effect.gen(function* () {\n yield* noStore;\n\n const email = yield* decodeEmail(payload.email).pipe(\n Effect.mapError(() =>\n InvalidAuthRequest.make({ message: \"A valid email address is required\" }),\n ),\n );\n\n const subjectId = yield* passwords.signIn(email, payload.password).pipe(\n Effect.catchTags({\n AuthStoreError: (error) =>\n failUnavailable(\"Password sign-in\", \"credential store\", error.message),\n AuthTokenError: (error) =>\n failUnavailable(\"Password sign-in\", \"password hasher\", error.message),\n }),\n );\n\n const issued = yield* issueSession(\n sessions,\n { subjectId, email },\n sessionsWithExt,\n ).pipe(\n Effect.catchTag(\"AuthTokenError\", (error) =>\n failUnavailable(\"Session issuance\", \"token codec\", error.message),\n ),\n );\n\n yield* registerSession(issued);\n yield* Effect.logInfo(\"Session issued\").pipe(\n Effect.annotateLogs({\n \"auth.method\": \"password\",\n \"auth.outcome\": \"session_issued\",\n subjectId,\n expiresAt: DateTime.formatIso(issued.summary.expiresAt),\n }),\n );\n\n return SessionStateAuthenticated.make({ session: issued.summary });\n }),\n )\n .handle(\"setPassword\", ({ payload }) =>\n Effect.gen(function* () {\n yield* noStore;\n const session = yield* CurrentSession;\n\n yield* passwords\n .setPassword(session.sub, {\n currentPassword: Option.fromNullishOr(payload.currentPassword),\n newPassword: payload.newPassword,\n })\n .pipe(\n Effect.catchTags({\n AuthStoreError: (error) =>\n failUnavailable(\"Password change\", \"credential store\", error.message),\n AuthTokenError: (error) =>\n failUnavailable(\"Password change\", \"password hasher\", error.message),\n }),\n );\n yield* Effect.logInfo(\"Password changed\").pipe(\n Effect.annotateLogs({\n \"auth.method\": \"password\",\n \"auth.outcome\": \"password_changed\",\n subjectId: session.sub,\n }),\n );\n }),\n )\n .handle(\"getSession\", () => noStore.pipe(Effect.andThen(currentSessionState)))\n .handle(\"signOut\", () =>\n Effect.gen(function* () {\n yield* noStore;\n yield* expireSecurityCookie(ChallengeSecurity);\n yield* expireSecurityCookie(RegistrationSecurity);\n yield* expireSecurityCookie(SessionSecurity);\n yield* expireAuthTokenHeader;\n yield* Effect.logInfo(\"Session signed out\").pipe(\n Effect.annotateLogs({ \"auth.outcome\": \"signed_out\" }),\n );\n }),\n );\n }),\n );\n\n/**\n * Real onboarding workflow for application-owned, registration-protected\n * account endpoints: consumes the current pending registration, registers the\n * session cookie on the\n * response, and returns the session summary. Call it after the application has\n * idempotently created the account and email mapping.\n */\nconst establishSessionFromRegistrationWith = Effect.fn(\n \"effect-auth/establishSessionFromRegistration\",\n)(function* <A>(sessionExt?: AuthSessionWithExtService<A>) {\n const { registration, token } = yield* CurrentRegistration;\n const emailOtp = yield* EmailOtp;\n const sessions = yield* AuthSession;\n const subjectId = yield* emailOtp.completeRegistration(token);\n\n const issued = yield* issueSession(\n sessions,\n { subjectId, email: registration.email },\n sessionExt,\n );\n\n yield* registerSession(issued);\n yield* expireSecurityCookie(RegistrationSecurity);\n yield* Effect.logInfo(\"Registration completed; session issued\").pipe(\n Effect.annotateLogs({\n \"auth.method\": \"email_otp\",\n \"auth.outcome\": \"registration_completed\",\n subjectId,\n email: registration.email,\n expiresAt: DateTime.formatIso(issued.summary.expiresAt),\n }),\n );\n\n return issued.summary;\n});\n\nexport const establishSessionFromRegistration = establishSessionFromRegistrationWith();\n\n/**\n * Everything the auth group needs at the HTTP boundary: handlers plus the\n * middleware implementations. Requires `EmailOtp`, `PasswordAuth`, and\n * `AuthSession`.\n */\nexport const layerAuthHttp = <\n ApiId extends string,\n Groups extends HttpApiGroup.Constraint,\n Self = never,\n Id extends string = string,\n A = never,\n>(\n api: HttpApi.HttpApi<ApiId, Groups> & NoInfer<RequiresAuthGroup<Groups>>,\n sessionExt?: AuthSessionWithExtClass<Self, Id, A>,\n) =>\n layerAuthHandlers(api, sessionExt).pipe(\n Layer.provide(ChallengeMiddlewareLayer),\n Layer.provideMerge(Layer.mergeAll(SessionMiddlewareLayer, RegistrationMiddlewareLayer)),\n );\n\nconst withSession = <Self, Id extends string, A>(\n sessionExt: AuthSessionWithExtClass<Self, Id, A>,\n) => {\n const layerHandlers = <ApiId extends string, Groups extends HttpApiGroup.Constraint>(\n api: HttpApi.HttpApi<ApiId, Groups> & NoInfer<RequiresAuthGroup<Groups>>,\n ) => layerAuthHandlers(api, sessionExt);\n\n const layer = <ApiId extends string, Groups extends HttpApiGroup.Constraint>(\n api: HttpApi.HttpApi<ApiId, Groups> & NoInfer<RequiresAuthGroup<Groups>>,\n ) => layerAuthHttp(api, sessionExt);\n\n const establishSessionFromRegistration = Effect.gen(function* () {\n const sessionsWithExt = yield* sessionExt;\n\n return yield* establishSessionFromRegistrationWith(sessionsWithExt);\n });\n\n return { layerHandlers, layer, establishSessionFromRegistration } as const;\n};\n\n/**\n * Binds an app-typed session declaration to extension-aware HTTP handlers and\n * registration issuance while retaining runtime services as Effect requirements.\n */\nexport const AuthHttp = {\n withSession,\n} as const;\n"],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { CredentialId, CredentialSummary, ExternalIdentity, IdentifierBinding, IdentityConflict, IdentityUnavailable, LastSignInMethod, LoginIdentifier, ProvisioningPending, ProvisioningResult, RecoveryReference, SubjectInactive, SubjectProvisioned, SubjectSnapshot } from "./identity/models.mjs";
2
+ import { ExternalIdentityMutation } from "./identity/ExternalIdentityMutation.mjs";
3
+ import { SubjectProvisioner, SubjectProvisioningInput } from "./identity/SubjectProvisioner.mjs";
4
+ import { ExpiresBy, ImmediatelyInvalidated, InvalidationUnsupported, SubjectCleanupComplete, SubjectCleanupPending, SubjectCleanupResult, SubjectInvalidation, SubjectLifecycle, SubjectTerminationInput } from "./identity/SubjectLifecycle.mjs";
5
+ import { IdentityMutation } from "./identity/IdentityMutation.mjs";
6
+ import { IdentityRepository } from "./identity/IdentityRepository.mjs";
7
+ import { DeleteSubject, DisableSubject, InspectIdentity, ListCredentials, ListIdentifiers, identityQueryLayer, makeIdentityChanges, subjectLifecycleLayer } from "./identity/operations.mjs";
8
+ import { IdentityCodecError, bigintSubjectId, numericSubjectId, stringSubjectId, subjectIdCodec } from "./identity/codecs.mjs";
9
+ export { CredentialId, CredentialSummary, DeleteSubject, DisableSubject, ExpiresBy, ExternalIdentity, ExternalIdentityMutation, IdentifierBinding, IdentityCodecError, IdentityConflict, IdentityMutation, IdentityRepository, IdentityUnavailable, ImmediatelyInvalidated, InspectIdentity, InvalidationUnsupported, LastSignInMethod, ListCredentials, ListIdentifiers, LoginIdentifier, ProvisioningPending, ProvisioningResult, RecoveryReference, SubjectCleanupComplete, SubjectCleanupPending, SubjectCleanupResult, SubjectInactive, SubjectInvalidation, SubjectLifecycle, SubjectProvisioned, SubjectProvisioner, type SubjectProvisioningInput, SubjectSnapshot, type SubjectTerminationInput, bigintSubjectId, identityQueryLayer, makeIdentityChanges, numericSubjectId, stringSubjectId, subjectIdCodec, subjectLifecycleLayer };
@@ -0,0 +1,9 @@
1
+ import { CredentialId, CredentialSummary, ExternalIdentity, IdentifierBinding, IdentityConflict, IdentityUnavailable, LastSignInMethod, LoginIdentifier, ProvisioningPending, ProvisioningResult, RecoveryReference, SubjectInactive, SubjectProvisioned, SubjectSnapshot } from "./identity/models.mjs";
2
+ import { ExternalIdentityMutation } from "./identity/ExternalIdentityMutation.mjs";
3
+ import { SubjectProvisioner } from "./identity/SubjectProvisioner.mjs";
4
+ import { IdentityMutation } from "./identity/IdentityMutation.mjs";
5
+ import { IdentityRepository } from "./identity/IdentityRepository.mjs";
6
+ import { ExpiresBy, ImmediatelyInvalidated, InvalidationUnsupported, SubjectCleanupComplete, SubjectCleanupPending, SubjectCleanupResult, SubjectInvalidation, SubjectLifecycle } from "./identity/SubjectLifecycle.mjs";
7
+ import { DeleteSubject, DisableSubject, InspectIdentity, ListCredentials, ListIdentifiers, identityQueryLayer, makeIdentityChanges, subjectLifecycleLayer } from "./identity/operations.mjs";
8
+ import { IdentityCodecError, bigintSubjectId, numericSubjectId, stringSubjectId, subjectIdCodec } from "./identity/codecs.mjs";
9
+ export { CredentialId, CredentialSummary, DeleteSubject, DisableSubject, ExpiresBy, ExternalIdentity, ExternalIdentityMutation, IdentifierBinding, IdentityCodecError, IdentityConflict, IdentityMutation, IdentityRepository, IdentityUnavailable, ImmediatelyInvalidated, InspectIdentity, InvalidationUnsupported, LastSignInMethod, ListCredentials, ListIdentifiers, LoginIdentifier, ProvisioningPending, ProvisioningResult, RecoveryReference, SubjectCleanupComplete, SubjectCleanupPending, SubjectCleanupResult, SubjectInactive, SubjectInvalidation, SubjectLifecycle, SubjectProvisioned, SubjectProvisioner, SubjectSnapshot, bigintSubjectId, identityQueryLayer, makeIdentityChanges, numericSubjectId, stringSubjectId, subjectIdCodec, subjectLifecycleLayer };
@@ -0,0 +1,16 @@
1
+ import { Email, SubjectId } from "./Schema.mjs";
2
+ import { IdentityResolutionError } from "./Errors.mjs";
3
+ import { Context, Effect, Option } from "effect";
4
+ //#region src/IdentityResolver.d.ts
5
+ declare const IdentityResolver_base: Context.ServiceClass<IdentityResolver, "effect-auth/IdentityResolver", {
6
+ readonly findByVerifiedEmail: (email: Email) => Effect.Effect<Option.Option<SubjectId>, IdentityResolutionError>;
7
+ }>;
8
+ /**
9
+ * Read-only mapping from a verified canonical email to an existing subject.
10
+ * Must not auto-provision: account creation stays a separate, application-owned
11
+ * operation.
12
+ */
13
+ declare class IdentityResolver extends IdentityResolver_base {}
14
+ //#endregion
15
+ export { IdentityResolver };
16
+ //# sourceMappingURL=IdentityResolver.d.mts.map
@@ -0,0 +1,12 @@
1
+ import { Context } from "effect";
2
+ //#region src/IdentityResolver.ts
3
+ /**
4
+ * Read-only mapping from a verified canonical email to an existing subject.
5
+ * Must not auto-provision: account creation stays a separate, application-owned
6
+ * operation.
7
+ */
8
+ var IdentityResolver = class extends Context.Service()("effect-auth/IdentityResolver") {};
9
+ //#endregion
10
+ export { IdentityResolver };
11
+
12
+ //# sourceMappingURL=IdentityResolver.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IdentityResolver.mjs","names":[],"sources":["../src/IdentityResolver.ts"],"sourcesContent":["import { type Effect, type Option, Context } from \"effect\";\n\nimport type { IdentityResolutionError } from \"./Errors\";\nimport type { Email, SubjectId } from \"./Schema\";\n\n/**\n * Read-only mapping from a verified canonical email to an existing subject.\n * Must not auto-provision: account creation stays a separate, application-owned\n * operation.\n */\nexport class IdentityResolver extends Context.Service<\n IdentityResolver,\n {\n readonly findByVerifiedEmail: (\n email: Email,\n ) => Effect.Effect<Option.Option<SubjectId>, IdentityResolutionError>;\n }\n>()(\"effect-auth/IdentityResolver\") {}\n"],"mappings":";;;;;;;AAUA,IAAa,mBAAb,cAAsC,QAAQ,QAO5C,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC"}