@_mustachio/openauth 0.9.2 → 0.11.0

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 (756) hide show
  1. package/dist/esm/adapters/d1/audit-log.js +15 -0
  2. package/dist/esm/adapters/d1/config-store.js +45 -0
  3. package/dist/esm/adapters/d1/index.js +12 -0
  4. package/dist/esm/adapters/d1/key-store.js +116 -0
  5. package/dist/esm/adapters/d1/method-store.js +52 -0
  6. package/dist/esm/adapters/d1/migrations.js +77 -0
  7. package/dist/esm/adapters/d1/session-store.js +134 -0
  8. package/dist/esm/adapters/d1/session.js +18 -0
  9. package/dist/esm/adapters/d1/token-store.js +140 -0
  10. package/dist/esm/adapters/durable-object/index.js +3 -0
  11. package/dist/esm/adapters/durable-object/session-store.js +139 -0
  12. package/dist/esm/adapters/durable-object/types.js +0 -0
  13. package/dist/esm/adapters/dynamo/audit-log.js +23 -0
  14. package/dist/esm/adapters/dynamo/client.js +0 -0
  15. package/dist/esm/adapters/dynamo/config-store.js +57 -0
  16. package/dist/esm/adapters/dynamo/index.js +10 -0
  17. package/dist/esm/adapters/dynamo/key-store.js +188 -0
  18. package/dist/esm/adapters/dynamo/method-store.js +72 -0
  19. package/dist/esm/adapters/dynamo/passkey-credential-store.js +83 -0
  20. package/dist/esm/adapters/dynamo/sdk.js +128 -0
  21. package/dist/esm/adapters/dynamo/session-store.js +173 -0
  22. package/dist/esm/adapters/dynamo/token-store.js +178 -0
  23. package/dist/esm/adapters/kms/in-memory-backing.js +28 -0
  24. package/dist/esm/adapters/kms/index.js +5 -0
  25. package/dist/esm/adapters/kms/key-store.js +129 -0
  26. package/dist/esm/adapters/kms/sdk.js +23 -0
  27. package/dist/esm/adapters/kms/types.js +0 -0
  28. package/dist/esm/adapters/kv/audit-log.js +21 -0
  29. package/dist/esm/adapters/kv/config-store.js +43 -0
  30. package/dist/esm/adapters/kv/index.js +5 -0
  31. package/dist/esm/adapters/kv/method-store.js +63 -0
  32. package/dist/esm/adapters/kv/types.js +0 -0
  33. package/dist/esm/adapters/memory/audit-log.js +16 -0
  34. package/dist/esm/adapters/memory/clock.js +5 -0
  35. package/dist/esm/adapters/memory/config-store.js +31 -0
  36. package/dist/esm/adapters/memory/index.js +10 -0
  37. package/dist/esm/adapters/memory/key-store.js +78 -0
  38. package/dist/esm/adapters/memory/method-store.js +43 -0
  39. package/dist/esm/adapters/memory/passkey-credential-store.js +53 -0
  40. package/dist/esm/adapters/memory/session-store.js +104 -0
  41. package/dist/esm/adapters/memory/token-store.js +104 -0
  42. package/dist/esm/adapters/postgres/audit-log.js +16 -0
  43. package/dist/esm/adapters/postgres/config-store.js +48 -0
  44. package/dist/esm/adapters/postgres/executor.js +21 -0
  45. package/dist/esm/adapters/postgres/index.js +13 -0
  46. package/dist/esm/adapters/postgres/key-store.js +191 -0
  47. package/dist/esm/adapters/postgres/method-store.js +61 -0
  48. package/dist/esm/adapters/postgres/migrations.js +111 -0
  49. package/dist/esm/adapters/postgres/passkey-credential-store.js +80 -0
  50. package/dist/esm/adapters/postgres/session-store.js +135 -0
  51. package/dist/esm/adapters/postgres/token-store.js +151 -0
  52. package/dist/esm/client.js +35 -12
  53. package/dist/esm/domain/audit.js +13 -0
  54. package/dist/esm/domain/authorize.js +217 -0
  55. package/dist/esm/domain/callback.js +176 -0
  56. package/dist/esm/domain/client-auth.js +61 -0
  57. package/dist/esm/domain/client-credentials.js +91 -0
  58. package/dist/esm/domain/crypto.js +97 -0
  59. package/dist/esm/domain/discovery.js +83 -0
  60. package/dist/esm/domain/dpop.js +122 -0
  61. package/dist/esm/domain/id-token.js +94 -0
  62. package/dist/esm/domain/introspect.js +55 -0
  63. package/dist/esm/domain/jwt.js +71 -0
  64. package/dist/esm/domain/logout.js +75 -0
  65. package/dist/esm/domain/method-cache.js +136 -0
  66. package/dist/esm/domain/method-dispatch.js +36 -0
  67. package/dist/esm/domain/method-route.js +111 -0
  68. package/dist/esm/domain/par.js +51 -0
  69. package/dist/esm/domain/pkce.js +16 -0
  70. package/dist/esm/domain/refresh.js +102 -0
  71. package/dist/esm/domain/register.js +74 -0
  72. package/dist/esm/domain/revoke.js +81 -0
  73. package/dist/esm/domain/state-envelope.js +80 -0
  74. package/dist/esm/domain/token-exchange.js +102 -0
  75. package/dist/esm/domain/token.js +246 -0
  76. package/dist/esm/domain/userinfo.js +62 -0
  77. package/dist/esm/http/context.js +7 -0
  78. package/dist/esm/http/cookies.js +98 -0
  79. package/dist/esm/http/errors.js +71 -0
  80. package/dist/esm/http/handlers/authorize.js +250 -0
  81. package/dist/esm/http/handlers/callback.js +53 -0
  82. package/dist/esm/http/handlers/end-session.js +64 -0
  83. package/dist/esm/http/handlers/metadata.js +37 -0
  84. package/dist/esm/http/handlers/method-route.js +87 -0
  85. package/dist/esm/http/handlers/par.js +53 -0
  86. package/dist/esm/http/handlers/register.js +46 -0
  87. package/dist/esm/http/handlers/revocation.js +98 -0
  88. package/dist/esm/http/handlers/token.js +197 -0
  89. package/dist/esm/http/handlers/userinfo.js +60 -0
  90. package/dist/esm/http/middleware/error.js +15 -0
  91. package/dist/esm/http/middleware/tenant.js +102 -0
  92. package/dist/esm/http/resolver.js +15 -0
  93. package/dist/esm/http/router.js +45 -0
  94. package/dist/esm/http/schemas/authorize.js +30 -0
  95. package/dist/esm/http/schemas/end-session.js +13 -0
  96. package/dist/esm/http/schemas/par.js +9 -0
  97. package/dist/esm/http/schemas/register.js +16 -0
  98. package/dist/esm/http/schemas/revocation.js +18 -0
  99. package/dist/esm/http/schemas/token.js +57 -0
  100. package/dist/esm/index.js +126 -9
  101. package/dist/esm/methods/code.js +221 -0
  102. package/dist/esm/methods/m2m.js +41 -0
  103. package/dist/esm/methods/oauth2-factory.js +84 -0
  104. package/dist/esm/methods/oauth2-generic.js +196 -0
  105. package/dist/esm/methods/oidc-generic.js +53 -0
  106. package/dist/esm/methods/passkey.js +275 -0
  107. package/dist/esm/methods/password-hash.js +79 -0
  108. package/dist/esm/methods/password.js +166 -0
  109. package/dist/esm/methods/providers/apple.js +29 -0
  110. package/dist/esm/methods/providers/cognito.js +37 -0
  111. package/dist/esm/methods/providers/discord.js +28 -0
  112. package/dist/esm/methods/providers/facebook.js +42 -0
  113. package/dist/esm/methods/providers/github.js +29 -0
  114. package/dist/esm/methods/providers/google.js +29 -0
  115. package/dist/esm/methods/providers/index.js +17 -0
  116. package/dist/esm/methods/providers/jumpcloud.js +27 -0
  117. package/dist/esm/methods/providers/keycloak.js +32 -0
  118. package/dist/esm/methods/providers/linkedin.js +28 -0
  119. package/dist/esm/methods/providers/microsoft.js +28 -0
  120. package/dist/esm/methods/providers/slack.js +30 -0
  121. package/dist/esm/methods/providers/spotify.js +28 -0
  122. package/dist/esm/methods/providers/twitch.js +28 -0
  123. package/dist/esm/methods/providers/x.js +28 -0
  124. package/dist/esm/methods/providers/yahoo.js +27 -0
  125. package/dist/esm/pkce.js +4 -16
  126. package/dist/esm/ports/audit-log.js +0 -0
  127. package/dist/esm/ports/config-store.js +0 -0
  128. package/dist/esm/ports/key-store.js +0 -0
  129. package/dist/esm/ports/method-store.js +0 -0
  130. package/dist/esm/ports/session-store.js +0 -0
  131. package/dist/esm/ports/token-store.js +0 -0
  132. package/dist/esm/types/authorization.js +0 -0
  133. package/dist/esm/types/error.js +70 -0
  134. package/dist/esm/types/flow.js +0 -0
  135. package/dist/esm/types/idp.js +0 -0
  136. package/dist/esm/types/method.js +0 -0
  137. package/dist/esm/types/picker.js +0 -0
  138. package/dist/esm/types/result.js +11 -0
  139. package/dist/esm/types/subject.js +0 -0
  140. package/dist/esm/types/tenant.js +5 -0
  141. package/dist/esm/types/token.js +0 -0
  142. package/dist/esm/ui/forms.js +253 -0
  143. package/dist/esm/ui/index.js +8 -0
  144. package/dist/esm/ui/picker.js +49 -0
  145. package/dist/types/adapters/d1/audit-log.d.ts +19 -0
  146. package/dist/types/adapters/d1/audit-log.d.ts.map +1 -0
  147. package/dist/types/adapters/d1/config-store.d.ts +20 -0
  148. package/dist/types/adapters/d1/config-store.d.ts.map +1 -0
  149. package/dist/types/adapters/d1/index.d.ts +35 -0
  150. package/dist/types/adapters/d1/index.d.ts.map +1 -0
  151. package/dist/types/adapters/d1/key-store.d.ts +17 -0
  152. package/dist/types/adapters/d1/key-store.d.ts.map +1 -0
  153. package/dist/types/adapters/d1/method-store.d.ts +21 -0
  154. package/dist/types/adapters/d1/method-store.d.ts.map +1 -0
  155. package/dist/types/adapters/d1/migrations.d.ts +18 -0
  156. package/dist/types/adapters/d1/migrations.d.ts.map +1 -0
  157. package/dist/types/adapters/d1/session-store.d.ts +20 -0
  158. package/dist/types/adapters/d1/session-store.d.ts.map +1 -0
  159. package/dist/types/adapters/d1/session.d.ts +18 -0
  160. package/dist/types/adapters/d1/session.d.ts.map +1 -0
  161. package/dist/types/adapters/d1/token-store.d.ts +29 -0
  162. package/dist/types/adapters/d1/token-store.d.ts.map +1 -0
  163. package/dist/types/adapters/d1/types.d.ts +43 -0
  164. package/dist/types/adapters/d1/types.d.ts.map +1 -0
  165. package/dist/types/adapters/durable-object/index.d.ts +17 -0
  166. package/dist/types/adapters/durable-object/index.d.ts.map +1 -0
  167. package/dist/types/adapters/durable-object/session-store.d.ts +21 -0
  168. package/dist/types/adapters/durable-object/session-store.d.ts.map +1 -0
  169. package/dist/types/adapters/durable-object/types.d.ts +23 -0
  170. package/dist/types/adapters/durable-object/types.d.ts.map +1 -0
  171. package/dist/types/adapters/dynamo/audit-log.d.ts +19 -0
  172. package/dist/types/adapters/dynamo/audit-log.d.ts.map +1 -0
  173. package/dist/types/adapters/dynamo/client.d.ts +111 -0
  174. package/dist/types/adapters/dynamo/client.d.ts.map +1 -0
  175. package/dist/types/adapters/dynamo/config-store.d.ts +21 -0
  176. package/dist/types/adapters/dynamo/config-store.d.ts.map +1 -0
  177. package/dist/types/adapters/dynamo/index.d.ts +60 -0
  178. package/dist/types/adapters/dynamo/index.d.ts.map +1 -0
  179. package/dist/types/adapters/dynamo/key-store.d.ts +23 -0
  180. package/dist/types/adapters/dynamo/key-store.d.ts.map +1 -0
  181. package/dist/types/adapters/dynamo/method-store.d.ts +20 -0
  182. package/dist/types/adapters/dynamo/method-store.d.ts.map +1 -0
  183. package/dist/types/adapters/dynamo/passkey-credential-store.d.ts +47 -0
  184. package/dist/types/adapters/dynamo/passkey-credential-store.d.ts.map +1 -0
  185. package/dist/types/adapters/dynamo/sdk.d.ts +23 -0
  186. package/dist/types/adapters/dynamo/sdk.d.ts.map +1 -0
  187. package/dist/types/adapters/dynamo/session-store.d.ts +20 -0
  188. package/dist/types/adapters/dynamo/session-store.d.ts.map +1 -0
  189. package/dist/types/adapters/dynamo/token-store.d.ts +29 -0
  190. package/dist/types/adapters/dynamo/token-store.d.ts.map +1 -0
  191. package/dist/types/adapters/kms/in-memory-backing.d.ts +9 -0
  192. package/dist/types/adapters/kms/in-memory-backing.d.ts.map +1 -0
  193. package/dist/types/adapters/kms/index.d.ts +35 -0
  194. package/dist/types/adapters/kms/index.d.ts.map +1 -0
  195. package/dist/types/adapters/kms/key-store.d.ts +20 -0
  196. package/dist/types/adapters/kms/key-store.d.ts.map +1 -0
  197. package/dist/types/adapters/kms/sdk.d.ts +16 -0
  198. package/dist/types/adapters/kms/sdk.d.ts.map +1 -0
  199. package/dist/types/adapters/kms/types.d.ts +58 -0
  200. package/dist/types/adapters/kms/types.d.ts.map +1 -0
  201. package/dist/types/adapters/kv/audit-log.d.ts +22 -0
  202. package/dist/types/adapters/kv/audit-log.d.ts.map +1 -0
  203. package/dist/types/adapters/kv/config-store.d.ts +25 -0
  204. package/dist/types/adapters/kv/config-store.d.ts.map +1 -0
  205. package/dist/types/adapters/kv/index.d.ts +21 -0
  206. package/dist/types/adapters/kv/index.d.ts.map +1 -0
  207. package/dist/types/adapters/kv/method-store.d.ts +23 -0
  208. package/dist/types/adapters/kv/method-store.d.ts.map +1 -0
  209. package/dist/types/adapters/kv/types.d.ts +28 -0
  210. package/dist/types/adapters/kv/types.d.ts.map +1 -0
  211. package/dist/types/adapters/memory/audit-log.d.ts +18 -0
  212. package/dist/types/adapters/memory/audit-log.d.ts.map +1 -0
  213. package/dist/types/adapters/memory/clock.d.ts +7 -0
  214. package/dist/types/adapters/memory/clock.d.ts.map +1 -0
  215. package/dist/types/adapters/memory/config-store.d.ts +19 -0
  216. package/dist/types/adapters/memory/config-store.d.ts.map +1 -0
  217. package/dist/types/adapters/memory/index.d.ts +15 -0
  218. package/dist/types/adapters/memory/index.d.ts.map +1 -0
  219. package/dist/types/adapters/memory/key-store.d.ts +17 -0
  220. package/dist/types/adapters/memory/key-store.d.ts.map +1 -0
  221. package/dist/types/adapters/memory/method-store.d.ts +26 -0
  222. package/dist/types/adapters/memory/method-store.d.ts.map +1 -0
  223. package/dist/types/adapters/memory/passkey-credential-store.d.ts +43 -0
  224. package/dist/types/adapters/memory/passkey-credential-store.d.ts.map +1 -0
  225. package/dist/types/adapters/memory/session-store.d.ts +21 -0
  226. package/dist/types/adapters/memory/session-store.d.ts.map +1 -0
  227. package/dist/types/adapters/memory/token-store.d.ts +29 -0
  228. package/dist/types/adapters/memory/token-store.d.ts.map +1 -0
  229. package/dist/types/adapters/postgres/audit-log.d.ts +18 -0
  230. package/dist/types/adapters/postgres/audit-log.d.ts.map +1 -0
  231. package/dist/types/adapters/postgres/config-store.d.ts +21 -0
  232. package/dist/types/adapters/postgres/config-store.d.ts.map +1 -0
  233. package/dist/types/adapters/postgres/executor.d.ts +48 -0
  234. package/dist/types/adapters/postgres/executor.d.ts.map +1 -0
  235. package/dist/types/adapters/postgres/index.d.ts +39 -0
  236. package/dist/types/adapters/postgres/index.d.ts.map +1 -0
  237. package/dist/types/adapters/postgres/key-store.d.ts +23 -0
  238. package/dist/types/adapters/postgres/key-store.d.ts.map +1 -0
  239. package/dist/types/adapters/postgres/method-store.d.ts +21 -0
  240. package/dist/types/adapters/postgres/method-store.d.ts.map +1 -0
  241. package/dist/types/adapters/postgres/migrations.d.ts +22 -0
  242. package/dist/types/adapters/postgres/migrations.d.ts.map +1 -0
  243. package/dist/types/adapters/postgres/passkey-credential-store.d.ts +48 -0
  244. package/dist/types/adapters/postgres/passkey-credential-store.d.ts.map +1 -0
  245. package/dist/types/adapters/postgres/session-store.d.ts +20 -0
  246. package/dist/types/adapters/postgres/session-store.d.ts.map +1 -0
  247. package/dist/types/adapters/postgres/token-store.d.ts +30 -0
  248. package/dist/types/adapters/postgres/token-store.d.ts.map +1 -0
  249. package/dist/types/client.d.ts +20 -1
  250. package/dist/types/client.d.ts.map +1 -1
  251. package/dist/types/domain/audit.d.ts +17 -0
  252. package/dist/types/domain/audit.d.ts.map +1 -0
  253. package/dist/types/domain/authorize.d.ts +125 -0
  254. package/dist/types/domain/authorize.d.ts.map +1 -0
  255. package/dist/types/domain/callback.d.ts +70 -0
  256. package/dist/types/domain/callback.d.ts.map +1 -0
  257. package/dist/types/domain/client-auth.d.ts +57 -0
  258. package/dist/types/domain/client-auth.d.ts.map +1 -0
  259. package/dist/types/domain/client-credentials.d.ts +54 -0
  260. package/dist/types/domain/client-credentials.d.ts.map +1 -0
  261. package/dist/types/domain/crypto.d.ts +53 -0
  262. package/dist/types/domain/crypto.d.ts.map +1 -0
  263. package/dist/types/domain/discovery.d.ts +81 -0
  264. package/dist/types/domain/discovery.d.ts.map +1 -0
  265. package/dist/types/domain/dpop.d.ts +61 -0
  266. package/dist/types/domain/dpop.d.ts.map +1 -0
  267. package/dist/types/domain/id-token.d.ts +83 -0
  268. package/dist/types/domain/id-token.d.ts.map +1 -0
  269. package/dist/types/domain/introspect.d.ts +79 -0
  270. package/dist/types/domain/introspect.d.ts.map +1 -0
  271. package/dist/types/domain/jwt.d.ts +74 -0
  272. package/dist/types/domain/jwt.d.ts.map +1 -0
  273. package/dist/types/domain/logout.d.ts +69 -0
  274. package/dist/types/domain/logout.d.ts.map +1 -0
  275. package/dist/types/domain/method-cache.d.ts +42 -0
  276. package/dist/types/domain/method-cache.d.ts.map +1 -0
  277. package/dist/types/domain/method-dispatch.d.ts +37 -0
  278. package/dist/types/domain/method-dispatch.d.ts.map +1 -0
  279. package/dist/types/domain/method-route.d.ts +77 -0
  280. package/dist/types/domain/method-route.d.ts.map +1 -0
  281. package/dist/types/domain/par.d.ts +62 -0
  282. package/dist/types/domain/par.d.ts.map +1 -0
  283. package/dist/types/domain/pkce.d.ts +15 -0
  284. package/dist/types/domain/pkce.d.ts.map +1 -0
  285. package/dist/types/domain/refresh.d.ts +52 -0
  286. package/dist/types/domain/refresh.d.ts.map +1 -0
  287. package/dist/types/domain/register.d.ts +33 -0
  288. package/dist/types/domain/register.d.ts.map +1 -0
  289. package/dist/types/domain/revoke.d.ts +61 -0
  290. package/dist/types/domain/revoke.d.ts.map +1 -0
  291. package/dist/types/domain/state-envelope.d.ts +30 -0
  292. package/dist/types/domain/state-envelope.d.ts.map +1 -0
  293. package/dist/types/domain/token-exchange.d.ts +69 -0
  294. package/dist/types/domain/token-exchange.d.ts.map +1 -0
  295. package/dist/types/domain/token.d.ts +140 -0
  296. package/dist/types/domain/token.d.ts.map +1 -0
  297. package/dist/types/domain/userinfo.d.ts +61 -0
  298. package/dist/types/domain/userinfo.d.ts.map +1 -0
  299. package/dist/types/http/context.d.ts +66 -0
  300. package/dist/types/http/context.d.ts.map +1 -0
  301. package/dist/types/http/cookies.d.ts +45 -0
  302. package/dist/types/http/cookies.d.ts.map +1 -0
  303. package/dist/types/http/errors.d.ts +36 -0
  304. package/dist/types/http/errors.d.ts.map +1 -0
  305. package/dist/types/http/handlers/authorize.d.ts +3 -0
  306. package/dist/types/http/handlers/authorize.d.ts.map +1 -0
  307. package/dist/types/http/handlers/callback.d.ts +3 -0
  308. package/dist/types/http/handlers/callback.d.ts.map +1 -0
  309. package/dist/types/http/handlers/end-session.d.ts +3 -0
  310. package/dist/types/http/handlers/end-session.d.ts.map +1 -0
  311. package/dist/types/http/handlers/metadata.d.ts +4 -0
  312. package/dist/types/http/handlers/metadata.d.ts.map +1 -0
  313. package/dist/types/http/handlers/method-route.d.ts +3 -0
  314. package/dist/types/http/handlers/method-route.d.ts.map +1 -0
  315. package/dist/types/http/handlers/par.d.ts +3 -0
  316. package/dist/types/http/handlers/par.d.ts.map +1 -0
  317. package/dist/types/http/handlers/register.d.ts +3 -0
  318. package/dist/types/http/handlers/register.d.ts.map +1 -0
  319. package/dist/types/http/handlers/revocation.d.ts +4 -0
  320. package/dist/types/http/handlers/revocation.d.ts.map +1 -0
  321. package/dist/types/http/handlers/token.d.ts +3 -0
  322. package/dist/types/http/handlers/token.d.ts.map +1 -0
  323. package/dist/types/http/handlers/userinfo.d.ts +3 -0
  324. package/dist/types/http/handlers/userinfo.d.ts.map +1 -0
  325. package/dist/types/http/middleware/error.d.ts +9 -0
  326. package/dist/types/http/middleware/error.d.ts.map +1 -0
  327. package/dist/types/http/middleware/tenant.d.ts +30 -0
  328. package/dist/types/http/middleware/tenant.d.ts.map +1 -0
  329. package/dist/types/http/resolver.d.ts +22 -0
  330. package/dist/types/http/resolver.d.ts.map +1 -0
  331. package/dist/types/http/router.d.ts +21 -0
  332. package/dist/types/http/router.d.ts.map +1 -0
  333. package/dist/types/http/schemas/authorize.d.ts +92 -0
  334. package/dist/types/http/schemas/authorize.d.ts.map +1 -0
  335. package/dist/types/http/schemas/end-session.d.ts +31 -0
  336. package/dist/types/http/schemas/end-session.d.ts.map +1 -0
  337. package/dist/types/http/schemas/par.d.ts +20 -0
  338. package/dist/types/http/schemas/par.d.ts.map +1 -0
  339. package/dist/types/http/schemas/register.d.ts +42 -0
  340. package/dist/types/http/schemas/register.d.ts.map +1 -0
  341. package/dist/types/http/schemas/revocation.d.ts +41 -0
  342. package/dist/types/http/schemas/revocation.d.ts.map +1 -0
  343. package/dist/types/http/schemas/token.d.ts +227 -0
  344. package/dist/types/http/schemas/token.d.ts.map +1 -0
  345. package/dist/types/index.d.ts +63 -13
  346. package/dist/types/index.d.ts.map +1 -1
  347. package/dist/types/methods/code.d.ts +96 -0
  348. package/dist/types/methods/code.d.ts.map +1 -0
  349. package/dist/types/methods/m2m.d.ts +41 -0
  350. package/dist/types/methods/m2m.d.ts.map +1 -0
  351. package/dist/types/methods/oauth2-factory.d.ts +133 -0
  352. package/dist/types/methods/oauth2-factory.d.ts.map +1 -0
  353. package/dist/types/methods/oauth2-generic.d.ts +75 -0
  354. package/dist/types/methods/oauth2-generic.d.ts.map +1 -0
  355. package/dist/types/methods/oidc-generic.d.ts +26 -0
  356. package/dist/types/methods/oidc-generic.d.ts.map +1 -0
  357. package/dist/types/methods/passkey.d.ts +106 -0
  358. package/dist/types/methods/passkey.d.ts.map +1 -0
  359. package/dist/types/methods/password-hash.d.ts +25 -0
  360. package/dist/types/methods/password-hash.d.ts.map +1 -0
  361. package/dist/types/methods/password.d.ts +70 -0
  362. package/dist/types/methods/password.d.ts.map +1 -0
  363. package/dist/types/methods/providers/apple.d.ts +29 -0
  364. package/dist/types/methods/providers/apple.d.ts.map +1 -0
  365. package/dist/types/methods/providers/cognito.d.ts +36 -0
  366. package/dist/types/methods/providers/cognito.d.ts.map +1 -0
  367. package/dist/types/methods/providers/discord.d.ts +22 -0
  368. package/dist/types/methods/providers/discord.d.ts.map +1 -0
  369. package/dist/types/methods/providers/facebook.d.ts +29 -0
  370. package/dist/types/methods/providers/facebook.d.ts.map +1 -0
  371. package/dist/types/methods/providers/github.d.ts +25 -0
  372. package/dist/types/methods/providers/github.d.ts.map +1 -0
  373. package/dist/types/methods/providers/google.d.ts +28 -0
  374. package/dist/types/methods/providers/google.d.ts.map +1 -0
  375. package/dist/types/methods/providers/index.d.ts +24 -0
  376. package/dist/types/methods/providers/index.d.ts.map +1 -0
  377. package/dist/types/methods/providers/jumpcloud.d.ts +22 -0
  378. package/dist/types/methods/providers/jumpcloud.d.ts.map +1 -0
  379. package/dist/types/methods/providers/keycloak.d.ts +30 -0
  380. package/dist/types/methods/providers/keycloak.d.ts.map +1 -0
  381. package/dist/types/methods/providers/linkedin.d.ts +22 -0
  382. package/dist/types/methods/providers/linkedin.d.ts.map +1 -0
  383. package/dist/types/methods/providers/microsoft.d.ts +30 -0
  384. package/dist/types/methods/providers/microsoft.d.ts.map +1 -0
  385. package/dist/types/methods/providers/slack.d.ts +25 -0
  386. package/dist/types/methods/providers/slack.d.ts.map +1 -0
  387. package/dist/types/methods/providers/spotify.d.ts +22 -0
  388. package/dist/types/methods/providers/spotify.d.ts.map +1 -0
  389. package/dist/types/methods/providers/twitch.d.ts +23 -0
  390. package/dist/types/methods/providers/twitch.d.ts.map +1 -0
  391. package/dist/types/methods/providers/x.d.ts +25 -0
  392. package/dist/types/methods/providers/x.d.ts.map +1 -0
  393. package/dist/types/methods/providers/yahoo.d.ts +22 -0
  394. package/dist/types/methods/providers/yahoo.d.ts.map +1 -0
  395. package/dist/types/pkce.d.ts +1 -2
  396. package/dist/types/pkce.d.ts.map +1 -1
  397. package/dist/types/ports/audit-log.d.ts +166 -0
  398. package/dist/types/ports/audit-log.d.ts.map +1 -0
  399. package/dist/types/ports/config-store.d.ts +32 -0
  400. package/dist/types/ports/config-store.d.ts.map +1 -0
  401. package/dist/types/ports/key-store.d.ts +98 -0
  402. package/dist/types/ports/key-store.d.ts.map +1 -0
  403. package/dist/types/ports/method-store.d.ts +29 -0
  404. package/dist/types/ports/method-store.d.ts.map +1 -0
  405. package/dist/types/ports/session-store.d.ts +109 -0
  406. package/dist/types/ports/session-store.d.ts.map +1 -0
  407. package/dist/types/ports/token-store.d.ts +105 -0
  408. package/dist/types/ports/token-store.d.ts.map +1 -0
  409. package/dist/types/types/authorization.d.ts +75 -0
  410. package/dist/types/types/authorization.d.ts.map +1 -0
  411. package/dist/types/types/error.d.ts +101 -0
  412. package/dist/types/types/error.d.ts.map +1 -0
  413. package/dist/types/types/flow.d.ts +97 -0
  414. package/dist/types/types/flow.d.ts.map +1 -0
  415. package/dist/types/types/idp.d.ts +324 -0
  416. package/dist/types/types/idp.d.ts.map +1 -0
  417. package/dist/types/types/method.d.ts +256 -0
  418. package/dist/types/types/method.d.ts.map +1 -0
  419. package/dist/types/types/picker.d.ts +31 -0
  420. package/dist/types/types/picker.d.ts.map +1 -0
  421. package/dist/types/types/result.d.ts +29 -0
  422. package/dist/types/types/result.d.ts.map +1 -0
  423. package/dist/types/types/subject.d.ts +47 -0
  424. package/dist/types/types/subject.d.ts.map +1 -0
  425. package/dist/types/types/tenant.d.ts +276 -0
  426. package/dist/types/types/tenant.d.ts.map +1 -0
  427. package/dist/types/types/token.d.ts +231 -0
  428. package/dist/types/types/token.d.ts.map +1 -0
  429. package/dist/types/ui/forms.d.ts +35 -0
  430. package/dist/types/ui/forms.d.ts.map +1 -0
  431. package/dist/types/ui/index.d.ts +14 -0
  432. package/dist/types/ui/index.d.ts.map +1 -0
  433. package/dist/types/ui/picker.d.ts +18 -0
  434. package/dist/types/ui/picker.d.ts.map +1 -0
  435. package/package.json +41 -6
  436. package/src/adapters/d1/audit-log.ts +32 -0
  437. package/src/adapters/d1/config-store.ts +67 -0
  438. package/src/adapters/d1/index.ts +41 -0
  439. package/src/adapters/d1/key-store.ts +218 -0
  440. package/src/adapters/d1/method-store.ts +103 -0
  441. package/src/adapters/d1/migrations.ts +89 -0
  442. package/src/adapters/d1/session-store.ts +230 -0
  443. package/src/adapters/d1/session.ts +38 -0
  444. package/src/adapters/d1/token-store.ts +251 -0
  445. package/src/adapters/d1/types.ts +53 -0
  446. package/src/adapters/durable-object/index.ts +23 -0
  447. package/src/adapters/durable-object/session-store.ts +227 -0
  448. package/src/adapters/durable-object/types.ts +25 -0
  449. package/src/adapters/dynamo/audit-log.ts +35 -0
  450. package/src/adapters/dynamo/client.ts +118 -0
  451. package/src/adapters/dynamo/config-store.ts +72 -0
  452. package/src/adapters/dynamo/index.ts +81 -0
  453. package/src/adapters/dynamo/key-store.ts +267 -0
  454. package/src/adapters/dynamo/method-store.ts +105 -0
  455. package/src/adapters/dynamo/passkey-credential-store.ts +132 -0
  456. package/src/adapters/dynamo/sdk.ts +189 -0
  457. package/src/adapters/dynamo/session-store.ts +229 -0
  458. package/src/adapters/dynamo/token-store.ts +248 -0
  459. package/src/adapters/kms/in-memory-backing.ts +36 -0
  460. package/src/adapters/kms/index.ts +39 -0
  461. package/src/adapters/kms/key-store.ts +176 -0
  462. package/src/adapters/kms/sdk.ts +39 -0
  463. package/src/adapters/kms/types.ts +61 -0
  464. package/src/adapters/kv/audit-log.ts +40 -0
  465. package/src/adapters/kv/config-store.ts +63 -0
  466. package/src/adapters/kv/index.ts +20 -0
  467. package/src/adapters/kv/method-store.ts +98 -0
  468. package/src/adapters/kv/types.ts +26 -0
  469. package/src/adapters/memory/audit-log.ts +28 -0
  470. package/src/adapters/memory/clock.ts +7 -0
  471. package/src/adapters/memory/config-store.ts +41 -0
  472. package/src/adapters/memory/index.ts +26 -0
  473. package/src/adapters/memory/key-store.ts +102 -0
  474. package/src/adapters/memory/method-store.ts +75 -0
  475. package/src/adapters/memory/passkey-credential-store.ts +97 -0
  476. package/src/adapters/memory/session-store.ts +171 -0
  477. package/src/adapters/memory/token-store.ts +181 -0
  478. package/src/adapters/postgres/audit-log.ts +34 -0
  479. package/src/adapters/postgres/config-store.ts +72 -0
  480. package/src/adapters/postgres/executor.ts +76 -0
  481. package/src/adapters/postgres/index.ts +60 -0
  482. package/src/adapters/postgres/key-store.ts +334 -0
  483. package/src/adapters/postgres/method-store.ts +104 -0
  484. package/src/adapters/postgres/migrations.ts +131 -0
  485. package/src/adapters/postgres/passkey-credential-store.ts +150 -0
  486. package/src/adapters/postgres/session-store.ts +216 -0
  487. package/src/adapters/postgres/token-store.ts +263 -0
  488. package/src/client.ts +82 -16
  489. package/src/domain/audit.ts +28 -0
  490. package/src/domain/authorize.ts +414 -0
  491. package/src/domain/callback.ts +268 -0
  492. package/src/domain/client-auth.ts +116 -0
  493. package/src/domain/client-credentials.ts +180 -0
  494. package/src/domain/crypto.ts +168 -0
  495. package/src/domain/discovery.ts +161 -0
  496. package/src/domain/dpop.ts +293 -0
  497. package/src/domain/id-token.ts +213 -0
  498. package/src/domain/introspect.ts +155 -0
  499. package/src/domain/jwt.ts +185 -0
  500. package/src/domain/logout.ts +180 -0
  501. package/src/domain/method-cache.ts +220 -0
  502. package/src/domain/method-dispatch.ts +95 -0
  503. package/src/domain/method-route.ts +213 -0
  504. package/src/domain/par.ts +141 -0
  505. package/src/domain/pkce.ts +37 -0
  506. package/src/domain/refresh.ts +210 -0
  507. package/src/domain/register.ts +168 -0
  508. package/src/domain/revoke.ts +161 -0
  509. package/src/domain/state-envelope.ts +142 -0
  510. package/src/domain/token-exchange.ts +243 -0
  511. package/src/domain/token.ts +483 -0
  512. package/src/domain/userinfo.ts +171 -0
  513. package/src/http/context.ts +90 -0
  514. package/src/http/cookies.ts +167 -0
  515. package/src/http/errors.ts +98 -0
  516. package/src/http/handlers/authorize.ts +362 -0
  517. package/src/http/handlers/callback.ts +77 -0
  518. package/src/http/handlers/end-session.ts +106 -0
  519. package/src/http/handlers/metadata.ts +49 -0
  520. package/src/http/handlers/method-route.ts +115 -0
  521. package/src/http/handlers/par.ts +84 -0
  522. package/src/http/handlers/register.ts +70 -0
  523. package/src/http/handlers/revocation.ts +151 -0
  524. package/src/http/handlers/token.ts +300 -0
  525. package/src/http/handlers/userinfo.ts +90 -0
  526. package/src/http/middleware/error.ts +26 -0
  527. package/src/http/middleware/tenant.ts +165 -0
  528. package/src/http/resolver.ts +34 -0
  529. package/src/http/router.ts +85 -0
  530. package/src/http/schemas/authorize.ts +85 -0
  531. package/src/http/schemas/end-session.ts +23 -0
  532. package/src/http/schemas/par.ts +23 -0
  533. package/src/http/schemas/register.ts +29 -0
  534. package/src/http/schemas/revocation.ts +23 -0
  535. package/src/http/schemas/token.ts +85 -0
  536. package/src/index.ts +283 -20
  537. package/src/methods/code.ts +359 -0
  538. package/src/methods/m2m.ts +82 -0
  539. package/src/methods/oauth2-factory.ts +151 -0
  540. package/src/methods/oauth2-generic.ts +360 -0
  541. package/src/methods/oidc-generic.ts +109 -0
  542. package/src/methods/passkey.ts +419 -0
  543. package/src/methods/password-hash.ts +134 -0
  544. package/src/methods/password.ts +298 -0
  545. package/src/methods/providers/apple.ts +42 -0
  546. package/src/methods/providers/cognito.ts +55 -0
  547. package/src/methods/providers/discord.ts +37 -0
  548. package/src/methods/providers/facebook.ts +54 -0
  549. package/src/methods/providers/github.ts +42 -0
  550. package/src/methods/providers/google.ts +43 -0
  551. package/src/methods/providers/index.ts +23 -0
  552. package/src/methods/providers/jumpcloud.ts +36 -0
  553. package/src/methods/providers/keycloak.ts +42 -0
  554. package/src/methods/providers/linkedin.ts +37 -0
  555. package/src/methods/providers/microsoft.ts +42 -0
  556. package/src/methods/providers/slack.ts +42 -0
  557. package/src/methods/providers/spotify.ts +37 -0
  558. package/src/methods/providers/twitch.ts +38 -0
  559. package/src/methods/providers/x.ts +40 -0
  560. package/src/methods/providers/yahoo.ts +36 -0
  561. package/src/pkce.ts +20 -21
  562. package/src/ports/CONSISTENCY.md +119 -0
  563. package/src/ports/audit-log.ts +177 -0
  564. package/src/ports/config-store.ts +34 -0
  565. package/src/ports/key-store.ts +106 -0
  566. package/src/ports/method-store.ts +41 -0
  567. package/src/ports/session-store.ts +131 -0
  568. package/src/ports/token-store.ts +116 -0
  569. package/src/types/authorization.ts +78 -0
  570. package/src/types/error.ts +146 -0
  571. package/src/types/flow.ts +99 -0
  572. package/src/types/idp.ts +365 -0
  573. package/src/types/method.ts +270 -0
  574. package/src/types/picker.ts +32 -0
  575. package/src/types/result.ts +23 -0
  576. package/src/types/subject.ts +50 -0
  577. package/src/types/tenant.ts +285 -0
  578. package/src/types/token.ts +236 -0
  579. package/src/ui/forms.ts +289 -0
  580. package/src/ui/index.ts +14 -0
  581. package/src/ui/picker.ts +63 -0
  582. package/dist/esm/issuer.js +0 -691
  583. package/dist/esm/jwt.js +0 -16
  584. package/dist/esm/keys.js +0 -113
  585. package/dist/esm/provider/apple.js +0 -28
  586. package/dist/esm/provider/arctic.js +0 -43
  587. package/dist/esm/provider/code.js +0 -58
  588. package/dist/esm/provider/cognito.js +0 -16
  589. package/dist/esm/provider/discord.js +0 -15
  590. package/dist/esm/provider/facebook.js +0 -24
  591. package/dist/esm/provider/github.js +0 -15
  592. package/dist/esm/provider/google.js +0 -25
  593. package/dist/esm/provider/index.js +0 -3
  594. package/dist/esm/provider/jumpcloud.js +0 -15
  595. package/dist/esm/provider/keycloak.js +0 -15
  596. package/dist/esm/provider/linkedin.js +0 -15
  597. package/dist/esm/provider/m2m.js +0 -16
  598. package/dist/esm/provider/microsoft.js +0 -24
  599. package/dist/esm/provider/oauth2.js +0 -119
  600. package/dist/esm/provider/oidc.js +0 -69
  601. package/dist/esm/provider/passkey.js +0 -315
  602. package/dist/esm/provider/password.js +0 -306
  603. package/dist/esm/provider/provider.js +0 -10
  604. package/dist/esm/provider/slack.js +0 -15
  605. package/dist/esm/provider/spotify.js +0 -15
  606. package/dist/esm/provider/twitch.js +0 -15
  607. package/dist/esm/provider/x.js +0 -16
  608. package/dist/esm/provider/yahoo.js +0 -15
  609. package/dist/esm/random.js +0 -27
  610. package/dist/esm/storage/aws.js +0 -39
  611. package/dist/esm/storage/cloudflare.js +0 -42
  612. package/dist/esm/storage/dynamo.js +0 -116
  613. package/dist/esm/storage/memory.js +0 -88
  614. package/dist/esm/storage/storage.js +0 -36
  615. package/dist/esm/subject.js +0 -7
  616. package/dist/esm/ui/base.js +0 -407
  617. package/dist/esm/ui/code.js +0 -151
  618. package/dist/esm/ui/form.js +0 -43
  619. package/dist/esm/ui/icon.js +0 -92
  620. package/dist/esm/ui/passkey.js +0 -329
  621. package/dist/esm/ui/password.js +0 -338
  622. package/dist/esm/ui/select.js +0 -187
  623. package/dist/esm/ui/theme.js +0 -115
  624. package/dist/esm/util.js +0 -54
  625. package/dist/types/issuer.d.ts +0 -607
  626. package/dist/types/issuer.d.ts.map +0 -1
  627. package/dist/types/jwt.d.ts +0 -6
  628. package/dist/types/jwt.d.ts.map +0 -1
  629. package/dist/types/keys.d.ts +0 -18
  630. package/dist/types/keys.d.ts.map +0 -1
  631. package/dist/types/provider/apple.d.ts +0 -108
  632. package/dist/types/provider/apple.d.ts.map +0 -1
  633. package/dist/types/provider/arctic.d.ts +0 -16
  634. package/dist/types/provider/arctic.d.ts.map +0 -1
  635. package/dist/types/provider/code.d.ts +0 -74
  636. package/dist/types/provider/code.d.ts.map +0 -1
  637. package/dist/types/provider/cognito.d.ts +0 -64
  638. package/dist/types/provider/cognito.d.ts.map +0 -1
  639. package/dist/types/provider/discord.d.ts +0 -38
  640. package/dist/types/provider/discord.d.ts.map +0 -1
  641. package/dist/types/provider/facebook.d.ts +0 -74
  642. package/dist/types/provider/facebook.d.ts.map +0 -1
  643. package/dist/types/provider/github.d.ts +0 -38
  644. package/dist/types/provider/github.d.ts.map +0 -1
  645. package/dist/types/provider/google.d.ts +0 -74
  646. package/dist/types/provider/google.d.ts.map +0 -1
  647. package/dist/types/provider/index.d.ts +0 -4
  648. package/dist/types/provider/index.d.ts.map +0 -1
  649. package/dist/types/provider/jumpcloud.d.ts +0 -38
  650. package/dist/types/provider/jumpcloud.d.ts.map +0 -1
  651. package/dist/types/provider/keycloak.d.ts +0 -67
  652. package/dist/types/provider/keycloak.d.ts.map +0 -1
  653. package/dist/types/provider/linkedin.d.ts +0 -6
  654. package/dist/types/provider/linkedin.d.ts.map +0 -1
  655. package/dist/types/provider/m2m.d.ts +0 -34
  656. package/dist/types/provider/m2m.d.ts.map +0 -1
  657. package/dist/types/provider/microsoft.d.ts +0 -89
  658. package/dist/types/provider/microsoft.d.ts.map +0 -1
  659. package/dist/types/provider/oauth2.d.ts +0 -133
  660. package/dist/types/provider/oauth2.d.ts.map +0 -1
  661. package/dist/types/provider/oidc.d.ts +0 -91
  662. package/dist/types/provider/oidc.d.ts.map +0 -1
  663. package/dist/types/provider/passkey.d.ts +0 -143
  664. package/dist/types/provider/passkey.d.ts.map +0 -1
  665. package/dist/types/provider/password.d.ts +0 -210
  666. package/dist/types/provider/password.d.ts.map +0 -1
  667. package/dist/types/provider/provider.d.ts +0 -29
  668. package/dist/types/provider/provider.d.ts.map +0 -1
  669. package/dist/types/provider/slack.d.ts +0 -59
  670. package/dist/types/provider/slack.d.ts.map +0 -1
  671. package/dist/types/provider/spotify.d.ts +0 -38
  672. package/dist/types/provider/spotify.d.ts.map +0 -1
  673. package/dist/types/provider/twitch.d.ts +0 -38
  674. package/dist/types/provider/twitch.d.ts.map +0 -1
  675. package/dist/types/provider/x.d.ts +0 -38
  676. package/dist/types/provider/x.d.ts.map +0 -1
  677. package/dist/types/provider/yahoo.d.ts +0 -38
  678. package/dist/types/provider/yahoo.d.ts.map +0 -1
  679. package/dist/types/random.d.ts +0 -3
  680. package/dist/types/random.d.ts.map +0 -1
  681. package/dist/types/storage/aws.d.ts +0 -4
  682. package/dist/types/storage/aws.d.ts.map +0 -1
  683. package/dist/types/storage/cloudflare.d.ts +0 -34
  684. package/dist/types/storage/cloudflare.d.ts.map +0 -1
  685. package/dist/types/storage/dynamo.d.ts +0 -65
  686. package/dist/types/storage/dynamo.d.ts.map +0 -1
  687. package/dist/types/storage/memory.d.ts +0 -49
  688. package/dist/types/storage/memory.d.ts.map +0 -1
  689. package/dist/types/storage/storage.d.ts +0 -15
  690. package/dist/types/storage/storage.d.ts.map +0 -1
  691. package/dist/types/subject.d.ts +0 -122
  692. package/dist/types/subject.d.ts.map +0 -1
  693. package/dist/types/ui/base.d.ts +0 -5
  694. package/dist/types/ui/base.d.ts.map +0 -1
  695. package/dist/types/ui/code.d.ts +0 -104
  696. package/dist/types/ui/code.d.ts.map +0 -1
  697. package/dist/types/ui/form.d.ts +0 -6
  698. package/dist/types/ui/form.d.ts.map +0 -1
  699. package/dist/types/ui/icon.d.ts +0 -6
  700. package/dist/types/ui/icon.d.ts.map +0 -1
  701. package/dist/types/ui/passkey.d.ts +0 -5
  702. package/dist/types/ui/passkey.d.ts.map +0 -1
  703. package/dist/types/ui/password.d.ts +0 -139
  704. package/dist/types/ui/password.d.ts.map +0 -1
  705. package/dist/types/ui/select.d.ts +0 -55
  706. package/dist/types/ui/select.d.ts.map +0 -1
  707. package/dist/types/ui/theme.d.ts +0 -207
  708. package/dist/types/ui/theme.d.ts.map +0 -1
  709. package/dist/types/util.d.ts +0 -8
  710. package/dist/types/util.d.ts.map +0 -1
  711. package/src/css.d.ts +0 -4
  712. package/src/issuer.ts +0 -1628
  713. package/src/jwt.ts +0 -17
  714. package/src/keys.ts +0 -139
  715. package/src/provider/apple.ts +0 -127
  716. package/src/provider/arctic.ts +0 -66
  717. package/src/provider/code.ts +0 -227
  718. package/src/provider/cognito.ts +0 -74
  719. package/src/provider/discord.ts +0 -45
  720. package/src/provider/facebook.ts +0 -84
  721. package/src/provider/github.ts +0 -45
  722. package/src/provider/google.ts +0 -85
  723. package/src/provider/index.ts +0 -3
  724. package/src/provider/jumpcloud.ts +0 -45
  725. package/src/provider/keycloak.ts +0 -75
  726. package/src/provider/linkedin.ts +0 -12
  727. package/src/provider/m2m.ts +0 -56
  728. package/src/provider/microsoft.ts +0 -100
  729. package/src/provider/oauth2.ts +0 -297
  730. package/src/provider/oidc.ts +0 -179
  731. package/src/provider/passkey.ts +0 -655
  732. package/src/provider/password.ts +0 -672
  733. package/src/provider/provider.ts +0 -33
  734. package/src/provider/slack.ts +0 -67
  735. package/src/provider/spotify.ts +0 -45
  736. package/src/provider/twitch.ts +0 -45
  737. package/src/provider/x.ts +0 -46
  738. package/src/provider/yahoo.ts +0 -45
  739. package/src/random.ts +0 -24
  740. package/src/storage/aws.ts +0 -59
  741. package/src/storage/cloudflare.ts +0 -77
  742. package/src/storage/dynamo.ts +0 -193
  743. package/src/storage/memory.ts +0 -135
  744. package/src/storage/storage.ts +0 -46
  745. package/src/subject.ts +0 -130
  746. package/src/ui/base.tsx +0 -118
  747. package/src/ui/code.tsx +0 -215
  748. package/src/ui/form.tsx +0 -40
  749. package/src/ui/icon.tsx +0 -95
  750. package/src/ui/passkey.tsx +0 -321
  751. package/src/ui/password.tsx +0 -405
  752. package/src/ui/select.tsx +0 -221
  753. package/src/ui/theme.ts +0 -319
  754. package/src/ui/ui.css +0 -252
  755. package/src/util.ts +0 -58
  756. /package/dist/esm/{css.d.js → adapters/d1/types.js} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"linkedin.d.ts","sourceRoot":"","sources":["../../../../src/methods/providers/linkedin.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACtE,OAAO,KAAK,EAAc,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAEvE,QAAA,MAAM,MAAM;;;;;;;;;;;;EAIV,CAAA;AAEF,eAAO,MAAM,eAAe,EAAE,iBAAiB,CAC7C,gBAAgB,EAChB,WAAW,EACX,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,CAkBvB,CAAA"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Microsoft — OIDC, tenant-templated. The `tenant` field is `"common"`,
3
+ * `"organizations"`, `"consumers"`, or a specific Entra tenant id /
4
+ * domain.
5
+ *
6
+ * Discovery is fetched per tenant; the result is cached inside the
7
+ * `MethodCache` so subsequent flows skip the round trip.
8
+ */
9
+ import { z } from "zod";
10
+ import type { Oauth2Properties, Oauth2State } from "../oauth2-generic";
11
+ import type { AuthMethodFactory } from "../../types/method";
12
+ declare const schema: z.ZodObject<{
13
+ clientId: z.ZodString;
14
+ clientSecret: z.ZodString;
15
+ tenant: z.ZodOptional<z.ZodString>;
16
+ scopes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
17
+ }, "strip", z.ZodTypeAny, {
18
+ clientId: string;
19
+ clientSecret: string;
20
+ scopes?: string[] | undefined;
21
+ tenant?: string | undefined;
22
+ }, {
23
+ clientId: string;
24
+ clientSecret: string;
25
+ scopes?: string[] | undefined;
26
+ tenant?: string | undefined;
27
+ }>;
28
+ export declare const microsoftFactory: AuthMethodFactory<Oauth2Properties, Oauth2State, z.infer<typeof schema>>;
29
+ export {};
30
+ //# sourceMappingURL=microsoft.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"microsoft.d.ts","sourceRoot":"","sources":["../../../../src/methods/providers/microsoft.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACtE,OAAO,KAAK,EAAc,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAEvE,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;EAKV,CAAA;AAEF,eAAO,MAAM,gBAAgB,EAAE,iBAAiB,CAC9C,gBAAgB,EAChB,WAAW,EACX,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,CAiBvB,CAAA"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Slack — Sign in with Slack (OpenID Connect on Slack's own endpoints).
3
+ * Slack ships an id_token at the token endpoint; we treat it as OIDC.
4
+ *
5
+ * Default scopes: `openid email profile`.
6
+ */
7
+ import { z } from "zod";
8
+ import type { Oauth2Properties, Oauth2State } from "../oauth2-generic";
9
+ import type { AuthMethodFactory } from "../../types/method";
10
+ declare const schema: z.ZodObject<{
11
+ clientId: z.ZodString;
12
+ clientSecret: z.ZodString;
13
+ scopes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
14
+ }, "strip", z.ZodTypeAny, {
15
+ clientId: string;
16
+ clientSecret: string;
17
+ scopes?: string[] | undefined;
18
+ }, {
19
+ clientId: string;
20
+ clientSecret: string;
21
+ scopes?: string[] | undefined;
22
+ }>;
23
+ export declare const slackFactory: AuthMethodFactory<Oauth2Properties, Oauth2State, z.infer<typeof schema>>;
24
+ export {};
25
+ //# sourceMappingURL=slack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slack.d.ts","sourceRoot":"","sources":["../../../../src/methods/providers/slack.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACtE,OAAO,KAAK,EAAc,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAEvE,QAAA,MAAM,MAAM;;;;;;;;;;;;EAIV,CAAA;AAEF,eAAO,MAAM,YAAY,EAAE,iBAAiB,CAC1C,gBAAgB,EAChB,WAAW,EACX,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,CAoBvB,CAAA"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Spotify — OAuth 2.0. Default scopes: `user-read-email user-read-private`.
3
+ */
4
+ import { z } from "zod";
5
+ import type { Oauth2Properties, Oauth2State } from "../oauth2-generic";
6
+ import type { AuthMethodFactory } from "../../types/method";
7
+ declare const schema: z.ZodObject<{
8
+ clientId: z.ZodString;
9
+ clientSecret: z.ZodString;
10
+ scopes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
11
+ }, "strip", z.ZodTypeAny, {
12
+ clientId: string;
13
+ clientSecret: string;
14
+ scopes?: string[] | undefined;
15
+ }, {
16
+ clientId: string;
17
+ clientSecret: string;
18
+ scopes?: string[] | undefined;
19
+ }>;
20
+ export declare const spotifyFactory: AuthMethodFactory<Oauth2Properties, Oauth2State, z.infer<typeof schema>>;
21
+ export {};
22
+ //# sourceMappingURL=spotify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spotify.d.ts","sourceRoot":"","sources":["../../../../src/methods/providers/spotify.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACtE,OAAO,KAAK,EAAc,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAEvE,QAAA,MAAM,MAAM;;;;;;;;;;;;EAIV,CAAA;AAEF,eAAO,MAAM,cAAc,EAAE,iBAAiB,CAC5C,gBAAgB,EAChB,WAAW,EACX,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,CAkBvB,CAAA"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Twitch — OAuth 2.0 (Twitch supports OIDC but uses OAuth flows by
3
+ * default). Default scopes: `user:read:email`.
4
+ */
5
+ import { z } from "zod";
6
+ import type { Oauth2Properties, Oauth2State } from "../oauth2-generic";
7
+ import type { AuthMethodFactory } from "../../types/method";
8
+ declare const schema: z.ZodObject<{
9
+ clientId: z.ZodString;
10
+ clientSecret: z.ZodString;
11
+ scopes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
12
+ }, "strip", z.ZodTypeAny, {
13
+ clientId: string;
14
+ clientSecret: string;
15
+ scopes?: string[] | undefined;
16
+ }, {
17
+ clientId: string;
18
+ clientSecret: string;
19
+ scopes?: string[] | undefined;
20
+ }>;
21
+ export declare const twitchFactory: AuthMethodFactory<Oauth2Properties, Oauth2State, z.infer<typeof schema>>;
22
+ export {};
23
+ //# sourceMappingURL=twitch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"twitch.d.ts","sourceRoot":"","sources":["../../../../src/methods/providers/twitch.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACtE,OAAO,KAAK,EAAc,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAEvE,QAAA,MAAM,MAAM;;;;;;;;;;;;EAIV,CAAA;AAEF,eAAO,MAAM,aAAa,EAAE,iBAAiB,CAC3C,gBAAgB,EAChB,WAAW,EACX,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,CAkBvB,CAAA"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * X (formerly Twitter) — OAuth 2.0 with PKCE. Default scope: `tweet.read users.read`.
3
+ *
4
+ * X requires PKCE on its OAuth 2.0 endpoints; `pkce` is left at the
5
+ * `"S256"` default.
6
+ */
7
+ import { z } from "zod";
8
+ import type { Oauth2Properties, Oauth2State } from "../oauth2-generic";
9
+ import type { AuthMethodFactory } from "../../types/method";
10
+ declare const schema: z.ZodObject<{
11
+ clientId: z.ZodString;
12
+ clientSecret: z.ZodString;
13
+ scopes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
14
+ }, "strip", z.ZodTypeAny, {
15
+ clientId: string;
16
+ clientSecret: string;
17
+ scopes?: string[] | undefined;
18
+ }, {
19
+ clientId: string;
20
+ clientSecret: string;
21
+ scopes?: string[] | undefined;
22
+ }>;
23
+ export declare const xFactory: AuthMethodFactory<Oauth2Properties, Oauth2State, z.infer<typeof schema>>;
24
+ export {};
25
+ //# sourceMappingURL=x.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"x.d.ts","sourceRoot":"","sources":["../../../../src/methods/providers/x.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACtE,OAAO,KAAK,EAAc,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAEvE,QAAA,MAAM,MAAM;;;;;;;;;;;;EAIV,CAAA;AAEF,eAAO,MAAM,QAAQ,EAAE,iBAAiB,CACtC,gBAAgB,EAChB,WAAW,EACX,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,CAkBvB,CAAA"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Yahoo — OIDC. Default scopes: `openid email profile`.
3
+ */
4
+ import { z } from "zod";
5
+ import type { Oauth2Properties, Oauth2State } from "../oauth2-generic";
6
+ import type { AuthMethodFactory } from "../../types/method";
7
+ declare const schema: z.ZodObject<{
8
+ clientId: z.ZodString;
9
+ clientSecret: z.ZodString;
10
+ scopes: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
11
+ }, "strip", z.ZodTypeAny, {
12
+ clientId: string;
13
+ clientSecret: string;
14
+ scopes?: string[] | undefined;
15
+ }, {
16
+ clientId: string;
17
+ clientSecret: string;
18
+ scopes?: string[] | undefined;
19
+ }>;
20
+ export declare const yahooFactory: AuthMethodFactory<Oauth2Properties, Oauth2State, z.infer<typeof schema>>;
21
+ export {};
22
+ //# sourceMappingURL=yahoo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yahoo.d.ts","sourceRoot":"","sources":["../../../../src/methods/providers/yahoo.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AACtE,OAAO,KAAK,EAAc,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAEvE,QAAA,MAAM,MAAM;;;;;;;;;;;;EAIV,CAAA;AAEF,eAAO,MAAM,YAAY,EAAE,iBAAiB,CAC1C,gBAAgB,EAChB,WAAW,EACX,CAAC,CAAC,KAAK,CAAC,OAAO,MAAM,CAAC,CAiBvB,CAAA"}
@@ -1,7 +1,6 @@
1
1
  export declare function generatePKCE(length?: number): Promise<{
2
2
  verifier: string;
3
3
  challenge: string;
4
- method: string;
4
+ method: "S256";
5
5
  }>;
