@morojs/moro 1.0.3 → 1.2.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 (55) hide show
  1. package/README.md +57 -2
  2. package/dist/core/auth/morojs-adapter.d.ts +94 -0
  3. package/dist/core/auth/morojs-adapter.js +288 -0
  4. package/dist/core/auth/morojs-adapter.js.map +1 -0
  5. package/dist/core/config/file-loader.d.ts +18 -0
  6. package/dist/core/config/file-loader.js +345 -0
  7. package/dist/core/config/file-loader.js.map +1 -0
  8. package/dist/core/config/index.d.ts +6 -0
  9. package/dist/core/config/index.js +15 -0
  10. package/dist/core/config/index.js.map +1 -1
  11. package/dist/core/config/loader.d.ts +2 -1
  12. package/dist/core/config/loader.js +15 -2
  13. package/dist/core/config/loader.js.map +1 -1
  14. package/dist/core/config/utils.js +50 -3
  15. package/dist/core/config/utils.js.map +1 -1
  16. package/dist/core/http/http-server.d.ts +2 -0
  17. package/dist/core/http/http-server.js +52 -9
  18. package/dist/core/http/http-server.js.map +1 -1
  19. package/dist/core/middleware/built-in/auth-helpers.d.ts +124 -0
  20. package/dist/core/middleware/built-in/auth-helpers.js +338 -0
  21. package/dist/core/middleware/built-in/auth-helpers.js.map +1 -0
  22. package/dist/core/middleware/built-in/auth-providers.d.ts +125 -0
  23. package/dist/core/middleware/built-in/auth-providers.js +394 -0
  24. package/dist/core/middleware/built-in/auth-providers.js.map +1 -0
  25. package/dist/core/middleware/built-in/auth.d.ts +29 -1
  26. package/dist/core/middleware/built-in/auth.js +259 -16
  27. package/dist/core/middleware/built-in/auth.js.map +1 -1
  28. package/dist/core/middleware/built-in/index.d.ts +3 -1
  29. package/dist/core/middleware/built-in/index.js +19 -1
  30. package/dist/core/middleware/built-in/index.js.map +1 -1
  31. package/dist/index.d.ts +5 -1
  32. package/dist/index.js +11 -2
  33. package/dist/index.js.map +1 -1
  34. package/dist/moro.d.ts +1 -0
  35. package/dist/moro.js +19 -1
  36. package/dist/moro.js.map +1 -1
  37. package/dist/types/auth.d.ts +367 -0
  38. package/dist/types/auth.js +28 -0
  39. package/dist/types/auth.js.map +1 -0
  40. package/package.json +6 -2
  41. package/src/core/auth/README.md +339 -0
  42. package/src/core/auth/morojs-adapter.ts +402 -0
  43. package/src/core/config/file-loader.ts +398 -0
  44. package/src/core/config/index.ts +18 -0
  45. package/src/core/config/loader.ts +18 -2
  46. package/src/core/config/utils.ts +53 -3
  47. package/src/core/http/http-server.ts +61 -10
  48. package/src/core/middleware/built-in/auth-helpers.ts +401 -0
  49. package/src/core/middleware/built-in/auth-providers.ts +480 -0
  50. package/src/core/middleware/built-in/auth.ts +306 -16
  51. package/src/core/middleware/built-in/index.ts +22 -0
  52. package/src/index.ts +30 -1
  53. package/src/moro.ts +29 -1
  54. package/src/types/auth.ts +440 -0
  55. package/tsconfig.json +1 -1
