@absolutejs/auth 0.7.4 → 0.8.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.
package/.env.example CHANGED
@@ -1,9 +1,209 @@
1
- GOOGLE_CLIENT_ID=xxxxxxx.apps.googleusercontent.com
2
- GOOGLE_CLIENT_SECRET=xxxxxxxxxxxxxxxxxxxxxxxx
3
- GOOGLE_REDIRECT_URI=http://localhost:3000/authorize/callback
1
+ # FORTY_TWO_CLIENT_ID=12345678901234567890123456789012
2
+ # FORTY_TWO_CLIENT_SECRET=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f
4
3
 
5
- FACEBOOK_CLIENT_ID=xxxxxxxxxxxxxxx
6
- FACEBOOK_CLIENT_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
7
- FACEBOOK_REDIRECT_URI=http://localhost:3000/authorize/callback
4
+ # AMAZON_COGNITO_CLIENT_ID=012345678901234567890123456789012
5
+ # AMAZON_COGNITO_CLIENT_SECRET=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f
6
+ # AMAZON_COGNITO_DOMAIN=your-cognito-domain.auth.us-east-1.amazoncognito.com
8
7
 
9
- DATABASE_URL=postgresql://username:password@host:port/database?sslmode=require
8
+ # ANILIST_CLIENT_ID=12345678901234567890123456789012
9
+ # ANILIST_CLIENT_SECRET=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f
10
+
11
+ # APPLE_CLIENT_ID=1234567890.com.example.app
12
+ # APPLE_TEAM_ID=your-apple-team-id
13
+ # APPLE_PKCS8_PRIVATE_KEY=-----BEGIN PRIVATE KEY-----
14
+ # APPLE_KEY_ID=your-apple-key-id
15
+
16
+ # ATLASSIAN_CLIENT_ID=12345678901234567890123456789012
17
+ # ATLASSIAN_CLIENT_SECRET=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f
18
+
19
+ # AUTH0_CLIENT_ID=12345678901234567890123456789012
20
+ # AUTH0_CLIENT_SECRET=12345678901234567890123456789012
21
+ # AUTH0_DOMAIN=your-auth0-domain.auth0.com
22
+
23
+ # AUTHENTIK_CLIENT_ID=12345678901234567890123456789012
24
+ # AUTHENTIK_CLIENT_SECRET=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f
25
+ # AUTHENTIK_BASE_URL=http://localhost:3000
26
+
27
+ # AUTODESK_CLIENT_ID=12345678901234567890123456789012
28
+ # AUTODESK_CLIENT_SECRET=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f
29
+
30
+ # BATTLENET_CLIENT_ID=123
31
+ # BATTLENET_CLIENT_SECRET=123
32
+
33
+ # BITBUCKET_CLIENT_ID=12345678901234567890123456789012
34
+ # BITBUCKET_CLIENT_SECRET=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f
35
+
36
+ # BOX_CLIENT_ID=12345678901234567890123456789012
37
+ # BOX_CLIENT_SECRET=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f
38
+
39
+ # BUNGIE_CLIENT_ID=12345678901234567890123456789012
40
+ # BUNGIE_CLIENT_SECRET=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f
41
+ # BUNGIE_API_KEY=12345678901234567890123456789012 # TODO: This needs to be added to the request headers as "X-API-Key"
42
+
43
+ # COINBASE_CLIENT_ID=12345678901234567890123456789012
44
+ # COINBASE_CLIENT_SECRET=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f
45
+
46
+ # DISCORD_CLIENT_ID=12345678901234567890123456789012
47
+ # DISCORD_CLIENT_SECRET=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f
48
+
49
+ # DONATION_ALERTS_CLIENT_ID=12345678901234567890123456789012
50
+ # DONATION_ALERTS_CLIENT_SECRET=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f
51
+
52
+ # DRIBBBLE_CLIENT_ID=12345678901234567890123456789012
53
+ # DRIBBBLE_CLIENT_SECRET=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f
54
+
55
+ # DROPBOX_APP_KEY=12345678901234567890123456789012
56
+ # DROPBOX_APP_SECRET=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f
57
+
58
+ # EPIC_GAMES_CLIENT_ID=123456789012345678901234567890123
59
+ # EPIC_GAMES_CLIENT_SECRET=1234567890123456789012345678901234567890
60
+
61
+ # ETSY_KEYSTRING=12345678901234567890123456789012
62
+ # ETSY_SHARED_SECRET=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f
63
+
64
+ # FACEBOOK_CLIENT_ID=12345678901234567890123456789012
65
+ # FACEBOOK_CLIENT_SECRET=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f
66
+
67
+ # FIGMA_CLIENT_ID=12345678901234567890123456789012
68
+ # FIGMA_CLIENT_SECRET=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f
69
+
70
+ # GITEA_BASE_URL=https://try.gitea.io
71
+ # GITEA_CLIENT_ID=12345678901234567890123456789012
72
+ # GITEA_CLIENT_SECRET=12345678901234567890123456789012
73
+
74
+ # GITHUB_CLIENT_ID=12345678901234567890123456789012
75
+ # GITHUB_CLIENT_SECRET=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f
76
+
77
+ # GITLAB_CLIENT_ID=123456789012345678901234567890123
78
+ # GITLAB_CLIENT_SECRET=12345678901234567890123456789012
79
+ # GITLAB_BASE_URL=https://gitlab.com
80
+
81
+ # GOOGLE_CLIENT_ID=12345678901234567890123456789012
82
+ # GOOGLE_CLIENT_SECRET=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f
83
+
84
+ # INTUIT_CLIENT_ID=123456789012345678901234567890123
85
+ # INTUIT_CLIENT_SECRET=1234567890123456789012345678901234567890
86
+
87
+ # KAKAO_CLIENT_ID=12345678901234567890123456789012
88
+ # KAKAO_CLIENT_SECRET=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f
89
+
90
+ # KEYCLOAK_CLIENT_ID=12345678901234567890123456789012
91
+ # KEYCLOAK_CLIENT_SECRET=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f
92
+ # KEYCLOAK_REALM_URL=http://localhost:8080/auth/realms/master
93
+
94
+ # KICK_CLIENT_ID=123
95
+ # KICK_CLIENT_SECRET=12345678901234567890123456789012
96
+
97
+ # LICHESS_CLIENT_ID=YOUR_APP_ID
98
+
99
+ # LINE_CHANNEL_ID=1234567890
100
+ # LINE_CHANNEL_SECRET=1234567890abcdef1234567890abcdef
101
+
102
+ # LINEAR_CLIENT_ID=12345678901234567890123456789012
103
+ # LINEAR_CLIENT_SECRET=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f
104
+
105
+ # LINKEDIN_CLIENT_ID=12345678901234567890123456789012
106
+ # LINKEDIN_CLIENT_SECRET=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f
107
+
108
+ # MASTODON_CLIENT_ID=12345678901234567890123456789012
109
+ # MASTODON_CLIENT_SECRET=1234567890123456789012345678901234567890123456789012345678901234567890
110
+ # MASTODON_BASE_URL=https://mastodon.social
111
+
112
+ # MERCADO_LIBRE_CLIENT_ID=1234567890123456
113
+ # MERCADO_LIBRE_CLIENT_SECRET=12345678901234567890123456789012
114
+
115
+ # MERCADO_PAGO_CLIENT_ID=1234567890123456
116
+ # MERCADO_PAGO_CLIENT_SECRET=12345678901234567890123456789012
117
+
118
+ # MICROSOFT_ENTRA_ID_CLIENT_ID=12345678-1234-1234-1234-123456789012
119
+ # MICROSOFT_ENTRA_ID_CLIENT_SECRET=1234567890abcdef1234567890abcdef12345678
120
+ # MICROSOFT_ENTRA_ID_TENANT_ID=12345678-1234-1234-1234-123456789012
121
+
122
+ # MY_ANIME_LIST_CLIENT_ID=12345678901234567890123456789012
123
+ # MY_ANIME_LIST_CLIENT_SECRET=1234567890123456789012345678901234567890123456789012345678901234567890
124
+
125
+ # NAVER_CLIENT_ID=12345678901234567890123456789012
126
+ # NAVER_CLIENT_SECRET=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f
127
+
128
+ # NOTION_CLIENT_ID=123456789012345678901234567890123
129
+ # NOTION_CLIENT_SECRET=1234567890123456789012345678901234567890
130
+
131
+ # OKTA_CLIENT_ID=123
132
+ # OKTA_CLIENT_SECRET=12345678901234567890123456789012
133
+ # OKTA_DOMAIN=dev-1234567.okta.com
134
+
135
+ # OSU_CLIENT_ID=12345678901234567890123456789012
136
+ # OSU_CLIENT_SECRET=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f
137
+
138
+ # PATREON_CLIENT_ID=12345678901234567890123456789012
139
+ # PATREON_CLIENT_SECRET=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f
140
+
141
+ # POLAR_CLIENT_ID=polar_ci_12345678901234567890123456789012
142
+ # POLAR_CLIENT_SECRET=polar_cs_12345678901234567890123456789012
143
+
144
+ # POLAR_ACCESSLINK_CLIENT_ID=12345678901234567890123456789012
145
+ # POLAR_ACCESSLINK_CLIENT_SECRET=12345678901234567890123456789012
146
+
147
+ # POLAR_TEAM_PRO_CLIENT_ID=123456789012345678901234567890123456789012
148
+ # POLAR_TEAM_PRO_CLIENT_SECRET=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f
149
+
150
+ # REDDIT_CLIENT_ID=123456789012345678901234567890123
151
+ # REDDIT_CLIENT_SECRET=1234567890123456789012345678901234567890
152
+
153
+ # ROBLOX_CLIENT_ID=12345678901234567890123456789012
154
+ # ROBLOX_CLIENT_SECRET=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f
155
+
156
+ # SALESFORCE_CONSUMER_KEY=1234567890123456789012345678901234567890123456789012345678901234567890
157
+ # SALESFORCE_CONSUMER_SECRET=1234567890123456789012345678901234567890123456789012345678901234567890
158
+
159
+ # SHIKIMORI_CLIENT_ID=12345678901234567890123456789012
160
+ # SHIKIMORI_CLIENT_SECRET=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f
161
+
162
+ # SLACK_CLIENT_ID=12345678901234567890123456789012
163
+ # SLACK_CLIENT_SECRET=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f
164
+
165
+ # SPOTIFY_CLIENT_ID=12345678901234567890123456789012
166
+ # SPOTIFY_CLIENT_SECRET=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f
167
+
168
+ # STARTGG_CLIENT_ID=123
169
+ # STARTGG_CLIENT_SECRET=12345678901234567890123456789012
170
+
171
+ # STRAVA_CLIENT_ID=12345678901234567890123456789012
172
+ # STRAVA_CLIENT_SECRET=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f
173
+
174
+ # SYNOLOGY_CLIENT_ID=12345678901234567890123456789012
175
+ # SYNOLOGY_CLIENT_SECRET=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f
176
+
177
+ # TIK_TOK_CLIENT_KEY=12345678901234567890123456789012
178
+ # TIK_TOK_CLIENT_SECRET=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f
179
+
180
+ # TILTIFY_CLIENT_ID=12345678901234567890123456789012
181
+ # TILTIFY_CLIENT_SECRET=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f
182
+
183
+ # TUMBLR_CONSUMER_KEY=12345678901234567890123456789012
184
+ # TUMBLR_CONSUMER_SECRET=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f
185
+
186
+ # TWITCH_CLIENT_ID=12345678901234567890123456789012
187
+ # TWITCH_CLIENT_SECRET=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f
188
+
189
+ # TWITTER_CLIENT_ID=12345678901234567890123456789012
190
+ # TWITTER_CLIENT_SECRET=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f
191
+
192
+ # VK_CLIENT_ID=1234567890123456
193
+ # VK_CLIENT_SECRET=12345678901234567890123456789012
194
+
195
+ # WORK_OS_CLIENT_ID=12345678901234567890123456789012
196
+ # WORK_OS_CLIENT_SECRET=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f
197
+
198
+ # YAHOO_CLIENT_ID=123
199
+ # YAHOO_CLIENT_SECRET=12345678901234567890123456789012
200
+
201
+ # YANDEX_CLIENT_ID=12345678901234567890123456789012
202
+ # YANDEX_CLIENT_SECRET=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f
203
+
204
+ # ZOOM_CLIENT_ID=12345678901234567890123456789012
205
+ # ZOOM_CLIENT_SECRET=1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s0t1u2v3w4x5y6z7a8b9c0d1e2f
206
+
207
+ # OAUTH2_CALLBACK_URI = http://localhost:3000/auth/callback
208
+
209
+ # DATABASE_URL = postgres://user:password@localhost:5432/database
package/dist/index.js CHANGED
@@ -126,6 +126,12 @@ var isOIDCProviderOption = (option) => {
126
126
  const provider = providers[option];
127
127
  return provider.isOIDC;
128
128
  };
