@mulverse/mulguard-core 1.0.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 (600) hide show
  1. package/README.md +24 -0
  2. package/adapters.d.ts +522 -0
  3. package/adapters.d.ts.map +1 -0
  4. package/adapters.js +170 -0
  5. package/errors.d.ts +429 -0
  6. package/errors.d.ts.map +1 -0
  7. package/errors.js +473 -0
  8. package/index.d.ts +547 -0
  9. package/index.d.ts.map +1 -0
  10. package/index.js +142 -0
  11. package/jwt.d.ts +132 -0
  12. package/jwt.d.ts.map +1 -0
  13. package/jwt.js +123 -0
  14. package/lib/actions/callback/handle-login.d.ts +35 -0
  15. package/lib/actions/callback/handle-login.d.ts.map +1 -0
  16. package/lib/actions/callback/handle-login.js +275 -0
  17. package/lib/actions/callback/index.d.ts +5 -0
  18. package/lib/actions/callback/index.d.ts.map +1 -0
  19. package/lib/actions/callback/index.js +409 -0
  20. package/lib/actions/callback/oauth/callback.d.ts +36 -0
  21. package/lib/actions/callback/oauth/callback.d.ts.map +1 -0
  22. package/lib/actions/callback/oauth/callback.js +248 -0
  23. package/lib/actions/callback/oauth/checks.d.ts +70 -0
  24. package/lib/actions/callback/oauth/checks.d.ts.map +1 -0
  25. package/lib/actions/callback/oauth/checks.js +188 -0
  26. package/lib/actions/callback/oauth/csrf-token.d.ts +33 -0
  27. package/lib/actions/callback/oauth/csrf-token.d.ts.map +1 -0
  28. package/lib/actions/callback/oauth/csrf-token.js +39 -0
  29. package/lib/actions/index.d.ts +6 -0
  30. package/lib/actions/index.d.ts.map +1 -0
  31. package/lib/actions/index.js +5 -0
  32. package/lib/actions/session.d.ts +5 -0
  33. package/lib/actions/session.d.ts.map +1 -0
  34. package/lib/actions/session.js +127 -0
  35. package/lib/actions/signin/authorization-url.d.ts +12 -0
  36. package/lib/actions/signin/authorization-url.d.ts.map +1 -0
  37. package/lib/actions/signin/authorization-url.js +94 -0
  38. package/lib/actions/signin/index.d.ts +4 -0
  39. package/lib/actions/signin/index.d.ts.map +1 -0
  40. package/lib/actions/signin/index.js +22 -0
  41. package/lib/actions/signin/send-token.d.ts +10 -0
  42. package/lib/actions/signin/send-token.d.ts.map +1 -0
  43. package/lib/actions/signin/send-token.js +98 -0
  44. package/lib/actions/signout.d.ts +11 -0
  45. package/lib/actions/signout.d.ts.map +1 -0
  46. package/lib/actions/signout.js +30 -0
  47. package/lib/actions/webauthn-options.d.ts +8 -0
  48. package/lib/actions/webauthn-options.d.ts.map +1 -0
  49. package/lib/actions/webauthn-options.js +60 -0
  50. package/lib/index.d.ts +2 -0
  51. package/lib/index.d.ts.map +1 -0
  52. package/lib/index.js +70 -0
  53. package/lib/init.d.ts +25 -0
  54. package/lib/init.d.ts.map +1 -0
  55. package/lib/init.js +172 -0
  56. package/lib/pages/error.d.ts +17 -0
  57. package/lib/pages/error.d.ts.map +1 -0
  58. package/lib/pages/error.js +40 -0
  59. package/lib/pages/index.d.ts +42 -0
  60. package/lib/pages/index.d.ts.map +1 -0
  61. package/lib/pages/index.js +136 -0
  62. package/lib/pages/signin.d.ts +10 -0
  63. package/lib/pages/signin.d.ts.map +1 -0
  64. package/lib/pages/signin.js +75 -0
  65. package/lib/pages/signout.d.ts +8 -0
  66. package/lib/pages/signout.d.ts.map +1 -0
  67. package/lib/pages/signout.js +17 -0
  68. package/lib/pages/styles.d.ts +3 -0
  69. package/lib/pages/styles.d.ts.map +1 -0
  70. package/lib/pages/styles.js +381 -0
  71. package/lib/pages/verify-request.d.ts +8 -0
  72. package/lib/pages/verify-request.d.ts.map +1 -0
  73. package/lib/pages/verify-request.js +11 -0
  74. package/lib/symbols.d.ts +50 -0
  75. package/lib/symbols.d.ts.map +1 -0
  76. package/lib/symbols.js +57 -0
  77. package/lib/utils/actions.d.ts +3 -0
  78. package/lib/utils/actions.d.ts.map +1 -0
  79. package/lib/utils/actions.js +14 -0
  80. package/lib/utils/assert.d.ts +14 -0
  81. package/lib/utils/assert.d.ts.map +1 -0
  82. package/lib/utils/assert.js +168 -0
  83. package/lib/utils/callback-url.d.ts +17 -0
  84. package/lib/utils/callback-url.d.ts.map +1 -0
  85. package/lib/utils/callback-url.js +27 -0
  86. package/lib/utils/cookie.d.ts +111 -0
  87. package/lib/utils/cookie.d.ts.map +1 -0
  88. package/lib/utils/cookie.js +205 -0
  89. package/lib/utils/date.d.ts +7 -0
  90. package/lib/utils/date.d.ts.map +1 -0
  91. package/lib/utils/date.js +8 -0
  92. package/lib/utils/email.d.ts +20 -0
  93. package/lib/utils/email.d.ts.map +1 -0
  94. package/lib/utils/email.js +57 -0
  95. package/lib/utils/env.d.ts +9 -0
  96. package/lib/utils/env.d.ts.map +1 -0
  97. package/lib/utils/env.js +96 -0
  98. package/lib/utils/logger.d.ts +18 -0
  99. package/lib/utils/logger.d.ts.map +1 -0
  100. package/lib/utils/logger.js +50 -0
  101. package/lib/utils/merge.d.ts +3 -0
  102. package/lib/utils/merge.d.ts.map +1 -0
  103. package/lib/utils/merge.js +23 -0
  104. package/lib/utils/providers.d.ts +19 -0
  105. package/lib/utils/providers.d.ts.map +1 -0
  106. package/lib/utils/providers.js +149 -0
  107. package/lib/utils/session.d.ts +7 -0
  108. package/lib/utils/session.d.ts.map +1 -0
  109. package/lib/utils/session.js +29 -0
  110. package/lib/utils/web.d.ts +10 -0
  111. package/lib/utils/web.d.ts.map +1 -0
  112. package/lib/utils/web.js +109 -0
  113. package/lib/utils/webauthn-client.d.ts +30 -0
  114. package/lib/utils/webauthn-client.d.ts.map +1 -0
  115. package/lib/utils/webauthn-client.js +197 -0
  116. package/lib/utils/webauthn-utils.d.ts +81 -0
  117. package/lib/utils/webauthn-utils.d.ts.map +1 -0
  118. package/lib/utils/webauthn-utils.js +343 -0
  119. package/lib/vendored/cookie.d.ts +120 -0
  120. package/lib/vendored/cookie.d.ts.map +1 -0
  121. package/lib/vendored/cookie.js +237 -0
  122. package/package.json +118 -0
  123. package/providers/42-school.d.ts +240 -0
  124. package/providers/42-school.d.ts.map +1 -0
  125. package/providers/42-school.js +78 -0
  126. package/providers/apple.d.ts +149 -0
  127. package/providers/apple.d.ts.map +1 -0
  128. package/providers/apple.js +104 -0
  129. package/providers/asgardeo.d.ts +102 -0
  130. package/providers/asgardeo.d.ts.map +1 -0
  131. package/providers/asgardeo.js +93 -0
  132. package/providers/atlassian.d.ts +94 -0
  133. package/providers/atlassian.d.ts.map +1 -0
  134. package/providers/atlassian.js +84 -0
  135. package/providers/auth0.d.ts +116 -0
  136. package/providers/auth0.d.ts.map +1 -0
  137. package/providers/auth0.js +49 -0
  138. package/providers/authentik.d.ts +90 -0
  139. package/providers/authentik.d.ts.map +1 -0
  140. package/providers/authentik.js +65 -0
  141. package/providers/azure-ad-b2c.d.ts +104 -0
  142. package/providers/azure-ad-b2c.d.ts.map +1 -0
  143. package/providers/azure-ad-b2c.js +100 -0
  144. package/providers/azure-ad.d.ts +19 -0
  145. package/providers/azure-ad.d.ts.map +1 -0
  146. package/providers/azure-ad.js +23 -0
  147. package/providers/azure-devops.d.ts +128 -0
  148. package/providers/azure-devops.d.ts.map +1 -0
  149. package/providers/azure-devops.js +158 -0
  150. package/providers/bankid-no.d.ts +134 -0
  151. package/providers/bankid-no.d.ts.map +1 -0
  152. package/providers/bankid-no.js +65 -0
  153. package/providers/battlenet.d.ts +85 -0
  154. package/providers/battlenet.d.ts.map +1 -0
  155. package/providers/battlenet.js +81 -0
  156. package/providers/beyondidentity.d.ts +77 -0
  157. package/providers/beyondidentity.d.ts.map +1 -0
  158. package/providers/beyondidentity.js +84 -0
  159. package/providers/bitbucket.d.ts +89 -0
  160. package/providers/bitbucket.d.ts.map +1 -0
  161. package/providers/bitbucket.js +92 -0
  162. package/providers/box.d.ts +63 -0
  163. package/providers/box.d.ts.map +1 -0
  164. package/providers/box.js +73 -0
  165. package/providers/boxyhq-saml.d.ts +121 -0
  166. package/providers/boxyhq-saml.d.ts.map +1 -0
  167. package/providers/boxyhq-saml.js +127 -0
  168. package/providers/bungie.d.ts +167 -0
  169. package/providers/bungie.d.ts.map +1 -0
  170. package/providers/bungie.js +174 -0
  171. package/providers/click-up.d.ts +75 -0
  172. package/providers/click-up.d.ts.map +1 -0
  173. package/providers/click-up.js +89 -0
  174. package/providers/cognito.d.ts +81 -0
  175. package/providers/cognito.d.ts.map +1 -0
  176. package/providers/cognito.js +73 -0
  177. package/providers/coinbase.d.ts +69 -0
  178. package/providers/coinbase.d.ts.map +1 -0
  179. package/providers/coinbase.js +78 -0
  180. package/providers/concept2.d.ts +81 -0
  181. package/providers/concept2.d.ts.map +1 -0
  182. package/providers/concept2.js +86 -0
  183. package/providers/credentials.d.ts +132 -0
  184. package/providers/credentials.d.ts.map +1 -0
  185. package/providers/credentials.js +74 -0
  186. package/providers/descope.d.ts +91 -0
  187. package/providers/descope.d.ts.map +1 -0
  188. package/providers/descope.js +78 -0
  189. package/providers/discord.d.ts +139 -0
  190. package/providers/discord.d.ts.map +1 -0
  191. package/providers/discord.js +86 -0
  192. package/providers/dribbble.d.ts +88 -0
  193. package/providers/dribbble.d.ts.map +1 -0
  194. package/providers/dribbble.js +85 -0
  195. package/providers/dropbox.d.ts +65 -0
  196. package/providers/dropbox.d.ts.map +1 -0
  197. package/providers/dropbox.js +88 -0
  198. package/providers/duende-identity-server6.d.ts +91 -0
  199. package/providers/duende-identity-server6.d.ts.map +1 -0
  200. package/providers/duende-identity-server6.js +80 -0
  201. package/providers/email.d.ts +41 -0
  202. package/providers/email.d.ts.map +1 -0
  203. package/providers/email.js +18 -0
  204. package/providers/eventbrite.d.ts +78 -0
  205. package/providers/eventbrite.d.ts.map +1 -0
  206. package/providers/eventbrite.js +88 -0
  207. package/providers/eveonline.d.ts +94 -0
  208. package/providers/eveonline.d.ts.map +1 -0
  209. package/providers/eveonline.js +92 -0
  210. package/providers/facebook.d.ts +84 -0
  211. package/providers/facebook.d.ts.map +1 -0
  212. package/providers/facebook.js +93 -0
  213. package/providers/faceit.d.ts +64 -0
  214. package/providers/faceit.d.ts.map +1 -0
  215. package/providers/faceit.js +74 -0
  216. package/providers/figma.d.ts +75 -0
  217. package/providers/figma.d.ts.map +1 -0
  218. package/providers/figma.js +81 -0
  219. package/providers/forwardemail.d.ts +4 -0
  220. package/providers/forwardemail.d.ts.map +1 -0
  221. package/providers/forwardemail.js +32 -0
  222. package/providers/foursquare.d.ts +71 -0
  223. package/providers/foursquare.d.ts.map +1 -0
  224. package/providers/foursquare.js +91 -0
  225. package/providers/freshbooks.d.ts +66 -0
  226. package/providers/freshbooks.d.ts.map +1 -0
  227. package/providers/freshbooks.js +76 -0
  228. package/providers/frontegg.d.ts +95 -0
  229. package/providers/frontegg.d.ts.map +1 -0
  230. package/providers/frontegg.js +88 -0
  231. package/providers/fusionauth.d.ts +279 -0
  232. package/providers/fusionauth.d.ts.map +1 -0
  233. package/providers/fusionauth.js +292 -0
  234. package/providers/github.d.ts +127 -0
  235. package/providers/github.d.ts.map +1 -0
  236. package/providers/github.js +115 -0
  237. package/providers/gitlab.d.ts +115 -0
  238. package/providers/gitlab.d.ts.map +1 -0
  239. package/providers/gitlab.js +75 -0
  240. package/providers/google.d.ts +138 -0
  241. package/providers/google.d.ts.map +1 -0
  242. package/providers/google.js +119 -0
  243. package/providers/hubspot.d.ts +76 -0
  244. package/providers/hubspot.d.ts.map +1 -0
  245. package/providers/hubspot.js +93 -0
  246. package/providers/huggingface.d.ts +216 -0
  247. package/providers/huggingface.d.ts.map +1 -0
  248. package/providers/huggingface.js +101 -0
  249. package/providers/identity-server4.d.ts +69 -0
  250. package/providers/identity-server4.d.ts.map +1 -0
  251. package/providers/identity-server4.js +64 -0
  252. package/providers/index.d.ts +61 -0
  253. package/providers/index.d.ts.map +1 -0
  254. package/providers/index.js +3 -0
  255. package/providers/instagram.d.ts +74 -0
  256. package/providers/instagram.d.ts.map +1 -0
  257. package/providers/instagram.js +87 -0
  258. package/providers/kakao.d.ts +148 -0
  259. package/providers/kakao.d.ts.map +1 -0
  260. package/providers/kakao.js +103 -0
  261. package/providers/keycloak.d.ts +100 -0
  262. package/providers/keycloak.d.ts.map +1 -0
  263. package/providers/keycloak.js +73 -0
  264. package/providers/kinde.d.ts +73 -0
  265. package/providers/kinde.d.ts.map +1 -0
  266. package/providers/kinde.js +51 -0
  267. package/providers/line.d.ts +83 -0
  268. package/providers/line.d.ts.map +1 -0
  269. package/providers/line.js +73 -0
  270. package/providers/linkedin.d.ts +77 -0
  271. package/providers/linkedin.d.ts.map +1 -0
  272. package/providers/linkedin.js +65 -0
  273. package/providers/logto.d.ts +98 -0
  274. package/providers/logto.d.ts.map +1 -0
  275. package/providers/logto.js +81 -0
  276. package/providers/loops.d.ts +40 -0
  277. package/providers/loops.d.ts.map +1 -0
  278. package/providers/loops.js +59 -0
  279. package/providers/mailchimp.d.ts +66 -0
  280. package/providers/mailchimp.d.ts.map +1 -0
  281. package/providers/mailchimp.js +76 -0
  282. package/providers/mailgun.d.ts +55 -0
  283. package/providers/mailgun.d.ts.map +1 -0
  284. package/providers/mailgun.js +74 -0
  285. package/providers/mailru.d.ts +63 -0
  286. package/providers/mailru.d.ts.map +1 -0
  287. package/providers/mailru.js +61 -0
  288. package/providers/mastodon.d.ts +90 -0
  289. package/providers/mastodon.d.ts.map +1 -0
  290. package/providers/mastodon.js +75 -0
  291. package/providers/mattermost.d.ts +132 -0
  292. package/providers/mattermost.d.ts.map +1 -0
  293. package/providers/mattermost.js +83 -0
  294. package/providers/medium.d.ts +68 -0
  295. package/providers/medium.d.ts.map +1 -0
  296. package/providers/medium.js +84 -0
  297. package/providers/microsoft-entra-id.d.ts +428 -0
  298. package/providers/microsoft-entra-id.d.ts.map +1 -0
  299. package/providers/microsoft-entra-id.js +156 -0
  300. package/providers/naver.d.ts +80 -0
  301. package/providers/naver.d.ts.map +1 -0
  302. package/providers/naver.js +79 -0
  303. package/providers/netlify.d.ts +66 -0
  304. package/providers/netlify.d.ts.map +1 -0
  305. package/providers/netlify.js +85 -0
  306. package/providers/netsuite.d.ts +189 -0
  307. package/providers/netsuite.d.ts.map +1 -0
  308. package/providers/netsuite.js +170 -0
  309. package/providers/nextcloud.d.ts +150 -0
  310. package/providers/nextcloud.d.ts.map +1 -0
  311. package/providers/nextcloud.js +99 -0
  312. package/providers/nodemailer.d.ts +27 -0
  313. package/providers/nodemailer.d.ts.map +1 -0
  314. package/providers/nodemailer.js +34 -0
  315. package/providers/notion.d.ts +99 -0
  316. package/providers/notion.d.ts.map +1 -0
  317. package/providers/notion.js +110 -0
  318. package/providers/oauth.d.ts +188 -0
  319. package/providers/oauth.d.ts.map +1 -0
  320. package/providers/oauth.js +1 -0
  321. package/providers/okta.d.ts +99 -0
  322. package/providers/okta.d.ts.map +1 -0
  323. package/providers/okta.js +63 -0
  324. package/providers/onelogin.d.ts +65 -0
  325. package/providers/onelogin.d.ts.map +1 -0
  326. package/providers/onelogin.js +61 -0
  327. package/providers/ory-hydra.d.ts +79 -0
  328. package/providers/ory-hydra.d.ts.map +1 -0
  329. package/providers/ory-hydra.js +67 -0
  330. package/providers/osso.d.ts +79 -0
  331. package/providers/osso.d.ts.map +1 -0
  332. package/providers/osso.js +77 -0
  333. package/providers/osu.d.ts +116 -0
  334. package/providers/osu.d.ts.map +1 -0
  335. package/providers/osu.js +75 -0
  336. package/providers/passage.d.ts +88 -0
  337. package/providers/passage.d.ts.map +1 -0
  338. package/providers/passage.js +75 -0
  339. package/providers/passkey.d.ts +65 -0
  340. package/providers/passkey.d.ts.map +1 -0
  341. package/providers/passkey.js +87 -0
  342. package/providers/patreon.d.ts +73 -0
  343. package/providers/patreon.d.ts.map +1 -0
  344. package/providers/patreon.js +77 -0
  345. package/providers/ping-id.d.ts +57 -0
  346. package/providers/ping-id.d.ts.map +1 -0
  347. package/providers/ping-id.js +40 -0
  348. package/providers/pinterest.d.ts +79 -0
  349. package/providers/pinterest.d.ts.map +1 -0
  350. package/providers/pinterest.js +85 -0
  351. package/providers/pipedrive.d.ts +99 -0
  352. package/providers/pipedrive.d.ts.map +1 -0
  353. package/providers/pipedrive.js +71 -0
  354. package/providers/postmark.d.ts +4 -0
  355. package/providers/postmark.d.ts.map +1 -0
  356. package/providers/postmark.js +36 -0
  357. package/providers/provider-types.d.ts +3 -0
  358. package/providers/provider-types.d.ts.map +1 -0
  359. package/providers/provider-types.js +1 -0
  360. package/providers/reddit.d.ts +88 -0
  361. package/providers/reddit.d.ts.map +1 -0
  362. package/providers/reddit.js +90 -0
  363. package/providers/resend.d.ts +4 -0
  364. package/providers/resend.d.ts.map +1 -0
  365. package/providers/resend.js +32 -0
  366. package/providers/roblox.d.ts +67 -0
  367. package/providers/roblox.d.ts.map +1 -0
  368. package/providers/roblox.js +53 -0
  369. package/providers/salesforce.d.ts +59 -0
  370. package/providers/salesforce.d.ts.map +1 -0
  371. package/providers/salesforce.js +52 -0
  372. package/providers/sendgrid.d.ts +4 -0
  373. package/providers/sendgrid.d.ts.map +1 -0
  374. package/providers/sendgrid.js +35 -0
  375. package/providers/simplelogin.d.ts +87 -0
  376. package/providers/simplelogin.d.ts.map +1 -0
  377. package/providers/simplelogin.js +83 -0
  378. package/providers/slack.d.ts +102 -0
  379. package/providers/slack.d.ts.map +1 -0
  380. package/providers/slack.js +69 -0
  381. package/providers/spotify.d.ts +75 -0
  382. package/providers/spotify.d.ts.map +1 -0
  383. package/providers/spotify.js +73 -0
  384. package/providers/strava.d.ts +68 -0
  385. package/providers/strava.d.ts.map +1 -0
  386. package/providers/strava.js +80 -0
  387. package/providers/threads.d.ts +108 -0
  388. package/providers/threads.d.ts.map +1 -0
  389. package/providers/threads.js +89 -0
  390. package/providers/tiktok.d.ts +248 -0
  391. package/providers/tiktok.d.ts.map +1 -0
  392. package/providers/tiktok.js +195 -0
  393. package/providers/todoist.d.ts +76 -0
  394. package/providers/todoist.d.ts.map +1 -0
  395. package/providers/todoist.js +97 -0
  396. package/providers/trakt.d.ts +93 -0
  397. package/providers/trakt.d.ts.map +1 -0
  398. package/providers/trakt.js +91 -0
  399. package/providers/twitch.d.ts +71 -0
  400. package/providers/twitch.d.ts.map +1 -0
  401. package/providers/twitch.js +96 -0
  402. package/providers/twitter.d.ts +183 -0
  403. package/providers/twitter.d.ts.map +1 -0
  404. package/providers/twitter.js +100 -0
  405. package/providers/united-effects.d.ts +80 -0
  406. package/providers/united-effects.d.ts.map +1 -0
  407. package/providers/united-effects.js +72 -0
  408. package/providers/vipps.d.ts +71 -0
  409. package/providers/vipps.d.ts.map +1 -0
  410. package/providers/vipps.js +33 -0
  411. package/providers/vk.d.ts +334 -0
  412. package/providers/vk.d.ts.map +1 -0
  413. package/providers/vk.js +103 -0
  414. package/providers/webauthn.d.ts +148 -0
  415. package/providers/webauthn.d.ts.map +1 -0
  416. package/providers/webauthn.js +128 -0
  417. package/providers/webex.d.ts +78 -0
  418. package/providers/webex.d.ts.map +1 -0
  419. package/providers/webex.js +73 -0
  420. package/providers/wechat.d.ts +78 -0
  421. package/providers/wechat.d.ts.map +1 -0
  422. package/providers/wechat.js +105 -0
  423. package/providers/wikimedia.d.ts +99 -0
  424. package/providers/wikimedia.d.ts.map +1 -0
  425. package/providers/wikimedia.js +90 -0
  426. package/providers/wordpress.d.ts +65 -0
  427. package/providers/wordpress.d.ts.map +1 -0
  428. package/providers/wordpress.js +71 -0
  429. package/providers/workos.d.ts +154 -0
  430. package/providers/workos.d.ts.map +1 -0
  431. package/providers/workos.js +143 -0
  432. package/providers/yandex.d.ts +131 -0
  433. package/providers/yandex.d.ts.map +1 -0
  434. package/providers/yandex.js +80 -0
  435. package/providers/zitadel.d.ts +117 -0
  436. package/providers/zitadel.d.ts.map +1 -0
  437. package/providers/zitadel.js +95 -0
  438. package/providers/zoho.d.ts +63 -0
  439. package/providers/zoho.d.ts.map +1 -0
  440. package/providers/zoho.js +79 -0
  441. package/providers/zoom.d.ts +93 -0
  442. package/providers/zoom.d.ts.map +1 -0
  443. package/providers/zoom.js +82 -0
  444. package/src/adapters/server-actions-helpers.ts +126 -0
  445. package/src/adapters.ts +603 -0
  446. package/src/errors.ts +551 -0
  447. package/src/index.ts +689 -0
  448. package/src/jwt.ts +283 -0
  449. package/src/lib/actions/callback/handle-login.ts +334 -0
  450. package/src/lib/actions/callback/index.ts +554 -0
  451. package/src/lib/actions/callback/oauth/callback.ts +347 -0
  452. package/src/lib/actions/callback/oauth/checks.ts +258 -0
  453. package/src/lib/actions/callback/oauth/csrf-token.ts +60 -0
  454. package/src/lib/actions/index.ts +5 -0
  455. package/src/lib/actions/session.ts +167 -0
  456. package/src/lib/actions/signin/authorization-url.ts +123 -0
  457. package/src/lib/actions/signin/index.ts +37 -0
  458. package/src/lib/actions/signin/send-token.ts +124 -0
  459. package/src/lib/actions/signout.ts +38 -0
  460. package/src/lib/actions/webauthn-options.ts +100 -0
  461. package/src/lib/index.ts +97 -0
  462. package/src/lib/init.ts +236 -0
  463. package/src/lib/pages/error.tsx +106 -0
  464. package/src/lib/pages/index.ts +181 -0
  465. package/src/lib/pages/signin.tsx +255 -0
  466. package/src/lib/pages/signout.tsx +49 -0
  467. package/src/lib/pages/styles.css +377 -0
  468. package/src/lib/pages/styles.ts +381 -0
  469. package/src/lib/pages/verify-request.tsx +36 -0
  470. package/src/lib/symbols.ts +60 -0
  471. package/src/lib/utils/actions.ts +17 -0
  472. package/src/lib/utils/assert.ts +259 -0
  473. package/src/lib/utils/callback-url.ts +42 -0
  474. package/src/lib/utils/cookie.ts +248 -0
  475. package/src/lib/utils/date.ts +8 -0
  476. package/src/lib/utils/email.ts +65 -0
  477. package/src/lib/utils/env.ts +113 -0
  478. package/src/lib/utils/logger.ts +75 -0
  479. package/src/lib/utils/merge.ts +30 -0
  480. package/src/lib/utils/providers.ts +203 -0
  481. package/src/lib/utils/session.ts +41 -0
  482. package/src/lib/utils/web.ts +151 -0
  483. package/src/lib/utils/webauthn-client.js +229 -0
  484. package/src/lib/utils/webauthn-utils.ts +531 -0
  485. package/src/lib/vendored/cookie.ts +383 -0
  486. package/src/providers/42-school.ts +256 -0
  487. package/src/providers/apple.ts +206 -0
  488. package/src/providers/asgardeo.ts +118 -0
  489. package/src/providers/atlassian.ts +120 -0
  490. package/src/providers/auth0.ts +127 -0
  491. package/src/providers/authentik.ts +100 -0
  492. package/src/providers/azure-ad-b2c.ts +124 -0
  493. package/src/providers/azure-ad.ts +30 -0
  494. package/src/providers/azure-devops.ts +184 -0
  495. package/src/providers/bankid-no.ts +161 -0
  496. package/src/providers/battlenet.ts +107 -0
  497. package/src/providers/beyondidentity.ts +102 -0
  498. package/src/providers/bitbucket.ts +122 -0
  499. package/src/providers/box.ts +87 -0
  500. package/src/providers/boxyhq-saml.ts +148 -0
  501. package/src/providers/bungie.ts +192 -0
  502. package/src/providers/click-up.ts +104 -0
  503. package/src/providers/cognito.ts +94 -0
  504. package/src/providers/coinbase.ts +93 -0
  505. package/src/providers/concept2.ts +108 -0
  506. package/src/providers/credentials.ts +157 -0
  507. package/src/providers/descope.ts +105 -0
  508. package/src/providers/discord.ts +176 -0
  509. package/src/providers/dribbble.ts +122 -0
  510. package/src/providers/dropbox.ts +102 -0
  511. package/src/providers/duende-identity-server6.ts +101 -0
  512. package/src/providers/email.ts +60 -0
  513. package/src/providers/eventbrite.ts +105 -0
  514. package/src/providers/eveonline.ts +117 -0
  515. package/src/providers/facebook.ts +119 -0
  516. package/src/providers/faceit.ts +90 -0
  517. package/src/providers/figma.ts +105 -0
  518. package/src/providers/forwardemail.ts +37 -0
  519. package/src/providers/foursquare.ts +105 -0
  520. package/src/providers/freshbooks.ts +90 -0
  521. package/src/providers/frontegg.ts +111 -0
  522. package/src/providers/fusionauth.ts +336 -0
  523. package/src/providers/github.ts +187 -0
  524. package/src/providers/gitlab.ts +140 -0
  525. package/src/providers/google.ts +152 -0
  526. package/src/providers/hubspot.ts +117 -0
  527. package/src/providers/huggingface.ts +234 -0
  528. package/src/providers/identity-server4.ts +78 -0
  529. package/src/providers/index.ts +115 -0
  530. package/src/providers/instagram.ts +103 -0
  531. package/src/providers/kakao.ts +184 -0
  532. package/src/providers/keycloak.ts +111 -0
  533. package/src/providers/kinde.ts +85 -0
  534. package/src/providers/line.ts +99 -0
  535. package/src/providers/linkedin.ts +91 -0
  536. package/src/providers/logto.ts +122 -0
  537. package/src/providers/loops.ts +79 -0
  538. package/src/providers/mailchimp.ts +90 -0
  539. package/src/providers/mailgun.ts +98 -0
  540. package/src/providers/mailru.ts +75 -0
  541. package/src/providers/mastodon.ts +112 -0
  542. package/src/providers/mattermost.ts +154 -0
  543. package/src/providers/medium.ts +89 -0
  544. package/src/providers/microsoft-entra-id.ts +497 -0
  545. package/src/providers/naver.ts +102 -0
  546. package/src/providers/netlify.ts +90 -0
  547. package/src/providers/netsuite.ts +225 -0
  548. package/src/providers/nextcloud.ts +207 -0
  549. package/src/providers/nodemailer.ts +84 -0
  550. package/src/providers/notion.ts +166 -0
  551. package/src/providers/oauth.ts +310 -0
  552. package/src/providers/okta.ts +111 -0
  553. package/src/providers/onelogin.ts +75 -0
  554. package/src/providers/ory-hydra.ts +93 -0
  555. package/src/providers/osso.ts +91 -0
  556. package/src/providers/osu.ts +138 -0
  557. package/src/providers/passage.ts +103 -0
  558. package/src/providers/passkey.ts +94 -0
  559. package/src/providers/patreon.ts +98 -0
  560. package/src/providers/ping-id.ts +68 -0
  561. package/src/providers/pinterest.ts +106 -0
  562. package/src/providers/pipedrive.ts +120 -0
  563. package/src/providers/postmark.ts +38 -0
  564. package/src/providers/provider-types.ts +107 -0
  565. package/src/providers/reddit.ts +104 -0
  566. package/src/providers/resend.ts +35 -0
  567. package/src/providers/roblox.ts +94 -0
  568. package/src/providers/salesforce.ts +73 -0
  569. package/src/providers/sendgrid.ts +36 -0
  570. package/src/providers/simplelogin.ts +107 -0
  571. package/src/providers/slack.ts +115 -0
  572. package/src/providers/spotify.ts +99 -0
  573. package/src/providers/strava.ts +101 -0
  574. package/src/providers/threads.ts +135 -0
  575. package/src/providers/tiktok.ts +319 -0
  576. package/src/providers/todoist.ts +122 -0
  577. package/src/providers/trakt.ts +120 -0
  578. package/src/providers/twitch.ts +121 -0
  579. package/src/providers/twitter.ts +207 -0
  580. package/src/providers/united-effects.ts +89 -0
  581. package/src/providers/vipps.ts +86 -0
  582. package/src/providers/vk.ts +401 -0
  583. package/src/providers/webauthn.ts +296 -0
  584. package/src/providers/webex.ts +102 -0
  585. package/src/providers/wechat.ts +141 -0
  586. package/src/providers/wikimedia.ts +258 -0
  587. package/src/providers/wordpress.ts +86 -0
  588. package/src/providers/workos.ts +180 -0
  589. package/src/providers/yandex.ts +159 -0
  590. package/src/providers/zitadel.ts +128 -0
  591. package/src/providers/zoho.ts +84 -0
  592. package/src/providers/zoom.ts +119 -0
  593. package/src/types.ts +430 -0
  594. package/src/warnings.ts +21 -0
  595. package/types.d.ts +309 -0
  596. package/types.d.ts.map +1 -0
  597. package/types.js +53 -0
  598. package/warnings.d.ts +17 -0
  599. package/warnings.d.ts.map +1 -0
  600. package/warnings.js +1 -0
