@effect-auth/core 0.1.0-alpha.16 → 0.1.0-alpha.19

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 (637) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +307 -133
  3. package/dist/AbuseProtection.d.ts +100 -0
  4. package/dist/AbuseProtection.d.ts.map +1 -0
  5. package/dist/AbuseProtection.js +71 -0
  6. package/dist/AbuseProtection.js.map +1 -0
  7. package/dist/AccessGrant.d.ts +344 -0
  8. package/dist/AccessGrant.d.ts.map +1 -0
  9. package/dist/AccessGrant.js +687 -0
  10. package/dist/AccessGrant.js.map +1 -0
  11. package/dist/ApiKey.d.ts +0 -12
  12. package/dist/ApiKey.d.ts.map +1 -1
  13. package/dist/ApiKey.js +36 -27
  14. package/dist/ApiKey.js.map +1 -1
  15. package/dist/Assurance.d.ts +415 -0
  16. package/dist/Assurance.d.ts.map +1 -0
  17. package/dist/Assurance.js +764 -0
  18. package/dist/Assurance.js.map +1 -0
  19. package/dist/AtomicPlanExecutor.d.ts +28 -0
  20. package/dist/AtomicPlanExecutor.d.ts.map +1 -0
  21. package/dist/AtomicPlanExecutor.js +5 -0
  22. package/dist/AtomicPlanExecutor.js.map +1 -0
  23. package/dist/AuditLog.d.ts +2314 -52
  24. package/dist/AuditLog.d.ts.map +1 -1
  25. package/dist/AuditLog.js +511 -33
  26. package/dist/AuditLog.js.map +1 -1
  27. package/dist/AuthFlow.d.ts +128 -38
  28. package/dist/AuthFlow.d.ts.map +1 -1
  29. package/dist/AuthFlow.js +611 -263
  30. package/dist/AuthFlow.js.map +1 -1
  31. package/dist/AuthRateLimit.d.ts +96 -0
  32. package/dist/AuthRateLimit.d.ts.map +1 -0
  33. package/dist/AuthRateLimit.js +212 -0
  34. package/dist/AuthRateLimit.js.map +1 -0
  35. package/dist/Challenge.d.ts +0 -3
  36. package/dist/Challenge.d.ts.map +1 -1
  37. package/dist/Challenge.js +1 -4
  38. package/dist/Challenge.js.map +1 -1
  39. package/dist/Client.d.ts +205 -10
  40. package/dist/Client.d.ts.map +1 -1
  41. package/dist/Client.js +397 -16
  42. package/dist/Client.js.map +1 -1
  43. package/dist/CloudflareTurnstile.d.ts +28 -0
  44. package/dist/CloudflareTurnstile.d.ts.map +1 -0
  45. package/dist/CloudflareTurnstile.js +205 -0
  46. package/dist/CloudflareTurnstile.js.map +1 -0
  47. package/dist/Crypto.d.ts +0 -3
  48. package/dist/Crypto.d.ts.map +1 -1
  49. package/dist/Crypto.js +1 -4
  50. package/dist/Crypto.js.map +1 -1
  51. package/dist/DelegatedAccessStorageMigrations.d.ts +7 -0
  52. package/dist/DelegatedAccessStorageMigrations.d.ts.map +1 -0
  53. package/dist/DelegatedAccessStorageMigrations.js +159 -0
  54. package/dist/DelegatedAccessStorageMigrations.js.map +1 -0
  55. package/dist/DevEmail.d.ts +44 -0
  56. package/dist/DevEmail.d.ts.map +1 -0
  57. package/dist/DevEmail.js +115 -0
  58. package/dist/DevEmail.js.map +1 -0
  59. package/dist/DevelopmentSeed.d.ts +47 -0
  60. package/dist/DevelopmentSeed.d.ts.map +1 -0
  61. package/dist/DevelopmentSeed.js +337 -0
  62. package/dist/DevelopmentSeed.js.map +1 -0
  63. package/dist/DisposableEmailDomains.d.ts +19 -0
  64. package/dist/DisposableEmailDomains.d.ts.map +1 -0
  65. package/dist/DisposableEmailDomains.js +85 -0
  66. package/dist/DisposableEmailDomains.js.map +1 -0
  67. package/dist/DomainVerification.d.ts +0 -9
  68. package/dist/DomainVerification.d.ts.map +1 -1
  69. package/dist/DomainVerification.js +36 -22
  70. package/dist/DomainVerification.js.map +1 -1
  71. package/dist/DrizzleBunSqliteStorage.d.ts +18 -0
  72. package/dist/DrizzleBunSqliteStorage.d.ts.map +1 -0
  73. package/dist/DrizzleBunSqliteStorage.js +11 -0
  74. package/dist/DrizzleBunSqliteStorage.js.map +1 -0
  75. package/dist/DrizzleD1SqliteStorage.d.ts +4 -4
  76. package/dist/DrizzleD1SqliteStorage.d.ts.map +1 -1
  77. package/dist/DrizzleD1SqliteStorage.js +5 -5
  78. package/dist/DrizzleD1SqliteStorage.js.map +1 -1
  79. package/dist/DrizzleEffectSqliteStorage.d.ts +13 -4
  80. package/dist/DrizzleEffectSqliteStorage.d.ts.map +1 -1
  81. package/dist/DrizzleEffectSqliteStorage.js +71 -4
  82. package/dist/DrizzleEffectSqliteStorage.js.map +1 -1
  83. package/dist/DrizzleNodeSqliteStorage.d.ts +18 -0
  84. package/dist/DrizzleNodeSqliteStorage.d.ts.map +1 -0
  85. package/dist/DrizzleNodeSqliteStorage.js +11 -0
  86. package/dist/DrizzleNodeSqliteStorage.js.map +1 -0
  87. package/dist/DrizzlePostgresStorage.d.ts +26 -0
  88. package/dist/DrizzlePostgresStorage.d.ts.map +1 -0
  89. package/dist/DrizzlePostgresStorage.js +14 -0
  90. package/dist/DrizzlePostgresStorage.js.map +1 -0
  91. package/dist/EffectQbPostgresDelegatedAccessStorage.d.ts +34 -0
  92. package/dist/EffectQbPostgresDelegatedAccessStorage.d.ts.map +1 -0
  93. package/dist/EffectQbPostgresDelegatedAccessStorage.js +499 -0
  94. package/dist/EffectQbPostgresDelegatedAccessStorage.js.map +1 -0
  95. package/dist/EffectQbPostgresStorage.d.ts +178 -0
  96. package/dist/EffectQbPostgresStorage.d.ts.map +1 -0
  97. package/dist/EffectQbPostgresStorage.js +4637 -0
  98. package/dist/EffectQbPostgresStorage.js.map +1 -0
  99. package/dist/EffectQbSqliteDelegatedAccessStorage.d.ts +112 -0
  100. package/dist/EffectQbSqliteDelegatedAccessStorage.d.ts.map +1 -0
  101. package/dist/EffectQbSqliteDelegatedAccessStorage.js +602 -0
  102. package/dist/EffectQbSqliteDelegatedAccessStorage.js.map +1 -0
  103. package/dist/EffectQbSqliteStorage.d.ts +221 -23
  104. package/dist/EffectQbSqliteStorage.d.ts.map +1 -1
  105. package/dist/EffectQbSqliteStorage.js +2064 -135
  106. package/dist/EffectQbSqliteStorage.js.map +1 -1
  107. package/dist/EmailAuth.d.ts +65 -0
  108. package/dist/EmailAuth.d.ts.map +1 -0
  109. package/dist/EmailAuth.js +171 -0
  110. package/dist/EmailAuth.js.map +1 -0
  111. package/dist/EmailIdentityAuth.d.ts +30 -0
  112. package/dist/EmailIdentityAuth.d.ts.map +1 -0
  113. package/dist/EmailIdentityAuth.js +142 -0
  114. package/dist/EmailIdentityAuth.js.map +1 -0
  115. package/dist/EmailOtp.d.ts +10 -11
  116. package/dist/EmailOtp.d.ts.map +1 -1
  117. package/dist/EmailOtp.js +44 -81
  118. package/dist/EmailOtp.js.map +1 -1
  119. package/dist/EmailRisk.d.ts +48 -0
  120. package/dist/EmailRisk.d.ts.map +1 -0
  121. package/dist/EmailRisk.js +33 -0
  122. package/dist/EmailRisk.js.map +1 -0
  123. package/dist/EmailVerification.d.ts +10 -16
  124. package/dist/EmailVerification.d.ts.map +1 -1
  125. package/dist/EmailVerification.js +85 -42
  126. package/dist/EmailVerification.js.map +1 -1
  127. package/dist/Guard.d.ts +11 -0
  128. package/dist/Guard.d.ts.map +1 -0
  129. package/dist/Guard.js +11 -0
  130. package/dist/Guard.js.map +1 -0
  131. package/dist/HibpPwnedPasswords.d.ts +56 -0
  132. package/dist/HibpPwnedPasswords.d.ts.map +1 -0
  133. package/dist/HibpPwnedPasswords.js +232 -0
  134. package/dist/HibpPwnedPasswords.js.map +1 -0
  135. package/dist/HttpApi/AdminPermissionDefinition.d.ts +4 -0
  136. package/dist/HttpApi/AdminPermissionDefinition.d.ts.map +1 -0
  137. package/dist/HttpApi/AdminPermissionDefinition.js +4 -0
  138. package/dist/HttpApi/AdminPermissionDefinition.js.map +1 -0
  139. package/dist/HttpApi/AdminSecurityTimeline.d.ts +4 -0
  140. package/dist/HttpApi/AdminSecurityTimeline.d.ts.map +1 -0
  141. package/dist/HttpApi/AdminSecurityTimeline.js +4 -0
  142. package/dist/HttpApi/AdminSecurityTimeline.js.map +1 -0
  143. package/dist/HttpApi/AdminSession.d.ts +4 -0
  144. package/dist/HttpApi/AdminSession.d.ts.map +1 -0
  145. package/dist/HttpApi/AdminSession.js +4 -0
  146. package/dist/HttpApi/AdminSession.js.map +1 -0
  147. package/dist/HttpApi/AdminTrustedDevice.d.ts +4 -0
  148. package/dist/HttpApi/AdminTrustedDevice.d.ts.map +1 -0
  149. package/dist/HttpApi/AdminTrustedDevice.js +4 -0
  150. package/dist/HttpApi/AdminTrustedDevice.js.map +1 -0
  151. package/dist/HttpApi/Api.d.ts +939 -884
  152. package/dist/HttpApi/Api.d.ts.map +1 -1
  153. package/dist/HttpApi/Api.js +2254 -940
  154. package/dist/HttpApi/Api.js.map +1 -1
  155. package/dist/HttpApi/ApiKey.d.ts +4 -0
  156. package/dist/HttpApi/ApiKey.d.ts.map +1 -0
  157. package/dist/HttpApi/ApiKey.js +4 -0
  158. package/dist/HttpApi/ApiKey.js.map +1 -0
  159. package/dist/HttpApi/Audit.d.ts +6 -0
  160. package/dist/HttpApi/Audit.d.ts.map +1 -0
  161. package/dist/HttpApi/Audit.js +10 -0
  162. package/dist/HttpApi/Audit.js.map +1 -0
  163. package/dist/HttpApi/ClientApi.d.ts +917 -0
  164. package/dist/HttpApi/ClientApi.d.ts.map +1 -0
  165. package/dist/HttpApi/ClientApi.js +101 -0
  166. package/dist/HttpApi/ClientApi.js.map +1 -0
  167. package/dist/HttpApi/EmailAuth.d.ts +6 -0
  168. package/dist/HttpApi/EmailAuth.d.ts.map +1 -0
  169. package/dist/HttpApi/EmailAuth.js +6 -0
  170. package/dist/HttpApi/EmailAuth.js.map +1 -0
  171. package/dist/HttpApi/EmailGuards.d.ts +115 -0
  172. package/dist/HttpApi/EmailGuards.d.ts.map +1 -0
  173. package/dist/HttpApi/EmailGuards.js +191 -0
  174. package/dist/HttpApi/EmailGuards.js.map +1 -0
  175. package/dist/HttpApi/EmailOtp.d.ts +6 -0
  176. package/dist/HttpApi/EmailOtp.d.ts.map +1 -0
  177. package/dist/HttpApi/EmailOtp.js +6 -0
  178. package/dist/HttpApi/EmailOtp.js.map +1 -0
  179. package/dist/HttpApi/EmailVerification.d.ts +6 -0
  180. package/dist/HttpApi/EmailVerification.d.ts.map +1 -0
  181. package/dist/HttpApi/EmailVerification.js +6 -0
  182. package/dist/HttpApi/EmailVerification.js.map +1 -0
  183. package/dist/HttpApi/Endpoints.d.ts +661 -301
  184. package/dist/HttpApi/Endpoints.d.ts.map +1 -1
  185. package/dist/HttpApi/Endpoints.js +207 -120
  186. package/dist/HttpApi/Endpoints.js.map +1 -1
  187. package/dist/HttpApi/Errors.d.ts +37 -10
  188. package/dist/HttpApi/Errors.d.ts.map +1 -1
  189. package/dist/HttpApi/Errors.js +42 -4
  190. package/dist/HttpApi/Errors.js.map +1 -1
  191. package/dist/HttpApi/Identity.d.ts +6 -0
  192. package/dist/HttpApi/Identity.d.ts.map +1 -0
  193. package/dist/HttpApi/Identity.js +6 -0
  194. package/dist/HttpApi/Identity.js.map +1 -0
  195. package/dist/HttpApi/IdentityGuards.d.ts +31 -0
  196. package/dist/HttpApi/IdentityGuards.d.ts.map +1 -0
  197. package/dist/HttpApi/IdentityGuards.js +33 -0
  198. package/dist/HttpApi/IdentityGuards.js.map +1 -0
  199. package/dist/HttpApi/Jwt.d.ts +4 -0
  200. package/dist/HttpApi/Jwt.d.ts.map +1 -0
  201. package/dist/HttpApi/Jwt.js +4 -0
  202. package/dist/HttpApi/Jwt.js.map +1 -0
  203. package/dist/HttpApi/JwtDiscovery.d.ts +4 -0
  204. package/dist/HttpApi/JwtDiscovery.d.ts.map +1 -0
  205. package/dist/HttpApi/JwtDiscovery.js +4 -0
  206. package/dist/HttpApi/JwtDiscovery.js.map +1 -0
  207. package/dist/HttpApi/LoginApproval.d.ts +5 -0
  208. package/dist/HttpApi/LoginApproval.d.ts.map +1 -0
  209. package/dist/HttpApi/LoginApproval.js +5 -0
  210. package/dist/HttpApi/LoginApproval.js.map +1 -0
  211. package/dist/HttpApi/LoginNotification.d.ts +5 -0
  212. package/dist/HttpApi/LoginNotification.d.ts.map +1 -0
  213. package/dist/HttpApi/LoginNotification.js +5 -0
  214. package/dist/HttpApi/LoginNotification.js.map +1 -0
  215. package/dist/HttpApi/MagicLink.d.ts +6 -0
  216. package/dist/HttpApi/MagicLink.d.ts.map +1 -0
  217. package/dist/HttpApi/MagicLink.js +6 -0
  218. package/dist/HttpApi/MagicLink.js.map +1 -0
  219. package/dist/HttpApi/Mfa.d.ts +5 -0
  220. package/dist/HttpApi/Mfa.d.ts.map +1 -0
  221. package/dist/HttpApi/Mfa.js +5 -0
  222. package/dist/HttpApi/Mfa.js.map +1 -0
  223. package/dist/HttpApi/Middleware.d.ts +26 -0
  224. package/dist/HttpApi/Middleware.d.ts.map +1 -0
  225. package/dist/HttpApi/Middleware.js +13 -0
  226. package/dist/HttpApi/Middleware.js.map +1 -0
  227. package/dist/HttpApi/OAuth.d.ts +4 -0
  228. package/dist/HttpApi/OAuth.d.ts.map +1 -0
  229. package/dist/HttpApi/OAuth.js +4 -0
  230. package/dist/HttpApi/OAuth.js.map +1 -0
  231. package/dist/HttpApi/OAuthDeviceAuthorization.d.ts +106 -0
  232. package/dist/HttpApi/OAuthDeviceAuthorization.d.ts.map +1 -0
  233. package/dist/HttpApi/OAuthDeviceAuthorization.js +415 -0
  234. package/dist/HttpApi/OAuthDeviceAuthorization.js.map +1 -0
  235. package/dist/HttpApi/OAuthProviderAuthorization.d.ts +4 -0
  236. package/dist/HttpApi/OAuthProviderAuthorization.d.ts.map +1 -0
  237. package/dist/HttpApi/OAuthProviderAuthorization.js +4 -0
  238. package/dist/HttpApi/OAuthProviderAuthorization.js.map +1 -0
  239. package/dist/HttpApi/OAuthToken.d.ts +4 -0
  240. package/dist/HttpApi/OAuthToken.d.ts.map +1 -0
  241. package/dist/HttpApi/OAuthToken.js +4 -0
  242. package/dist/HttpApi/OAuthToken.js.map +1 -0
  243. package/dist/HttpApi/OidcDiscovery.d.ts +4 -0
  244. package/dist/HttpApi/OidcDiscovery.d.ts.map +1 -0
  245. package/dist/HttpApi/OidcDiscovery.js +4 -0
  246. package/dist/HttpApi/OidcDiscovery.js.map +1 -0
  247. package/dist/HttpApi/Operations/AdminPermissionDefinition.d.ts +28 -0
  248. package/dist/HttpApi/Operations/AdminPermissionDefinition.d.ts.map +1 -0
  249. package/dist/HttpApi/Operations/AdminPermissionDefinition.js +5 -0
  250. package/dist/HttpApi/Operations/AdminPermissionDefinition.js.map +1 -0
  251. package/dist/HttpApi/Operations/AdminSession.d.ts +16 -0
  252. package/dist/HttpApi/Operations/AdminSession.d.ts.map +1 -0
  253. package/dist/HttpApi/Operations/AdminSession.js +5 -0
  254. package/dist/HttpApi/Operations/AdminSession.js.map +1 -0
  255. package/dist/HttpApi/Operations/ApiKey.d.ts +16 -0
  256. package/dist/HttpApi/Operations/ApiKey.d.ts.map +1 -0
  257. package/dist/HttpApi/Operations/ApiKey.js +5 -0
  258. package/dist/HttpApi/Operations/ApiKey.js.map +1 -0
  259. package/dist/HttpApi/Operations/Discovery.d.ts +19 -0
  260. package/dist/HttpApi/Operations/Discovery.d.ts.map +1 -0
  261. package/dist/HttpApi/Operations/Discovery.js +7 -0
  262. package/dist/HttpApi/Operations/Discovery.js.map +1 -0
  263. package/dist/HttpApi/Operations/EmailAuth.d.ts +12 -0
  264. package/dist/HttpApi/Operations/EmailAuth.d.ts.map +1 -0
  265. package/dist/HttpApi/Operations/EmailAuth.js +5 -0
  266. package/dist/HttpApi/Operations/EmailAuth.js.map +1 -0
  267. package/dist/HttpApi/Operations/EmailOtp.d.ts +14 -0
  268. package/dist/HttpApi/Operations/EmailOtp.d.ts.map +1 -0
  269. package/dist/HttpApi/Operations/EmailOtp.js +5 -0
  270. package/dist/HttpApi/Operations/EmailOtp.js.map +1 -0
  271. package/dist/HttpApi/Operations/EmailVerification.d.ts +14 -0
  272. package/dist/HttpApi/Operations/EmailVerification.d.ts.map +1 -0
  273. package/dist/HttpApi/Operations/EmailVerification.js +5 -0
  274. package/dist/HttpApi/Operations/EmailVerification.js.map +1 -0
  275. package/dist/HttpApi/Operations/HttpOperation.d.ts +4 -0
  276. package/dist/HttpApi/Operations/HttpOperation.d.ts.map +1 -0
  277. package/dist/HttpApi/Operations/HttpOperation.js +2 -0
  278. package/dist/HttpApi/Operations/HttpOperation.js.map +1 -0
  279. package/dist/HttpApi/Operations/Identity.d.ts +22 -0
  280. package/dist/HttpApi/Operations/Identity.d.ts.map +1 -0
  281. package/dist/HttpApi/Operations/Identity.js +5 -0
  282. package/dist/HttpApi/Operations/Identity.js.map +1 -0
  283. package/dist/HttpApi/Operations/Jwt.d.ts +14 -0
  284. package/dist/HttpApi/Operations/Jwt.d.ts.map +1 -0
  285. package/dist/HttpApi/Operations/Jwt.js +5 -0
  286. package/dist/HttpApi/Operations/Jwt.js.map +1 -0
  287. package/dist/HttpApi/Operations/LoginApproval.d.ts +16 -0
  288. package/dist/HttpApi/Operations/LoginApproval.d.ts.map +1 -0
  289. package/dist/HttpApi/Operations/LoginApproval.js +5 -0
  290. package/dist/HttpApi/Operations/LoginApproval.js.map +1 -0
  291. package/dist/HttpApi/Operations/MagicLink.d.ts +14 -0
  292. package/dist/HttpApi/Operations/MagicLink.d.ts.map +1 -0
  293. package/dist/HttpApi/Operations/MagicLink.js +5 -0
  294. package/dist/HttpApi/Operations/MagicLink.js.map +1 -0
  295. package/dist/HttpApi/Operations/Mfa.d.ts +24 -0
  296. package/dist/HttpApi/Operations/Mfa.d.ts.map +1 -0
  297. package/dist/HttpApi/Operations/Mfa.js +5 -0
  298. package/dist/HttpApi/Operations/Mfa.js.map +1 -0
  299. package/dist/HttpApi/Operations/OAuth.d.ts +20 -0
  300. package/dist/HttpApi/Operations/OAuth.d.ts.map +1 -0
  301. package/dist/HttpApi/Operations/OAuth.js +5 -0
  302. package/dist/HttpApi/Operations/OAuth.js.map +1 -0
  303. package/dist/HttpApi/Operations/OAuthDeviceAuthorization.d.ts +23 -0
  304. package/dist/HttpApi/Operations/OAuthDeviceAuthorization.d.ts.map +1 -0
  305. package/dist/HttpApi/Operations/OAuthDeviceAuthorization.js +7 -0
  306. package/dist/HttpApi/Operations/OAuthDeviceAuthorization.js.map +1 -0
  307. package/dist/HttpApi/Operations/OAuthProviderAuthorization.d.ts +12 -0
  308. package/dist/HttpApi/Operations/OAuthProviderAuthorization.d.ts.map +1 -0
  309. package/dist/HttpApi/Operations/OAuthProviderAuthorization.js +5 -0
  310. package/dist/HttpApi/Operations/OAuthProviderAuthorization.js.map +1 -0
  311. package/dist/HttpApi/Operations/OAuthToken.d.ts +26 -0
  312. package/dist/HttpApi/Operations/OAuthToken.d.ts.map +1 -0
  313. package/dist/HttpApi/Operations/OAuthToken.js +9 -0
  314. package/dist/HttpApi/Operations/OAuthToken.js.map +1 -0
  315. package/dist/HttpApi/Operations/Passkey.d.ts +22 -0
  316. package/dist/HttpApi/Operations/Passkey.d.ts.map +1 -0
  317. package/dist/HttpApi/Operations/Passkey.js +5 -0
  318. package/dist/HttpApi/Operations/Passkey.js.map +1 -0
  319. package/dist/HttpApi/Operations/Password.d.ts +22 -0
  320. package/dist/HttpApi/Operations/Password.d.ts.map +1 -0
  321. package/dist/HttpApi/Operations/Password.js +5 -0
  322. package/dist/HttpApi/Operations/Password.js.map +1 -0
  323. package/dist/HttpApi/Operations/RecoveryCodes.d.ts +20 -0
  324. package/dist/HttpApi/Operations/RecoveryCodes.d.ts.map +1 -0
  325. package/dist/HttpApi/Operations/RecoveryCodes.js +5 -0
  326. package/dist/HttpApi/Operations/RecoveryCodes.js.map +1 -0
  327. package/dist/HttpApi/Operations/RefreshToken.d.ts +12 -0
  328. package/dist/HttpApi/Operations/RefreshToken.d.ts.map +1 -0
  329. package/dist/HttpApi/Operations/RefreshToken.js +5 -0
  330. package/dist/HttpApi/Operations/RefreshToken.js.map +1 -0
  331. package/dist/HttpApi/Operations/Security.d.ts +12 -0
  332. package/dist/HttpApi/Operations/Security.d.ts.map +1 -0
  333. package/dist/HttpApi/Operations/Security.js +5 -0
  334. package/dist/HttpApi/Operations/Security.js.map +1 -0
  335. package/dist/HttpApi/Operations/SecurityTimeline.d.ts +19 -0
  336. package/dist/HttpApi/Operations/SecurityTimeline.d.ts.map +1 -0
  337. package/dist/HttpApi/Operations/SecurityTimeline.js +7 -0
  338. package/dist/HttpApi/Operations/SecurityTimeline.js.map +1 -0
  339. package/dist/HttpApi/Operations/Session.d.ts +22 -0
  340. package/dist/HttpApi/Operations/Session.d.ts.map +1 -0
  341. package/dist/HttpApi/Operations/Session.js +5 -0
  342. package/dist/HttpApi/Operations/Session.js.map +1 -0
  343. package/dist/HttpApi/Operations/StepUp.d.ts +22 -0
  344. package/dist/HttpApi/Operations/StepUp.d.ts.map +1 -0
  345. package/dist/HttpApi/Operations/StepUp.js +5 -0
  346. package/dist/HttpApi/Operations/StepUp.js.map +1 -0
  347. package/dist/HttpApi/Operations/Totp.d.ts +20 -0
  348. package/dist/HttpApi/Operations/Totp.d.ts.map +1 -0
  349. package/dist/HttpApi/Operations/Totp.js +5 -0
  350. package/dist/HttpApi/Operations/Totp.js.map +1 -0
  351. package/dist/HttpApi/Operations/TrustedDevice.d.ts +23 -0
  352. package/dist/HttpApi/Operations/TrustedDevice.d.ts.map +1 -0
  353. package/dist/HttpApi/Operations/TrustedDevice.js +7 -0
  354. package/dist/HttpApi/Operations/TrustedDevice.js.map +1 -0
  355. package/dist/HttpApi/Operations/index.d.ts +28 -0
  356. package/dist/HttpApi/Operations/index.d.ts.map +1 -0
  357. package/dist/HttpApi/Operations/index.js +28 -0
  358. package/dist/HttpApi/Operations/index.js.map +1 -0
  359. package/dist/HttpApi/Passkey.d.ts +5 -0
  360. package/dist/HttpApi/Passkey.d.ts.map +1 -0
  361. package/dist/HttpApi/Passkey.js +5 -0
  362. package/dist/HttpApi/Passkey.js.map +1 -0
  363. package/dist/HttpApi/Password.d.ts +220 -0
  364. package/dist/HttpApi/Password.d.ts.map +1 -0
  365. package/dist/HttpApi/Password.js +237 -0
  366. package/dist/HttpApi/Password.js.map +1 -0
  367. package/dist/HttpApi/PasswordContract.d.ts +307 -0
  368. package/dist/HttpApi/PasswordContract.d.ts.map +1 -0
  369. package/dist/HttpApi/PasswordContract.js +63 -0
  370. package/dist/HttpApi/PasswordContract.js.map +1 -0
  371. package/dist/HttpApi/PasswordGuards.d.ts +82 -0
  372. package/dist/HttpApi/PasswordGuards.d.ts.map +1 -0
  373. package/dist/HttpApi/PasswordGuards.js +179 -0
  374. package/dist/HttpApi/PasswordGuards.js.map +1 -0
  375. package/dist/HttpApi/RecoveryCodes.d.ts +5 -0
  376. package/dist/HttpApi/RecoveryCodes.d.ts.map +1 -0
  377. package/dist/HttpApi/RecoveryCodes.js +5 -0
  378. package/dist/HttpApi/RecoveryCodes.js.map +1 -0
  379. package/dist/HttpApi/RefreshToken.d.ts +4 -0
  380. package/dist/HttpApi/RefreshToken.d.ts.map +1 -0
  381. package/dist/HttpApi/RefreshToken.js +4 -0
  382. package/dist/HttpApi/RefreshToken.js.map +1 -0
  383. package/dist/HttpApi/RequestGuards.d.ts +42 -0
  384. package/dist/HttpApi/RequestGuards.d.ts.map +1 -0
  385. package/dist/HttpApi/RequestGuards.js +194 -0
  386. package/dist/HttpApi/RequestGuards.js.map +1 -0
  387. package/dist/HttpApi/Schemas.d.ts +399 -84
  388. package/dist/HttpApi/Schemas.d.ts.map +1 -1
  389. package/dist/HttpApi/Schemas.js +225 -27
  390. package/dist/HttpApi/Schemas.js.map +1 -1
  391. package/dist/HttpApi/Security.d.ts +12 -93
  392. package/dist/HttpApi/Security.d.ts.map +1 -1
  393. package/dist/HttpApi/Security.js +65 -356
  394. package/dist/HttpApi/Security.js.map +1 -1
  395. package/dist/HttpApi/SecurityTimeline.d.ts +4 -0
  396. package/dist/HttpApi/SecurityTimeline.d.ts.map +1 -0
  397. package/dist/HttpApi/SecurityTimeline.js +4 -0
  398. package/dist/HttpApi/SecurityTimeline.js.map +1 -0
  399. package/dist/HttpApi/Session.d.ts +5 -0
  400. package/dist/HttpApi/Session.d.ts.map +1 -0
  401. package/dist/HttpApi/Session.js +5 -0
  402. package/dist/HttpApi/Session.js.map +1 -0
  403. package/dist/HttpApi/SessionGuards.d.ts +15 -0
  404. package/dist/HttpApi/SessionGuards.d.ts.map +1 -0
  405. package/dist/HttpApi/SessionGuards.js +37 -0
  406. package/dist/HttpApi/SessionGuards.js.map +1 -0
  407. package/dist/HttpApi/StepUp.d.ts +5 -0
  408. package/dist/HttpApi/StepUp.d.ts.map +1 -0
  409. package/dist/HttpApi/StepUp.js +5 -0
  410. package/dist/HttpApi/StepUp.js.map +1 -0
  411. package/dist/HttpApi/Totp.d.ts +5 -0
  412. package/dist/HttpApi/Totp.d.ts.map +1 -0
  413. package/dist/HttpApi/Totp.js +5 -0
  414. package/dist/HttpApi/Totp.js.map +1 -0
  415. package/dist/HttpApi/Transport.d.ts +4 -6
  416. package/dist/HttpApi/Transport.d.ts.map +1 -1
  417. package/dist/HttpApi/Transport.js +62 -36
  418. package/dist/HttpApi/Transport.js.map +1 -1
  419. package/dist/HttpApi/TrustedDevice.d.ts +4 -0
  420. package/dist/HttpApi/TrustedDevice.d.ts.map +1 -0
  421. package/dist/HttpApi/TrustedDevice.js +4 -0
  422. package/dist/HttpApi/TrustedDevice.js.map +1 -0
  423. package/dist/HttpApi/index.d.ts +11 -3
  424. package/dist/HttpApi/index.d.ts.map +1 -1
  425. package/dist/HttpApi/index.js +10 -2
  426. package/dist/HttpApi/index.js.map +1 -1
  427. package/dist/Identity.d.ts +138 -0
  428. package/dist/Identity.d.ts.map +1 -0
  429. package/dist/Identity.js +105 -0
  430. package/dist/Identity.js.map +1 -0
  431. package/dist/IdentityManagement.d.ts +189 -0
  432. package/dist/IdentityManagement.d.ts.map +1 -0
  433. package/dist/IdentityManagement.js +317 -0
  434. package/dist/IdentityManagement.js.map +1 -0
  435. package/dist/IncidentAction.d.ts +1 -4
  436. package/dist/IncidentAction.d.ts.map +1 -1
  437. package/dist/IncidentAction.js +15 -9
  438. package/dist/IncidentAction.js.map +1 -1
  439. package/dist/Internal.d.ts +2 -0
  440. package/dist/Internal.d.ts.map +1 -1
  441. package/dist/Internal.js +30 -0
  442. package/dist/Internal.js.map +1 -1
  443. package/dist/Invitation.d.ts +362 -0
  444. package/dist/Invitation.d.ts.map +1 -0
  445. package/dist/Invitation.js +633 -0
  446. package/dist/Invitation.js.map +1 -0
  447. package/dist/IpQualityScore.d.ts +38 -0
  448. package/dist/IpQualityScore.d.ts.map +1 -0
  449. package/dist/IpQualityScore.js +215 -0
  450. package/dist/IpQualityScore.js.map +1 -0
  451. package/dist/Jwt.d.ts +8 -29
  452. package/dist/Jwt.d.ts.map +1 -1
  453. package/dist/Jwt.js +67 -56
  454. package/dist/Jwt.js.map +1 -1
  455. package/dist/LoginApproval.d.ts +15 -30
  456. package/dist/LoginApproval.d.ts.map +1 -1
  457. package/dist/LoginApproval.js +47 -41
  458. package/dist/LoginApproval.js.map +1 -1
  459. package/dist/LoginNotification.d.ts +7 -11
  460. package/dist/LoginNotification.d.ts.map +1 -1
  461. package/dist/LoginNotification.js +30 -17
  462. package/dist/LoginNotification.js.map +1 -1
  463. package/dist/LoginRisk.d.ts +11 -13
  464. package/dist/LoginRisk.d.ts.map +1 -1
  465. package/dist/LoginRisk.js +66 -26
  466. package/dist/LoginRisk.js.map +1 -1
  467. package/dist/LoginRiskEnrichment.d.ts +145 -0
  468. package/dist/LoginRiskEnrichment.d.ts.map +1 -0
  469. package/dist/LoginRiskEnrichment.js +220 -0
  470. package/dist/LoginRiskEnrichment.js.map +1 -0
  471. package/dist/MagicLink.d.ts +9 -8
  472. package/dist/MagicLink.d.ts.map +1 -1
  473. package/dist/MagicLink.js +40 -73
  474. package/dist/MagicLink.js.map +1 -1
  475. package/dist/Mailer.d.ts +19 -12
  476. package/dist/Mailer.d.ts.map +1 -1
  477. package/dist/Mailer.js +10 -12
  478. package/dist/Mailer.js.map +1 -1
  479. package/dist/OAuth.d.ts +138 -96
  480. package/dist/OAuth.d.ts.map +1 -1
  481. package/dist/OAuth.js +522 -221
  482. package/dist/OAuth.js.map +1 -1
  483. package/dist/OAuthDeviceAuthorization.d.ts +378 -0
  484. package/dist/OAuthDeviceAuthorization.d.ts.map +1 -0
  485. package/dist/OAuthDeviceAuthorization.js +860 -0
  486. package/dist/OAuthDeviceAuthorization.js.map +1 -0
  487. package/dist/OAuthDeviceClient.d.ts +76 -0
  488. package/dist/OAuthDeviceClient.d.ts.map +1 -0
  489. package/dist/OAuthDeviceClient.js +362 -0
  490. package/dist/OAuthDeviceClient.js.map +1 -0
  491. package/dist/Passkey.d.ts +15 -17
  492. package/dist/Passkey.d.ts.map +1 -1
  493. package/dist/Passkey.js +86 -39
  494. package/dist/Passkey.js.map +1 -1
  495. package/dist/PasskeyBrowser.d.ts +39 -0
  496. package/dist/PasskeyBrowser.d.ts.map +1 -0
  497. package/dist/PasskeyBrowser.js +206 -0
  498. package/dist/PasskeyBrowser.js.map +1 -0
  499. package/dist/PasskeySimpleWebAuthn.d.ts.map +1 -1
  500. package/dist/PasskeySimpleWebAuthn.js +19 -7
  501. package/dist/PasskeySimpleWebAuthn.js.map +1 -1
  502. package/dist/Password.d.ts +71 -37
  503. package/dist/Password.d.ts.map +1 -1
  504. package/dist/Password.js +295 -81
  505. package/dist/Password.js.map +1 -1
  506. package/dist/PasswordRisk.d.ts +63 -0
  507. package/dist/PasswordRisk.d.ts.map +1 -0
  508. package/dist/PasswordRisk.js +37 -0
  509. package/dist/PasswordRisk.js.map +1 -0
  510. package/dist/Permission.d.ts +308 -0
  511. package/dist/Permission.d.ts.map +1 -0
  512. package/dist/Permission.js +827 -0
  513. package/dist/Permission.js.map +1 -0
  514. package/dist/Policy.d.ts +31 -18
  515. package/dist/Policy.d.ts.map +1 -1
  516. package/dist/Policy.js +58 -14
  517. package/dist/Policy.js.map +1 -1
  518. package/dist/PostgresDelegatedAccessStorageMigrations.d.ts +7 -0
  519. package/dist/PostgresDelegatedAccessStorageMigrations.d.ts.map +1 -0
  520. package/dist/PostgresDelegatedAccessStorageMigrations.js +119 -0
  521. package/dist/PostgresDelegatedAccessStorageMigrations.js.map +1 -0
  522. package/dist/PostgresStorageMigrations.d.ts +16 -0
  523. package/dist/PostgresStorageMigrations.d.ts.map +1 -0
  524. package/dist/PostgresStorageMigrations.js +674 -0
  525. package/dist/PostgresStorageMigrations.js.map +1 -0
  526. package/dist/Privacy.d.ts +0 -3
  527. package/dist/Privacy.d.ts.map +1 -1
  528. package/dist/Privacy.js +2 -5
  529. package/dist/Privacy.js.map +1 -1
  530. package/dist/RateLimiter.d.ts +0 -3
  531. package/dist/RateLimiter.d.ts.map +1 -1
  532. package/dist/RateLimiter.js +1 -4
  533. package/dist/RateLimiter.js.map +1 -1
  534. package/dist/RecoveryCode.d.ts +83 -11
  535. package/dist/RecoveryCode.d.ts.map +1 -1
  536. package/dist/RecoveryCode.js +273 -75
  537. package/dist/RecoveryCode.js.map +1 -1
  538. package/dist/RecoveryPolicy.d.ts +81 -0
  539. package/dist/RecoveryPolicy.d.ts.map +1 -0
  540. package/dist/RecoveryPolicy.js +119 -0
  541. package/dist/RecoveryPolicy.js.map +1 -0
  542. package/dist/RefreshToken.d.ts +0 -9
  543. package/dist/RefreshToken.d.ts.map +1 -1
  544. package/dist/RefreshToken.js +31 -22
  545. package/dist/RefreshToken.js.map +1 -1
  546. package/dist/Retention.d.ts +6 -1
  547. package/dist/Retention.d.ts.map +1 -1
  548. package/dist/Retention.js +49 -12
  549. package/dist/Retention.js.map +1 -1
  550. package/dist/SecurityTimeline.d.ts +1 -4
  551. package/dist/SecurityTimeline.d.ts.map +1 -1
  552. package/dist/SecurityTimeline.js +110 -17
  553. package/dist/SecurityTimeline.js.map +1 -1
  554. package/dist/Sessions.d.ts +124 -29
  555. package/dist/Sessions.d.ts.map +1 -1
  556. package/dist/Sessions.js +626 -94
  557. package/dist/Sessions.js.map +1 -1
  558. package/dist/SqliteStorageSchemaData.d.ts +2 -0
  559. package/dist/SqliteStorageSchemaData.d.ts.map +1 -0
  560. package/dist/SqliteStorageSchemaData.js +508 -0
  561. package/dist/SqliteStorageSchemaData.js.map +1 -0
  562. package/dist/StepUp.d.ts +132 -11
  563. package/dist/StepUp.d.ts.map +1 -1
  564. package/dist/StepUp.js +387 -19
  565. package/dist/StepUp.js.map +1 -1
  566. package/dist/Storage.d.ts +89 -23
  567. package/dist/Storage.d.ts.map +1 -1
  568. package/dist/Storage.js +10 -12
  569. package/dist/Storage.js.map +1 -1
  570. package/dist/StorageMigrations.d.ts +7 -1
  571. package/dist/StorageMigrations.d.ts.map +1 -1
  572. package/dist/StorageMigrations.js +256 -0
  573. package/dist/StorageMigrations.js.map +1 -1
  574. package/dist/StorageSchemaGenerator.d.ts +544 -0
  575. package/dist/StorageSchemaGenerator.d.ts.map +1 -0
  576. package/dist/StorageSchemaGenerator.js +1418 -0
  577. package/dist/StorageSchemaGenerator.js.map +1 -0
  578. package/dist/StrongFactor.d.ts +64 -0
  579. package/dist/StrongFactor.d.ts.map +1 -0
  580. package/dist/StrongFactor.js +100 -0
  581. package/dist/StrongFactor.js.map +1 -0
  582. package/dist/Testing.js +2 -2
  583. package/dist/Testing.js.map +1 -1
  584. package/dist/Totp.d.ts +88 -13
  585. package/dist/Totp.d.ts.map +1 -1
  586. package/dist/Totp.js +192 -34
  587. package/dist/Totp.js.map +1 -1
  588. package/dist/TrustedDevice.d.ts +0 -9
  589. package/dist/TrustedDevice.d.ts.map +1 -1
  590. package/dist/TrustedDevice.js +15 -17
  591. package/dist/TrustedDevice.js.map +1 -1
  592. package/dist/WaitUntil.d.ts +0 -3
  593. package/dist/WaitUntil.d.ts.map +1 -1
  594. package/dist/WaitUntil.js +1 -4
  595. package/dist/WaitUntil.js.map +1 -1
  596. package/dist/Webhook.d.ts +42 -12
  597. package/dist/Webhook.d.ts.map +1 -1
  598. package/dist/Webhook.js +165 -26
  599. package/dist/Webhook.js.map +1 -1
  600. package/dist/alchemy/cloudflare/Email.d.ts.map +1 -1
  601. package/dist/alchemy/cloudflare/Email.js +9 -4
  602. package/dist/alchemy/cloudflare/Email.js.map +1 -1
  603. package/dist/cloudflare/Email.js +1 -1
  604. package/dist/cloudflare/Email.js.map +1 -1
  605. package/dist/cloudflare/RequestMetadata.d.ts +49 -0
  606. package/dist/cloudflare/RequestMetadata.d.ts.map +1 -0
  607. package/dist/cloudflare/RequestMetadata.js +71 -0
  608. package/dist/cloudflare/RequestMetadata.js.map +1 -0
  609. package/dist/index.d.ts +0 -35
  610. package/dist/index.d.ts.map +1 -1
  611. package/dist/index.js +0 -35
  612. package/dist/index.js.map +1 -1
  613. package/dist/internal/AuthFlowFinalizer.d.ts +31 -0
  614. package/dist/internal/AuthFlowFinalizer.d.ts.map +1 -0
  615. package/dist/internal/AuthFlowFinalizer.js +182 -0
  616. package/dist/internal/AuthFlowFinalizer.js.map +1 -0
  617. package/migrations/0001_auth_storage.sql +1 -0
  618. package/migrations/0006_auth_totp_factor.sql +1 -0
  619. package/migrations/0024_auth_permission.sql +39 -0
  620. package/migrations/0025_auth_permission_definition.sql +19 -0
  621. package/migrations/0026_auth_user_identity.sql +59 -0
  622. package/migrations/0027_auth_audit_log_storage_order.sql +46 -0
  623. package/migrations/0028_auth_oauth_client_secret_key.sql +39 -0
  624. package/migrations/0029_auth_oauth_device_authorization.sql +28 -0
  625. package/migrations/delegated-access/0001_auth_delegated_access.sql +152 -0
  626. package/migrations/postgres/0001_auth_core.sql +77 -0
  627. package/migrations/postgres/0002_auth_security_oauth.sql +65 -0
  628. package/migrations/postgres/0003_auth_credentials_tokens.sql +43 -0
  629. package/migrations/postgres/0004_auth_security_history.sql +103 -0
  630. package/migrations/postgres/0005_auth_webhooks.sql +29 -0
  631. package/migrations/postgres/0006_auth_domain_timeline.sql +50 -0
  632. package/migrations/postgres/0007_auth_oauth_clients.sql +85 -0
  633. package/migrations/postgres/0008_auth_oauth_tokens.sql +63 -0
  634. package/migrations/postgres/0009_auth_permissions.sql +66 -0
  635. package/migrations/postgres/0010_auth_oauth_device_authorization.sql +50 -0
  636. package/migrations/postgres/delegated-access/0001_auth_delegated_access.sql +112 -0
  637. package/package.json +309 -2
