@lastbrain/ai-ui-core 1.0.53 → 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/client/lb-client.d.ts.map +1 -1
- package/dist/client/lb-client.js +4 -1
- 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/dist/types/auth.d.ts +2 -0
- package/dist/types/auth.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/client/createClient.ts +2 -2
- package/src/client/lb-client.ts +21 -9
- package/src/route-handlers/nextjs/lb-proxy.ts +27 -26
- package/src/types/auth.ts +2 -0
|
@@ -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":"lb-client.d.ts","sourceRoot":"","sources":["../../src/client/lb-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,SAAS,EAET,aAAa,EACb,QAAQ,EACR,eAAe,EAChB,MAAM,eAAe,CAAC;AAEvB,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,SAAS,GAAG,YAAY,GAAG,UAAU,CAAC;IAChD,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,EAAE;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,GAAG,EAAE,MAAM,CAAC;KACb,GAAG,IAAI,CAAC;IACT,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE;QACR,iBAAiB,EAAE,MAAM,CAAC;QAC1B,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,MAAM,WAAW,cAAe,SAAQ,YAAY;IAClD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,kBAAkB,CAAC;CAClC;AA0CD,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAiC;IACtD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;gBAErC,MAAM,GAAE,cAAmB;IASvC,cAAc,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"lb-client.d.ts","sourceRoot":"","sources":["../../src/client/lb-client.ts"],"names":[],"mappings":"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"}
|
package/dist/client/lb-client.js
CHANGED
|
@@ -132,7 +132,10 @@ export class LBClient {
|
|
|
132
132
|
}
|
|
133
133
|
async getHistory(params, sessionToken) {
|
|
134
134
|
const search = params ? `?${new URLSearchParams(params).toString()}` : "";
|
|
135
|
-
return this.request(`/auth/history${search}`, {
|
|
135
|
+
return this.request(`/auth/history${search}`, {
|
|
136
|
+
method: "GET",
|
|
137
|
+
sessionToken,
|
|
138
|
+
});
|
|
136
139
|
}
|
|
137
140
|
async getHistoryItem(id, sessionToken) {
|
|
138
141
|
return this.request(`/auth/history/${id}`, { method: "GET", sessionToken });
|
|
@@ -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/dist/types/auth.d.ts
CHANGED
package/dist/types/auth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/types/auth.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,8BAA8B;IAC9B,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,iDAAiD;IACjD,YAAY,EAAE,MAAM,CAAC;IACrB,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,kCAAkC;IAClC,MAAM,CAAC,EAAE;QACP,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,2DAA2D;IAC3D,WAAW,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,oCAAoC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,2BAA2B;IAC3B,MAAM,EAAE,QAAQ,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GACpB,OAAO,GACP,YAAY,GACZ,qBAAqB,GACrB,SAAS,GACT,OAAO,CAAC;AAEZ;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,oBAAoB;IACpB,MAAM,EAAE,YAAY,CAAC;IACrB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,WAAW,CAAC,EAAE,QAAQ,CAAC;IACvB,qBAAqB;IACrB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,wBAAwB;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,oBAAoB;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/types/auth.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,8BAA8B;IAC9B,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,iDAAiD;IACjD,YAAY,EAAE,MAAM,CAAC;IACrB,6BAA6B;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,kCAAkC;IAClC,MAAM,CAAC,EAAE;QACP,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,2DAA2D;IAC3D,WAAW,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,oCAAoC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,2BAA2B;IAC3B,MAAM,EAAE,QAAQ,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GACpB,OAAO,GACP,YAAY,GACZ,qBAAqB,GACrB,SAAS,GACT,OAAO,CAAC;AAEZ;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,oBAAoB;IACpB,MAAM,EAAE,YAAY,CAAC;IACrB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,WAAW,CAAC,EAAE,QAAQ,CAAC;IACvB,qBAAqB;IACrB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,wBAAwB;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,oBAAoB;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
|
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
|
@@ -93,7 +93,8 @@ export class LBClient {
|
|
|
93
93
|
getAuthHeaders(sessionToken?: string): Record<string, string> {
|
|
94
94
|
const headers: Record<string, string> = {};
|
|
95
95
|
const tokenToUse = sessionToken || this.sessionToken;
|
|
96
|
-
const mode =
|
|
96
|
+
const mode =
|
|
97
|
+
this.mode === "auto" ? (this.apiKey ? "env-key" : "session") : this.mode;
|
|
97
98
|
|
|
98
99
|
if (this.selectedApiKeyId) {
|
|
99
100
|
headers["x-lb-api-key-selected"] = this.selectedApiKeyId;
|
|
@@ -123,7 +124,10 @@ export class LBClient {
|
|
|
123
124
|
sessionToken,
|
|
124
125
|
...fetchOptions
|
|
125
126
|
} = options;
|
|
126
|
-
const url = joinPath(
|
|
127
|
+
const url = joinPath(
|
|
128
|
+
baseUrl ? normalizeBaseUrl(baseUrl) : this.baseUrl,
|
|
129
|
+
endpoint
|
|
130
|
+
);
|
|
127
131
|
const authHeaders = this.getAuthHeaders(sessionToken);
|
|
128
132
|
|
|
129
133
|
const controller = new AbortController();
|
|
@@ -145,7 +149,9 @@ export class LBClient {
|
|
|
145
149
|
|
|
146
150
|
if (!response.ok) {
|
|
147
151
|
const payload = await response.json().catch(() => ({}));
|
|
148
|
-
throw new Error(
|
|
152
|
+
throw new Error(
|
|
153
|
+
payload.error || payload.message || `HTTP ${response.status}`
|
|
154
|
+
);
|
|
149
155
|
}
|
|
150
156
|
|
|
151
157
|
return (await response.json()) as T;
|
|
@@ -206,9 +212,15 @@ export class LBClient {
|
|
|
206
212
|
return this.request("/auth/models/users", { method: "GET", sessionToken });
|
|
207
213
|
}
|
|
208
214
|
|
|
209
|
-
async getHistory(
|
|
215
|
+
async getHistory(
|
|
216
|
+
params?: Record<string, string>,
|
|
217
|
+
sessionToken?: string
|
|
218
|
+
): Promise<any> {
|
|
210
219
|
const search = params ? `?${new URLSearchParams(params).toString()}` : "";
|
|
211
|
-
return this.request(`/auth/history${search}`, {
|
|
220
|
+
return this.request(`/auth/history${search}`, {
|
|
221
|
+
method: "GET",
|
|
222
|
+
sessionToken,
|
|
223
|
+
});
|
|
212
224
|
}
|
|
213
225
|
|
|
214
226
|
async getHistoryItem(id: string, sessionToken?: string): Promise<any> {
|
|
@@ -257,10 +269,10 @@ export class LBClient {
|
|
|
257
269
|
|
|
258
270
|
async verifySession(sessionToken?: string): Promise<LBSession | null> {
|
|
259
271
|
try {
|
|
260
|
-
const response = await this.request<{
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
);
|
|
272
|
+
const response = await this.request<{
|
|
273
|
+
session?: LBSession;
|
|
274
|
+
user?: any;
|
|
275
|
+
}>("/auth/session/verify", { method: "GET", sessionToken });
|
|
264
276
|
return response?.session || null;
|
|
265
277
|
} catch {
|
|
266
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
|
|
package/src/types/auth.ts
CHANGED