@@ -0,0 +1,394 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.enterpriseProviders = exports.extendedProviders = void 0;
4
+ exports.createCustomOAuthProvider = createCustomOAuthProvider;
5
+ exports.createCustomOIDCProvider = createCustomOIDCProvider;
6
+ /**
7
+ * Popular OAuth Providers for Auth.js
8
+ * These extend the basic providers with more options and popular services
9
+ */
10
+ exports.extendedProviders = {
11
+ // Enhanced GitHub provider with more options
12
+ github: (options) => ({
13
+ id: 'github',
14
+ name: 'GitHub',
15
+ type: 'oauth',
16
+ authorization: {
17
+ url: 'https://github.com/login/oauth/authorize',
18
+ params: {
19
+ scope: options.scope || 'read:user user:email',
20
+ allow_signup: options.allowSignup ?? true,
21
+ },
22
+ },
23
+ token: 'https://github.com/login/oauth/access_token',
24
+ userinfo: 'https://api.github.com/user',
25
+ clientId: options.clientId,
26
+ clientSecret: options.clientSecret,
27
+ profile: profile => ({
28
+ id: profile.id.toString(),
29
+ name: profile.name || profile.login,
30
+ email: profile.email,
31
+ image: profile.avatar_url,
32
+ username: profile.login,
33
+ }),
34
+ }),
35
+ // Enhanced Google provider
36
+ google: (options) => ({
37
+ id: 'google',
38
+ name: 'Google',
39
+ type: 'oauth',
40
+ authorization: {
41
+ url: 'https://accounts.google.com/oauth/authorize',
42
+ params: {
43
+ scope: options.scope || 'openid email profile',
44
+ response_type: 'code',
45
+ ...(options.hostedDomain && { hd: options.hostedDomain }),
46
+ },
47
+ },
48
+ token: 'https://oauth2.googleapis.com/token',
49
+ userinfo: 'https://www.googleapis.com/oauth2/v2/userinfo',
50
+ clientId: options.clientId,
51
+ clientSecret: options.clientSecret,
52
+ profile: profile => ({
53
+ id: profile.id,
54
+ name: profile.name,
55
+ email: profile.email,
56
+ image: profile.picture,
57
+ emailVerified: profile.verified_email,
58
+ }),
59
+ }),
60
+ // Microsoft/Azure AD provider
61
+ microsoft: (options) => ({
62
+ id: 'microsoft',
63
+ name: 'Microsoft',
64
+ type: 'oauth',
65
+ authorization: {
66
+ url: `https://login.microsoftonline.com/${options.tenant || 'common'}/oauth2/v2.0/authorize`,
67
+ params: {
68
+ scope: options.scope || 'openid email profile',
69
+ response_type: 'code',
70
+ },
71
+ },
72
+ token: `https://login.microsoftonline.com/${options.tenant || 'common'}/oauth2/v2.0/token`,
73
+ userinfo: 'https://graph.microsoft.com/oidc/userinfo',
74
+ clientId: options.clientId,
75
+ clientSecret: options.clientSecret,
76
+ profile: profile => ({
77
+ id: profile.sub,
78
+ name: profile.name,
79
+ email: profile.email,
80
+ image: profile.picture,
81
+ }),
82
+ }),
83
+ // Apple provider
84
+ apple: (options) => ({
85
+ id: 'apple',
86
+ name: 'Apple',
87
+ type: 'oauth',
88
+ authorization: {
89
+ url: 'https://appleid.apple.com/auth/authorize',
90
+ params: {
91
+ scope: options.scope || 'name email',
92
+ response_mode: 'form_post',
93
+ response_type: 'code',
94
+ },
95
+ },
96
+ token: 'https://appleid.apple.com/auth/token',
97
+ clientId: options.clientId,
98
+ clientSecret: options.clientSecret,
99
+ profile: (profile, tokens) => ({
100
+ id: profile.sub,
101
+ name: profile.name ? `${profile.name.firstName} ${profile.name.lastName}` : null,
102
+ email: profile.email,
103
+ emailVerified: profile.email_verified === 'true',
104
+ }),
105
+ }),
106
+ // LinkedIn provider
107
+ linkedin: (options) => ({
108
+ id: 'linkedin',
109
+ name: 'LinkedIn',
110
+ type: 'oauth',
111
+ authorization: {
112
+ url: 'https://www.linkedin.com/oauth/v2/authorization',
113
+ params: {
114
+ scope: options.scope || 'r_liteprofile r_emailaddress',
115
+ },
116
+ },
117
+ token: 'https://www.linkedin.com/oauth/v2/accessToken',
118
+ userinfo: 'https://api.linkedin.com/v2/me',
119
+ clientId: options.clientId,
120
+ clientSecret: options.clientSecret,
121
+ profile: profile => ({
122
+ id: profile.id,
123
+ name: `${profile.localizedFirstName} ${profile.localizedLastName}`,
124
+ email: profile.emailAddress,
125
+ image: profile.profilePicture?.['displayImage~']?.elements?.[0]?.identifiers?.[0]?.identifier,
126
+ }),
127
+ }),
128
+ // Facebook provider
129
+ facebook: (options) => ({
130
+ id: 'facebook',
131
+ name: 'Facebook',
132
+ type: 'oauth',
133
+ authorization: {
134
+ url: 'https://www.facebook.com/v18.0/dialog/oauth',
135
+ params: {
136
+ scope: options.scope || 'email public_profile',
137
+ },
138
+ },
139
+ token: 'https://graph.facebook.com/v18.0/oauth/access_token',
140
+ userinfo: 'https://graph.facebook.com/me?fields=id,name,email,picture',
141
+ clientId: options.clientId,
142
+ clientSecret: options.clientSecret,
143
+ profile: profile => ({
144
+ id: profile.id,
145
+ name: profile.name,
146
+ email: profile.email,
147
+ image: profile.picture?.data?.url,
148
+ }),
149
+ }),
150
+ // Twitter/X provider
151
+ twitter: (options) => ({
152
+ id: 'twitter',
153
+ name: 'Twitter',
154
+ type: 'oauth',
155
+ authorization: 'https://twitter.com/i/oauth2/authorize',
156
+ token: 'https://api.twitter.com/2/oauth2/token',
157
+ userinfo: 'https://api.twitter.com/2/users/me',
158
+ clientId: options.clientId,
159
+ clientSecret: options.clientSecret,
160
+ profile: profile => ({
161
+ id: profile.data.id,
162
+ name: profile.data.name,
163
+ username: profile.data.username,
164
+ image: profile.data.profile_image_url,
165
+ }),
166
+ }),
167
+ // Slack provider
168
+ slack: (options) => ({
169
+ id: 'slack',
170
+ name: 'Slack',
171
+ type: 'oauth',
172
+ authorization: {
173
+ url: 'https://slack.com/oauth/v2/authorize',
174
+ params: {
175
+ user_scope: options.scope || 'identity.basic identity.email identity.avatar',
176
+ },
177
+ },
178
+ token: 'https://slack.com/api/oauth.v2.access',
179
+ userinfo: 'https://slack.com/api/users.identity',
180
+ clientId: options.clientId,
181
+ clientSecret: options.clientSecret,
182
+ profile: profile => ({
183
+ id: profile.user.id,
184
+ name: profile.user.name,
185
+ email: profile.user.email,
186
+ image: profile.user.image_192,
187
+ }),
188
+ }),
189
+ // GitLab provider
190
+ gitlab: (options) => ({
191
+ id: 'gitlab',
192
+ name: 'GitLab',
193
+ type: 'oauth',
194
+ authorization: {
195
+ url: `${options.domain || 'https://gitlab.com'}/oauth/authorize`,
196
+ params: {
197
+ scope: options.scope || 'read_user',
198
+ },
199
+ },
200
+ token: `${options.domain || 'https://gitlab.com'}/oauth/token`,
201
+ userinfo: `${options.domain || 'https://gitlab.com'}/api/v4/user`,
202
+ clientId: options.clientId,
203
+ clientSecret: options.clientSecret,
204
+ profile: profile => ({
205
+ id: profile.id.toString(),
206
+ name: profile.name,
207
+ email: profile.email,
208
+ image: profile.avatar_url,
209
+ username: profile.username,
210
+ }),
211
+ }),
212
+ // Spotify provider
213
+ spotify: (options) => ({
214
+ id: 'spotify',
215
+ name: 'Spotify',
216
+ type: 'oauth',
217
+ authorization: {
218
+ url: 'https://accounts.spotify.com/authorize',
219
+ params: {
220
+ scope: options.scope || 'user-read-email user-read-private',
221
+ },
222
+ },
223
+ token: 'https://accounts.spotify.com/api/token',
224
+ userinfo: 'https://api.spotify.com/v1/me',
225
+ clientId: options.clientId,
226
+ clientSecret: options.clientSecret,
227
+ profile: profile => ({
228
+ id: profile.id,
229
+ name: profile.display_name,
230
+ email: profile.email,
231
+ image: profile.images?.[0]?.url,
232
+ }),
233
+ }),
234
+ // Twitch provider
235
+ twitch: (options) => ({
236
+ id: 'twitch',
237
+ name: 'Twitch',
238
+ type: 'oauth',
239
+ authorization: {
240
+ url: 'https://id.twitch.tv/oauth2/authorize',
241
+ params: {
242
+ scope: options.scope || 'user:read:email',
243
+ },
244
+ },
245
+ token: 'https://id.twitch.tv/oauth2/token',
246
+ userinfo: 'https://api.twitch.tv/helix/users',
247
+ clientId: options.clientId,
248
+ clientSecret: options.clientSecret,
249
+ profile: profile => ({
250
+ id: profile.data[0].id,
251
+ name: profile.data[0].display_name,
252
+ email: profile.data[0].email,
253
+ image: profile.data[0].profile_image_url,
254
+ username: profile.data[0].login,
255
+ }),
256
+ }),
257
+ // Notion provider
258
+ notion: (options) => ({
259
+ id: 'notion',
260
+ name: 'Notion',
261
+ type: 'oauth',
262
+ authorization: 'https://api.notion.com/v1/oauth/authorize',
263
+ token: 'https://api.notion.com/v1/oauth/token',
264
+ userinfo: 'https://api.notion.com/v1/users/me',
265
+ clientId: options.clientId,
266
+ clientSecret: options.clientSecret,
267
+ profile: profile => ({
268
+ id: profile.id,
269
+ name: profile.name,
270
+ email: profile.person?.email,
271
+ image: profile.avatar_url,
272
+ }),
273
+ }),
274
+ };
275
+ /**
276
+ * Enterprise/SAML providers
277
+ */
278
+ exports.enterpriseProviders = {
279
+ // Generic SAML provider
280
+ saml: (options) => ({
281
+ id: 'saml',
282
+ name: options.name,
283
+ type: 'oauth',
284
+ authorization: options.entryPoint,
285
+ clientId: options.issuer,
286
+ // SAML-specific configuration would go here
287
+ entryPoint: options.entryPoint,
288
+ issuer: options.issuer,
289
+ cert: options.cert,
290
+ callbackUrl: options.callbackUrl,
291
+ }),
292
+ // Okta provider
293
+ okta: (options) => ({
294
+ id: 'okta',
295
+ name: 'Okta',
296
+ type: 'oidc',
297
+ issuer: `${options.domain}/oauth2/${options.authorizationServerId || 'default'}`,
298
+ clientId: options.clientId,
299
+ clientSecret: options.clientSecret,
300
+ profile: profile => ({
301
+ id: profile.sub,
302
+ name: profile.name,
303
+ email: profile.email,
304
+ username: profile.preferred_username,
305
+ }),
306
+ }),
307
+ // Auth0 provider
308
+ auth0: (options) => ({
309
+ id: 'auth0',
310
+ name: 'Auth0',
311
+ type: 'oidc',
312
+ issuer: `https://${options.domain}`,
313
+ clientId: options.clientId,
314
+ clientSecret: options.clientSecret,
315
+ authorization: {
316
+ url: `https://${options.domain}/authorize`,
317
+ params: {
318
+ audience: options.audience,
319
+ },
320
+ },
321
+ profile: profile => ({
322
+ id: profile.sub,
323
+ name: profile.name,
324
+ email: profile.email,
325
+ image: profile.picture,
326
+ emailVerified: profile.email_verified,
327
+ }),
328
+ }),
329
+ // AWS Cognito provider
330
+ cognito: (options) => ({
331
+ id: 'cognito',
332
+ name: 'AWS Cognito',
333
+ type: 'oidc',
334
+ issuer: `https://cognito-idp.${options.region || 'us-east-1'}.amazonaws.com/${options.domain}`,
335
+ clientId: options.clientId,
336
+ clientSecret: options.clientSecret,
337
+ profile: profile => ({
338
+ id: profile.sub,
339
+ name: profile.name,
340
+ email: profile.email,
341
+ username: profile['cognito:username'],
342
+ emailVerified: profile.email_verified,
343
+ }),
344
+ }),
345
+ };
346
+ /**
347
+ * Helper function to create custom OAuth provider
348
+ */
349
+ function createCustomOAuthProvider(config) {
350
+ return {
351
+ id: config.id,
352
+ name: config.name,
353
+ type: 'oauth',
354
+ authorization: {
355
+ url: config.authorizationUrl,
356
+ params: {
357
+ scope: config.scope || 'openid email profile',
358
+ },
359
+ },
360
+ token: config.tokenUrl,
361
+ userinfo: config.userinfoUrl,
362
+ clientId: config.clientId,
363
+ clientSecret: config.clientSecret,
364
+ profile: config.profileMapper ||
365
+ (profile => ({
366
+ id: profile.id || profile.sub,
367
+ name: profile.name,
368
+ email: profile.email,
369
+ image: profile.picture || profile.avatar_url,
370
+ })),
371
+ };
372
+ }
373
+ /**
374
+ * Helper function to create custom OIDC provider
375
+ */
376
+ function createCustomOIDCProvider(config) {
377
+ return {
378
+ id: config.id,
379
+ name: config.name,
380
+ type: 'oidc',
381
+ issuer: config.issuer,
382
+ clientId: config.clientId,
383
+ clientSecret: config.clientSecret,
384
+ profile: config.profileMapper ||
385
+ (profile => ({
386
+ id: profile.sub,
387
+ name: profile.name,
388
+ email: profile.email,
389
+ image: profile.picture,
390
+ emailVerified: profile.email_verified,
391
+ })),
392
+ };
393
+ }
394
+ //# sourceMappingURL=auth-providers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-providers.js","sourceRoot":"","sources":["../../../../src/core/middleware/built-in/auth-providers.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,30 @@
1
1
  import { MiddlewareInterface } from '../../../types/hooks';
2
- export declare const auth: (options?: any) => MiddlewareInterface;
2
+ import { AuthOptions, AuthProvider } from '../../../types/auth';
3
+ export declare const providers: {
4
+ google: (options: {
5
+ clientId: string;
6
+ clientSecret: string;
7
+ }) => AuthProvider;
8
+ github: (options: {
9
+ clientId: string;
10
+ clientSecret: string;
11
+ }) => AuthProvider;
12
+ discord: (options: {
13
+ clientId: string;
14
+ clientSecret: string;
15
+ }) => AuthProvider;
16
+ credentials: (options: {
17
+ name?: string;
18
+ credentials: Record<string, any>;
19
+ authorize: (credentials: any) => Promise<any>;
20
+ }) => AuthProvider;
21
+ email: (options: {
22
+ server: string | {
23
+ host: string;
24
+ port: number;
25
+ auth: any;
26
+ };
27
+ from: string;
28
+ }) => AuthProvider;
29
+ };
30
+ export declare const auth: (options: AuthOptions) => MiddlewareInterface;