@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,138 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>osu!</b> integration.</span>
4
+ * <a href="https://osu.ppy.sh/home">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/osu.svg" height="48" />
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/osu
10
+ */
11
+ import type { OAuthConfig, OAuthUserConfig } from "./index.js"
12
+
13
+ export interface OsuUserCompact {
14
+ avatar_url: string
15
+ country_code: string
16
+ default_group: string
17
+ id: number
18
+ is_active: boolean
19
+ is_bot: boolean
20
+ is_deleted: boolean
21
+ is_online: boolean
22
+ is_supporter: boolean
23
+ last_visit: Date | null
24
+ pm_friends_only: boolean
25
+ profile_colour: string | null
26
+ username: string
27
+ }
28
+
29
+ export interface OsuProfile extends OsuUserCompact, Record<string, any> {
30
+ discord: string | null
31
+ has_supported: boolean
32
+ interests: string | null
33
+ join_date: Date
34
+ kudosu: {
35
+ available: number
36
+ total: number
37
+ }
38
+ location: string | null
39
+ max_blocks: number
40
+ max_friends: number
41
+ occupation: string | null
42
+ playmode: string
43
+ playstyle: string[]
44
+ post_count: number
45
+ profile_order: string[]
46
+ title: string | null
47
+ title_url: string | null
48
+ twitter: string | null
49
+ website: string | null
50
+ country: {
51
+ code: string
52
+ name: string
53
+ }
54
+ cover: {
55
+ custom_url: string | null
56
+ url: string
57
+ id: number | null
58
+ }
59
+ is_restricted: boolean
60
+ }
61
+
62
+ /**
63
+ * Add osu! login to your page.
64
+ *
65
+ * ### Setup
66
+ *
67
+ * #### Callback URL
68
+ * ```
69
+ * https://example.com/api/auth/callback/osu
70
+ * ```
71
+ *
72
+ * #### Configuration
73
+ *```ts
74
+ * import { Auth } from "@auth/core"
75
+ * import Osu from "@auth/core/providers/osu"
76
+ *
77
+ * const request = new Request(origin)
78
+ * const response = await Auth(request, {
79
+ * providers: [
80
+ * Osu({ clientId: OSU_CLIENT_ID, clientSecret: OSU_CLIENT_SECRET }),
81
+ * ],
82
+ * })
83
+ * ```
84
+ *
85
+ * ### Resources
86
+ *
87
+ * - [osu! OAuth documentation](https://osu.ppy.sh/docs/index.html#authentication)
88
+ * - [osu! app console](https://osu.ppy.sh/home/account/edit#new-oauth-application)
89
+ *
90
+ * ### Notes
91
+ *
92
+ * By default, Auth.js assumes that the Osu provider is
93
+ * based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
94
+ *
95
+ * :::note
96
+ *
97
+ * osu! does not provide a user email.
98
+ *
99
+ * :::
100
+ *
101
+ * :::tip
102
+ *
103
+ * The osu! provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/osu.ts).
104
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
105
+ *
106
+ * :::
107
+ *
108
+ * :::info **Disclaimer**
109
+ *
110
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
111
+ *
112
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
113
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
114
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
115
+ *
116
+ * :::
117
+ */
118
+ export default function Osu<P extends OsuProfile>(
119
+ options: OAuthUserConfig<P>
120
+ ): OAuthConfig<P> {
121
+ return {
122
+ id: "osu",
123
+ name: "osu!",
124
+ type: "oauth",
125
+ token: "https://osu.ppy.sh/oauth/token",
126
+ authorization: "https://osu.ppy.sh/oauth/authorize?scope=identify",
127
+ userinfo: "https://osu.ppy.sh/api/v2/me",
128
+ profile(profile) {
129
+ return {
130
+ id: profile.id.toString(),
131
+ email: null,
132
+ name: profile.username,
133
+ image: profile.avatar_url,
134
+ }
135
+ },
136
+ options,
137
+ }
138
+ }
@@ -0,0 +1,103 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>Passage by 1Password</b> integration.</span>
4
+ * <a href="https://passage.1password.com">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/passage.svg" height="48" width="48"/>
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/passage
10
+ */
11
+
12
+ import type { OAuthConfig, OAuthUserConfig } from "./index.js"
13
+
14
+ /** @see [Supported Scopes](https://docs.passage.id/hosted-login/oidc-client-configuration#supported-scopes) */
15
+ export interface PassageProfile {
16
+ iss: string
17
+ /** Unique identifer in Passage for the user */
18
+ sub: string
19
+ aud: string[]
20
+ exp: number
21
+ iat: number
22
+ auth_time: number
23
+ azp: string
24
+ client_id: string
25
+ at_hash: string
26
+ c_hash: string
27
+ /** The user's email address */
28
+ email: string
29
+ /** Whether the user has verified their email address */
30
+ email_verified: boolean
31
+ /** The user's phone number */
32
+ phone: string
33
+ /** Whether the user has verified their phone number */
34
+ phone_number_verified: boolean
35
+ }
36
+
37
+ /**
38
+ * Add Passage login to your page.
39
+ *
40
+ * ### Setup
41
+ *
42
+ * #### Callback URL
43
+ * ```
44
+ * https://example.com/api/auth/callback/passage
45
+ * ```
46
+ *
47
+ * #### Configuration
48
+ *```ts
49
+ * import { Auth } from "@auth/core"
50
+ * import Passage from "@auth/core/providers/passage"
51
+ *
52
+ * const request = new Request(origin)
53
+ * const response = await Auth(request, {
54
+ * providers: [
55
+ * Passage({
56
+ * clientId: PASSAGE_ID,
57
+ * clientSecret: PASSAGE_SECRET,
58
+ * issuer: PASSAGE_ISSUER,
59
+ * }),
60
+ * ],
61
+ * })
62
+ * ```
63
+ *
64
+ * ### Resources
65
+ *
66
+ * - [Passage OIDC documentation](https://docs.passage.id/hosted-login/oidc-client-configuration)
67
+ *
68
+ * ### Notes
69
+ *
70
+ * By default, Auth.js assumes that the Passage provider is
71
+ * based on the [Open ID Connect](https://openid.net/specs/openid-connect-core-1_0.html) specification.
72
+ *
73
+ * :::tip
74
+ *
75
+ * The Passage provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/passage.ts).
76
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
77
+ *
78
+ * :::
79
+ *
80
+ * :::info **Disclaimer**
81
+ *
82
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
83
+ *
84
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
85
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
86
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
87
+ *
88
+ * :::
89
+ */
90
+ export default function Passage(
91
+ config: OAuthUserConfig<PassageProfile>
92
+ ): OAuthConfig<PassageProfile> {
93
+ return {
94
+ id: "passage",
95
+ name: "Passage",
96
+ type: "oidc",
97
+ client: { token_endpoint_auth_method: "client_secret_basic" },
98
+ style: {
99
+ brandColor: "#3d53f6",
100
+ },
101
+ options: config,
102
+ }
103
+ }
@@ -0,0 +1,94 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#24292f", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>Passkey</b> integration.</span>
4
+ * <a href="https://passkeys.dev">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/passkey.svg" height="48" width="48"/>
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/passkey
10
+ */
11
+
12
+ import WebAuthn, {
13
+ WebAuthnConfig,
14
+ DEFAULT_WEBAUTHN_TIMEOUT,
15
+ } from "./webauthn.js"
16
+
17
+ /**
18
+ * Add Passkey login to your page.
19
+ *
20
+ * ### Setup
21
+ *
22
+ * Install the required peer dependency.
23
+ *
24
+ * ```bash npm2yarn
25
+ * npm install @simplewebauthn/browser@9.0.1
26
+ * ```
27
+ *
28
+ * #### Configuration
29
+ * ```ts
30
+ * import { Auth } from "@auth/core"
31
+ * import Passkey from "@auth/core/providers/passkey"
32
+ *
33
+ * const request = new Request(origin)
34
+ * const response = await Auth(request, {
35
+ * providers: [Passkey],
36
+ * })
37
+ * ```
38
+ * ### Resources
39
+ *
40
+ * - [SimpleWebAuthn - Server side](https://simplewebauthn.dev/docs/packages/server)
41
+ * - [SimpleWebAuthn - Client side](https://simplewebauthn.dev/docs/packages/client)
42
+ * - [Passkeys.dev - Intro](https://passkeys.dev/docs/intro/what-are-passkeys/)
43
+ * - [Passkeys.dev - Specifications](https://passkeys.dev/docs/reference/specs/)
44
+ * - [Source code](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/passkey.ts)
45
+ *
46
+ * ### Notes
47
+ *
48
+ * This provider is an extension of the WebAuthn provider that defines some default values
49
+ * associated with Passkey support. You may override these, but be aware that authenticators
50
+ * may not recognize your credentials as Passkey credentials if you do.
51
+ *
52
+ * :::tip
53
+ *
54
+ * The Passkey provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/passkey.ts).
55
+ * To override the defaults for your use case, check out [customizing a built-in WebAuthn provider](https://authjs.dev/guides/configuring-oauth-providers).
56
+ *
57
+ * :::
58
+ *
59
+ * :::info **Disclaimer**
60
+ *
61
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
62
+ *
63
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
64
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
65
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
66
+ *
67
+ * :::
68
+ */
69
+ export default function Passkey(
70
+ config: Partial<WebAuthnConfig>
71
+ ): WebAuthnConfig {
72
+ return WebAuthn({
73
+ id: "passkey",
74
+ name: "Passkey",
75
+ authenticationOptions: {
76
+ timeout: DEFAULT_WEBAUTHN_TIMEOUT,
77
+ userVerification: "required",
78
+ },
79
+ registrationOptions: {
80
+ timeout: DEFAULT_WEBAUTHN_TIMEOUT,
81
+ authenticatorSelection: {
82
+ residentKey: "required",
83
+ userVerification: "required",
84
+ },
85
+ },
86
+ verifyAuthenticationOptions: {
87
+ requireUserVerification: true,
88
+ },
89
+ verifyRegistrationOptions: {
90
+ requireUserVerification: true,
91
+ },
92
+ ...config,
93
+ })
94
+ }
@@ -0,0 +1,98 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>Patreon</b> integration.</span>
4
+ * <a href="https://www.patreon.com/">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/patreon.svg" height="48" />
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/patreon
10
+ */
11
+ import type { OAuthConfig, OAuthUserConfig } from "./index.js"
12
+
13
+ export interface PatreonProfile extends Record<string, any> {
14
+ sub: string
15
+ nickname: string
16
+ email: string
17
+ picture: string
18
+ }
19
+
20
+ /**
21
+ * Add Patreon login to your page.
22
+ *
23
+ * ### Setup
24
+ *
25
+ * #### Callback URL
26
+ * ```
27
+ * https://example.com/api/auth/callback/patreon
28
+ * ```
29
+ *
30
+ * #### Configuration
31
+ *```ts
32
+ * import { Auth } from "@auth/core"
33
+ * import Patreon from "@auth/core/providers/patreon"
34
+ *
35
+ * const request = new Request(origin)
36
+ * const response = await Auth(request, {
37
+ * providers: [
38
+ * Patreon({
39
+ * clientId: PATREON_CLIENT_ID,
40
+ * clientSecret: PATREON_CLIENT_SECRET,
41
+ * }),
42
+ * ],
43
+ * })
44
+ * ```
45
+ *
46
+ * ### Resources
47
+ *
48
+ * - [Patreon OAuth documentation](https://docs.patreon.com/#apiv2-oauth)
49
+ * - [Patreon Platform](https://www.patreon.com/portal/registration/register-clients)
50
+ * - [ApiV2 Scopes](https://docs.patreon.com/#scopes)
51
+ *
52
+ * ### Notes
53
+ *
54
+ * By default, Auth.js assumes that the Patreon provider is
55
+ * based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
56
+ *
57
+ * :::tip
58
+ *
59
+ * The Patreon provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/patreon.ts).
60
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
61
+ *
62
+ * :::
63
+ *
64
+ * :::info **Disclaimer**
65
+ *
66
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
67
+ *
68
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
69
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
70
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
71
+ *
72
+ * :::
73
+ */
74
+ export default function Patreon<P extends PatreonProfile>(
75
+ options: OAuthUserConfig<P>
76
+ ): OAuthConfig<P> {
77
+ return {
78
+ id: "patreon",
79
+ name: "Patreon",
80
+ type: "oauth",
81
+ authorization: {
82
+ url: "https://www.patreon.com/oauth2/authorize",
83
+ params: { scope: "identity identity[email]" },
84
+ },
85
+ token: "https://www.patreon.com/api/oauth2/token",
86
+ userinfo: "https://www.patreon.com/api/oauth2/api/current_user",
87
+ profile(profile) {
88
+ return {
89
+ id: profile.data.id,
90
+ name: profile.data.attributes.full_name,
91
+ email: profile.data.attributes.email,
92
+ image: profile.data.attributes.image_url,
93
+ }
94
+ },
95
+ style: { bg: "#e85b46", text: "#fff" },
96
+ options,
97
+ }
98
+ }
@@ -0,0 +1,68 @@
1
+ import type { OIDCConfig, OIDCUserConfig } from "./index.js"
2
+
3
+ export interface PingProfile extends Record<string, any> {
4
+ iss: string
5
+ sub: string
6
+ aud: string
7
+ iat: number
8
+ exp: number
9
+ acr: string
10
+ amr: [string]
11
+ auth_time: number
12
+ at_hash: string
13
+ sid: string
14
+ preferred_username: string
15
+ given_name: string
16
+ picture: string
17
+ updated_at: number
18
+ name: string
19
+ family_name: string
20
+ email: string
21
+ env: string
22
+ org: string
23
+ "p1.region": string
24
+ }
25
+
26
+ /**
27
+ * Add PingId login to your page.
28
+ *
29
+ * ## Documentation
30
+ *
31
+ * - [Create App in Ping Identity](https://docs.pingidentity.com/r/en-us/pingone/p1_add_app_worker)
32
+ *
33
+ * ---
34
+ * ## Example
35
+ *
36
+ * ```ts
37
+ * import PingId from "@auth/core/providers/ping-id"
38
+ *
39
+ * ...
40
+ * providers: [
41
+ * PingId({
42
+ * clientId: AUTH_PING_ID_ID,
43
+ * clientSecret: AUTH_PING_ID_SECRET,
44
+ * issuer: PING_ID_ISSUER
45
+ * })
46
+ * ]
47
+ * ...
48
+ * ```
49
+ *
50
+ * ## Help
51
+ *
52
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
53
+ *
54
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
55
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
56
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
57
+ */
58
+
59
+ export default function PingId(
60
+ options: OIDCUserConfig<PingProfile>
61
+ ): OIDCConfig<PingProfile> {
62
+ return {
63
+ id: "ping-id",
64
+ name: "Ping Identity",
65
+ type: "oidc",
66
+ options,
67
+ }
68
+ }
@@ -0,0 +1,106 @@
1
+ /**
2
+ * <div class="provider" style={{backgroundColor: "#000", display: "flex", justifyContent: "space-between", color: "#fff", padding: 16}}>
3
+ * <span>Built-in <b>Pinterest</b> integration.</span>
4
+ * <a href="https://www.pinterest.com/">
5
+ * <img style={{display: "block"}} src="https://authjs.dev/img/providers/pinterest.svg" height="48" />
6
+ * </a>
7
+ * </div>
8
+ *
9
+ * @module providers/pinterest
10
+ */
11
+ import type { OAuthConfig, OAuthUserConfig } from "./index.js"
12
+
13
+ export interface PinterestProfile extends Record<string, any> {
14
+ account_type: "BUSINESS" | "PINNER"
15
+ profile_image: string
16
+ website_url: string
17
+ username: string
18
+ }
19
+
20
+ /**
21
+ * Add Pinterest login to your page.
22
+ *
23
+ * ### Setup
24
+ *
25
+ * #### Callback URL
26
+ * ```
27
+ * https://example.com/api/auth/callback/pinterest
28
+ * ```
29
+ *
30
+ * #### Configuration
31
+ *```ts
32
+ * import { Auth } from "@auth/core"
33
+ * import Pinterest from "@auth/core/providers/pinterest"
34
+ *
35
+ * const request = new Request(origin)
36
+ * const response = await Auth(request, {
37
+ * providers: [
38
+ * Pinterest({
39
+ * clientId: PINTEREST_CLIENT_ID,
40
+ * clientSecret: PINTEREST_CLIENT_SECRET,
41
+ * }),
42
+ * ],
43
+ * })
44
+ * ```
45
+ *
46
+ * ### Resources
47
+ *
48
+ * - [Pinterest OAuth documentation](https://developers.pinterest.com/docs/getting-started/authentication/)
49
+ * - [Pinterest app console](https://developers.pinterest.com/apps/)
50
+ *
51
+ * ### Notes
52
+ *
53
+ * By default, Auth.js assumes that the Pinterest provider is
54
+ * based on the [OAuth 2](https://www.rfc-editor.org/rfc/rfc6749.html) specification.
55
+ *
56
+ *
57
+ * :::tip
58
+ *
59
+ * To use in production, make sure the app has standard API access and not trial access
60
+ *
61
+ * :::
62
+ *
63
+ * :::tip
64
+ *
65
+ * The Pinterest provider comes with a [default configuration](https://github.com/nextauthjs/next-auth/blob/main/packages/core/src/providers/pinterest.ts).
66
+ * To override the defaults for your use case, check out [customizing a built-in OAuth provider](https://authjs.dev/guides/configuring-oauth-providers).
67
+ *
68
+ * :::
69
+ *
70
+ * :::info **Disclaimer**
71
+ *
72
+ * If you think you found a bug in the default configuration, you can [open an issue](https://authjs.dev/new/provider-issue).
73
+ *
74
+ * Auth.js strictly adheres to the specification and it cannot take responsibility for any deviation from
75
+ * the spec by the provider. You can open an issue, but if the problem is non-compliance with the spec,
76
+ * we might not pursue a resolution. You can ask for more help in [Discussions](https://authjs.dev/new/github-discussions).
77
+ *
78
+ * :::
79
+ */
80
+ export default function PinterestProvider<P extends PinterestProfile>(
81
+ options: OAuthUserConfig<P>
82
+ ): OAuthConfig<P> {
83
+ return {
84
+ id: "pinterest",
85
+ name: "Pinterest",
86
+ type: "oauth",
87
+ authorization: {
88
+ url: "https://www.pinterest.com/oauth",
89
+ params: { scope: "user_accounts:read" },
90
+ },
91
+ token: "https://api.pinterest.com/v5/oauth/token",
92
+ userinfo: "https://api.pinterest.com/v5/user_account",
93
+ profile({ username, profile_image }) {
94
+ return {
95
+ id: username,
96
+ name: username,
97
+ image: profile_image,
98
+ email: null,
99
+ }
100
+ },
101
+ style: {
102
+ brandColor: "#bd081c",
103
+ },
104
+ options,
105
+ }
106
+ }