better-auth-studio 1.1.2-beta.8 → 1.1.2-beta.9

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.
@@ -5,7 +5,7 @@
5
5
  <link rel="icon" type="image/png" href="/logo.png" />
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
  <title>Better Auth Studio</title>
8
- <script type="module" crossorigin src="/assets/main-CeN9M3ie.js"></script>
8
+ <script type="module" crossorigin src="/assets/main-BwHzqU9D.js"></script>
9
9
  <link rel="stylesheet" crossorigin href="/assets/main-GcANPjqc.css">
10
10
  </head>
11
11
  <body>
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAqBA,OAAO,EAA+B,MAAM,EAAE,MAAM,SAAS,CAAC;AAW9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAK9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AA0GnE,wBAAsB,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,UAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAqLhG;AAeD,wBAAgB,YAAY,CAC1B,UAAU,EAAE,UAAU,EACtB,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,EAClB,gBAAgB,CAAC,EAAE,GAAG,EACtB,oBAAoB,CAAC,EAAE,GAAG,EAC1B,YAAY,CAAC,EAAE,kBAAkB,EACjC,YAAY,CAAC,EAAE,GAAG,EAClB,YAAY,CAAC,EAAE,YAAY,GAC1B,MAAM,CAs0NR;AAED,wBAAsB,sBAAsB,CAAC,GAAG,EAAE;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,IAAI,EAAE,GAAG,CAAC;IACV,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,GAAG,OAAO,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,GAAG,CAAC;IACV,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,GAAG,CAAA;KAAE,CAAC,CAAC;CAChE,CAAC,CAgGD"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../src/routes.ts"],"names":[],"mappings":"AAqBA,OAAO,EAA+B,MAAM,EAAE,MAAM,SAAS,CAAC;AAW9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAK9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AA0GnE,wBAAsB,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,UAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAqLhG;AAeD,wBAAgB,YAAY,CAC1B,UAAU,EAAE,UAAU,EACtB,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,EAClB,gBAAgB,CAAC,EAAE,GAAG,EACtB,oBAAoB,CAAC,EAAE,GAAG,EAC1B,YAAY,CAAC,EAAE,kBAAkB,EACjC,YAAY,CAAC,EAAE,GAAG,EAClB,YAAY,CAAC,EAAE,YAAY,GAC1B,MAAM,CAo3NR;AAED,wBAAsB,sBAAsB,CAAC,GAAG,EAAE;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,IAAI,EAAE,GAAG,CAAC;IACV,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,kBAAkB,CAAC;IAClC,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,GAAG,OAAO,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,GAAG,CAAC;IACV,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,GAAG,CAAA;KAAE,CAAC,CAAC;CAChE,CAAC,CAgGD"}
package/dist/routes.js CHANGED
@@ -418,6 +418,23 @@ export function createRoutes(authConfig, configPath, geoDbPath, preloadedAdapter
418
418
  return res.status(401).json({ error: 'Unauthorized', message: result.error });
419
419
  }
420
420
  req.studioSession = result.session;
421
+ // Extend session expiry time on each authenticated request
422
+ if (result.session) {
423
+ const refreshedSession = createStudioSession({
424
+ id: result.session.userId,
425
+ email: result.session.email,
426
+ name: result.session.name,
427
+ role: result.session.role,
428
+ }, getSessionDuration());
429
+ const encryptedSession = encryptSession(refreshedSession, getSessionSecret());
430
+ res.cookie(STUDIO_COOKIE_NAME, encryptedSession, {
431
+ httpOnly: true,
432
+ secure: process.env.NODE_ENV === 'production',
433
+ sameSite: 'lax',
434
+ maxAge: getSessionDuration(),
435
+ path: '/',
436
+ });
437
+ }
421
438
  }
422
439
  next();
423
440
  });
@@ -705,6 +722,23 @@ export function createRoutes(authConfig, configPath, geoDbPath, preloadedAdapter
705
722
  if (!isSessionValid(session)) {
706
723
  return res.json({ authenticated: false, reason: 'expired' });
707
724
  }
725
+ // Extend session expiry time on each successful check
726
+ if (session) {
727
+ const refreshedSession = createStudioSession({
728
+ id: session.userId,
729
+ email: session.email,
730
+ name: session.name,
731
+ role: session.role,
732
+ }, getSessionDuration());
733
+ const encryptedSession = encryptSession(refreshedSession, getSessionSecret());
734
+ res.cookie(STUDIO_COOKIE_NAME, encryptedSession, {
735
+ httpOnly: true,
736
+ secure: process.env.NODE_ENV === 'production',
737
+ sameSite: 'lax',
738
+ maxAge: getSessionDuration(),
739
+ path: '/',
740
+ });
741
+ }
708
742
  return res.json({
709
743
  authenticated: true,
710
744
  user: {
@@ -712,7 +746,6 @@ export function createRoutes(authConfig, configPath, geoDbPath, preloadedAdapter
712
746
  email: session.email,
713
747
  name: session.name,
714
748
  role: session.role,
715
- image: session.image,
716
749
  },
717
750
  });
718
751
  });
@@ -1646,6 +1679,8 @@ export function createRoutes(authConfig, configPath, geoDbPath, preloadedAdapter
1646
1679
  const sort = req.query.sort || 'desc'; // Default: 'desc' = newest first
1647
1680
  const type = req.query.type;
1648
1681
  const userId = req.query.userId;
1682
+ const sinceParam = req.query.since; // ISO timestamp string
1683
+ const since = sinceParam ? new Date(sinceParam) : undefined;
1649
1684
  const { getEventIngestionProvider, isEventIngestionInitialized } = await import('./utils/event-ingestion.js');
1650
1685
  // Check if event ingestion is initialized, if not, try to initialize it
1651
1686
  if (!isEventIngestionInitialized()) {
@@ -1716,6 +1751,7 @@ export function createRoutes(authConfig, configPath, geoDbPath, preloadedAdapter
1716
1751
  sort: sort,
1717
1752
  type,
1718
1753
  userId,
1754
+ since,
1719
1755
  });
1720
1756
  // Import event utilities for template fallback
1721
1757
  const eventTypes = await import('./types/events.js');