mulguard 1.1.7 → 1.1.8

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/README.md +21 -582
  2. package/adapters.d.ts +2 -0
  3. package/adapters.d.ts.map +1 -0
  4. package/adapters.js +1 -0
  5. package/index.d.ts +329 -0
  6. package/index.d.ts.map +1 -0
  7. package/index.js +145 -0
  8. package/jwt.d.ts +9 -0
  9. package/jwt.d.ts.map +1 -0
  10. package/jwt.js +8 -0
  11. package/lib/actions.d.ts +13 -0
  12. package/lib/actions.d.ts.map +1 -0
  13. package/lib/actions.js +86 -0
  14. package/lib/client.d.ts +104 -0
  15. package/lib/client.d.ts.map +1 -0
  16. package/lib/client.js +95 -0
  17. package/lib/env.d.ts +12 -0
  18. package/lib/env.d.ts.map +1 -0
  19. package/lib/env.js +38 -0
  20. package/lib/index.d.ts +56 -0
  21. package/lib/index.d.ts.map +1 -0
  22. package/lib/index.js +187 -0
  23. package/lib/types.d.ts +24 -0
  24. package/lib/types.d.ts.map +1 -0
  25. package/lib/types.js +1 -0
  26. package/middleware.d.ts +9 -0
  27. package/middleware.d.ts.map +1 -0
  28. package/middleware.js +12 -0
  29. package/next.d.ts +9 -0
  30. package/next.d.ts.map +1 -0
  31. package/next.js +12 -0
  32. package/package.json +117 -126
  33. package/providers/42-school.d.ts +3 -0
  34. package/providers/42-school.d.ts.map +1 -0
  35. package/providers/42-school.js +2 -0
  36. package/providers/apple.d.ts +3 -0
  37. package/providers/apple.d.ts.map +1 -0
  38. package/providers/apple.js +2 -0
  39. package/providers/asgardeo.d.ts +3 -0
  40. package/providers/asgardeo.d.ts.map +1 -0
  41. package/providers/asgardeo.js +2 -0
  42. package/providers/atlassian.d.ts +3 -0
  43. package/providers/atlassian.d.ts.map +1 -0
  44. package/providers/atlassian.js +2 -0
  45. package/providers/auth0.d.ts +3 -0
  46. package/providers/auth0.d.ts.map +1 -0
  47. package/providers/auth0.js +2 -0
  48. package/providers/authentik.d.ts +3 -0
  49. package/providers/authentik.d.ts.map +1 -0
  50. package/providers/authentik.js +2 -0
  51. package/providers/azure-ad-b2c.d.ts +3 -0
  52. package/providers/azure-ad-b2c.d.ts.map +1 -0
  53. package/providers/azure-ad-b2c.js +2 -0
  54. package/providers/azure-ad.d.ts +3 -0
  55. package/providers/azure-ad.d.ts.map +1 -0
  56. package/providers/azure-ad.js +2 -0
  57. package/providers/azure-devops.d.ts +3 -0
  58. package/providers/azure-devops.d.ts.map +1 -0
  59. package/providers/azure-devops.js +2 -0
  60. package/providers/bankid-no.d.ts +3 -0
  61. package/providers/bankid-no.d.ts.map +1 -0
  62. package/providers/bankid-no.js +2 -0
  63. package/providers/battlenet.d.ts +3 -0
  64. package/providers/battlenet.d.ts.map +1 -0
  65. package/providers/battlenet.js +2 -0
  66. package/providers/beyondidentity.d.ts +3 -0
  67. package/providers/beyondidentity.d.ts.map +1 -0
  68. package/providers/beyondidentity.js +2 -0
  69. package/providers/bitbucket.d.ts +3 -0
  70. package/providers/bitbucket.d.ts.map +1 -0
  71. package/providers/bitbucket.js +2 -0
  72. package/providers/box.d.ts +3 -0
  73. package/providers/box.d.ts.map +1 -0
  74. package/providers/box.js +2 -0
  75. package/providers/boxyhq-saml.d.ts +3 -0
  76. package/providers/boxyhq-saml.d.ts.map +1 -0
  77. package/providers/boxyhq-saml.js +2 -0
  78. package/providers/bungie.d.ts +3 -0
  79. package/providers/bungie.d.ts.map +1 -0
  80. package/providers/bungie.js +2 -0
  81. package/providers/click-up.d.ts +3 -0
  82. package/providers/click-up.d.ts.map +1 -0
  83. package/providers/click-up.js +2 -0
  84. package/providers/cognito.d.ts +3 -0
  85. package/providers/cognito.d.ts.map +1 -0
  86. package/providers/cognito.js +2 -0
  87. package/providers/coinbase.d.ts +3 -0
  88. package/providers/coinbase.d.ts.map +1 -0
  89. package/providers/coinbase.js +2 -0
  90. package/providers/concept2.d.ts +3 -0
  91. package/providers/concept2.d.ts.map +1 -0
  92. package/providers/concept2.js +2 -0
  93. package/providers/credentials.d.ts +3 -0
  94. package/providers/credentials.d.ts.map +1 -0
  95. package/providers/credentials.js +2 -0
  96. package/providers/descope.d.ts +3 -0
  97. package/providers/descope.d.ts.map +1 -0
  98. package/providers/descope.js +2 -0
  99. package/providers/discord.d.ts +3 -0
  100. package/providers/discord.d.ts.map +1 -0
  101. package/providers/discord.js +2 -0
  102. package/providers/dribbble.d.ts +3 -0
  103. package/providers/dribbble.d.ts.map +1 -0
  104. package/providers/dribbble.js +2 -0
  105. package/providers/dropbox.d.ts +3 -0
  106. package/providers/dropbox.d.ts.map +1 -0
  107. package/providers/dropbox.js +2 -0
  108. package/providers/duende-identity-server6.d.ts +3 -0
  109. package/providers/duende-identity-server6.d.ts.map +1 -0
  110. package/providers/duende-identity-server6.js +2 -0
  111. package/providers/email.d.ts +3 -0
  112. package/providers/email.d.ts.map +1 -0
  113. package/providers/email.js +2 -0
  114. package/providers/eventbrite.d.ts +3 -0
  115. package/providers/eventbrite.d.ts.map +1 -0
  116. package/providers/eventbrite.js +2 -0
  117. package/providers/eveonline.d.ts +3 -0
  118. package/providers/eveonline.d.ts.map +1 -0
  119. package/providers/eveonline.js +2 -0
  120. package/providers/facebook.d.ts +3 -0
  121. package/providers/facebook.d.ts.map +1 -0
  122. package/providers/facebook.js +2 -0
  123. package/providers/faceit.d.ts +3 -0
  124. package/providers/faceit.d.ts.map +1 -0
  125. package/providers/faceit.js +2 -0
  126. package/providers/figma.d.ts +3 -0
  127. package/providers/figma.d.ts.map +1 -0
  128. package/providers/figma.js +2 -0
  129. package/providers/forwardemail.d.ts +3 -0
  130. package/providers/forwardemail.d.ts.map +1 -0
  131. package/providers/forwardemail.js +2 -0
  132. package/providers/foursquare.d.ts +3 -0
  133. package/providers/foursquare.d.ts.map +1 -0
  134. package/providers/foursquare.js +2 -0
  135. package/providers/freshbooks.d.ts +3 -0
  136. package/providers/freshbooks.d.ts.map +1 -0
  137. package/providers/freshbooks.js +2 -0
  138. package/providers/frontegg.d.ts +3 -0
  139. package/providers/frontegg.d.ts.map +1 -0
  140. package/providers/frontegg.js +2 -0
  141. package/providers/fusionauth.d.ts +3 -0
  142. package/providers/fusionauth.d.ts.map +1 -0
  143. package/providers/fusionauth.js +2 -0
  144. package/providers/github.d.ts +3 -0
  145. package/providers/github.d.ts.map +1 -0
  146. package/providers/github.js +2 -0
  147. package/providers/gitlab.d.ts +3 -0
  148. package/providers/gitlab.d.ts.map +1 -0
  149. package/providers/gitlab.js +2 -0
  150. package/providers/google.d.ts +3 -0
  151. package/providers/google.d.ts.map +1 -0
  152. package/providers/google.js +2 -0
  153. package/providers/hubspot.d.ts +3 -0
  154. package/providers/hubspot.d.ts.map +1 -0
  155. package/providers/hubspot.js +2 -0
  156. package/providers/huggingface.d.ts +3 -0
  157. package/providers/huggingface.d.ts.map +1 -0
  158. package/providers/huggingface.js +2 -0
  159. package/providers/identity-server4.d.ts +3 -0
  160. package/providers/identity-server4.d.ts.map +1 -0
  161. package/providers/identity-server4.js +2 -0
  162. package/providers/index.d.ts +2 -0
  163. package/providers/index.d.ts.map +1 -0
  164. package/providers/index.js +1 -0
  165. package/providers/instagram.d.ts +3 -0
  166. package/providers/instagram.d.ts.map +1 -0
  167. package/providers/instagram.js +2 -0
  168. package/providers/kakao.d.ts +3 -0
  169. package/providers/kakao.d.ts.map +1 -0
  170. package/providers/kakao.js +2 -0
  171. package/providers/keycloak.d.ts +3 -0
  172. package/providers/keycloak.d.ts.map +1 -0
  173. package/providers/keycloak.js +2 -0
  174. package/providers/kinde.d.ts +3 -0
  175. package/providers/kinde.d.ts.map +1 -0
  176. package/providers/kinde.js +2 -0
  177. package/providers/line.d.ts +3 -0
  178. package/providers/line.d.ts.map +1 -0
  179. package/providers/line.js +2 -0
  180. package/providers/linkedin.d.ts +3 -0
  181. package/providers/linkedin.d.ts.map +1 -0
  182. package/providers/linkedin.js +2 -0
  183. package/providers/logto.d.ts +3 -0
  184. package/providers/logto.d.ts.map +1 -0
  185. package/providers/logto.js +2 -0
  186. package/providers/loops.d.ts +3 -0
  187. package/providers/loops.d.ts.map +1 -0
  188. package/providers/loops.js +2 -0
  189. package/providers/mailchimp.d.ts +3 -0
  190. package/providers/mailchimp.d.ts.map +1 -0
  191. package/providers/mailchimp.js +2 -0
  192. package/providers/mailgun.d.ts +3 -0
  193. package/providers/mailgun.d.ts.map +1 -0
  194. package/providers/mailgun.js +2 -0
  195. package/providers/mailru.d.ts +3 -0
  196. package/providers/mailru.d.ts.map +1 -0
  197. package/providers/mailru.js +2 -0
  198. package/providers/mastodon.d.ts +3 -0
  199. package/providers/mastodon.d.ts.map +1 -0
  200. package/providers/mastodon.js +2 -0
  201. package/providers/mattermost.d.ts +3 -0
  202. package/providers/mattermost.d.ts.map +1 -0
  203. package/providers/mattermost.js +2 -0
  204. package/providers/medium.d.ts +3 -0
  205. package/providers/medium.d.ts.map +1 -0
  206. package/providers/medium.js +2 -0
  207. package/providers/microsoft-entra-id.d.ts +3 -0
  208. package/providers/microsoft-entra-id.d.ts.map +1 -0
  209. package/providers/microsoft-entra-id.js +2 -0
  210. package/providers/naver.d.ts +3 -0
  211. package/providers/naver.d.ts.map +1 -0
  212. package/providers/naver.js +2 -0
  213. package/providers/netlify.d.ts +3 -0
  214. package/providers/netlify.d.ts.map +1 -0
  215. package/providers/netlify.js +2 -0
  216. package/providers/netsuite.d.ts +3 -0
  217. package/providers/netsuite.d.ts.map +1 -0
  218. package/providers/netsuite.js +2 -0
  219. package/providers/nextcloud.d.ts +3 -0
  220. package/providers/nextcloud.d.ts.map +1 -0
  221. package/providers/nextcloud.js +2 -0
  222. package/providers/nodemailer.d.ts +3 -0
  223. package/providers/nodemailer.d.ts.map +1 -0
  224. package/providers/nodemailer.js +2 -0
  225. package/providers/notion.d.ts +3 -0
  226. package/providers/notion.d.ts.map +1 -0
  227. package/providers/notion.js +2 -0
  228. package/providers/okta.d.ts +3 -0
  229. package/providers/okta.d.ts.map +1 -0
  230. package/providers/okta.js +2 -0
  231. package/providers/onelogin.d.ts +3 -0
  232. package/providers/onelogin.d.ts.map +1 -0
  233. package/providers/onelogin.js +2 -0
  234. package/providers/ory-hydra.d.ts +3 -0
  235. package/providers/ory-hydra.d.ts.map +1 -0
  236. package/providers/ory-hydra.js +2 -0
  237. package/providers/osso.d.ts +3 -0
  238. package/providers/osso.d.ts.map +1 -0
  239. package/providers/osso.js +2 -0
  240. package/providers/osu.d.ts +3 -0
  241. package/providers/osu.d.ts.map +1 -0
  242. package/providers/osu.js +2 -0
  243. package/providers/passage.d.ts +3 -0
  244. package/providers/passage.d.ts.map +1 -0
  245. package/providers/passage.js +2 -0
  246. package/providers/passkey.d.ts +3 -0
  247. package/providers/passkey.d.ts.map +1 -0
  248. package/providers/passkey.js +2 -0
  249. package/providers/patreon.d.ts +3 -0
  250. package/providers/patreon.d.ts.map +1 -0
  251. package/providers/patreon.js +2 -0
  252. package/providers/ping-id.d.ts +3 -0
  253. package/providers/ping-id.d.ts.map +1 -0
  254. package/providers/ping-id.js +2 -0
  255. package/providers/pinterest.d.ts +3 -0
  256. package/providers/pinterest.d.ts.map +1 -0
  257. package/providers/pinterest.js +2 -0
  258. package/providers/pipedrive.d.ts +3 -0
  259. package/providers/pipedrive.d.ts.map +1 -0
  260. package/providers/pipedrive.js +2 -0
  261. package/providers/postmark.d.ts +3 -0
  262. package/providers/postmark.d.ts.map +1 -0
  263. package/providers/postmark.js +2 -0
  264. package/providers/reddit.d.ts +3 -0
  265. package/providers/reddit.d.ts.map +1 -0
  266. package/providers/reddit.js +2 -0
  267. package/providers/resend.d.ts +3 -0
  268. package/providers/resend.d.ts.map +1 -0
  269. package/providers/resend.js +2 -0
  270. package/providers/roblox.d.ts +3 -0
  271. package/providers/roblox.d.ts.map +1 -0
  272. package/providers/roblox.js +2 -0
  273. package/providers/salesforce.d.ts +3 -0
  274. package/providers/salesforce.d.ts.map +1 -0
  275. package/providers/salesforce.js +2 -0
  276. package/providers/sendgrid.d.ts +3 -0
  277. package/providers/sendgrid.d.ts.map +1 -0
  278. package/providers/sendgrid.js +2 -0
  279. package/providers/simplelogin.d.ts +3 -0
  280. package/providers/simplelogin.d.ts.map +1 -0
  281. package/providers/simplelogin.js +2 -0
  282. package/providers/slack.d.ts +3 -0
  283. package/providers/slack.d.ts.map +1 -0
  284. package/providers/slack.js +2 -0
  285. package/providers/spotify.d.ts +3 -0
  286. package/providers/spotify.d.ts.map +1 -0
  287. package/providers/spotify.js +2 -0
  288. package/providers/strava.d.ts +3 -0
  289. package/providers/strava.d.ts.map +1 -0
  290. package/providers/strava.js +2 -0
  291. package/providers/threads.d.ts +3 -0
  292. package/providers/threads.d.ts.map +1 -0
  293. package/providers/threads.js +2 -0
  294. package/providers/tiktok.d.ts +3 -0
  295. package/providers/tiktok.d.ts.map +1 -0
  296. package/providers/tiktok.js +2 -0
  297. package/providers/todoist.d.ts +3 -0
  298. package/providers/todoist.d.ts.map +1 -0
  299. package/providers/todoist.js +2 -0
  300. package/providers/trakt.d.ts +3 -0
  301. package/providers/trakt.d.ts.map +1 -0
  302. package/providers/trakt.js +2 -0
  303. package/providers/twitch.d.ts +3 -0
  304. package/providers/twitch.d.ts.map +1 -0
  305. package/providers/twitch.js +2 -0
  306. package/providers/twitter.d.ts +3 -0
  307. package/providers/twitter.d.ts.map +1 -0
  308. package/providers/twitter.js +2 -0
  309. package/providers/united-effects.d.ts +3 -0
  310. package/providers/united-effects.d.ts.map +1 -0
  311. package/providers/united-effects.js +2 -0
  312. package/providers/vipps.d.ts +3 -0
  313. package/providers/vipps.d.ts.map +1 -0
  314. package/providers/vipps.js +2 -0
  315. package/providers/vk.d.ts +3 -0
  316. package/providers/vk.d.ts.map +1 -0
  317. package/providers/vk.js +2 -0
  318. package/providers/webauthn.d.ts +3 -0
  319. package/providers/webauthn.d.ts.map +1 -0
  320. package/providers/webauthn.js +2 -0
  321. package/providers/webex.d.ts +3 -0
  322. package/providers/webex.d.ts.map +1 -0
  323. package/providers/webex.js +2 -0
  324. package/providers/wechat.d.ts +3 -0
  325. package/providers/wechat.d.ts.map +1 -0
  326. package/providers/wechat.js +2 -0
  327. package/providers/wikimedia.d.ts +3 -0
  328. package/providers/wikimedia.d.ts.map +1 -0
  329. package/providers/wikimedia.js +2 -0
  330. package/providers/wordpress.d.ts +3 -0
  331. package/providers/wordpress.d.ts.map +1 -0
  332. package/providers/wordpress.js +2 -0
  333. package/providers/workos.d.ts +3 -0
  334. package/providers/workos.d.ts.map +1 -0
  335. package/providers/workos.js +2 -0
  336. package/providers/yandex.d.ts +3 -0
  337. package/providers/yandex.d.ts.map +1 -0
  338. package/providers/yandex.js +2 -0
  339. package/providers/zitadel.d.ts +3 -0
  340. package/providers/zitadel.d.ts.map +1 -0
  341. package/providers/zitadel.js +2 -0
  342. package/providers/zoho.d.ts +3 -0
  343. package/providers/zoho.d.ts.map +1 -0
  344. package/providers/zoho.js +2 -0
  345. package/providers/zoom.d.ts +3 -0
  346. package/providers/zoom.d.ts.map +1 -0
  347. package/providers/zoom.js +2 -0
  348. package/react.d.ts +102 -0
  349. package/react.d.ts.map +1 -0
  350. package/react.js +361 -0
  351. package/src/adapters.ts +1 -0
  352. package/src/index.ts +430 -0
  353. package/src/jwt.ts +9 -0
  354. package/src/lib/actions.ts +144 -0
  355. package/src/lib/client.ts +245 -0
  356. package/src/lib/env.ts +36 -0
  357. package/src/lib/index.ts +313 -0
  358. package/src/lib/types.ts +30 -0
  359. package/src/middleware.ts +16 -0
  360. package/src/next.ts +16 -0
  361. package/src/providers/42-school.ts +2 -0
  362. package/src/providers/apple.ts +2 -0
  363. package/src/providers/asgardeo.ts +2 -0
  364. package/src/providers/atlassian.ts +2 -0
  365. package/src/providers/auth0.ts +2 -0
  366. package/src/providers/authentik.ts +2 -0
  367. package/src/providers/azure-ad-b2c.ts +2 -0
  368. package/src/providers/azure-ad.ts +2 -0
  369. package/src/providers/azure-devops.ts +2 -0
  370. package/src/providers/bankid-no.ts +2 -0
  371. package/src/providers/battlenet.ts +2 -0
  372. package/src/providers/beyondidentity.ts +2 -0
  373. package/src/providers/bitbucket.ts +2 -0
  374. package/src/providers/box.ts +2 -0
  375. package/src/providers/boxyhq-saml.ts +2 -0
  376. package/src/providers/bungie.ts +2 -0
  377. package/src/providers/click-up.ts +2 -0
  378. package/src/providers/cognito.ts +2 -0
  379. package/src/providers/coinbase.ts +2 -0
  380. package/src/providers/concept2.ts +2 -0
  381. package/src/providers/credentials.ts +2 -0
  382. package/src/providers/descope.ts +2 -0
  383. package/src/providers/discord.ts +2 -0
  384. package/src/providers/dribbble.ts +2 -0
  385. package/src/providers/dropbox.ts +2 -0
  386. package/src/providers/duende-identity-server6.ts +2 -0
  387. package/src/providers/email.ts +2 -0
  388. package/src/providers/eventbrite.ts +2 -0
  389. package/src/providers/eveonline.ts +2 -0
  390. package/src/providers/facebook.ts +2 -0
  391. package/src/providers/faceit.ts +2 -0
  392. package/src/providers/figma.ts +2 -0
  393. package/src/providers/forwardemail.ts +2 -0
  394. package/src/providers/foursquare.ts +2 -0
  395. package/src/providers/freshbooks.ts +2 -0
  396. package/src/providers/frontegg.ts +2 -0
  397. package/src/providers/fusionauth.ts +2 -0
  398. package/src/providers/github.ts +2 -0
  399. package/src/providers/gitlab.ts +2 -0
  400. package/src/providers/google.ts +2 -0
  401. package/src/providers/hubspot.ts +2 -0
  402. package/src/providers/huggingface.ts +2 -0
  403. package/src/providers/identity-server4.ts +2 -0
  404. package/src/providers/index.ts +1 -0
  405. package/src/providers/instagram.ts +2 -0
  406. package/src/providers/kakao.ts +2 -0
  407. package/src/providers/keycloak.ts +2 -0
  408. package/src/providers/kinde.ts +2 -0
  409. package/src/providers/line.ts +2 -0
  410. package/src/providers/linkedin.ts +2 -0
  411. package/src/providers/logto.ts +2 -0
  412. package/src/providers/loops.ts +2 -0
  413. package/src/providers/mailchimp.ts +2 -0
  414. package/src/providers/mailgun.ts +2 -0
  415. package/src/providers/mailru.ts +2 -0
  416. package/src/providers/mastodon.ts +2 -0
  417. package/src/providers/mattermost.ts +2 -0
  418. package/src/providers/medium.ts +2 -0
  419. package/src/providers/microsoft-entra-id.ts +2 -0
  420. package/src/providers/naver.ts +2 -0
  421. package/src/providers/netlify.ts +2 -0
  422. package/src/providers/netsuite.ts +2 -0
  423. package/src/providers/nextcloud.ts +2 -0
  424. package/src/providers/nodemailer.ts +2 -0
  425. package/src/providers/notion.ts +2 -0
  426. package/src/providers/okta.ts +2 -0
  427. package/src/providers/onelogin.ts +2 -0
  428. package/src/providers/ory-hydra.ts +2 -0
  429. package/src/providers/osso.ts +2 -0
  430. package/src/providers/osu.ts +2 -0
  431. package/src/providers/passage.ts +2 -0
  432. package/src/providers/passkey.ts +2 -0
  433. package/src/providers/patreon.ts +2 -0
  434. package/src/providers/ping-id.ts +2 -0
  435. package/src/providers/pinterest.ts +2 -0
  436. package/src/providers/pipedrive.ts +2 -0
  437. package/src/providers/postmark.ts +2 -0
  438. package/src/providers/reddit.ts +2 -0
  439. package/src/providers/resend.ts +2 -0
  440. package/src/providers/roblox.ts +2 -0
  441. package/src/providers/salesforce.ts +2 -0
  442. package/src/providers/sendgrid.ts +2 -0
  443. package/src/providers/simplelogin.ts +2 -0
  444. package/src/providers/slack.ts +2 -0
  445. package/src/providers/spotify.ts +2 -0
  446. package/src/providers/strava.ts +2 -0
  447. package/src/providers/threads.ts +2 -0
  448. package/src/providers/tiktok.ts +2 -0
  449. package/src/providers/todoist.ts +2 -0
  450. package/src/providers/trakt.ts +2 -0
  451. package/src/providers/twitch.ts +2 -0
  452. package/src/providers/twitter.ts +2 -0
  453. package/src/providers/united-effects.ts +2 -0
  454. package/src/providers/vipps.ts +2 -0
  455. package/src/providers/vk.ts +2 -0
  456. package/src/providers/webauthn.ts +2 -0
  457. package/src/providers/webex.ts +2 -0
  458. package/src/providers/wechat.ts +2 -0
  459. package/src/providers/wikimedia.ts +2 -0
  460. package/src/providers/wordpress.ts +2 -0
  461. package/src/providers/workos.ts +2 -0
  462. package/src/providers/yandex.ts +2 -0
  463. package/src/providers/zitadel.ts +2 -0
  464. package/src/providers/zoho.ts +2 -0
  465. package/src/providers/zoom.ts +2 -0
  466. package/src/react.tsx +546 -0
  467. package/src/webauthn.ts +152 -0
  468. package/webauthn.d.ts +9 -0
  469. package/webauthn.d.ts.map +1 -0
  470. package/webauthn.js +92 -0
  471. package/LICENSE +0 -70
  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,251 +0,0 @@
