@soulbatical/tetra-core 0.1.12 → 0.1.14

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/dist/index.d.ts CHANGED
@@ -84,7 +84,7 @@ export { defaultAffiliateFeatureConfig } from './shared/affiliate/affiliateFeatu
84
84
  export { addAffiliateAdminRoutes, addAffiliateUserRoutes, addAffiliatePublicRoutes } from './shared/affiliate/routes.js';
85
85
  export type { AffiliateConfig, AffiliateTierConfig, AffiliateAttribution, AffiliateOrder, Affiliate, AffiliateCommission, AffiliateClick, AffiliatePayment, AffiliateTierHistory, AffiliateFilters, AffiliateDashboard, AffiliateDashboardStats, AffiliateDashboardCommission, AffiliateTierProgress } from './shared/affiliate/types.js';
86
86
  export { addPublicAuthRoutes } from './shared/auth/routes.js';
87
- export type { PublicAuthRoutesConfig, OnNewUserResult, OAuthProvider } from './shared/auth/types.js';
87
+ export type { PublicAuthRoutesConfig, OnNewUserResult, OAuthProvider, InviteConfig, MagicLinkConfig, UserProfileOrg } from './shared/auth/types.js';
88
88
  export { createApp } from './core/createApp.js';
89
89
  export type { CreateAppConfig } from './core/createApp.js';
90
90
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  export { addPublicAuthRoutes } from './routes.js';
2
- export type { PublicAuthRoutesConfig, OnNewUserResult, OAuthProvider } from './types.js';
2
+ export type { PublicAuthRoutesConfig, OnNewUserResult, OAuthProvider, InviteConfig, MagicLinkConfig, UserProfileOrg } from './types.js';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,YAAY,EAAE,sBAAsB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/shared/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,YAAY,EAAE,sBAAsB,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"}
@@ -2,7 +2,8 @@
2
2
  * Public Auth Routes — Factory
3
3
  *
4
4
  * Standardized authentication routes for all Tetra projects.
5
- * Handles: login, signup, OAuth, token refresh, session, logout, auto-provisioning.
5
+ * Handles: login, signup, OAuth, token refresh, session, /me, register,
6
+ * logout, and optionally magic link and invites.
6
7
  *
7
8
  * Usage:
8
9
  * ```typescript
@@ -11,6 +12,7 @@
11
12
  * const publicAuthRouter = Router();
12
13
  * addPublicAuthRoutes(publicAuthRouter, {
13
14
  * oauthProviders: ['google'],
15
+ * enableInvites: true,
14
16
  * onNewUser: async (supabaseUser, systemClient) => {
15
17
  * // Create org + users_public + membership
16
18
  * return { organizationId: org.id };
@@ -24,15 +26,26 @@ import type { PublicAuthRoutesConfig } from './types.js';
24
26
  /**
25
27
  * Add standard public authentication routes to a router.
26
28
  *
27
- * Routes created:
29
+ * Routes created (always):
28
30
  * - POST /login — Email + password login
29
- * - POST /signup — Email + password signup (creates Supabase auth user)
31
+ * - POST /signup — Email + password signup
30
32
  * - POST /refresh — Refresh an expired access token
31
33
  * - GET /session — Validate token, return user info
32
34
  * - GET /:provider — Start OAuth flow (e.g., GET /google)
33
35
  * - POST /exchange — Exchange OAuth code for tokens
34
- * - POST /register — Auto-provision user profile + org (called after first login)
36
+ * - POST /register — Auto-provision user profile + org
35
37
  * - POST /logout — Invalidate session
38
+ *
39
+ * Routes created (enableMe, default true):
40
+ * - GET /me — Full user profile + organizations + role
41
+ *
42
+ * Routes created (enableMagicLink):
43
+ * - POST /magic-link — Send passwordless login email
44
+ *
45
+ * Routes created (enableInvites):
46
+ * - POST /invite — Create org invite (requires auth)
47
+ * - POST /invite/accept — Accept invite (requires auth)
48
+ * - GET /invite/:token — Get invite details (public)
36
49
  */
37
50
  export declare function addPublicAuthRoutes(router: Router, config?: PublicAuthRoutesConfig): void;
38
51
  //# sourceMappingURL=routes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../src/shared/auth/routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,MAAM,EAAmC,MAAM,SAAS,CAAC;AAIlE,OAAO,KAAK,EAAE,sBAAsB,EAAiB,MAAM,YAAY,CAAC;AAyBxE;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,sBAA2B,GAClC,IAAI,CAgVN"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../src/shared/auth/routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AAIpD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAyBzD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,sBAA2B,GAClC,IAAI,CA+tBN"}
@@ -2,7 +2,8 @@
2
2
  * Public Auth Routes — Factory
3
3
  *
4
4
  * Standardized authentication routes for all Tetra projects.
5
- * Handles: login, signup, OAuth, token refresh, session, logout, auto-provisioning.
5
+ * Handles: login, signup, OAuth, token refresh, session, /me, register,
6
+ * logout, and optionally magic link and invites.
6
7
  *
7
8
  * Usage:
8
9
  * ```typescript
