@effect-auth/core 0.1.0-alpha.15 → 0.1.0-alpha.18

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 (627) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +332 -131
  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 +2 -14
  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/AuthConfig.d.ts.map +1 -1
  28. package/dist/AuthConfig.js.map +1 -1
  29. package/dist/AuthFlow.d.ts +326 -220
  30. package/dist/AuthFlow.d.ts.map +1 -1
  31. package/dist/AuthFlow.js +611 -263
  32. package/dist/AuthFlow.js.map +1 -1
  33. package/dist/AuthKernel.d.ts +1 -1
  34. package/dist/AuthRateLimit.d.ts +96 -0
  35. package/dist/AuthRateLimit.d.ts.map +1 -0
  36. package/dist/AuthRateLimit.js +212 -0
  37. package/dist/AuthRateLimit.js.map +1 -0
  38. package/dist/Challenge.d.ts +0 -3
  39. package/dist/Challenge.d.ts.map +1 -1
  40. package/dist/Challenge.js +1 -4
  41. package/dist/Challenge.js.map +1 -1
  42. package/dist/Client.d.ts +205 -10
  43. package/dist/Client.d.ts.map +1 -1
  44. package/dist/Client.js +397 -16
  45. package/dist/Client.js.map +1 -1
  46. package/dist/CloudflareTurnstile.d.ts +28 -0
  47. package/dist/CloudflareTurnstile.d.ts.map +1 -0
  48. package/dist/CloudflareTurnstile.js +205 -0
  49. package/dist/CloudflareTurnstile.js.map +1 -0
  50. package/dist/Crypto.d.ts +0 -3
  51. package/dist/Crypto.d.ts.map +1 -1
  52. package/dist/Crypto.js +5 -7
  53. package/dist/Crypto.js.map +1 -1
  54. package/dist/DelegatedAccessStorageMigrations.d.ts +7 -0
  55. package/dist/DelegatedAccessStorageMigrations.d.ts.map +1 -0
  56. package/dist/DelegatedAccessStorageMigrations.js +159 -0
  57. package/dist/DelegatedAccessStorageMigrations.js.map +1 -0
  58. package/dist/DisposableEmailDomains.d.ts +19 -0
  59. package/dist/DisposableEmailDomains.d.ts.map +1 -0
  60. package/dist/DisposableEmailDomains.js +85 -0
  61. package/dist/DisposableEmailDomains.js.map +1 -0
  62. package/dist/DomainVerification.d.ts +0 -9
  63. package/dist/DomainVerification.d.ts.map +1 -1
  64. package/dist/DomainVerification.js +36 -22
  65. package/dist/DomainVerification.js.map +1 -1
  66. package/dist/DrizzleBunSqliteStorage.d.ts +18 -0
  67. package/dist/DrizzleBunSqliteStorage.d.ts.map +1 -0
  68. package/dist/DrizzleBunSqliteStorage.js +11 -0
  69. package/dist/DrizzleBunSqliteStorage.js.map +1 -0
  70. package/dist/DrizzleD1SqliteStorage.d.ts +28 -0
  71. package/dist/DrizzleD1SqliteStorage.d.ts.map +1 -0
  72. package/dist/DrizzleD1SqliteStorage.js +10 -0
  73. package/dist/DrizzleD1SqliteStorage.js.map +1 -0
  74. package/dist/DrizzleDurableObjectSqliteStorage.d.ts +19 -0
  75. package/dist/DrizzleDurableObjectSqliteStorage.d.ts.map +1 -0
  76. package/dist/DrizzleDurableObjectSqliteStorage.js +14 -0
  77. package/dist/DrizzleDurableObjectSqliteStorage.js.map +1 -0
  78. package/dist/DrizzleEffectSqliteStorage.d.ts +31 -0
  79. package/dist/DrizzleEffectSqliteStorage.d.ts.map +1 -0
  80. package/dist/DrizzleEffectSqliteStorage.js +108 -0
  81. package/dist/DrizzleEffectSqliteStorage.js.map +1 -0
  82. package/dist/DrizzleNodeSqliteStorage.d.ts +18 -0
  83. package/dist/DrizzleNodeSqliteStorage.d.ts.map +1 -0
  84. package/dist/DrizzleNodeSqliteStorage.js +11 -0
  85. package/dist/DrizzleNodeSqliteStorage.js.map +1 -0
  86. package/dist/DrizzleWasmSqliteStorage.d.ts +23 -0
  87. package/dist/DrizzleWasmSqliteStorage.d.ts.map +1 -0
  88. package/dist/DrizzleWasmSqliteStorage.js +15 -0
  89. package/dist/DrizzleWasmSqliteStorage.js.map +1 -0
  90. package/dist/EffectQbPostgresDelegatedAccessStorage.d.ts +34 -0
  91. package/dist/EffectQbPostgresDelegatedAccessStorage.d.ts.map +1 -0
  92. package/dist/EffectQbPostgresDelegatedAccessStorage.js +499 -0
  93. package/dist/EffectQbPostgresDelegatedAccessStorage.js.map +1 -0
  94. package/dist/EffectQbPostgresStorage.d.ts +171 -0
  95. package/dist/EffectQbPostgresStorage.d.ts.map +1 -0
  96. package/dist/EffectQbPostgresStorage.js +4280 -0
  97. package/dist/EffectQbPostgresStorage.js.map +1 -0
  98. package/dist/EffectQbSqliteDelegatedAccessStorage.d.ts +112 -0
  99. package/dist/EffectQbSqliteDelegatedAccessStorage.d.ts.map +1 -0
  100. package/dist/EffectQbSqliteDelegatedAccessStorage.js +602 -0
  101. package/dist/EffectQbSqliteDelegatedAccessStorage.js.map +1 -0
  102. package/dist/EffectQbSqliteStorage.d.ts +184 -27
  103. package/dist/EffectQbSqliteStorage.d.ts.map +1 -1
  104. package/dist/EffectQbSqliteStorage.js +1729 -135
  105. package/dist/EffectQbSqliteStorage.js.map +1 -1
  106. package/dist/EmailAuth.d.ts +65 -0
  107. package/dist/EmailAuth.d.ts.map +1 -0
  108. package/dist/EmailAuth.js +171 -0
  109. package/dist/EmailAuth.js.map +1 -0
  110. package/dist/EmailIdentityAuth.d.ts +30 -0
  111. package/dist/EmailIdentityAuth.d.ts.map +1 -0
  112. package/dist/EmailIdentityAuth.js +142 -0
  113. package/dist/EmailIdentityAuth.js.map +1 -0
  114. package/dist/EmailOtp.d.ts +10 -11
  115. package/dist/EmailOtp.d.ts.map +1 -1
  116. package/dist/EmailOtp.js +44 -81
  117. package/dist/EmailOtp.js.map +1 -1
  118. package/dist/EmailRisk.d.ts +48 -0
  119. package/dist/EmailRisk.d.ts.map +1 -0
  120. package/dist/EmailRisk.js +33 -0
  121. package/dist/EmailRisk.js.map +1 -0
  122. package/dist/EmailVerification.d.ts +10 -16
  123. package/dist/EmailVerification.d.ts.map +1 -1
  124. package/dist/EmailVerification.js +85 -42
  125. package/dist/EmailVerification.js.map +1 -1
  126. package/dist/Guard.d.ts +11 -0
  127. package/dist/Guard.d.ts.map +1 -0
  128. package/dist/Guard.js +11 -0
  129. package/dist/Guard.js.map +1 -0
  130. package/dist/HibpPwnedPasswords.d.ts +56 -0
  131. package/dist/HibpPwnedPasswords.d.ts.map +1 -0
  132. package/dist/HibpPwnedPasswords.js +232 -0
  133. package/dist/HibpPwnedPasswords.js.map +1 -0
  134. package/dist/HttpApi/AdminPermissionDefinition.d.ts +4 -0
  135. package/dist/HttpApi/AdminPermissionDefinition.d.ts.map +1 -0
  136. package/dist/HttpApi/AdminPermissionDefinition.js +4 -0
  137. package/dist/HttpApi/AdminPermissionDefinition.js.map +1 -0
  138. package/dist/HttpApi/AdminSecurityTimeline.d.ts +4 -0
  139. package/dist/HttpApi/AdminSecurityTimeline.d.ts.map +1 -0
  140. package/dist/HttpApi/AdminSecurityTimeline.js +4 -0
  141. package/dist/HttpApi/AdminSecurityTimeline.js.map +1 -0
  142. package/dist/HttpApi/AdminSession.d.ts +4 -0
  143. package/dist/HttpApi/AdminSession.d.ts.map +1 -0
  144. package/dist/HttpApi/AdminSession.js +4 -0
  145. package/dist/HttpApi/AdminSession.js.map +1 -0
  146. package/dist/HttpApi/AdminTrustedDevice.d.ts +4 -0
  147. package/dist/HttpApi/AdminTrustedDevice.d.ts.map +1 -0
  148. package/dist/HttpApi/AdminTrustedDevice.js +4 -0
  149. package/dist/HttpApi/AdminTrustedDevice.js.map +1 -0
  150. package/dist/HttpApi/Api.d.ts +1172 -1172
  151. package/dist/HttpApi/Api.d.ts.map +1 -1
  152. package/dist/HttpApi/Api.js +2160 -896
  153. package/dist/HttpApi/Api.js.map +1 -1
  154. package/dist/HttpApi/ApiKey.d.ts +4 -0
  155. package/dist/HttpApi/ApiKey.d.ts.map +1 -0
  156. package/dist/HttpApi/ApiKey.js +4 -0
  157. package/dist/HttpApi/ApiKey.js.map +1 -0
  158. package/dist/HttpApi/Audit.d.ts +6 -0
  159. package/dist/HttpApi/Audit.d.ts.map +1 -0
  160. package/dist/HttpApi/Audit.js +10 -0
  161. package/dist/HttpApi/Audit.js.map +1 -0
  162. package/dist/HttpApi/ClientApi.d.ts +917 -0
  163. package/dist/HttpApi/ClientApi.d.ts.map +1 -0
  164. package/dist/HttpApi/ClientApi.js +101 -0
  165. package/dist/HttpApi/ClientApi.js.map +1 -0
  166. package/dist/HttpApi/EmailAuth.d.ts +6 -0
  167. package/dist/HttpApi/EmailAuth.d.ts.map +1 -0
  168. package/dist/HttpApi/EmailAuth.js +6 -0
  169. package/dist/HttpApi/EmailAuth.js.map +1 -0
  170. package/dist/HttpApi/EmailGuards.d.ts +115 -0
  171. package/dist/HttpApi/EmailGuards.d.ts.map +1 -0
  172. package/dist/HttpApi/EmailGuards.js +191 -0
  173. package/dist/HttpApi/EmailGuards.js.map +1 -0
  174. package/dist/HttpApi/EmailOtp.d.ts +6 -0
  175. package/dist/HttpApi/EmailOtp.d.ts.map +1 -0
  176. package/dist/HttpApi/EmailOtp.js +6 -0
  177. package/dist/HttpApi/EmailOtp.js.map +1 -0
  178. package/dist/HttpApi/EmailVerification.d.ts +6 -0
  179. package/dist/HttpApi/EmailVerification.d.ts.map +1 -0
  180. package/dist/HttpApi/EmailVerification.js +6 -0
  181. package/dist/HttpApi/EmailVerification.js.map +1 -0
  182. package/dist/HttpApi/Endpoints.d.ts +629 -301
  183. package/dist/HttpApi/Endpoints.d.ts.map +1 -1
  184. package/dist/HttpApi/Endpoints.js +178 -120
  185. package/dist/HttpApi/Endpoints.js.map +1 -1
  186. package/dist/HttpApi/Errors.d.ts +26 -7
  187. package/dist/HttpApi/Errors.d.ts.map +1 -1
  188. package/dist/HttpApi/Errors.js +26 -4
  189. package/dist/HttpApi/Errors.js.map +1 -1
  190. package/dist/HttpApi/Identity.d.ts +6 -0
  191. package/dist/HttpApi/Identity.d.ts.map +1 -0
  192. package/dist/HttpApi/Identity.js +6 -0
  193. package/dist/HttpApi/Identity.js.map +1 -0
  194. package/dist/HttpApi/IdentityGuards.d.ts +31 -0
  195. package/dist/HttpApi/IdentityGuards.d.ts.map +1 -0
  196. package/dist/HttpApi/IdentityGuards.js +33 -0
  197. package/dist/HttpApi/IdentityGuards.js.map +1 -0
  198. package/dist/HttpApi/Jwt.d.ts +4 -0
  199. package/dist/HttpApi/Jwt.d.ts.map +1 -0
  200. package/dist/HttpApi/Jwt.js +4 -0
  201. package/dist/HttpApi/Jwt.js.map +1 -0
  202. package/dist/HttpApi/JwtDiscovery.d.ts +4 -0
  203. package/dist/HttpApi/JwtDiscovery.d.ts.map +1 -0
  204. package/dist/HttpApi/JwtDiscovery.js +4 -0
  205. package/dist/HttpApi/JwtDiscovery.js.map +1 -0
  206. package/dist/HttpApi/LoginApproval.d.ts +5 -0
  207. package/dist/HttpApi/LoginApproval.d.ts.map +1 -0
  208. package/dist/HttpApi/LoginApproval.js +5 -0
  209. package/dist/HttpApi/LoginApproval.js.map +1 -0
  210. package/dist/HttpApi/LoginNotification.d.ts +5 -0
  211. package/dist/HttpApi/LoginNotification.d.ts.map +1 -0
  212. package/dist/HttpApi/LoginNotification.js +5 -0
  213. package/dist/HttpApi/LoginNotification.js.map +1 -0
  214. package/dist/HttpApi/MagicLink.d.ts +6 -0
  215. package/dist/HttpApi/MagicLink.d.ts.map +1 -0
  216. package/dist/HttpApi/MagicLink.js +6 -0
  217. package/dist/HttpApi/MagicLink.js.map +1 -0
  218. package/dist/HttpApi/Mfa.d.ts +5 -0
  219. package/dist/HttpApi/Mfa.d.ts.map +1 -0
  220. package/dist/HttpApi/Mfa.js +5 -0
  221. package/dist/HttpApi/Mfa.js.map +1 -0
  222. package/dist/HttpApi/Middleware.d.ts +14 -0
  223. package/dist/HttpApi/Middleware.d.ts.map +1 -0
  224. package/dist/HttpApi/Middleware.js +5 -0
  225. package/dist/HttpApi/Middleware.js.map +1 -0
  226. package/dist/HttpApi/OAuth.d.ts +4 -0
  227. package/dist/HttpApi/OAuth.d.ts.map +1 -0
  228. package/dist/HttpApi/OAuth.js +4 -0
  229. package/dist/HttpApi/OAuth.js.map +1 -0
  230. package/dist/HttpApi/OAuthProviderAuthorization.d.ts +4 -0
  231. package/dist/HttpApi/OAuthProviderAuthorization.d.ts.map +1 -0
  232. package/dist/HttpApi/OAuthProviderAuthorization.js +4 -0
  233. package/dist/HttpApi/OAuthProviderAuthorization.js.map +1 -0
  234. package/dist/HttpApi/OAuthToken.d.ts +4 -0
  235. package/dist/HttpApi/OAuthToken.d.ts.map +1 -0
  236. package/dist/HttpApi/OAuthToken.js +4 -0
  237. package/dist/HttpApi/OAuthToken.js.map +1 -0
  238. package/dist/HttpApi/OidcDiscovery.d.ts +4 -0
  239. package/dist/HttpApi/OidcDiscovery.d.ts.map +1 -0
  240. package/dist/HttpApi/OidcDiscovery.js +4 -0
  241. package/dist/HttpApi/OidcDiscovery.js.map +1 -0
  242. package/dist/HttpApi/Operations/AdminPermissionDefinition.d.ts +28 -0
  243. package/dist/HttpApi/Operations/AdminPermissionDefinition.d.ts.map +1 -0
  244. package/dist/HttpApi/Operations/AdminPermissionDefinition.js +5 -0
  245. package/dist/HttpApi/Operations/AdminPermissionDefinition.js.map +1 -0
  246. package/dist/HttpApi/Operations/AdminSession.d.ts +16 -0
  247. package/dist/HttpApi/Operations/AdminSession.d.ts.map +1 -0
  248. package/dist/HttpApi/Operations/AdminSession.js +5 -0
  249. package/dist/HttpApi/Operations/AdminSession.js.map +1 -0
  250. package/dist/HttpApi/Operations/ApiKey.d.ts +16 -0
  251. package/dist/HttpApi/Operations/ApiKey.d.ts.map +1 -0
  252. package/dist/HttpApi/Operations/ApiKey.js +5 -0
  253. package/dist/HttpApi/Operations/ApiKey.js.map +1 -0
  254. package/dist/HttpApi/Operations/Discovery.d.ts +19 -0
  255. package/dist/HttpApi/Operations/Discovery.d.ts.map +1 -0
  256. package/dist/HttpApi/Operations/Discovery.js +7 -0
  257. package/dist/HttpApi/Operations/Discovery.js.map +1 -0
  258. package/dist/HttpApi/Operations/EmailAuth.d.ts +12 -0
  259. package/dist/HttpApi/Operations/EmailAuth.d.ts.map +1 -0
  260. package/dist/HttpApi/Operations/EmailAuth.js +5 -0
  261. package/dist/HttpApi/Operations/EmailAuth.js.map +1 -0
  262. package/dist/HttpApi/Operations/EmailOtp.d.ts +14 -0
  263. package/dist/HttpApi/Operations/EmailOtp.d.ts.map +1 -0
  264. package/dist/HttpApi/Operations/EmailOtp.js +5 -0
  265. package/dist/HttpApi/Operations/EmailOtp.js.map +1 -0
  266. package/dist/HttpApi/Operations/EmailVerification.d.ts +14 -0
  267. package/dist/HttpApi/Operations/EmailVerification.d.ts.map +1 -0
  268. package/dist/HttpApi/Operations/EmailVerification.js +5 -0
  269. package/dist/HttpApi/Operations/EmailVerification.js.map +1 -0
  270. package/dist/HttpApi/Operations/HttpOperation.d.ts +4 -0
  271. package/dist/HttpApi/Operations/HttpOperation.d.ts.map +1 -0
  272. package/dist/HttpApi/Operations/HttpOperation.js +2 -0
  273. package/dist/HttpApi/Operations/HttpOperation.js.map +1 -0
  274. package/dist/HttpApi/Operations/Identity.d.ts +22 -0
  275. package/dist/HttpApi/Operations/Identity.d.ts.map +1 -0
  276. package/dist/HttpApi/Operations/Identity.js +5 -0
  277. package/dist/HttpApi/Operations/Identity.js.map +1 -0
  278. package/dist/HttpApi/Operations/Jwt.d.ts +14 -0
  279. package/dist/HttpApi/Operations/Jwt.d.ts.map +1 -0
  280. package/dist/HttpApi/Operations/Jwt.js +5 -0
  281. package/dist/HttpApi/Operations/Jwt.js.map +1 -0
  282. package/dist/HttpApi/Operations/LoginApproval.d.ts +16 -0
  283. package/dist/HttpApi/Operations/LoginApproval.d.ts.map +1 -0
  284. package/dist/HttpApi/Operations/LoginApproval.js +5 -0
  285. package/dist/HttpApi/Operations/LoginApproval.js.map +1 -0
  286. package/dist/HttpApi/Operations/MagicLink.d.ts +14 -0
  287. package/dist/HttpApi/Operations/MagicLink.d.ts.map +1 -0
  288. package/dist/HttpApi/Operations/MagicLink.js +5 -0
  289. package/dist/HttpApi/Operations/MagicLink.js.map +1 -0
  290. package/dist/HttpApi/Operations/Mfa.d.ts +24 -0
  291. package/dist/HttpApi/Operations/Mfa.d.ts.map +1 -0
  292. package/dist/HttpApi/Operations/Mfa.js +5 -0
  293. package/dist/HttpApi/Operations/Mfa.js.map +1 -0
  294. package/dist/HttpApi/Operations/OAuth.d.ts +20 -0
  295. package/dist/HttpApi/Operations/OAuth.d.ts.map +1 -0
  296. package/dist/HttpApi/Operations/OAuth.js +5 -0
  297. package/dist/HttpApi/Operations/OAuth.js.map +1 -0
  298. package/dist/HttpApi/Operations/OAuthProviderAuthorization.d.ts +12 -0
  299. package/dist/HttpApi/Operations/OAuthProviderAuthorization.d.ts.map +1 -0
  300. package/dist/HttpApi/Operations/OAuthProviderAuthorization.js +5 -0
  301. package/dist/HttpApi/Operations/OAuthProviderAuthorization.js.map +1 -0
  302. package/dist/HttpApi/Operations/OAuthToken.d.ts +16 -0
  303. package/dist/HttpApi/Operations/OAuthToken.d.ts.map +1 -0
  304. package/dist/HttpApi/Operations/OAuthToken.js +5 -0
  305. package/dist/HttpApi/Operations/OAuthToken.js.map +1 -0
  306. package/dist/HttpApi/Operations/Passkey.d.ts +22 -0
  307. package/dist/HttpApi/Operations/Passkey.d.ts.map +1 -0
  308. package/dist/HttpApi/Operations/Passkey.js +5 -0
  309. package/dist/HttpApi/Operations/Passkey.js.map +1 -0
  310. package/dist/HttpApi/Operations/Password.d.ts +22 -0
  311. package/dist/HttpApi/Operations/Password.d.ts.map +1 -0
  312. package/dist/HttpApi/Operations/Password.js +5 -0
  313. package/dist/HttpApi/Operations/Password.js.map +1 -0
  314. package/dist/HttpApi/Operations/RecoveryCodes.d.ts +20 -0
  315. package/dist/HttpApi/Operations/RecoveryCodes.d.ts.map +1 -0
  316. package/dist/HttpApi/Operations/RecoveryCodes.js +5 -0
  317. package/dist/HttpApi/Operations/RecoveryCodes.js.map +1 -0
  318. package/dist/HttpApi/Operations/RefreshToken.d.ts +12 -0
  319. package/dist/HttpApi/Operations/RefreshToken.d.ts.map +1 -0
  320. package/dist/HttpApi/Operations/RefreshToken.js +5 -0
  321. package/dist/HttpApi/Operations/RefreshToken.js.map +1 -0
  322. package/dist/HttpApi/Operations/Security.d.ts +12 -0
  323. package/dist/HttpApi/Operations/Security.d.ts.map +1 -0
  324. package/dist/HttpApi/Operations/Security.js +5 -0
  325. package/dist/HttpApi/Operations/Security.js.map +1 -0
  326. package/dist/HttpApi/Operations/SecurityTimeline.d.ts +19 -0
  327. package/dist/HttpApi/Operations/SecurityTimeline.d.ts.map +1 -0
  328. package/dist/HttpApi/Operations/SecurityTimeline.js +7 -0
  329. package/dist/HttpApi/Operations/SecurityTimeline.js.map +1 -0
  330. package/dist/HttpApi/Operations/Session.d.ts +22 -0
  331. package/dist/HttpApi/Operations/Session.d.ts.map +1 -0
  332. package/dist/HttpApi/Operations/Session.js +5 -0
  333. package/dist/HttpApi/Operations/Session.js.map +1 -0
  334. package/dist/HttpApi/Operations/StepUp.d.ts +22 -0
  335. package/dist/HttpApi/Operations/StepUp.d.ts.map +1 -0
  336. package/dist/HttpApi/Operations/StepUp.js +5 -0
  337. package/dist/HttpApi/Operations/StepUp.js.map +1 -0
  338. package/dist/HttpApi/Operations/Totp.d.ts +20 -0
  339. package/dist/HttpApi/Operations/Totp.d.ts.map +1 -0
  340. package/dist/HttpApi/Operations/Totp.js +5 -0
  341. package/dist/HttpApi/Operations/Totp.js.map +1 -0
  342. package/dist/HttpApi/Operations/TrustedDevice.d.ts +23 -0
  343. package/dist/HttpApi/Operations/TrustedDevice.d.ts.map +1 -0
  344. package/dist/HttpApi/Operations/TrustedDevice.js +7 -0
  345. package/dist/HttpApi/Operations/TrustedDevice.js.map +1 -0
  346. package/dist/HttpApi/Operations/index.d.ts +27 -0
  347. package/dist/HttpApi/Operations/index.d.ts.map +1 -0
  348. package/dist/HttpApi/Operations/index.js +27 -0
  349. package/dist/HttpApi/Operations/index.js.map +1 -0
  350. package/dist/HttpApi/Passkey.d.ts +5 -0
  351. package/dist/HttpApi/Passkey.d.ts.map +1 -0
  352. package/dist/HttpApi/Passkey.js +5 -0
  353. package/dist/HttpApi/Passkey.js.map +1 -0
  354. package/dist/HttpApi/Password.d.ts +220 -0
  355. package/dist/HttpApi/Password.d.ts.map +1 -0
  356. package/dist/HttpApi/Password.js +237 -0
  357. package/dist/HttpApi/Password.js.map +1 -0
  358. package/dist/HttpApi/PasswordContract.d.ts +307 -0
  359. package/dist/HttpApi/PasswordContract.d.ts.map +1 -0
  360. package/dist/HttpApi/PasswordContract.js +63 -0
  361. package/dist/HttpApi/PasswordContract.js.map +1 -0
  362. package/dist/HttpApi/PasswordGuards.d.ts +82 -0
  363. package/dist/HttpApi/PasswordGuards.d.ts.map +1 -0
  364. package/dist/HttpApi/PasswordGuards.js +179 -0
  365. package/dist/HttpApi/PasswordGuards.js.map +1 -0
  366. package/dist/HttpApi/RecoveryCodes.d.ts +5 -0
  367. package/dist/HttpApi/RecoveryCodes.d.ts.map +1 -0
  368. package/dist/HttpApi/RecoveryCodes.js +5 -0
  369. package/dist/HttpApi/RecoveryCodes.js.map +1 -0
  370. package/dist/HttpApi/RefreshToken.d.ts +4 -0
  371. package/dist/HttpApi/RefreshToken.d.ts.map +1 -0
  372. package/dist/HttpApi/RefreshToken.js +4 -0
  373. package/dist/HttpApi/RefreshToken.js.map +1 -0
  374. package/dist/HttpApi/RequestGuards.d.ts +42 -0
  375. package/dist/HttpApi/RequestGuards.d.ts.map +1 -0
  376. package/dist/HttpApi/RequestGuards.js +194 -0
  377. package/dist/HttpApi/RequestGuards.js.map +1 -0
  378. package/dist/HttpApi/Schemas.d.ts +361 -84
  379. package/dist/HttpApi/Schemas.d.ts.map +1 -1
  380. package/dist/HttpApi/Schemas.js +190 -27
  381. package/dist/HttpApi/Schemas.js.map +1 -1
  382. package/dist/HttpApi/Security.d.ts +12 -93
  383. package/dist/HttpApi/Security.d.ts.map +1 -1
  384. package/dist/HttpApi/Security.js +65 -356
  385. package/dist/HttpApi/Security.js.map +1 -1
  386. package/dist/HttpApi/SecurityTimeline.d.ts +4 -0
  387. package/dist/HttpApi/SecurityTimeline.d.ts.map +1 -0
  388. package/dist/HttpApi/SecurityTimeline.js +4 -0
  389. package/dist/HttpApi/SecurityTimeline.js.map +1 -0
  390. package/dist/HttpApi/Session.d.ts +5 -0
  391. package/dist/HttpApi/Session.d.ts.map +1 -0
  392. package/dist/HttpApi/Session.js +5 -0
  393. package/dist/HttpApi/Session.js.map +1 -0
  394. package/dist/HttpApi/SessionGuards.d.ts +15 -0
  395. package/dist/HttpApi/SessionGuards.d.ts.map +1 -0
  396. package/dist/HttpApi/SessionGuards.js +37 -0
  397. package/dist/HttpApi/SessionGuards.js.map +1 -0
  398. package/dist/HttpApi/StepUp.d.ts +5 -0
  399. package/dist/HttpApi/StepUp.d.ts.map +1 -0
  400. package/dist/HttpApi/StepUp.js +5 -0
  401. package/dist/HttpApi/StepUp.js.map +1 -0
  402. package/dist/HttpApi/Totp.d.ts +5 -0
  403. package/dist/HttpApi/Totp.d.ts.map +1 -0
  404. package/dist/HttpApi/Totp.js +5 -0
  405. package/dist/HttpApi/Totp.js.map +1 -0
  406. package/dist/HttpApi/Transport.d.ts +4 -6
  407. package/dist/HttpApi/Transport.d.ts.map +1 -1
  408. package/dist/HttpApi/Transport.js +62 -36
  409. package/dist/HttpApi/Transport.js.map +1 -1
  410. package/dist/HttpApi/TrustedDevice.d.ts +4 -0
  411. package/dist/HttpApi/TrustedDevice.d.ts.map +1 -0
  412. package/dist/HttpApi/TrustedDevice.js +4 -0
  413. package/dist/HttpApi/TrustedDevice.js.map +1 -0
  414. package/dist/HttpApi/index.d.ts +9 -3
  415. package/dist/HttpApi/index.d.ts.map +1 -1
  416. package/dist/HttpApi/index.js +8 -2
  417. package/dist/HttpApi/index.js.map +1 -1
  418. package/dist/Identity.d.ts +138 -0
  419. package/dist/Identity.d.ts.map +1 -0
  420. package/dist/Identity.js +105 -0
  421. package/dist/Identity.js.map +1 -0
  422. package/dist/IdentityManagement.d.ts +189 -0
  423. package/dist/IdentityManagement.d.ts.map +1 -0
  424. package/dist/IdentityManagement.js +317 -0
  425. package/dist/IdentityManagement.js.map +1 -0
  426. package/dist/IncidentAction.d.ts +1 -4
  427. package/dist/IncidentAction.d.ts.map +1 -1
  428. package/dist/IncidentAction.js +15 -9
  429. package/dist/IncidentAction.js.map +1 -1
  430. package/dist/Internal.d.ts +2 -0
  431. package/dist/Internal.d.ts.map +1 -1
  432. package/dist/Internal.js +30 -0
  433. package/dist/Internal.js.map +1 -1
  434. package/dist/Invitation.d.ts +362 -0
  435. package/dist/Invitation.d.ts.map +1 -0
  436. package/dist/Invitation.js +633 -0
  437. package/dist/Invitation.js.map +1 -0
  438. package/dist/IpQualityScore.d.ts +38 -0
  439. package/dist/IpQualityScore.d.ts.map +1 -0
  440. package/dist/IpQualityScore.js +215 -0
  441. package/dist/IpQualityScore.js.map +1 -0
  442. package/dist/Jwt.d.ts +9 -30
  443. package/dist/Jwt.d.ts.map +1 -1
  444. package/dist/Jwt.js +72 -60
  445. package/dist/Jwt.js.map +1 -1
  446. package/dist/LoginApproval.d.ts +16 -31
  447. package/dist/LoginApproval.d.ts.map +1 -1
  448. package/dist/LoginApproval.js +47 -41
  449. package/dist/LoginApproval.js.map +1 -1
  450. package/dist/LoginNotification.d.ts +8 -12
  451. package/dist/LoginNotification.d.ts.map +1 -1
  452. package/dist/LoginNotification.js +30 -17
  453. package/dist/LoginNotification.js.map +1 -1
  454. package/dist/LoginRisk.d.ts +11 -13
  455. package/dist/LoginRisk.d.ts.map +1 -1
  456. package/dist/LoginRisk.js +66 -26
  457. package/dist/LoginRisk.js.map +1 -1
  458. package/dist/LoginRiskEnrichment.d.ts +145 -0
  459. package/dist/LoginRiskEnrichment.d.ts.map +1 -0
  460. package/dist/LoginRiskEnrichment.js +220 -0
  461. package/dist/LoginRiskEnrichment.js.map +1 -0
  462. package/dist/MachineAuth.d.ts.map +1 -1
  463. package/dist/MachineAuth.js.map +1 -1
  464. package/dist/MagicLink.d.ts +9 -8
  465. package/dist/MagicLink.d.ts.map +1 -1
  466. package/dist/MagicLink.js +40 -73
  467. package/dist/MagicLink.js.map +1 -1
  468. package/dist/Mailer.d.ts +20 -13
  469. package/dist/Mailer.d.ts.map +1 -1
  470. package/dist/Mailer.js +10 -12
  471. package/dist/Mailer.js.map +1 -1
  472. package/dist/OAuth.d.ts +100 -103
  473. package/dist/OAuth.d.ts.map +1 -1
  474. package/dist/OAuth.js +404 -217
  475. package/dist/OAuth.js.map +1 -1
  476. package/dist/Passkey.d.ts +17 -19
  477. package/dist/Passkey.d.ts.map +1 -1
  478. package/dist/Passkey.js +86 -39
  479. package/dist/Passkey.js.map +1 -1
  480. package/dist/PasskeyBrowser.d.ts +39 -0
  481. package/dist/PasskeyBrowser.d.ts.map +1 -0
  482. package/dist/PasskeyBrowser.js +206 -0
  483. package/dist/PasskeyBrowser.js.map +1 -0
  484. package/dist/PasskeySimpleWebAuthn.d.ts.map +1 -1
  485. package/dist/PasskeySimpleWebAuthn.js +19 -7
  486. package/dist/PasskeySimpleWebAuthn.js.map +1 -1
  487. package/dist/Password.d.ts +71 -37
  488. package/dist/Password.d.ts.map +1 -1
  489. package/dist/Password.js +296 -82
  490. package/dist/Password.js.map +1 -1
  491. package/dist/PasswordRisk.d.ts +63 -0
  492. package/dist/PasswordRisk.d.ts.map +1 -0
  493. package/dist/PasswordRisk.js +37 -0
  494. package/dist/PasswordRisk.js.map +1 -0
  495. package/dist/Permission.d.ts +308 -0
  496. package/dist/Permission.d.ts.map +1 -0
  497. package/dist/Permission.js +827 -0
  498. package/dist/Permission.js.map +1 -0
  499. package/dist/Policy.d.ts +31 -18
  500. package/dist/Policy.d.ts.map +1 -1
  501. package/dist/Policy.js +58 -14
  502. package/dist/Policy.js.map +1 -1
  503. package/dist/PostgresDelegatedAccessStorageMigrations.d.ts +7 -0
  504. package/dist/PostgresDelegatedAccessStorageMigrations.d.ts.map +1 -0
  505. package/dist/PostgresDelegatedAccessStorageMigrations.js +119 -0
  506. package/dist/PostgresDelegatedAccessStorageMigrations.js.map +1 -0
  507. package/dist/PostgresStorageMigrations.d.ts +15 -0
  508. package/dist/PostgresStorageMigrations.d.ts.map +1 -0
  509. package/dist/PostgresStorageMigrations.js +620 -0
  510. package/dist/PostgresStorageMigrations.js.map +1 -0
  511. package/dist/Privacy.d.ts +0 -3
  512. package/dist/Privacy.d.ts.map +1 -1
  513. package/dist/Privacy.js +2 -5
  514. package/dist/Privacy.js.map +1 -1
  515. package/dist/RateLimiter.d.ts +0 -3
  516. package/dist/RateLimiter.d.ts.map +1 -1
  517. package/dist/RateLimiter.js +1 -4
  518. package/dist/RateLimiter.js.map +1 -1
  519. package/dist/RecoveryCode.d.ts +84 -12
  520. package/dist/RecoveryCode.d.ts.map +1 -1
  521. package/dist/RecoveryCode.js +273 -75
  522. package/dist/RecoveryCode.js.map +1 -1
  523. package/dist/RecoveryPolicy.d.ts +81 -0
  524. package/dist/RecoveryPolicy.d.ts.map +1 -0
  525. package/dist/RecoveryPolicy.js +119 -0
  526. package/dist/RecoveryPolicy.js.map +1 -0
  527. package/dist/RefreshToken.d.ts +1 -10
  528. package/dist/RefreshToken.d.ts.map +1 -1
  529. package/dist/RefreshToken.js +31 -22
  530. package/dist/RefreshToken.js.map +1 -1
  531. package/dist/Retention.d.ts.map +1 -1
  532. package/dist/Retention.js.map +1 -1
  533. package/dist/SecurityTimeline.d.ts +1 -4
  534. package/dist/SecurityTimeline.d.ts.map +1 -1
  535. package/dist/SecurityTimeline.js +110 -17
  536. package/dist/SecurityTimeline.js.map +1 -1
  537. package/dist/Sessions.d.ts +124 -29
  538. package/dist/Sessions.d.ts.map +1 -1
  539. package/dist/Sessions.js +626 -94
  540. package/dist/Sessions.js.map +1 -1
  541. package/dist/StepUp.d.ts +132 -11
  542. package/dist/StepUp.d.ts.map +1 -1
  543. package/dist/StepUp.js +387 -19
  544. package/dist/StepUp.js.map +1 -1
  545. package/dist/Storage.d.ts +89 -23
  546. package/dist/Storage.d.ts.map +1 -1
  547. package/dist/Storage.js +10 -12
  548. package/dist/Storage.js.map +1 -1
  549. package/dist/StorageMigrations.d.ts +6 -1
  550. package/dist/StorageMigrations.d.ts.map +1 -1
  551. package/dist/StorageMigrations.js +224 -0
  552. package/dist/StorageMigrations.js.map +1 -1
  553. package/dist/StorageSchemaGenerator.d.ts +486 -0
  554. package/dist/StorageSchemaGenerator.d.ts.map +1 -0
  555. package/dist/StorageSchemaGenerator.js +1022 -0
  556. package/dist/StorageSchemaGenerator.js.map +1 -0
  557. package/dist/StrongFactor.d.ts +64 -0
  558. package/dist/StrongFactor.d.ts.map +1 -0
  559. package/dist/StrongFactor.js +100 -0
  560. package/dist/StrongFactor.js.map +1 -0
  561. package/dist/Testing.d.ts +1 -1
  562. package/dist/Testing.js +2 -2
  563. package/dist/Testing.js.map +1 -1
  564. package/dist/Totp.d.ts +88 -13
  565. package/dist/Totp.d.ts.map +1 -1
  566. package/dist/Totp.js +194 -36
  567. package/dist/Totp.js.map +1 -1
  568. package/dist/TrustedDevice.d.ts +0 -9
  569. package/dist/TrustedDevice.d.ts.map +1 -1
  570. package/dist/TrustedDevice.js +15 -17
  571. package/dist/TrustedDevice.js.map +1 -1
  572. package/dist/WaitUntil.d.ts +0 -3
  573. package/dist/WaitUntil.d.ts.map +1 -1
  574. package/dist/WaitUntil.js +1 -4
  575. package/dist/WaitUntil.js.map +1 -1
  576. package/dist/Webhook.d.ts +42 -12
  577. package/dist/Webhook.d.ts.map +1 -1
  578. package/dist/Webhook.js +165 -26
  579. package/dist/Webhook.js.map +1 -1
  580. package/dist/alchemy/cloudflare/Email.d.ts +4 -4
  581. package/dist/alchemy/cloudflare/Email.d.ts.map +1 -1
  582. package/dist/alchemy/cloudflare/Email.js +10 -5
  583. package/dist/alchemy/cloudflare/Email.js.map +1 -1
  584. package/dist/alchemy/cloudflare/RateLimitDurableObject.d.ts +4 -4
  585. package/dist/alchemy/cloudflare/RateLimitDurableObject.d.ts.map +1 -1
  586. package/dist/alchemy/cloudflare/RateLimitDurableObject.js +5 -4
  587. package/dist/alchemy/cloudflare/RateLimitDurableObject.js.map +1 -1
  588. package/dist/cloudflare/Email.d.ts.map +1 -1
  589. package/dist/cloudflare/Email.js +1 -1
  590. package/dist/cloudflare/Email.js.map +1 -1
  591. package/dist/cloudflare/RateLimitDurableObject.d.ts +6 -5
  592. package/dist/cloudflare/RateLimitDurableObject.d.ts.map +1 -1
  593. package/dist/cloudflare/RateLimitDurableObject.js.map +1 -1
  594. package/dist/cloudflare/RequestMetadata.d.ts +49 -0
  595. package/dist/cloudflare/RequestMetadata.d.ts.map +1 -0
  596. package/dist/cloudflare/RequestMetadata.js +71 -0
  597. package/dist/cloudflare/RequestMetadata.js.map +1 -0
  598. package/dist/index.d.ts +0 -35
  599. package/dist/index.d.ts.map +1 -1
  600. package/dist/index.js +0 -35
  601. package/dist/index.js.map +1 -1
  602. package/dist/internal/AuthFlowFinalizer.d.ts +31 -0
  603. package/dist/internal/AuthFlowFinalizer.d.ts.map +1 -0
  604. package/dist/internal/AuthFlowFinalizer.js +182 -0
  605. package/dist/internal/AuthFlowFinalizer.js.map +1 -0
  606. package/dist/internal/RateLimitDurableObject.d.ts.map +1 -1
  607. package/dist/internal/RateLimitDurableObject.js +3 -0
  608. package/dist/internal/RateLimitDurableObject.js.map +1 -1
  609. package/migrations/0001_auth_storage.sql +1 -0
  610. package/migrations/0006_auth_totp_factor.sql +1 -0
  611. package/migrations/0024_auth_permission.sql +39 -0
  612. package/migrations/0025_auth_permission_definition.sql +19 -0
  613. package/migrations/0026_auth_user_identity.sql +59 -0
  614. package/migrations/0027_auth_audit_log_storage_order.sql +46 -0
  615. package/migrations/0028_auth_oauth_client_secret_key.sql +39 -0
  616. package/migrations/delegated-access/0001_auth_delegated_access.sql +152 -0
  617. package/migrations/postgres/0001_auth_core.sql +77 -0
  618. package/migrations/postgres/0002_auth_security_oauth.sql +65 -0
  619. package/migrations/postgres/0003_auth_credentials_tokens.sql +43 -0
  620. package/migrations/postgres/0004_auth_security_history.sql +103 -0
  621. package/migrations/postgres/0005_auth_webhooks.sql +29 -0
  622. package/migrations/postgres/0006_auth_domain_timeline.sql +50 -0
  623. package/migrations/postgres/0007_auth_oauth_clients.sql +85 -0
  624. package/migrations/postgres/0008_auth_oauth_tokens.sql +63 -0
  625. package/migrations/postgres/0009_auth_permissions.sql +66 -0
  626. package/migrations/postgres/delegated-access/0001_auth_delegated_access.sql +112 -0
  627. package/package.json +309 -2
