@payez/next-mvp 4.0.16 → 4.0.18

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.
@@ -123,7 +123,7 @@ function createBetterAuthInstance(idpConfig) {
123
123
  return;
124
124
  }
125
125
  // Call IDP oauth-callback to get IDP tokens
126
- const idpUrl = process.env.INTERNAL_IDP_URL || process.env.IDP_URL || '';
126
+ const idpUrl = process.env.IDP_URL || '';
127
127
  if (!idpUrl) {
128
128
  console.warn('[BETTER_AUTH] No IDP URL configured, skipping token exchange');
129
129
  return;
@@ -70,7 +70,7 @@ function JwtInspectPage() {
70
70
  (0, react_1.useEffect)(() => {
71
71
  if (!session)
72
72
  return;
73
- fetch('/api/test-env/session-data')
73
+ fetch('/api/internal/session-data')
74
74
  .then(r => r.ok ? r.json() : null)
75
75
  .then(d => {
76
76
  if (d)
@@ -8,6 +8,39 @@
8
8
  *
9
9
  * All server-side auth flows go through the Better Auth instance.
10
10
  */
11
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ var desc = Object.getOwnPropertyDescriptor(m, k);
14
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
15
+ desc = { enumerable: true, get: function() { return m[k]; } };
16
+ }
17
+ Object.defineProperty(o, k2, desc);
18
+ }) : (function(o, m, k, k2) {
19
+ if (k2 === undefined) k2 = k;
20
+ o[k2] = m[k];
21
+ }));
22
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
23
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
24
+ }) : function(o, v) {
25
+ o["default"] = v;
26
+ });
27
+ var __importStar = (this && this.__importStar) || (function () {
28
+ var ownKeys = function(o) {
29
+ ownKeys = Object.getOwnPropertyNames || function (o) {
30
+ var ar = [];
31
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
32
+ return ar;
33
+ };
34
+ return ownKeys(o);
35
+ };
36
+ return function (mod) {
37
+ if (mod && mod.__esModule) return mod;
38
+ var result = {};
39
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
40
+ __setModuleDefault(result, mod);
41
+ return result;
42
+ };
43
+ })();
11
44
  Object.defineProperty(exports, "__esModule", { value: true });
12
45
  exports.getAuthInstance = getAuthInstance;
13
46
  exports.getSession = getSession;
@@ -43,6 +76,27 @@ async function getSession(request) {
43
76
  return null;
44
77
  try {
45
78
  const session = await auth.api.getSession({ headers: request.headers });
79
+ if (!session?.session?.token || !session?.user)
80
+ return session;
81
+ // Enrich with IDP tokens from Redis (stored by post-login hook)
82
+ try {
83
+ const { getRedis } = await Promise.resolve().then(() => __importStar(require('../lib/redis')));
84
+ const { getAppSlug } = await Promise.resolve().then(() => __importStar(require('../lib/app-slug')));
85
+ const baKey = `ba:${getAppSlug()}:${session.session.token}`;
86
+ const baRaw = await getRedis().get(baKey);
87
+ if (baRaw) {
88
+ const baData = JSON.parse(baRaw);
89
+ if (baData.idpTokens) {
90
+ const u = session.user;
91
+ u.roles = baData.idpTokens.roles || [];
92
+ u.userId = baData.idpTokens.userId;
93
+ u.idpAccessToken = baData.idpTokens.idpAccessToken;
94
+ u.idpRefreshToken = baData.idpTokens.idpRefreshToken;
95
+ u.idpAccessTokenExpires = baData.idpTokens.idpAccessTokenExpires;
96
+ }
97
+ }
98
+ }
99
+ catch { /* Redis unavailable */ }
46
100
  return session;
47
101
  }
48
102
  catch {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@payez/next-mvp",
3
- "version": "4.0.16",
3
+ "version": "4.0.18",
4
4
  "sideEffects": false,
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -134,7 +134,7 @@ export function createBetterAuthInstance(idpConfig: IDPClientConfig) {
134
134
  }
135
135
 
136
136
  // Call IDP oauth-callback to get IDP tokens
137
- const idpUrl = process.env.INTERNAL_IDP_URL || process.env.IDP_URL || '';
137
+ const idpUrl = process.env.IDP_URL || '';
138
138
  if (!idpUrl) {
139
139
  console.warn('[BETTER_AUTH] No IDP URL configured, skipping token exchange');
140
140
  return;
@@ -67,7 +67,7 @@ export function JwtInspectPage() {
67
67
  // Fetch enriched session from server (has IDP tokens, roles, userId)
68
68
  useEffect(() => {
69
69
  if (!session) return;
70
- fetch('/api/test-env/session-data')
70
+ fetch('/api/internal/session-data')
71
71
  .then(r => r.ok ? r.json() : null)
72
72
  .then(d => {
73
73
  if (d) setServerSession(d);
@@ -41,6 +41,27 @@ export async function getSession(request?: Request): Promise<any> {
41
41
 
42
42
  try {
43
43
  const session = await auth.api.getSession({ headers: request.headers });
44
+ if (!session?.session?.token || !session?.user) return session;
45
+
46
+ // Enrich with IDP tokens from Redis (stored by post-login hook)
47
+ try {
48
+ const { getRedis } = await import('../lib/redis');
49
+ const { getAppSlug } = await import('../lib/app-slug');
50
+ const baKey = `ba:${getAppSlug()}:${session.session.token}`;
51
+ const baRaw = await getRedis().get(baKey);
52
+ if (baRaw) {
53
+ const baData = JSON.parse(baRaw);
54
+ if (baData.idpTokens) {
55
+ const u = session.user as any;
56
+ u.roles = baData.idpTokens.roles || [];
57
+ u.userId = baData.idpTokens.userId;
58
+ u.idpAccessToken = baData.idpTokens.idpAccessToken;
59
+ u.idpRefreshToken = baData.idpTokens.idpRefreshToken;
60
+ u.idpAccessTokenExpires = baData.idpTokens.idpAccessTokenExpires;
61
+ }
62
+ }
63
+ } catch { /* Redis unavailable */ }
64
+
44
65
  return session;
45
66
  } catch {
46
67
  return null;