129
+ var isScopeRequiredProviderOption = (option) => {
130
+ if (!isValidProviderOption(option))
131
+ return false;
132
+ const provider = providers[option];
133
+ return provider.scopeRequired;
134
+ };
129
135
  var isRefreshableOAuth2Client = (providerName, client) => isRefreshableProviderOption(providerName);
130
136
  var isRevocableOAuth2Client = (providerName, client) => isRevocableProviderOption(providerName);
131
137
  var hasClientSecret = (credentials) => {
@@ -1385,6 +1391,8 @@ var providerOptions = Object.keys(providers).filter(isValidProviderOption);
1385
1391
  var refreshableProviderOptions = Object.keys(providers).filter(isRefreshableProviderOption);
1386
1392
  var oidcProviderOptions = Object.keys(providers).filter(isOIDCProviderOption);
1387
1393
  var revocableProviderOptions = Object.keys(providers).filter(isRevocableProviderOption);
1394
+ var scopeRequiredProviderOptions = Object.keys(providers).filter(isScopeRequiredProviderOption);
1395
+ var pkceProviderOptions = Object.keys(providers).filter(isPKCEProviderOption);
1388
1396
  var createOAuth2Client = (providerName, config) => {
1389
1397
  const meta = providers[providerName];
1390
1398
  const isConfigPropertyFunction = (cfgProp) => typeof cfgProp === "function";
@@ -2053,7 +2061,12 @@ var absoluteAuth = ({
2053
2061
  })).use(protectRoute()).as("plugin");
2054
2062
  };
