mulguard 1.1.7 → 1.1.9

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 (546) hide show
  1. package/LICENSE +3 -3
  2. package/README.md +21 -582
  3. package/adapters.d.ts +2 -0
  4. package/adapters.d.ts.map +1 -0
  5. package/adapters.js +1 -0
  6. package/index.d.ts +329 -0
  7. package/index.d.ts.map +1 -0
  8. package/index.js +145 -0
  9. package/jwt.d.ts +9 -0
  10. package/jwt.d.ts.map +1 -0
  11. package/jwt.js +8 -0
  12. package/lib/actions.d.ts +13 -0
  13. package/lib/actions.d.ts.map +1 -0
  14. package/lib/actions.js +86 -0
  15. package/lib/client.d.ts +104 -0
  16. package/lib/client.d.ts.map +1 -0
  17. package/lib/client.js +95 -0
  18. package/lib/env.d.ts +12 -0
  19. package/lib/env.d.ts.map +1 -0
  20. package/lib/env.js +38 -0
  21. package/lib/index.d.ts +56 -0
  22. package/lib/index.d.ts.map +1 -0
  23. package/lib/index.js +187 -0
  24. package/lib/types.d.ts +24 -0
  25. package/lib/types.d.ts.map +1 -0
  26. package/lib/types.js +1 -0
  27. package/middleware.d.ts +9 -0
  28. package/middleware.d.ts.map +1 -0
  29. package/middleware.js +12 -0
  30. package/next.d.ts +9 -0
  31. package/next.d.ts.map +1 -0
  32. package/next.js +12 -0
  33. package/package.json +93 -102
  34. package/providers/42-school.d.ts +3 -0
  35. package/providers/42-school.d.ts.map +1 -0
  36. package/providers/42-school.js +2 -0
  37. package/providers/apple.d.ts +3 -0
  38. package/providers/apple.d.ts.map +1 -0
  39. package/providers/apple.js +2 -0
  40. package/providers/asgardeo.d.ts +3 -0
  41. package/providers/asgardeo.d.ts.map +1 -0
  42. package/providers/asgardeo.js +2 -0
  43. package/providers/atlassian.d.ts +3 -0
  44. package/providers/atlassian.d.ts.map +1 -0
  45. package/providers/atlassian.js +2 -0
  46. package/providers/auth0.d.ts +3 -0
  47. package/providers/auth0.d.ts.map +1 -0
  48. package/providers/auth0.js +2 -0
  49. package/providers/authentik.d.ts +3 -0
  50. package/providers/authentik.d.ts.map +1 -0
  51. package/providers/authentik.js +2 -0
  52. package/providers/azure-ad-b2c.d.ts +3 -0
  53. package/providers/azure-ad-b2c.d.ts.map +1 -0
  54. package/providers/azure-ad-b2c.js +2 -0
  55. package/providers/azure-ad.d.ts +3 -0
  56. package/providers/azure-ad.d.ts.map +1 -0
  57. package/providers/azure-ad.js +2 -0
  58. package/providers/azure-devops.d.ts +3 -0
  59. package/providers/azure-devops.d.ts.map +1 -0
  60. package/providers/azure-devops.js +2 -0
  61. package/providers/bankid-no.d.ts +3 -0
  62. package/providers/bankid-no.d.ts.map +1 -0
  63. package/providers/bankid-no.js +2 -0
  64. package/providers/battlenet.d.ts +3 -0
  65. package/providers/battlenet.d.ts.map +1 -0
  66. package/providers/battlenet.js +2 -0
  67. package/providers/beyondidentity.d.ts +3 -0
  68. package/providers/beyondidentity.d.ts.map +1 -0
  69. package/providers/beyondidentity.js +2 -0
  70. package/providers/bitbucket.d.ts +3 -0
  71. package/providers/bitbucket.d.ts.map +1 -0
  72. package/providers/bitbucket.js +2 -0
  73. package/providers/box.d.ts +3 -0
  74. package/providers/box.d.ts.map +1 -0
  75. package/providers/box.js +2 -0
  76. package/providers/boxyhq-saml.d.ts +3 -0
  77. package/providers/boxyhq-saml.d.ts.map +1 -0
  78. package/providers/boxyhq-saml.js +2 -0
  79. package/providers/bungie.d.ts +3 -0
  80. package/providers/bungie.d.ts.map +1 -0
  81. package/providers/bungie.js +2 -0
  82. package/providers/click-up.d.ts +3 -0
  83. package/providers/click-up.d.ts.map +1 -0
  84. package/providers/click-up.js +2 -0
  85. package/providers/cognito.d.ts +3 -0
  86. package/providers/cognito.d.ts.map +1 -0
  87. package/providers/cognito.js +2 -0
  88. package/providers/coinbase.d.ts +3 -0
  89. package/providers/coinbase.d.ts.map +1 -0
  90. package/providers/coinbase.js +2 -0
  91. package/providers/concept2.d.ts +3 -0
  92. package/providers/concept2.d.ts.map +1 -0
  93. package/providers/concept2.js +2 -0
  94. package/providers/credentials.d.ts +3 -0
  95. package/providers/credentials.d.ts.map +1 -0
  96. package/providers/credentials.js +2 -0
  97. package/providers/descope.d.ts +3 -0
  98. package/providers/descope.d.ts.map +1 -0
  99. package/providers/descope.js +2 -0
  100. package/providers/discord.d.ts +3 -0
  101. package/providers/discord.d.ts.map +1 -0
  102. package/providers/discord.js +2 -0
  103. package/providers/dribbble.d.ts +3 -0
  104. package/providers/dribbble.d.ts.map +1 -0
  105. package/providers/dribbble.js +2 -0
  106. package/providers/dropbox.d.ts +3 -0
  107. package/providers/dropbox.d.ts.map +1 -0
  108. package/providers/dropbox.js +2 -0
  109. package/providers/duende-identity-server6.d.ts +3 -0
  110. package/providers/duende-identity-server6.d.ts.map +1 -0
  111. package/providers/duende-identity-server6.js +2 -0
  112. package/providers/email.d.ts +3 -0
  113. package/providers/email.d.ts.map +1 -0
  114. package/providers/email.js +2 -0
  115. package/providers/eventbrite.d.ts +3 -0
  116. package/providers/eventbrite.d.ts.map +1 -0
  117. package/providers/eventbrite.js +2 -0
  118. package/providers/eveonline.d.ts +3 -0
  119. package/providers/eveonline.d.ts.map +1 -0
  120. package/providers/eveonline.js +2 -0
  121. package/providers/facebook.d.ts +3 -0
  122. package/providers/facebook.d.ts.map +1 -0
  123. package/providers/facebook.js +2 -0
  124. package/providers/faceit.d.ts +3 -0
  125. package/providers/faceit.d.ts.map +1 -0
  126. package/providers/faceit.js +2 -0
  127. package/providers/figma.d.ts +3 -0
  128. package/providers/figma.d.ts.map +1 -0
  129. package/providers/figma.js +2 -0
  130. package/providers/forwardemail.d.ts +3 -0
  131. package/providers/forwardemail.d.ts.map +1 -0
  132. package/providers/forwardemail.js +2 -0
  133. package/providers/foursquare.d.ts +3 -0
  134. package/providers/foursquare.d.ts.map +1 -0
  135. package/providers/foursquare.js +2 -0
  136. package/providers/freshbooks.d.ts +3 -0
  137. package/providers/freshbooks.d.ts.map +1 -0
  138. package/providers/freshbooks.js +2 -0
  139. package/providers/frontegg.d.ts +3 -0
  140. package/providers/frontegg.d.ts.map +1 -0
  141. package/providers/frontegg.js +2 -0
  142. package/providers/fusionauth.d.ts +3 -0
  143. package/providers/fusionauth.d.ts.map +1 -0
  144. package/providers/fusionauth.js +2 -0
  145. package/providers/github.d.ts +3 -0
  146. package/providers/github.d.ts.map +1 -0
  147. package/providers/github.js +2 -0
  148. package/providers/gitlab.d.ts +3 -0
  149. package/providers/gitlab.d.ts.map +1 -0
  150. package/providers/gitlab.js +2 -0
  151. package/providers/google.d.ts +3 -0
  152. package/providers/google.d.ts.map +1 -0
  153. package/providers/google.js +2 -0
  154. package/providers/hubspot.d.ts +3 -0
  155. package/providers/hubspot.d.ts.map +1 -0
  156. package/providers/hubspot.js +2 -0
  157. package/providers/huggingface.d.ts +3 -0
  158. package/providers/huggingface.d.ts.map +1 -0
  159. package/providers/huggingface.js +2 -0
  160. package/providers/identity-server4.d.ts +3 -0
  161. package/providers/identity-server4.d.ts.map +1 -0
  162. package/providers/identity-server4.js +2 -0
  163. package/providers/index.d.ts +2 -0
  164. package/providers/index.d.ts.map +1 -0
  165. package/providers/index.js +1 -0
  166. package/providers/instagram.d.ts +3 -0
  167. package/providers/instagram.d.ts.map +1 -0
  168. package/providers/instagram.js +2 -0
  169. package/providers/kakao.d.ts +3 -0
  170. package/providers/kakao.d.ts.map +1 -0
  171. package/providers/kakao.js +2 -0
  172. package/providers/keycloak.d.ts +3 -0
  173. package/providers/keycloak.d.ts.map +1 -0
  174. package/providers/keycloak.js +2 -0
  175. package/providers/kinde.d.ts +3 -0
  176. package/providers/kinde.d.ts.map +1 -0
  177. package/providers/kinde.js +2 -0
  178. package/providers/line.d.ts +3 -0
  179. package/providers/line.d.ts.map +1 -0
  180. package/providers/line.js +2 -0
  181. package/providers/linkedin.d.ts +3 -0
  182. package/providers/linkedin.d.ts.map +1 -0
  183. package/providers/linkedin.js +2 -0
  184. package/providers/logto.d.ts +3 -0
  185. package/providers/logto.d.ts.map +1 -0
  186. package/providers/logto.js +2 -0
  187. package/providers/loops.d.ts +3 -0
  188. package/providers/loops.d.ts.map +1 -0
  189. package/providers/loops.js +2 -0
  190. package/providers/mailchimp.d.ts +3 -0
  191. package/providers/mailchimp.d.ts.map +1 -0
  192. package/providers/mailchimp.js +2 -0
  193. package/providers/mailgun.d.ts +3 -0
  194. package/providers/mailgun.d.ts.map +1 -0
  195. package/providers/mailgun.js +2 -0
  196. package/providers/mailru.d.ts +3 -0
  197. package/providers/mailru.d.ts.map +1 -0
  198. package/providers/mailru.js +2 -0
  199. package/providers/mastodon.d.ts +3 -0
  200. package/providers/mastodon.d.ts.map +1 -0
  201. package/providers/mastodon.js +2 -0
  202. package/providers/mattermost.d.ts +3 -0
  203. package/providers/mattermost.d.ts.map +1 -0
  204. package/providers/mattermost.js +2 -0
  205. package/providers/medium.d.ts +3 -0
  206. package/providers/medium.d.ts.map +1 -0
  207. package/providers/medium.js +2 -0
  208. package/providers/microsoft-entra-id.d.ts +3 -0
  209. package/providers/microsoft-entra-id.d.ts.map +1 -0
  210. package/providers/microsoft-entra-id.js +2 -0
  211. package/providers/naver.d.ts +3 -0
  212. package/providers/naver.d.ts.map +1 -0
  213. package/providers/naver.js +2 -0
  214. package/providers/netlify.d.ts +3 -0
  215. package/providers/netlify.d.ts.map +1 -0
  216. package/providers/netlify.js +2 -0
  217. package/providers/netsuite.d.ts +3 -0
  218. package/providers/netsuite.d.ts.map +1 -0
  219. package/providers/netsuite.js +2 -0
  220. package/providers/nextcloud.d.ts +3 -0
  221. package/providers/nextcloud.d.ts.map +1 -0
  222. package/providers/nextcloud.js +2 -0
  223. package/providers/nodemailer.d.ts +3 -0
  224. package/providers/nodemailer.d.ts.map +1 -0
  225. package/providers/nodemailer.js +2 -0
  226. package/providers/notion.d.ts +3 -0
  227. package/providers/notion.d.ts.map +1 -0
  228. package/providers/notion.js +2 -0
  229. package/providers/okta.d.ts +3 -0
  230. package/providers/okta.d.ts.map +1 -0
  231. package/providers/okta.js +2 -0
  232. package/providers/onelogin.d.ts +3 -0
  233. package/providers/onelogin.d.ts.map +1 -0
  234. package/providers/onelogin.js +2 -0
  235. package/providers/ory-hydra.d.ts +3 -0
  236. package/providers/ory-hydra.d.ts.map +1 -0
  237. package/providers/ory-hydra.js +2 -0
  238. package/providers/osso.d.ts +3 -0
  239. package/providers/osso.d.ts.map +1 -0
  240. package/providers/osso.js +2 -0
  241. package/providers/osu.d.ts +3 -0
  242. package/providers/osu.d.ts.map +1 -0
  243. package/providers/osu.js +2 -0
  244. package/providers/passage.d.ts +3 -0
  245. package/providers/passage.d.ts.map +1 -0
  246. package/providers/passage.js +2 -0
  247. package/providers/passkey.d.ts +3 -0
  248. package/providers/passkey.d.ts.map +1 -0
  249. package/providers/passkey.js +2 -0
  250. package/providers/patreon.d.ts +3 -0
  251. package/providers/patreon.d.ts.map +1 -0
  252. package/providers/patreon.js +2 -0
  253. package/providers/ping-id.d.ts +3 -0
  254. package/providers/ping-id.d.ts.map +1 -0
  255. package/providers/ping-id.js +2 -0
  256. package/providers/pinterest.d.ts +3 -0
  257. package/providers/pinterest.d.ts.map +1 -0
  258. package/providers/pinterest.js +2 -0
  259. package/providers/pipedrive.d.ts +3 -0
  260. package/providers/pipedrive.d.ts.map +1 -0
  261. package/providers/pipedrive.js +2 -0
  262. package/providers/postmark.d.ts +3 -0
  263. package/providers/postmark.d.ts.map +1 -0
  264. package/providers/postmark.js +2 -0
  265. package/providers/reddit.d.ts +3 -0
  266. package/providers/reddit.d.ts.map +1 -0
  267. package/providers/reddit.js +2 -0
  268. package/providers/resend.d.ts +3 -0
  269. package/providers/resend.d.ts.map +1 -0
  270. package/providers/resend.js +2 -0
  271. package/providers/roblox.d.ts +3 -0
  272. package/providers/roblox.d.ts.map +1 -0
  273. package/providers/roblox.js +2 -0
  274. package/providers/salesforce.d.ts +3 -0
  275. package/providers/salesforce.d.ts.map +1 -0
  276. package/providers/salesforce.js +2 -0
  277. package/providers/sendgrid.d.ts +3 -0
  278. package/providers/sendgrid.d.ts.map +1 -0
  279. package/providers/sendgrid.js +2 -0
  280. package/providers/simplelogin.d.ts +3 -0
  281. package/providers/simplelogin.d.ts.map +1 -0
  282. package/providers/simplelogin.js +2 -0
  283. package/providers/slack.d.ts +3 -0
  284. package/providers/slack.d.ts.map +1 -0
  285. package/providers/slack.js +2 -0
  286. package/providers/spotify.d.ts +3 -0
  287. package/providers/spotify.d.ts.map +1 -0
  288. package/providers/spotify.js +2 -0
  289. package/providers/strava.d.ts +3 -0
  290. package/providers/strava.d.ts.map +1 -0
  291. package/providers/strava.js +2 -0
  292. package/providers/threads.d.ts +3 -0
  293. package/providers/threads.d.ts.map +1 -0
  294. package/providers/threads.js +2 -0
  295. package/providers/tiktok.d.ts +3 -0
  296. package/providers/tiktok.d.ts.map +1 -0
  297. package/providers/tiktok.js +2 -0
  298. package/providers/todoist.d.ts +3 -0
  299. package/providers/todoist.d.ts.map +1 -0
  300. package/providers/todoist.js +2 -0
  301. package/providers/trakt.d.ts +3 -0
  302. package/providers/trakt.d.ts.map +1 -0
  303. package/providers/trakt.js +2 -0
  304. package/providers/twitch.d.ts +3 -0
  305. package/providers/twitch.d.ts.map +1 -0
  306. package/providers/twitch.js +2 -0
  307. package/providers/twitter.d.ts +3 -0
  308. package/providers/twitter.d.ts.map +1 -0
  309. package/providers/twitter.js +2 -0
  310. package/providers/united-effects.d.ts +3 -0
  311. package/providers/united-effects.d.ts.map +1 -0
  312. package/providers/united-effects.js +2 -0
  313. package/providers/vipps.d.ts +3 -0
  314. package/providers/vipps.d.ts.map +1 -0
  315. package/providers/vipps.js +2 -0
  316. package/providers/vk.d.ts +3 -0
  317. package/providers/vk.d.ts.map +1 -0
  318. package/providers/vk.js +2 -0
  319. package/providers/webauthn.d.ts +3 -0
  320. package/providers/webauthn.d.ts.map +1 -0
  321. package/providers/webauthn.js +2 -0
  322. package/providers/webex.d.ts +3 -0
  323. package/providers/webex.d.ts.map +1 -0
  324. package/providers/webex.js +2 -0
  325. package/providers/wechat.d.ts +3 -0
  326. package/providers/wechat.d.ts.map +1 -0
  327. package/providers/wechat.js +2 -0
  328. package/providers/wikimedia.d.ts +3 -0
  329. package/providers/wikimedia.d.ts.map +1 -0
  330. package/providers/wikimedia.js +2 -0
  331. package/providers/wordpress.d.ts +3 -0
  332. package/providers/wordpress.d.ts.map +1 -0
  333. package/providers/wordpress.js +2 -0
  334. package/providers/workos.d.ts +3 -0
  335. package/providers/workos.d.ts.map +1 -0
  336. package/providers/workos.js +2 -0
  337. package/providers/yandex.d.ts +3 -0
  338. package/providers/yandex.d.ts.map +1 -0
  339. package/providers/yandex.js +2 -0
  340. package/providers/zitadel.d.ts +3 -0
  341. package/providers/zitadel.d.ts.map +1 -0
  342. package/providers/zitadel.js +2 -0
  343. package/providers/zoho.d.ts +3 -0
  344. package/providers/zoho.d.ts.map +1 -0
  345. package/providers/zoho.js +2 -0
  346. package/providers/zoom.d.ts +3 -0
  347. package/providers/zoom.d.ts.map +1 -0
  348. package/providers/zoom.js +2 -0
  349. package/react.d.ts +102 -0
  350. package/react.d.ts.map +1 -0
  351. package/react.js +361 -0
  352. package/src/adapters.ts +1 -0
  353. package/src/index.ts +430 -0
  354. package/src/jwt.ts +9 -0
  355. package/src/lib/actions.ts +144 -0
  356. package/src/lib/client.ts +245 -0
  357. package/src/lib/env.ts +36 -0
  358. package/src/lib/index.ts +313 -0
  359. package/src/lib/types.ts +30 -0
  360. package/src/middleware.ts +16 -0
  361. package/src/next.ts +16 -0
  362. package/src/providers/42-school.ts +2 -0
  363. package/src/providers/apple.ts +2 -0
  364. package/src/providers/asgardeo.ts +2 -0
  365. package/src/providers/atlassian.ts +2 -0
  366. package/src/providers/auth0.ts +2 -0
  367. package/src/providers/authentik.ts +2 -0
  368. package/src/providers/azure-ad-b2c.ts +2 -0
  369. package/src/providers/azure-ad.ts +2 -0
  370. package/src/providers/azure-devops.ts +2 -0
  371. package/src/providers/bankid-no.ts +2 -0
  372. package/src/providers/battlenet.ts +2 -0
  373. package/src/providers/beyondidentity.ts +2 -0
  374. package/src/providers/bitbucket.ts +2 -0
  375. package/src/providers/box.ts +2 -0
  376. package/src/providers/boxyhq-saml.ts +2 -0
  377. package/src/providers/bungie.ts +2 -0
  378. package/src/providers/click-up.ts +2 -0
  379. package/src/providers/cognito.ts +2 -0
  380. package/src/providers/coinbase.ts +2 -0
  381. package/src/providers/concept2.ts +2 -0
  382. package/src/providers/credentials.ts +2 -0
  383. package/src/providers/descope.ts +2 -0
  384. package/src/providers/discord.ts +2 -0
  385. package/src/providers/dribbble.ts +2 -0
  386. package/src/providers/dropbox.ts +2 -0
  387. package/src/providers/duende-identity-server6.ts +2 -0
  388. package/src/providers/email.ts +2 -0
  389. package/src/providers/eventbrite.ts +2 -0
  390. package/src/providers/eveonline.ts +2 -0
  391. package/src/providers/facebook.ts +2 -0
  392. package/src/providers/faceit.ts +2 -0
  393. package/src/providers/figma.ts +2 -0
  394. package/src/providers/forwardemail.ts +2 -0
  395. package/src/providers/foursquare.ts +2 -0
  396. package/src/providers/freshbooks.ts +2 -0
  397. package/src/providers/frontegg.ts +2 -0
  398. package/src/providers/fusionauth.ts +2 -0
  399. package/src/providers/github.ts +2 -0
  400. package/src/providers/gitlab.ts +2 -0
  401. package/src/providers/google.ts +2 -0
  402. package/src/providers/hubspot.ts +2 -0
  403. package/src/providers/huggingface.ts +2 -0
  404. package/src/providers/identity-server4.ts +2 -0
  405. package/src/providers/index.ts +1 -0
  406. package/src/providers/instagram.ts +2 -0
  407. package/src/providers/kakao.ts +2 -0
  408. package/src/providers/keycloak.ts +2 -0
  409. package/src/providers/kinde.ts +2 -0
  410. package/src/providers/line.ts +2 -0
  411. package/src/providers/linkedin.ts +2 -0
  412. package/src/providers/logto.ts +2 -0
  413. package/src/providers/loops.ts +2 -0
  414. package/src/providers/mailchimp.ts +2 -0
  415. package/src/providers/mailgun.ts +2 -0
  416. package/src/providers/mailru.ts +2 -0
  417. package/src/providers/mastodon.ts +2 -0
  418. package/src/providers/mattermost.ts +2 -0
  419. package/src/providers/medium.ts +2 -0
  420. package/src/providers/microsoft-entra-id.ts +2 -0
  421. package/src/providers/naver.ts +2 -0
  422. package/src/providers/netlify.ts +2 -0
  423. package/src/providers/netsuite.ts +2 -0
  424. package/src/providers/nextcloud.ts +2 -0
  425. package/src/providers/nodemailer.ts +2 -0
  426. package/src/providers/notion.ts +2 -0
  427. package/src/providers/okta.ts +2 -0
  428. package/src/providers/onelogin.ts +2 -0
  429. package/src/providers/ory-hydra.ts +2 -0
  430. package/src/providers/osso.ts +2 -0
  431. package/src/providers/osu.ts +2 -0
  432. package/src/providers/passage.ts +2 -0
  433. package/src/providers/passkey.ts +2 -0
  434. package/src/providers/patreon.ts +2 -0
  435. package/src/providers/ping-id.ts +2 -0
  436. package/src/providers/pinterest.ts +2 -0
  437. package/src/providers/pipedrive.ts +2 -0
  438. package/src/providers/postmark.ts +2 -0
  439. package/src/providers/reddit.ts +2 -0
  440. package/src/providers/resend.ts +2 -0
  441. package/src/providers/roblox.ts +2 -0
  442. package/src/providers/salesforce.ts +2 -0
  443. package/src/providers/sendgrid.ts +2 -0
  444. package/src/providers/simplelogin.ts +2 -0
  445. package/src/providers/slack.ts +2 -0
  446. package/src/providers/spotify.ts +2 -0
  447. package/src/providers/strava.ts +2 -0
  448. package/src/providers/threads.ts +2 -0
  449. package/src/providers/tiktok.ts +2 -0
  450. package/src/providers/todoist.ts +2 -0
  451. package/src/providers/trakt.ts +2 -0
  452. package/src/providers/twitch.ts +2 -0
  453. package/src/providers/twitter.ts +2 -0
  454. package/src/providers/united-effects.ts +2 -0
  455. package/src/providers/vipps.ts +2 -0
  456. package/src/providers/vk.ts +2 -0
  457. package/src/providers/webauthn.ts +2 -0
  458. package/src/providers/webex.ts +2 -0
  459. package/src/providers/wechat.ts +2 -0
  460. package/src/providers/wikimedia.ts +2 -0
  461. package/src/providers/wordpress.ts +2 -0
  462. package/src/providers/workos.ts +2 -0
  463. package/src/providers/yandex.ts +2 -0
  464. package/src/providers/zitadel.ts +2 -0
  465. package/src/providers/zoho.ts +2 -0
  466. package/src/providers/zoom.ts +2 -0
  467. package/src/react.tsx +546 -0
  468. package/src/webauthn.ts +152 -0
  469. package/webauthn.d.ts +9 -0
  470. package/webauthn.d.ts.map +1 -0
  471. package/webauthn.js +92 -0
  472. package/dist/actions-CMtg7FGv.js +0 -1
  473. package/dist/actions-CjQUKaXF.mjs +0 -200
  474. package/dist/client/index.js +0 -1
  475. package/dist/client/index.mjs +0 -484
  476. package/dist/components/AccountPicker.d.ts +0 -11
  477. package/dist/components/OAuthButton.d.ts +0 -11
  478. package/dist/components/PassKeyButton.d.ts +0 -11
  479. package/dist/components/PassKeyRegister.d.ts +0 -10
  480. package/dist/components/TwoFactorSetup.d.ts +0 -8
  481. package/dist/components/TwoFactorVerify.d.ts +0 -9
  482. package/dist/core/account-picker/encryption.d.ts +0 -22
  483. package/dist/core/account-picker/index.d.ts +0 -22
  484. package/dist/core/auth/email-password.d.ts +0 -145
  485. package/dist/core/auth/oauth/index.d.ts +0 -14
  486. package/dist/core/auth/oauth/oauth-handler.d.ts +0 -172
  487. package/dist/core/auth/oauth/pkce.d.ts +0 -168
  488. package/dist/core/auth/oauth/providers.d.ts +0 -198
  489. package/dist/core/auth/oauth/state-store-cookie.d.ts +0 -83
  490. package/dist/core/auth/oauth/state-store-redis.d.ts +0 -25
  491. package/dist/core/auth/oauth/state-store.d.ts +0 -48
  492. package/dist/core/auth/otp.d.ts +0 -184
  493. package/dist/core/auth/passkey.d.ts +0 -35
  494. package/dist/core/auth/password.d.ts +0 -22
  495. package/dist/core/auth/signin-unified.d.ts +0 -33
  496. package/dist/core/auth/two-factor.d.ts +0 -28
  497. package/dist/core/client/index.d.ts +0 -132
  498. package/dist/core/client/token-refresh-manager.d.ts +0 -48
  499. package/dist/core/errors/index.d.ts +0 -269
  500. package/dist/core/index.d.ts +0 -9
  501. package/dist/core/logger/index.d.ts +0 -147
  502. package/dist/core/mulguard/auth-handlers.d.ts +0 -100
  503. package/dist/core/mulguard/defaults.d.ts +0 -58
  504. package/dist/core/mulguard/index.d.ts +0 -9
  505. package/dist/core/mulguard/integration.d.ts +0 -104
  506. package/dist/core/mulguard/oauth-handler.d.ts +0 -93
  507. package/dist/core/mulguard/session-manager.d.ts +0 -94
  508. package/dist/core/security/csrf.d.ts +0 -46
  509. package/dist/core/security/headers.d.ts +0 -24
  510. package/dist/core/security/index.d.ts +0 -132
  511. package/dist/core/security/rate-limit.d.ts +0 -39
  512. package/dist/core/security/security-manager.d.ts +0 -236
  513. package/dist/core/security/validation.d.ts +0 -251
  514. package/dist/core/security/xss.d.ts +0 -20
  515. package/dist/core/session/index.d.ts +0 -35
  516. package/dist/core/session/session-manager.d.ts +0 -235
  517. package/dist/core/types/auth.d.ts +0 -290
  518. package/dist/core/types/errors.d.ts +0 -200
  519. package/dist/core/types/index.d.ts +0 -484
  520. package/dist/core/utils/auth-helpers.d.ts +0 -136
  521. package/dist/core/utils/logger.d.ts +0 -121
  522. package/dist/index/index.js +0 -1
  523. package/dist/index/index.mjs +0 -2736
  524. package/dist/index.d.ts +0 -18
  525. package/dist/mulguard.d.ts +0 -373
  526. package/dist/nextjs/client/hooks.d.ts +0 -122
  527. package/dist/nextjs/client/index.d.ts +0 -13
  528. package/dist/nextjs/client/provider.d.ts +0 -69
  529. package/dist/nextjs/client/server-actions-helper.d.ts +0 -22
  530. package/dist/nextjs/handlers/api.d.ts +0 -10
  531. package/dist/nextjs/handlers/index.d.ts +0 -9
  532. package/dist/nextjs/handlers/route.d.ts +0 -76
  533. package/dist/nextjs/index.d.ts +0 -15
  534. package/dist/nextjs/proxy/index.d.ts +0 -149
  535. package/dist/nextjs/proxy/security.d.ts +0 -9
  536. package/dist/nextjs/server/actions.d.ts +0 -30
  537. package/dist/nextjs/server/auth.d.ts +0 -65
  538. package/dist/nextjs/server/cookies.d.ts +0 -41
  539. package/dist/nextjs/server/index.d.ts +0 -18
  540. package/dist/nextjs/server/oauth-state.d.ts +0 -32
  541. package/dist/nextjs/server/session-helpers.d.ts +0 -24
  542. package/dist/nextjs/server/session.d.ts +0 -144
  543. package/dist/oauth-state-Drwz6fES.js +0 -1
  544. package/dist/oauth-state-pdypStuS.mjs +0 -210
  545. package/dist/server/index.js +0 -1
  546. package/dist/server/index.mjs +0 -29
