Compare commits

...

2 Commits

Author SHA1 Message Date
Michał Bundyra
49cb7e5bd7 feat(provider): add Mailchimp provider (#1781) 2021-04-23 12:15:25 +02:00
Balázs Orbán
b95182ded7 fix(ts): expose errors type delcarations (#1817) 2021-04-22 23:45:23 +02:00
6 changed files with 88 additions and 14 deletions

25
.gitignore vendored
View File

@@ -27,18 +27,19 @@ node_modules
.cache-loader
www/providers.json
src/providers/index.js
internals
adapters.d.ts
adapters.js
client.d.ts
client.js
index.d.ts
index.js
jwt.d.ts
jwt.js
providers.d.ts
providers.js
errors.js
/internals
/adapters.d.ts
/adapters.js
/client.d.ts
/client.js
/index.d.ts
/index.js
/jwt.d.ts
/jwt.js
/providers.d.ts
/providers.js
/errors.js
/errors.d.ts
# Development app
app/next-auth

View File

@@ -36,6 +36,7 @@ const TYPES_TARGETS = [
`${MODULE_ENTRIES.ADAPTERS}.d.ts`,
`${MODULE_ENTRIES.PROVIDERS}.d.ts`,
`${MODULE_ENTRIES.JWT}.d.ts`,
`${MODULE_ENTRIES.ERRORS}.d.ts`,
"internals",
]

View File

@@ -66,10 +66,11 @@
"adapters.d.ts",
"client.js",
"client.d.ts",
"errors.js",
"errors.d.ts",
"jwt.js",
"jwt.d.ts",
"internals",
"errors.js"
"internals"
],
"license": "ISC",
"dependencies": {

View File

@@ -0,0 +1,22 @@
export default function Mailchimp(options) {
return {
id: 'mailchimp',
name: 'Mailchimp',
type: 'oauth',
version: '2.0',
scope: '',
params: { grant_type: 'authorization_code' },
accessTokenUrl: 'https://login.mailchimp.com/oauth2/token',
authorizationUrl: 'https://login.mailchimp.com/oauth2/authorize?response_type=code',
profileUrl: 'https://login.mailchimp.com/oauth2/metadata',
profile: (profile) => {
return {
id: profile.login.login_id,
name: profile.accountname,
email: profile.login.email,
image: null
}
},
...options
}
}

23
types/errors.d.ts vendored Normal file
View File

@@ -0,0 +1,23 @@
/**
* Same as the default `Error`, but it is JSON serializable.
* @source https://iaincollins.medium.com/error-handling-in-javascript-a6172ccdf9af
*/
export class UnknownError extends Error {}
export class OAuthCallbackError extends UnknownError {}
export class AccountNotLinkedError extends UnknownError {}
export class CreateUserError extends UnknownError {}
export class GetUserError extends UnknownError {}
export class GetUserByEmailError extends UnknownError {}
export class GetUserByIdError extends UnknownError {}
export class GetUserByProviderAccountIdError extends UnknownError {}
export class UpdateUserError extends UnknownError {}
export class DeleteUserError extends UnknownError {}
export class LinkAccountError extends UnknownError {}
export class UnlinkAccountError extends UnknownError {}
export class CreateSessionError extends UnknownError {}
export class GetSessionError extends UnknownError {}
export class UpdateSessionError extends UnknownError {}
export class DeleteSessionError extends UnknownError {}
export class CreateVerificationRequestError extends UnknownError {}
export class GetVerificationRequestError extends UnknownError {}
export class DeleteVerificationRequestError extends UnknownError {}

View File

@@ -0,0 +1,26 @@
---
id: mailchimp
title: Mailchimp
---
## Documentation
https://mailchimp.com/developer/marketing/guides/access-user-data-oauth-2/
## Configuration
https://admin.mailchimp.com/account/oauth2/client/
## Example
```js
import Providers from `next-auth/providers`
...
providers: [
Providers.Mailchimp({
clientId: process.env.MAILCHIMP_CLIENT_ID,
clientSecret: process.env.MAILCHIMP_CLIENT_SECRET
})
]
...
```