1
- /**
2
- * Input validation and sanitization utilities with type safety.
3
- *
4
- * @module @mulguard/core/security/validation
5
- */
6
- /**
7
- * Validation result type.
8
- *
9
- * @template T - Type of sanitized value
10
- */
11
- export interface ValidationResult<T = string> {
12
- readonly valid: boolean;
13
- readonly sanitized?: T;
14
- readonly error?: string;
15
- }
16
- /**
17
- * Email validation result.
18
- */
19
- export type EmailValidationResult = ValidationResult<string>;
20
- /**
21
- * Password validation result with strength indicator.
22
- */
23
- export interface PasswordValidationResult extends ValidationResult<string> {
24
- readonly strength?: 'weak' | 'medium' | 'strong';
25
- }
26
- /**
27
- * Name validation result.
28
- */
29
- export type NameValidationResult = ValidationResult<string>;
30
- /**
31
- * Token validation result.
32
- */
33
- export type TokenValidationResult = ValidationResult<string>;
34
- /**
35
- * URL validation result.
36
- */
37
- export type URLValidationResult = ValidationResult<string>;
38
- /**
39
- * Input sanitization options.
40
- */
41
- export interface SanitizeOptions {
42
- readonly maxLength?: number;
43
- readonly allowHtml?: boolean;
44
- readonly required?: boolean;
45
- }
46
- /**
47
- * Validates and sanitizes an email address.
48
- *
49
- * @param email - Email address to validate
50
- * @returns Validation result with sanitized email if valid
51
- *
52
- * @example
53
- * ```typescript
54
- * const result = validateAndSanitizeEmail(' User@Example.COM ')
55
- * if (result.valid) {
56
- * console.log(result.sanitized) // 'user@example.com'
57
- * }
58
- * ```
59
- */
60
- export declare function validateAndSanitizeEmail(email: unknown): EmailValidationResult;
61
- /**
62
- * Type predicate to check if email validation result is valid.
63
- *
64
- * @param result - Validation result to check
65
- * @returns True if validation is successful
66
- *
67
- * @example
68
- * ```typescript
69
- * const result = validateAndSanitizeEmail(email)
70
- * if (isValidEmail(result)) {
71
- * // TypeScript knows result.sanitized exists
72
- * console.log(result.sanitized)
73
- * }
74
- * ```
75
- */
76
- export declare function isValidEmail(result: EmailValidationResult): result is EmailValidationResult & {
77
- valid: true;
78
- sanitized: string;
79
- };
80
- /**
81
- * Validates and sanitizes a password with strength assessment.
82
- *
83
- * @param password - Password to validate
84
- * @param minLength - Minimum password length (default: 8)
85
- * @returns Validation result with strength indicator if valid
86
- *
87
- * @example
88
- * ```typescript
89
- * const result = validateAndSanitizePassword('MyP@ssw0rd!')
90
- * if (result.valid) {
91
- * console.log(result.strength) // 'strong'
92
- * }
93
- * ```
94
- */
95
- export declare function validateAndSanitizePassword(password: unknown, minLength?: number): PasswordValidationResult;
96
- /**
97
- * Type predicate to check if password validation result is valid.
98
- *
99
- * @param result - Validation result to check
100
- * @returns True if validation is successful
101
- */
102
- export declare function isValidPassword(result: PasswordValidationResult): result is PasswordValidationResult & {
103
- valid: true;
104
- sanitized: string;
105
- };
106
- /**
107
- * Validates and sanitizes a name.
108
- *
109
- * @param name - Name to validate
110
- * @returns Validation result with sanitized name if valid
111
- *
112
- * @example
113
- * ```typescript
114
- * const result = validateAndSanitizeName(' John Doe ')
115
- * if (result.valid) {
116
- * console.log(result.sanitized) // 'John Doe'
117
- * }
118
- * ```
119
- */
120
- export declare function validateAndSanitizeName(name: unknown): NameValidationResult;
121
- /**
122
- * Type predicate to check if name validation result is valid.
123
- *
124
- * @param result - Validation result to check
125
- * @returns True if validation is successful
126
- */
127
- export declare function isValidName(result: NameValidationResult): result is NameValidationResult & {
128
- valid: true;
129
- sanitized: string;
130
- };
131
- /**
132
- * Validates a URL.
133
- *
134
- * @param url - URL to validate
135
- * @returns Validation result
136
- *
137
- * @example
138
- * ```typescript
139
- * const result = validateURL('https://example.com')
140
- * if (result.valid) {
141
- * // URL is valid
142
- * }
143
- * ```
144
- */
145
- export declare function validateURL(url: unknown): URLValidationResult;
146
- /**
147
- * Type predicate to check if URL validation result is valid.
148
- *
149
- * @param result - Validation result to check
150
- * @returns True if validation is successful
151
- */
152
- export declare function isValidURL(result: URLValidationResult): result is URLValidationResult & {
153
- valid: true;
154
- sanitized: string;
155
- };
156
- /**
157
- * Validates a token format with security checks.
158
- *
159
- * @param token - Token to validate
160
- * @param minLength - Minimum token length (default: 16)
161
- * @returns Validation result
162
- *
163
- * @example
164
- * ```typescript
165
- * const result = validateToken('abc123xyz')
166
- * if (result.valid) {
167
- * // Token is valid
168
- * }
169
- * ```
170
- */
171
- export declare function validateToken(token: unknown, minLength?: number): TokenValidationResult;
172
- /**
173
- * Type predicate to check if token validation result is valid.
174
- *
175
- * @param result - Validation result to check
176
- * @returns True if validation is successful
177
- */
178
- export declare function isValidToken(result: TokenValidationResult): result is TokenValidationResult & {
179
- valid: true;
180
- sanitized: string;
181
- };
182
- /**
183
- * Validates and sanitizes generic input with XSS prevention.
184
- *
185
- * @param input - Input to validate and sanitize
186
- * @param options - Sanitization options
187
- * @returns Validation result with sanitized input if valid
188
- *
189
- * @example
190
- * ```typescript
191
- * const result = validateAndSanitizeInput('<script>alert("xss")</script>', { allowHtml: false })
192
- * if (result.valid) {
193
- * console.log(result.sanitized) // HTML escaped
194
- * }
195
- * ```
196
- */
197
- export declare function validateAndSanitizeInput(input: unknown, options?: SanitizeOptions): ValidationResult<string>;
198
- /**
199
- * Type predicate to check if input validation result is valid.
200
- *
201
- * @param result - Validation result to check
202
- * @returns True if validation is successful
203
- */
204
- export declare function isValidInput(result: ValidationResult<string>): result is ValidationResult<string> & {
205
- valid: true;
206
- sanitized: string;
207
- };
208
- /**
209
- * TODO: Performance
210
- * - [ ] Cache compiled regex patterns
211
- * - [ ] Optimize password strength calculation
212
- * - [ ] Add input length pre-check before full validation
213
- * - [ ] Consider using Web Crypto API for token validation
214
- *
215
- * TODO: Features
216
- * - [ ] Add internationalized email validation (IDN support)
217
- * - [ ] Implement password breach checking (Have I Been Pwned API)
218
- * - [ ] Add phone number validation
219
- * - [ ] Create validation rule builder pattern
220
- * - [ ] Add custom validation rule support
221
- * - [ ] Implement validation result chaining
222
- *
223
- * TODO: Type Safety
224
- * - [ ] Add branded types for validated inputs
225
- * - [ ] Create type-level validation constraints
226
- * - [ ] Implement compile-time validation rules
227
- * - [ ] Add type guards for all validation results
228
- *
229
- * TODO: Security
230
- * - [ ] Add rate limiting for validation attempts
231
- * - [ ] Implement validation result caching (with TTL)
232
- * - [ ] Add validation logging for security monitoring
233
- * - [ ] Create validation error reporting
234
- *
235
- * TODO: Testing
236
- * - [ ] Add comprehensive unit tests for all validators
237
- * - [ ] Test edge cases (Unicode, emoji, etc.)
238
- * - [ ] Test performance with large inputs
239
- * - [ ] Add fuzzing tests for security
240
- *
241
- * TODO: Documentation
242
- * - [ ] Add more JSDoc examples
243
- * - [ ] Document validation rules and limits
244
- * - [ ] Create validation best practices guide
245
- *
246
- * TODO: Limitations
247
- * - [ ] Email validation is simplified (not full RFC 5322)
248
- * - [ ] Password strength is basic (consider zxcvbn library)
249
- * - [ ] HTML sanitization is basic (consider DOMPurify for complex cases)
250
- * - [ ] No support for custom validation rules yet
251
- */
@@ -1,20 +0,0 @@
1
- /**
2
- * XSS Protection utilities
3
- */
4
- /**
5
- * Escape HTML to prevent XSS
6
- */
7
- export declare function escapeHTML(str: string): string;
8
- /**
9
- * Sanitize HTML (basic)
10
- * Note: For production, use a proper HTML sanitizer library like DOMPurify
11
- */
12
- export declare function sanitizeHTML(html: string): string;
13
- /**
14
- * Validate and sanitize user input
15
- */
16
- export declare function sanitizeUserInput(input: unknown): string;
17
- /**
18
- * Check for potential XSS patterns
19
- */
20
- export declare function containsXSSPattern(input: string): boolean;
@@ -1,35 +0,0 @@
1
- /**
2
- * Session management utilities
3
- */
4
- export interface SessionStorage {
5
- get(key: string): string | null;
6
- set(key: string, value: string, options?: SessionCookieOptions): void;
7
- remove(key: string): void;
8
- }
9
- export interface SessionCookieOptions {
10
- expires?: Date | number;
11
- maxAge?: number;
12
- domain?: string;
13
- path?: string;
14
- secure?: boolean;
15
- httpOnly?: boolean;
16
- sameSite?: 'strict' | 'lax' | 'none';
17
- }
18
- /**
19
- * Cookie storage implementation (client-side only)
20
- * Note: This is for browser environments. Server-side should use Next.js cookies() API
21
- */
22
- export declare class CookieStorage implements SessionStorage {
23
- get(key: string): string | null;
24
- set(key: string, value: string, options?: SessionCookieOptions): void;
25
- remove(key: string): void;
26
- }
27
- /**
28
- * Memory storage implementation (for testing)
29
- */
30
- export declare class MemoryStorage implements SessionStorage {
31
- private storage;
32
- get(key: string): string | null;
33
- set(key: string, value: string): void;
34
- remove(key: string): void;
35
- }
@@ -1,235 +0,0 @@
1
- import { Session, User, SessionConfig } from '../types';
2
- import { Logger } from '../logger';
3
- /**
4
- * Session storage adapter interface.
5
- */
6
- export interface SessionStorageAdapter {
7
- /**
8
- * Gets a session by key.
9
- *
10
- * @param key - Session key
11
- * @returns Session data or null if not found
12
- */
13
- get(key: string): Promise<string | null>;
14
- /**
15
- * Sets a session.
16
- *
17
- * @param key - Session key
18
- * @param value - Session data
19
- * @param expiresIn - Expiration time in milliseconds
20
- */
21
- set(key: string, value: string, expiresIn: number): Promise<void>;
22
- /**
23
- * Deletes a session.
24
- *
25
- * @param key - Session key
26
- */
27
- delete(key: string): Promise<void>;
28
- /**
29
- * Clears all sessions (optional).
30
- */
31
- clear?(): Promise<void>;
32
- }
33
- /**
34
- * Cookie-based session storage adapter.
35
- *
36
- * Uses browser/document.cookie for client-side or Next.js cookies() for server-side.
37
- */
38
- export declare class CookieSessionStorage implements SessionStorageAdapter {
39
- private readonly cookieName;
40
- private readonly cookieOptions;
41
- constructor(cookieName: string, options?: {
42
- readonly httpOnly?: boolean;
43
- readonly secure?: boolean;
44
- readonly sameSite?: 'strict' | 'lax' | 'none';
45
- readonly path?: string;
46
- readonly domain?: string;
47
- });
48
- get(_key: string): Promise<string | null>;
49
- set(_key: string, value: string, expiresIn: number): Promise<void>;
50
- delete(_key: string): Promise<void>;
51
- }
52
- /**
53
- * In-memory session storage adapter (for testing or development).
54
- */
55
- export declare class MemorySessionStorage implements SessionStorageAdapter {
56
- private readonly storage;
57
- get(key: string): Promise<string | null>;
58
- set(key: string, value: string, expiresIn: number): Promise<void>;
59
- delete(key: string): Promise<void>;
60
- clear(): Promise<void>;
61
- }
62
- /**
63
- * Session manager configuration.
64
- */
65
- export interface SessionManagerConfig extends SessionConfig {
66
- readonly storage?: SessionStorageAdapter;
67
- readonly logger?: Logger;
68
- }
69
- /**
70
- * Comprehensive session manager for authentication operations.
71
- *
72
- * Handles session creation, validation, storage, and expiration with
73
- * support for multiple storage backends and caching.
74
- *
75
- * @example
76
- * ```typescript
77
- * const sessionManager = new SessionManager({
78
- * cookieName: '__mulguard_session',
79
- * expiresIn: 60 * 60 * 24 * 7, // 7 days
80
- * httpOnly: true,
81
- * secure: true,
82
- * })
83
- *
84
- * // Create session
85
- * const session = await sessionManager.createSession(user)
86
- *
87
- * // Get session
88
- * const currentSession = await sessionManager.getSession()
89
- * ```
90
- */
91
- export declare class SessionManager {
92
- private readonly config;
93
- private readonly storage;
94
- private readonly cache;
95
- private readonly cacheTtl;
96
- constructor(config: SessionManagerConfig);
97
- /**
98
- * Creates a new session for a user.
99
- *
100
- * @param user - User object
101
- * @param additionalData - Additional session data (optional)
102
- * @returns Created session
103
- *
104
- * @example
105
- * ```typescript
106
- * const session = await sessionManager.createSession(user, {
107
- * accessToken: 'token123',
108
- * })
109
- * ```
110
- */
111
- createSession<TUser extends User = User>(user: TUser, additionalData?: Partial<Omit<Session<TUser>, 'user' | 'expiresAt'>>): Promise<Session<TUser>>;
112
- /**
113
- * Gets the current session.
114
- *
115
- * Checks cache first, then storage, and validates expiration.
116
- *
117
- * @returns Current session or null if not found/expired
118
- *
119
- * @example
120
- * ```typescript
121
- * const session = await sessionManager.getSession()
122
- * if (session) {
123
- * console.log('User:', session.user.email)
124
- * }
125
- * ```
126
- */
127
- getSession<TUser extends User = User>(): Promise<Session<TUser> | null>;
128
- /**
129
- * Saves a session to storage.
130
- *
131
- * @param session - Session to save
132
- *
133
- * @example
134
- * ```typescript
135
- * await sessionManager.saveSession(session)
136
- * ```
137
- */
138
- saveSession<TUser extends User = User>(session: Session<TUser>): Promise<void>;
139
- /**
140
- * Deletes the current session.
141
- *
142
- * @example
143
- * ```typescript
144
- * await sessionManager.deleteSession()
145
- * ```
146
- */
147
- deleteSession(): Promise<void>;
148
- /**
149
- * Validates a session.
150
- *
151
- * @param session - Session to validate
152
- * @returns True if session is valid
153
- *
154
- * @example
155
- * ```typescript
156
- * if (sessionManager.validateSession(session)) {
157
- * // Session is valid
158
- * }
159
- * ```
160
- */
161
- validateSession<TUser extends User = User>(session: Session<TUser>): boolean;
162
- /**
163
- * Clears the session cache.
164
- */
165
- clearCache(): void;
166
- /**
167
- * Cleans up expired cache entries.
168
- */
169
- private cleanupCache;
170
- /**
171
- * Gets session configuration.
172
- *
173
- * @returns Session configuration
174
- */
175
- getConfig(): Readonly<SessionManagerConfig>;
176
- }
177
- /**
178
- * Creates a session manager instance.
179
- *
180
- * @param config - Session manager configuration
181
- * @returns Session manager instance
182
- *
183
- * @example
184
- * ```typescript
185
- * const sessionManager = createSessionManager({
186
- * cookieName: '__mulguard_session',
187
- * expiresIn: 60 * 60 * 24 * 7,
188
- * })
189
- * ```
190
- */
191
- export declare function createSessionManager(config: SessionManagerConfig): SessionManager;
192
- export * from './index';
193
- /**
194
- * TODO: Performance
195
- * - [ ] Add session compression for large sessions
196
- * - [ ] Implement session chunking for very large sessions
197
- * - [ ] Add session indexing for faster lookups
198
- * - [ ] Optimize cache eviction strategy
199
- *
200
- * TODO: Features
201
- * - [ ] Add Redis-based session storage adapter
202
- * - [ ] Implement database session storage adapter
203
- * - [ ] Add session refresh mechanism
204
- * - [ ] Create session migration support
205
- * - [ ] Add session analytics
206
- * - [ ] Implement session sharing across subdomains
207
- *
208
- * TODO: Type Safety
209
- * - [ ] Add branded types for session IDs
210
- * - [ ] Create type-safe session data validation
211
- * - [ ] Implement compile-time session schema validation
212
- *
213
- * TODO: Security
214
- * - [ ] Add session encryption support
215
- * - [ ] Implement session signing
216
- * - [ ] Add session fingerprinting
217
- * - [ ] Create session audit logging
218
- * - [ ] Add session hijacking detection
219
- *
220
- * TODO: Testing
221
- * - [ ] Add comprehensive unit tests
222
- * - [ ] Test session expiration handling
223
- * - [ ] Test cache invalidation
224
- * - [ ] Add storage adapter tests
225
- *
226
- * TODO: Documentation
227
- * - [ ] Document session lifecycle
228
- * - [ ] Add storage adapter guide
229
- * - [ ] Create session best practices guide
230
- *
231
- * TODO: Limitations
232
- * - [ ] Cookie storage has size limits (~4KB)
233
- * - [ ] Memory storage is not persistent
234
- * - [ ] Cache cleanup runs on interval (consider event-based)
235
- */