@lastbrain/ai-ui-core 1.0.54 → 1.0.55
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/client/createClient.js +2 -2
- package/dist/route-handlers/nextjs/enhanced-gateway.d.ts.map +1 -1
- package/dist/route-handlers/nextjs/lb-proxy.d.ts.map +1 -1
- package/dist/route-handlers/nextjs/lb-proxy.js +25 -24
- package/package.json +1 -1
- package/src/client/createClient.ts +2 -2
- package/src/client/lb-client.ts +4 -4
- package/src/route-handlers/nextjs/lb-proxy.ts +27 -26
|
@@ -165,7 +165,7 @@ export function createClient(config) {
|
|
|
165
165
|
// Silently fail - don't block the response
|
|
166
166
|
});
|
|
167
167
|
}
|
|
168
|
-
catch
|
|
168
|
+
catch {
|
|
169
169
|
// Ignore tracking errors
|
|
170
170
|
}
|
|
171
171
|
}
|
|
@@ -207,7 +207,7 @@ export function createClient(config) {
|
|
|
207
207
|
// Silently fail - don't block the response
|
|
208
208
|
});
|
|
209
209
|
}
|
|
210
|
-
catch
|
|
210
|
+
catch {
|
|
211
211
|
// Ignore tracking errors
|
|
212
212
|
}
|
|
213
213
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enhanced-gateway.d.ts","sourceRoot":"","sources":["../../../src/route-handlers/nextjs/enhanced-gateway.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,GAAG;;
|
|
1
|
+
{"version":3,"file":"enhanced-gateway.d.ts","sourceRoot":"","sources":["../../../src/route-handlers/nextjs/enhanced-gateway.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,GAAG;;YAKqtC,CAAC;;iDALvsC,CAAC;AAChC,eAAO,MAAM,IAAI;;YAIotC,CAAC;;iDAJrsC,CAAC;AAClC,eAAO,MAAM,GAAG;;YAGqtC,CAAC;;iDAHvsC,CAAC;AAChC,eAAO,MAAM,MAAM;;YAEktC,CAAC;;iDAFjsC,CAAC;AACtC,eAAO,MAAM,KAAK;;YACmtC,CAAC;;iDADnsC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lb-proxy.d.ts","sourceRoot":"","sources":["../../../src/route-handlers/nextjs/lb-proxy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,GAAE,aAAkB;mBA4BlD,WAAW,YACV;QAAE,MAAM,EAAE,OAAO,CAAC;YAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE,KACjD,OAAO,CAAC,YAAY,CAAC;oBAFb,WAAW,YACV;QAAE,MAAM,EAAE,OAAO,CAAC;YAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE,KACjD,OAAO,CAAC,YAAY,CAAC;mBAFb,WAAW,YACV;QAAE,MAAM,EAAE,OAAO,CAAC;YAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE,KACjD,OAAO,CAAC,YAAY,CAAC;sBAFb,WAAW,YACV;QAAE,MAAM,EAAE,OAAO,CAAC;YAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE,KACjD,OAAO,CAAC,YAAY,CAAC;qBAFb,WAAW,YACV;QAAE,MAAM,EAAE,OAAO,CAAC;YAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE,KACjD,OAAO,CAAC,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"lb-proxy.d.ts","sourceRoot":"","sources":["../../../src/route-handlers/nextjs/lb-proxy.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,GAAE,aAAkB;mBA4BlD,WAAW,YACV;QAAE,MAAM,EAAE,OAAO,CAAC;YAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE,KACjD,OAAO,CAAC,YAAY,CAAC;oBAFb,WAAW,YACV;QAAE,MAAM,EAAE,OAAO,CAAC;YAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE,KACjD,OAAO,CAAC,YAAY,CAAC;mBAFb,WAAW,YACV;QAAE,MAAM,EAAE,OAAO,CAAC;YAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE,KACjD,OAAO,CAAC,YAAY,CAAC;sBAFb,WAAW,YACV;QAAE,MAAM,EAAE,OAAO,CAAC;YAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE,KACjD,OAAO,CAAC,YAAY,CAAC;qBAFb,WAAW,YACV;QAAE,MAAM,EAAE,OAAO,CAAC;YAAE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAA;KAAE,KACjD,OAAO,CAAC,YAAY,CAAC;EAwJzB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,YAAY,EACtB,YAAY,EAAE,MAAM,EACpB,SAAS,GAAE,MAAe,GACzB,YAAY,CAYd;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,YAAY,GAAG,YAAY,CAGzE"}
|
|
@@ -26,7 +26,7 @@ export function createLBProxyHandler(config = {}) {
|
|
|
26
26
|
* - Legacy : pas de préfixe si baseUrl contient déjà /api/public/v1
|
|
27
27
|
* - Sinon : /api/ai pour toutes les routes
|
|
28
28
|
*/
|
|
29
|
-
function getApiPrefix(
|
|
29
|
+
function getApiPrefix(_path) {
|
|
30
30
|
if (isLegacyBaseUrl) {
|
|
31
31
|
return ""; // Legacy: baseUrl contient déjà le préfixe
|
|
32
32
|
}
|
|
@@ -97,33 +97,34 @@ export function createLBProxyHandler(config = {}) {
|
|
|
97
97
|
}
|
|
98
98
|
headers["Cookie"] = cookieParts.join("; ");
|
|
99
99
|
}
|
|
100
|
-
// Authentification
|
|
100
|
+
// Authentification priorité:
|
|
101
|
+
// 1) Authorization/x-lb-api-key explicites du client
|
|
102
|
+
// 2) lb_session cookie (identité utilisateur)
|
|
103
|
+
// 3) LB_API_KEY fallback serveur (mode service)
|
|
101
104
|
if (!authorization && !explicitApiKeyHeader) {
|
|
102
|
-
if (
|
|
105
|
+
if (sessionToken) {
|
|
106
|
+
// Envoyer le cookie à la fois comme Authorization ET comme Cookie
|
|
107
|
+
// pour que le backend résolve correctement authType=lb_session.
|
|
108
|
+
headers["Authorization"] = `Bearer ${sessionToken}`;
|
|
109
|
+
console.log("[LB Proxy] Forwarding session cookie:", {
|
|
110
|
+
name: sessionCookieName,
|
|
111
|
+
hasValue: !!sessionToken,
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
else if (apiKey) {
|
|
103
115
|
headers["x-lb-api-key"] = apiKey;
|
|
104
116
|
headers["Authorization"] = `Bearer ${apiKey}`;
|
|
105
117
|
}
|
|
106
|
-
else {
|
|
107
|
-
//
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
}
|
|
116
|
-
else if (!isPublicPath) {
|
|
117
|
-
// Pas d'auth disponible et route protégée
|
|
118
|
-
console.log("[LB Proxy] No auth available for protected route:", {
|
|
119
|
-
path,
|
|
120
|
-
isPublicPath,
|
|
121
|
-
});
|
|
122
|
-
return NextResponse.json({
|
|
123
|
-
error: "No authentication provided",
|
|
124
|
-
hint: "Set LB_API_KEY env variable or login via /api/lastbrain/auth/login",
|
|
125
|
-
}, { status: 401 });
|
|
126
|
-
}
|
|
118
|
+
else if (!isPublicPath) {
|
|
119
|
+
// Pas d'auth disponible et route protégée
|
|
120
|
+
console.log("[LB Proxy] No auth available for protected route:", {
|
|
121
|
+
path,
|
|
122
|
+
isPublicPath,
|
|
123
|
+
});
|
|
124
|
+
return NextResponse.json({
|
|
125
|
+
error: "No authentication provided",
|
|
126
|
+
hint: "Set LB_API_KEY env variable or login via /api/lastbrain/auth/login",
|
|
127
|
+
}, { status: 401 });
|
|
127
128
|
}
|
|
128
129
|
}
|
|
129
130
|
// Lire le body si c'est POST/PUT/PATCH
|
package/package.json
CHANGED
|
@@ -231,7 +231,7 @@ export function createClient(config: ClientConfig) {
|
|
|
231
231
|
}).catch(() => {
|
|
232
232
|
// Silently fail - don't block the response
|
|
233
233
|
});
|
|
234
|
-
} catch
|
|
234
|
+
} catch {
|
|
235
235
|
// Ignore tracking errors
|
|
236
236
|
}
|
|
237
237
|
}
|
|
@@ -280,7 +280,7 @@ export function createClient(config: ClientConfig) {
|
|
|
280
280
|
}).catch(() => {
|
|
281
281
|
// Silently fail - don't block the response
|
|
282
282
|
});
|
|
283
|
-
} catch
|
|
283
|
+
} catch {
|
|
284
284
|
// Ignore tracking errors
|
|
285
285
|
}
|
|
286
286
|
}
|
package/src/client/lb-client.ts
CHANGED
|
@@ -269,10 +269,10 @@ export class LBClient {
|
|
|
269
269
|
|
|
270
270
|
async verifySession(sessionToken?: string): Promise<LBSession | null> {
|
|
271
271
|
try {
|
|
272
|
-
const response = await this.request<{
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
);
|
|
272
|
+
const response = await this.request<{
|
|
273
|
+
session?: LBSession;
|
|
274
|
+
user?: any;
|
|
275
|
+
}>("/auth/session/verify", { method: "GET", sessionToken });
|
|
276
276
|
return response?.session || null;
|
|
277
277
|
} catch {
|
|
278
278
|
return null;
|
|
@@ -46,7 +46,7 @@ export function createLBProxyHandler(config: LBProxyConfig = {}) {
|
|
|
46
46
|
* - Legacy : pas de préfixe si baseUrl contient déjà /api/public/v1
|
|
47
47
|
* - Sinon : /api/ai pour toutes les routes
|
|
48
48
|
*/
|
|
49
|
-
function getApiPrefix(
|
|
49
|
+
function getApiPrefix(_path: string): string {
|
|
50
50
|
if (isLegacyBaseUrl) {
|
|
51
51
|
return ""; // Legacy: baseUrl contient déjà le préfixe
|
|
52
52
|
}
|
|
@@ -129,34 +129,35 @@ export function createLBProxyHandler(config: LBProxyConfig = {}) {
|
|
|
129
129
|
headers["Cookie"] = cookieParts.join("; ");
|
|
130
130
|
}
|
|
131
131
|
|
|
132
|
-
// Authentification
|
|
132
|
+
// Authentification priorité:
|
|
133
|
+
// 1) Authorization/x-lb-api-key explicites du client
|
|
134
|
+
// 2) lb_session cookie (identité utilisateur)
|
|
135
|
+
// 3) LB_API_KEY fallback serveur (mode service)
|
|
133
136
|
if (!authorization && !explicitApiKeyHeader) {
|
|
134
|
-
if (
|
|
137
|
+
if (sessionToken) {
|
|
138
|
+
// Envoyer le cookie à la fois comme Authorization ET comme Cookie
|
|
139
|
+
// pour que le backend résolve correctement authType=lb_session.
|
|
140
|
+
headers["Authorization"] = `Bearer ${sessionToken}`;
|
|
141
|
+
console.log("[LB Proxy] Forwarding session cookie:", {
|
|
142
|
+
name: sessionCookieName,
|
|
143
|
+
hasValue: !!sessionToken,
|
|
144
|
+
});
|
|
145
|
+
} else if (apiKey) {
|
|
135
146
|
headers["x-lb-api-key"] = apiKey;
|
|
136
147
|
headers["Authorization"] = `Bearer ${apiKey}`;
|
|
137
|
-
} else {
|
|
138
|
-
//
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
isPublicPath,
|
|
151
|
-
});
|
|
152
|
-
return NextResponse.json(
|
|
153
|
-
{
|
|
154
|
-
error: "No authentication provided",
|
|
155
|
-
hint: "Set LB_API_KEY env variable or login via /api/lastbrain/auth/login",
|
|
156
|
-
},
|
|
157
|
-
{ status: 401 }
|
|
158
|
-
);
|
|
159
|
-
}
|
|
148
|
+
} else if (!isPublicPath) {
|
|
149
|
+
// Pas d'auth disponible et route protégée
|
|
150
|
+
console.log("[LB Proxy] No auth available for protected route:", {
|
|
151
|
+
path,
|
|
152
|
+
isPublicPath,
|
|
153
|
+
});
|
|
154
|
+
return NextResponse.json(
|
|
155
|
+
{
|
|
156
|
+
error: "No authentication provided",
|
|
157
|
+
hint: "Set LB_API_KEY env variable or login via /api/lastbrain/auth/login",
|
|
158
|
+
},
|
|
159
|
+
{ status: 401 }
|
|
160
|
+
);
|
|
160
161
|
}
|
|
161
162
|
}
|
|
162
163
|
|