@yielded/auth 0.1.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1466) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +18 -0
  3. package/dist/Atom.d.mts +5 -0
  4. package/dist/Atom.mjs +5 -0
  5. package/dist/Auth.d.mts +9 -0
  6. package/dist/Auth.mjs +7 -0
  7. package/dist/AuthContract.d.mts +4 -0
  8. package/dist/AuthContract.mjs +4 -0
  9. package/dist/AuthSession.d.mts +82 -0
  10. package/dist/AuthSession.mjs +138 -0
  11. package/dist/AuthSession.mjs.map +1 -0
  12. package/dist/AuthStore.d.mts +68 -0
  13. package/dist/AuthStore.mjs +194 -0
  14. package/dist/AuthStore.mjs.map +1 -0
  15. package/dist/AuthTokenCodec.d.mts +40 -0
  16. package/dist/AuthTokenCodec.mjs +104 -0
  17. package/dist/AuthTokenCodec.mjs.map +1 -0
  18. package/dist/Client.d.mts +2 -0
  19. package/dist/Client.mjs +2 -0
  20. package/dist/Cloudflare.d.mts +89 -0
  21. package/dist/Cloudflare.mjs +166 -0
  22. package/dist/Cloudflare.mjs.map +1 -0
  23. package/dist/Drizzle.d.mts +28 -0
  24. package/dist/Drizzle.mjs +27 -0
  25. package/dist/DrizzleD1.d.mts +935 -0
  26. package/dist/DrizzleD1.mjs +29 -0
  27. package/dist/DrizzleD1.mjs.map +1 -0
  28. package/dist/DrizzleLibsql.d.mts +2288 -0
  29. package/dist/DrizzleLibsql.mjs +85 -0
  30. package/dist/DrizzleLibsql.mjs.map +1 -0
  31. package/dist/DrizzleMysql2.d.mts +1809 -0
  32. package/dist/DrizzleMysql2.mjs +55 -0
  33. package/dist/DrizzleMysql2.mjs.map +1 -0
  34. package/dist/DrizzlePglite.d.mts +1808 -0
  35. package/dist/DrizzlePglite.mjs +45 -0
  36. package/dist/DrizzlePglite.mjs.map +1 -0
  37. package/dist/DrizzlePostgres.d.mts +1808 -0
  38. package/dist/DrizzlePostgres.mjs +45 -0
  39. package/dist/DrizzlePostgres.mjs.map +1 -0
  40. package/dist/DrizzleSqliteBun.d.mts +2287 -0
  41. package/dist/DrizzleSqliteBun.mjs +62 -0
  42. package/dist/DrizzleSqliteBun.mjs.map +1 -0
  43. package/dist/DrizzleSqliteDo.d.mts +2343 -0
  44. package/dist/DrizzleSqliteDo.mjs +105 -0
  45. package/dist/DrizzleSqliteDo.mjs.map +1 -0
  46. package/dist/DrizzleSqliteNode.d.mts +2287 -0
  47. package/dist/DrizzleSqliteNode.mjs +62 -0
  48. package/dist/DrizzleSqliteNode.mjs.map +1 -0
  49. package/dist/DrizzleSqliteWasm.d.mts +2287 -0
  50. package/dist/DrizzleSqliteWasm.mjs +62 -0
  51. package/dist/DrizzleSqliteWasm.mjs.map +1 -0
  52. package/dist/Email.d.mts +12 -0
  53. package/dist/Email.mjs +11 -0
  54. package/dist/EmailOtp.d.mts +42 -0
  55. package/dist/EmailOtp.mjs +120 -0
  56. package/dist/EmailOtp.mjs.map +1 -0
  57. package/dist/EmailOtpSender.d.mts +22 -0
  58. package/dist/EmailOtpSender.mjs +18 -0
  59. package/dist/EmailOtpSender.mjs.map +1 -0
  60. package/dist/Errors.d.mts +55 -0
  61. package/dist/Errors.mjs +31 -0
  62. package/dist/Errors.mjs.map +1 -0
  63. package/dist/GitHub.d.mts +5 -0
  64. package/dist/GitHub.mjs +4 -0
  65. package/dist/Hooks.d.mts +6 -0
  66. package/dist/Hooks.mjs +6 -0
  67. package/dist/Http.d.mts +12 -0
  68. package/dist/Http.mjs +12 -0
  69. package/dist/HttpServer.d.mts +103 -0
  70. package/dist/HttpServer.mjs +326 -0
  71. package/dist/HttpServer.mjs.map +1 -0
  72. package/dist/Identity.d.mts +9 -0
  73. package/dist/Identity.mjs +9 -0
  74. package/dist/IdentityResolver.d.mts +16 -0
  75. package/dist/IdentityResolver.mjs +12 -0
  76. package/dist/IdentityResolver.mjs.map +1 -0
  77. package/dist/OAuth.d.mts +36 -0
  78. package/dist/OAuth.mjs +35 -0
  79. package/dist/OpenIdClient.d.mts +3 -0
  80. package/dist/OpenIdClient.mjs +3 -0
  81. package/dist/OpenIdClientConnected.d.mts +4 -0
  82. package/dist/OpenIdClientConnected.mjs +3 -0
  83. package/dist/OperationHttp.d.mts +3 -0
  84. package/dist/OperationHttp.mjs +3 -0
  85. package/dist/OperationHttpClient.d.mts +2 -0
  86. package/dist/OperationHttpClient.mjs +2 -0
  87. package/dist/OperationHttpServer.d.mts +5 -0
  88. package/dist/OperationHttpServer.mjs +4 -0
  89. package/dist/Operations.d.mts +8 -0
  90. package/dist/Operations.mjs +8 -0
  91. package/dist/Passkey.d.mts +12 -0
  92. package/dist/Passkey.mjs +12 -0
  93. package/dist/PasskeyBrowser.d.mts +4 -0
  94. package/dist/PasskeyBrowser.mjs +4 -0
  95. package/dist/PasskeyContract.d.mts +641 -0
  96. package/dist/PasskeyContract.mjs +174 -0
  97. package/dist/PasskeyContract.mjs.map +1 -0
  98. package/dist/PasskeyPassword.d.mts +412 -0
  99. package/dist/PasskeyPassword.mjs +174 -0
  100. package/dist/PasskeyPassword.mjs.map +1 -0
  101. package/dist/PasskeySimpleWebAuthn.d.mts +3 -0
  102. package/dist/PasskeySimpleWebAuthn.mjs +3 -0
  103. package/dist/Password.d.mts +19 -0
  104. package/dist/Password.mjs +17 -0
  105. package/dist/PasswordAuth.d.mts +45 -0
  106. package/dist/PasswordAuth.mjs +79 -0
  107. package/dist/PasswordAuth.mjs.map +1 -0
  108. package/dist/PasswordCredentialStore.d.mts +46 -0
  109. package/dist/PasswordCredentialStore.mjs +62 -0
  110. package/dist/PasswordCredentialStore.mjs.map +1 -0
  111. package/dist/PasswordHasher.d.mts +31 -0
  112. package/dist/PasswordHasher.mjs +76 -0
  113. package/dist/PasswordHasher.mjs.map +1 -0
  114. package/dist/PhoneOtp.d.mts +11 -0
  115. package/dist/PhoneOtp.mjs +11 -0
  116. package/dist/Policy.d.mts +52 -0
  117. package/dist/Policy.mjs +36 -0
  118. package/dist/Policy.mjs.map +1 -0
  119. package/dist/Proofs.d.mts +14 -0
  120. package/dist/Proofs.mjs +13 -0
  121. package/dist/Rpc.d.mts +12 -0
  122. package/dist/Rpc.mjs +11 -0
  123. package/dist/Rpc.mjs.map +1 -0
  124. package/dist/Schema.d.mts +160 -0
  125. package/dist/Schema.mjs +141 -0
  126. package/dist/Schema.mjs.map +1 -0
  127. package/dist/SessionContract.d.mts +3 -0
  128. package/dist/SessionContract.mjs +3 -0
  129. package/dist/Sessions.d.mts +14 -0
  130. package/dist/Sessions.mjs +12 -0
  131. package/dist/Testing.d.mts +7 -0
  132. package/dist/Testing.mjs +7 -0
  133. package/dist/Totp.d.mts +8 -0
  134. package/dist/Totp.mjs +8 -0
  135. package/dist/TotpContract.d.mts +318 -0
  136. package/dist/TotpContract.mjs +119 -0
  137. package/dist/TotpContract.mjs.map +1 -0
  138. package/dist/WebCrypto.d.mts +28 -0
  139. package/dist/WebCrypto.mjs +42 -0
  140. package/dist/WebCrypto.mjs.map +1 -0
  141. package/dist/Workflows.d.mts +16 -0
  142. package/dist/Workflows.mjs +11 -0
  143. package/dist/Workflows.mjs.map +1 -0
  144. package/dist/atom/AuthAtomLifetime.d.mts +35 -0
  145. package/dist/atom/AuthAtomLifetime.mjs +50 -0
  146. package/dist/atom/AuthAtomLifetime.mjs.map +1 -0
  147. package/dist/atom/AuthAtomWorkflow.d.mts +17 -0
  148. package/dist/atom/AuthAtomWorkflow.mjs +9 -0
  149. package/dist/atom/AuthAtomWorkflow.mjs.map +1 -0
  150. package/dist/atom/client.d.mts +43 -0
  151. package/dist/atom/client.mjs +168 -0
  152. package/dist/atom/client.mjs.map +1 -0
  153. package/dist/atom/operations.d.mts +35 -0
  154. package/dist/atom/operations.mjs +58 -0
  155. package/dist/atom/operations.mjs.map +1 -0
  156. package/dist/atom/scoped-runtime.mjs +151 -0
  157. package/dist/atom/scoped-runtime.mjs.map +1 -0
  158. package/dist/auth/Auth.d.mts +7806 -0
  159. package/dist/auth/Auth.mjs +141 -0
  160. package/dist/auth/Auth.mjs.map +1 -0
  161. package/dist/auth/AuthConfigurationError.d.mts +10 -0
  162. package/dist/auth/AuthConfigurationError.mjs +14 -0
  163. package/dist/auth/AuthConfigurationError.mjs.map +1 -0
  164. package/dist/auth/AuthRequest.d.mts +21 -0
  165. package/dist/auth/AuthRequest.mjs +10 -0
  166. package/dist/auth/AuthRequest.mjs.map +1 -0
  167. package/dist/auth/AuthStrategy.d.mts +23 -0
  168. package/dist/auth/AuthStrategy.mjs +33 -0
  169. package/dist/auth/AuthStrategy.mjs.map +1 -0
  170. package/dist/auth/ConsumeDecision.d.mts +11 -0
  171. package/dist/auth/actions.d.mts +18 -0
  172. package/dist/auth/actions.mjs +70 -0
  173. package/dist/auth/actions.mjs.map +1 -0
  174. package/dist/auth/defaults.mjs +12 -0
  175. package/dist/auth/defaults.mjs.map +1 -0
  176. package/dist/auth/definition.d.mts +46 -0
  177. package/dist/auth/session.d.mts +27 -0
  178. package/dist/auth/session.mjs +56 -0
  179. package/dist/auth/session.mjs.map +1 -0
  180. package/dist/drizzle/D1BatchStatements.d.mts +11 -0
  181. package/dist/drizzle/D1BatchStatements.mjs +8 -0
  182. package/dist/drizzle/D1BatchStatements.mjs.map +1 -0
  183. package/dist/drizzle/PasswordPreparedPostconditions.mjs +12 -0
  184. package/dist/drizzle/PasswordPreparedPostconditions.mjs.map +1 -0
  185. package/dist/drizzle/SuppliedService.d.mts +10 -0
  186. package/dist/drizzle/d1-emails.d.mts +68 -0
  187. package/dist/drizzle/d1-emails.mjs +580 -0
  188. package/dist/drizzle/d1-emails.mjs.map +1 -0
  189. package/dist/drizzle/d1-generated-statement.mjs +79 -0
  190. package/dist/drizzle/d1-generated-statement.mjs.map +1 -0
  191. package/dist/drizzle/d1-identity.d.mts +33 -0
  192. package/dist/drizzle/d1-identity.mjs +120 -0
  193. package/dist/drizzle/d1-identity.mjs.map +1 -0
  194. package/dist/drizzle/d1-oauth.d.mts +316 -0
  195. package/dist/drizzle/d1-oauth.mjs +79 -0
  196. package/dist/drizzle/d1-oauth.mjs.map +1 -0
  197. package/dist/drizzle/d1-passkey.d.mts +52 -0
  198. package/dist/drizzle/d1-passkey.mjs +97 -0
  199. package/dist/drizzle/d1-passkey.mjs.map +1 -0
  200. package/dist/drizzle/d1-password-prepared.d.mts +27 -0
  201. package/dist/drizzle/d1-password-prepared.mjs +464 -0
  202. package/dist/drizzle/d1-password-prepared.mjs.map +1 -0
  203. package/dist/drizzle/d1-passwords.d.mts +96 -0
  204. package/dist/drizzle/d1-passwords.mjs +1008 -0
  205. package/dist/drizzle/d1-passwords.mjs.map +1 -0
  206. package/dist/drizzle/d1-phone.d.mts +29 -0
  207. package/dist/drizzle/d1-phone.mjs +33 -0
  208. package/dist/drizzle/d1-phone.mjs.map +1 -0
  209. package/dist/drizzle/d1-planning.d.mts +12 -0
  210. package/dist/drizzle/d1-planning.mjs +43 -0
  211. package/dist/drizzle/d1-planning.mjs.map +1 -0
  212. package/dist/drizzle/d1-proofs.d.mts +88 -0
  213. package/dist/drizzle/d1-proofs.mjs +833 -0
  214. package/dist/drizzle/d1-proofs.mjs.map +1 -0
  215. package/dist/drizzle/d1-sessions.d.mts +77 -0
  216. package/dist/drizzle/d1-sessions.mjs +970 -0
  217. package/dist/drizzle/d1-sessions.mjs.map +1 -0
  218. package/dist/drizzle/d1-totp.d.mts +27 -0
  219. package/dist/drizzle/d1-totp.mjs +28 -0
  220. package/dist/drizzle/d1-totp.mjs.map +1 -0
  221. package/dist/drizzle/email-model.d.mts +352 -0
  222. package/dist/drizzle/email-model.mjs +21 -0
  223. package/dist/drizzle/email-model.mjs.map +1 -0
  224. package/dist/drizzle/email-registration.d.mts +33 -0
  225. package/dist/drizzle/email-registration.mjs +238 -0
  226. package/dist/drizzle/email-registration.mjs.map +1 -0
  227. package/dist/drizzle/email-sql.d.mts +18 -0
  228. package/dist/drizzle/email-sql.mjs +473 -0
  229. package/dist/drizzle/email-sql.mjs.map +1 -0
  230. package/dist/drizzle/email-target.d.mts +28 -0
  231. package/dist/drizzle/email-target.mjs +75 -0
  232. package/dist/drizzle/email-target.mjs.map +1 -0
  233. package/dist/drizzle/model.d.mts +259 -0
  234. package/dist/drizzle/model.mjs +81 -0
  235. package/dist/drizzle/model.mjs.map +1 -0
  236. package/dist/drizzle/mysql-emails.d.mts +82 -0
  237. package/dist/drizzle/mysql-emails.mjs +38 -0
  238. package/dist/drizzle/mysql-emails.mjs.map +1 -0
  239. package/dist/drizzle/mysql-identity.d.mts +24 -0
  240. package/dist/drizzle/mysql-identity.mjs +95 -0
  241. package/dist/drizzle/mysql-identity.mjs.map +1 -0
  242. package/dist/drizzle/mysql-password-prepared.d.mts +32 -0
  243. package/dist/drizzle/mysql-password-prepared.mjs +16 -0
  244. package/dist/drizzle/mysql-password-prepared.mjs.map +1 -0
  245. package/dist/drizzle/mysql-passwords.d.mts +102 -0
  246. package/dist/drizzle/mysql-passwords.mjs +38 -0
  247. package/dist/drizzle/mysql-passwords.mjs.map +1 -0
  248. package/dist/drizzle/mysql-proofs.d.mts +83 -0
  249. package/dist/drizzle/mysql-proofs.mjs +23 -0
  250. package/dist/drizzle/mysql-proofs.mjs.map +1 -0
  251. package/dist/drizzle/mysql-sessions.d.mts +250 -0
  252. package/dist/drizzle/mysql-sessions.mjs +53 -0
  253. package/dist/drizzle/mysql-sessions.mjs.map +1 -0
  254. package/dist/drizzle/mysql.d.mts +73 -0
  255. package/dist/drizzle/mysql.mjs +221 -0
  256. package/dist/drizzle/mysql.mjs.map +1 -0
  257. package/dist/drizzle/oauth-accounts.mjs +361 -0
  258. package/dist/drizzle/oauth-accounts.mjs.map +1 -0
  259. package/dist/drizzle/oauth-connected-access.mjs +210 -0
  260. package/dist/drizzle/oauth-connected-access.mjs.map +1 -0
  261. package/dist/drizzle/oauth-connected-collection.mjs +202 -0
  262. package/dist/drizzle/oauth-connected-collection.mjs.map +1 -0
  263. package/dist/drizzle/oauth-connected-custody.mjs +146 -0
  264. package/dist/drizzle/oauth-connected-custody.mjs.map +1 -0
  265. package/dist/drizzle/oauth-connected-drivers.mjs +78 -0
  266. package/dist/drizzle/oauth-connected-drivers.mjs.map +1 -0
  267. package/dist/drizzle/oauth-connected-flow.mjs +248 -0
  268. package/dist/drizzle/oauth-connected-flow.mjs.map +1 -0
  269. package/dist/drizzle/oauth-connected-input.mjs +105 -0
  270. package/dist/drizzle/oauth-connected-input.mjs.map +1 -0
  271. package/dist/drizzle/oauth-connected-maintenance.mjs +215 -0
  272. package/dist/drizzle/oauth-connected-maintenance.mjs.map +1 -0
  273. package/dist/drizzle/oauth-connected-management.mjs +228 -0
  274. package/dist/drizzle/oauth-connected-management.mjs.map +1 -0
  275. package/dist/drizzle/oauth-connected-model.d.mts +278 -0
  276. package/dist/drizzle/oauth-connected-model.mjs +22 -0
  277. package/dist/drizzle/oauth-connected-model.mjs.map +1 -0
  278. package/dist/drizzle/oauth-connected-reference.d.mts +17 -0
  279. package/dist/drizzle/oauth-connected-reference.mjs +53 -0
  280. package/dist/drizzle/oauth-connected-reference.mjs.map +1 -0
  281. package/dist/drizzle/oauth-connected-settlement.mjs +117 -0
  282. package/dist/drizzle/oauth-connected-settlement.mjs.map +1 -0
  283. package/dist/drizzle/oauth-connected-state.d.mts +16 -0
  284. package/dist/drizzle/oauth-connected-state.mjs +422 -0
  285. package/dist/drizzle/oauth-connected-state.mjs.map +1 -0
  286. package/dist/drizzle/oauth-connected-target.d.mts +114 -0
  287. package/dist/drizzle/oauth-connected-target.mjs +94 -0
  288. package/dist/drizzle/oauth-connected-target.mjs.map +1 -0
  289. package/dist/drizzle/oauth-drivers.mjs +53 -0
  290. package/dist/drizzle/oauth-drivers.mjs.map +1 -0
  291. package/dist/drizzle/oauth-flow.d.mts +7 -0
  292. package/dist/drizzle/oauth-flow.mjs +255 -0
  293. package/dist/drizzle/oauth-flow.mjs.map +1 -0
  294. package/dist/drizzle/oauth-input.mjs +130 -0
  295. package/dist/drizzle/oauth-input.mjs.map +1 -0
  296. package/dist/drizzle/oauth-model.d.mts +468 -0
  297. package/dist/drizzle/oauth-model.mjs +49 -0
  298. package/dist/drizzle/oauth-model.mjs.map +1 -0
  299. package/dist/drizzle/oauth-mysql.mjs +8 -0
  300. package/dist/drizzle/oauth-mysql.mjs.map +1 -0
  301. package/dist/drizzle/oauth-owner.d.mts +4 -0
  302. package/dist/drizzle/oauth-owner.mjs +10 -0
  303. package/dist/drizzle/oauth-owner.mjs.map +1 -0
  304. package/dist/drizzle/oauth-registration.d.mts +8 -0
  305. package/dist/drizzle/oauth-registration.mjs +375 -0
  306. package/dist/drizzle/oauth-registration.mjs.map +1 -0
  307. package/dist/drizzle/oauth-state.mjs +109 -0
  308. package/dist/drizzle/oauth-state.mjs.map +1 -0
  309. package/dist/drizzle/oauth-target.d.mts +125 -0
  310. package/dist/drizzle/oauth-target.mjs +252 -0
  311. package/dist/drizzle/oauth-target.mjs.map +1 -0
  312. package/dist/drizzle/passkey-admission.mjs +203 -0
  313. package/dist/drizzle/passkey-admission.mjs.map +1 -0
  314. package/dist/drizzle/passkey-credentials.mjs +239 -0
  315. package/dist/drizzle/passkey-credentials.mjs.map +1 -0
  316. package/dist/drizzle/passkey-drivers.mjs +34 -0
  317. package/dist/drizzle/passkey-drivers.mjs.map +1 -0
  318. package/dist/drizzle/passkey-enrollment.mjs +132 -0
  319. package/dist/drizzle/passkey-enrollment.mjs.map +1 -0
  320. package/dist/drizzle/passkey-flow.mjs +436 -0
  321. package/dist/drizzle/passkey-flow.mjs.map +1 -0
  322. package/dist/drizzle/passkey-management.mjs +225 -0
  323. package/dist/drizzle/passkey-management.mjs.map +1 -0
  324. package/dist/drizzle/passkey-model.d.mts +275 -0
  325. package/dist/drizzle/passkey-model.mjs +36 -0
  326. package/dist/drizzle/passkey-model.mjs.map +1 -0
  327. package/dist/drizzle/passkey-registration-ceremony-model.d.mts +50 -0
  328. package/dist/drizzle/passkey-registration-ceremony-model.mjs +18 -0
  329. package/dist/drizzle/passkey-registration-ceremony-model.mjs.map +1 -0
  330. package/dist/drizzle/passkey-registration-ceremony.mjs +124 -0
  331. package/dist/drizzle/passkey-registration-ceremony.mjs.map +1 -0
  332. package/dist/drizzle/passkey-registration-custody.mjs +51 -0
  333. package/dist/drizzle/passkey-registration-custody.mjs.map +1 -0
  334. package/dist/drizzle/passkey-registration-write.mjs +205 -0
  335. package/dist/drizzle/passkey-registration-write.mjs.map +1 -0
  336. package/dist/drizzle/passkey-state.d.mts +5 -0
  337. package/dist/drizzle/passkey-state.mjs +207 -0
  338. package/dist/drizzle/passkey-state.mjs.map +1 -0
  339. package/dist/drizzle/passkey-target.d.mts +16 -0
  340. package/dist/drizzle/passkey-target.mjs +174 -0
  341. package/dist/drizzle/passkey-target.mjs.map +1 -0
  342. package/dist/drizzle/passkey-write-drivers.mjs +33 -0
  343. package/dist/drizzle/passkey-write-drivers.mjs.map +1 -0
  344. package/dist/drizzle/passkey-write-model.d.mts +192 -0
  345. package/dist/drizzle/passkey-write-model.mjs +13 -0
  346. package/dist/drizzle/passkey-write-model.mjs.map +1 -0
  347. package/dist/drizzle/passkey-write-state.mjs +326 -0
  348. package/dist/drizzle/passkey-write-state.mjs.map +1 -0
  349. package/dist/drizzle/passkey-write-target.d.mts +14 -0
  350. package/dist/drizzle/passkey-write-target.mjs +185 -0
  351. package/dist/drizzle/passkey-write-target.mjs.map +1 -0
  352. package/dist/drizzle/password-model.d.mts +330 -0
  353. package/dist/drizzle/password-model.mjs +22 -0
  354. package/dist/drizzle/password-model.mjs.map +1 -0
  355. package/dist/drizzle/password-prepared-model.d.mts +93 -0
  356. package/dist/drizzle/password-prepared-model.mjs +11 -0
  357. package/dist/drizzle/password-prepared-model.mjs.map +1 -0
  358. package/dist/drizzle/password-prepared-sql.mjs +394 -0
  359. package/dist/drizzle/password-prepared-sql.mjs.map +1 -0
  360. package/dist/drizzle/password-prepared-state.mjs +107 -0
  361. package/dist/drizzle/password-prepared-state.mjs.map +1 -0
  362. package/dist/drizzle/password-prepared-target.d.mts +12 -0
  363. package/dist/drizzle/password-prepared-target.mjs +57 -0
  364. package/dist/drizzle/password-prepared-target.mjs.map +1 -0
  365. package/dist/drizzle/password-registration.d.mts +23 -0
  366. package/dist/drizzle/password-registration.mjs +136 -0
  367. package/dist/drizzle/password-registration.mjs.map +1 -0
  368. package/dist/drizzle/password-sql.d.mts +20 -0
  369. package/dist/drizzle/password-sql.mjs +702 -0
  370. package/dist/drizzle/password-sql.mjs.map +1 -0
  371. package/dist/drizzle/password-target.d.mts +25 -0
  372. package/dist/drizzle/password-target.mjs +63 -0
  373. package/dist/drizzle/password-target.mjs.map +1 -0
  374. package/dist/drizzle/pg-emails.d.mts +83 -0
  375. package/dist/drizzle/pg-emails.mjs +38 -0
  376. package/dist/drizzle/pg-emails.mjs.map +1 -0
  377. package/dist/drizzle/pg-password-prepared.d.mts +33 -0
  378. package/dist/drizzle/pg-password-prepared.mjs +16 -0
  379. package/dist/drizzle/pg-password-prepared.mjs.map +1 -0
  380. package/dist/drizzle/pg-passwords.d.mts +103 -0
  381. package/dist/drizzle/pg-passwords.mjs +38 -0
  382. package/dist/drizzle/pg-passwords.mjs.map +1 -0
  383. package/dist/drizzle/pg-proofs.d.mts +84 -0
  384. package/dist/drizzle/pg-proofs.mjs +22 -0
  385. package/dist/drizzle/pg-proofs.mjs.map +1 -0
  386. package/dist/drizzle/pg-sessions.d.mts +251 -0
  387. package/dist/drizzle/pg-sessions.mjs +53 -0
  388. package/dist/drizzle/pg-sessions.mjs.map +1 -0
  389. package/dist/drizzle/pg.d.mts +88 -0
  390. package/dist/drizzle/pg.mjs +294 -0
  391. package/dist/drizzle/pg.mjs.map +1 -0
  392. package/dist/drizzle/phone-model.d.mts +117 -0
  393. package/dist/drizzle/phone-model.mjs +39 -0
  394. package/dist/drizzle/phone-model.mjs.map +1 -0
  395. package/dist/drizzle/phone-state.mjs +426 -0
  396. package/dist/drizzle/phone-state.mjs.map +1 -0
  397. package/dist/drizzle/phone-target.d.mts +19 -0
  398. package/dist/drizzle/phone-target.mjs +171 -0
  399. package/dist/drizzle/phone-target.mjs.map +1 -0
  400. package/dist/drizzle/proof-model.d.mts +287 -0
  401. package/dist/drizzle/proof-model.mjs +17 -0
  402. package/dist/drizzle/proof-model.mjs.map +1 -0
  403. package/dist/drizzle/proof-sql.d.mts +16 -0
  404. package/dist/drizzle/proof-sql.mjs +618 -0
  405. package/dist/drizzle/proof-sql.mjs.map +1 -0
  406. package/dist/drizzle/proof-target.d.mts +17 -0
  407. package/dist/drizzle/proof-target.mjs +38 -0
  408. package/dist/drizzle/proof-target.mjs.map +1 -0
  409. package/dist/drizzle/session-model.d.mts +201 -0
  410. package/dist/drizzle/session-model.mjs +19 -0
  411. package/dist/drizzle/session-model.mjs.map +1 -0
  412. package/dist/drizzle/session-sql.mjs +732 -0
  413. package/dist/drizzle/session-sql.mjs.map +1 -0
  414. package/dist/drizzle/session-target.d.mts +37 -0
  415. package/dist/drizzle/session-target.mjs +47 -0
  416. package/dist/drizzle/session-target.mjs.map +1 -0
  417. package/dist/drizzle/sqlite-emails.mjs +45 -0
  418. package/dist/drizzle/sqlite-emails.mjs.map +1 -0
  419. package/dist/drizzle/sqlite-identity.mjs +92 -0
  420. package/dist/drizzle/sqlite-identity.mjs.map +1 -0
  421. package/dist/drizzle/sqlite-password-prepared.mjs +21 -0
  422. package/dist/drizzle/sqlite-password-prepared.mjs.map +1 -0
  423. package/dist/drizzle/sqlite-passwords.mjs +49 -0
  424. package/dist/drizzle/sqlite-passwords.mjs.map +1 -0
  425. package/dist/drizzle/sqlite-proofs.mjs +29 -0
  426. package/dist/drizzle/sqlite-proofs.mjs.map +1 -0
  427. package/dist/drizzle/sqlite-sessions.mjs +74 -0
  428. package/dist/drizzle/sqlite-sessions.mjs.map +1 -0
  429. package/dist/drizzle/sqlite.d.mts +81 -0
  430. package/dist/drizzle/sqlite.mjs +220 -0
  431. package/dist/drizzle/sqlite.mjs.map +1 -0
  432. package/dist/drizzle/standalone-guard.mjs +19 -0
  433. package/dist/drizzle/standalone-guard.mjs.map +1 -0
  434. package/dist/drizzle/step-up-model.d.mts +65 -0
  435. package/dist/drizzle/step-up-model.mjs +9 -0
  436. package/dist/drizzle/step-up-model.mjs.map +1 -0
  437. package/dist/drizzle/step-up-state.mjs +34 -0
  438. package/dist/drizzle/step-up-state.mjs.map +1 -0
  439. package/dist/drizzle/totp-model.d.mts +85 -0
  440. package/dist/drizzle/totp-model.mjs +13 -0
  441. package/dist/drizzle/totp-model.mjs.map +1 -0
  442. package/dist/drizzle/totp-state.d.mts +39 -0
  443. package/dist/drizzle/totp-state.mjs +288 -0
  444. package/dist/drizzle/totp-state.mjs.map +1 -0
  445. package/dist/drizzle/totp-target.d.mts +16 -0
  446. package/dist/drizzle/totp-target.mjs +83 -0
  447. package/dist/drizzle/totp-target.mjs.map +1 -0
  448. package/dist/drizzle/transaction-execution.d.mts +20 -0
  449. package/dist/drizzle/transaction-execution.mjs +111 -0
  450. package/dist/drizzle/transaction-execution.mjs.map +1 -0
  451. package/dist/drizzle/transaction-mysql.mjs +46 -0
  452. package/dist/drizzle/transaction-mysql.mjs.map +1 -0
  453. package/dist/drizzle/transaction-owner.d.mts +6 -0
  454. package/dist/drizzle/transaction-owner.mjs +252 -0
  455. package/dist/drizzle/transaction-owner.mjs.map +1 -0
  456. package/dist/email/EmailActionEvidence.d.mts +33 -0
  457. package/dist/email/EmailActionEvidence.mjs +15 -0
  458. package/dist/email/EmailActionEvidence.mjs.map +1 -0
  459. package/dist/email/EmailAddressPersistence.d.mts +63 -0
  460. package/dist/email/EmailAddressPersistence.mjs +19 -0
  461. package/dist/email/EmailAddressPersistence.mjs.map +1 -0
  462. package/dist/email/EmailIdentifierNotifier.d.mts +30 -0
  463. package/dist/email/EmailIdentifierNotifier.mjs +31 -0
  464. package/dist/email/EmailIdentifierNotifier.mjs.map +1 -0
  465. package/dist/email/EmailReturnTargets.d.mts +19 -0
  466. package/dist/email/EmailReturnTargets.mjs +29 -0
  467. package/dist/email/EmailReturnTargets.mjs.map +1 -0
  468. package/dist/email/EmailSignInTargets.d.mts +20 -0
  469. package/dist/email/EmailSignInTargets.mjs +12 -0
  470. package/dist/email/EmailSignInTargets.mjs.map +1 -0
  471. package/dist/email/addresses.d.mts +33 -0
  472. package/dist/email/addresses.mjs +404 -0
  473. package/dist/email/addresses.mjs.map +1 -0
  474. package/dist/email/definition.d.mts +10153 -0
  475. package/dist/email/definition.mjs +111 -0
  476. package/dist/email/definition.mjs.map +1 -0
  477. package/dist/email/errors.d.mts +15 -0
  478. package/dist/email/errors.mjs +11 -0
  479. package/dist/email/errors.mjs.map +1 -0
  480. package/dist/email/magicLink.d.mts +33 -0
  481. package/dist/email/magicLink.mjs +58 -0
  482. package/dist/email/magicLink.mjs.map +1 -0
  483. package/dist/email/models.d.mts +56 -0
  484. package/dist/email/models.mjs +31 -0
  485. package/dist/email/models.mjs.map +1 -0
  486. package/dist/email/module.d.mts +22296 -0
  487. package/dist/email/module.mjs +415 -0
  488. package/dist/email/module.mjs.map +1 -0
  489. package/dist/email/registration.d.mts +28 -0
  490. package/dist/email/registration.mjs +243 -0
  491. package/dist/email/registration.mjs.map +1 -0
  492. package/dist/email/snapshot.mjs +37 -0
  493. package/dist/email/snapshot.mjs.map +1 -0
  494. package/dist/hooks/LifecycleHooks.d.mts +34 -0
  495. package/dist/hooks/LifecycleHooks.mjs +74 -0
  496. package/dist/hooks/LifecycleHooks.mjs.map +1 -0
  497. package/dist/hooks/commit.d.mts +66 -0
  498. package/dist/hooks/commit.mjs +136 -0
  499. package/dist/hooks/commit.mjs.map +1 -0
  500. package/dist/hooks/models.d.mts +51 -0
  501. package/dist/hooks/models.mjs +87 -0
  502. package/dist/hooks/models.mjs.map +1 -0
  503. package/dist/hooks/plugins.d.mts +36 -0
  504. package/dist/hooks/plugins.mjs +60 -0
  505. package/dist/hooks/plugins.mjs.map +1 -0
  506. package/dist/hooks/transactions.d.mts +31 -0
  507. package/dist/hooks/transactions.mjs +38 -0
  508. package/dist/hooks/transactions.mjs.map +1 -0
  509. package/dist/http/auth-api.d.mts +9 -0
  510. package/dist/http/auth-api.mjs +13 -0
  511. package/dist/http/auth-api.mjs.map +1 -0
  512. package/dist/http/auth-contract.d.mts +84 -0
  513. package/dist/http/auth-contract.mjs +75 -0
  514. package/dist/http/auth-contract.mjs.map +1 -0
  515. package/dist/http/auth-http.d.mts +216 -0
  516. package/dist/http/auth-http.mjs +184 -0
  517. package/dist/http/auth-http.mjs.map +1 -0
  518. package/dist/http/endpoints/get-session.d.mts +8 -0
  519. package/dist/http/endpoints/get-session.mjs +12 -0
  520. package/dist/http/endpoints/get-session.mjs.map +1 -0
  521. package/dist/http/endpoints/password-sign-in.d.mts +8 -0
  522. package/dist/http/endpoints/password-sign-in.mjs +18 -0
  523. package/dist/http/endpoints/password-sign-in.mjs.map +1 -0
  524. package/dist/http/endpoints/request-email-otp.d.mts +8 -0
  525. package/dist/http/endpoints/request-email-otp.mjs +17 -0
  526. package/dist/http/endpoints/request-email-otp.mjs.map +1 -0
  527. package/dist/http/endpoints/set-password.d.mts +9 -0
  528. package/dist/http/endpoints/set-password.mjs +19 -0
  529. package/dist/http/endpoints/set-password.mjs.map +1 -0
  530. package/dist/http/endpoints/sign-out.d.mts +6 -0
  531. package/dist/http/endpoints/sign-out.mjs +7 -0
  532. package/dist/http/endpoints/sign-out.mjs.map +1 -0
  533. package/dist/http/endpoints/verify-email-otp.d.mts +9 -0
  534. package/dist/http/endpoints/verify-email-otp.mjs +18 -0
  535. package/dist/http/endpoints/verify-email-otp.mjs.map +1 -0
  536. package/dist/http/models.d.mts +49 -0
  537. package/dist/http/models.mjs +35 -0
  538. package/dist/http/models.mjs.map +1 -0
  539. package/dist/http/security.d.mts +91 -0
  540. package/dist/http/security.mjs +77 -0
  541. package/dist/http/security.mjs.map +1 -0
  542. package/dist/http/session-contract.d.mts +303 -0
  543. package/dist/http/session-contract.mjs +38 -0
  544. package/dist/http/session-contract.mjs.map +1 -0
  545. package/dist/http-operation/OperationHttpInvocation.d.mts +16 -0
  546. package/dist/http-operation/OperationHttpInvocation.mjs +11 -0
  547. package/dist/http-operation/OperationHttpInvocation.mjs.map +1 -0
  548. package/dist/http-operation/OperationHttpServerConfig.d.mts +18 -0
  549. package/dist/http-operation/OperationHttpServerConfig.mjs +72 -0
  550. package/dist/http-operation/OperationHttpServerConfig.mjs.map +1 -0
  551. package/dist/http-operation/auth-client.d.mts +75 -0
  552. package/dist/http-operation/auth-client.mjs +116 -0
  553. package/dist/http-operation/auth-client.mjs.map +1 -0
  554. package/dist/http-operation/client.d.mts +50 -0
  555. package/dist/http-operation/client.mjs +188 -0
  556. package/dist/http-operation/client.mjs.map +1 -0
  557. package/dist/http-operation/configuration-schema.mjs +19 -0
  558. package/dist/http-operation/configuration-schema.mjs.map +1 -0
  559. package/dist/http-operation/contract.d.mts +40 -0
  560. package/dist/http-operation/contract.mjs +37 -0
  561. package/dist/http-operation/contract.mjs.map +1 -0
  562. package/dist/http-operation/errors.d.mts +13 -0
  563. package/dist/http-operation/errors.mjs +31 -0
  564. package/dist/http-operation/errors.mjs.map +1 -0
  565. package/dist/http-operation/models.d.mts +32 -0
  566. package/dist/http-operation/models.mjs +14 -0
  567. package/dist/http-operation/models.mjs.map +1 -0
  568. package/dist/http-operation/private.mjs +35 -0
  569. package/dist/http-operation/private.mjs.map +1 -0
  570. package/dist/http-operation/security.mjs +58 -0
  571. package/dist/http-operation/security.mjs.map +1 -0
  572. package/dist/http-operation/server.d.mts +33 -0
  573. package/dist/http-operation/server.mjs +268 -0
  574. package/dist/http-operation/server.mjs.map +1 -0
  575. package/dist/identity/ExternalIdentityMutation.d.mts +15 -0
  576. package/dist/identity/ExternalIdentityMutation.mjs +11 -0
  577. package/dist/identity/ExternalIdentityMutation.mjs.map +1 -0
  578. package/dist/identity/IdentityMutation.d.mts +22 -0
  579. package/dist/identity/IdentityMutation.mjs +17 -0
  580. package/dist/identity/IdentityMutation.mjs.map +1 -0
  581. package/dist/identity/IdentityRepository.d.mts +20 -0
  582. package/dist/identity/IdentityRepository.mjs +11 -0
  583. package/dist/identity/IdentityRepository.mjs.map +1 -0
  584. package/dist/identity/SubjectLifecycle.d.mts +58 -0
  585. package/dist/identity/SubjectLifecycle.mjs +43 -0
  586. package/dist/identity/SubjectLifecycle.mjs.map +1 -0
  587. package/dist/identity/SubjectProvisioner.d.mts +37 -0
  588. package/dist/identity/SubjectProvisioner.mjs +20 -0
  589. package/dist/identity/SubjectProvisioner.mjs.map +1 -0
  590. package/dist/identity/codecs.d.mts +34 -0
  591. package/dist/identity/codecs.mjs +40 -0
  592. package/dist/identity/codecs.mjs.map +1 -0
  593. package/dist/identity/models.d.mts +62 -0
  594. package/dist/identity/models.mjs +51 -0
  595. package/dist/identity/models.mjs.map +1 -0
  596. package/dist/identity/operations.d.mts +118 -0
  597. package/dist/identity/operations.mjs +124 -0
  598. package/dist/identity/operations.mjs.map +1 -0
  599. package/dist/index.d.mts +23 -0
  600. package/dist/index.mjs +23 -0
  601. package/dist/internal/AuthStoreDecisions.d.mts +22 -0
  602. package/dist/internal/AuthStoreDecisions.mjs +8 -0
  603. package/dist/internal/AuthStoreDecisions.mjs.map +1 -0
  604. package/dist/internal/CurrentSession.d.mts +9 -0
  605. package/dist/internal/CurrentSession.mjs +8 -0
  606. package/dist/internal/CurrentSession.mjs.map +1 -0
  607. package/dist/internal/diagnostics.mjs +23 -0
  608. package/dist/internal/diagnostics.mjs.map +1 -0
  609. package/dist/oauth/GithubOAuthProvider.d.mts +43 -0
  610. package/dist/oauth/GithubOAuthProvider.mjs +66 -0
  611. package/dist/oauth/GithubOAuthProvider.mjs.map +1 -0
  612. package/dist/oauth/OAuth.d.mts +73 -0
  613. package/dist/oauth/OAuth.mjs +180 -0
  614. package/dist/oauth/OAuth.mjs.map +1 -0
  615. package/dist/oauth/OAuthAccountsPersistence.d.mts +109 -0
  616. package/dist/oauth/OAuthAccountsPersistence.mjs +12 -0
  617. package/dist/oauth/OAuthAccountsPersistence.mjs.map +1 -0
  618. package/dist/oauth/OAuthActionEvidence.d.mts +28 -0
  619. package/dist/oauth/OAuthActionEvidence.mjs +15 -0
  620. package/dist/oauth/OAuthActionEvidence.mjs.map +1 -0
  621. package/dist/oauth/OAuthConnectedActionEvidence.d.mts +22 -0
  622. package/dist/oauth/OAuthConnectedActionEvidence.mjs +9 -0
  623. package/dist/oauth/OAuthConnectedActionEvidence.mjs.map +1 -0
  624. package/dist/oauth/OAuthConnectedPersistence.d.mts +129 -0
  625. package/dist/oauth/OAuthConnectedPersistence.mjs +12 -0
  626. package/dist/oauth/OAuthConnectedPersistence.mjs.map +1 -0
  627. package/dist/oauth/OAuthConnectedProtocol.d.mts +41 -0
  628. package/dist/oauth/OAuthConnectedProtocol.mjs +13 -0
  629. package/dist/oauth/OAuthConnectedProtocol.mjs.map +1 -0
  630. package/dist/oauth/OAuthConnectedRevocations.d.mts +167 -0
  631. package/dist/oauth/OAuthConnectedRevocations.mjs +21 -0
  632. package/dist/oauth/OAuthConnectedRevocations.mjs.map +1 -0
  633. package/dist/oauth/OAuthConnectedTokenProtector.d.mts +24 -0
  634. package/dist/oauth/OAuthConnectedTokenProtector.mjs +153 -0
  635. package/dist/oauth/OAuthConnectedTokenProtector.mjs.map +1 -0
  636. package/dist/oauth/OAuthConnectedTransactionProtector.d.mts +23 -0
  637. package/dist/oauth/OAuthConnectedTransactionProtector.mjs +37 -0
  638. package/dist/oauth/OAuthConnectedTransactionProtector.mjs.map +1 -0
  639. package/dist/oauth/OAuthConnectedUseAuthority.d.mts +22 -0
  640. package/dist/oauth/OAuthConnectedUseAuthority.mjs +10 -0
  641. package/dist/oauth/OAuthConnectedUseAuthority.mjs.map +1 -0
  642. package/dist/oauth/OAuthConnectionStore.d.mts +33 -0
  643. package/dist/oauth/OAuthConnectionStore.mjs +38 -0
  644. package/dist/oauth/OAuthConnectionStore.mjs.map +1 -0
  645. package/dist/oauth/OAuthLinkTransactionProtector.d.mts +25 -0
  646. package/dist/oauth/OAuthLinkTransactionProtector.mjs +39 -0
  647. package/dist/oauth/OAuthLinkTransactionProtector.mjs.map +1 -0
  648. package/dist/oauth/OAuthProtocol.d.mts +33 -0
  649. package/dist/oauth/OAuthProtocol.mjs +16 -0
  650. package/dist/oauth/OAuthProtocol.mjs.map +1 -0
  651. package/dist/oauth/OAuthProvider.d.mts +70 -0
  652. package/dist/oauth/OAuthProvider.mjs +39 -0
  653. package/dist/oauth/OAuthProvider.mjs.map +1 -0
  654. package/dist/oauth/OAuthProviders.d.mts +27 -0
  655. package/dist/oauth/OAuthProviders.mjs +33 -0
  656. package/dist/oauth/OAuthProviders.mjs.map +1 -0
  657. package/dist/oauth/OAuthRegistrationIntents.d.mts +87 -0
  658. package/dist/oauth/OAuthRegistrationIntents.mjs +19 -0
  659. package/dist/oauth/OAuthRegistrationIntents.mjs.map +1 -0
  660. package/dist/oauth/OAuthReturnTargets.d.mts +15 -0
  661. package/dist/oauth/OAuthReturnTargets.mjs +24 -0
  662. package/dist/oauth/OAuthReturnTargets.mjs.map +1 -0
  663. package/dist/oauth/OAuthSignInPersistence.d.mts +68 -0
  664. package/dist/oauth/OAuthSignInPersistence.mjs +12 -0
  665. package/dist/oauth/OAuthSignInPersistence.mjs.map +1 -0
  666. package/dist/oauth/OAuthStateDecisions.d.mts +14 -0
  667. package/dist/oauth/OAuthStateDecisions.mjs +8 -0
  668. package/dist/oauth/OAuthStateDecisions.mjs.map +1 -0
  669. package/dist/oauth/OAuthStateStore.d.mts +35 -0
  670. package/dist/oauth/OAuthStateStore.mjs +64 -0
  671. package/dist/oauth/OAuthStateStore.mjs.map +1 -0
  672. package/dist/oauth/OAuthTransactionProtector.d.mts +26 -0
  673. package/dist/oauth/OAuthTransactionProtector.mjs +78 -0
  674. package/dist/oauth/OAuthTransactionProtector.mjs.map +1 -0
  675. package/dist/oauth/accounts.d.mts +29 -0
  676. package/dist/oauth/accounts.mjs +515 -0
  677. package/dist/oauth/accounts.mjs.map +1 -0
  678. package/dist/oauth/accountsModels.d.mts +463 -0
  679. package/dist/oauth/accountsModels.mjs +155 -0
  680. package/dist/oauth/accountsModels.mjs.map +1 -0
  681. package/dist/oauth/connected.d.mts +442 -0
  682. package/dist/oauth/connected.mjs +526 -0
  683. package/dist/oauth/connected.mjs.map +1 -0
  684. package/dist/oauth/connectedAccess.d.mts +20 -0
  685. package/dist/oauth/connectedAccess.mjs +279 -0
  686. package/dist/oauth/connectedAccess.mjs.map +1 -0
  687. package/dist/oauth/connectedMaintenance.d.mts +19 -0
  688. package/dist/oauth/connectedMaintenance.mjs +133 -0
  689. package/dist/oauth/connectedMaintenance.mjs.map +1 -0
  690. package/dist/oauth/connectedModels.d.mts +2023 -0
  691. package/dist/oauth/connectedModels.mjs +375 -0
  692. package/dist/oauth/connectedModels.mjs.map +1 -0
  693. package/dist/oauth/definition.d.mts +4396 -0
  694. package/dist/oauth/definition.mjs +120 -0
  695. package/dist/oauth/definition.mjs.map +1 -0
  696. package/dist/oauth/errors.d.mts +49 -0
  697. package/dist/oauth/errors.mjs +42 -0
  698. package/dist/oauth/errors.mjs.map +1 -0
  699. package/dist/oauth/github/identity.d.mts +8 -0
  700. package/dist/oauth/github/identity.mjs +24 -0
  701. package/dist/oauth/github/identity.mjs.map +1 -0
  702. package/dist/oauth/github/models.d.mts +34 -0
  703. package/dist/oauth/github/protocol.d.mts +54 -0
  704. package/dist/oauth/github/protocol.mjs +204 -0
  705. package/dist/oauth/github/protocol.mjs.map +1 -0
  706. package/dist/oauth/openid-client/ProviderRevocation.d.mts +4 -0
  707. package/dist/oauth/openid-client/ProviderRevocation.mjs +11 -0
  708. package/dist/oauth/openid-client/ProviderRevocation.mjs.map +1 -0
  709. package/dist/oauth/openid-client/compatibility.d.mts +1 -0
  710. package/dist/oauth/openid-client/compatibility.mjs +6 -0
  711. package/dist/oauth/openid-client/compatibility.mjs.map +1 -0
  712. package/dist/oauth/openid-client/configuration.mjs +305 -0
  713. package/dist/oauth/openid-client/configuration.mjs.map +1 -0
  714. package/dist/oauth/openid-client/connected/configuration.mjs +338 -0
  715. package/dist/oauth/openid-client/connected/configuration.mjs.map +1 -0
  716. package/dist/oauth/openid-client/connected/models.d.mts +42 -0
  717. package/dist/oauth/openid-client/connected/protocol.d.mts +16 -0
  718. package/dist/oauth/openid-client/connected/protocol.mjs +402 -0
  719. package/dist/oauth/openid-client/connected/protocol.mjs.map +1 -0
  720. package/dist/oauth/openid-client/models.d.mts +67 -0
  721. package/dist/oauth/openid-client/models.mjs +16 -0
  722. package/dist/oauth/openid-client/models.mjs.map +1 -0
  723. package/dist/oauth/openid-client/protocol.d.mts +27 -0
  724. package/dist/oauth/openid-client/protocol.mjs +218 -0
  725. package/dist/oauth/openid-client/protocol.mjs.map +1 -0
  726. package/dist/oauth/openid-client/transport.mjs +59 -0
  727. package/dist/oauth/openid-client/transport.mjs.map +1 -0
  728. package/dist/oauth/policy.d.mts +18 -0
  729. package/dist/oauth/policy.mjs +16 -0
  730. package/dist/oauth/policy.mjs.map +1 -0
  731. package/dist/oauth/registration.d.mts +24 -0
  732. package/dist/oauth/registration.mjs +177 -0
  733. package/dist/oauth/registration.mjs.map +1 -0
  734. package/dist/oauth/registrationModels.d.mts +152 -0
  735. package/dist/oauth/registrationModels.mjs +93 -0
  736. package/dist/oauth/registrationModels.mjs.map +1 -0
  737. package/dist/oauth/registrationSecrets.mjs +70 -0
  738. package/dist/oauth/registrationSecrets.mjs.map +1 -0
  739. package/dist/oauth/schema.d.mts +86 -0
  740. package/dist/oauth/schema.mjs +81 -0
  741. package/dist/oauth/schema.mjs.map +1 -0
  742. package/dist/oauth/signInErrors.d.mts +17 -0
  743. package/dist/oauth/signInErrors.mjs +16 -0
  744. package/dist/oauth/signInErrors.mjs.map +1 -0
  745. package/dist/oauth/signInModels.d.mts +343 -0
  746. package/dist/oauth/signInModels.mjs +181 -0
  747. package/dist/oauth/signInModels.mjs.map +1 -0
  748. package/dist/oauth/signInModule.d.mts +1546 -0
  749. package/dist/oauth/signInModule.mjs +430 -0
  750. package/dist/oauth/signInModule.mjs.map +1 -0
  751. package/dist/oauth/signInSnapshot.mjs +29 -0
  752. package/dist/oauth/signInSnapshot.mjs.map +1 -0
  753. package/dist/oauth/transactionEncryption.d.mts +14 -0
  754. package/dist/oauth/transactionEncryption.mjs +129 -0
  755. package/dist/oauth/transactionEncryption.mjs.map +1 -0
  756. package/dist/operations/RequestBindingConfig.d.mts +11 -0
  757. package/dist/operations/RequestBindingConfig.mjs +10 -0
  758. package/dist/operations/RequestBindingConfig.mjs.map +1 -0
  759. package/dist/operations/actions.d.mts +947 -0
  760. package/dist/operations/actions.mjs +148 -0
  761. package/dist/operations/actions.mjs.map +1 -0
  762. package/dist/operations/context.d.mts +63 -0
  763. package/dist/operations/context.mjs +55 -0
  764. package/dist/operations/context.mjs.map +1 -0
  765. package/dist/operations/credentials.d.mts +39 -0
  766. package/dist/operations/credentials.mjs +60 -0
  767. package/dist/operations/credentials.mjs.map +1 -0
  768. package/dist/operations/errors.d.mts +24 -0
  769. package/dist/operations/errors.mjs +31 -0
  770. package/dist/operations/errors.mjs.map +1 -0
  771. package/dist/operations/operation.d.mts +124 -0
  772. package/dist/operations/operation.mjs +220 -0
  773. package/dist/operations/operation.mjs.map +1 -0
  774. package/dist/operations/requestBinding.d.mts +46 -0
  775. package/dist/operations/requestBinding.mjs +130 -0
  776. package/dist/operations/requestBinding.mjs.map +1 -0
  777. package/dist/operations/requestBindingModels.d.mts +13 -0
  778. package/dist/operations/requestBindingModels.mjs +12 -0
  779. package/dist/operations/requestBindingModels.mjs.map +1 -0
  780. package/dist/operations/reveals.d.mts +28 -0
  781. package/dist/operations/reveals.mjs +88 -0
  782. package/dist/operations/reveals.mjs.map +1 -0
  783. package/dist/passkey/PasskeyActionEvidence.d.mts +22 -0
  784. package/dist/passkey/PasskeyActionEvidence.mjs +9 -0
  785. package/dist/passkey/PasskeyActionEvidence.mjs.map +1 -0
  786. package/dist/passkey/PasskeyCredentials.d.mts +16 -0
  787. package/dist/passkey/PasskeyCredentials.mjs +9 -0
  788. package/dist/passkey/PasskeyCredentials.mjs.map +1 -0
  789. package/dist/passkey/PasskeyEnrollmentContext.d.mts +22 -0
  790. package/dist/passkey/PasskeyEnrollmentContext.mjs +9 -0
  791. package/dist/passkey/PasskeyEnrollmentContext.mjs.map +1 -0
  792. package/dist/passkey/PasskeyManagementPersistence.d.mts +106 -0
  793. package/dist/passkey/PasskeyManagementPersistence.mjs +9 -0
  794. package/dist/passkey/PasskeyManagementPersistence.mjs.map +1 -0
  795. package/dist/passkey/PasskeyPersistence.d.mts +63 -0
  796. package/dist/passkey/PasskeyPersistence.mjs +10 -0
  797. package/dist/passkey/PasskeyPersistence.mjs.map +1 -0
  798. package/dist/passkey/PasskeyProtocol.d.mts +38 -0
  799. package/dist/passkey/PasskeyProtocol.mjs +11 -0
  800. package/dist/passkey/PasskeyProtocol.mjs.map +1 -0
  801. package/dist/passkey/actions.d.mts +50 -0
  802. package/dist/passkey/actions.mjs +376 -0
  803. package/dist/passkey/actions.mjs.map +1 -0
  804. package/dist/passkey/browser/PasskeyBrowser.d.mts +18 -0
  805. package/dist/passkey/browser/PasskeyBrowser.mjs +9 -0
  806. package/dist/passkey/browser/PasskeyBrowser.mjs.map +1 -0
  807. package/dist/passkey/browser/models.d.mts +38 -0
  808. package/dist/passkey/browser/models.mjs +41 -0
  809. package/dist/passkey/browser/models.mjs.map +1 -0
  810. package/dist/passkey/browser/simplewebauthn.d.mts +17 -0
  811. package/dist/passkey/browser/simplewebauthn.mjs +411 -0
  812. package/dist/passkey/browser/simplewebauthn.mjs.map +1 -0
  813. package/dist/passkey/definition.d.mts +5626 -0
  814. package/dist/passkey/definition.mjs +114 -0
  815. package/dist/passkey/definition.mjs.map +1 -0
  816. package/dist/passkey/errors.d.mts +20 -0
  817. package/dist/passkey/errors.mjs +20 -0
  818. package/dist/passkey/errors.mjs.map +1 -0
  819. package/dist/passkey/management.mjs +276 -0
  820. package/dist/passkey/management.mjs.map +1 -0
  821. package/dist/passkey/models.d.mts +1245 -0
  822. package/dist/passkey/models.mjs +301 -0
  823. package/dist/passkey/models.mjs.map +1 -0
  824. package/dist/passkey/module.d.mts +2132 -0
  825. package/dist/passkey/module.mjs +174 -0
  826. package/dist/passkey/module.mjs.map +1 -0
  827. package/dist/passkey/pending.mjs +99 -0
  828. package/dist/passkey/pending.mjs.map +1 -0
  829. package/dist/passkey/policy.d.mts +48 -0
  830. package/dist/passkey/policy.mjs +77 -0
  831. package/dist/passkey/policy.mjs.map +1 -0
  832. package/dist/passkey/registration.mjs +107 -0
  833. package/dist/passkey/registration.mjs.map +1 -0
  834. package/dist/passkey/simplewebauthn/configuration.mjs +45 -0
  835. package/dist/passkey/simplewebauthn/configuration.mjs.map +1 -0
  836. package/dist/passkey/simplewebauthn/models.d.mts +21 -0
  837. package/dist/passkey/simplewebauthn/models.mjs +8 -0
  838. package/dist/passkey/simplewebauthn/models.mjs.map +1 -0
  839. package/dist/passkey/simplewebauthn/protocol.d.mts +62 -0
  840. package/dist/passkey/simplewebauthn/protocol.mjs +402 -0
  841. package/dist/passkey/simplewebauthn/protocol.mjs.map +1 -0
  842. package/dist/passkey/snapshot.mjs +31 -0
  843. package/dist/passkey/snapshot.mjs.map +1 -0
  844. package/dist/passkey/stepUp.mjs +101 -0
  845. package/dist/passkey/stepUp.mjs.map +1 -0
  846. package/dist/password/CompromisedPasswords.d.mts +26 -0
  847. package/dist/password/CompromisedPasswords.mjs +23 -0
  848. package/dist/password/CompromisedPasswords.mjs.map +1 -0
  849. package/dist/password/NewPasswordCheck.d.mts +21 -0
  850. package/dist/password/NewPasswordCheck.mjs +39 -0
  851. package/dist/password/NewPasswordCheck.mjs.map +1 -0
  852. package/dist/password/PasswordHashing.d.mts +24 -0
  853. package/dist/password/PasswordHashing.mjs +96 -0
  854. package/dist/password/PasswordHashing.mjs.map +1 -0
  855. package/dist/password/PasswordKdfAdmission.d.mts +19 -0
  856. package/dist/password/PasswordKdfAdmission.mjs +25 -0
  857. package/dist/password/PasswordKdfAdmission.mjs.map +1 -0
  858. package/dist/password/configuration.d.mts +43 -0
  859. package/dist/password/configuration.mjs +64 -0
  860. package/dist/password/configuration.mjs.map +1 -0
  861. package/dist/password/defaults.mjs +13 -0
  862. package/dist/password/defaults.mjs.map +1 -0
  863. package/dist/password/encoding.mjs +64 -0
  864. package/dist/password/encoding.mjs.map +1 -0
  865. package/dist/password/errors.d.mts +28 -0
  866. package/dist/password/errors.mjs +25 -0
  867. package/dist/password/errors.mjs.map +1 -0
  868. package/dist/password/methods/PasswordActionEvidence.d.mts +38 -0
  869. package/dist/password/methods/PasswordActionEvidence.mjs +22 -0
  870. package/dist/password/methods/PasswordActionEvidence.mjs.map +1 -0
  871. package/dist/password/methods/PasswordPersistence.d.mts +102 -0
  872. package/dist/password/methods/PasswordPersistence.mjs +13 -0
  873. package/dist/password/methods/PasswordPersistence.mjs.map +1 -0
  874. package/dist/password/methods/PasswordPreparedPersistence.d.mts +111 -0
  875. package/dist/password/methods/contracts.d.mts +43 -0
  876. package/dist/password/methods/contracts.mjs +33 -0
  877. package/dist/password/methods/contracts.mjs.map +1 -0
  878. package/dist/password/methods/definition.d.mts +3813 -0
  879. package/dist/password/methods/definition.mjs +56 -0
  880. package/dist/password/methods/definition.mjs.map +1 -0
  881. package/dist/password/methods/errors.d.mts +15 -0
  882. package/dist/password/methods/errors.mjs +11 -0
  883. package/dist/password/methods/errors.mjs.map +1 -0
  884. package/dist/password/methods/models.d.mts +70 -0
  885. package/dist/password/methods/models.mjs +44 -0
  886. package/dist/password/methods/models.mjs.map +1 -0
  887. package/dist/password/methods/module.d.mts +3567 -0
  888. package/dist/password/methods/module.mjs +553 -0
  889. package/dist/password/methods/module.mjs.map +1 -0
  890. package/dist/password/methods/policy.d.mts +84 -0
  891. package/dist/password/methods/policy.mjs +80 -0
  892. package/dist/password/methods/policy.mjs.map +1 -0
  893. package/dist/password/methods/preparation.mjs +54 -0
  894. package/dist/password/methods/preparation.mjs.map +1 -0
  895. package/dist/password/methods/prepared.d.mts +53 -0
  896. package/dist/password/methods/prepared.mjs +610 -0
  897. package/dist/password/methods/prepared.mjs.map +1 -0
  898. package/dist/password/methods/preparedModels.d.mts +1295 -0
  899. package/dist/password/methods/preparedModels.mjs +278 -0
  900. package/dist/password/methods/preparedModels.mjs.map +1 -0
  901. package/dist/password/methods/signIn.d.mts +180 -0
  902. package/dist/password/methods/signIn.mjs +73 -0
  903. package/dist/password/methods/signIn.mjs.map +1 -0
  904. package/dist/password/methods/snapshot.mjs +38 -0
  905. package/dist/password/methods/snapshot.mjs.map +1 -0
  906. package/dist/password/methods/verification.mjs +138 -0
  907. package/dist/password/methods/verification.mjs.map +1 -0
  908. package/dist/password/models.d.mts +13 -0
  909. package/dist/password/models.mjs +12 -0
  910. package/dist/password/models.mjs.map +1 -0
  911. package/dist/password/policy.d.mts +33 -0
  912. package/dist/password/policy.mjs +37 -0
  913. package/dist/password/policy.mjs.map +1 -0
  914. package/dist/phone/PhoneActionEvidence.d.mts +23 -0
  915. package/dist/phone/PhoneActionEvidence.mjs +10 -0
  916. package/dist/phone/PhoneActionEvidence.mjs.map +1 -0
  917. package/dist/phone/PhoneAdmission.d.mts +29 -0
  918. package/dist/phone/PhoneAdmission.mjs +10 -0
  919. package/dist/phone/PhoneAdmission.mjs.map +1 -0
  920. package/dist/phone/PhoneDeliveryEligibility.d.mts +11 -0
  921. package/dist/phone/PhoneDeliveryEligibility.mjs +8 -0
  922. package/dist/phone/PhoneDeliveryEligibility.mjs.map +1 -0
  923. package/dist/phone/PhonePersistence.d.mts +33 -0
  924. package/dist/phone/PhonePersistence.mjs +10 -0
  925. package/dist/phone/PhonePersistence.mjs.map +1 -0
  926. package/dist/phone/PhoneRequestContext.d.mts +10 -0
  927. package/dist/phone/PhoneRequestContext.mjs +8 -0
  928. package/dist/phone/PhoneRequestContext.mjs.map +1 -0
  929. package/dist/phone/PhoneSignInTargets.d.mts +19 -0
  930. package/dist/phone/PhoneSignInTargets.mjs +13 -0
  931. package/dist/phone/PhoneSignInTargets.mjs.map +1 -0
  932. package/dist/phone/definition.d.mts +7190 -0
  933. package/dist/phone/definition.mjs +28 -0
  934. package/dist/phone/definition.mjs.map +1 -0
  935. package/dist/phone/failure.mjs +23 -0
  936. package/dist/phone/failure.mjs.map +1 -0
  937. package/dist/phone/lifecycle.mjs +427 -0
  938. package/dist/phone/lifecycle.mjs.map +1 -0
  939. package/dist/phone/lifecycleModels.d.mts +164 -0
  940. package/dist/phone/lifecycleModels.mjs +91 -0
  941. package/dist/phone/lifecycleModels.mjs.map +1 -0
  942. package/dist/phone/models.d.mts +41 -0
  943. package/dist/phone/models.mjs +29 -0
  944. package/dist/phone/models.mjs.map +1 -0
  945. package/dist/phone/module.d.mts +6027 -0
  946. package/dist/phone/module.mjs +293 -0
  947. package/dist/phone/module.mjs.map +1 -0
  948. package/dist/proofs/EmailProofDelivery.d.mts +13 -0
  949. package/dist/proofs/EmailProofDelivery.mjs +11 -0
  950. package/dist/proofs/EmailProofDelivery.mjs.map +1 -0
  951. package/dist/proofs/HostIngressLimiter.d.mts +20 -0
  952. package/dist/proofs/HostIngressLimiter.mjs +13 -0
  953. package/dist/proofs/HostIngressLimiter.mjs.map +1 -0
  954. package/dist/proofs/ProofPersistence.d.mts +140 -0
  955. package/dist/proofs/ProofPersistence.mjs +13 -0
  956. package/dist/proofs/ProofPersistence.mjs.map +1 -0
  957. package/dist/proofs/SmsProofDelivery.d.mts +13 -0
  958. package/dist/proofs/SmsProofDelivery.mjs +11 -0
  959. package/dist/proofs/SmsProofDelivery.mjs.map +1 -0
  960. package/dist/proofs/abuse.d.mts +15 -0
  961. package/dist/proofs/abuse.mjs +12 -0
  962. package/dist/proofs/abuse.mjs.map +1 -0
  963. package/dist/proofs/completion.d.mts +22 -0
  964. package/dist/proofs/crypto.d.mts +196 -0
  965. package/dist/proofs/crypto.mjs +189 -0
  966. package/dist/proofs/crypto.mjs.map +1 -0
  967. package/dist/proofs/definition.d.mts +335 -0
  968. package/dist/proofs/definition.mjs +10 -0
  969. package/dist/proofs/definition.mjs.map +1 -0
  970. package/dist/proofs/delivery.d.mts +30 -0
  971. package/dist/proofs/delivery.mjs +26 -0
  972. package/dist/proofs/delivery.mjs.map +1 -0
  973. package/dist/proofs/dispatch.d.mts +20 -0
  974. package/dist/proofs/dispatch.mjs +54 -0
  975. package/dist/proofs/dispatch.mjs.map +1 -0
  976. package/dist/proofs/errors.d.mts +21 -0
  977. package/dist/proofs/errors.mjs +25 -0
  978. package/dist/proofs/errors.mjs.map +1 -0
  979. package/dist/proofs/models.d.mts +141 -0
  980. package/dist/proofs/models.mjs +93 -0
  981. package/dist/proofs/models.mjs.map +1 -0
  982. package/dist/proofs/module.d.mts +344 -0
  983. package/dist/proofs/module.mjs +350 -0
  984. package/dist/proofs/module.mjs.map +1 -0
  985. package/dist/proofs/policy.d.mts +152 -0
  986. package/dist/proofs/policy.mjs +51 -0
  987. package/dist/proofs/policy.mjs.map +1 -0
  988. package/dist/sessions/AuthenticationAuthority.d.mts +31 -0
  989. package/dist/sessions/AuthenticationAuthority.mjs +8 -0
  990. package/dist/sessions/AuthenticationAuthority.mjs.map +1 -0
  991. package/dist/sessions/PendingAuthentication.d.mts +108 -0
  992. package/dist/sessions/PendingAuthentication.mjs +40 -0
  993. package/dist/sessions/PendingAuthentication.mjs.map +1 -0
  994. package/dist/sessions/SessionStepUpPersistence.d.mts +152 -0
  995. package/dist/sessions/SessionStepUpPersistence.mjs +63 -0
  996. package/dist/sessions/SessionStepUpPersistence.mjs.map +1 -0
  997. package/dist/sessions/assurance.d.mts +163 -0
  998. package/dist/sessions/assurance.mjs +95 -0
  999. package/dist/sessions/assurance.mjs.map +1 -0
  1000. package/dist/sessions/commit.d.mts +13 -0
  1001. package/dist/sessions/configuration.d.mts +46 -0
  1002. package/dist/sessions/configuration.mjs +55 -0
  1003. package/dist/sessions/configuration.mjs.map +1 -0
  1004. package/dist/sessions/contract.d.mts +663 -0
  1005. package/dist/sessions/contract.mjs +174 -0
  1006. package/dist/sessions/contract.mjs.map +1 -0
  1007. package/dist/sessions/crypto.d.mts +24 -0
  1008. package/dist/sessions/crypto.mjs +106 -0
  1009. package/dist/sessions/crypto.mjs.map +1 -0
  1010. package/dist/sessions/definition.d.mts +11 -0
  1011. package/dist/sessions/definition.mjs +10 -0
  1012. package/dist/sessions/definition.mjs.map +1 -0
  1013. package/dist/sessions/errors.d.mts +35 -0
  1014. package/dist/sessions/errors.mjs +34 -0
  1015. package/dist/sessions/errors.mjs.map +1 -0
  1016. package/dist/sessions/invalidation.d.mts +23 -0
  1017. package/dist/sessions/invalidation.mjs +33 -0
  1018. package/dist/sessions/invalidation.mjs.map +1 -0
  1019. package/dist/sessions/models.d.mts +143 -0
  1020. package/dist/sessions/models.mjs +94 -0
  1021. package/dist/sessions/models.mjs.map +1 -0
  1022. package/dist/sessions/module.d.mts +1091 -0
  1023. package/dist/sessions/module.mjs +943 -0
  1024. package/dist/sessions/module.mjs.map +1 -0
  1025. package/dist/sessions/persistence.d.mts +93 -0
  1026. package/dist/sessions/policy.d.mts +80 -0
  1027. package/dist/sessions/policy.mjs +66 -0
  1028. package/dist/sessions/policy.mjs.map +1 -0
  1029. package/dist/testing/conformance/AuthStore.d.mts +11 -0
  1030. package/dist/testing/conformance/AuthStore.mjs +173 -0
  1031. package/dist/testing/conformance/AuthStore.mjs.map +1 -0
  1032. package/dist/testing/conformance/OAuthConnectionStore.d.mts +11 -0
  1033. package/dist/testing/conformance/OAuthConnectionStore.mjs +102 -0
  1034. package/dist/testing/conformance/OAuthConnectionStore.mjs.map +1 -0
  1035. package/dist/testing/conformance/OAuthStateStore.d.mts +11 -0
  1036. package/dist/testing/conformance/OAuthStateStore.mjs +45 -0
  1037. package/dist/testing/conformance/OAuthStateStore.mjs.map +1 -0
  1038. package/dist/testing/conformance/PasswordCredentialStore.d.mts +20 -0
  1039. package/dist/testing/conformance/PasswordCredentialStore.mjs +103 -0
  1040. package/dist/testing/conformance/PasswordCredentialStore.mjs.map +1 -0
  1041. package/dist/testing/conformance/support.mjs +17 -0
  1042. package/dist/testing/conformance/support.mjs.map +1 -0
  1043. package/dist/testing/crypto.d.mts +11 -0
  1044. package/dist/testing/crypto.mjs +41 -0
  1045. package/dist/testing/crypto.mjs.map +1 -0
  1046. package/dist/testing/keyring.d.mts +9 -0
  1047. package/dist/testing/keyring.mjs +17 -0
  1048. package/dist/testing/keyring.mjs.map +1 -0
  1049. package/dist/totp/TotpActionEvidence.d.mts +18 -0
  1050. package/dist/totp/TotpActionEvidence.mjs +8 -0
  1051. package/dist/totp/TotpActionEvidence.mjs.map +1 -0
  1052. package/dist/totp/TotpPersistence.d.mts +19 -0
  1053. package/dist/totp/TotpPersistence.mjs +8 -0
  1054. package/dist/totp/TotpPersistence.mjs.map +1 -0
  1055. package/dist/totp/TotpSecretKeys.d.mts +15 -0
  1056. package/dist/totp/TotpSecretKeys.mjs +8 -0
  1057. package/dist/totp/TotpSecretKeys.mjs.map +1 -0
  1058. package/dist/totp/crypto.mjs +96 -0
  1059. package/dist/totp/crypto.mjs.map +1 -0
  1060. package/dist/totp/definition.d.mts +764 -0
  1061. package/dist/totp/definition.mjs +24 -0
  1062. package/dist/totp/definition.mjs.map +1 -0
  1063. package/dist/totp/errors.d.mts +16 -0
  1064. package/dist/totp/errors.mjs +18 -0
  1065. package/dist/totp/errors.mjs.map +1 -0
  1066. package/dist/totp/models.d.mts +377 -0
  1067. package/dist/totp/models.mjs +137 -0
  1068. package/dist/totp/models.mjs.map +1 -0
  1069. package/dist/totp/module.d.mts +737 -0
  1070. package/dist/totp/module.mjs +355 -0
  1071. package/dist/totp/module.mjs.map +1 -0
  1072. package/package.json +1 -0
  1073. package/src/Atom.ts +4 -0
  1074. package/src/Auth.ts +16 -0
  1075. package/src/AuthContract.ts +17 -0
  1076. package/src/AuthSession.ts +298 -0
  1077. package/src/AuthStore.ts +367 -0
  1078. package/src/AuthTokenCodec.ts +226 -0
  1079. package/src/Client.ts +9 -0
  1080. package/src/Cloudflare.ts +345 -0
  1081. package/src/Drizzle.ts +378 -0
  1082. package/src/DrizzleD1.ts +136 -0
  1083. package/src/DrizzleLibsql.ts +288 -0
  1084. package/src/DrizzleMysql2.ts +184 -0
  1085. package/src/DrizzlePglite.ts +160 -0
  1086. package/src/DrizzlePostgres.ts +160 -0
  1087. package/src/DrizzleSqliteBun.ts +244 -0
  1088. package/src/DrizzleSqliteDo.ts +473 -0
  1089. package/src/DrizzleSqliteNode.ts +245 -0
  1090. package/src/DrizzleSqliteWasm.ts +245 -0
  1091. package/src/Email.ts +55 -0
  1092. package/src/EmailOtp.ts +250 -0
  1093. package/src/EmailOtpSender.ts +28 -0
  1094. package/src/Errors.ts +103 -0
  1095. package/src/GitHub.ts +16 -0
  1096. package/src/Hooks.ts +50 -0
  1097. package/src/Http.ts +47 -0
  1098. package/src/HttpServer.ts +742 -0
  1099. package/src/Identity.ts +53 -0
  1100. package/src/IdentityResolver.ts +18 -0
  1101. package/src/OAuth.ts +242 -0
  1102. package/src/OpenIdClient.ts +13 -0
  1103. package/src/OpenIdClientConnected.ts +18 -0
  1104. package/src/OperationHttp.ts +14 -0
  1105. package/src/OperationHttpClient.ts +6 -0
  1106. package/src/OperationHttpServer.ts +15 -0
  1107. package/src/Operations.ts +69 -0
  1108. package/src/Passkey.ts +81 -0
  1109. package/src/PasskeyBrowser.ts +19 -0
  1110. package/src/PasskeyContract.ts +212 -0
  1111. package/src/PasskeyPassword.ts +319 -0
  1112. package/src/PasskeySimpleWebAuthn.ts +6 -0
  1113. package/src/Password.ts +113 -0
  1114. package/src/PasswordAuth.ts +197 -0
  1115. package/src/PasswordCredentialStore.ts +140 -0
  1116. package/src/PasswordHasher.ts +147 -0
  1117. package/src/PhoneOtp.ts +32 -0
  1118. package/src/Policy.ts +95 -0
  1119. package/src/Proofs.ts +71 -0
  1120. package/src/Rpc.ts +15 -0
  1121. package/src/Schema.ts +235 -0
  1122. package/src/SessionContract.ts +2 -0
  1123. package/src/Sessions.ts +105 -0
  1124. package/src/Testing.ts +24 -0
  1125. package/src/Totp.ts +28 -0
  1126. package/src/TotpContract.ts +147 -0
  1127. package/src/WebCrypto.ts +61 -0
  1128. package/src/Workflows.ts +12 -0
  1129. package/src/atom/AuthAtomLifetime.ts +87 -0
  1130. package/src/atom/AuthAtomWorkflow.ts +27 -0
  1131. package/src/atom/client.ts +364 -0
  1132. package/src/atom/operations.ts +183 -0
  1133. package/src/atom/scoped-runtime.ts +249 -0
  1134. package/src/auth/Auth.ts +482 -0
  1135. package/src/auth/AuthConfigurationError.ts +9 -0
  1136. package/src/auth/AuthRequest.ts +21 -0
  1137. package/src/auth/AuthStrategy.ts +116 -0
  1138. package/src/auth/ConsumeDecision.ts +4 -0
  1139. package/src/auth/actions.ts +220 -0
  1140. package/src/auth/defaults.ts +23 -0
  1141. package/src/auth/definition.ts +88 -0
  1142. package/src/auth/session.ts +146 -0
  1143. package/src/drizzle/D1BatchStatements.ts +10 -0
  1144. package/src/drizzle/PasswordPreparedPostconditions.ts +30 -0
  1145. package/src/drizzle/SuppliedService.ts +10 -0
  1146. package/src/drizzle/d1-emails.ts +1808 -0
  1147. package/src/drizzle/d1-generated-statement.ts +129 -0
  1148. package/src/drizzle/d1-identity.ts +374 -0
  1149. package/src/drizzle/d1-oauth.ts +338 -0
  1150. package/src/drizzle/d1-passkey.ts +371 -0
  1151. package/src/drizzle/d1-password-prepared.ts +1273 -0
  1152. package/src/drizzle/d1-passwords.ts +2661 -0
  1153. package/src/drizzle/d1-phone.ts +94 -0
  1154. package/src/drizzle/d1-planning.ts +105 -0
  1155. package/src/drizzle/d1-proofs.ts +2305 -0
  1156. package/src/drizzle/d1-sessions.ts +2867 -0
  1157. package/src/drizzle/d1-totp.ts +79 -0
  1158. package/src/drizzle/email-model.ts +512 -0
  1159. package/src/drizzle/email-registration.ts +696 -0
  1160. package/src/drizzle/email-sql.ts +1468 -0
  1161. package/src/drizzle/email-target.ts +243 -0
  1162. package/src/drizzle/model.ts +492 -0
  1163. package/src/drizzle/mysql-emails.ts +323 -0
  1164. package/src/drizzle/mysql-identity.ts +323 -0
  1165. package/src/drizzle/mysql-password-prepared.ts +206 -0
  1166. package/src/drizzle/mysql-passwords.ts +341 -0
  1167. package/src/drizzle/mysql-proofs.ts +183 -0
  1168. package/src/drizzle/mysql-sessions.ts +742 -0
  1169. package/src/drizzle/mysql.ts +686 -0
  1170. package/src/drizzle/oauth-accounts.ts +801 -0
  1171. package/src/drizzle/oauth-connected-access.ts +354 -0
  1172. package/src/drizzle/oauth-connected-collection.ts +324 -0
  1173. package/src/drizzle/oauth-connected-custody.ts +277 -0
  1174. package/src/drizzle/oauth-connected-drivers.ts +463 -0
  1175. package/src/drizzle/oauth-connected-flow.ts +439 -0
  1176. package/src/drizzle/oauth-connected-input.ts +128 -0
  1177. package/src/drizzle/oauth-connected-maintenance.ts +345 -0
  1178. package/src/drizzle/oauth-connected-management.ts +365 -0
  1179. package/src/drizzle/oauth-connected-model.ts +347 -0
  1180. package/src/drizzle/oauth-connected-reference.ts +112 -0
  1181. package/src/drizzle/oauth-connected-settlement.ts +226 -0
  1182. package/src/drizzle/oauth-connected-state.ts +846 -0
  1183. package/src/drizzle/oauth-connected-target.ts +264 -0
  1184. package/src/drizzle/oauth-drivers.ts +567 -0
  1185. package/src/drizzle/oauth-flow.ts +461 -0
  1186. package/src/drizzle/oauth-input.ts +205 -0
  1187. package/src/drizzle/oauth-model.ts +610 -0
  1188. package/src/drizzle/oauth-mysql.ts +10 -0
  1189. package/src/drizzle/oauth-owner.ts +29 -0
  1190. package/src/drizzle/oauth-registration.ts +638 -0
  1191. package/src/drizzle/oauth-state.ts +213 -0
  1192. package/src/drizzle/oauth-target.ts +751 -0
  1193. package/src/drizzle/passkey-admission.ts +333 -0
  1194. package/src/drizzle/passkey-credentials.ts +465 -0
  1195. package/src/drizzle/passkey-drivers.ts +385 -0
  1196. package/src/drizzle/passkey-enrollment.ts +280 -0
  1197. package/src/drizzle/passkey-flow.ts +983 -0
  1198. package/src/drizzle/passkey-management.ts +369 -0
  1199. package/src/drizzle/passkey-model.ts +350 -0
  1200. package/src/drizzle/passkey-registration-ceremony-model.ts +69 -0
  1201. package/src/drizzle/passkey-registration-ceremony.ts +254 -0
  1202. package/src/drizzle/passkey-registration-custody.ts +82 -0
  1203. package/src/drizzle/passkey-registration-write.ts +378 -0
  1204. package/src/drizzle/passkey-state.ts +307 -0
  1205. package/src/drizzle/passkey-target.ts +528 -0
  1206. package/src/drizzle/passkey-write-drivers.ts +396 -0
  1207. package/src/drizzle/passkey-write-model.ts +265 -0
  1208. package/src/drizzle/passkey-write-state.ts +627 -0
  1209. package/src/drizzle/passkey-write-target.ts +406 -0
  1210. package/src/drizzle/password-model.ts +491 -0
  1211. package/src/drizzle/password-prepared-model.ts +259 -0
  1212. package/src/drizzle/password-prepared-sql.ts +1198 -0
  1213. package/src/drizzle/password-prepared-state.ts +232 -0
  1214. package/src/drizzle/password-prepared-target.ts +158 -0
  1215. package/src/drizzle/password-registration.ts +372 -0
  1216. package/src/drizzle/password-sql.ts +2082 -0
  1217. package/src/drizzle/password-target.ts +223 -0
  1218. package/src/drizzle/pg-emails.ts +323 -0
  1219. package/src/drizzle/pg-password-prepared.ts +207 -0
  1220. package/src/drizzle/pg-passwords.ts +340 -0
  1221. package/src/drizzle/pg-proofs.ts +193 -0
  1222. package/src/drizzle/pg-sessions.ts +751 -0
  1223. package/src/drizzle/pg.ts +982 -0
  1224. package/src/drizzle/phone-model.ts +185 -0
  1225. package/src/drizzle/phone-state.ts +802 -0
  1226. package/src/drizzle/phone-target.ts +471 -0
  1227. package/src/drizzle/proof-model.ts +398 -0
  1228. package/src/drizzle/proof-sql.ts +1912 -0
  1229. package/src/drizzle/proof-target.ts +120 -0
  1230. package/src/drizzle/session-model.ts +368 -0
  1231. package/src/drizzle/session-sql.ts +2152 -0
  1232. package/src/drizzle/session-target.ts +335 -0
  1233. package/src/drizzle/sqlite-emails.ts +368 -0
  1234. package/src/drizzle/sqlite-identity.ts +343 -0
  1235. package/src/drizzle/sqlite-password-prepared.ts +262 -0
  1236. package/src/drizzle/sqlite-passwords.ts +499 -0
  1237. package/src/drizzle/sqlite-proofs.ts +204 -0
  1238. package/src/drizzle/sqlite-sessions.ts +972 -0
  1239. package/src/drizzle/sqlite.ts +704 -0
  1240. package/src/drizzle/standalone-guard.ts +38 -0
  1241. package/src/drizzle/step-up-model.ts +129 -0
  1242. package/src/drizzle/step-up-state.ts +141 -0
  1243. package/src/drizzle/totp-model.ts +91 -0
  1244. package/src/drizzle/totp-state.ts +520 -0
  1245. package/src/drizzle/totp-target.ts +304 -0
  1246. package/src/drizzle/transaction-execution.ts +290 -0
  1247. package/src/drizzle/transaction-mysql.ts +104 -0
  1248. package/src/drizzle/transaction-owner.ts +570 -0
  1249. package/src/email/EmailActionEvidence.ts +37 -0
  1250. package/src/email/EmailAddressPersistence.ts +71 -0
  1251. package/src/email/EmailIdentifierNotifier.ts +48 -0
  1252. package/src/email/EmailReturnTargets.ts +50 -0
  1253. package/src/email/EmailSignInTargets.ts +20 -0
  1254. package/src/email/addresses.ts +630 -0
  1255. package/src/email/definition.ts +309 -0
  1256. package/src/email/errors.ts +23 -0
  1257. package/src/email/magicLink.ts +84 -0
  1258. package/src/email/models.ts +50 -0
  1259. package/src/email/module.ts +664 -0
  1260. package/src/email/registration.ts +415 -0
  1261. package/src/email/snapshot.ts +51 -0
  1262. package/src/hooks/LifecycleHooks.ts +136 -0
  1263. package/src/hooks/commit.ts +271 -0
  1264. package/src/hooks/models.ts +111 -0
  1265. package/src/hooks/plugins.ts +87 -0
  1266. package/src/hooks/transactions.ts +51 -0
  1267. package/src/http/auth-api.ts +17 -0
  1268. package/src/http/auth-contract.ts +148 -0
  1269. package/src/http/auth-http.ts +467 -0
  1270. package/src/http/endpoints/get-session.ts +9 -0
  1271. package/src/http/endpoints/password-sign-in.ts +19 -0
  1272. package/src/http/endpoints/request-email-otp.ts +10 -0
  1273. package/src/http/endpoints/set-password.ts +18 -0
  1274. package/src/http/endpoints/sign-out.ts +5 -0
  1275. package/src/http/endpoints/verify-email-otp.ts +15 -0
  1276. package/src/http/models.ts +80 -0
  1277. package/src/http/security.ts +102 -0
  1278. package/src/http/session-contract.ts +92 -0
  1279. package/src/http-operation/OperationHttpInvocation.ts +39 -0
  1280. package/src/http-operation/OperationHttpServerConfig.ts +124 -0
  1281. package/src/http-operation/auth-client.ts +273 -0
  1282. package/src/http-operation/client.ts +453 -0
  1283. package/src/http-operation/configuration-schema.ts +19 -0
  1284. package/src/http-operation/contract.ts +116 -0
  1285. package/src/http-operation/errors.ts +38 -0
  1286. package/src/http-operation/models.ts +42 -0
  1287. package/src/http-operation/private.ts +50 -0
  1288. package/src/http-operation/security.ts +93 -0
  1289. package/src/http-operation/server.ts +544 -0
  1290. package/src/identity/ExternalIdentityMutation.ts +18 -0
  1291. package/src/identity/IdentityMutation.ts +41 -0
  1292. package/src/identity/IdentityRepository.ts +37 -0
  1293. package/src/identity/SubjectLifecycle.ts +80 -0
  1294. package/src/identity/SubjectProvisioner.ts +40 -0
  1295. package/src/identity/codecs.ts +54 -0
  1296. package/src/identity/models.ts +82 -0
  1297. package/src/identity/operations.ts +182 -0
  1298. package/src/index.ts +23 -0
  1299. package/src/internal/AuthStoreDecisions.ts +23 -0
  1300. package/src/internal/CurrentSession.ts +8 -0
  1301. package/src/internal/diagnostics.ts +71 -0
  1302. package/src/oauth/GithubOAuthProvider.ts +106 -0
  1303. package/src/oauth/OAuth.ts +436 -0
  1304. package/src/oauth/OAuthAccountsPersistence.ts +142 -0
  1305. package/src/oauth/OAuthActionEvidence.ts +31 -0
  1306. package/src/oauth/OAuthConnectedActionEvidence.ts +28 -0
  1307. package/src/oauth/OAuthConnectedPersistence.ts +163 -0
  1308. package/src/oauth/OAuthConnectedProtocol.ts +54 -0
  1309. package/src/oauth/OAuthConnectedRevocations.ts +48 -0
  1310. package/src/oauth/OAuthConnectedTokenProtector.ts +240 -0
  1311. package/src/oauth/OAuthConnectedTransactionProtector.ts +56 -0
  1312. package/src/oauth/OAuthConnectedUseAuthority.ts +26 -0
  1313. package/src/oauth/OAuthConnectionStore.ts +59 -0
  1314. package/src/oauth/OAuthLinkTransactionProtector.ts +58 -0
  1315. package/src/oauth/OAuthProtocol.ts +39 -0
  1316. package/src/oauth/OAuthProvider.ts +126 -0
  1317. package/src/oauth/OAuthProviders.ts +53 -0
  1318. package/src/oauth/OAuthRegistrationIntents.ts +42 -0
  1319. package/src/oauth/OAuthReturnTargets.ts +44 -0
  1320. package/src/oauth/OAuthSignInPersistence.ts +91 -0
  1321. package/src/oauth/OAuthStateDecisions.ts +16 -0
  1322. package/src/oauth/OAuthStateStore.ts +102 -0
  1323. package/src/oauth/OAuthTransactionProtector.ts +103 -0
  1324. package/src/oauth/accounts.ts +987 -0
  1325. package/src/oauth/accountsModels.ts +214 -0
  1326. package/src/oauth/connected.ts +995 -0
  1327. package/src/oauth/connectedAccess.ts +644 -0
  1328. package/src/oauth/connectedMaintenance.ts +248 -0
  1329. package/src/oauth/connectedModels.ts +495 -0
  1330. package/src/oauth/definition.ts +414 -0
  1331. package/src/oauth/errors.ts +78 -0
  1332. package/src/oauth/github/identity.ts +26 -0
  1333. package/src/oauth/github/models.ts +37 -0
  1334. package/src/oauth/github/protocol.ts +329 -0
  1335. package/src/oauth/openid-client/ProviderRevocation.ts +22 -0
  1336. package/src/oauth/openid-client/compatibility.ts +47 -0
  1337. package/src/oauth/openid-client/configuration.ts +472 -0
  1338. package/src/oauth/openid-client/connected/configuration.ts +565 -0
  1339. package/src/oauth/openid-client/connected/models.ts +58 -0
  1340. package/src/oauth/openid-client/connected/protocol.ts +866 -0
  1341. package/src/oauth/openid-client/models.ts +78 -0
  1342. package/src/oauth/openid-client/protocol.ts +437 -0
  1343. package/src/oauth/openid-client/transport.ts +67 -0
  1344. package/src/oauth/policy.ts +26 -0
  1345. package/src/oauth/registration.ts +410 -0
  1346. package/src/oauth/registrationModels.ts +115 -0
  1347. package/src/oauth/registrationSecrets.ts +127 -0
  1348. package/src/oauth/schema.ts +102 -0
  1349. package/src/oauth/signInErrors.ts +23 -0
  1350. package/src/oauth/signInModels.ts +266 -0
  1351. package/src/oauth/signInModule.ts +875 -0
  1352. package/src/oauth/signInSnapshot.ts +37 -0
  1353. package/src/oauth/transactionEncryption.ts +198 -0
  1354. package/src/operations/RequestBindingConfig.ts +12 -0
  1355. package/src/operations/actions.ts +342 -0
  1356. package/src/operations/context.ts +130 -0
  1357. package/src/operations/credentials.ts +121 -0
  1358. package/src/operations/errors.ts +53 -0
  1359. package/src/operations/operation.ts +740 -0
  1360. package/src/operations/requestBinding.ts +237 -0
  1361. package/src/operations/requestBindingModels.ts +18 -0
  1362. package/src/operations/reveals.ts +147 -0
  1363. package/src/passkey/PasskeyActionEvidence.ts +25 -0
  1364. package/src/passkey/PasskeyCredentials.ts +16 -0
  1365. package/src/passkey/PasskeyEnrollmentContext.ts +26 -0
  1366. package/src/passkey/PasskeyManagementPersistence.ts +124 -0
  1367. package/src/passkey/PasskeyPersistence.ts +85 -0
  1368. package/src/passkey/PasskeyProtocol.ts +48 -0
  1369. package/src/passkey/actions.ts +905 -0
  1370. package/src/passkey/browser/PasskeyBrowser.ts +26 -0
  1371. package/src/passkey/browser/models.ts +67 -0
  1372. package/src/passkey/browser/simplewebauthn.ts +621 -0
  1373. package/src/passkey/definition.ts +386 -0
  1374. package/src/passkey/errors.ts +39 -0
  1375. package/src/passkey/management.ts +552 -0
  1376. package/src/passkey/models.ts +414 -0
  1377. package/src/passkey/module.ts +367 -0
  1378. package/src/passkey/pending.ts +203 -0
  1379. package/src/passkey/policy.ts +88 -0
  1380. package/src/passkey/registration.ts +251 -0
  1381. package/src/passkey/simplewebauthn/configuration.ts +97 -0
  1382. package/src/passkey/simplewebauthn/models.ts +9 -0
  1383. package/src/passkey/simplewebauthn/protocol.ts +729 -0
  1384. package/src/passkey/snapshot.ts +48 -0
  1385. package/src/passkey/stepUp.ts +212 -0
  1386. package/src/password/CompromisedPasswords.ts +36 -0
  1387. package/src/password/NewPasswordCheck.ts +89 -0
  1388. package/src/password/PasswordHashing.ts +209 -0
  1389. package/src/password/PasswordKdfAdmission.ts +44 -0
  1390. package/src/password/configuration.ts +52 -0
  1391. package/src/password/defaults.ts +15 -0
  1392. package/src/password/encoding.ts +137 -0
  1393. package/src/password/errors.ts +43 -0
  1394. package/src/password/methods/PasswordActionEvidence.ts +41 -0
  1395. package/src/password/methods/PasswordPersistence.ts +128 -0
  1396. package/src/password/methods/PasswordPreparedPersistence.ts +123 -0
  1397. package/src/password/methods/contracts.ts +47 -0
  1398. package/src/password/methods/definition.ts +199 -0
  1399. package/src/password/methods/errors.ts +26 -0
  1400. package/src/password/methods/models.ts +80 -0
  1401. package/src/password/methods/module.ts +986 -0
  1402. package/src/password/methods/policy.ts +68 -0
  1403. package/src/password/methods/preparation.ts +73 -0
  1404. package/src/password/methods/prepared.ts +1199 -0
  1405. package/src/password/methods/preparedModels.ts +496 -0
  1406. package/src/password/methods/signIn.ts +136 -0
  1407. package/src/password/methods/snapshot.ts +53 -0
  1408. package/src/password/methods/verification.ts +266 -0
  1409. package/src/password/models.ts +15 -0
  1410. package/src/password/policy.ts +41 -0
  1411. package/src/phone/PhoneActionEvidence.ts +26 -0
  1412. package/src/phone/PhoneAdmission.ts +29 -0
  1413. package/src/phone/PhoneDeliveryEligibility.ts +9 -0
  1414. package/src/phone/PhonePersistence.ts +43 -0
  1415. package/src/phone/PhoneRequestContext.ts +7 -0
  1416. package/src/phone/PhoneSignInTargets.ts +19 -0
  1417. package/src/phone/definition.ts +87 -0
  1418. package/src/phone/failure.ts +40 -0
  1419. package/src/phone/lifecycle.ts +662 -0
  1420. package/src/phone/lifecycleModels.ts +108 -0
  1421. package/src/phone/models.ts +41 -0
  1422. package/src/phone/module.ts +433 -0
  1423. package/src/proofs/EmailProofDelivery.ts +19 -0
  1424. package/src/proofs/HostIngressLimiter.ts +20 -0
  1425. package/src/proofs/ProofPersistence.ts +172 -0
  1426. package/src/proofs/SmsProofDelivery.ts +19 -0
  1427. package/src/proofs/abuse.ts +23 -0
  1428. package/src/proofs/completion.ts +23 -0
  1429. package/src/proofs/crypto.ts +326 -0
  1430. package/src/proofs/definition.ts +39 -0
  1431. package/src/proofs/delivery.ts +73 -0
  1432. package/src/proofs/dispatch.ts +99 -0
  1433. package/src/proofs/errors.ts +46 -0
  1434. package/src/proofs/models.ts +131 -0
  1435. package/src/proofs/module.ts +620 -0
  1436. package/src/proofs/policy.ts +77 -0
  1437. package/src/sessions/AuthenticationAuthority.ts +51 -0
  1438. package/src/sessions/PendingAuthentication.ts +121 -0
  1439. package/src/sessions/SessionStepUpPersistence.ts +164 -0
  1440. package/src/sessions/assurance.ts +192 -0
  1441. package/src/sessions/commit.ts +13 -0
  1442. package/src/sessions/configuration.ts +133 -0
  1443. package/src/sessions/contract.ts +203 -0
  1444. package/src/sessions/crypto.ts +181 -0
  1445. package/src/sessions/definition.ts +25 -0
  1446. package/src/sessions/errors.ts +68 -0
  1447. package/src/sessions/invalidation.ts +46 -0
  1448. package/src/sessions/models.ts +138 -0
  1449. package/src/sessions/module.ts +1991 -0
  1450. package/src/sessions/persistence.ts +135 -0
  1451. package/src/sessions/policy.ts +103 -0
  1452. package/src/testing/conformance/AuthStore.ts +314 -0
  1453. package/src/testing/conformance/OAuthConnectionStore.ts +167 -0
  1454. package/src/testing/conformance/OAuthStateStore.ts +105 -0
  1455. package/src/testing/conformance/PasswordCredentialStore.ts +205 -0
  1456. package/src/testing/conformance/support.ts +38 -0
  1457. package/src/testing/crypto.ts +55 -0
  1458. package/src/testing/keyring.ts +17 -0
  1459. package/src/totp/TotpActionEvidence.ts +18 -0
  1460. package/src/totp/TotpPersistence.ts +26 -0
  1461. package/src/totp/TotpSecretKeys.ts +15 -0
  1462. package/src/totp/crypto.ts +160 -0
  1463. package/src/totp/definition.ts +78 -0
  1464. package/src/totp/errors.ts +25 -0
  1465. package/src/totp/models.ts +164 -0
  1466. package/src/totp/module.ts +717 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connected.mjs","names":["M.OAuthConnectedActionRequired","M.OAuthConnectedBusy","M.OAuthConnectedReauthorizationRequired","M.OAuthConnectedTarget","M.OAuthConnectedConfiguration","M.OAuthConnectedTransactionContext","M.OAuthConnectedActionChallenge","M.OAuthConnectedActionAuthorization","M.OAuthConnectedBegin","M.OAuthConnectedProfile","M.OAuthConnectedPendingFlow","M.OAuthConnectedIssueDecision","M.OAuthConnectedComplete","M.OAuthConnectedAccess","M.OAuthConnectedClaimDecision","M.OAuthConnectedClaim","M.OAuthConnectedGrantInspection","M.OAuthConnectedTokenContext","M.OAuthConnectedTokenMaterial","M.OAuthConnectedStoredGrant","M.OAuthConnectedRevocationContext","M.OAuthConnectedRevocationJob","M.OAuthConnectedOutcome","M.OAuthConnectedSettlementDecision","M.OAuthConnectedList","M.OAuthConnectedListResult","M.OAuthConnectedDisconnect","M.OAuthConnectedDisconnectInspection","M.OAuthConnectedDisconnectGrant","M.OAuthConnectedDisconnectDecision","M.OAuthConnectedResult","M.OAuthConnectedDisconnected"],"sources":["../../src/oauth/connected.ts"],"sourcesContent":["import {\n Cause,\n Context,\n Crypto,\n DateTime,\n Effect,\n Encoding,\n Exit,\n Layer,\n Redacted,\n Result,\n Schema,\n} from \"effect\";\n\nimport { LifecycleHooks } from \"../hooks/LifecycleHooks\";\nimport { HookDenied, LifecycleEventId, lifecycleEvent, lifecycleSnapshot } from \"../hooks/models\";\nimport { IdentityConflict } from \"../identity/models\";\nimport type { AuthInvocation } from \"../operations/context\";\nimport type { AuthCredentialCommand, AuthOperationResult } from \"../operations/credentials\";\nimport { AuthenticationRequired } from \"../operations/errors\";\nimport { makeOperation, operationGroup } from \"../operations/operation\";\nimport { makeRequestBinding } from \"../operations/requestBinding\";\nimport { TokenDigest } from \"../Schema\";\nimport { assessAuthentication } from \"../sessions/assurance\";\nimport { AuthenticationFlowId, SecurityRevision } from \"../sessions/models\";\nimport { OAuthAccountRevision } from \"./accountsModels\";\nimport {\n captureConnectedPolicy,\n connectedBounded,\n connectedCaller,\n connectedGrantResponse,\n connectedProfile,\n connectedRead,\n connectedSafe,\n connectedSame,\n connectedUseAuthorization,\n makeOAuthConnectedAccess,\n validateConnectedPolicy,\n wipeConnectedMaterial,\n} from \"./connectedAccess\";\nimport { makeOAuthConnectedMaintenance } from \"./connectedMaintenance\";\nimport * as M from \"./connectedModels\";\nimport { OAuthConnectedActionEvidence } from \"./OAuthConnectedActionEvidence\";\nimport { OAuthConnectedPersistence } from \"./OAuthConnectedPersistence\";\nimport { OAuthConnectedProtocol } from \"./OAuthConnectedProtocol\";\nimport { OAuthConnectedTokenProtector } from \"./OAuthConnectedTokenProtector\";\nimport { OAuthConnectedTransactionProtector } from \"./OAuthConnectedTransactionProtector\";\nimport { OAuthConnectedUseAuthority } from \"./OAuthConnectedUseAuthority\";\nimport { OAuthReturnTargets } from \"./OAuthReturnTargets\";\nimport {\n OAuthMethodUnsupported,\n OAuthProtocolRejected,\n OAuthRejected,\n OAuthUnavailable,\n} from \"./signInErrors\";\nimport {\n OAuthAuthorizationUrl,\n OAuthCallbackResponse,\n OAuthClaimId,\n OAuthExternalIdentity,\n OAuthReturnTarget,\n OAuthSealedTransaction,\n OAuthSignInAuthorization,\n OAuthTransactionSecrets,\n} from \"./signInModels\";\nimport { snapshotOAuth, snapshotOAuthSync } from \"./signInSnapshot\";\n\nconst Failure = Schema.Union([\n AuthenticationRequired,\n M.OAuthConnectedActionRequired,\n M.OAuthConnectedBusy,\n M.OAuthConnectedReauthorizationRequired,\n OAuthRejected,\n OAuthUnavailable,\n OAuthMethodUnsupported,\n IdentityConflict,\n HookDenied,\n]);\n\ntype Failure = typeof Failure.Type;\n\nconst capturedSchema = Schema.Struct({\n revision: OAuthAccountRevision,\n target: Schema.optionalKey(M.OAuthConnectedTarget),\n});\n\nconst preparationSchema = Schema.Struct({\n configuration: M.OAuthConnectedConfiguration,\n authorizationUrl: OAuthAuthorizationUrl,\n secrets: OAuthTransactionSecrets,\n});\n\nconst encoder = new TextEncoder();\nconst strings = Schema.fromJsonString(Schema.Array(Schema.String));\nconst contextJson = Schema.fromJsonString(M.OAuthConnectedTransactionContext);\n\nconst clearBinding: ReadonlyArray<AuthCredentialCommand> = Object.freeze([\n Object.freeze({ _tag: \"Clear\", slot: \"request-binding\" }),\n]);\n\nexport interface ConnectedModule<Id extends string> {\n readonly moduleId: Id;\n readonly kind: \"oauth-connected\";\n}\n\n/** Opt-in API access. No login factor/session creation or token-bearing RPC. */\nexport const makeOAuthConnected = <const Id extends string>(\n moduleId: Id,\n configuration: M.OAuthConnectedPolicy,\n) => {\n const binding = makeRequestBinding(moduleId, \"oauth-connected\");\n\n const Connected = Context.Service<\n ConnectedModule<Id>,\n {\n readonly begin: (\n invocation: AuthInvocation,\n input: typeof M.OAuthConnectedBegin.Type,\n ) => Effect.Effect<AuthOperationResult<typeof OAuthSignInAuthorization.Type>, Failure>;\n readonly complete: (\n invocation: AuthInvocation,\n input: typeof M.OAuthConnectedComplete.Type,\n ) => Effect.Effect<AuthOperationResult<typeof M.OAuthConnectedResult.Type>, Failure>;\n readonly list: (\n invocation: AuthInvocation,\n input: typeof M.OAuthConnectedList.Type,\n ) => Effect.Effect<typeof M.OAuthConnectedListResult.Type, Failure>;\n readonly disconnect: (\n invocation: AuthInvocation,\n input: typeof M.OAuthConnectedDisconnect.Type,\n ) => Effect.Effect<typeof M.OAuthConnectedDisconnected.Type, Failure>;\n }\n >()(\"effect-auth/oauth/\" + moduleId.length + \":\" + moduleId + \"/Connected\");\n\n const captured = captureConnectedPolicy(configuration);\n\n const layer = Layer.effect(\n Connected,\n Effect.gen(function* () {\n const { id, policy } = yield* validateConnectedPolicy(moduleId, captured);\n const { issue: issueBinding, verify: verifyBinding } = yield* binding.RequestBinding;\n\n const {\n capture,\n issue,\n preflight,\n claim,\n inspectGrant,\n settle,\n list: listRows,\n inspectDisconnect,\n disconnect: disconnectRow,\n } = yield* OAuthConnectedPersistence;\n\n const { verify: verifyAction } = yield* OAuthConnectedActionEvidence;\n const { authorize: authorizeUse } = yield* OAuthConnectedUseAuthority;\n const { prepareAuthorization, exchangeGrant } = yield* OAuthConnectedProtocol;\n const { seal: sealFlow, open: openFlow } = yield* OAuthConnectedTransactionProtector;\n const { seal: sealTokens, open: openTokens } = yield* OAuthConnectedTokenProtector;\n const { resolve: resolveTarget } = yield* OAuthReturnTargets;\n const { before } = yield* LifecycleHooks;\n const { randomBytes, digest } = yield* Crypto.Crypto;\n\n const random = Effect.fn(\"OAuthConnected.random\")(function* () {\n const bytes = yield* randomBytes(32).pipe(Effect.mapError(() => OAuthUnavailable.make({})));\n const value = OAuthClaimId.make(Encoding.encodeBase64Url(bytes));\n\n bytes.fill(0);\n\n return value;\n });\n\n const hash = Effect.fn(\"OAuthConnected.hash\")(function* (value: string) {\n const bytes = yield* digest(\"SHA-256\", encoder.encode(value)).pipe(\n Effect.mapError(() => OAuthUnavailable.make({})),\n );\n\n return TokenDigest.make(Encoding.encodeBase64Url(bytes));\n });\n\n const stateDigest = Effect.fn(\"OAuthConnected.stateDigest\")(function* (\n flowId: typeof M.OAuthConnectedBegin.Type.flowId,\n provider: typeof M.OAuthConnectedTransactionContext.Type.provider,\n secret: Redacted.Redacted<string>,\n ) {\n const raw = Redacted.value(secret);\n\n if (!/^[A-Za-z0-9_-]{43}$/.test(raw)) return yield* OAuthRejected.make({});\n const bytes = Result.getOrUndefined(Encoding.decodeBase64Url(raw));\n\n if (!bytes || bytes.length !== 32 || Encoding.encodeBase64Url(bytes) !== raw) {\n bytes?.fill(0);\n\n return yield* OAuthRejected.make({});\n }\n bytes.fill(0);\n\n return yield* hash(\n Schema.encodeSync(strings)([\n \"effect-auth/oauth-connected-state/v1\",\n id,\n String(policy.generation),\n provider,\n flowId,\n raw,\n ]),\n );\n });\n\n const challenge = Effect.fn(\"OAuthConnected.challenge\")(function* (\n action: M.OAuthConnectedActionChallenge[\"action\"],\n flowId: M.OAuthConnectedActionChallenge[\"flowId\"],\n commandId: M.OAuthConnectedActionChallenge[\"commandId\"],\n revision: OAuthAccountRevision,\n intent: string,\n ) {\n const intentDigest = yield* hash(intent);\n\n return snapshotOAuthSync(M.OAuthConnectedActionChallenge, {\n moduleId: id,\n action,\n flowId,\n commandId,\n revision,\n intentDigest,\n bindingDigest: yield* hash(\n Schema.encodeSync(strings)([\n \"effect-auth/oauth-connected-action/v1\",\n id,\n action,\n flowId,\n commandId,\n intentDigest,\n ]),\n ),\n });\n });\n\n const authorize = Effect.fn(\"OAuthConnected.authorize\")(function* (\n caller: Effect.Success<ReturnType<typeof connectedCaller>>,\n expected: M.OAuthConnectedActionChallenge,\n proof: Redacted.Redacted<string> | undefined,\n maximumAge = policy.maximumEvidenceAgeMillis,\n ) {\n const granted = yield* verifyAction({\n invocation: { ...caller },\n challenge: snapshotOAuthSync(M.OAuthConnectedActionChallenge, expected),\n ...(proof === undefined ? {} : { proof: Redacted.make(Redacted.value(proof)) }),\n });\n\n const authorization = yield* snapshotOAuth(M.OAuthConnectedActionAuthorization, {\n challenge: expected,\n evidence: granted.evidence,\n requirement: {\n ...granted.requirement,\n maximumAgeMillis: Math.min(\n maximumAge,\n policy.maximumEvidenceAgeMillis,\n granted.requirement.maximumAgeMillis,\n ),\n },\n }).pipe(Effect.mapError(() => M.OAuthConnectedActionRequired.make({})));\n\n const evidence = authorization.evidence;\n\n if (\n evidence.flowId !== AuthenticationFlowId.make(expected.flowId) ||\n evidence.bindingDigest !== expected.bindingDigest ||\n !connectedSame(OAuthAccountRevision, evidence.revision, expected.revision) ||\n new Set(evidence.revision.credentials.map((v) => v.credentialId)).size !==\n evidence.revision.credentials.length ||\n !(yield* assessAuthentication(evidence, authorization.requirement).pipe(\n Effect.mapError(() => M.OAuthConnectedActionRequired.make({})),\n )).satisfied\n )\n return yield* M.OAuthConnectedActionRequired.make({});\n\n return authorization;\n });\n\n const binderError = (error: { readonly _tag: string }) =>\n error._tag === \"RequestBindingInvalid\" ? OAuthRejected.make({}) : OAuthUnavailable.make({});\n\n const eventFor = Effect.fn(\"OAuthConnected.event\")(function* (\n operation: \"connect\" | \"disconnect\",\n subjectId: OAuthAccountRevision[\"subjectId\"],\n ) {\n const snapshot = lifecycleSnapshot({\n action: \"linking\",\n operation: moduleId + \"/connected/\" + operation,\n subjectId,\n method: \"oauth-connected\",\n identifiers: [],\n });\n\n yield* before(snapshot);\n\n return lifecycleEvent({\n id: LifecycleEventId.make(yield* random()),\n occurredAtMillis: DateTime.toEpochMillis(yield* DateTime.now),\n snapshot,\n });\n });\n\n const begin = Effect.fn(\"OAuthConnected.begin\")(function* (\n invocation: AuthInvocation,\n raw: typeof M.OAuthConnectedBegin.Type,\n ) {\n const caller = yield* connectedCaller(invocation);\n const request = yield* snapshotOAuth(M.OAuthConnectedBegin, raw);\n\n const found = yield* capture({\n moduleId: id,\n subjectId: caller.subjectId,\n ...(request.intent._tag === \"Reconnect\" ? { grantId: request.intent.grantId } : {}),\n });\n\n if (!found) return yield* OAuthRejected.make({});\n const owned = yield* snapshotOAuth(capturedSchema, found);\n\n if (\n owned.revision.subjectId !== caller.subjectId ||\n (request.intent._tag === \"Reconnect\" &&\n (!owned.target || owned.target.grantId !== request.intent.grantId))\n )\n return yield* OAuthUnavailable.make({});\n\n const profile = policy.profiles.find(\n (value) => value.key === request.intent.profileKey && value.issuance === \"active\",\n );\n\n const provider =\n request.intent._tag === \"Connect\"\n ? request.intent.provider\n : owned.target!.identity.provider;\n\n if (\n !profile ||\n profile.provider !== provider ||\n (request.intent._tag === \"Reconnect\" &&\n profile.clientRegistrationId !==\n owned.target!.configuration.profile.clientRegistrationId)\n )\n return yield* OAuthRejected.make({});\n\n const returnTarget = yield* resolveTarget(request.returnTarget).pipe(\n Effect.flatMap((value) => snapshotOAuth(OAuthReturnTarget, value)),\n );\n\n const issued = yield* issueBinding(request.flowId).pipe(Effect.mapError(binderError));\n const original = issued.credentialCommands[0];\n\n if (\n issued.credentialCommands.length !== 1 ||\n original?._tag !== \"Issue\" ||\n original.slot !== \"request-binding\" ||\n issued.value.flowId !== request.flowId ||\n original.expiresAtMillis !== issued.value.expiresAtMillis\n )\n return yield* OAuthUnavailable.make({});\n\n const command = Object.freeze({\n _tag: \"Issue\" as const,\n slot: \"request-binding\" as const,\n credential: Redacted.make(Redacted.value(original.credential)),\n expiresAtMillis: original.expiresAtMillis,\n });\n\n const binder = {\n ...(yield* verifyBinding(\n request.flowId,\n Redacted.make(Redacted.value(command.credential)),\n ).pipe(Effect.mapError(binderError))),\n };\n\n if (binder.expiresAtMillis !== command.expiresAtMillis)\n return yield* OAuthUnavailable.make({});\n\n const prepared = yield* prepareAuthorization({\n profile: snapshotOAuthSync(M.OAuthConnectedProfile, profile),\n callbackId: request.callbackId,\n flowId: request.flowId,\n }).pipe(\n Effect.mapError((error) =>\n error._tag === \"OAuthProtocolRejected\" ? OAuthRejected.make({}) : error,\n ),\n Effect.flatMap((value) => snapshotOAuth(preparationSchema, value)),\n );\n\n if (\n prepared.configuration.provider !== provider ||\n prepared.configuration.callbackId !== request.callbackId ||\n !connectedSame(M.OAuthConnectedProfile, prepared.configuration.profile, profile) ||\n (prepared.configuration.protocol === \"oidc\") !==\n (prepared.secrets.oidcNonce !== undefined) ||\n (request.intent._tag === \"Reconnect\" &&\n prepared.configuration.issuer !== owned.target!.identity.issuer)\n )\n return yield* OAuthUnavailable.make({});\n const now = DateTime.toEpochMillis(yield* DateTime.now);\n const expiresAtMillis = Math.min(now + policy.lifetimeMillis, binder.expiresAtMillis);\n\n if (expiresAtMillis <= now) return yield* OAuthRejected.make({});\n\n const context = snapshotOAuthSync(M.OAuthConnectedTransactionContext, {\n ...prepared.configuration,\n namespace: \"effect-auth/oauth-connected-context/v1\",\n moduleId: id,\n generation: policy.generation,\n flowId: request.flowId,\n commandId: request.commandId,\n revision: owned.revision,\n grantId:\n request.intent._tag === \"Reconnect\"\n ? request.intent.grantId\n : M.OAuthGrantId.make(yield* random()),\n ...(request.intent._tag === \"Reconnect\" ? { reconnect: owned.target } : {}),\n maximumEvidenceAgeMillis: policy.maximumEvidenceAgeMillis,\n returnTarget,\n stateDigest: yield* stateDigest(request.flowId, provider, prepared.secrets.state),\n requestBindingVerifier: binder.verifier,\n requestBindingExpiresAtMillis: binder.expiresAtMillis,\n issuedAtMillis: now,\n expiresAtMillis,\n claimLifetimeMillis: policy.claimLifetimeMillis,\n });\n\n const authorization = yield* authorize(\n caller,\n yield* challenge(\n \"connected-begin\",\n context.flowId,\n context.commandId,\n context.revision,\n Schema.encodeSync(contextJson)(context),\n ),\n request.actionProof,\n );\n\n const sealed = yield* sealFlow({\n context,\n secrets: snapshotOAuthSync(OAuthTransactionSecrets, prepared.secrets),\n }).pipe(Effect.flatMap((value) => snapshotOAuth(OAuthSealedTransaction, value)));\n\n const flow = snapshotOAuthSync(M.OAuthConnectedPendingFlow, {\n context,\n sealed,\n retentionUntilMillis: expiresAtMillis + policy.retentionMillis,\n });\n\n const receipt = yield* issue(\n { flow: snapshotOAuthSync(M.OAuthConnectedPendingFlow, flow), authorization },\n (value, journal) => {\n const decision = snapshotOAuthSync(M.OAuthConnectedIssueDecision, value);\n\n if (\n decision._tag === \"Issued\" &&\n !connectedSame(M.OAuthConnectedPendingFlow, decision.flow, flow)\n )\n throw OAuthUnavailable.make({});\n\n return journal.prepare(decision._tag === \"Issued\");\n },\n );\n\n if (!(yield* connectedRead(receipt))) return yield* OAuthRejected.make({});\n\n return {\n value: {\n flowId: request.flowId,\n authorizationUrl: prepared.authorizationUrl,\n expiresAtMillis,\n },\n credentialCommands: [command],\n };\n }, connectedSafe);\n\n const complete = Effect.fn(\"OAuthConnected.complete\")(function* (\n invocation: AuthInvocation,\n raw: typeof M.OAuthConnectedComplete.Type,\n ) {\n const caller = yield* connectedCaller(invocation);\n const request = yield* snapshotOAuth(M.OAuthConnectedComplete, raw);\n const response = request.response;\n\n if (\n encoder.encode(Schema.encodeSync(Schema.fromJsonString(OAuthCallbackResponse))(response))\n .length > 16384\n )\n return yield* OAuthRejected.make({});\n\n const binder = {\n ...(yield* verifyBinding(request.flowId, request.requestBinding).pipe(\n Effect.mapError(binderError),\n )),\n };\n\n const access = snapshotOAuthSync(M.OAuthConnectedAccess, {\n moduleId: id,\n generation: policy.generation,\n subjectId: caller.subjectId,\n flowId: request.flowId,\n provider: request.provider,\n callbackId: request.callbackId,\n stateDigest: yield* stateDigest(request.flowId, request.provider, response.state),\n requestBindingVerifier: binder.verifier,\n requestBindingExpiresAtMillis: binder.expiresAtMillis,\n ...(response.issuer === undefined ? {} : { responseIssuer: response.issuer }),\n nowMillis: DateTime.toEpochMillis(yield* DateTime.now),\n });\n\n const inspected = yield* preflight(access);\n\n if (!inspected) return yield* OAuthRejected.make({});\n const flow = yield* snapshotOAuth(M.OAuthConnectedPendingFlow, inspected);\n const context = flow.context;\n\n if (\n context.moduleId !== id ||\n context.generation !== policy.generation ||\n context.flowId !== request.flowId ||\n context.provider !== request.provider ||\n context.callbackId !== request.callbackId ||\n context.revision.subjectId !== caller.subjectId ||\n context.stateDigest !== access.stateDigest ||\n context.requestBindingVerifier !== binder.verifier ||\n context.requestBindingExpiresAtMillis !== binder.expiresAtMillis ||\n context.expiresAtMillis > binder.expiresAtMillis ||\n access.nowMillis < context.issuedAtMillis ||\n access.nowMillis >= context.expiresAtMillis ||\n !connectedProfile(policy, context.profile) ||\n (context.responseIssuerMode === \"required\"\n ? response.issuer !== context.issuer\n : response.issuer !== undefined)\n )\n return yield* OAuthUnavailable.make({});\n\n const authorization = yield* authorize(\n caller,\n yield* challenge(\n \"connected-complete\",\n context.flowId,\n context.commandId,\n context.revision,\n Schema.encodeSync(contextJson)(context),\n ),\n request.actionProof,\n context.maximumEvidenceAgeMillis,\n );\n\n const event = yield* eventFor(\"connect\", caller.subjectId);\n const claimId = yield* random();\n\n const finished = yield* Effect.uninterruptibleMask((restore) =>\n Effect.gen(function* () {\n const receipt = yield* restore(\n claim({ access, flow, claimId, authorization }, (value, journal) =>\n journal.prepare(snapshotOAuthSync(M.OAuthConnectedClaimDecision, value)),\n ),\n );\n\n const decision = yield* connectedRead(receipt);\n\n if (decision._tag !== \"Claimed\") return yield* OAuthRejected.make({});\n const owned = snapshotOAuthSync(M.OAuthConnectedClaim, decision.claim);\n\n if (\n owned.claimId !== claimId ||\n !connectedSame(M.OAuthConnectedPendingFlow, owned.flow, flow) ||\n owned.claimedAtMillis < context.issuedAtMillis ||\n owned.claimedAtMillis >= context.expiresAtMillis ||\n owned.claimedAtMillis > DateTime.toEpochMillis(yield* DateTime.now) ||\n owned.claimExpiresAtMillis !== owned.claimedAtMillis + context.claimLifetimeMillis ||\n flow.retentionUntilMillis < owned.claimExpiresAtMillis\n )\n return yield* OAuthUnavailable.make({});\n\n const exchange = Effect.gen(function* () {\n const secrets = yield* openFlow({ context, sealed: flow.sealed }).pipe(\n Effect.flatMap((value) => snapshotOAuth(OAuthTransactionSecrets, value)),\n );\n\n if (\n (context.protocol === \"oidc\") !== (secrets.oidcNonce !== undefined) ||\n (yield* stateDigest(context.flowId, context.provider, secrets.state)) !==\n context.stateDigest ||\n Redacted.value(secrets.state) !== Redacted.value(response.state)\n )\n return yield* OAuthUnavailable.make({});\n if (response._tag !== \"Code\") return yield* OAuthProtocolRejected.make({});\n const start = DateTime.toEpochMillis(yield* DateTime.now);\n\n if (start >= owned.claimExpiresAtMillis) return yield* OAuthUnavailable.make({});\n\n const protocolConfiguration = snapshotOAuthSync(\n M.OAuthConnectedConfiguration,\n context,\n );\n\n const rawGrant = yield* exchangeGrant({\n configuration: protocolConfiguration,\n secrets,\n response,\n verificationStartedAt: DateTime.makeUnsafe(start),\n });\n\n const projected = yield* connectedGrantResponse(\n protocolConfiguration,\n rawGrant,\n start,\n );\n\n return yield* Effect.gen(function* () {\n if (\n (context.reconnect &&\n !connectedSame(\n OAuthExternalIdentity,\n context.reconnect.identity,\n projected.identity,\n )) ||\n (projected.material.continuation._tag === \"Oidc\" &&\n (!projected.material.continuation.nonce ||\n !secrets.oidcNonce ||\n Redacted.value(projected.material.continuation.nonce) !==\n Redacted.value(secrets.oidcNonce)))\n )\n return yield* OAuthProtocolRejected.make({});\n\n const inspectedGrant = yield* inspectGrant({\n claim: owned,\n identity: projected.identity,\n }).pipe(\n Effect.flatMap((value) => snapshotOAuth(M.OAuthConnectedGrantInspection, value)),\n );\n\n if (inspectedGrant._tag === \"Conflict\") return { _tag: \"Conflict\" as const };\n if (inspectedGrant._tag === \"Rejected\") return { _tag: \"Rejected\" as const };\n\n const tokenContext = snapshotOAuthSync(M.OAuthConnectedTokenContext, {\n namespace: \"effect-auth/oauth-connected-token-context/v1\",\n moduleId: id,\n subjectId: caller.subjectId,\n identity: projected.identity,\n configuration: protocolConfiguration,\n grantId: context.grantId,\n grantVersion: SecurityRevision.make(yield* random()),\n tokenVersion: SecurityRevision.make(yield* random()),\n cohortGeneration: inspectedGrant.cohortGeneration,\n metadata: projected.metadata,\n });\n\n const sealed = yield* sealTokens({\n context: tokenContext,\n material: snapshotOAuthSync(M.OAuthConnectedTokenMaterial, projected.material),\n });\n\n const grant = snapshotOAuthSync(M.OAuthConnectedStoredGrant, {\n context: tokenContext,\n sealed,\n });\n\n let cleanup: M.OAuthConnectedRevocationJob | undefined;\n\n if (context.profile.revocation === \"cohort\") {\n const cleanupContext = snapshotOAuthSync(M.OAuthConnectedRevocationContext, {\n namespace: \"effect-auth/oauth-connected-revocation-context/v1\",\n jobId: yield* random(),\n token: tokenContext,\n });\n\n cleanup = snapshotOAuthSync(M.OAuthConnectedRevocationJob, {\n context: cleanupContext,\n sealed: yield* sealTokens({\n context: cleanupContext,\n material: snapshotOAuthSync(\n M.OAuthConnectedTokenMaterial,\n projected.material,\n ),\n }),\n });\n }\n\n return snapshotOAuthSync(M.OAuthConnectedOutcome, {\n _tag: inspectedGrant._tag === \"Quarantine\" ? \"Quarantined\" : \"Verified\",\n grant,\n ...(cleanup ? { cleanup } : {}),\n });\n }).pipe(\n Effect.ensuring(Effect.sync(() => wipeConnectedMaterial(projected.material))),\n );\n });\n\n const remaining = Math.max(\n 1,\n owned.claimExpiresAtMillis - DateTime.toEpochMillis(yield* DateTime.now),\n );\n\n const exchanged =\n response._tag === \"Error\"\n ? undefined\n : yield* Effect.exit(restore(connectedBounded(exchange, remaining)));\n\n const rejected =\n exchanged &&\n Exit.isFailure(exchanged) &&\n exchanged.cause.reasons.length === 1 &&\n exchanged.cause.reasons[0]?._tag === \"Fail\" &&\n Schema.is(OAuthProtocolRejected)(exchanged.cause.reasons[0].error);\n\n const outcome: M.OAuthConnectedOutcome =\n exchanged === undefined\n ? { _tag: \"Cancelled\" }\n : Exit.isSuccess(exchanged)\n ? exchanged.value\n : rejected\n ? { _tag: \"Rejected\" }\n : { _tag: \"Ambiguous\" };\n\n const committed = yield* connectedBounded(\n settle(\n {\n claim: owned,\n outcome,\n authorization,\n nowMillis: DateTime.toEpochMillis(yield* DateTime.now),\n },\n (value, journal) => {\n const result = snapshotOAuthSync(M.OAuthConnectedSettlementDecision, value);\n\n if (result._tag === \"Connected\") {\n if (\n outcome._tag !== \"Verified\" ||\n !connectedSame(M.OAuthConnectedStoredGrant, result.grant, outcome.grant)\n )\n throw OAuthUnavailable.make({});\n journal.stage(event);\n } else if (result._tag === \"Cancelled\" && outcome._tag !== \"Cancelled\")\n throw OAuthUnavailable.make({});\n\n return journal.prepare(result);\n },\n ),\n policy.settlementTimeoutMillis,\n ).pipe(\n Effect.flatMap(connectedRead),\n Effect.mapError(() => OAuthUnavailable.make({})),\n );\n\n if (exchanged && Exit.isFailure(exchanged) && Cause.hasInterrupts(exchanged.cause))\n return yield* Effect.interrupt;\n\n return committed;\n }),\n );\n\n if (finished._tag === \"Ambiguous\") return yield* OAuthUnavailable.make({});\n if (finished._tag === \"Busy\") return yield* M.OAuthConnectedBusy.make({});\n if (finished._tag === \"Conflict\") return yield* IdentityConflict.make({});\n if (finished._tag === \"Rejected\") return yield* OAuthRejected.make({});\n\n return {\n value:\n finished._tag === \"Cancelled\"\n ? { _tag: \"Cancelled\" as const, returnTarget: context.returnTarget }\n : {\n _tag: \"Connected\" as const,\n grantId: context.grantId,\n profileKey: context.profile.key,\n status: \"Active\" as const,\n returnTarget: context.returnTarget,\n },\n credentialCommands: clearBinding,\n };\n }, connectedSafe);\n\n const list = Effect.fn(\"OAuthConnected.list\")(function* (\n invocation: AuthInvocation,\n raw: typeof M.OAuthConnectedList.Type,\n ) {\n const caller = yield* connectedCaller(invocation);\n const input = yield* snapshotOAuth(M.OAuthConnectedList, raw);\n\n const authorization = yield* connectedUseAuthorization(\n yield* authorizeUse({ invocation: caller, moduleId: id, purpose: \"metadata\" }),\n id,\n caller.subjectId,\n \"metadata\",\n );\n\n const result = yield* listRows({ authorization, ...input }).pipe(\n Effect.flatMap((value) => snapshotOAuth(M.OAuthConnectedListResult, value)),\n );\n\n if (\n result.items.length > input.limit ||\n new Set(result.items.map((v) => v.grantId)).size !== result.items.length\n )\n return yield* OAuthUnavailable.make({});\n\n return result;\n }, connectedSafe);\n\n const disconnect = Effect.fn(\"OAuthConnected.disconnect\")(function* (\n invocation: AuthInvocation,\n raw: typeof M.OAuthConnectedDisconnect.Type,\n ) {\n const caller = yield* connectedCaller(invocation);\n const request = yield* snapshotOAuth(M.OAuthConnectedDisconnect, raw);\n\n const metadataAuthorization = yield* connectedUseAuthorization(\n yield* authorizeUse({ invocation: caller, moduleId: id, purpose: \"metadata\" }),\n id,\n caller.subjectId,\n \"metadata\",\n );\n\n const inspected = yield* inspectDisconnect({\n moduleId: id,\n subjectId: caller.subjectId,\n authorization: metadataAuthorization,\n commandId: request.commandId,\n grantId: request.grantId,\n }).pipe(\n Effect.flatMap((value) => snapshotOAuth(M.OAuthConnectedDisconnectInspection, value)),\n );\n\n if (inspected._tag === \"Rejected\") return yield* OAuthRejected.make({});\n if (inspected._tag === \"Conflict\") return yield* IdentityConflict.make({});\n if (inspected._tag === \"Replay\") {\n if (inspected.result.grantId !== request.grantId || !inspected.result.replayed)\n return yield* OAuthUnavailable.make({});\n\n return inspected.result;\n }\n\n const grant = inspected.grant,\n context = grant.context;\n\n if (\n context.moduleId !== id ||\n context.subjectId !== caller.subjectId ||\n context.grantId !== request.grantId ||\n inspected.revision.subjectId !== caller.subjectId\n )\n return yield* OAuthUnavailable.make({});\n\n const authorization = yield* authorize(\n caller,\n yield* challenge(\n \"connected-disconnect\",\n M.OAuthConnectedActionChallenge.fields.flowId.make(request.commandId),\n request.commandId,\n inspected.revision,\n Schema.encodeSync(Schema.fromJsonString(M.OAuthConnectedDisconnectGrant))(grant),\n ),\n request.actionProof,\n );\n\n const event = yield* eventFor(\"disconnect\", caller.subjectId);\n let revocation: M.OAuthConnectedRevocationJob | undefined;\n\n if (grant.sealed && context.configuration.profile.revocation === \"cohort\") {\n const material = yield* openTokens({ context, sealed: grant.sealed }).pipe(\n Effect.flatMap((value) => snapshotOAuth(M.OAuthConnectedTokenMaterial, value)),\n );\n\n revocation = yield* Effect.gen(function* () {\n const jobContext = snapshotOAuthSync(M.OAuthConnectedRevocationContext, {\n namespace: \"effect-auth/oauth-connected-revocation-context/v1\",\n jobId: yield* random(),\n token: context,\n });\n\n return snapshotOAuthSync(M.OAuthConnectedRevocationJob, {\n context: jobContext,\n sealed: yield* sealTokens({ context: jobContext, material }),\n });\n }).pipe(Effect.ensuring(Effect.sync(() => wipeConnectedMaterial(material))));\n }\n\n const receipt = yield* disconnectRow(\n {\n moduleId: id,\n commandId: request.commandId,\n grant,\n authorization,\n ...(revocation ? { revocation } : {}),\n retentionUntilMillis:\n DateTime.toEpochMillis(yield* DateTime.now) + policy.retentionMillis,\n },\n (value, journal) => {\n const decision = snapshotOAuthSync(M.OAuthConnectedDisconnectDecision, value);\n\n if (decision._tag === \"Disconnected\") {\n if (\n decision.grantId !== request.grantId ||\n (!decision.replayed &&\n context.configuration.profile.revocation === \"unsupported\" &&\n decision.remoteRevocation !== \"Unsupported\") ||\n (!decision.replayed &&\n revocation !== undefined &&\n decision.remoteRevocation !== \"Pending\")\n )\n throw OAuthUnavailable.make({});\n if (!decision.replayed) journal.stage(event);\n }\n\n return journal.prepare(decision);\n },\n );\n\n const result = yield* connectedRead(receipt);\n\n if (result._tag === \"Rejected\") return yield* OAuthRejected.make({});\n if (result._tag === \"Conflict\") return yield* IdentityConflict.make({});\n\n return result;\n }, connectedSafe);\n\n return Connected.of({ begin, complete, list, disconnect });\n }),\n );\n\n const Begin = makeOperation(`${moduleId}/connected/begin`, {\n payload: M.OAuthConnectedBegin,\n success: OAuthSignInAuthorization,\n error: Failure,\n access: \"authenticated\",\n exposure: \"public\",\n replay: \"non-idempotent\",\n credentials: true,\n });\n\n const Complete = makeOperation(`${moduleId}/connected/complete`, {\n payload: M.OAuthConnectedComplete,\n success: M.OAuthConnectedResult,\n error: Failure,\n access: \"authenticated\",\n exposure: \"public\",\n replay: \"single-use\",\n credentials: true,\n });\n\n const List = makeOperation(`${moduleId}/connected/list`, {\n payload: M.OAuthConnectedList,\n success: M.OAuthConnectedListResult,\n error: Failure,\n access: \"authenticated\",\n exposure: \"public\",\n replay: \"read-only\",\n });\n\n const Disconnect = makeOperation(`${moduleId}/connected/disconnect`, {\n payload: M.OAuthConnectedDisconnect,\n success: M.OAuthConnectedDisconnected,\n error: Failure,\n access: \"authenticated\",\n exposure: \"public\",\n replay: \"idempotent\",\n });\n\n const handlersLayer = Layer.mergeAll(\n Begin.credentialHandlerLayer(\n Effect.fn(\"OAuthConnected.Begin\")(function* (input, invocation) {\n return yield* (yield* Connected).begin(invocation, input);\n }),\n ),\n Complete.credentialHandlerLayer(\n Effect.fn(\"OAuthConnected.Complete\")(function* (input, invocation) {\n return yield* (yield* Connected).complete(invocation, input);\n }),\n ),\n List.handlerLayer(\n Effect.fn(\"OAuthConnected.List\")(function* (input, invocation) {\n return yield* (yield* Connected).list(invocation, input);\n }),\n ),\n Disconnect.handlerLayer(\n Effect.fn(\"OAuthConnected.Disconnect\")(function* (input, invocation) {\n return yield* (yield* Connected).disconnect(invocation, input);\n }),\n ),\n );\n\n return Object.freeze({\n Connected,\n binding,\n layer,\n operations: Object.freeze({ Begin, Complete, List, Disconnect }),\n handlersLayer,\n group: operationGroup(Begin, Complete, List, Disconnect),\n ...makeOAuthConnectedAccess(moduleId, configuration),\n ...makeOAuthConnectedMaintenance(moduleId, configuration),\n });\n};\n"],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { AuthenticationRequired } from "../operations/errors.mjs";