@@ -1,83 +0,0 @@
1
- import { OAuthStateStore } from './state-store';
2
- /**
3
- * Cookie options interface
4
- */
5
- export interface OAuthCookieOptions {
6
- httpOnly?: boolean;
7
- secure?: boolean;
8
- sameSite?: 'strict' | 'lax' | 'none';
9
- maxAge?: number;
10
- path?: string;
11
- domain?: string;
12
- }
13
- /**
14
- * Cookie handler interface for framework-agnostic cookie operations
15
- */
16
- export interface CookieHandler {
17
- /**
18
- * Get cookie value by name
19
- */
20
- getCookie(name: string): Promise<string | null> | string | null;
21
- /**
22
- * Set cookie with options
23
- */
24
- setCookie(name: string, value: string, options: OAuthCookieOptions): Promise<void> | void;
25
- /**
26
- * Delete cookie
27
- */
28
- deleteCookie(name: string, options?: {
29
- path?: string;
30
- }): Promise<void> | void;
31
- }
32
- /**
33
- * Configuration for cookie-based OAuth state store
34
- */
35
- export interface CookieOAuthStateStoreConfig {
36
- /**
37
- * Cookie handler implementation
38
- */
39
- cookieHandler: CookieHandler;
40
- /**
41
- * Cookie name (default: '__mulguard_oauth_state')
42
- */
43
- cookieName?: string;
44
- /**
45
- * TTL in milliseconds (default: 10 minutes)
46
- */
47
- ttl?: number;
48
- /**
49
- * Whether to use secure cookies (default: true in production)
50
- */
51
- secure?: boolean;
52
- /**
53
- * SameSite cookie attribute (default: 'strict')
54
- */
55
- sameSite?: 'strict' | 'lax' | 'none';
56
- }
57
- /**
58
- * Creates a cookie-based OAuth state store.
59
- *
60
- * ✅ SECURE: Uses httpOnly cookies to prevent XSS attacks
61
- * ✅ FRAMEWORK-AGNOSTIC: Works with any framework via cookie handler
62
- * ⚠️ LIMITATION: Not suitable for production with multiple server instances (use Redis instead)
63
- *
64
- * @param config - Cookie store configuration
65
- * @returns OAuth state store implementation
66
- */
67
- export declare function createCookieOAuthStateStore(config: CookieOAuthStateStoreConfig): OAuthStateStore;
68
- /**
69
- * Creates a Next.js-specific cookie-based OAuth state store.
70
- *
71
- * Convenience function for Next.js applications.
72
- *
73
- * @example
74
- * ```typescript
75
- * import { createNextJsCookieOAuthStateStore } from 'mulguard/core/auth/oauth/state-store-cookie'
76
- *
77
- * export const auth = mulguard({
78
- * oauthStateStore: createNextJsCookieOAuthStateStore(),
79
- * // ... rest of config
80
- * })
81
- * ```
82
- */
83
- export declare function createNextJsCookieOAuthStateStore(): OAuthStateStore;
@@ -1,25 +0,0 @@
1
- import { OAuthStateStore } from './state-store';
2
- /**
3
- * Redis client interface (compatible with ioredis and node-redis)
4
- */
5
- export interface RedisClient {
6
- set(key: string, value: string, mode?: string, duration?: number): Promise<string | null>;
7
- get(key: string): Promise<string | null>;
8
- del(key: string): Promise<number>;
9
- keys(pattern: string): Promise<string[]>;
10
- }
11
- /**
12
- * Creates a Redis-based OAuth state store.
13
- *
14
- * @param redis - Redis client instance (ioredis or node-redis)
15
- * @param keyPrefix - Key prefix for state keys (default: 'mulguard:oauth:state:')
16
- * @returns OAuth state store implementation
17
- *
18
- * @example
19
- * ```typescript
20
- * import Redis from 'ioredis'
21
- * const redis = new Redis(process.env.REDIS_URL)
22
- * const stateStore = createRedisOAuthStateStore(redis)
23
- * ```
24
- */
25
- export declare function createRedisOAuthStateStore(redis: RedisClient, keyPrefix?: string): OAuthStateStore;
@@ -1,48 +0,0 @@
1
- /**
2
- * OAuth State Store Interface
3
- * Allows pluggable state storage for OAuth CSRF protection
4
- *
5
- * Default implementation uses in-memory Map (for development)
6
- * Production should use Redis, database, or other persistent store
7
- *
8
- * @module @mulguard/core/auth/oauth/state-store
9
- */
10
- export interface OAuthState {
11
- provider: string;
12
- expiresAt: number;
13
- }
14
- export interface OAuthStateStore {
15
- /**
16
- * Store OAuth state with TTL
17
- */
18
- set(state: string, data: OAuthState, ttl: number): Promise<void> | void;
19
- /**
20
- * Get OAuth state
21
- */
22
- get(state: string): Promise<OAuthState | null> | OAuthState | null;
23
- /**
24
- * Delete OAuth state
25
- */
26
- delete(state: string): Promise<void> | void;
27
- /**
28
- * Cleanup expired states (optional, for periodic cleanup)
29
- */
30
- cleanup?(): Promise<void> | void;
31
- }
32
- /**
33
- * In-memory OAuth state store (default, for development)
34
- * ⚠️ Not suitable for production with multiple server instances
35
- */
36
- export declare class MemoryOAuthStateStore implements OAuthStateStore {
37
- private states;
38
- set(state: string, data: OAuthState, _ttl: number): void;
39
- get(state: string): OAuthState | null;
40
- delete(state: string): void;
41
- cleanup(): void;
42
- }
43
- /**
44
- * Create default in-memory OAuth state store
45
- */
46
- export declare function createMemoryOAuthStateStore(): OAuthStateStore;
47
- export { createCookieOAuthStateStore, createNextJsCookieOAuthStateStore, type CookieHandler, type CookieOAuthStateStoreConfig, } from './state-store-cookie';
48
- export { createRedisOAuthStateStore, type RedisClient, } from './state-store-redis';
@@ -1,184 +0,0 @@
1
- import { AuthResult, User, Session } from '../types';
2
- import { SecurityManager } from '../security/security-manager';
3
- import { Logger } from '../logger';
4
- /**
5
- * OTP provider type.
6
- */
7
- export type OTPProvider = 'email' | 'sms';
8
- /**
9
- * OTP configuration.
10
- */
11
- export interface OTPConfig {
12
- readonly length?: number;
13
- readonly expiresIn?: number;
14
- readonly provider?: OTPProvider;
15
- readonly security?: SecurityManager;
16
- readonly logger?: Logger;
17
- }
18
- /**
19
- * OTP storage adapter interface.
20
- */
21
- export interface OTPStorageAdapter {
22
- /**
23
- * Stores an OTP code.
24
- *
25
- * @param email - User email
26
- * @param code - OTP code
27
- * @param expiresIn - Expiration time in seconds
28
- */
29
- set(email: string, code: string, expiresIn: number): Promise<void>;
30
- /**
31
- * Gets an OTP code.
32
- *
33
- * @param email - User email
34
- * @returns OTP code or null if not found/expired
35
- */
36
- get(email: string): Promise<string | null>;
37
- /**
38
- * Deletes an OTP code.
39
- *
40
- * @param email - User email
41
- */
42
- delete(email: string): Promise<void>;
43
- }
44
- /**
45
- * In-memory OTP storage adapter.
46
- */
47
- export declare class MemoryOTPStorage implements OTPStorageAdapter {
48
- private readonly storage;
49
- set(email: string, code: string, expiresIn: number): Promise<void>;
50
- get(email: string): Promise<string | null>;
51
- delete(email: string): Promise<void>;
52
- }
53
- /**
54
- * OTP authentication handler.
55
- *
56
- * Provides secure OTP generation, validation, and authentication.
57
- *
58
- * @example
59
- * ```typescript
60
- * const handler = new OTPAuth({
61
- * length: 6,
62
- * expiresIn: 600, // 10 minutes
63
- * provider: 'email',
64
- * })
65
- *
66
- * // Generate OTP
67
- * const code = await handler.generateOTP('user@example.com')
68
- *
69
- * // Verify OTP
70
- * const result = await handler.verifyOTP('user@example.com', code, userLookup, createSession)
71
- * ```
72
- */
73
- export declare class OTPAuth {
74
- private readonly config;
75
- private readonly storage;
76
- private readonly security;
77
- constructor(config?: OTPConfig, storage?: OTPStorageAdapter);
78
- /**
79
- * Generates an OTP code for a user.
80
- *
81
- * @param email - User email
82
- * @returns Generated OTP code
83
- *
84
- * @example
85
- * ```typescript
86
- * const code = await handler.generateOTP('user@example.com')
87
- * // Send code via email/SMS
88
- * ```
89
- */
90
- generateOTP(email: string): Promise<string>;
91
- /**
92
- * Verifies an OTP code and authenticates the user.
93
- *
94
- * @template TUser - User type
95
- * @template TSession - Session type
96
- * @param email - User email
97
- * @param code - OTP code to verify
98
- * @param userLookup - Function to lookup user by email
99
- * @param createSession - Function to create session (optional)
100
- * @returns Authentication result
101
- *
102
- * @example
103
- * ```typescript
104
- * const result = await handler.verifyOTP(
105
- * 'user@example.com',
106
- * '123456',
107
- * async (email) => await db.user.findUnique({ where: { email } })
108
- * )
109
- * ```
110
- */
111
- verifyOTP<TUser extends User = User, TSession extends Session<TUser> = Session<TUser>>(email: string, code: string, userLookup: (email: string) => Promise<TUser | null>, createSession?: (user: TUser) => Promise<TSession>): Promise<AuthResult<TUser, TSession>>;
112
- /**
113
- * Generates a numeric OTP code.
114
- *
115
- * @param length - Code length
116
- * @returns Numeric code string
117
- */
118
- private generateNumericCode;
119
- /**
120
- * Constant-time string comparison to prevent timing attacks.
121
- *
122
- * @param a - First string
123
- * @param b - Second string
124
- * @returns True if strings match
125
- */
126
- private constantTimeCompare;
127
- }
128
- /**
129
- * Creates an OTP authentication handler.
130
- *
131
- * @param config - OTP configuration
132
- * @param storage - OTP storage adapter (optional)
133
- * @returns OTP authentication handler
134
- *
135
- * @example
136
- * ```typescript
137
- * const handler = createOTPAuth({
138
- * length: 6,
139
- * expiresIn: 600,
140
- * provider: 'email',
141
- * })
142
- * ```
143
- */
144
- export declare function createOTPAuth(config?: OTPConfig, storage?: OTPStorageAdapter): OTPAuth;
145
- /**
146
- * TODO: Performance
147
- * - [ ] Add OTP generation caching
148
- * - [ ] Optimize storage lookups
149
- * - [ ] Implement async code generation
150
- *
151
- * TODO: Features
152
- * - [ ] Add SMS provider support
153
- * - [ ] Implement OTP resend functionality
154
- * - [ ] Add OTP rate limiting
155
- * - [ ] Create OTP delivery tracking
156
- * - [ ] Add OTP code hints (for testing)
157
- *
158
- * TODO: Security
159
- * - [ ] Add OTP brute force protection
160
- * - [ ] Implement OTP code rotation
161
- * - [ ] Add OTP delivery verification
162
- * - [ ] Create security event logging
163
- *
164
- * TODO: Type Safety
165
- * - [ ] Add branded types for OTP codes
166
- * - [ ] Create type-safe OTP storage
167
- * - [ ] Implement compile-time validation
168
- *
169
- * TODO: Testing
170
- * - [ ] Add comprehensive unit tests
171
- * - [ ] Test OTP expiration
172
- * - [ ] Test constant-time comparison
173
- * - [ ] Add storage adapter tests
174
- *
175
- * TODO: Documentation
176
- * - [ ] Document OTP flow
177
- * - [ ] Add provider setup guide
178
- * - [ ] Create security best practices guide
179
- *
180
- * TODO: Limitations
181
- * - [ ] OTP storage is in-memory (consider Redis for production)
182
- * - [ ] Code generation uses Math.random (consider crypto.randomInt)
183
- * - [ ] No SMS provider implementation yet
184
- */
@@ -1,35 +0,0 @@
1
- import { ApiClient, AuthResult } from '../types';
2
- export interface PassKeyCredential {
3
- id: string;
4
- name: string;
5
- createdAt: Date;
6
- lastUsedAt?: Date;
7
- }
8
- export interface PassKeyRegisterOptions {
9
- name?: string;
10
- userId?: string;
11
- }
12
- export interface PassKeyAuthOptions {
13
- userId?: string;
14
- }
15
- export interface PassKeyMethods {
16
- register(options?: PassKeyRegisterOptions): Promise<{
17
- success: boolean;
18
- passkeyId?: string;
19
- error?: string;
20
- }>;
21
- authenticate(options?: PassKeyAuthOptions): Promise<AuthResult>;
22
- list(): Promise<PassKeyCredential[]>;
23
- remove(passKeyId: string): Promise<{
24
- success: boolean;
25
- error?: string;
26
- }>;
27
- }
28
- /**
29
- * Check if WebAuthn is supported
30
- */
31
- export declare function isWebAuthnSupported(): boolean;
32
- /**
33
- * Create PassKey methods
34
- */
35
- export declare function createPassKeyMethods(client: ApiClient): PassKeyMethods;
@@ -1,22 +0,0 @@
1
- /**
2
- * Password validation and utilities
3
- */
4
- /**
5
- * Validate password strength
6
- */
7
- export interface PasswordValidationResult {
8
- valid: boolean;
9
- errors: string[];
10
- strength: 'weak' | 'medium' | 'strong';
11
- }
12
- export interface PasswordPolicy {
13
- minLength?: number;
14
- requireUppercase?: boolean;
15
- requireLowercase?: boolean;
16
- requireNumbers?: boolean;
17
- requireSpecialChars?: boolean;
18
- }
19
- /**
20
- * Validate password against policy
21
- */
22
- export declare function validatePassword(password: string, policy?: PasswordPolicy): PasswordValidationResult;
@@ -1,33 +0,0 @@
1
- import { MulguardInstance } from '../../mulguard';
2
- import { EmailCredentials, AuthResult } from '../types';
3
- /**
4
- * Unified sign in function - delegates to auth.signIn unified logic
5
- *
6
- * @example
7
- * ```typescript
8
- * // OAuth providers
9
- * await signIn(auth, 'google')
10
- * await signIn(auth, 'github')
11
- *
12
- * // Credentials
13
- * await signIn(auth, 'credentials', { email: 'user@example.com', password: 'password' })
14
- *
15
- * // OTP
16
- * await signIn(auth, 'otp', { email: 'user@example.com', code: '123456' })
17
- *
18
- * // Passkey
19
- * await signIn(auth, 'passkey', { userId: 'user-id' })
20
- * ```
21
- */
22
- export declare function signIn(auth: MulguardInstance, provider: 'google' | 'github' | 'apple' | 'facebook' | string): Promise<{
23
- url: string;
24
- state: string;
25
- }>;
26
- export declare function signIn(auth: MulguardInstance, provider: 'credentials', credentials: EmailCredentials): Promise<AuthResult>;
27
- export declare function signIn(auth: MulguardInstance, provider: 'otp', options: {
28
- email: string;
29
- code?: string;
30
- }): Promise<AuthResult>;
31
- export declare function signIn(auth: MulguardInstance, provider: 'passkey', options?: {
32
- userId?: string;
33
- }): Promise<AuthResult>;
@@ -1,28 +0,0 @@
1
- import { ApiClient } from '../types';
2
- export interface TwoFactorMethods {
3
- enable(): Promise<{
4
- success: boolean;
5
- qrCode?: string;
6
- secret?: string;
7
- error?: string;
8
- }>;
9
- verify(code: string): Promise<{
10
- success: boolean;
11
- backupCodes?: string[];
12
- error?: string;
13
- }>;
14
- disable(): Promise<{
15
- success: boolean;
16
- error?: string;
17
- }>;
18
- generateBackupCodes(): Promise<{
19
- success: boolean;
20
- backupCodes?: string[];
21
- error?: string;
22
- }>;
23
- isEnabled(): Promise<boolean>;
24
- }
25
- /**
26
- * Create 2FA methods
27
- */
28
- export declare function createTwoFactorMethods(client: ApiClient): TwoFactorMethods;
@@ -1,132 +0,0 @@
1
- /**
2
- * HTTP Client for making requests to backend API
3
- * Enhanced with timeout enforcement, retry logic, and interceptors
4
- */
5
- export interface HttpClientConfig {
6
- baseURL: string;
7
- apiPrefix: string;
8
- timeout?: number;
9
- headers?: Record<string, string>;
10
- retry?: RetryConfig;
11
- interceptors?: InterceptorsConfig;
12
- /** Token refresh manager for automatic token refresh on 401 errors */
13
- tokenRefreshManager?: import('./token-refresh-manager').TokenRefreshManager;
14
- }
15
- export interface RetryConfig {
16
- /** Maximum number of retry attempts (default: 3) */
17
- maxAttempts?: number;
18
- /** Delay between retries in milliseconds (default: 1000) */
19
- retryDelay?: number;
20
- /** Exponential backoff multiplier (default: 2) */
21
- backoffMultiplier?: number;
22
- /** HTTP status codes that should trigger retry (default: [408, 429, 500, 502, 503, 504]) */
23
- retryableStatusCodes?: number[];
24
- /** Whether to retry on network errors (default: true) */
25
- retryOnNetworkError?: boolean;
26
- }
27
- export interface InterceptorsConfig {
28
- /** Request interceptor - called before sending request */
29
- onRequest?: (config: RequestConfig) => Promise<RequestConfig> | RequestConfig;
30
- /** Response interceptor - called after receiving response */
31
- onResponse?: <T>(response: HttpResponse<T>) => Promise<HttpResponse<T>> | HttpResponse<T>;
32
- /** Error interceptor - called on error */
33
- onError?: (error: ApiError) => Promise<ApiError> | ApiError;
34
- }
35
- export interface RequestConfig {
36
- url: string;
37
- method: string;
38
- headers: Record<string, string>;
39
- body?: unknown;
40
- credentials?: 'include' | 'omit' | 'same-origin';
41
- }
42
- interface InternalRequestOptions {
43
- method?: 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
44
- headers?: Record<string, string>;
45
- body?: unknown;
46
- credentials?: 'include' | 'omit' | 'same-origin';
47
- skipRetry?: boolean;
48
- skipInterceptors?: boolean;
49
- skipTokenRefresh?: boolean;
50
- }
51
- export interface HttpResponse<T = unknown> {
52
- data: T;
53
- status: number;
54
- statusText: string;
55
- headers: Headers;
56
- }
57
- export declare class HttpClient {
58
- private config;
59
- private pendingRequests;
60
- constructor(config: HttpClientConfig);
61
- /**
62
- * Make HTTP request with timeout, retry, and interceptors
63
- */
64
- request<T = unknown>(path: string, options?: InternalRequestOptions): Promise<HttpResponse<T>>;
65
- /**
66
- * Execute HTTP request with retry logic
67
- */
68
- private executeRequest;
69
- /**
70
- * Check if request should be retried
71
- */
72
- private shouldRetry;
73
- /**
74
- * Calculate retry delay with exponential backoff
75
- */
76
- private calculateRetryDelay;
77
- /**
78
- * Sleep utility for retry delays
79
- */
80
- private sleep;
81
- /**
82
- * Build RequestInit from RequestConfig
83
- */
84
- private buildRequestInitFromConfig;
85
- /**
86
- * GET request
87
- */
88
- get<T = unknown>(path: string, options?: Omit<InternalRequestOptions, 'method' | 'body'>): Promise<HttpResponse<T>>;
89
- /**
90
- * POST request
91
- */
92
- post<T = unknown>(path: string, body?: unknown, options?: Omit<InternalRequestOptions, 'method'>): Promise<HttpResponse<T>>;
93
- /**
94
- * PUT request
95
- */
96
- put<T = unknown>(path: string, body?: unknown, options?: Omit<InternalRequestOptions, 'method'>): Promise<HttpResponse<T>>;
97
- /**
98
- * DELETE request
99
- */
100
- delete<T = unknown>(path: string, options?: Omit<InternalRequestOptions, 'method' | 'body'>): Promise<HttpResponse<T>>;
101
- /**
102
- * Build full URL
103
- */
104
- private buildUrl;
105
- /**
106
- * Parse response
107
- */
108
- private parseResponse;
109
- /**
110
- * Handle error response
111
- */
112
- private handleErrorResponse;
113
- }
114
- /**
115
- * API Error class with enhanced error information
116
- */
117
- export declare class ApiError extends Error {
118
- code: string;
119
- statusCode: number;
120
- originalError?: Error;
121
- retryable?: boolean;
122
- constructor(message: string, code?: string, statusCode?: number, originalError?: Error, retryable?: boolean);
123
- /**
124
- * Check if error is retryable
125
- */
126
- isRetryable(): boolean;
127
- /**
128
- * Get user-friendly error message
129
- */
130
- getUserMessage(): string;
131
- }
132
- export {};
@@ -1,48 +0,0 @@
1
- import { Session } from '../types';
2
- export interface TokenRefreshConfig {
3
- /** Enable/disable automatic token refresh */
4
- enabled?: boolean;
5
- /** Time before token expiration to refresh (in seconds) */
6
- refreshThreshold?: number;
7
- /** Maximum number of refresh retries on failure */
8
- maxRetries?: number;
9
- /** Delay between retries (milliseconds) */
10
- retryDelay?: number;
11
- /** Maximum refresh requests per minute */
12
- rateLimit?: number;
13
- /** Enable/disable auto sign-out on refresh failure */
14
- autoSignOutOnFailure?: boolean;
15
- /** Login page URL for redirect on failure */
16
- redirectToLogin?: string;
17
- /** Enable/disable auto redirect on failure */
18
- autoRedirectOnFailure?: boolean;
19
- /** Callback on successful token refresh */
20
- onTokenRefreshed?: (session: Session) => void | Promise<void>;
21
- /** Callback on token refresh failure (before sign-out) */
22
- onTokenRefreshFailed?: (error: Error) => void | Promise<void>;
23
- /** Callback before redirect (can return false to cancel redirect) */
24
- onBeforeRedirect?: (error: Error) => boolean | Promise<boolean>;
25
- }
26
- export interface TokenRefreshManager {
27
- /** Refresh token with single refresh queue */
28
- refreshToken(): Promise<Session | null>;
29
- /** Check if refresh is in progress */
30
- isRefreshing(): boolean;
31
- /** Wait for current refresh to complete */
32
- waitForRefresh(): Promise<Session | null>;
33
- /** Clear state (on sign-out) */
34
- clear(): void;
35
- /** Handle token refresh failure */
36
- handleRefreshFailure(error: Error): Promise<void>;
37
- }
38
- type RefreshFunction = () => Promise<Session | null>;
39
- type SignOutFunction = () => Promise<{
40
- success: boolean;
41
- error?: string;
42
- }>;
43
- type ClearSessionFunction = () => Promise<void>;
44
- /**
45
- * Create Token Refresh Manager
46
- */
47
- export declare function createTokenRefreshManager(refreshFn: RefreshFunction, signOutFn: SignOutFunction, clearSessionFn: ClearSessionFunction, config?: TokenRefreshConfig): TokenRefreshManager;
48
- export {};