@@ -0,0 +1,179 @@
1
+ import { Effect, Option, Redacted } from "effect";
2
+ import { HttpServerRequest } from "effect/unstable/http";
3
+ import { BotProtection } from "../AbuseProtection.js";
4
+ import { AuthRateLimit } from "../AuthRateLimit.js";
5
+ import { LoginRiskEnricher } from "../LoginRiskEnrichment.js";
6
+ import { TrustedDeviceCookie } from "../TrustedDevice.js";
7
+ import { AuthInternalError, AuthRateLimitedError, AuthRequestRejectedError, } from "./Errors.js";
8
+ import { authRequestMetadataOptions, loginRequestContextFromRequest, requireRequestSecurity, } from "./RequestGuards.js";
9
+ import { PasswordResetStartBody, PasswordResetVerifyBody, PasswordSignInBody, PasswordSignUpBody, } from "./Schemas.js";
10
+ const passwordPolicy = () => ({
11
+ rateLimit: AuthRateLimit.defaults(),
12
+ botProtection: BotProtection.skip(),
13
+ });
14
+ const withPolicy = (defaults, override) => ({ ...defaults, ...override });
15
+ const enrichRisk = (input, enricher) => Effect.gen(function* () {
16
+ if (enricher === undefined) {
17
+ return input.request === undefined ? {} : { request: input.request };
18
+ }
19
+ const enriched = yield* enricher
20
+ .enrich({
21
+ ...(input.request === undefined ? {} : { request: input.request }),
22
+ ...(input.deviceFingerprint === undefined
23
+ ? {}
24
+ : { deviceFingerprint: input.deviceFingerprint }),
25
+ })
26
+ .pipe(Effect.mapError(() => new AuthInternalError({
27
+ code: "internal_error",
28
+ message: "Failed to enrich login risk context",
29
+ })));
30
+ const request = enriched.request ?? input.request;
31
+ return {
32
+ ...(request === undefined ? {} : { request }),
33
+ ...(enriched.deviceKey === undefined
34
+ ? {}
35
+ : { deviceKey: enriched.deviceKey }),
36
+ ...(enriched.locationKey === undefined
37
+ ? {}
38
+ : { locationKey: enriched.locationKey }),
39
+ };
40
+ });
41
+ export const passwordSignInInput = (payload, trustedDeviceToken, riskContext) => {
42
+ const { deviceFingerprint: _deviceFingerprint, botChallenge: _botChallenge, ...input } = payload;
43
+ return {
44
+ ...input,
45
+ password: Redacted.make(payload.password),
46
+ ...(trustedDeviceToken === undefined ? {} : { trustedDeviceToken }),
47
+ ...(riskContext?.request === undefined
48
+ ? {}
49
+ : { request: riskContext.request }),
50
+ ...(riskContext?.deviceKey === undefined
51
+ ? {}
52
+ : { deviceKey: riskContext.deviceKey }),
53
+ ...(riskContext?.locationKey === undefined
54
+ ? {}
55
+ : { locationKey: riskContext.locationKey }),
56
+ };
57
+ };
58
+ export const passwordSignUpInput = (payload, riskContext) => {
59
+ const { deviceFingerprint: _deviceFingerprint, botChallenge: _botChallenge, ...input } = payload;
60
+ return {
61
+ ...input,
62
+ password: Redacted.make(payload.password),
63
+ ...(riskContext?.request === undefined
64
+ ? {}
65
+ : { request: riskContext.request }),
66
+ ...(riskContext?.deviceKey === undefined
67
+ ? {}
68
+ : { deviceKey: riskContext.deviceKey }),
69
+ ...(riskContext?.locationKey === undefined
70
+ ? {}
71
+ : { locationKey: riskContext.locationKey }),
72
+ };
73
+ };
74
+ export const passwordResetStartInput = (payload) => {
75
+ const { secret, botChallenge: _botChallenge, ...input } = payload;
76
+ return {
77
+ ...input,
78
+ ...(secret === undefined ? {} : { secret: Redacted.make(secret) }),
79
+ };
80
+ };
81
+ export const passwordResetVerifyInput = (payload) => ({
82
+ challengeId: payload.challengeId,
83
+ secret: Redacted.make(payload.secret),
84
+ password: Redacted.make(payload.password),
85
+ });
86
+ const makePasswordSignInGuard = (policy) => Effect.fn("auth.guard.password_sign_in")(function* (request) {
87
+ yield* requireRequestSecurity({
88
+ rateLimit: "auth.password.sign_in",
89
+ botProtection: "sign-in",
90
+ server: "auth.password.sign_in",
91
+ }, policy, request);
92
+ const cookie = yield* Effect.serviceOption(TrustedDeviceCookie);
93
+ const trustedDeviceToken = Option.isNone(cookie) || request.request === undefined
94
+ ? Option.none()
95
+ : yield* cookie.value
96
+ .read(new Request("http://localhost", {
97
+ headers: request.request.headers,
98
+ }))
99
+ .pipe(Effect.mapError(() => new AuthInternalError({
100
+ code: "internal_error",
101
+ message: "Failed to read trusted device cookie",
102
+ })));
103
+ const options = yield* authRequestMetadataOptions;
104
+ const context = loginRequestContextFromRequest(request.request, options);
105
+ const enricher = yield* Effect.serviceOption(LoginRiskEnricher);
106
+ const risk = yield* enrichRisk({
107
+ ...(context === undefined ? {} : { request: context }),
108
+ ...(request.payload.deviceFingerprint === undefined
109
+ ? {}
110
+ : { deviceFingerprint: request.payload.deviceFingerprint }),
111
+ }, Option.isSome(enricher) ? enricher.value : undefined);
112
+ return {
113
+ input: passwordSignInInput(request.payload, Option.isSome(trustedDeviceToken)
114
+ ? trustedDeviceToken.value
115
+ : undefined, risk),
116
+ };
117
+ });
118
+ const makePasswordSignUpGuard = (policy) => Effect.fn("auth.guard.password_sign_up")(function* (request) {
119
+ yield* requireRequestSecurity({
120
+ rateLimit: "auth.password.sign_up",
121
+ botProtection: "sign-up",
122
+ server: "auth.password.sign_up",
123
+ }, policy, request);
124
+ const options = yield* authRequestMetadataOptions;
125
+ const context = loginRequestContextFromRequest(request.request, options);
126
+ const enricher = yield* Effect.serviceOption(LoginRiskEnricher);
127
+ const risk = yield* enrichRisk({
128
+ ...(context === undefined ? {} : { request: context }),
129
+ ...(request.payload.deviceFingerprint === undefined
130
+ ? {}
131
+ : { deviceFingerprint: request.payload.deviceFingerprint }),
132
+ }, Option.isSome(enricher) ? enricher.value : undefined);
133
+ return {
134
+ input: passwordSignUpInput(request.payload, risk),
135
+ };
136
+ });
137
+ const makePasswordResetStartGuard = (policy) => Effect.fn("auth.guard.password_reset_start")(function* (request) {
138
+ yield* requireRequestSecurity({
139
+ rateLimit: "auth.password.reset_start",
140
+ botProtection: "password-reset-start",
141
+ server: "auth.password.reset_start",
142
+ }, policy, request);
143
+ return {
144
+ input: passwordResetStartInput(request.payload),
145
+ };
146
+ });
147
+ const makePasswordResetVerifyGuard = (policy) => Effect.fn("auth.guard.password_reset_verify")(function* (request) {
148
+ yield* requireRequestSecurity({
149
+ rateLimit: "auth.password.reset_verify",
150
+ botProtection: "password-reset-verify",
151
+ server: "auth.password.reset_verify",
152
+ }, policy, request);
153
+ return {
154
+ input: passwordResetVerifyInput(request.payload),
155
+ };
156
+ });
157
+ const signInDefaults = passwordPolicy();
158
+ const signUpDefaults = passwordPolicy();
159
+ const resetStartDefaults = passwordPolicy();
160
+ const resetVerifyDefaults = passwordPolicy();
161
+ const signIn = Object.assign(makePasswordSignInGuard(signInDefaults), {
162
+ withPolicy: (policy) => makePasswordSignInGuard(withPolicy(signInDefaults, policy)),
163
+ });
164
+ const signUp = Object.assign(makePasswordSignUpGuard(signUpDefaults), {
165
+ withPolicy: (policy) => makePasswordSignUpGuard(withPolicy(signUpDefaults, policy)),
166
+ });
167
+ const resetStart = Object.assign(makePasswordResetStartGuard(resetStartDefaults), {
168
+ withPolicy: (policy) => makePasswordResetStartGuard(withPolicy(resetStartDefaults, policy)),
169
+ });
170
+ const resetVerify = Object.assign(makePasswordResetVerifyGuard(resetVerifyDefaults), {
171
+ withPolicy: (policy) => makePasswordResetVerifyGuard(withPolicy(resetVerifyDefaults, policy)),
172
+ });
173
+ export const PasswordGuards = {
174
+ signIn,
175
+ signUp,
176
+ resetStart,
177
+ resetVerify,
178
+ };
179
+ //# sourceMappingURL=PasswordGuards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PasswordGuards.js","sourceRoot":"","sources":["../../src/HttpApi/PasswordGuards.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export { recoveryCodeGenerateInput, type RecoveryCodeGenerateHttpOptions, RecoveryCodeHttpConfig, RecoveryCodeHttpConfigLive, recoveryCodeRegenerateInput, recoveryCodeRevokeInput, RecoveryCodesHttpApi, RecoveryCodesHttpApiGroupLive, RecoveryCodesHttpApiLive, RecoveryCodesHttpOperationsLive, recoveryCodeVerifyInput, } from "./Api.js";
2
+ export { RecoveryCodesHttpApiGroup } from "./ClientApi.js";
3
+ export { recoveryCodeGenerateEndpoint, recoveryCodeListEndpoint, recoveryCodeRegenerateEndpoint, recoveryCodeRevokeEndpoint, recoveryCodeVerifyEndpoint, } from "./Endpoints.js";
4
+ export * from "./Operations/RecoveryCodes.js";
5
+ //# sourceMappingURL=RecoveryCodes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RecoveryCodes.d.ts","sourceRoot":"","sources":["../../src/HttpApi/RecoveryCodes.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EACzB,KAAK,+BAA+B,EACpC,sBAAsB,EACtB,0BAA0B,EAC1B,2BAA2B,EAC3B,uBAAuB,EACvB,oBAAoB,EACpB,6BAA6B,EAC7B,wBAAwB,EACxB,+BAA+B,EAC/B,uBAAuB,GACxB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EACxB,8BAA8B,EAC9B,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,gBAAgB,CAAC;AACxB,cAAc,+BAA+B,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { recoveryCodeGenerateInput, RecoveryCodeHttpConfig, RecoveryCodeHttpConfigLive, recoveryCodeRegenerateInput, recoveryCodeRevokeInput, RecoveryCodesHttpApi, RecoveryCodesHttpApiGroupLive, RecoveryCodesHttpApiLive, RecoveryCodesHttpOperationsLive, recoveryCodeVerifyInput, } from "./Api.js";
2
+ export { RecoveryCodesHttpApiGroup } from "./ClientApi.js";
3
+ export { recoveryCodeGenerateEndpoint, recoveryCodeListEndpoint, recoveryCodeRegenerateEndpoint, recoveryCodeRevokeEndpoint, recoveryCodeVerifyEndpoint, } from "./Endpoints.js";
4
+ export * from "./Operations/RecoveryCodes.js";
5
+ //# sourceMappingURL=RecoveryCodes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RecoveryCodes.js","sourceRoot":"","sources":["../../src/HttpApi/RecoveryCodes.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,yBAAyB,EAEzB,sBAAsB,EACtB,0BAA0B,EAC1B,2BAA2B,EAC3B,uBAAuB,EACvB,oBAAoB,EACpB,6BAA6B,EAC7B,wBAAwB,EACxB,+BAA+B,EAC/B,uBAAuB,GACxB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EACL,4BAA4B,EAC5B,wBAAwB,EACxB,8BAA8B,EAC9B,0BAA0B,EAC1B,0BAA0B,GAC3B,MAAM,gBAAgB,CAAC;AACxB,cAAc,+BAA+B,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { type RefreshTokenAccessTokenHttpInput, RefreshTokenHttpApi, RefreshTokenHttpApiGroup, RefreshTokenHttpApiGroupLive, RefreshTokenHttpApiLive, RefreshTokenHttpConfig, RefreshTokenHttpConfigLive, RefreshTokenHttpOperationsLive, type RefreshTokenRefreshHttpOptions, type RefreshTokenRefreshHttpPolicyInput, refreshTokenRefreshInput, } from "./Api.js";
2
+ export { refreshTokenRefreshEndpoint } from "./Endpoints.js";
3
+ export * from "./Operations/RefreshToken.js";
4
+ //# sourceMappingURL=RefreshToken.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RefreshToken.d.ts","sourceRoot":"","sources":["../../src/HttpApi/RefreshToken.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,gCAAgC,EACrC,mBAAmB,EACnB,wBAAwB,EACxB,4BAA4B,EAC5B,uBAAuB,EACvB,sBAAsB,EACtB,0BAA0B,EAC1B,8BAA8B,EAC9B,KAAK,8BAA8B,EACnC,KAAK,kCAAkC,EACvC,wBAAwB,GACzB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAC7D,cAAc,8BAA8B,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { RefreshTokenHttpApi, RefreshTokenHttpApiGroup, RefreshTokenHttpApiGroupLive, RefreshTokenHttpApiLive, RefreshTokenHttpConfig, RefreshTokenHttpConfigLive, RefreshTokenHttpOperationsLive, refreshTokenRefreshInput, } from "./Api.js";
2
+ export { refreshTokenRefreshEndpoint } from "./Endpoints.js";
3
+ export * from "./Operations/RefreshToken.js";
4
+ //# sourceMappingURL=RefreshToken.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RefreshToken.js","sourceRoot":"","sources":["../../src/HttpApi/RefreshToken.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,mBAAmB,EACnB,wBAAwB,EACxB,4BAA4B,EAC5B,uBAAuB,EACvB,sBAAsB,EACtB,0BAA0B,EAC1B,8BAA8B,EAG9B,wBAAwB,GACzB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAC7D,cAAc,8BAA8B,CAAC"}
@@ -0,0 +1,42 @@
1
+ import { Effect } from "effect";
2
+ import { HttpServerRequest } from "effect/unstable/http";
3
+ import type { BotProtectionDecision, BotProtectionOperation, BotProtectionService } from "../AbuseProtection.js";
4
+ import { AuthRateLimit } from "../AuthRateLimit.js";
5
+ import type { AuthRateLimitOperation, AuthRateLimitPolicy } from "../AuthRateLimit.js";
6
+ import type { UserId } from "../Identifiers.js";
7
+ import type { LoginRequestContext } from "../LoginRisk.js";
8
+ import { AuthInternalError, AuthRequestRejectedError } from "./Errors.js";
9
+ import type { AuthRequestMetadataOptions } from "./Security.js";
10
+ export interface AuthRateLimitGuardRequest {
11
+ readonly request?: HttpServerRequest.HttpServerRequest;
12
+ readonly payload?: unknown;
13
+ }
14
+ export interface RequestSecurityPolicy {
15
+ readonly rateLimit: AuthRateLimitPolicy;
16
+ readonly botProtection: BotProtectionDecision;
17
+ }
18
+ export type RequestSecurityPolicyOverride = Partial<RequestSecurityPolicy>;
19
+ export declare const RequestSecurity: {
20
+ readonly noop: () => RequestSecurityPolicy;
21
+ };
22
+ export interface BotProtectedGuardRequest {
23
+ readonly request?: HttpServerRequest.HttpServerRequest;
24
+ readonly payload: {
25
+ readonly botChallenge?: {
26
+ readonly token: string;
27
+ };
28
+ };
29
+ }
30
+ export declare const authRequestMetadataOptions: Effect.Effect<AuthRequestMetadataOptions, never, never>;
31
+ export declare const loginRequestContextFromRequest: (request: HttpServerRequest.HttpServerRequest | undefined, options: AuthRequestMetadataOptions) => LoginRequestContext | undefined;
32
+ export declare const requireAuthRateLimit: (operation: AuthRateLimitOperation, input: AuthRateLimitGuardRequest, userId?: UserId) => Effect.Effect<void, AuthInternalError | import("./Errors.js").AuthRateLimitedError, AuthRateLimit>;
33
+ export declare const requireRequestSecurity: (operations: {
34
+ readonly rateLimit: AuthRateLimitOperation;
35
+ readonly botProtection: BotProtectionOperation;
36
+ readonly server: string;
37
+ }, policy: RequestSecurityPolicy, input: BotProtectedGuardRequest, subject?: {
38
+ readonly userId?: UserId;
39
+ }) => Effect.Effect<undefined, AuthInternalError | import("./Errors.js").AuthRateLimitedError | AuthRequestRejectedError, AuthRateLimit>;
40
+ export declare const resolveHttpBotProtection: Effect.Effect<BotProtectionService | undefined, never, never>;
41
+ export declare const requireBotProtection: (botProtection: BotProtectionService | undefined, operation: BotProtectionOperation, serverOperation: string, input: BotProtectedGuardRequest) => Effect.Effect<void, AuthInternalError | AuthRequestRejectedError, never>;
42
+ //# sourceMappingURL=RequestGuards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RequestGuards.d.ts","sourceRoot":"","sources":["../../src/HttpApi/RequestGuards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAoB,MAAM,QAAQ,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AASzD,OAAO,KAAK,EACV,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EACV,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAS,MAAM,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAM1E,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAEhE,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,OAAO,CAAC,EAAE,iBAAiB,CAAC,iBAAiB,CAAC;IACvD,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,SAAS,EAAE,mBAAmB,CAAC;IACxC,QAAQ,CAAC,aAAa,EAAE,qBAAqB,CAAC;CAC/C;AAED,MAAM,MAAM,6BAA6B,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAE3E,eAAO,MAAM,eAAe;aAC1B,IAAI,QAAM,qBAAqB;CAIvB,CAAC;AAEX,MAAM,WAAW,wBAAwB;IACvC,QAAQ,CAAC,OAAO,CAAC,EAAE,iBAAiB,CAAC,iBAAiB,CAAC;IACvD,QAAQ,CAAC,OAAO,EAAE;QAAE,QAAQ,CAAC,YAAY,CAAC,EAAE;YAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;CAC1E;AAcD,eAAO,MAAM,0BAA0B,yDAIrC,CAAC;AAEH,eAAO,MAAM,8BAA8B,YAChC,iBAAiB,CAAC,iBAAiB,GAAG,SAAS,WAC/C,0BAA0B,KAClC,mBAAmB,GAAG,SAqCxB,CAAC;AAsBF,eAAO,MAAM,oBAAoB,cACpB,sBAAsB,SAC1B,yBAAyB,WACvB,MAAM,uGAkBY,CAAC;AAE9B,eAAO,MAAM,sBAAsB,eACrB;IACV,QAAQ,CAAC,SAAS,EAAE,sBAAsB,CAAC;IAC3C,QAAQ,CAAC,aAAa,EAAE,sBAAsB,CAAC;IAC/C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB,UACO,qBAAqB,SACtB,wBAAwB,YACrB;IAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,uIAsErC,CAAC;AAEJ,eAAO,MAAM,wBAAwB,+DAwBnC,CAAC;AAEH,eAAO,MAAM,oBAAoB,kBAChB,oBAAoB,GAAG,SAAS,aACpC,sBAAsB,mBAChB,MAAM,SAChB,wBAAwB,6EAgD9B,CAAC"}
@@ -0,0 +1,194 @@
1
+ import { Effect, Option, Redacted } from "effect";
2
+ import { HttpServerRequest } from "effect/unstable/http";
3
+ import { AbuseProtectionConfigError, BotChallengeVerifier, BotProtection, BotProtectionPolicy, makeBotProtection, } from "../AbuseProtection.js";
4
+ import { AuthRateLimit } from "../AuthRateLimit.js";
5
+ import { AuthInternalError, AuthRequestRejectedError } from "./Errors.js";
6
+ import { AuthHttpApiConfig, mapAuthGuardErrors, makeAuthRequestMetadata, } from "./Security.js";
7
+ export const RequestSecurity = {
8
+ noop: () => ({
9
+ rateLimit: AuthRateLimit.skip(),
10
+ botProtection: BotProtection.skip(),
11
+ }),
12
+ };
13
+ const firstHeaderValue = (value) => {
14
+ const first = value?.split(",", 1)[0]?.trim();
15
+ return first === "" ? undefined : first;
16
+ };
17
+ const headerNumber = (value) => {
18
+ const parsed = Number(firstHeaderValue(value));
19
+ return Number.isFinite(parsed) ? parsed : undefined;
20
+ };
21
+ export const authRequestMetadataOptions = Effect.gen(function* () {
22
+ const config = yield* Effect.serviceOption(AuthHttpApiConfig);
23
+ return Option.isSome(config) ? (config.value.requestMetadata ?? {}) : {};
24
+ });
25
+ export const loginRequestContextFromRequest = (request, options) => {
26
+ if (request === undefined) {
27
+ return undefined;
28
+ }
29
+ const metadata = makeAuthRequestMetadata(request, options);
30
+ const trustProxyHeaders = options.trustProxyHeaders ?? false;
31
+ const { headers } = request;
32
+ const country = trustProxyHeaders
33
+ ? firstHeaderValue(headers["cf-ipcountry"])
34
+ : undefined;
35
+ const region = trustProxyHeaders
36
+ ? firstHeaderValue(headers["cf-region"])
37
+ : undefined;
38
+ const city = trustProxyHeaders
39
+ ? firstHeaderValue(headers["cf-ipcity"])
40
+ : undefined;
41
+ const latitude = trustProxyHeaders
42
+ ? headerNumber(headers["cf-iplatitude"])
43
+ : undefined;
44
+ const longitude = trustProxyHeaders
45
+ ? headerNumber(headers["cf-iplongitude"])
46
+ : undefined;
47
+ const context = {
48
+ ...(metadata.ipAddress === undefined
49
+ ? {}
50
+ : { ip: String(metadata.ipAddress) }),
51
+ ...(metadata.userAgent === undefined
52
+ ? {}
53
+ : { userAgent: metadata.userAgent }),
54
+ ...(country === undefined ? {} : { country }),
55
+ ...(region === undefined ? {} : { region }),
56
+ ...(city === undefined ? {} : { city }),
57
+ ...(latitude === undefined ? {} : { latitude }),
58
+ ...(longitude === undefined ? {} : { longitude }),
59
+ };
60
+ return Object.keys(context).length === 0 ? undefined : context;
61
+ };
62
+ const payloadEmail = (payload) => {
63
+ if (typeof payload !== "object" ||
64
+ payload === null ||
65
+ !("identity" in payload) ||
66
+ typeof payload.identity !== "object" ||
67
+ payload.identity === null) {
68
+ return undefined;
69
+ }
70
+ const identity = payload.identity;
71
+ return identity.kind === "email" && typeof identity.value === "string"
72
+ ? identity.value
73
+ : undefined;
74
+ };
75
+ export const requireAuthRateLimit = (operation, input, userId) => Effect.gen(function* () {
76
+ const options = yield* authRequestMetadataOptions;
77
+ const metadata = input.request === undefined
78
+ ? undefined
79
+ : makeAuthRequestMetadata(input.request, options);
80
+ const email = payloadEmail(input.payload);
81
+ yield* AuthRateLimit.require({
82
+ operation,
83
+ ...(metadata?.ipAddress === undefined
84
+ ? {}
85
+ : { ipAddress: metadata.ipAddress }),
86
+ ...(email === undefined ? {} : { email }),
87
+ ...(userId === undefined ? {} : { userId }),
88
+ });
89
+ }).pipe(mapAuthGuardErrors);
90
+ export const requireRequestSecurity = (operations, policy, input, subject) => Effect.gen(function* () {
91
+ const options = yield* authRequestMetadataOptions;
92
+ const metadata = input.request === undefined
93
+ ? undefined
94
+ : makeAuthRequestMetadata(input.request, options);
95
+ const email = payloadEmail(input.payload);
96
+ if (policy.rateLimit.type !== "Skip") {
97
+ yield* AuthRateLimit.requirePolicy(policy.rateLimit, {
98
+ operation: operations.rateLimit,
99
+ ...(metadata?.ipAddress === undefined
100
+ ? {}
101
+ : { ipAddress: metadata.ipAddress }),
102
+ ...(email === undefined ? {} : { email }),
103
+ ...(subject?.userId === undefined ? {} : { userId: subject.userId }),
104
+ });
105
+ }
106
+ if (policy.botProtection.type === "Skip") {
107
+ return;
108
+ }
109
+ const verifier = yield* Effect.serviceOption(BotChallengeVerifier);
110
+ if (Option.isNone(verifier)) {
111
+ return yield* new AbuseProtectionConfigError({
112
+ message: "Bot protection verifier is not configured",
113
+ });
114
+ }
115
+ const botProtection = makeBotProtection({
116
+ policy: BotProtectionPolicy.of({
117
+ decide: () => Effect.succeed(policy.botProtection),
118
+ }),
119
+ verifier: verifier.value,
120
+ });
121
+ yield* botProtection.enforce({
122
+ operation: operations.botProtection,
123
+ request: {
124
+ ...(metadata?.ipAddress === undefined
125
+ ? {}
126
+ : { ip: metadata.ipAddress }),
127
+ ...(metadata?.userAgent === undefined
128
+ ? {}
129
+ : { userAgent: metadata.userAgent }),
130
+ ...(metadata?.origin === undefined ? {} : { origin: metadata.origin }),
131
+ metadata: { operation: operations.server },
132
+ },
133
+ ...(input.payload.botChallenge === undefined
134
+ ? {}
135
+ : { proof: Redacted.make(input.payload.botChallenge.token) }),
136
+ });
137
+ }).pipe(mapAuthGuardErrors, Effect.catchTag("AbuseProtectionDeniedError", () => Effect.fail(new AuthRequestRejectedError({
138
+ code: "request_rejected",
139
+ message: "Request rejected",
140
+ }))), Effect.catchTag("AbuseProtectionConfigError", () => Effect.fail(new AuthInternalError({
141
+ code: "internal_error",
142
+ message: "Request verification failed",
143
+ }))));
144
+ export const resolveHttpBotProtection = Effect.gen(function* () {
145
+ const service = yield* Effect.serviceOption(BotProtection);
146
+ if (Option.isSome(service)) {
147
+ return service.value;
148
+ }
149
+ const policy = yield* Effect.serviceOption(BotProtectionPolicy);
150
+ if (Option.isNone(policy)) {
151
+ return undefined;
152
+ }
153
+ return BotProtection.of({
154
+ enforce: (input) => policy.value.decide(input).pipe(Effect.flatMap((decision) => decision.type === "Skip"
155
+ ? Effect.void
156
+ : Effect.fail(new AbuseProtectionConfigError({
157
+ message: "Bot protection verifier is not configured",
158
+ })))),
159
+ });
160
+ });
161
+ export const requireBotProtection = (botProtection, operation, serverOperation, input) => Effect.gen(function* () {
162
+ const options = yield* authRequestMetadataOptions;
163
+ const metadata = input.request === undefined
164
+ ? undefined
165
+ : makeAuthRequestMetadata(input.request, options);
166
+ const ambient = botProtection === undefined ? yield* resolveHttpBotProtection : undefined;
167
+ const service = botProtection ?? ambient;
168
+ if (service === undefined) {
169
+ return;
170
+ }
171
+ yield* service.enforce({
172
+ operation,
173
+ request: {
174
+ ...(metadata?.ipAddress === undefined
175
+ ? {}
176
+ : { ip: metadata.ipAddress }),
177
+ ...(metadata?.userAgent === undefined
178
+ ? {}
179
+ : { userAgent: metadata.userAgent }),
180
+ ...(metadata?.origin === undefined ? {} : { origin: metadata.origin }),
181
+ metadata: { operation: serverOperation },
182
+ },
183
+ ...(input.payload.botChallenge === undefined
184
+ ? {}
185
+ : { proof: Redacted.make(input.payload.botChallenge.token) }),
186
+ });
187
+ }).pipe(Effect.catchTag("AbuseProtectionDeniedError", () => Effect.fail(new AuthRequestRejectedError({
188
+ code: "request_rejected",
189
+ message: "Request rejected",
190
+ }))), Effect.catchTag("AbuseProtectionConfigError", () => Effect.fail(new AuthInternalError({
191
+ code: "internal_error",
192
+ message: "Request verification failed",
193
+ }))));
194
+ //# sourceMappingURL=RequestGuards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RequestGuards.js","sourceRoot":"","sources":["../../src/HttpApi/RequestGuards.ts"],"names":[],"mappings":"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"}