@@ -11,6 +12,7 @@
11
12
  * const publicAuthRouter = Router();
12
13
  * addPublicAuthRoutes(publicAuthRouter, {
13
14
  * oauthProviders: ['google'],
15
+ * enableInvites: true,
14
16
  * onNewUser: async (supabaseUser, systemClient) => {
15
17
  * // Create org + users_public + membership
16
18
  * return { organizationId: org.id };
@@ -44,21 +46,34 @@ function extractToken(req) {
44
46
  /**
45
47
  * Add standard public authentication routes to a router.
46
48
  *
47
- * Routes created:
49
+ * Routes created (always):
48
50
  * - POST /login — Email + password login
49
- * - POST /signup — Email + password signup (creates Supabase auth user)
51
+ * - POST /signup — Email + password signup
50
52
  * - POST /refresh — Refresh an expired access token
51
53
  * - GET /session — Validate token, return user info
52
54
  * - GET /:provider — Start OAuth flow (e.g., GET /google)
53
55
  * - POST /exchange — Exchange OAuth code for tokens
54
- * - POST /register — Auto-provision user profile + org (called after first login)
56
+ * - POST /register — Auto-provision user profile + org
55
57
  * - POST /logout — Invalidate session
58
+ *
59
+ * Routes created (enableMe, default true):
60
+ * - GET /me — Full user profile + organizations + role
61
+ *
62
+ * Routes created (enableMagicLink):
63
+ * - POST /magic-link — Send passwordless login email
64
+ *
65
+ * Routes created (enableInvites):
66
+ * - POST /invite — Create org invite (requires auth)
67
+ * - POST /invite/accept — Accept invite (requires auth)
68
+ * - GET /invite/:token — Get invite details (public)
56
69
  */
57
70
  export function addPublicAuthRoutes(router, config = {}) {
58
71
  const frontendUrl = config.frontendUrl || process.env.FRONTEND_URL || 'http://localhost:3000';
59
72
  const callbackPath = config.callbackPath || '/auth/callback';
60
73
  const oauthProviders = config.oauthProviders || ['google'];
61
74
  const getSystemDB = config.getSystemDB || getServiceRoleClient;
75
+ const enableMe = config.enableMe !== false; // default true
76
+ const meExtraFields = config.meExtraFields || '';
62
77
  // ── POST /login ────────────────────────────────────────────
63
78
  router.post('/login', async (req, res) => {
64
79
  const { email, password } = req.body;
@@ -199,6 +214,66 @@ export function addPublicAuthRoutes(router, config = {}) {
199
214
  RFC7807ErrorResponse.internalError(res, 'Internal server error');
200
215
  }
201
216
  });
217
+ // ── GET /me ────────────────────────────────────────────────
218
+ if (enableMe) {
219
+ router.get('/me', async (req, res) => {
220
+ const token = extractToken(req);
221
+ if (!token) {
222
+ RFC7807ErrorResponse.unauthorized(res, 'Authentication required');
223
+ return;
224
+ }
225
+ try {
226
+ const supabase = getSystemDB();
227
+ const { data: { user }, error } = await supabase.auth.getUser(token);
228
+ if (error || !user) {
229
+ RFC7807ErrorResponse.unauthorized(res, 'Invalid or expired token');
230
+ return;
231
+ }
232
+ // Load user profile
233
+ const baseFields = 'id, email, is_superadmin, active_organization_id';
234
+ const selectFields = meExtraFields ? `${baseFields}, ${meExtraFields}` : baseFields;
235
+ const { data: profile } = await supabase
236
+ .from('users_public')
237
+ .select(selectFields)
238
+ .eq('id', user.id)
239
+ .maybeSingle();
240
+ // Load organization memberships with org details
241
+ const { data: memberships } = await supabase
242
+ .from('organization_members')
243
+ .select('organization_id, role, organizations(id, name, slug, logo_url)')
244
+ .eq('user_id', user.id)
245
+ .eq('status', 'active');
246
+ const organizations = (memberships || []).map((m) => ({
247
+ id: m.organizations?.id,
248
+ name: m.organizations?.name,
249
+ slug: m.organizations?.slug,
250
+ logo_url: m.organizations?.logo_url,
251
+ role: m.role,
252
+ }));
253
+ const p = profile;
254
+ const activeOrganizationId = p?.active_organization_id || organizations[0]?.id || null;
255
+ const activeOrg = organizations.find((o) => o.id === activeOrganizationId);
256
+ // Build response — spread profile to include any extra fields
257
+ const { id: _id, email: _email, is_superadmin: _sa, active_organization_id: _aoi, ...extraFields } = p || {};
258
+ res.json({
259
+ success: true,
260
+ data: {
261
+ id: user.id,
262
+ email: user.email,
263
+ is_superadmin: p?.is_superadmin || false,
264
+ role: activeOrg?.role || null,
265
+ active_organization_id: activeOrganizationId,
266
+ organizations,
267
+ ...extraFields,
268
+ },
269
+ });
270
+ }
271
+ catch (err) {
272
+ logger.error({ err }, 'Profile fetch error');
273
+ RFC7807ErrorResponse.internalError(res, 'Internal server error');
274
+ }
275
+ });
276
+ }
202
277
  // ── GET /:provider (OAuth start) ──────────────────────────
203
278
  for (const provider of oauthProviders) {
204
279
  router.get(`/${provider}`, async (req, res) => {
@@ -271,14 +346,13 @@ export function addPublicAuthRoutes(router, config = {}) {
271
346
  RFC7807ErrorResponse.unauthorized(res, 'Invalid or expired token');
272
347
  return;
273
348
  }
274
- // Check if user already has a profile
349
+ // Check if user already has a profile with an org
275
350
  const { data: existingProfile } = await supabase
276
351
  .from('users_public')
277
352
  .select('id, active_organization_id')
278
353
  .eq('id', user.id)
279
354
  .maybeSingle();
280
355
  if (existingProfile?.active_organization_id) {
281
- // Already registered
282
356
  res.json({
283
357
  success: true,
284
358
  data: {
@@ -288,7 +362,6 @@ export function addPublicAuthRoutes(router, config = {}) {
288
362
  });
289
363
  return;
290
364
  }
291
- // Call onNewUser hook if configured
292
365
  if (!config.onNewUser) {
293
366
  RFC7807ErrorResponse.internalError(res, 'User provisioning not configured. Set onNewUser in addPublicAuthRoutes config.', { code: 'NO_PROVISIONING', hint: 'Add onNewUser hook to addPublicAuthRoutes() config' });
294
367
  return;
@@ -329,10 +402,287 @@ export function addPublicAuthRoutes(router, config = {}) {
329
402
  res.json({ success: true });
330
403
  }
331
404
  catch (err) {
332
- // Non-critical — client should clear tokens regardless
333
405
  logger.warn({ err }, 'Logout error (non-critical)');
334
406
  res.json({ success: true });
335
407
  }
336
408
  });
409
+ // ── POST /magic-link (optional) ─────────────────────────────
410
+ if (config.enableMagicLink) {
411
+ const mlConfig = config.magicLinkConfig || {};
412
+ const mlRedirectPath = mlConfig.redirectPath || callbackPath;
413
+ router.post('/magic-link', async (req, res) => {
414
+ const { email } = req.body;
415
+ if (!email) {
416
+ RFC7807ErrorResponse.badRequest(res, 'Email is required');
417
+ return;
418
+ }
419
+ // Basic email validation
420
+ if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)) {
421
+ RFC7807ErrorResponse.badRequest(res, 'Invalid email format');
422
+ return;
423
+ }
424
+ try {
425
+ const supabase = getSystemDB();
426
+ const redirectTo = `${frontendUrl}${mlRedirectPath}`;
427
+ if (mlConfig.sendEmail) {
428
+ // Custom email sender: generate link via admin API (does NOT send email)
429
+ const { data: linkData, error: linkError } = await supabase.auth.admin.generateLink({
430
+ type: 'magiclink',
431
+ email,
432
+ options: { redirectTo },
433
+ });
434
+ if (linkError || !linkData.properties?.action_link) {
435
+ logger.error({ error: linkError?.message, email }, 'Magic link generation failed');
436
+ RFC7807ErrorResponse.internalError(res, 'Failed to generate magic link');
437
+ return;
438
+ }
439
+ await mlConfig.sendEmail(email, linkData.properties.action_link, supabase);
440
+ }
441
+ else {
442
+ // Default: let Supabase send the email
443
+ const { error } = await supabase.auth.signInWithOtp({
444
+ email,
445
+ options: { emailRedirectTo: redirectTo },
446
+ });
447
+ if (error) {
448
+ logger.error({ error: error.message, email }, 'Magic link send failed');
449
+ RFC7807ErrorResponse.internalError(res, 'Failed to send magic link');
450
+ return;
451
+ }
452
+ }
453
+ logger.info({ email }, 'Magic link sent');
454
+ res.json({
455
+ success: true,
456
+ data: { message: 'Check your email for the login link.' },
457
+ });
458
+ }
459
+ catch (err) {
460
+ logger.error({ err }, 'Magic link error');
461
+ RFC7807ErrorResponse.internalError(res, 'Internal server error');
462
+ }
463
+ });
464
+ }
465
+ // ── Invite Routes (optional) ──────────────────────────────
466
+ if (config.enableInvites) {
467
+ const invCfg = config.inviteConfig || {};
468
+ const validRoles = invCfg.validRoles || ['admin', 'member', 'viewer'];
469
+ const defaultRole = invCfg.defaultRole || 'member';
470
+ const inviteBaseUrl = invCfg.inviteBaseUrl || frontendUrl;
471
+ const invitePath = invCfg.invitePath || '/invite';
472
+ // POST /invite — Create invite (requires auth)
473
+ router.post('/invite', async (req, res) => {
474
+ const token = extractToken(req);
475
+ if (!token) {
476
+ RFC7807ErrorResponse.unauthorized(res, 'Authentication required');
477
+ return;
478
+ }
479
+ try {
480
+ const supabase = getSystemDB();
481
+ const { data: { user }, error } = await supabase.auth.getUser(token);
482
+ if (error || !user) {
483
+ RFC7807ErrorResponse.unauthorized(res, 'Invalid or expired token');
484
+ return;
485
+ }
486
+ const { organization_id, email, role } = req.body;
487
+ if (!organization_id) {
488
+ RFC7807ErrorResponse.badRequest(res, 'organization_id is required');
489
+ return;
490
+ }
491
+ const inviteRole = validRoles.includes(role) ? role : defaultRole;
492
+ // Verify user is admin of the organization
493
+ const { data: membership } = await supabase
494
+ .from('organization_members')
495
+ .select('role')
496
+ .eq('user_id', user.id)
497
+ .eq('organization_id', organization_id)
498
+ .eq('status', 'active')
499
+ .single();
500
+ if (!membership || (membership.role !== 'admin' && membership.role !== 'owner')) {
501
+ RFC7807ErrorResponse.forbidden(res, 'Only organization admins can create invites');
502
+ return;
503
+ }
504
+ // Create invite
505
+ const { data: invite, error: inviteError } = await supabase
506
+ .from('organization_invites')
507
+ .insert({
508
+ organization_id,
509
+ email: email || null,
510
+ role: inviteRole,
511
+ invited_by: user.id,
512
+ })
513
+ .select('id, token')
514
+ .single();
515
+ if (inviteError || !invite) {
516
+ logger.error({ inviteError }, 'Invite creation failed');
517
+ RFC7807ErrorResponse.internalError(res, 'Failed to create invite');
518
+ return;
519
+ }
520
+ const inviteUrl = `${inviteBaseUrl}${invitePath}/${invite.token}`;
521
+ res.status(201).json({
522
+ success: true,
523
+ data: {
524
+ invite_id: invite.id,
525
+ invite_url: inviteUrl,
526
+ token: invite.token,
527
+ },
528
+ });
529
+ }
530
+ catch (err) {
531
+ logger.error({ err }, 'Invite creation error');
532
+ RFC7807ErrorResponse.internalError(res, 'Internal server error');
533
+ }
534
+ });
535
+ // POST /invite/accept — Accept invite (requires auth)
536
+ router.post('/invite/accept', async (req, res) => {
537
+ const token = extractToken(req);
538
+ if (!token) {
539
+ RFC7807ErrorResponse.unauthorized(res, 'Authentication required. Log in first.');
540
+ return;
541
+ }
542
+ try {
543
+ const supabase = getSystemDB();
544
+ const { data: { user }, error } = await supabase.auth.getUser(token);
545
+ if (error || !user) {
546
+ RFC7807ErrorResponse.unauthorized(res, 'Invalid or expired token');
547
+ return;
548
+ }
549
+ const { invite_token } = req.body;
550
+ if (!invite_token) {
551
+ RFC7807ErrorResponse.badRequest(res, 'invite_token is required');
552
+ return;
553
+ }
554
+ // Find pending invite
555
+ const { data: invite } = await supabase
556
+ .from('organization_invites')
557
+ .select('id, organization_id, role, email, status, expires_at')
558
+ .eq('token', invite_token)
559
+ .eq('status', 'pending')
560
+ .single();
561
+ if (!invite) {
562
+ RFC7807ErrorResponse.notFound(res, 'Invite not found or already used');
563
+ return;
564
+ }
565
+ // Check expiry
566
+ if (new Date(invite.expires_at) < new Date()) {
567
+ await supabase
568
+ .from('organization_invites')
569
+ .update({ status: 'expired' })
570
+ .eq('id', invite.id);
571
+ RFC7807ErrorResponse.send(res, 410, 'gone', 'Gone', 'Invite has expired');
572
+ return;
573
+ }
574
+ // If invite is for a specific email, verify match
575
+ if (invite.email && invite.email.toLowerCase() !== (user.email || '').toLowerCase()) {
576
+ RFC7807ErrorResponse.forbidden(res, 'This invite is for a different email address');
577
+ return;
578
+ }
579
+ // Check if already a member
580
+ const { data: existing } = await supabase
581
+ .from('organization_members')
582
+ .select('id')
583
+ .eq('user_id', user.id)
584
+ .eq('organization_id', invite.organization_id)
585
+ .maybeSingle();
586
+ if (existing) {
587
+ await supabase
588
+ .from('organization_invites')
589
+ .update({ status: 'accepted', accepted_by: user.id, accepted_at: new Date().toISOString() })
590
+ .eq('id', invite.id);
591
+ res.json({ success: true, data: { message: 'Already a member of this organization' } });
592
+ return;
593
+ }
594
+ // Ensure users_public record exists
595
+ const { data: existingProfile } = await supabase
596
+ .from('users_public')
597
+ .select('id')
598
+ .eq('id', user.id)
599
+ .maybeSingle();
600
+ if (!existingProfile) {
601
+ await supabase
602
+ .from('users_public')
603
+ .insert({
604
+ id: user.id,
605
+ email: user.email || '',
606
+ active_organization_id: invite.organization_id,
607
+ is_superadmin: false,
608
+ });
609
+ }
610
+ // Add as member
611
+ const { error: memberError } = await supabase
612
+ .from('organization_members')
613
+ .insert({
614
+ organization_id: invite.organization_id,
615
+ user_id: user.id,
616
+ role: invite.role,
617
+ status: 'active',
618
+ });
619
+ if (memberError) {
620
+ logger.error({ memberError }, 'Failed to create membership from invite');
621
+ RFC7807ErrorResponse.internalError(res, 'Failed to accept invite');
622
+ return;
623
+ }
624
+ // Mark invite as accepted
625
+ await supabase
626
+ .from('organization_invites')
627
+ .update({ status: 'accepted', accepted_by: user.id, accepted_at: new Date().toISOString() })
628
+ .eq('id', invite.id);
629
+ // Get org name for response
630
+ const { data: org } = await supabase
631
+ .from('organizations')
632
+ .select('name')
633
+ .eq('id', invite.organization_id)
634
+ .single();
635
+ logger.info({ userId: user.id, organizationId: invite.organization_id }, 'Invite accepted');
636
+ res.json({
637
+ success: true,
638
+ data: {
639
+ message: `Joined ${org?.name || 'organization'} successfully`,
640
+ organization_id: invite.organization_id,
641
+ },
642
+ });
643
+ }
644
+ catch (err) {
645
+ logger.error({ err }, 'Invite accept error');
646
+ RFC7807ErrorResponse.internalError(res, 'Internal server error');
647
+ }
648
+ });
649
+ // GET /invite/:token — Get invite details (public)
650
+ router.get('/invite/:token', async (req, res) => {
651
+ try {
652
+ const supabase = getSystemDB();
653
+ const { data: invite } = await supabase
654
+ .from('organization_invites')
655
+ .select('id, organization_id, email, role, status, expires_at, organizations(name)')
656
+ .eq('token', req.params.token)
657
+ .single();
658
+ if (!invite) {
659
+ RFC7807ErrorResponse.notFound(res, 'Invite not found');
660
+ return;
661
+ }
662
+ if (invite.status !== 'pending') {
663
+ RFC7807ErrorResponse.send(res, 410, 'gone', 'Gone', 'Invite has already been used or revoked');
664
+ return;
665
+ }
666
+ if (new Date(invite.expires_at) < new Date()) {
667
+ RFC7807ErrorResponse.send(res, 410, 'gone', 'Gone', 'Invite has expired');
668
+ return;
669
+ }
670
+ const org = invite.organizations;
671
+ res.json({
672
+ success: true,
673
+ data: {
674
+ organization_name: org?.name || 'Unknown',
675
+ role: invite.role,
676
+ email: invite.email || null,
677
+ expires_at: invite.expires_at,
678
+ },
679
+ });
680
+ }
681
+ catch (err) {
682
+ logger.error({ err }, 'Invite details error');
683
+ RFC7807ErrorResponse.internalError(res, 'Internal server error');
684
+ }
685
+ });
686
+ }
337
687
  }
338
688
  //# sourceMappingURL=routes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../src/shared/auth/routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../../src/shared/auth/routes.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,44 @@ export interface OnNewUserResult {
18
18
  * OAuth provider configuration.
19
19
  */
20
20
  export type OAuthProvider = 'google' | 'github' | 'azure' | 'apple';
21
+ /**
22
+ * User profile returned by GET /me.
23
+ */
24
+ export interface UserProfileOrg {
25
+ id: string;
26
+ name: string;
27
+ slug?: string;
28
+ logo_url?: string | null;
29
+ role: string;
30
+ }
31
+ /**
32
+ * Magic link configuration.
33
+ */
34
+ export interface MagicLinkConfig {
35
+ /**
36
+ * Custom email sender. If not provided, Supabase sends the email itself.
37
+ * Receives the magic link URL and user email — you handle the sending.
38
+ */
39
+ sendEmail?: (email: string, magicLinkUrl: string, systemClient: SupabaseClient) => Promise<void>;
40
+ /**
41
+ * Frontend redirect path after magic link click.
42
+ * Default: '/auth/callback'
43
+ */
44
+ redirectPath?: string;
45
+ }
46
+ /**
47
+ * Invite configuration.
48
+ */
49
+ export interface InviteConfig {
50
+ /** Valid roles for invites. Default: ['admin', 'member', 'viewer'] */
51
+ validRoles?: string[];
52
+ /** Default role for new invites. Default: 'member' */
53
+ defaultRole?: string;
54
+ /** Frontend base URL for invite links. Default: process.env.FRONTEND_URL */
55
+ inviteBaseUrl?: string;
56
+ /** Frontend path for invite acceptance page. Default: '/invite' */
57
+ invitePath?: string;
58
+ }
21
59
  /**
22
60
  * Configuration for addPublicAuthRoutes().
23
61
  */
@@ -45,6 +83,36 @@ export interface PublicAuthRoutesConfig {
45
83
  * Return { organizationId } on success, or null to skip auto-provisioning.
46
84
  */
47
85
  onNewUser?: (supabaseUser: SupabaseUser, systemClient: SupabaseClient) => Promise<OnNewUserResult | null>;
86
+ /**
87
+ * Enable GET /me route — user profile + organizations + role.
88
+ * Default: true
89
+ */
90
+ enableMe?: boolean;
91
+ /**
92
+ * Extra fields to select from users_public in /me.
93
+ * These are appended to the base select: 'id, email, is_superadmin, active_organization_id'.
94
+ * Example: 'name, avatar_url, language'
95
+ */
96
+ meExtraFields?: string;
97
+ /**
98
+ * Enable magic link route (POST /magic-link).
99
+ * Default: false
100
+ */
101
+ enableMagicLink?: boolean;
102
+ /**
103
+ * Magic link configuration. Only used when enableMagicLink is true.
104
+ */
105
+ magicLinkConfig?: MagicLinkConfig;
106
+ /**
107
+ * Enable invite routes (POST /invite, POST /invite/accept, GET /invite/:token).
108
+ * Requires organization_invites table in your database.
109
+ * Default: false
110
+ */
111
+ enableInvites?: boolean;
112
+ /**
113
+ * Invite configuration. Only used when enableInvites is true.
114
+ */
115
+ inviteConfig?: InviteConfig;
48
116
  /**
49
117
  * Function to get a system-level Supabase client.
50
118
  * Default: uses SUPABASE_SERVICE_ROLE_KEY from env.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/shared/auth/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAElF;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,mDAAmD;IACnD,cAAc,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;AAEpE;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IAEjC;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,CACV,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,cAAc,KACzB,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;IAErC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,cAAc,CAAC;CACpC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/shared/auth/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAElF;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,mDAAmD;IACnD,cAAc,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;AAEpE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,SAAS,CAAC,EAAE,CACV,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,cAAc,KACzB,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,sEAAsE;IACtE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IAEjC;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,CACV,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,cAAc,KACzB,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;IAErC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;OAEG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;OAEG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAE5B;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,cAAc,CAAC;CACpC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@soulbatical/tetra-core",
3
- "version": "0.1.12",
3
+ "version": "0.1.14",
4
4
  "publishConfig": {
5
5
  "access": "restricted"
6
6
  },