package/dist/Totp.js CHANGED
@@ -12,9 +12,6 @@ export class TotpError extends Data.TaggedError("TotpError") {
12
12
  }
13
13
  export class Totp extends Context.Service()("auth/Totp") {
14
14
  }
15
- (function (Totp) {
16
- Totp.make = (service) => Totp.of(service);
17
- })(Totp || (Totp = {}));
18
15
  const textEncoder = new TextEncoder();
19
16
  const base32Alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ234567";
20
17
  const totpError = (operation, message, cause) => new TotpError({
@@ -139,10 +136,12 @@ const generateHotpCode = (dependencies, input, operation) => Effect.gen(function
139
136
  });
140
137
  const timeCounter = (now, period) => Math.floor(Number(now) / 1000 / period);
141
138
  const normalizeCode = (code) => Redacted.value(code).replaceAll(/\s/g, "");
142
- export const makeTotp = (dependencies) => Totp.make({
139
+ export const makeTotp = (dependencies) => Totp.of({
143
140
  generateSecret: Effect.fn("auth.totp.generate_secret")(function* (input) {
144
141
  const bytes = yield* validateSecretBytes(input?.bytes ?? defaultTotpSecretBytes, "generate-secret");
145
- const secretBytes = yield* dependencies.crypto.randomBytes(bytes).pipe(Effect.mapError((cause) => totpError("generate-secret", "Failed to generate TOTP secret", cause)));
142
+ const secretBytes = yield* dependencies.crypto
143
+ .randomBytes(bytes)
144
+ .pipe(Effect.mapError((cause) => totpError("generate-secret", "Failed to generate TOTP secret", cause)));
146
145
  return Redacted.make(base32Encode(secretBytes));
147
146
  }),
148
147
  normalizeSecret: Effect.fn("auth.totp.normalize_secret")(function* (secret) {
@@ -210,6 +209,7 @@ export const makeTotp = (dependencies) => Totp.make({
210
209
  if (valid) {
211
210
  return {
212
211
  valid: true,
212
+ counter: candidateCounter,
213
213
  delta: Object.is(delta, -0) ? 0 : delta,
214
214
  };
215
215
  }
@@ -225,9 +225,132 @@ export class TotpFactorStoreError extends Data.TaggedError("TotpFactorStoreError
225
225
  }
226
226
  export class TotpFactorStore extends Context.Service()("auth/TotpFactorStore") {
227
227
  }
228
- (function (TotpFactorStore) {
229
- TotpFactorStore.make = (service) => TotpFactorStore.of(service);
230
- })(TotpFactorStore || (TotpFactorStore = {}));
228
+ export class TotpSessionRotateStoreError extends Data.TaggedError("TotpSessionRotateStoreError") {
229
+ }
230
+ export class TotpSessionRotateStore extends Context.Service()("auth/TotpSessionRotateStore") {
231
+ }
232
+ export class TotpLoginCommitStoreError extends Data.TaggedError("TotpLoginCommitStoreError") {
233
+ }
234
+ export class TotpLoginCommitStore extends Context.Service()("auth/TotpLoginCommitStore") {
235
+ }
236
+ export const makeTotpSessionRotateStoreMemory = (options = {}) => {
237
+ const factors = new Map(options.factors?.map((row) => [row.id, cloneTotpFactor(row)]));
238
+ const sessions = new Map(options.sessions?.map((row) => [row.id, structuredClone(row)]));
239
+ return TotpSessionRotateStore.of({
240
+ acceptAndRotate: (input) => Effect.try({
241
+ try: () => {
242
+ const factor = factors.get(input.factorId);
243
+ const session = sessions.get(input.sessionId);
244
+ if (factor === undefined ||
245
+ factor.userId !== input.userId ||
246
+ factor.confirmedAt === undefined ||
247
+ factor.revokedAt !== undefined ||
248
+ (factor.lastAcceptedCounter !== undefined &&
249
+ factor.lastAcceptedCounter >= input.counter) ||
250
+ session === undefined ||
251
+ session.userId !== input.userId ||
252
+ session.revokedAt !== undefined ||
253
+ session.expiresAt <= input.now ||
254
+ session.secretHash !== input.expectedSecretHash ||
255
+ JSON.stringify(session.authenticationEvents) !==
256
+ JSON.stringify(input.expectedAuthenticationEvents)) {
257
+ return Option.none();
258
+ }
259
+ if (options.failBeforeCommit?.() === true) {
260
+ throw new Error("Injected session rotation failure");
261
+ }
262
+ const nextFactor = {
263
+ ...factor,
264
+ lastUsedAt: input.lastUsedAt,
265
+ lastAcceptedCounter: input.counter,
266
+ ...(input.factorMetadata === undefined
267
+ ? {}
268
+ : { metadata: input.factorMetadata }),
269
+ };
270
+ const nextSession = {
271
+ ...session,
272
+ secretHash: input.secretHash,
273
+ rotatedAt: input.rotatedAt,
274
+ authenticationEvents: structuredClone(input.authenticationEvents),
275
+ authTime: input.authTime,
276
+ aal: input.aal,
277
+ amr: [...input.amr],
278
+ ...(input.mfaVerifiedAt === undefined
279
+ ? {}
280
+ : { mfaVerifiedAt: input.mfaVerifiedAt }),
281
+ ...(input.claims === undefined
282
+ ? {}
283
+ : { claims: structuredClone(input.claims) }),
284
+ };
285
+ factors.set(factor.id, nextFactor);
286
+ sessions.set(session.id, nextSession);
287
+ return Option.some(structuredClone(nextSession));
288
+ },
289
+ catch: (cause) => new TotpSessionRotateStoreError({
290
+ message: "Atomic TOTP session rotation failed",
291
+ cause,
292
+ }),
293
+ }),
294
+ });
295
+ };
296
+ export const makeTotpLoginCommitStoreMemory = (options = {}) => {
297
+ const verifications = new Map(options.verifications?.map((row) => [row.id, structuredClone(row)]));
298
+ const factors = new Map(options.factors?.map((row) => [row.id, cloneTotpFactor(row)]));
299
+ const sessions = new Map(options.sessions?.map((row) => [row.id, structuredClone(row)]));
300
+ return TotpLoginCommitStore.of({
301
+ commit: (input) => Effect.try({
302
+ // oxlint-disable-next-line eslint/complexity -- all atomic preconditions must be checked before mutating any map.
303
+ try: () => {
304
+ const verification = verifications.get(input.verification.id);
305
+ const factor = factors.get(input.factorId);
306
+ if (verification === undefined ||
307
+ JSON.stringify(verification) !==
308
+ JSON.stringify(input.verification) ||
309
+ verification.type !== "auth-flow-state" ||
310
+ verification.subject !== input.userId ||
311
+ verification.consumedAt !== undefined ||
312
+ Number(verification.expiresAt) <= Number(input.consumedAt) ||
313
+ factor === undefined ||
314
+ factor.userId !== input.userId ||
315
+ factor.confirmedAt === undefined ||
316
+ factor.revokedAt !== undefined ||
317
+ (factor.lastAcceptedCounter !== undefined &&
318
+ factor.lastAcceptedCounter >= input.counter) ||
319
+ (input.session === undefined &&
320
+ input.continuation !== "login-approval") ||
321
+ (input.session !== undefined && input.continuation !== undefined) ||
322
+ (input.session !== undefined &&
323
+ (input.session.userId !== input.userId ||
324
+ sessions.has(input.session.id)))) {
325
+ return false;
326
+ }
327
+ if (options.failBeforeCommit?.() === true) {
328
+ throw new Error("Injected session insert failure");
329
+ }
330
+ verifications.set(verification.id, {
331
+ ...verification,
332
+ consumedAt: input.consumedAt,
333
+ });
334
+ factors.set(factor.id, {
335
+ ...factor,
336
+ lastUsedAt: input.lastUsedAt,
337
+ lastAcceptedCounter: input.counter,
338
+ ...(input.factorMetadata === undefined
339
+ ? {}
340
+ : { metadata: input.factorMetadata }),
341
+ });
342
+ if (input.session !== undefined) {
343
+ sessions.set(input.session.id, structuredClone(input.session));
344
+ }
345
+ return true;
346
+ },
347
+ catch: (cause) => new TotpLoginCommitStoreError({
348
+ message: "Atomic TOTP login commit failed",
349
+ cause,
350
+ }),
351
+ }),
352
+ });
353
+ };
231
354
  const cloneMetadata = (metadata) => metadata === undefined ? undefined : structuredClone(metadata);
232
355
  const cloneTotpFactor = (record) => ({
233
356
  ...record,
@@ -238,18 +361,21 @@ const cloneTotpFactor = (record) => ({
238
361
  });
239
362
  export const makeTotpFactorStoreMemory = () => {
240
363
  const factors = new Map();
241
- return TotpFactorStore.make({
364
+ return TotpFactorStore.of({
242
365
  insert: (row) => Effect.sync(() => {
243
366
  factors.set(row.id, cloneTotpFactor(row));
244
367
  }),
245
368
  findById: (id) => Effect.sync(() => {
246
369
  const row = factors.get(id);
247
- return row === undefined ? Option.none() : Option.some(cloneTotpFactor(row));
370
+ return row === undefined
371
+ ? Option.none()
372
+ : Option.some(cloneTotpFactor(row));
248
373
  }),
249
374
  listByUser: (input) => Effect.sync(() => [...factors.values()]
250
375
  .filter((row) => row.userId === input.userId &&
251
376
  (input.includeRevoked === true || row.revokedAt === undefined) &&
252
- (input.includeUnconfirmed === true || row.confirmedAt !== undefined))
377
+ (input.includeUnconfirmed === true ||
378
+ row.confirmedAt !== undefined))
253
379
  .map(cloneTotpFactor)),
254
380
  confirm: (input) => Effect.sync(() => {
255
381
  const row = factors.get(input.id);
@@ -264,20 +390,25 @@ export const makeTotpFactorStoreMemory = () => {
264
390
  factors.set(input.id, updated);
265
391
  return Option.some(cloneTotpFactor(updated));
266
392
  }),
267
- markUsed: (input) => Effect.sync(() => {
393
+ acceptCounter: (input) => Effect.sync(() => {
268
394
  const row = factors.get(input.id);
269
395
  if (row === undefined ||
270
396
  row.revokedAt !== undefined ||
271
397
  row.confirmedAt === undefined) {
272
- return Option.none();
398
+ return { _tag: "Unavailable" };
399
+ }
400
+ if (row.lastAcceptedCounter !== undefined &&
401
+ row.lastAcceptedCounter >= input.counter) {
402
+ return { _tag: "Replay" };
273
403
  }
274
404
  const updated = {
275
405
  ...row,
276
406
  lastUsedAt: input.lastUsedAt,
407
+ lastAcceptedCounter: input.counter,
277
408
  metadata: input.metadata ?? row.metadata,
278
409
  };
279
410
  factors.set(input.id, updated);
280
- return Option.some(cloneTotpFactor(updated));
411
+ return { _tag: "Accepted", factor: cloneTotpFactor(updated) };
281
412
  }),
282
413
  revoke: (input) => Effect.sync(() => {
283
414
  const row = factors.get(input.id);
@@ -299,7 +430,10 @@ export class TotpFactorManagementError extends Data.TaggedError("TotpFactorManag
299
430
  export class TotpFactorManagement extends Context.Service()("auth/TotpFactorManagement") {
300
431
  }
301
432
  (function (TotpFactorManagement) {
302
- TotpFactorManagement.make = (service) => TotpFactorManagement.of(service);
433
+ TotpFactorManagement.make = (service) => TotpFactorManagement.of({
434
+ ...service,
435
+ identifyForUser: service.identifyForUser ?? service.verifyForUser,
436
+ });
303
437
  })(TotpFactorManagement || (TotpFactorManagement = {}));
304
438
  const totpFactorInfo = (factor) => ({
305
439
  id: factor.id,
@@ -310,9 +444,7 @@ const totpFactorInfo = (factor) => ({
310
444
  ...(factor.confirmedAt === undefined
311
445
  ? {}
312
446
  : { confirmedAt: factor.confirmedAt }),
313
- ...(factor.lastUsedAt === undefined
314
- ? {}
315
- : { lastUsedAt: factor.lastUsedAt }),
447
+ ...(factor.lastUsedAt === undefined ? {} : { lastUsedAt: factor.lastUsedAt }),
316
448
  ...(factor.revokedAt === undefined ? {} : { revokedAt: factor.revokedAt }),
317
449
  ...(factor.metadata === undefined ? {} : { metadata: factor.metadata }),
318
450
  });
@@ -323,7 +455,9 @@ const totpFactorManagementError = (operation, message, cause) => new TotpFactorM
323
455
  });
324
456
  const makeTotpFactorId = (dependencies, operation) => dependencies.crypto.randomToken(dependencies.factorIdBytes ?? 16).pipe(Effect.map(CredentialId), Effect.mapError((cause) => totpFactorManagementError(operation, "Failed to generate TOTP factor id", cause)));
325
457
  const loadOwnedTotpFactor = (dependencies, operation, input) => Effect.gen(function* () {
326
- const factor = yield* dependencies.factorStore.findById(input.factorId).pipe(Effect.mapError((cause) => totpFactorManagementError(operation, "Failed to load TOTP factor", cause)));
458
+ const factor = yield* dependencies.factorStore
459
+ .findById(input.factorId)
460
+ .pipe(Effect.mapError((cause) => totpFactorManagementError(operation, "Failed to load TOTP factor", cause)));
327
461
  if (Option.isNone(factor) || factor.value.userId !== input.userId) {
328
462
  return yield* totpFactorManagementError(operation, "TOTP factor not found");
329
463
  }
@@ -359,7 +493,8 @@ export const makeTotpFactorManagement = (dependencies) => TotpFactorManagement.m
359
493
  })
360
494
  .pipe(Effect.mapError((cause) => totpFactorManagementError(operation, "Failed to build TOTP enrollment URI", cause)));
361
495
  const factor = {
362
- id: input.factorId ?? (yield* makeTotpFactorId(dependencies, operation)),
496
+ id: input.factorId ??
497
+ (yield* makeTotpFactorId(dependencies, operation)),
363
498
  userId: input.userId,
364
499
  secret,
365
500
  algorithm,
@@ -368,7 +503,9 @@ export const makeTotpFactorManagement = (dependencies) => TotpFactorManagement.m
368
503
  createdAt: now,
369
504
  ...(input.metadata === undefined ? {} : { metadata: input.metadata }),
370
505
  };
371
- yield* dependencies.factorStore.insert(factor).pipe(Effect.mapError((cause) => totpFactorManagementError(operation, "Failed to store TOTP factor", cause)));
506
+ yield* dependencies.factorStore
507
+ .insert(factor)
508
+ .pipe(Effect.mapError((cause) => totpFactorManagementError(operation, "Failed to store TOTP factor", cause)));
372
509
  return {
373
510
  factor: totpFactorInfo(factor),
374
511
  secret,
@@ -386,7 +523,11 @@ export const makeTotpFactorManagement = (dependencies) => TotpFactorManagement.m
386
523
  return yield* totpFactorManagementError(operation, "TOTP factor already confirmed");
387
524
  }
388
525
  const verified = yield* dependencies.totp
389
- .verify(totpVerifyInput(factor, { code: input.code, now, window: input.window }))
526
+ .verify(totpVerifyInput(factor, {
527
+ code: input.code,
528
+ now,
529
+ window: input.window,
530
+ }))
390
531
  .pipe(Effect.mapError((cause) => totpFactorManagementError(operation, "Failed to verify TOTP enrollment code", cause)));
391
532
  if (!verified.valid) {
392
533
  return yield* totpFactorManagementError(operation, "Invalid TOTP code");
@@ -403,7 +544,7 @@ export const makeTotpFactorManagement = (dependencies) => TotpFactorManagement.m
403
544
  }
404
545
  return totpFactorInfo(confirmed.value);
405
546
  }),
406
- verifyForUser: Effect.fn("auth.totp.factor_management.verify")(function* (input) {
547
+ identifyForUser: Effect.fn("auth.totp.factor_management.identify")(function* (input) {
407
548
  const operation = "verify";
408
549
  const now = input.now ?? (yield* currentUnixMillis);
409
550
  const factors = yield* dependencies.factorStore
@@ -420,24 +561,41 @@ export const makeTotpFactorManagement = (dependencies) => TotpFactorManagement.m
420
561
  if (!verified.valid) {
421
562
  continue;
422
563
  }
423
- const updated = yield* dependencies.factorStore
424
- .markUsed({
425
- id: factor.id,
426
- lastUsedAt: now,
427
- ...(input.metadata === undefined ? {} : { metadata: input.metadata }),
428
- })
429
- .pipe(Effect.mapError((cause) => totpFactorManagementError(operation, "Failed to mark TOTP factor as used", cause)));
430
- if (Option.isNone(updated)) {
431
- return yield* totpFactorManagementError(operation, "TOTP factor not found");
564
+ if (factor.lastAcceptedCounter !== undefined &&
565
+ factor.lastAcceptedCounter >= verified.counter) {
566
+ continue;
432
567
  }
433
568
  return {
434
569
  valid: true,
435
- factor: totpFactorInfo(updated.value),
436
- ...(verified.delta === undefined ? {} : { delta: verified.delta }),
570
+ factor: totpFactorInfo(factor),
571
+ delta: verified.delta,
572
+ acceptedCounter: verified.counter,
437
573
  };
438
574
  }
439
575
  return { valid: false };
440
576
  }),
577
+ verifyForUser: Effect.fn("auth.totp.factor_management.verify")(function* (input) {
578
+ const identified = yield* makeTotpFactorManagement(dependencies).identifyForUser(input);
579
+ if (!identified.valid ||
580
+ identified.factor === undefined ||
581
+ identified.acceptedCounter === undefined) {
582
+ return { valid: false };
583
+ }
584
+ const now = input.now ?? (yield* currentUnixMillis);
585
+ const accepted = yield* dependencies.factorStore
586
+ .acceptCounter({
587
+ id: identified.factor.id,
588
+ lastUsedAt: now,
589
+ counter: identified.acceptedCounter,
590
+ ...(input.metadata === undefined
591
+ ? {}
592
+ : { metadata: input.metadata }),
593
+ })
594
+ .pipe(Effect.mapError((cause) => totpFactorManagementError("verify", "Failed to accept TOTP counter", cause)));
595
+ return accepted._tag === "Accepted"
596
+ ? { ...identified, factor: totpFactorInfo(accepted.factor) }
597
+ : { valid: false };
598
+ }),
441
599
  listForUser: Effect.fn("auth.totp.factor_management.list")(function* (input) {
442
600
  const factors = yield* dependencies.factorStore
443
601
  .listByUser({
package/dist/Totp.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Totp.js","sourceRoot":"","sources":["../src/Totp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Totp.js","sourceRoot":"","sources":["../src/Totp.ts"],"names":[],"mappings":"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"}
@@ -69,9 +69,6 @@ export interface TrustedDeviceStoreService {
69
69
  declare const TrustedDeviceStore_base: Context.ServiceClass<TrustedDeviceStore, "auth/TrustedDeviceStore", TrustedDeviceStoreService>;
70
70
  export declare class TrustedDeviceStore extends TrustedDeviceStore_base {
71
71
  }
72
- export declare namespace TrustedDeviceStore {
73
- const make: (service: TrustedDeviceStoreService) => TrustedDeviceStoreService;
74
- }
75
72
  export interface TrustedDeviceService {
76
73
  readonly status: (input: TrustedDeviceStatusInput) => Effect.Effect<LoginDeviceContext, TrustedDeviceError>;
77
74
  readonly trust: (input: TrustedDeviceTrustInput) => Effect.Effect<TrustedDeviceToken, TrustedDeviceError>;
@@ -79,9 +76,6 @@ export interface TrustedDeviceService {
79
76
  declare const TrustedDevice_base: Context.ServiceClass<TrustedDevice, "auth/TrustedDevice", TrustedDeviceService>;
80
77
  export declare class TrustedDevice extends TrustedDevice_base {
81
78
  }
82
- export declare namespace TrustedDevice {
83
- const make: (service: TrustedDeviceService) => TrustedDeviceService;
84
- }
85
79
  export interface TrustedDeviceCookieCommitInput {
86
80
  readonly token: TrustedDeviceToken;
87
81
  }
@@ -93,9 +87,6 @@ export interface TrustedDeviceCookieService {
93
87
  declare const TrustedDeviceCookie_base: Context.ServiceClass<TrustedDeviceCookie, "auth/TrustedDeviceCookie", TrustedDeviceCookieService>;
94
88
  export declare class TrustedDeviceCookie extends TrustedDeviceCookie_base {
95
89
  }
96
- export declare namespace TrustedDeviceCookie {
97
- const make: (service: TrustedDeviceCookieService) => TrustedDeviceCookieService;
98
- }
99
90
  export interface TrustedDeviceOptions {
100
91
  readonly secret: CryptoKey;
101
92
  readonly ttl?: Duration.Duration;
@@ -1 +1 @@
1
- {"version":3,"file":"TrustedDevice.d.ts","sourceRoot":"","sources":["../src/TrustedDevice.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TrustedDevice.d.ts","sourceRoot":"","sources":["../src/TrustedDevice.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,15 @@
1
1
  import { Context, Data, Duration, Effect, Layer, Option, Redacted, } from "effect";
2
2
  import { AuthSecrets } from "./AuthConfig.js";
3
3
  import { Crypto } from "./Crypto.js";
4
- import { addMillis, currentUnixMillis } from "./Internal.js";
4
+ import { addMillis, compareUtf8Bytes, currentUnixMillis } from "./Internal.js";
5
5
  export class TrustedDeviceError extends Data.TaggedError("TrustedDeviceError") {
6
6
  }
7
7
  export class TrustedDeviceStore extends Context.Service()("auth/TrustedDeviceStore") {
8
8
  }
9
- (function (TrustedDeviceStore) {
10
- TrustedDeviceStore.make = (service) => TrustedDeviceStore.of(service);
11
- })(TrustedDeviceStore || (TrustedDeviceStore = {}));
12
9
  export class TrustedDevice extends Context.Service()("auth/TrustedDevice") {
13
10
  }
14
- (function (TrustedDevice) {
15
- TrustedDevice.make = (service) => TrustedDevice.of(service);
16
- })(TrustedDevice || (TrustedDevice = {}));
17
11
  export class TrustedDeviceCookie extends Context.Service()("auth/TrustedDeviceCookie") {
18
12
  }
19
- (function (TrustedDeviceCookie) {
20
- TrustedDeviceCookie.make = (service) => TrustedDeviceCookie.of(service);
21
- })(TrustedDeviceCookie || (TrustedDeviceCookie = {}));
22
13
  export const defaultTrustedDeviceTtl = Duration.days(90);
23
14
  export const defaultTrustedDeviceTokenBytes = 32;
24
15
  const defaultTrustedDeviceCookieOptions = {
@@ -51,9 +42,10 @@ const cloneRecord = (record) => ({
51
42
  });
52
43
  const compareTrustedDeviceRecords = (left, right) => {
53
44
  const lastSeenAt = Number(right.lastSeenAt) - Number(left.lastSeenAt);
54
- return lastSeenAt === 0
55
- ? right.tokenHash.localeCompare(left.tokenHash)
56
- : lastSeenAt;
45
+ if (lastSeenAt !== 0 || left.tokenHash === right.tokenHash) {
46
+ return lastSeenAt;
47
+ }
48
+ return -compareUtf8Bytes(left.tokenHash, right.tokenHash);
57
49
  };
58
50
  const insertSortedTrustedDeviceRecord = (devices, device) => {
59
51
  const index = devices.findIndex((existing) => compareTrustedDeviceRecords(device, existing) < 0);
@@ -69,7 +61,9 @@ const sortTrustedDeviceRecords = (devices) => {
69
61
  return sorted;
70
62
  };
71
63
  export const filterTrustedDevicesForUser = (devices, input) => {
72
- const limit = input.limit === undefined ? undefined : Math.max(0, Math.floor(input.limit));
64
+ const limit = input.limit === undefined
65
+ ? undefined
66
+ : Math.max(0, Math.floor(input.limit));
73
67
  const filtered = sortTrustedDeviceRecords([...devices]
74
68
  .filter((device) => device.userId === input.userId)
75
69
  .filter((device) => Number(device.expiresAt) > Number(input.now))).map(cloneRecord);
@@ -77,7 +71,7 @@ export const filterTrustedDevicesForUser = (devices, input) => {
77
71
  };
78
72
  export const makeTrustedDeviceStoreMemory = () => {
79
73
  const devices = new Map();
80
- return TrustedDeviceStore.make({
74
+ return TrustedDeviceStore.of({
81
75
  find: (input) => Effect.sync(() => {
82
76
  const row = devices.get(trustedDeviceKey(input.userId, input.tokenHash));
83
77
  if (row === undefined || Number(row.expiresAt) <= Number(input.now)) {
@@ -88,6 +82,10 @@ export const makeTrustedDeviceStoreMemory = () => {
88
82
  upsert: (input) => Effect.sync(() => {
89
83
  const key = trustedDeviceKey(input.userId, input.tokenHash);
90
84
  const existing = devices.get(key);
85
+ if (existing !== undefined &&
86
+ Number(input.now) < Number(existing.lastSeenAt)) {
87
+ return cloneRecord(existing);
88
+ }
91
89
  const row = {
92
90
  userId: input.userId,
93
91
  tokenHash: input.tokenHash,
@@ -109,7 +107,7 @@ export const TrustedDeviceStoreMemoryLive = Layer.sync(TrustedDeviceStore)(makeT
109
107
  export const makeTrustedDevice = (dependencies) => {
110
108
  const ttl = dependencies.ttl ?? defaultTrustedDeviceTtl;
111
109
  const tokenBytes = dependencies.tokenBytes ?? defaultTrustedDeviceTokenBytes;
112
- return TrustedDevice.make({
110
+ return TrustedDevice.of({
113
111
  status: Effect.fn("auth.trusted_device.status")(function* (input) {
114
112
  if (input.token === undefined) {
115
113
  return deviceContext("unknown");
@@ -237,7 +235,7 @@ const serializeCookie = (options, value, expiresAt) => {
237
235
  const serializeClearCookie = (options) => appendCookieAttributes([`${options.name}=`, "Max-Age=0", "Expires=Thu, 01 Jan 1970 00:00:00 GMT"], options).join("; ");
238
236
  export const makeTrustedDeviceCookie = (options) => {
239
237
  const resolved = resolveTrustedDeviceCookieOptions(options);
240
- return TrustedDeviceCookie.make({
238
+ return TrustedDeviceCookie.of({
241
239
  read: (request) => Effect.succeed((() => {
242
240
  const value = parseCookieValue(request.headers.get("Cookie"), resolved.name);
243
241
  return value === undefined