@@ -0,0 +1,128 @@
1
+ import { generateAuthenticationOptions, generateRegistrationOptions, verifyAuthenticationResponse, verifyRegistrationResponse, } from "@simplewebauthn/server";
2
+ import { MissingAdapter } from "../errors.js";
3
+ export const DEFAULT_WEBAUTHN_TIMEOUT = 5 * 60 * 1000; // 5 minutes
4
+ export const DEFAULT_SIMPLEWEBAUTHN_BROWSER_VERSION = "v9.0.1";
5
+ /**
6
+ * Add WebAuthn login to your page.
7
+ *
8
+ * ### Setup
9
+ *
10
+ * #### Configuration
11
+ * ```ts
12
+ * import { Auth } from "@auth/core"
13
+ * import WebAuthn from "@auth/core/providers/webauthn"
14
+ *
15
+ * const request = new Request(origin)
16
+ * const response = await Auth(request, {
17
+ * providers: [WebAuthn],
18
+ * })
19
+ * ```
20
+ * ### Resources
21
+ *
22
+ * - [SimpleWebAuthn - Server side](https://simplewebauthn.dev/docs/packages/server)
23
+ * - [SimpleWebAuthn - Client side](https://simplewebauthn.dev/docs/packages/client)
24
+ * - [Source code](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/webauthn.ts)
25
+ *
26
+ * :::tip
27
+ *
28
+ * The WebAuthn provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/webauthn.ts).
29
+ * To override the defaults for your use case, check out [customizing the built-in WebAuthn provider](https://authjs.dev/guides/configuring-oauth-providers).
30
+ *
31
+ * :::
32
+ *
33
+ * :::info **Disclaimer**
34
+ *
35
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
36
+ *
37
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
38
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
39
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
40
+ *
41
+ * :::
42
+ */
43
+ export default function WebAuthn(config) {
44
+ return {
45
+ id: "webauthn",
46
+ name: "WebAuthn",
47
+ enableConditionalUI: true,
48
+ simpleWebAuthn: {
49
+ generateAuthenticationOptions,
50
+ generateRegistrationOptions,
51
+ verifyAuthenticationResponse,
52
+ verifyRegistrationResponse,
53
+ },
54
+ authenticationOptions: { timeout: DEFAULT_WEBAUTHN_TIMEOUT },
55
+ registrationOptions: { timeout: DEFAULT_WEBAUTHN_TIMEOUT },
56
+ formFields: {
57
+ email: {
58
+ label: "Email",
59
+ required: true,
60
+ autocomplete: "username webauthn",
61
+ },
62
+ },
63
+ simpleWebAuthnBrowserVersion: DEFAULT_SIMPLEWEBAUTHN_BROWSER_VERSION,
64
+ getUserInfo,
65
+ getRelayingParty,
66
+ ...config,
67
+ type: "webauthn",
68
+ };
69
+ }
70
+ /**
71
+ * Retrieves user information for the WebAuthn provider.
72
+ *
73
+ * It looks for the "email" query parameter and uses it to look up the user in the database.
74
+ * It also accepts a "name" query parameter to set the user's display name.
75
+ *
76
+ * @param options - The internaloptions object.
77
+ * @param request - The request object containing the query parameters.
78
+ * @returns The existing or new user info.
79
+ * @throws {MissingAdapter} If the adapter is missing.
80
+ * @throws {EmailSignInError} If the email address is not provided.
81
+ */
82
+ const getUserInfo = async (options, request) => {
83
+ const { adapter } = options;
84
+ if (!adapter)
85
+ throw new MissingAdapter("WebAuthn provider requires a database adapter to be configured");
86
+ // Get email address from the query.
87
+ const { query, body, method } = request;
88
+ const email = (method === "POST" ? body?.email : query?.email);
89
+ // If email is not provided, return null
90
+ if (!email || typeof email !== "string")
91
+ return null;
92
+ const existingUser = await adapter.getUserByEmail(email);
93
+ if (existingUser) {
94
+ return { user: existingUser, exists: true };
95
+ }
96
+ // If the user does not exist, return a new user info.
97
+ return { user: { email }, exists: false };
98
+ };
99
+ /**
100
+ * Retrieves the relaying party information based on the provided options.
101
+ * If the relaying party information is not provided, it falls back to using the URL information.
102
+ */
103
+ function getRelayingParty(
104
+ /** The options object containing the provider and URL information. */
105
+ options) {
106
+ const { provider, url } = options;
107
+ const { relayingParty } = provider;
108
+ const id = relayingParty
109
+ ? (Array.isArray(relayingParty.id)
110
+ ? relayingParty.id[0]
111
+ : relayingParty.id)
112
+ : undefined;
113
+ const name = relayingParty
114
+ ? (Array.isArray(relayingParty.name)
115
+ ? relayingParty.name[0]
116
+ : relayingParty.name)
117
+ : undefined;
118
+ const origin = relayingParty
119
+ ? (Array.isArray(relayingParty.origin)
120
+ ? relayingParty.origin[0]
121
+ : relayingParty.origin)
122
+ : undefined;
123
+ return {
124
+ id: id ?? url.hostname,
125
+ name: name ?? url.host,
126
+ origin: origin ?? url.origin,
127
+ };
128
+ }
@@ -0,0 +1,78 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>Webex</b> integration.</span>
4
+ * <a href="https://webex.com">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/webex.svg" height="48" width="48"/>
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/webex
10
+ */
11
+ import type { OAuthConfig, OAuthUserConfig } from "./index.js";
12
+ /**
13
+ * The returned user profile from Webex when using the profile callback.
14
+ *
15
+ * Please refer to {@link https://developer.webex.com/docs/api/v1/people/get-my-own-details People - Get My Own Details}
16
+ * on Webex Developer portal for additional fields. Returned fields may vary depending on the user's role, the OAuth
17
+ * integration's scope, and the organization the OAuth integration belongs to.
18
+ */
19
+ export interface WebexProfile extends Record<string, any> {
20
+ id: string;
21
+ emails: string[];
22
+ displayName?: string;
23
+ avatar?: string;
24
+ }
25
+ /**
26
+ * Add Webex login to your page.
27
+ *
28
+ * ### Setup
29
+ *
30
+ * #### Callback URL
31
+ * ```
32
+ * https://example.com/api/auth/callback/webex
33
+ * ```
34
+ *
35
+ * #### Configuration
36
+ *```ts
37
+ * import { Auth } from "@auth/core"
38
+ * import Webex from "@auth/core/providers/webex"
39
+ *
40
+ * const request = new Request(origin)
41
+ * const response = await Auth(request, {
42
+ * providers: [
43
+ * Webex({ clientId: WEBEX_CLIENT_ID, clientSecret: WEBEX_CLIENT_SECRET }),
44
+ * ],
45
+ * })
46
+ * ```
47
+ *
48
+ * ### Resources
49
+ *
50
+ * - [Webex OAuth 2.0 Integration Guide](https://developer.webex.com/docs/integrations)
51
+ * - [Login with Webex](https://developer.webex.com/docs/login-with-webex)
52
+ *
53
+ * ### Notes
54
+ *
55
+ * By default, Auth.js assumes that the Webex provider is
56
+ * based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
57
+ *
58
+ * :::tip
59
+ *
60
+ * The Webex provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/webex.ts).
61
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
62
+ *
63
+ * :::
64
+ *
65
+ * :::info **Disclaimer**
66
+ *
67
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
68
+ *
69
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
70
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
71
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
72
+ *
73
+ * :::
74
+ */
75
+ export default function Webex<P extends WebexProfile>(config: OAuthUserConfig<P> & {
76
+ apiBaseUrl?: string;
77
+ }): OAuthConfig<P>;
78
+ //# sourceMappingURL=webex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webex.d.ts","sourceRoot":"","sources":["../src/providers/webex.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE9D;;;;;;GAMG;AACH,MAAM,WAAW,YAAa,SAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IACvD,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,CAAC,SAAS,YAAY,EAClD,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GACnD,WAAW,CAAC,CAAC,CAAC,CAuBhB"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Add Webex login to your page.
3
+ *
4
+ * ### Setup
5
+ *
6
+ * #### Callback URL
7
+ * ```
8
+ * https://example.com/api/auth/callback/webex
9
+ * ```
10
+ *
11
+ * #### Configuration
12
+ *```ts
13
+ * import { Auth } from "@auth/core"
14
+ * import Webex from "@auth/core/providers/webex"
15
+ *
16
+ * const request = new Request(origin)
17
+ * const response = await Auth(request, {
18
+ * providers: [
19
+ * Webex({ clientId: WEBEX_CLIENT_ID, clientSecret: WEBEX_CLIENT_SECRET }),
20
+ * ],
21
+ * })
22
+ * ```
23
+ *
24
+ * ### Resources
25
+ *
26
+ * - [Webex OAuth 2.0 Integration Guide](https://developer.webex.com/docs/integrations)
27
+ * - [Login with Webex](https://developer.webex.com/docs/login-with-webex)
28
+ *
29
+ * ### Notes
30
+ *
31
+ * By default, Auth.js assumes that the Webex provider is
32
+ * based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
33
+ *
34
+ * :::tip
35
+ *
36
+ * The Webex provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/webex.ts).
37
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
38
+ *
39
+ * :::
40
+ *
41
+ * :::info **Disclaimer**
42
+ *
43
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
44
+ *
45
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
46
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
47
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
48
+ *
49
+ * :::
50
+ */
51
+ export default function Webex(config) {
52
+ const apiBaseUrl = config?.apiBaseUrl ?? "https://webexapis.com/v1";
53
+ return {
54
+ id: "webex",
55
+ name: "Webex",
56
+ type: "oauth",
57
+ authorization: {
58
+ url: `${apiBaseUrl}/authorize`,
59
+ params: { scope: "spark:kms spark:people_read" },
60
+ },
61
+ token: `${apiBaseUrl}/access_token`,
62
+ userinfo: `${apiBaseUrl}/people/me`,
63
+ profile(profile) {
64
+ return {
65
+ id: profile.id,
66
+ email: profile.emails[0],
67
+ name: profile.displayName,
68
+ image: profile.avatar,
69
+ };
70
+ },
71
+ options: config,
72
+ };
73
+ }
@@ -0,0 +1,78 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#24292f", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>WeChat</b> integration.</span>
4
+ * <a href="https://www.wechat.com/">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/wechat.svg" height="48" width="48"/>
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/wechat
10
+ */
11
+ import type { OAuthConfig, OAuthUserConfig } from "./index.js";
12
+ /** @see [Get the authenticated user](https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Authorized_Interface_Calling_UnionID.html) */
13
+ export interface WeChatProfile {
14
+ openid: string;
15
+ nickname: string;
16
+ sex: number;
17
+ province: string;
18
+ city: string;
19
+ country: string;
20
+ headimgurl: string;
21
+ privilege: string[];
22
+ unionid: string;
23
+ [claim: string]: unknown;
24
+ }
25
+ /**
26
+ * Add WeChat login to your page and make requests to [WeChat APIs](https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Authorized_Interface_Calling_UnionID.html).
27
+ *
28
+ * ### Setup
29
+ *
30
+ * #### Callback URL
31
+ * ```
32
+ * https://example.com/api/auth/callback/wechat
33
+ * ```
34
+ *
35
+ * #### Configuration
36
+ * ```ts
37
+ * import { Auth } from "@auth/core"
38
+ * import WeChat from "@auth/core/providers/wechat"
39
+ *
40
+ * const request = new Request(origin)
41
+ * const response = await Auth(request, {
42
+ * providers: [WeChat({
43
+ * clientId: AUTH_WECHAT_APP_ID,
44
+ * clientSecret: AUTH_WECHAT_APP_SECRET,
45
+ * platformType: "OfficialAccount",
46
+ * })],
47
+ * })
48
+ * ```
49
+ *
50
+ * ### Resources
51
+ *
52
+ * - [WeChat Official Account](https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Overview.html)
53
+ * - [WeChat Official Account - Webpage Authorization](https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html)
54
+ * - [WeChat Official Account Test Account](https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login)
55
+ * - [WeChat WebsiteApp Login](https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html)
56
+ * - [使用微信测试账号对网页进行授权](https://cloud.tencent.com/developer/article/1703167)
57
+ *
58
+ * :::tip
59
+ *
60
+ * The WeChat provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/wechat.ts).
61
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/providers/custom-provider#override-default-options).
62
+ *
63
+ * :::
64
+ *
65
+ * :::info **Disclaimer**
66
+ *
67
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
68
+ *
69
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
70
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
71
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
72
+ *
73
+ * :::
74
+ */
75
+ export default function WeChat(options: OAuthUserConfig<WeChatProfile> & {
76
+ platformType?: "OfficialAccount" | "WebsiteApp";
77
+ }): OAuthConfig<WeChatProfile>;
78
+ //# sourceMappingURL=wechat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wechat.d.ts","sourceRoot":"","sources":["../src/providers/wechat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE9D,2JAA2J;AAC3J,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,OAAO,EAAE,MAAM,CAAA;IACf,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;CACzB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AAEH,MAAM,CAAC,OAAO,UAAU,MAAM,CAC5B,OAAO,EAAE,eAAe,CAAC,aAAa,CAAC,GAAG;IACxC,YAAY,CAAC,EAAE,iBAAiB,GAAG,YAAY,CAAA;CAChD,GACA,WAAW,CAAC,aAAa,CAAC,CA2D5B"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Add WeChat login to your page and make requests to [WeChat APIs](https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Authorized_Interface_Calling_UnionID.html).
3
+ *
4
+ * ### Setup
5
+ *
6
+ * #### Callback URL
7
+ * ```
8
+ * https://example.com/api/auth/callback/wechat
9
+ * ```
10
+ *
11
+ * #### Configuration
12
+ * ```ts
13
+ * import { Auth } from "@auth/core"
14
+ * import WeChat from "@auth/core/providers/wechat"
15
+ *
16
+ * const request = new Request(origin)
17
+ * const response = await Auth(request, {
18
+ * providers: [WeChat({
19
+ * clientId: AUTH_WECHAT_APP_ID,
20
+ * clientSecret: AUTH_WECHAT_APP_SECRET,
21
+ * platformType: "OfficialAccount",
22
+ * })],
23
+ * })
24
+ * ```
25
+ *
26
+ * ### Resources
27
+ *
28
+ * - [WeChat Official Account](https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Overview.html)
29
+ * - [WeChat Official Account - Webpage Authorization](https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html)
30
+ * - [WeChat Official Account Test Account](https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login)
31
+ * - [WeChat WebsiteApp Login](https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.html)
32
+ * - [使用微信测试账号对网页进行授权](https://cloud.tencent.com/developer/article/1703167)
33
+ *
34
+ * :::tip
35
+ *
36
+ * The WeChat provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/wechat.ts).
37
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/providers/custom-provider#override-default-options).
38
+ *
39
+ * :::
40
+ *
41
+ * :::info **Disclaimer**
42
+ *
43
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
44
+ *
45
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
46
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
47
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
48
+ *
49
+ * :::
50
+ */
51
+ export default function WeChat(options) {
52
+ const { clientId, clientSecret, platformType = "OfficialAccount" } = options;
53
+ return {
54
+ id: "wechat",
55
+ name: "WeChat",
56
+ type: "oauth",
57
+ style: { logo: "/wechat.svg", bg: "#fff", text: "#000" },
58
+ checks: ["state"],
59
+ authorization: {
60
+ url: platformType === "OfficialAccount"
61
+ ? "https://open.weixin.qq.com/connect/oauth2/authorize"
62
+ : "https://open.weixin.qq.com/connect/qrconnect",
63
+ params: {
64
+ appid: clientId,
65
+ scope: platformType === "OfficialAccount"
66
+ ? "snsapi_userinfo"
67
+ : "snsapi_login",
68
+ },
69
+ },
70
+ token: {
71
+ url: "https://api.weixin.qq.com/sns/oauth2/access_token",
72
+ params: { appid: clientId, secret: clientSecret },
73
+ async conform(response) {
74
+ const data = await response.json();
75
+ if (data.token_type === "bearer") {
76
+ console.warn("token_type is 'bearer'. Redundant workaround, please open an issue.");
77
+ return response;
78
+ }
79
+ return Response.json({ ...data, token_type: "bearer" }, response);
80
+ },
81
+ },
82
+ userinfo: {
83
+ url: "https://api.weixin.qq.com/sns/userinfo",
84
+ async request({ tokens, provider }) {
85
+ if (!provider.userinfo)
86
+ return;
87
+ const url = new URL(provider.userinfo.url);
88
+ url.searchParams.set("access_token", tokens.access_token);
89
+ url.searchParams.set("openid", String(tokens.openid));
90
+ url.searchParams.set("lang", "zh_CN");
91
+ const response = await fetch(url);
92
+ return response.json();
93
+ },
94
+ },
95
+ profile(profile) {
96
+ return {
97
+ id: profile.unionid,
98
+ name: profile.nickname,
99
+ email: null,
100
+ image: profile.headimgurl,
101
+ };
102
+ },
103
+ options,
104
+ };
105
+ }
@@ -0,0 +1,99 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b> Wikimedia</b> integration.</span>
4
+ * <a href="https://mediawiki.org/">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/wikimedia.svg" height="48" />
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/wikimedia
10
+ */
11
+ import type { OAuthConfig, OAuthUserConfig } from "./index.js";
12
+ export type WikimediaGroup = "*" | "user" | "autoconfirmed" | "extendedconfirmed" | "bot" | "sysop" | "bureaucrat" | "steward" | "accountcreator" | "import" | "transwiki" | "ipblock-exempt" | "oversight" | "rollbacker" | "propertycreator" | "wikidata-staff" | "flood" | "translationadmin" | "confirmed" | "flow-bot" | "checkuser";
13
+ export type WikimediaGrant = "basic" | "blockusers" | "checkuser" | "createaccount" | "delete" | "editinterface" | "editmycssjs" | "editmyoptions" | "editmywatchlist" | "editpage" | "editprotected" | "editsiteconfig" | "globalblock" | "highvolume" | "import" | "mergehistory" | "oath" | "oversight" | "patrol" | "privateinfo" | "protect" | "rollback" | "sendemail" | "shortenurls" | "uploadfile" | "viewdeleted" | "viewmywatchlist";
14
+ export type WikimediaRight = "abusefilter-log" | "apihighlimits" | "applychangetags" | "autoconfirmed" | "autopatrol" | "autoreview" | "bigdelete" | "block" | "blockemail" | "bot" | "browsearchive" | "changetags" | "checkuser" | "checkuser-log" | "createaccount" | "createpage" | "createpagemainns" | "createtalk" | "delete" | "delete-redirect" | "deletedhistory" | "deletedtext" | "deletelogentry" | "deleterevision" | "edit" | "edit-legal" | "editinterface" | "editmyoptions" | "editmyusercss" | "editmyuserjs" | "editmyuserjson" | "editmywatchlist" | "editprotected" | "editsemiprotected" | "editsitecss" | "editsitejs" | "editsitejson" | "editusercss" | "edituserjs" | "edituserjson" | "globalblock" | "import" | "importupload" | "ipblock-exempt" | "item-merge" | "item-redirect" | "item-term" | "markbotedits" | "massmessage" | "mergehistory" | "minoredit" | "move" | "move-subpages" | "movefile" | "movestable" | "mwoauth-authonlyprivate" | "nominornewtalk" | "noratelimit" | "nuke" | "patrol" | "patrolmarks" | "property-create" | "property-term" | "protect" | "purge" | "read" | "reupload" | "reupload-own" | "reupload-shared" | "rollback" | "sendemail" | "skipcaptcha" | "suppressionlog" | "tboverride" | "templateeditor" | "torunblocked" | "transcode-reset" | "translate" | "undelete" | "unwatchedpages" | "upload" | "upload_by_url" | "viewmywatchlist" | "viewsuppressed" | "writeapi";
15
+ export interface WikimediaProfile extends Record<string, any> {
16
+ sub: string;
17
+ username: string;
18
+ editcount: number;
19
+ confirmed_email: boolean;
20
+ blocked: boolean;
21
+ registered: string;
22
+ groups: WikimediaGroup[];
23
+ rights: WikimediaRight[];
24
+ grants: WikimediaGrant[];
25
+ realname: string;
26
+ email: string;
27
+ }
28
+ /**
29
+ * Add Wikimedia login to your page.
30
+ *
31
+ * ### Setup
32
+ *
33
+ * #### Callback URL
34
+ * ```
35
+ * https://example.com/api/auth/callback/wikimedia
36
+ * ```
37
+ *
38
+ * #### Configuration
39
+ *```ts
40
+ * import { Auth } from "@auth/core"
41
+ * import Wikimedia from "@auth/core/providers/wikimedia"
42
+ *
43
+ * const request = new Request(origin)
44
+ * const response = await Auth(request, {
45
+ * providers: [
46
+ * Wikimedia({
47
+ * clientId: WIKIMEDIA_CLIENT_ID,
48
+ * clientSecret: WIKIMEDIA_CLIENT_SECRET,
49
+ * }),
50
+ * ],
51
+ * })
52
+ * ```
53
+ *
54
+ * ### Resources
55
+ *
56
+ * - [Wikimedia OAuth documentation](https://www.mediawiki.org/wiki/Extension:OAuth)
57
+ *
58
+ * ## Configuration steps
59
+ * - Go to and accept the Consumer Registration doc: https://meta.wikimedia.org/wiki/Special:OAuthConsumerRegistration
60
+ * - Request a new OAuth 2.0 consumer to get the `clientId` and `clientSecret`: https://meta.wikimedia.org/wiki/Special:OAuthConsumerRegistration/propose/oauth2
61
+ * - Add the following redirect URL into the console: `http://<your-next-app-url>/api/auth/callback/wikimedia`
62
+ * - Do not check the box next to This consumer is only for __your username__
63
+ * - Unless you explicitly need a larger scope, feel free to select the radio button labelled User identity verification only - no ability to read pages or act on the users behalf.
64
+ *
65
+ * After registration, you can initially test your application only with your own Wikimedia account.
66
+ * You may have to wait several days for the application to be approved for it to be used by everyone.
67
+ *
68
+ * ### Notes
69
+ * This provider also supports all Wikimedia projects:
70
+ * - Wikipedia
71
+ * - Wikidata
72
+ * - Wikibooks
73
+ * - Wiktionary
74
+ * - etc..
75
+ *
76
+ * Please be aware that Wikimedia accounts do not have to have an associated email address. So you may want to add check if the user has an email address before allowing them to login.
77
+ *
78
+ * By default, Auth.js assumes that the Wikimedia provider is
79
+ * based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
80
+ *
81
+ * :::tip
82
+ *
83
+ * The Wikimedia provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/wikimedia.ts).
84
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
85
+ *
86
+ * :::
87
+ *
88
+ * :::info **Disclaimer**
89
+ *
90
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
91
+ *
92
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
93
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
94
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
95
+ *
96
+ * :::
97
+ */
98
+ export default function Wikimedia<P extends WikimediaProfile>(options: OAuthUserConfig<P>): OAuthConfig<P>;
99
+ //# sourceMappingURL=wikimedia.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wikimedia.d.ts","sourceRoot":"","sources":["../src/providers/wikimedia.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE9D,MAAM,MAAM,cAAc,GACtB,GAAG,GACH,MAAM,GACN,eAAe,GACf,mBAAmB,GACnB,KAAK,GACL,OAAO,GACP,YAAY,GACZ,SAAS,GACT,gBAAgB,GAChB,QAAQ,GACR,WAAW,GACX,gBAAgB,GAChB,WAAW,GACX,YAAY,GACZ,iBAAiB,GACjB,gBAAgB,GAChB,OAAO,GACP,kBAAkB,GAClB,WAAW,GACX,UAAU,GACV,WAAW,CAAA;AAEf,MAAM,MAAM,cAAc,GACtB,OAAO,GACP,YAAY,GACZ,WAAW,GACX,eAAe,GACf,QAAQ,GACR,eAAe,GACf,aAAa,GACb,eAAe,GACf,iBAAiB,GACjB,UAAU,GACV,eAAe,GACf,gBAAgB,GAChB,aAAa,GACb,YAAY,GACZ,QAAQ,GACR,cAAc,GACd,MAAM,GACN,WAAW,GACX,QAAQ,GACR,aAAa,GACb,SAAS,GACT,UAAU,GACV,WAAW,GACX,aAAa,GACb,YAAY,GACZ,aAAa,GACb,iBAAiB,CAAA;AAErB,MAAM,MAAM,cAAc,GACtB,iBAAiB,GACjB,eAAe,GACf,iBAAiB,GACjB,eAAe,GACf,YAAY,GACZ,YAAY,GACZ,WAAW,GACX,OAAO,GACP,YAAY,GACZ,KAAK,GACL,eAAe,GACf,YAAY,GACZ,WAAW,GACX,eAAe,GACf,eAAe,GACf,YAAY,GACZ,kBAAkB,GAClB,YAAY,GACZ,QAAQ,GACR,iBAAiB,GACjB,gBAAgB,GAChB,aAAa,GACb,gBAAgB,GAChB,gBAAgB,GAChB,MAAM,GACN,YAAY,GACZ,eAAe,GACf,eAAe,GACf,eAAe,GACf,cAAc,GACd,gBAAgB,GAChB,iBAAiB,GACjB,eAAe,GACf,mBAAmB,GACnB,aAAa,GACb,YAAY,GACZ,cAAc,GACd,aAAa,GACb,YAAY,GACZ,cAAc,GACd,aAAa,GACb,QAAQ,GACR,cAAc,GACd,gBAAgB,GAChB,YAAY,GACZ,eAAe,GACf,WAAW,GACX,cAAc,GACd,aAAa,GACb,cAAc,GACd,WAAW,GACX,MAAM,GACN,eAAe,GACf,UAAU,GACV,YAAY,GACZ,yBAAyB,GACzB,gBAAgB,GAChB,aAAa,GACb,MAAM,GACN,QAAQ,GACR,aAAa,GACb,iBAAiB,GACjB,eAAe,GACf,SAAS,GACT,OAAO,GACP,MAAM,GACN,UAAU,GACV,cAAc,GACd,iBAAiB,GACjB,UAAU,GACV,WAAW,GACX,aAAa,GACb,gBAAgB,GAChB,YAAY,GACZ,gBAAgB,GAChB,cAAc,GACd,iBAAiB,GACjB,WAAW,GACX,UAAU,GACV,gBAAgB,GAChB,QAAQ,GACR,eAAe,GACf,iBAAiB,GACjB,gBAAgB,GAChB,UAAU,CAAA;AAEd,MAAM,WAAW,gBAAiB,SAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC3D,GAAG,EAAE,MAAM,CAAA;IACX,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,OAAO,CAAA;IACxB,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,MAAM,EAAE,cAAc,EAAE,CAAA;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;CACd;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqEG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,CAAC,SAAS,gBAAgB,EAC1D,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,GAC1B,WAAW,CAAC,CAAC,CAAC,CAoBhB"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Add Wikimedia login to your page.
3
+ *
4
+ * ### Setup
5
+ *
6
+ * #### Callback URL
7
+ * ```
8
+ * https://example.com/api/auth/callback/wikimedia
9
+ * ```
10
+ *
11
+ * #### Configuration
12
+ *```ts
13
+ * import { Auth } from "@auth/core"
14
+ * import Wikimedia from "@auth/core/providers/wikimedia"
15
+ *
16
+ * const request = new Request(origin)
17
+ * const response = await Auth(request, {
18
+ * providers: [
19
+ * Wikimedia({
20
+ * clientId: WIKIMEDIA_CLIENT_ID,
21
+ * clientSecret: WIKIMEDIA_CLIENT_SECRET,
22
+ * }),
23
+ * ],
24
+ * })
25
+ * ```
26
+ *
27
+ * ### Resources
28
+ *
29
+ * - [Wikimedia OAuth documentation](https://www.mediawiki.org/wiki/Extension:OAuth)
30
+ *
31
+ * ## Configuration steps
32
+ * - Go to and accept the Consumer Registration doc: https://meta.wikimedia.org/wiki/Special:OAuthConsumerRegistration
33
+ * - Request a new OAuth 2.0 consumer to get the `clientId` and `clientSecret`: https://meta.wikimedia.org/wiki/Special:OAuthConsumerRegistration/propose/oauth2
34
+ * - Add the following redirect URL into the console: `http://<your-next-app-url>/api/auth/callback/wikimedia`
35
+ * - Do not check the box next to This consumer is only for __your username__
36
+ * - Unless you explicitly need a larger scope, feel free to select the radio button labelled User identity verification only - no ability to read pages or act on the users behalf.
37
+ *
38
+ * After registration, you can initially test your application only with your own Wikimedia account.
39
+ * You may have to wait several days for the application to be approved for it to be used by everyone.
40
+ *
41
+ * ### Notes
42
+ * This provider also supports all Wikimedia projects:
43
+ * - Wikipedia
44
+ * - Wikidata
45
+ * - Wikibooks
46
+ * - Wiktionary
47
+ * - etc..
48
+ *
49
+ * Please be aware that Wikimedia accounts do not have to have an associated email address. So you may want to add check if the user has an email address before allowing them to login.
50
+ *
51
+ * By default, Auth.js assumes that the Wikimedia provider is
52
+ * based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
53
+ *
54
+ * :::tip
55
+ *
56
+ * The Wikimedia provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/wikimedia.ts).
57
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
58
+ *
59
+ * :::
60
+ *
61
+ * :::info **Disclaimer**
62
+ *
63
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
64
+ *
65
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
66
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
67
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
68
+ *
69
+ * :::
70
+ */
71
+ export default function Wikimedia(options) {
72
+ return {
73
+ id: "wikimedia",
74
+ name: "Wikimedia",
75
+ type: "oauth",
76
+ token: "https://meta.wikimedia.org/w/rest.php/oauth2/access_token",
77
+ userinfo: "https://meta.wikimedia.org/w/rest.php/oauth2/resource/profile",
78
+ authorization: "https://meta.wikimedia.org/w/rest.php/oauth2/authorize?scope=",
79
+ profile(profile) {
80
+ return {
81
+ id: profile.sub,
82
+ name: profile.username,
83
+ email: profile.email,
84
+ image: null,
85
+ };
86
+ },
87
+ style: { bg: "#000", text: "#fff" },
88
+ options,
89
+ };
90
+ }