2055
2063
  export {
2064
+ scopeRequiredProviderOptions,
2065
+ revocableProviderOptions,
2066
+ refreshableProviderOptions,
2056
2067
  providerOptions,
2068
+ pkceProviderOptions,
2069
+ oidcProviderOptions,
2057
2070
  isValidProviderOption,
2058
2071
  isRevocableProviderOption,
2059
2072
  isRevocableOAuth2Client,
@@ -185,4 +185,4 @@ export declare const absoluteAuth: <UserType>({ providersConfiguration, authoriz
185
185
  export * from './types';
186
186
  export * from './utils';
187
187
  export type { OAuth2TokenResponse, OAuth2Client, ProviderOption, PKCEProvider, OIDCProvider, RefreshableProvider, RevocableProvider, ScopeRequiredProvider, CredentialsFor } from 'citra';
188
- export { providerOptions, isValidProviderOption, isRefreshableOAuth2Client, isRefreshableProviderOption, isOIDCProviderOption, isPKCEProviderOption, isRevocableProviderOption, isRevocableOAuth2Client } from 'citra';
188
+ export { providerOptions, refreshableProviderOptions, revocableProviderOptions, oidcProviderOptions, pkceProviderOptions, scopeRequiredProviderOptions, isValidProviderOption, isRefreshableOAuth2Client, isRefreshableProviderOption, isOIDCProviderOption, isPKCEProviderOption, isRevocableProviderOption, isRevocableOAuth2Client } from 'citra';
package/eslint.config.mjs CHANGED
@@ -219,7 +219,7 @@ export default [
219
219
  }
220
220
  },
221
221
  {
222
- files: ['example/db/migrate.ts','example/server.ts'],
222
+ files: ['example/db/migrate.ts','example/utils/absoluteAuthConfig.ts'],
223
223
  rules: {
224
224
  'no-console': 'off'
225
225
  }
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.7.4",
2
+ "version": "0.8.0",
3
3
  "name": "@absolutejs/auth",
4
4
  "description": "An authorization library for absolutejs",
5
5
  "repository": {
@@ -33,7 +33,7 @@
33
33
  "elysia": ">= 1.2.0"
34
34
  },
35
35
  "dependencies": {
36
- "citra": "0.19.0"
36
+ "citra": "0.20.1"
37
37
  },
38
38
  "devDependencies": {
39
39
  "@absolutejs/absolute": "0.4.0",