6
- export declare function validatePKCE(verifier: string, challenge: string, method?: "S256" | "plain"): Promise<boolean>;
7
6
  //# sourceMappingURL=pkce.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pkce.d.ts","sourceRoot":"","sources":["../../src/pkce.ts"],"names":[],"mappings":"AAgBA,wBAAsB,YAAY,CAAC,MAAM,GAAE,MAAW;;;;GAarD;AAED,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,MAAM,GAAG,OAAgB,oBAKlC"}
1
+ {"version":3,"file":"pkce.d.ts","sourceRoot":"","sources":["../../src/pkce.ts"],"names":[],"mappings":"AAyBA,wBAAsB,YAAY,CAAC,MAAM,GAAE,MAAW,GAAG,OAAO,CAAC;IAC/D,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;CACf,CAAC,CASD"}
@@ -0,0 +1,166 @@
1
+ /**
2
+ * `AuditLog` — append-only event log for security-relevant operations.
3
+ *
4
+ * Consistency: append-only, durable. Ordering across instances is **not**
5
+ * required; consumers (SIEM, dashboards) sort by `timestamp` and `actor`.
6
+ *
7
+ * Retention: defined by the adapter. 90 days minimum is the documented
8
+ * baseline for SOC 2 readiness.
9
+ *
10
+ * Audit-event payloads must **never** contain auth-code payloads, refresh
11
+ * tokens, access tokens, raw cookies, or any other secret. The framework's
12
+ * built-in events follow this rule; custom emitters must too.
13
+ */
14
+ import type { TenantId } from "../types/tenant";
15
+ /**
16
+ * Discriminated event union. The framework emits these; user code may emit
17
+ * its own with `kind: "custom"`. Each event carries enough id information
18
+ * for operators to find the offending record without exposing secrets.
19
+ */
20
+ export type AuditEvent = {
21
+ kind: "authorize_started";
22
+ tenantId: TenantId;
23
+ clientId: string;
24
+ methodId: string;
25
+ methodKind: string;
26
+ flowId: string;
27
+ } | {
28
+ kind: "authorize_succeeded";
29
+ tenantId: TenantId;
30
+ clientId: string;
31
+ methodId: string;
32
+ methodKind: string;
33
+ flowId: string;
34
+ subjectId: string;
35
+ } | {
36
+ kind: "authorize_failed";
37
+ tenantId: TenantId | null;
38
+ clientId: string | null;
39
+ methodId?: string;
40
+ methodKind?: string;
41
+ flowId?: string;
42
+ reason: string;
43
+ } | {
44
+ kind: "token_issued";
45
+ tenantId: TenantId;
46
+ clientId: string;
47
+ methodId: string;
48
+ methodKind: string;
49
+ subjectId: string;
50
+ /** Hash of the issued refresh token id — never the token itself. */
51
+ refreshTokenIdHash?: string;
52
+ /** OIDC Core §2 — set when the response carried an `id_token`. */
53
+ idTokenIssued?: boolean;
54
+ /** RFC 9449 — set when the access token is DPoP-bound. */
55
+ dpopBound?: boolean;
56
+ } | {
57
+ kind: "token_refreshed";
58
+ tenantId: TenantId;
59
+ clientId: string;
60
+ subjectId: string;
61
+ family: string;
62
+ } | {
63
+ kind: "token_exchanged";
64
+ /** Tenant the new tokens are scoped to. */
65
+ tenantId: TenantId;
66
+ /** Tenant the subject_token was originally issued for. */
67
+ fromTenantId: TenantId;
68
+ clientId: string;
69
+ subjectId: string;
70
+ /** Fresh refresh-token family for the issued tokens. */
71
+ family: string;
72
+ } | {
73
+ kind: "token_revoked";
74
+ tenantId: TenantId;
75
+ clientId: string | null;
76
+ subjectId?: string;
77
+ family?: string;
78
+ reason: string;
79
+ } | {
80
+ kind: "refresh_reuse_detected";
81
+ tenantId: TenantId;
82
+ clientId: string;
83
+ family: string;
84
+ } | {
85
+ /**
86
+ * Emitted by `/end_session` (OIDC RP-Initiated Logout 1.0 §2) after
87
+ * processing the logout request — regardless of whether a
88
+ * `post_logout_redirect_uri` was supplied. `subjectId` is present
89
+ * when the request carried an `id_token_hint` that successfully
90
+ * verified; absent otherwise.
91
+ */
92
+ kind: "session_logout";
93
+ tenantId: TenantId;
94
+ clientId?: string;
95
+ subjectId?: string;
96
+ } | {
97
+ /**
98
+ * Emitted when a DPoP proof's `jti` is presented within the replay
99
+ * window (RFC 9449 §11.1). The request was rejected with
100
+ * `invalid_dpop_proof`. Operators / SIEM use this to spot
101
+ * stolen-key replay attempts.
102
+ */
103
+ kind: "dpop_replay_detected";
104
+ tenantId: TenantId | null;
105
+ /** First-half of the offending jti so logs can correlate without storing it. */
106
+ jtiPrefix: string;
107
+ } | {
108
+ kind: "flow_replay_attempt";
109
+ tenantId: TenantId | null;
110
+ flowId: string;
111
+ } | {
112
+ kind: "flow_tenant_mismatch";
113
+ stateTenantId: TenantId;
114
+ flowTenantId: TenantId;
115
+ flowId: string;
116
+ } | {
117
+ kind: "flow_callback_mismatch";
118
+ tenantId: TenantId;
119
+ flowId: string;
120
+ expected: {
121
+ host: string;
122
+ path: string;
123
+ };
124
+ actual: {
125
+ host: string;
126
+ path: string;
127
+ };
128
+ } | {
129
+ kind: "factory_id_mismatch";
130
+ tenantId: TenantId;
131
+ methodId: string;
132
+ expectedKind: string;
133
+ actualKind: string;
134
+ } | {
135
+ kind: "invalid_method_config";
136
+ tenantId: TenantId;
137
+ methodId: string;
138
+ methodKind: string;
139
+ /** Zod error path string. Never the raw config blob. */
140
+ errorPath: string;
141
+ } | {
142
+ kind: "unknown_method_kind";
143
+ tenantId: TenantId;
144
+ methodId: string;
145
+ methodKind: string;
146
+ } | {
147
+ kind: "unrecoverable_flow";
148
+ reason: string;
149
+ host?: string;
150
+ } | {
151
+ kind: "custom";
152
+ type: string;
153
+ tenantId?: TenantId;
154
+ data: Record<string, unknown>;
155
+ };
156
+ export type AuditLog = {
157
+ /**
158
+ * Append a single event. Should not throw on durability failure; the
159
+ * adapter is responsible for buffering / retry. Returning never-rejects
160
+ * is acceptable so the IdP's hot paths are not gated on the log.
161
+ */
162
+ log(event: AuditEvent & {
163
+ timestamp: number;
164
+ }): Promise<void>;
165
+ };
166
+ //# sourceMappingURL=audit-log.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit-log.d.ts","sourceRoot":"","sources":["../../../src/ports/audit-log.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * `ConfigStore` — tenant configuration lookup.
3
+ *
4
+ * Consistency contract: **eventual + bounded staleness (TTL ≤ 60 s).** This
5
+ * is a read-heavy, write-rare path; Cloudflare KV / read replicas are
6
+ * acceptable. Invalidation hook fires immediately on update so callers can
7
+ * drop stale entries earlier than TTL.
8
+ *
9
+ * See `ports/CONSISTENCY.md` for the full table.
10
+ */
11
+ import type { Result } from "../types/result";
12
+ import type { TenantConfig, TenantId } from "../types/tenant";
13
+ export type ConfigStore = {
14
+ /**
15
+ * Look up a tenant's full config. Returns `tenant_not_found` if the id is
16
+ * unknown. Implementations should cache aggressively (TTL ≤ 60 s).
17
+ */
18
+ getTenantConfig(id: TenantId): Promise<Result<TenantConfig>>;
19
+ /**
20
+ * Persist (create or update) a tenant's config. Implementations must
21
+ * trigger invalidation of any cached value for `id` before resolving so
22
+ * a subsequent `getTenantConfig` returns the new value.
23
+ */
24
+ putTenantConfig(config: TenantConfig): Promise<Result<void>>;
25
+ /**
26
+ * Optional: signal to in-process caches that a tenant's config has been
27
+ * invalidated externally (e.g. via the management console). Adapters that
28
+ * don't expose cross-process invalidation may omit this.
29
+ */
30
+ onInvalidate?(handler: (id: TenantId) => void): void;
31
+ };
32
+ //# sourceMappingURL=config-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-store.d.ts","sourceRoot":"","sources":["../../../src/ports/config-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAE7D,MAAM,MAAM,WAAW,GAAG;IACxB;;;OAGG;IACH,eAAe,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAA;IAE5D;;;;OAIG;IACH,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;IAE5D;;;;OAIG;IACH,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE,QAAQ,KAAK,IAAI,GAAG,IAAI,CAAA;CACrD,CAAA"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * `KeyStore` — signing keys (JWT) and encryption keys (auth-code payload,
3
+ * other at-rest secrets).
4
+ *
5
+ * Per AD11, ES256 is the default signing algorithm; Ed25519 is supported.
6
+ *
7
+ * Consistency:
8
+ * - `currentSigningKey` — strong (active key must be unambiguous across
9
+ * the cluster).
10
+ * - `signingKeys` (JWKS) — eventual OK; verifiers tolerate brief lag
11
+ * during rotation.
12
+ * - Encryption keys — same as signing for consistency; rotated quarterly,
13
+ * old keys retained for `refreshTtl`.
14
+ *
15
+ * Note: `StateKeyRing` (HMAC keys for the `state` envelope) is **not** an
16
+ * abstraction over `KeyStore`. It is supplied directly via
17
+ * `IdPOptions.stateKeys` to avoid a bootstrap dependency on `KeyStore` for
18
+ * tenant resolution. A helper `loadStateKeyRingFromKeyStore` is offered
19
+ * for operators who choose to store the ring inside `KeyStore`.
20
+ */
21
+ import type { Result } from "../types/result";
22
+ /** Asymmetric signing key. Public material is JWKS-exposed; private is server-only. */
23
+ export type SigningKey = {
24
+ kid: string;
25
+ /** JOSE `alg` value, e.g. `"ES256"` or `"EdDSA"`. */
26
+ alg: string;
27
+ /** JOSE `crv` for EC / OKP keys (`P-256`, `Ed25519`). Optional for other alg families. */
28
+ crv?: string;
29
+ /** JWK form of the public key — published in JWKS. */
30
+ publicJwk: Record<string, unknown>;
31
+ /**
32
+ * Opaque private-key handle. Concrete adapters interpret this:
33
+ * - In-memory / Postgres: a serialized JWK.
34
+ * - KMS-backed: a KMS key ARN / Cloudflare DO id.
35
+ */
36
+ privateKeyRef: unknown;
37
+ /** Status used by JWKS rotation logic. */
38
+ status: "active" | "next" | "retired";
39
+ createdAt: number;
40
+ /** When this key may no longer be used to sign. Verification continues until removal. */
41
+ rotatedAt?: number;
42
+ };
43
+ /** Symmetric encryption key for the auth-code payload (and other at-rest data). */
44
+ export type EncryptionKey = {
45
+ kid: string;
46
+ /** JOSE `alg`, e.g. `"A256GCM"`. */
47
+ alg: string;
48
+ /** Opaque key handle (raw bytes for in-memory; KMS ref for cloud). */
49
+ keyRef: unknown;
50
+ status: "active" | "next" | "retired";
51
+ createdAt: number;
52
+ rotatedAt?: number;
53
+ };
54
+ /**
55
+ * Optional host-supplied envelope for wrapping private key material at rest.
56
+ *
57
+ * Adapters that persist signing-key private JWKs and encryption-key raw bytes
58
+ * to durable storage (Postgres, DynamoDB, …) accept a `KeyWrapper` so that
59
+ * material is encrypted with a key the database server cannot read. The
60
+ * canonical implementation backs `wrap` / `unwrap` with a cloud KMS
61
+ * (`AWS KMS Encrypt` / `Decrypt`, GCP KMS, Vault transit, etc.).
62
+ *
63
+ * Without a wrapper, `PostgresKeyStore` / `DynamoKeyStore` store private
64
+ * material in plaintext at rest — acceptable for dev / single-tenant
65
+ * operators with full-disk encryption who have accepted the trade-off, but
66
+ * **not** acceptable for production deployments with multi-tenant data. See
67
+ * `INTEGRATION.md` §4.
68
+ */
69
+ export type KeyWrapper = {
70
+ /** Encrypt `plaintext` (≤ a few KB) under the host's master key. */
71
+ wrap(plaintext: Uint8Array): Promise<Uint8Array>;
72
+ /** Decrypt a value previously returned by `wrap`. */
73
+ unwrap(ciphertext: Uint8Array): Promise<Uint8Array>;
74
+ };
75
+ export type KeyStore = {
76
+ /** The unambiguous active signing key. Strong consistency. */
77
+ currentSigningKey(): Promise<Result<SigningKey>>;
78
+ /**
79
+ * All keys to publish in JWKS — active + recently rotated, within the
80
+ * verification overlap window. Eventual consistency acceptable.
81
+ */
82
+ signingKeys(): Promise<Result<SigningKey[]>>;
83
+ /** Active encryption key for at-rest payload encryption. Strong consistency. */
84
+ currentEncryptionKey(): Promise<Result<EncryptionKey>>;
85
+ /**
86
+ * Look up a specific encryption key by `kid`. Used to decrypt payloads
87
+ * encrypted under a previous key during the overlap window.
88
+ */
89
+ getEncryptionKey(kid: string): Promise<Result<EncryptionKey>>;
90
+ /**
91
+ * Rotate signing keys — promote `next` → `active`, retire current
92
+ * `active`, mint a new `next`. Phase 8 schedules this on a timer.
93
+ */
94
+ rotateSigningKeys?(): Promise<Result<void>>;
95
+ /** Same as `rotateSigningKeys` for encryption keys. Quarterly cadence. */
96
+ rotateEncryptionKeys?(): Promise<Result<void>>;
97
+ };
98
+ //# sourceMappingURL=key-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key-store.d.ts","sourceRoot":"","sources":["../../../src/ports/key-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAE7C,uFAAuF;AACvF,MAAM,MAAM,UAAU,GAAG;IACvB,GAAG,EAAE,MAAM,CAAA;IACX,qDAAqD;IACrD,GAAG,EAAE,MAAM,CAAA;IACX,0FAA0F;IAC1F,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,sDAAsD;IACtD,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClC;;;;OAIG;IACH,aAAa,EAAE,OAAO,CAAA;IACtB,0CAA0C;IAC1C,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAA;IACrC,SAAS,EAAE,MAAM,CAAA;IACjB,yFAAyF;IACzF,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,mFAAmF;AACnF,MAAM,MAAM,aAAa,GAAG;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,oCAAoC;IACpC,GAAG,EAAE,MAAM,CAAA;IACX,sEAAsE;IACtE,MAAM,EAAE,OAAO,CAAA;IACf,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAA;IACrC,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,oEAAoE;IACpE,IAAI,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;IAChD,qDAAqD;IACrD,MAAM,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;CACpD,CAAA;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,8DAA8D;IAC9D,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAA;IAEhD;;;OAGG;IACH,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAA;IAE5C,gFAAgF;IAChF,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAA;IAEtD;;;OAGG;IACH,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAA;IAE7D;;;OAGG;IACH,iBAAiB,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;IAE3C,0EAA0E;IAC1E,oBAAoB,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;CAC/C,CAAA"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * `MethodStore` — per-tenant `MethodConfig` lookup.
3
+ *
4
+ * This is a subset of `ConfigStore` exposed as a separate port for two
5
+ * reasons:
6
+ * 1. Adapters may want to back `MethodStore` with a more frequently
7
+ * invalidated cache than the full tenant config.
8
+ * 2. The management console can update auth-method config independently
9
+ * of other tenant-level fields.
10
+ *
11
+ * Consistency: same as `ConfigStore` — eventual + bounded staleness
12
+ * (TTL ≤ 60 s). Invalidation hook fires on update.
13
+ */
14
+ import type { Result } from "../types/result";
15
+ import type { MethodConfig, TenantId } from "../types/tenant";
16
+ export type MethodStore = {
17
+ /** All method instances configured for a tenant (enabled and disabled). */
18
+ listMethods(tenantId: TenantId): Promise<Result<MethodConfig[]>>;
19
+ /**
20
+ * Look up a single method instance by tenant-local id. Returns
21
+ * `method_not_found` if `methodId` does not exist in this tenant.
22
+ */
23
+ getMethodConfig(tenantId: TenantId, methodId: string): Promise<Result<MethodConfig>>;
24
+ /** Persist (create or update) a method instance. Triggers invalidation. */
25
+ putMethodConfig(tenantId: TenantId, method: MethodConfig): Promise<Result<void>>;
26
+ /** Delete a method instance. Tokens issued by it remain valid until expiry. */
27
+ deleteMethodConfig(tenantId: TenantId, methodId: string): Promise<Result<void>>;
28
+ };
29
+ //# sourceMappingURL=method-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"method-store.d.ts","sourceRoot":"","sources":["../../../src/ports/method-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAE7D,MAAM,MAAM,WAAW,GAAG;IACxB,2EAA2E;IAC3E,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAA;IAEhE;;;OAGG;IACH,eAAe,CACb,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAA;IAEhC,2EAA2E;IAC3E,eAAe,CACb,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;IAExB,+EAA+E;IAC/E,kBAAkB,CAChB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;CACzB,CAAA"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * `SessionStore` — flow records (required) and optional long-lived sessions.
3
+ *
4
+ * Flow records are the single server-side source of truth for an in-flight
5
+ * authorization. They are written at `/authorize`, updated when a method
6
+ * returns a `challenge` with `saveMethodState`, and consumed exactly once
7
+ * on the upstream callback.
8
+ *
9
+ * The framework owns flow-record I/O — methods only observe
10
+ * (`MethodContext.flow`) and request updates via
11
+ * `MethodResult.challenge.saveMethodState`. Methods MUST NOT call
12
+ * `saveFlow` / `consumeFlow` directly.
13
+ *
14
+ * See `ports/CONSISTENCY.md`.
15
+ */
16
+ import type { FlowRecord } from "../types/flow";
17
+ import type { Result } from "../types/result";
18
+ export type SessionStore = {
19
+ /**
20
+ * Persist a new flow record under `flowId`. Strong, atomic write — the
21
+ * record must be visible to `consumeFlow` on any node by the time this
22
+ * resolves. `ttl` is in milliseconds and must equal `expiresAt -
23
+ * createdAt` on the supplied record (default 10 minutes).
24
+ */
25
+ saveFlow(flowId: string, payload: FlowRecord, ttl: number): Promise<Result<void>>;
26
+ /**
27
+ * Merge `methodState` into an existing flow record. The framework calls
28
+ * this when a method handler returns
29
+ * `{ kind: "challenge", saveMethodState }`, **before** sending the
30
+ * upstream redirect response — the user agent never sees the redirect
31
+ * until `methodState` is durably saved.
32
+ *
33
+ * Returns `unknown_state` if `flowId` is missing or already consumed.
34
+ */
35
+ updateFlowMethodState(flowId: string, methodState: unknown): Promise<Result<void>>;
36
+ /**
37
+ * **Peek** at a flow record without consuming it. Used by the method-route
38
+ * mount (Phase 4) where credential POSTs may need to dispatch the
39
+ * method multiple times before the flow is consumed on `success`.
40
+ *
41
+ * Consistency: strong (the record must be visible to a `consumeFlow`
42
+ * called immediately after). Returns `unknown_state` if missing /
43
+ * expired.
44
+ *
45
+ * The framework is the only legitimate caller; methods should never read
46
+ * the flow directly — they observe via `MethodContext.flow`.
47
+ */
48
+ readFlow(flowId: string): Promise<Result<FlowRecord>>;
49
+ /**
50
+ * Atomic delete-on-read. Returns the full `FlowRecord` on success — the
51
+ * framework needs every field to snapshot into the auth-code payload
52
+ * before the record is gone. Concurrent calls with the same `flowId`
53
+ * resolve to exactly one winner; losers receive `unknown_state` which
54
+ * the HTTP layer maps to `invalid_request` (audit
55
+ * `flow_replay_attempt`).
56
+ *
57
+ * This is the **only** consume; the framework does not call it twice.
58
+ * Methods receive the in-memory record via `MethodContext.flow` for the
59
+ * rest of the callback request.
60
+ */
61
+ consumeFlow(flowId: string): Promise<Result<FlowRecord>>;
62
+ /**
63
+ * Optional: long-lived session support (cross-request remember-me beyond
64
+ * the OAuth flow). Adapters that don't implement this can omit it; the
65
+ * framework only requires the flow-record methods above.
66
+ */
67
+ createSession?(sessionId: string, payload: SessionRecord, ttl: number): Promise<Result<void>>;
68
+ readSession?(sessionId: string): Promise<Result<SessionRecord>>;
69
+ revokeSession?(sessionId: string): Promise<Result<void>>;
70
+ /**
71
+ * Optional: Pushed Authorization Request (RFC 9126) storage. Persists the
72
+ * pre-parsed `/authorize` parameters under an opaque `request_uri` for
73
+ * one-shot retrieval at `/authorize` time. Strong consistency + atomic
74
+ * delete-on-read — same semantics as `saveFlow` / `consumeFlow`.
75
+ *
76
+ * Adapters without these methods cannot satisfy `/par`; the framework's
77
+ * `/par` handler returns `invalid_request` when called against such a
78
+ * store. Implement both methods together (the framework only exposes
79
+ * the endpoint when both are present).
80
+ */
81
+ savePar?(requestUri: string, payload: ParRecord, ttl: number): Promise<Result<void>>;
82
+ consumePar?(requestUri: string): Promise<Result<ParRecord>>;
83
+ };
84
+ /**
85
+ * Stored PAR payload. The `params` blob is the raw form/query record from
86
+ * `POST /par`, kept verbatim so the `/authorize` rehydrate path can feed
87
+ * it through the same Zod parser the direct path uses.
88
+ */
89
+ export type ParRecord = {
90
+ requestUri: string;
91
+ /** Raw key/value record as posted to `/par` (excluding auth fields). */
92
+ params: Record<string, string>;
93
+ clientId: string;
94
+ /** Wall-clock issuance + absolute expiry (ms). */
95
+ issuedAt: number;
96
+ expiresAt: number;
97
+ };
98
+ /** Optional long-lived session payload (used by `createSession` family). */
99
+ export type SessionRecord = {
100
+ sessionId: string;
101
+ tenantId: string;
102
+ subjectId: string;
103
+ /** Wall-clock issued / expires timestamps (ms). */
104
+ issuedAt: number;
105
+ expiresAt: number;
106
+ /** Free-form metadata adapters may use (device, user agent fingerprint, etc.). */
107
+ metadata?: Record<string, unknown>;
108
+ };
109
+ //# sourceMappingURL=session-store.d.ts.map