2
+ import "../operations/context.mjs";
3
+ import "../hooks/commit.mjs";
4
+ import { OAuthMethodUnsupported, OAuthRejected, OAuthUnavailable } from "./signInErrors.mjs";
5
+ import { OAuthConnectedBusy, OAuthConnectedReauthorizationRequired } from "./connectedModels.mjs";
6
+ import "./OAuthConnectedPersistence.mjs";
7
+ import "./OAuthConnectedProtocol.mjs";
8
+ import "./OAuthConnectedTokenProtector.mjs";
9
+ import "./OAuthConnectedUseAuthority.mjs";
10
+ import { Cause, Context, Crypto, DateTime, Effect, Layer, Redacted, Schema } from "effect";
11
+ //#region src/oauth/connectedAccess.d.ts
12
+ declare const OAuthConnectedAccessFailure: Schema.Union<readonly [typeof AuthenticationRequired, typeof OAuthRejected, typeof OAuthUnavailable, typeof OAuthMethodUnsupported, typeof OAuthConnectedBusy, typeof OAuthConnectedReauthorizationRequired]>;
13
+ type OAuthConnectedAccessFailure = typeof OAuthConnectedAccessFailure.Type;
14
+ interface AccessModule<Id extends string> {
15
+ readonly moduleId: Id;
16
+ readonly kind: "oauth-connected-access";
17
+ }
18
+ //#endregion
19
+ export { AccessModule, OAuthConnectedAccessFailure };
20
+ //# sourceMappingURL=connectedAccess.d.mts.map
@@ -0,0 +1,279 @@
1
+ import { reportAuthFailure } from "../internal/diagnostics.mjs";
2
+ import { AuthenticationRequired } from "../operations/errors.mjs";
3
+ import { AssuranceEvidence, AuthenticationAssurance, requireAuthenticated } from "../operations/context.mjs";
4
+ import { SecurityRevision } from "../sessions/models.mjs";
5
+ import { hasCommitScope } from "../hooks/commit.mjs";
6
+ import { OAuthClaimId, OAuthExternalIdentity, OAuthModuleId } from "./signInModels.mjs";
7
+ import { OAuthConfigurationError, OAuthMethodUnsupported, OAuthRejected, OAuthUnavailable } from "./signInErrors.mjs";
8
+ import { snapshotOAuth, snapshotOAuthSync } from "./signInSnapshot.mjs";
9
+ import { OAuthConnectedAccessInspection, OAuthConnectedBusy, OAuthConnectedContinuation, OAuthConnectedGrantResponse, OAuthConnectedPolicy, OAuthConnectedProfile, OAuthConnectedReauthorizationRequired, OAuthConnectedRefreshClaim, OAuthConnectedRefreshDecision, OAuthConnectedRefreshOutcome, OAuthConnectedRefreshSettlement, OAuthConnectedResources, OAuthConnectedRevocationContext, OAuthConnectedRevocationJob, OAuthConnectedScopes, OAuthConnectedStoredGrant, OAuthConnectedTokenContext, OAuthConnectedTokenMaterial, OAuthConnectedTokenMetadata, OAuthConnectedUse, OAuthConnectedUseAdmission, OAuthConnectedUseAuthorization } from "./connectedModels.mjs";
10
+ import { OAuthConnectedPersistence } from "./OAuthConnectedPersistence.mjs";
11
+ import { OAuthConnectedProtocol } from "./OAuthConnectedProtocol.mjs";
12
+ import { OAuthConnectedTokenProtector } from "./OAuthConnectedTokenProtector.mjs";
13
+ import { OAuthConnectedUseAuthority } from "./OAuthConnectedUseAuthority.mjs";
14
+ import { Cause, Context, Crypto, DateTime, Effect, Encoding, Exit, Fiber, Layer, Redacted, Schema } from "effect";
15
+ //#region src/oauth/connectedAccess.ts
16
+ const OAuthConnectedAccessFailure = Schema.Union([
17
+ AuthenticationRequired,
18
+ OAuthRejected,
19
+ OAuthUnavailable,
20
+ OAuthMethodUnsupported,
21
+ OAuthConnectedBusy,
22
+ OAuthConnectedReauthorizationRequired
23
+ ]);
24
+ const invocationSchema = Schema.TaggedStruct("Authenticated", {
25
+ subjectId: OAuthConnectedTokenContext.fields.subjectId,
26
+ sessionId: Schema.optionalKey(Schema.String.check(Schema.isMaxLength(256))),
27
+ assurance: Schema.Struct({
28
+ ...AuthenticationAssurance.fields,
29
+ method: Schema.NonEmptyString.check(Schema.isMaxLength(128)),
30
+ factors: AuthenticationAssurance.fields.factors.check(Schema.isMaxLength(8)),
31
+ evidence: Schema.optionalKey(Schema.NonEmptyArray(Schema.Struct({
32
+ ...AssuranceEvidence.fields,
33
+ method: Schema.NonEmptyString.check(Schema.isMaxLength(128)),
34
+ factors: AssuranceEvidence.fields.factors.check(Schema.isMaxLength(8))
35
+ })).check(Schema.isMaxLength(64)))
36
+ })
37
+ });
38
+ const connectedCaller = Effect.fn("OAuthConnected.caller")(function* (invocation) {
39
+ if (yield* hasCommitScope) return yield* OAuthMethodUnsupported.make({});
40
+ return yield* snapshotOAuth(invocationSchema, yield* requireAuthenticated(invocation));
41
+ });
42
+ const connectedRead = (receipt) => receipt.read.pipe(Effect.mapError(() => OAuthUnavailable.make({})));
43
+ const connectedSafe = (effect) => effect.pipe(Effect.tapCause((cause) => Cause.hasDies(cause) ? reportAuthFailure("oauth-connected", cause) : Effect.void), Effect.catchCause((cause) => Cause.hasInterrupts(cause) ? Effect.interrupt : Cause.hasDies(cause) ? Effect.fail(OAuthUnavailable.make({})) : Effect.failCause(cause)));
44
+ const connectedBounded = (effect, millis) => Effect.gen(function* () {
45
+ const fiber = yield* effect.pipe(Effect.interruptible, Effect.forkDetach);
46
+ return yield* Fiber.join(fiber).pipe(Effect.timeout(millis), Effect.ensuring(Fiber.interrupt(fiber).pipe(Effect.forkDetach, Effect.asVoid)));
47
+ });
48
+ const connectedSame = (schema, a, b) => Schema.encodeSync(Schema.fromJsonString(schema))(a) === Schema.encodeSync(Schema.fromJsonString(schema))(b);
49
+ const captureConnectedPolicy = (input) => {
50
+ try {
51
+ return snapshotOAuthSync(OAuthConnectedPolicy, input);
52
+ } catch {
53
+ return;
54
+ }
55
+ };
56
+ const validateConnectedPolicy = Effect.fn("OAuthConnected.policy")(function* (moduleId, captured) {
57
+ const id = yield* Schema.decodeEffect(OAuthModuleId)(moduleId).pipe(Effect.mapError(() => OAuthConfigurationError.make({ reason: "module" })));
58
+ if (!captured) return yield* OAuthConfigurationError.make({ reason: "policy" });
59
+ const seen = /* @__PURE__ */ new Set(), active = /* @__PURE__ */ new Set();
60
+ for (const profile of captured.profiles) {
61
+ const key = profile.key + ":" + profile.generation;
62
+ if (seen.has(key) || profile.issuance === "active" && active.has(profile.key) || new Set(profile.scopes).size !== profile.scopes.length || new Set(profile.resources).size !== profile.resources.length || profile.refreshAheadMillis >= profile.maximumAccessLifetimeMillis || profile.retention === "access-and-refresh" && (profile.maximumRefreshLifetimeMillis === void 0 || profile.refresh === "unsupported") || profile.retention === "access-only" && profile.refresh !== "unsupported") return yield* OAuthConfigurationError.make({ reason: "policy" });
63
+ seen.add(key);
64
+ if (profile.issuance === "active") active.add(profile.key);
65
+ }
66
+ if (active.size === 0) return yield* OAuthConfigurationError.make({ reason: "policy" });
67
+ return {
68
+ id,
69
+ policy: captured
70
+ };
71
+ });
72
+ const connectedProfile = (policy, input) => {
73
+ const current = policy.profiles.find((p) => p.key === input.key && p.issuance === "active");
74
+ return current !== void 0 && connectedSame(OAuthConnectedProfile, current, {
75
+ ...input,
76
+ issuance: "active"
77
+ });
78
+ };
79
+ const connectedUseAuthorization = Effect.fn("OAuthConnected.useAuthorization")(function* (value, moduleId, subjectId, purpose, grantId, profileKey) {
80
+ const authorization = yield* snapshotOAuth(OAuthConnectedUseAuthorization, value);
81
+ const now = DateTime.toEpochMillis(yield* DateTime.now);
82
+ if (authorization.moduleId !== moduleId || authorization.revision.subjectId !== subjectId || authorization.purpose !== purpose || authorization.grantId !== grantId || authorization.profileKey !== profileKey || authorization.expiresAtMillis <= now || new Set(authorization.revision.credentials.map((v) => v.credentialId)).size !== authorization.revision.credentials.length) return yield* OAuthUnavailable.make({});
83
+ return authorization;
84
+ });
85
+ const wipeConnectedMaterial = (material) => {
86
+ Redacted.wipeUnsafe(material.accessToken);
87
+ if (material.refreshToken) Redacted.wipeUnsafe(material.refreshToken);
88
+ if (material.continuation._tag === "Oidc" && material.continuation.nonce) Redacted.wipeUnsafe(material.continuation.nonce);
89
+ };
90
+ /** Private bounded projection shared by initial and refresh orchestration. */
91
+ const connectedGrantResponse = Effect.fn("OAuthConnected.grantResponse")(function* (configuration, raw, startedAtMillis, previous) {
92
+ const response = yield* snapshotOAuth(OAuthConnectedGrantResponse, raw);
93
+ const now = DateTime.toEpochMillis(yield* DateTime.now);
94
+ const profile = configuration.profile;
95
+ if (response.identity.provider !== configuration.provider || response.identity.issuer !== configuration.issuer || configuration.protocol === "oidc" !== (response.material.continuation._tag === "Oidc") || new Set(response.scopes).size !== response.scopes.length || new Set(response.resources).size !== response.resources.length || !connectedSame(OAuthConnectedScopes, [...response.scopes].sort(), [...profile.scopes].sort()) || !connectedSame(OAuthConnectedResources, [...response.resources].sort(), [...profile.resources].sort()) || response.accessExpiresAtMillis !== void 0 && response.accessExpiresAtMillis <= now || startedAtMillis > now || startedAtMillis < 0) return yield* OAuthUnavailable.make({});
96
+ if (previous && (!connectedSame(OAuthExternalIdentity, response.identity, previous.context.identity) || !connectedSame(OAuthConnectedContinuation, response.material.continuation, previous.material.continuation))) return yield* OAuthUnavailable.make({});
97
+ const retainedRefresh = profile.retention === "access-and-refresh" ? response.material.refreshToken ?? previous?.material.refreshToken : void 0;
98
+ const material = snapshotOAuthSync(OAuthConnectedTokenMaterial, {
99
+ namespace: response.material.namespace,
100
+ accessToken: response.material.accessToken,
101
+ continuation: response.material.continuation,
102
+ ...retainedRefresh === void 0 ? {} : { refreshToken: Redacted.make(Redacted.value(retainedRefresh)) }
103
+ });
104
+ const oldExpiry = previous !== void 0 && (response.material.refreshToken === void 0 || previous.material.refreshToken !== void 0 && Redacted.value(response.material.refreshToken) === Redacted.value(previous.material.refreshToken)) ? previous?.context.metadata.refreshExpiresAtMillis : void 0;
105
+ const refreshExpires = oldExpiry === void 0 ? response.refreshExpiresAtMillis : Math.min(oldExpiry, response.refreshExpiresAtMillis ?? Number.MAX_SAFE_INTEGER);
106
+ const refreshUseUntil = retainedRefresh === void 0 ? void 0 : Math.min(previous?.context.metadata.refreshUseUntilMillis ?? startedAtMillis + (profile.maximumRefreshLifetimeMillis ?? 0), refreshExpires ?? Number.MAX_SAFE_INTEGER);
107
+ const useUntil = Math.min(startedAtMillis + profile.maximumAccessLifetimeMillis, response.accessExpiresAtMillis ?? Number.MAX_SAFE_INTEGER);
108
+ if (useUntil <= now || refreshUseUntil !== void 0 && refreshUseUntil <= now) return yield* OAuthUnavailable.make({});
109
+ const metadata = yield* snapshotOAuth(OAuthConnectedTokenMetadata, {
110
+ scopes: response.scopes,
111
+ resources: response.resources,
112
+ useUntilMillis: useUntil,
113
+ obtainedAtMillis: startedAtMillis,
114
+ ...response.accessExpiresAtMillis === void 0 ? {} : { accessExpiresAtMillis: response.accessExpiresAtMillis },
115
+ ...retainedRefresh === void 0 || refreshExpires === void 0 ? {} : { refreshExpiresAtMillis: refreshExpires },
116
+ ...refreshUseUntil === void 0 ? {} : { refreshUseUntilMillis: refreshUseUntil },
117
+ ...response.profile === void 0 ? {} : { profile: response.profile }
118
+ });
119
+ return {
120
+ identity: response.identity,
121
+ metadata,
122
+ material
123
+ };
124
+ });
125
+ const makeOAuthConnectedAccess = (moduleId, configuration) => {
126
+ const ConnectedAccess = Context.Service()("effect-auth/oauth/" + moduleId.length + ":" + moduleId + "/ConnectedAccess");
127
+ const captured = captureConnectedPolicy(configuration);
128
+ return {
129
+ ConnectedAccess,
130
+ accessLayer: Layer.effect(ConnectedAccess, Effect.gen(function* () {
131
+ const { id, policy } = yield* validateConnectedPolicy(moduleId, captured);
132
+ const { authorize } = yield* OAuthConnectedUseAuthority;
133
+ const { inspectAccess, claimRefresh, settleRefresh, admitUse } = yield* OAuthConnectedPersistence;
134
+ const { refreshGrant } = yield* OAuthConnectedProtocol;
135
+ const { seal, open } = yield* OAuthConnectedTokenProtector;
136
+ const { randomBytes } = yield* Crypto.Crypto;
137
+ const random = Effect.fn("OAuthConnectedAccess.random")(function* () {
138
+ const bytes = yield* randomBytes(32).pipe(Effect.mapError(() => OAuthUnavailable.make({})));
139
+ const result = OAuthClaimId.make(Encoding.encodeBase64Url(bytes));
140
+ bytes.fill(0);
141
+ return result;
142
+ });
143
+ const refresh = Effect.fn("OAuthConnectedAccess.refresh")(function* (grant, authorization) {
144
+ const claimId = yield* random(), nextTokenVersion = SecurityRevision.make(yield* random());
145
+ return yield* Effect.uninterruptibleMask((restore) => Effect.gen(function* () {
146
+ const receipt = yield* restore(claimRefresh({
147
+ grant: snapshotOAuthSync(OAuthConnectedStoredGrant, grant),
148
+ authorization,
149
+ claimId,
150
+ nextTokenVersion,
151
+ lifetimeMillis: policy.refreshClaimLifetimeMillis
152
+ }, (value, journal) => journal.prepare(snapshotOAuthSync(OAuthConnectedRefreshDecision, value))));
153
+ const decision = yield* connectedRead(receipt);
154
+ if (decision._tag === "Busy") return yield* OAuthConnectedBusy.make({});
155
+ if (decision._tag === "ReauthorizationRequired") return yield* OAuthConnectedReauthorizationRequired.make({});
156
+ if (decision._tag !== "Claimed") return yield* OAuthRejected.make({});
157
+ const owned = snapshotOAuthSync(OAuthConnectedRefreshClaim, decision.claim);
158
+ if (owned.claimId !== claimId || owned.nextTokenVersion !== nextTokenVersion || !connectedSame(OAuthConnectedStoredGrant, owned.grant, grant) || owned.claimExpiresAtMillis !== owned.claimedAtMillis + policy.refreshClaimLifetimeMillis || owned.claimedAtMillis > DateTime.toEpochMillis(yield* DateTime.now)) return yield* OAuthUnavailable.make({});
159
+ const exchange = Effect.gen(function* () {
160
+ const material = yield* open(snapshotOAuthSync(OAuthConnectedStoredGrant, grant)).pipe(Effect.flatMap((v) => snapshotOAuth(OAuthConnectedTokenMaterial, v)));
161
+ return yield* Effect.gen(function* () {
162
+ const start = DateTime.toEpochMillis(yield* DateTime.now);
163
+ if (!material.refreshToken || grant.context.configuration.profile.refresh === "unsupported" || grant.context.metadata.refreshUseUntilMillis === void 0 || grant.context.metadata.refreshUseUntilMillis <= start || start >= owned.claimExpiresAtMillis) return yield* OAuthConnectedReauthorizationRequired.make({});
164
+ const response = yield* refreshGrant({
165
+ context: snapshotOAuthSync(OAuthConnectedTokenContext, grant.context),
166
+ material: snapshotOAuthSync(OAuthConnectedTokenMaterial, material),
167
+ verificationStartedAt: DateTime.makeUnsafe(start)
168
+ });
169
+ const projected = yield* connectedGrantResponse(grant.context.configuration, response, start, {
170
+ context: grant.context,
171
+ material
172
+ });
173
+ return yield* Effect.gen(function* () {
174
+ const context = snapshotOAuthSync(OAuthConnectedTokenContext, {
175
+ ...grant.context,
176
+ tokenVersion: nextTokenVersion,
177
+ metadata: projected.metadata
178
+ });
179
+ const sealed = yield* seal({
180
+ context,
181
+ material: snapshotOAuthSync(OAuthConnectedTokenMaterial, projected.material)
182
+ });
183
+ const updated = snapshotOAuthSync(OAuthConnectedStoredGrant, {
184
+ context,
185
+ sealed
186
+ });
187
+ let cleanup;
188
+ if (context.configuration.profile.revocation === "cohort") {
189
+ const cleanupContext = snapshotOAuthSync(OAuthConnectedRevocationContext, {
190
+ namespace: "effect-auth/oauth-connected-revocation-context/v1",
191
+ jobId: yield* random(),
192
+ token: context
193
+ });
194
+ cleanup = snapshotOAuthSync(OAuthConnectedRevocationJob, {
195
+ context: cleanupContext,
196
+ sealed: yield* seal({
197
+ context: cleanupContext,
198
+ material: snapshotOAuthSync(OAuthConnectedTokenMaterial, projected.material)
199
+ })
200
+ });
201
+ }
202
+ return snapshotOAuthSync(OAuthConnectedRefreshOutcome, {
203
+ _tag: "Refreshed",
204
+ grant: updated,
205
+ ...cleanup ? { cleanup } : {}
206
+ });
207
+ }).pipe(Effect.ensuring(Effect.sync(() => wipeConnectedMaterial(projected.material))));
208
+ }).pipe(Effect.ensuring(Effect.sync(() => wipeConnectedMaterial(material))));
209
+ });
210
+ const remaining = Math.max(1, owned.claimExpiresAtMillis - DateTime.toEpochMillis(yield* DateTime.now));
211
+ const exchanged = yield* Effect.exit(restore(connectedBounded(exchange, remaining)));
212
+ const outcome = Exit.isSuccess(exchanged) ? exchanged.value : { _tag: "ReauthorizationRequired" };
213
+ const finished = yield* Effect.exit(connectedBounded(settleRefresh({
214
+ claim: owned,
215
+ authorization,
216
+ outcome
217
+ }, (value, journal) => journal.prepare(snapshotOAuthSync(OAuthConnectedRefreshSettlement, value))), policy.settlementTimeoutMillis));
218
+ if (Exit.isFailure(exchanged) && Cause.hasInterrupts(exchanged.cause)) return yield* Effect.interrupt;
219
+ if (Exit.isFailure(finished)) return yield* OAuthUnavailable.make({});
220
+ const settled = yield* connectedRead(finished.value);
221
+ if (settled._tag !== "Refreshed") return yield* OAuthConnectedReauthorizationRequired.make({});
222
+ if (outcome._tag !== "Refreshed" || !connectedSame(OAuthConnectedStoredGrant, settled.grant, outcome.grant)) return yield* OAuthUnavailable.make({});
223
+ return snapshotOAuthSync(OAuthConnectedStoredGrant, settled.grant);
224
+ }));
225
+ });
226
+ const prepare = Effect.fn("OAuthConnectedAccess.prepare")(function* (invocation, raw) {
227
+ const caller = yield* connectedCaller(invocation);
228
+ const input = yield* snapshotOAuth(OAuthConnectedUse, raw);
229
+ const authorization = yield* connectedUseAuthorization(yield* authorize({
230
+ invocation: caller,
231
+ moduleId: id,
232
+ purpose: "use",
233
+ ...input
234
+ }), id, caller.subjectId, "use", input.grantId, input.profileKey);
235
+ const inspected = yield* inspectAccess({
236
+ authorization,
237
+ ...input
238
+ }).pipe(Effect.flatMap((v) => snapshotOAuth(OAuthConnectedAccessInspection, v)));
239
+ if (inspected._tag === "Busy") return yield* OAuthConnectedBusy.make({});
240
+ if (inspected._tag === "ReauthorizationRequired") return yield* OAuthConnectedReauthorizationRequired.make({});
241
+ if (inspected._tag !== "Target") return yield* OAuthRejected.make({});
242
+ let grant = inspected.grant;
243
+ if (grant.context.moduleId !== id || grant.context.subjectId !== caller.subjectId || grant.context.grantId !== input.grantId || grant.context.configuration.profile.key !== input.profileKey || !connectedProfile(policy, grant.context.configuration.profile)) return yield* OAuthRejected.make({});
244
+ const now = DateTime.toEpochMillis(yield* DateTime.now);
245
+ if (grant.context.configuration.profile.refresh !== "unsupported" && grant.context.metadata.refreshUseUntilMillis !== void 0 && grant.context.metadata.refreshUseUntilMillis > now && now + grant.context.configuration.profile.refreshAheadMillis >= grant.context.metadata.useUntilMillis) grant = yield* refresh(grant, authorization);
246
+ const material = yield* open(snapshotOAuthSync(OAuthConnectedStoredGrant, grant)).pipe(Effect.flatMap((v) => snapshotOAuth(OAuthConnectedTokenMaterial, v)));
247
+ return yield* Effect.gen(function* () {
248
+ yield* connectedUseAuthorization(authorization, id, caller.subjectId, "use", input.grantId, input.profileKey);
249
+ if (DateTime.toEpochMillis(yield* DateTime.now) >= grant.context.metadata.useUntilMillis) return yield* OAuthConnectedReauthorizationRequired.make({});
250
+ const admissionId = yield* random();
251
+ const receipt = yield* admitUse({
252
+ grant: snapshotOAuthSync(OAuthConnectedStoredGrant, grant),
253
+ authorization,
254
+ admissionId,
255
+ lifetimeMillis: policy.useAdmissionLifetimeMillis
256
+ }, (value, journal) => journal.prepare(snapshotOAuthSync(OAuthConnectedUseAdmission, value)));
257
+ const admitted = yield* connectedRead(receipt);
258
+ if (admitted._tag === "Busy") return yield* OAuthConnectedBusy.make({});
259
+ if (admitted._tag === "ReauthorizationRequired") return yield* OAuthConnectedReauthorizationRequired.make({});
260
+ if (admitted._tag !== "Admitted") return yield* OAuthRejected.make({});
261
+ if (admitted.admissionId !== admissionId || admitted.grantId !== grant.context.grantId || admitted.tokenVersion !== grant.context.tokenVersion || admitted.expiresAtMillis <= admitted.admittedAtMillis || admitted.admittedAtMillis > DateTime.toEpochMillis(yield* DateTime.now) || admitted.expiresAtMillis > Math.min(admitted.admittedAtMillis + policy.useAdmissionLifetimeMillis, grant.context.metadata.useUntilMillis, authorization.expiresAtMillis) || DateTime.toEpochMillis(yield* DateTime.now) >= admitted.expiresAtMillis) return yield* OAuthUnavailable.make({});
262
+ return {
263
+ token: Redacted.make(Redacted.value(material.accessToken)),
264
+ expiresAtMillis: admitted.expiresAtMillis
265
+ };
266
+ }).pipe(Effect.ensuring(Effect.sync(() => wipeConnectedMaterial(material))));
267
+ }, connectedSafe);
268
+ const withAccessToken = (invocation, input, use) => prepare(invocation, input).pipe(Effect.flatMap(({ token, expiresAtMillis }) => Effect.gen(function* () {
269
+ if (DateTime.toEpochMillis(yield* DateTime.now) >= expiresAtMillis) return yield* OAuthUnavailable.make({});
270
+ return yield* Effect.suspend(() => use(token)).pipe(Effect.interruptible);
271
+ }).pipe(Effect.ensuring(Effect.sync(() => Redacted.wipeUnsafe(token))))));
272
+ return ConnectedAccess.of({ withAccessToken });
273
+ }))
274
+ };
275
+ };
276
+ //#endregion
277
+ export { OAuthConnectedAccessFailure, captureConnectedPolicy, connectedBounded, connectedCaller, connectedGrantResponse, connectedProfile, connectedRead, connectedSafe, connectedSame, connectedUseAuthorization, makeOAuthConnectedAccess, validateConnectedPolicy, wipeConnectedMaterial };
278
+
279
+ //# sourceMappingURL=connectedAccess.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connectedAccess.mjs","names":["M.OAuthConnectedBusy","M.OAuthConnectedReauthorizationRequired","M.OAuthConnectedPolicy","M.OAuthConnectedProfile","M.OAuthConnectedUseAuthorization","M.OAuthConnectedGrantResponse","M.OAuthConnectedScopes","M.OAuthConnectedResources","M.OAuthConnectedContinuation","M.OAuthConnectedTokenMaterial","M.OAuthConnectedTokenMetadata","M.OAuthConnectedStoredGrant","M.OAuthConnectedRefreshDecision","M.OAuthConnectedRefreshClaim","M.OAuthConnectedTokenContext","M.OAuthConnectedRevocationContext","M.OAuthConnectedRevocationJob","M.OAuthConnectedRefreshOutcome","M.OAuthConnectedRefreshSettlement","M.OAuthConnectedUse","M.OAuthConnectedAccessInspection","M.OAuthConnectedUseAdmission"],"sources":["../../src/oauth/connectedAccess.ts"],"sourcesContent":["import {\n Cause,\n Context,\n Crypto,\n DateTime,\n Effect,\n Encoding,\n Exit,\n Fiber,\n Layer,\n Redacted,\n Schema,\n} from \"effect\";\n\nimport { hasCommitScope, type PreparedCommit } from \"../hooks/commit\";\nimport { reportAuthFailure } from \"../internal/diagnostics\";\nimport {\n AuthenticationAssurance,\n AssuranceEvidence,\n requireAuthenticated,\n type AuthInvocation,\n} from \"../operations/context\";\nimport { AuthenticationRequired } from \"../operations/errors\";\nimport { SecurityRevision } from \"../sessions/models\";\nimport * as M from \"./connectedModels\";\nimport { OAuthConnectedPersistence } from \"./OAuthConnectedPersistence\";\nimport { OAuthConnectedProtocol } from \"./OAuthConnectedProtocol\";\nimport { OAuthConnectedTokenProtector } from \"./OAuthConnectedTokenProtector\";\nimport { OAuthConnectedUseAuthority } from \"./OAuthConnectedUseAuthority\";\nimport {\n OAuthConfigurationError,\n OAuthMethodUnsupported,\n OAuthRejected,\n OAuthUnavailable,\n} from \"./signInErrors\";\nimport { OAuthClaimId, OAuthExternalIdentity, OAuthModuleId } from \"./signInModels\";\nimport { snapshotOAuth, snapshotOAuthSync } from \"./signInSnapshot\";\n\nexport const OAuthConnectedAccessFailure = Schema.Union([\n AuthenticationRequired,\n OAuthRejected,\n OAuthUnavailable,\n OAuthMethodUnsupported,\n M.OAuthConnectedBusy,\n M.OAuthConnectedReauthorizationRequired,\n]);\n\nexport type OAuthConnectedAccessFailure = typeof OAuthConnectedAccessFailure.Type;\n\nconst invocationSchema = Schema.TaggedStruct(\"Authenticated\", {\n subjectId: M.OAuthConnectedTokenContext.fields.subjectId,\n sessionId: Schema.optionalKey(Schema.String.check(Schema.isMaxLength(256))),\n assurance: Schema.Struct({\n ...AuthenticationAssurance.fields,\n method: Schema.NonEmptyString.check(Schema.isMaxLength(128)),\n factors: AuthenticationAssurance.fields.factors.check(Schema.isMaxLength(8)),\n evidence: Schema.optionalKey(\n Schema.NonEmptyArray(\n Schema.Struct({\n ...AssuranceEvidence.fields,\n method: Schema.NonEmptyString.check(Schema.isMaxLength(128)),\n factors: AssuranceEvidence.fields.factors.check(Schema.isMaxLength(8)),\n }),\n ).check(Schema.isMaxLength(64)),\n ),\n }),\n});\n\nexport const connectedCaller = Effect.fn(\"OAuthConnected.caller\")(function* (\n invocation: AuthInvocation,\n) {\n if (yield* hasCommitScope) return yield* OAuthMethodUnsupported.make({});\n\n return yield* snapshotOAuth(invocationSchema, yield* requireAuthenticated(invocation));\n});\n\nexport const connectedRead = <A>(receipt: PreparedCommit<A>) =>\n receipt.read.pipe(Effect.mapError(() => OAuthUnavailable.make({})));\n\nexport const connectedSafe = <A, E, R>(effect: Effect.Effect<A, E, R>) =>\n effect.pipe(\n Effect.tapCause((cause) =>\n Cause.hasDies(cause) ? reportAuthFailure(\"oauth-connected\", cause) : Effect.void,\n ),\n Effect.catchCause((cause): Effect.Effect<never, E | OAuthUnavailable> =>\n Cause.hasInterrupts(cause)\n ? Effect.interrupt\n : Cause.hasDies(cause)\n ? Effect.fail(OAuthUnavailable.make({}))\n : Effect.failCause(cause),\n ),\n );\n\nexport const connectedBounded = <A, E, R>(effect: Effect.Effect<A, E, R>, millis: number) =>\n Effect.gen(function* () {\n const fiber = yield* effect.pipe(Effect.interruptible, Effect.forkDetach);\n\n return yield* Fiber.join(fiber).pipe(\n Effect.timeout(millis),\n Effect.ensuring(Fiber.interrupt(fiber).pipe(Effect.forkDetach, Effect.asVoid)),\n );\n });\n\nexport const connectedSame = <A>(schema: Schema.Codec<A, unknown, never, never>, a: A, b: A) =>\n Schema.encodeSync(Schema.fromJsonString(schema))(a) ===\n Schema.encodeSync(Schema.fromJsonString(schema))(b);\n\nexport const captureConnectedPolicy = (input: M.OAuthConnectedPolicy) => {\n try {\n return snapshotOAuthSync(M.OAuthConnectedPolicy, input);\n } catch {\n return undefined;\n }\n};\n\nexport const validateConnectedPolicy = Effect.fn(\"OAuthConnected.policy\")(function* (\n moduleId: string,\n captured: M.OAuthConnectedPolicy | undefined,\n) {\n const id = yield* Schema.decodeEffect(OAuthModuleId)(moduleId).pipe(\n Effect.mapError(() => OAuthConfigurationError.make({ reason: \"module\" })),\n );\n\n if (!captured) return yield* OAuthConfigurationError.make({ reason: \"policy\" });\n\n const seen = new Set<string>(),\n active = new Set<string>();\n\n for (const profile of captured.profiles) {\n const key = profile.key + \":\" + profile.generation;\n\n if (\n seen.has(key) ||\n (profile.issuance === \"active\" && active.has(profile.key)) ||\n new Set(profile.scopes).size !== profile.scopes.length ||\n new Set(profile.resources).size !== profile.resources.length ||\n profile.refreshAheadMillis >= profile.maximumAccessLifetimeMillis ||\n (profile.retention === \"access-and-refresh\" &&\n (profile.maximumRefreshLifetimeMillis === undefined ||\n profile.refresh === \"unsupported\")) ||\n (profile.retention === \"access-only\" && profile.refresh !== \"unsupported\")\n )\n return yield* OAuthConfigurationError.make({ reason: \"policy\" });\n seen.add(key);\n if (profile.issuance === \"active\") active.add(profile.key);\n }\n if (active.size === 0) return yield* OAuthConfigurationError.make({ reason: \"policy\" });\n\n return { id, policy: captured };\n});\n\nexport const connectedProfile = (\n policy: M.OAuthConnectedPolicy,\n input: M.OAuthConnectedProfile,\n) => {\n const current = policy.profiles.find((p) => p.key === input.key && p.issuance === \"active\");\n\n return (\n current !== undefined &&\n connectedSame(M.OAuthConnectedProfile, current, { ...input, issuance: \"active\" })\n );\n};\n\nexport const connectedUseAuthorization = Effect.fn(\"OAuthConnected.useAuthorization\")(function* (\n value: M.OAuthConnectedUseAuthorization,\n moduleId: typeof OAuthModuleId.Type,\n subjectId: typeof M.OAuthConnectedTokenContext.Type.subjectId,\n purpose: \"metadata\" | \"use\",\n grantId?: typeof M.OAuthGrantId.Type,\n profileKey?: typeof M.OAuthPermissionProfileKey.Type,\n) {\n const authorization = yield* snapshotOAuth(M.OAuthConnectedUseAuthorization, value);\n const now = DateTime.toEpochMillis(yield* DateTime.now);\n\n if (\n authorization.moduleId !== moduleId ||\n authorization.revision.subjectId !== subjectId ||\n authorization.purpose !== purpose ||\n authorization.grantId !== grantId ||\n authorization.profileKey !== profileKey ||\n authorization.expiresAtMillis <= now ||\n new Set(authorization.revision.credentials.map((v) => v.credentialId)).size !==\n authorization.revision.credentials.length\n )\n return yield* OAuthUnavailable.make({});\n\n return authorization;\n});\n\nexport const wipeConnectedMaterial = (material: M.OAuthConnectedTokenMaterial) => {\n Redacted.wipeUnsafe(material.accessToken);\n if (material.refreshToken) Redacted.wipeUnsafe(material.refreshToken);\n if (material.continuation._tag === \"Oidc\" && material.continuation.nonce)\n Redacted.wipeUnsafe(material.continuation.nonce);\n};\n\n/** Private bounded projection shared by initial and refresh orchestration. */\nexport const connectedGrantResponse = Effect.fn(\"OAuthConnected.grantResponse\")(function* (\n configuration: M.OAuthConnectedConfiguration,\n raw: M.OAuthConnectedGrantResponse,\n startedAtMillis: number,\n previous?: {\n readonly context: M.OAuthConnectedTokenContext;\n readonly material: M.OAuthConnectedTokenMaterial;\n },\n) {\n const response = yield* snapshotOAuth(M.OAuthConnectedGrantResponse, raw);\n const now = DateTime.toEpochMillis(yield* DateTime.now);\n const profile = configuration.profile;\n\n if (\n response.identity.provider !== configuration.provider ||\n response.identity.issuer !== configuration.issuer ||\n (configuration.protocol === \"oidc\") !== (response.material.continuation._tag === \"Oidc\") ||\n new Set(response.scopes).size !== response.scopes.length ||\n new Set(response.resources).size !== response.resources.length ||\n !connectedSame(\n M.OAuthConnectedScopes,\n [...response.scopes].sort(),\n [...profile.scopes].sort(),\n ) ||\n !connectedSame(\n M.OAuthConnectedResources,\n [...response.resources].sort(),\n [...profile.resources].sort(),\n ) ||\n (response.accessExpiresAtMillis !== undefined && response.accessExpiresAtMillis <= now) ||\n startedAtMillis > now ||\n startedAtMillis < 0\n )\n return yield* OAuthUnavailable.make({});\n if (\n previous &&\n (!connectedSame(OAuthExternalIdentity, response.identity, previous.context.identity) ||\n !connectedSame(\n M.OAuthConnectedContinuation,\n response.material.continuation,\n previous.material.continuation,\n ))\n )\n return yield* OAuthUnavailable.make({});\n\n const retainedRefresh =\n profile.retention === \"access-and-refresh\"\n ? (response.material.refreshToken ?? previous?.material.refreshToken)\n : undefined;\n\n const material = snapshotOAuthSync(M.OAuthConnectedTokenMaterial, {\n namespace: response.material.namespace,\n accessToken: response.material.accessToken,\n continuation: response.material.continuation,\n ...(retainedRefresh === undefined\n ? {}\n : { refreshToken: Redacted.make(Redacted.value(retainedRefresh)) }),\n });\n\n const oldRefreshRetained =\n previous !== undefined &&\n (response.material.refreshToken === undefined ||\n (previous.material.refreshToken !== undefined &&\n Redacted.value(response.material.refreshToken) ===\n Redacted.value(previous.material.refreshToken)));\n\n const oldExpiry = oldRefreshRetained\n ? previous?.context.metadata.refreshExpiresAtMillis\n : undefined;\n\n const refreshExpires =\n oldExpiry === undefined\n ? response.refreshExpiresAtMillis\n : Math.min(oldExpiry, response.refreshExpiresAtMillis ?? Number.MAX_SAFE_INTEGER);\n\n const refreshUseUntil =\n retainedRefresh === undefined\n ? undefined\n : Math.min(\n previous?.context.metadata.refreshUseUntilMillis ??\n startedAtMillis + (profile.maximumRefreshLifetimeMillis ?? 0),\n refreshExpires ?? Number.MAX_SAFE_INTEGER,\n );\n\n const useUntil = Math.min(\n startedAtMillis + profile.maximumAccessLifetimeMillis,\n response.accessExpiresAtMillis ?? Number.MAX_SAFE_INTEGER,\n );\n\n if (useUntil <= now || (refreshUseUntil !== undefined && refreshUseUntil <= now))\n return yield* OAuthUnavailable.make({});\n\n const metadata = yield* snapshotOAuth(M.OAuthConnectedTokenMetadata, {\n scopes: response.scopes,\n resources: response.resources,\n useUntilMillis: useUntil,\n obtainedAtMillis: startedAtMillis,\n ...(response.accessExpiresAtMillis === undefined\n ? {}\n : { accessExpiresAtMillis: response.accessExpiresAtMillis }),\n ...(retainedRefresh === undefined || refreshExpires === undefined\n ? {}\n : { refreshExpiresAtMillis: refreshExpires }),\n ...(refreshUseUntil === undefined ? {} : { refreshUseUntilMillis: refreshUseUntil }),\n ...(response.profile === undefined ? {} : { profile: response.profile }),\n });\n\n return { identity: response.identity, metadata, material };\n});\n\nexport interface AccessModule<Id extends string> {\n readonly moduleId: Id;\n readonly kind: \"oauth-connected-access\";\n}\n\nexport const makeOAuthConnectedAccess = <const Id extends string>(\n moduleId: Id,\n configuration: M.OAuthConnectedPolicy,\n) => {\n const ConnectedAccess = Context.Service<\n AccessModule<Id>,\n {\n readonly withAccessToken: <A, E, R>(\n invocation: AuthInvocation,\n input: typeof M.OAuthConnectedUse.Type,\n use: (accessToken: Redacted.Redacted<string>) => Effect.Effect<A, E, R>,\n ) => Effect.Effect<A, E | OAuthConnectedAccessFailure, R>;\n }\n >()(\"effect-auth/oauth/\" + moduleId.length + \":\" + moduleId + \"/ConnectedAccess\");\n\n const captured = captureConnectedPolicy(configuration);\n\n const accessLayer = Layer.effect(\n ConnectedAccess,\n Effect.gen(function* () {\n const { id, policy } = yield* validateConnectedPolicy(moduleId, captured);\n const { authorize } = yield* OAuthConnectedUseAuthority;\n\n const { inspectAccess, claimRefresh, settleRefresh, admitUse } =\n yield* OAuthConnectedPersistence;\n\n const { refreshGrant } = yield* OAuthConnectedProtocol;\n const { seal, open } = yield* OAuthConnectedTokenProtector;\n const { randomBytes } = yield* Crypto.Crypto;\n\n const random = Effect.fn(\"OAuthConnectedAccess.random\")(function* () {\n const bytes = yield* randomBytes(32).pipe(Effect.mapError(() => OAuthUnavailable.make({})));\n const result = OAuthClaimId.make(Encoding.encodeBase64Url(bytes));\n\n bytes.fill(0);\n\n return result;\n });\n\n const refresh = Effect.fn(\"OAuthConnectedAccess.refresh\")(function* (\n grant: M.OAuthConnectedStoredGrant,\n authorization: M.OAuthConnectedUseAuthorization,\n ) {\n const claimId = yield* random(),\n nextTokenVersion = SecurityRevision.make(yield* random());\n\n return yield* Effect.uninterruptibleMask((restore) =>\n Effect.gen(function* () {\n const receipt = yield* restore(\n claimRefresh(\n {\n grant: snapshotOAuthSync(M.OAuthConnectedStoredGrant, grant),\n authorization,\n claimId,\n nextTokenVersion,\n lifetimeMillis: policy.refreshClaimLifetimeMillis,\n },\n (value, journal) =>\n journal.prepare(snapshotOAuthSync(M.OAuthConnectedRefreshDecision, value)),\n ),\n );\n\n const decision = yield* connectedRead(receipt);\n\n if (decision._tag === \"Busy\") return yield* M.OAuthConnectedBusy.make({});\n if (decision._tag === \"ReauthorizationRequired\")\n return yield* M.OAuthConnectedReauthorizationRequired.make({});\n if (decision._tag !== \"Claimed\") return yield* OAuthRejected.make({});\n const owned = snapshotOAuthSync(M.OAuthConnectedRefreshClaim, decision.claim);\n\n if (\n owned.claimId !== claimId ||\n owned.nextTokenVersion !== nextTokenVersion ||\n !connectedSame(M.OAuthConnectedStoredGrant, owned.grant, grant) ||\n owned.claimExpiresAtMillis !==\n owned.claimedAtMillis + policy.refreshClaimLifetimeMillis ||\n owned.claimedAtMillis > DateTime.toEpochMillis(yield* DateTime.now)\n )\n return yield* OAuthUnavailable.make({});\n\n const exchange = Effect.gen(function* () {\n const material = yield* open(\n snapshotOAuthSync(M.OAuthConnectedStoredGrant, grant),\n ).pipe(Effect.flatMap((v) => snapshotOAuth(M.OAuthConnectedTokenMaterial, v)));\n\n return yield* Effect.gen(function* () {\n const start = DateTime.toEpochMillis(yield* DateTime.now);\n\n if (\n !material.refreshToken ||\n grant.context.configuration.profile.refresh === \"unsupported\" ||\n grant.context.metadata.refreshUseUntilMillis === undefined ||\n grant.context.metadata.refreshUseUntilMillis <= start ||\n start >= owned.claimExpiresAtMillis\n )\n return yield* M.OAuthConnectedReauthorizationRequired.make({});\n\n const response = yield* refreshGrant({\n context: snapshotOAuthSync(M.OAuthConnectedTokenContext, grant.context),\n material: snapshotOAuthSync(M.OAuthConnectedTokenMaterial, material),\n verificationStartedAt: DateTime.makeUnsafe(start),\n });\n\n const projected = yield* connectedGrantResponse(\n grant.context.configuration,\n response,\n start,\n { context: grant.context, material },\n );\n\n return yield* Effect.gen(function* () {\n const context = snapshotOAuthSync(M.OAuthConnectedTokenContext, {\n ...grant.context,\n tokenVersion: nextTokenVersion,\n metadata: projected.metadata,\n });\n\n const sealed = yield* seal({\n context,\n material: snapshotOAuthSync(M.OAuthConnectedTokenMaterial, projected.material),\n });\n\n const updated = snapshotOAuthSync(M.OAuthConnectedStoredGrant, {\n context,\n sealed,\n });\n\n let cleanup: M.OAuthConnectedRevocationJob | undefined;\n\n if (context.configuration.profile.revocation === \"cohort\") {\n const cleanupContext = snapshotOAuthSync(M.OAuthConnectedRevocationContext, {\n namespace: \"effect-auth/oauth-connected-revocation-context/v1\",\n jobId: yield* random(),\n token: context,\n });\n\n cleanup = snapshotOAuthSync(M.OAuthConnectedRevocationJob, {\n context: cleanupContext,\n sealed: yield* seal({\n context: cleanupContext,\n material: snapshotOAuthSync(\n M.OAuthConnectedTokenMaterial,\n projected.material,\n ),\n }),\n });\n }\n\n return snapshotOAuthSync(M.OAuthConnectedRefreshOutcome, {\n _tag: \"Refreshed\",\n grant: updated,\n ...(cleanup ? { cleanup } : {}),\n });\n }).pipe(\n Effect.ensuring(Effect.sync(() => wipeConnectedMaterial(projected.material))),\n );\n }).pipe(Effect.ensuring(Effect.sync(() => wipeConnectedMaterial(material))));\n });\n\n const remaining = Math.max(\n 1,\n owned.claimExpiresAtMillis - DateTime.toEpochMillis(yield* DateTime.now),\n );\n\n const exchanged = yield* Effect.exit(restore(connectedBounded(exchange, remaining)));\n\n const outcome: M.OAuthConnectedRefreshOutcome = Exit.isSuccess(exchanged)\n ? exchanged.value\n : { _tag: \"ReauthorizationRequired\" };\n\n const finished = yield* Effect.exit(\n connectedBounded(\n settleRefresh(\n {\n claim: owned,\n authorization,\n outcome,\n },\n (value, journal) =>\n journal.prepare(snapshotOAuthSync(M.OAuthConnectedRefreshSettlement, value)),\n ),\n policy.settlementTimeoutMillis,\n ),\n );\n\n if (Exit.isFailure(exchanged) && Cause.hasInterrupts(exchanged.cause))\n return yield* Effect.interrupt;\n if (Exit.isFailure(finished)) return yield* OAuthUnavailable.make({});\n const settled = yield* connectedRead(finished.value);\n\n if (settled._tag !== \"Refreshed\")\n return yield* M.OAuthConnectedReauthorizationRequired.make({});\n if (\n outcome._tag !== \"Refreshed\" ||\n !connectedSame(M.OAuthConnectedStoredGrant, settled.grant, outcome.grant)\n )\n return yield* OAuthUnavailable.make({});\n\n return snapshotOAuthSync(M.OAuthConnectedStoredGrant, settled.grant);\n }),\n );\n });\n\n const prepare = Effect.fn(\"OAuthConnectedAccess.prepare\")(function* (\n invocation: AuthInvocation,\n raw: typeof M.OAuthConnectedUse.Type,\n ) {\n const caller = yield* connectedCaller(invocation);\n const input = yield* snapshotOAuth(M.OAuthConnectedUse, raw);\n\n const authorization = yield* connectedUseAuthorization(\n yield* authorize({\n invocation: caller,\n moduleId: id,\n purpose: \"use\",\n ...input,\n }),\n id,\n caller.subjectId,\n \"use\",\n input.grantId,\n input.profileKey,\n );\n\n const inspected = yield* inspectAccess({ authorization, ...input }).pipe(\n Effect.flatMap((v) => snapshotOAuth(M.OAuthConnectedAccessInspection, v)),\n );\n\n if (inspected._tag === \"Busy\") return yield* M.OAuthConnectedBusy.make({});\n if (inspected._tag === \"ReauthorizationRequired\")\n return yield* M.OAuthConnectedReauthorizationRequired.make({});\n if (inspected._tag !== \"Target\") return yield* OAuthRejected.make({});\n let grant = inspected.grant;\n\n if (\n grant.context.moduleId !== id ||\n grant.context.subjectId !== caller.subjectId ||\n grant.context.grantId !== input.grantId ||\n grant.context.configuration.profile.key !== input.profileKey ||\n !connectedProfile(policy, grant.context.configuration.profile)\n )\n return yield* OAuthRejected.make({});\n const now = DateTime.toEpochMillis(yield* DateTime.now);\n\n if (\n grant.context.configuration.profile.refresh !== \"unsupported\" &&\n grant.context.metadata.refreshUseUntilMillis !== undefined &&\n grant.context.metadata.refreshUseUntilMillis > now &&\n now + grant.context.configuration.profile.refreshAheadMillis >=\n grant.context.metadata.useUntilMillis\n )\n grant = yield* refresh(grant, authorization);\n\n const material = yield* open(snapshotOAuthSync(M.OAuthConnectedStoredGrant, grant)).pipe(\n Effect.flatMap((v) => snapshotOAuth(M.OAuthConnectedTokenMaterial, v)),\n );\n\n return yield* Effect.gen(function* () {\n yield* connectedUseAuthorization(\n authorization,\n id,\n caller.subjectId,\n \"use\",\n input.grantId,\n input.profileKey,\n );\n if (DateTime.toEpochMillis(yield* DateTime.now) >= grant.context.metadata.useUntilMillis)\n return yield* M.OAuthConnectedReauthorizationRequired.make({});\n const admissionId = yield* random();\n\n const receipt = yield* admitUse(\n {\n grant: snapshotOAuthSync(M.OAuthConnectedStoredGrant, grant),\n authorization,\n admissionId,\n lifetimeMillis: policy.useAdmissionLifetimeMillis,\n },\n (value, journal) =>\n journal.prepare(snapshotOAuthSync(M.OAuthConnectedUseAdmission, value)),\n );\n\n const admitted = yield* connectedRead(receipt);\n\n if (admitted._tag === \"Busy\") return yield* M.OAuthConnectedBusy.make({});\n if (admitted._tag === \"ReauthorizationRequired\")\n return yield* M.OAuthConnectedReauthorizationRequired.make({});\n if (admitted._tag !== \"Admitted\") return yield* OAuthRejected.make({});\n if (\n admitted.admissionId !== admissionId ||\n admitted.grantId !== grant.context.grantId ||\n admitted.tokenVersion !== grant.context.tokenVersion ||\n admitted.expiresAtMillis <= admitted.admittedAtMillis ||\n admitted.admittedAtMillis > DateTime.toEpochMillis(yield* DateTime.now) ||\n admitted.expiresAtMillis >\n Math.min(\n admitted.admittedAtMillis + policy.useAdmissionLifetimeMillis,\n grant.context.metadata.useUntilMillis,\n authorization.expiresAtMillis,\n ) ||\n DateTime.toEpochMillis(yield* DateTime.now) >= admitted.expiresAtMillis\n )\n return yield* OAuthUnavailable.make({});\n\n return {\n token: Redacted.make(Redacted.value(material.accessToken)),\n expiresAtMillis: admitted.expiresAtMillis,\n };\n }).pipe(Effect.ensuring(Effect.sync(() => wipeConnectedMaterial(material))));\n }, connectedSafe);\n\n const withAccessToken = <A, E, R>(\n invocation: AuthInvocation,\n input: typeof M.OAuthConnectedUse.Type,\n use: (token: Redacted.Redacted<string>) => Effect.Effect<A, E, R>,\n ): Effect.Effect<A, E | OAuthConnectedAccessFailure, R> =>\n prepare(invocation, input).pipe(\n Effect.flatMap(({ token, expiresAtMillis }) =>\n Effect.gen(function* () {\n if (DateTime.toEpochMillis(yield* DateTime.now) >= expiresAtMillis)\n return yield* OAuthUnavailable.make({});\n\n return yield* Effect.suspend(() => use(token)).pipe(Effect.interruptible);\n }).pipe(Effect.ensuring(Effect.sync(() => Redacted.wipeUnsafe(token)))),\n ),\n );\n\n return ConnectedAccess.of({ withAccessToken });\n }),\n );\n\n return { ConnectedAccess, accessLayer };\n};\n"],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import "../operations/errors.mjs";
2
+ import "../operations/context.mjs";
3
+ import "../operations/operation.mjs";
4
+ import "../Operations.mjs";
5
+ import "../Auth.mjs";
6
+ import "./signInErrors.mjs";
7
+ import "./connectedModels.mjs";
8
+ import "./OAuthConnectedPersistence.mjs";
9
+ import "./OAuthConnectedProtocol.mjs";
10
+ import "./OAuthConnectedTokenProtector.mjs";
11
+ import { Context, Crypto, Effect, Layer, Schema } from "effect";
12
+ //#region src/oauth/connectedMaintenance.d.ts
13
+ interface MaintenanceModule<Id extends string> {
14
+ readonly moduleId: Id;
15
+ readonly kind: "oauth-connected-maintenance";
16
+ }
17
+ //#endregion
18
+ export { MaintenanceModule };
19
+ //# sourceMappingURL=connectedMaintenance.d.mts.map