@lastbrain/ai-ui-core 1.0.48 → 1.0.50
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.d.ts.map +1 -1
- package/dist/client/createClient.js +6 -3
- package/dist/route-handlers/nextjs/lb-proxy.d.ts.map +1 -1
- package/dist/route-handlers/nextjs/lb-proxy.js +6 -2
- package/package.json +1 -1
- package/src/client/createClient.ts +7 -3
- package/src/route-handlers/nextjs/lb-proxy.ts +6 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createClient.d.ts","sourceRoot":"","sources":["../../src/client/createClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,cAAc,EACd,cAAc,EACd,eAAe,EACf,cAAc,EACd,eAAe,EACf,QAAQ,EACR,qBAAqB,EACtB,MAAM,UAAU,CAAC;AA4GlB,wBAAgB,cAAc,CAAC,MAAM,EAAE;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"createClient.d.ts","sourceRoot":"","sources":["../../src/client/createClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,cAAc,EACd,cAAc,EACd,eAAe,EACf,cAAc,EACd,eAAe,EACf,QAAQ,EACR,qBAAqB,EACtB,MAAM,UAAU,CAAC;AA4GlB,wBAAgB,cAAc,CAAC,MAAM,EAAE;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAmBzB;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY;qBAoBnB,OAAO,CAAC,QAAQ,EAAE,CAAC;iCA0KP,OAAO,CAAC,qBAAqB,CAAC;wBApIrC,aAAa,KAAG,OAAO,CAAC,cAAc,CAAC;yBAqCtC,cAAc,KAAG,OAAO,CAAC,eAAe,CAAC;iBAsDjD,cAAc,KAAG,OAAO,CAAC,eAAe,CAAC;qBAmBvC,OAAO,CAAC,QAAQ,CAAC;EAmD9C"}
|
|
@@ -77,10 +77,13 @@ function buildUrl(baseUrl, endpoint) {
|
|
|
77
77
|
return `${normalized}${v1Path}`;
|
|
78
78
|
}
|
|
79
79
|
export function getAuthHeaders(config) {
|
|
80
|
-
|
|
80
|
+
const token = config.apiKeyId?.trim();
|
|
81
|
+
const looksLikeApiKey = Boolean(token && token.startsWith("lb_"));
|
|
82
|
+
const looksLikeJwt = Boolean(token && token.split(".").length === 3);
|
|
83
|
+
if (token && (looksLikeApiKey || looksLikeJwt)) {
|
|
81
84
|
return {
|
|
82
|
-
"x-lb-api-key":
|
|
83
|
-
Authorization: `Bearer ${
|
|
85
|
+
...(looksLikeApiKey ? { "x-lb-api-key": token } : {}),
|
|
86
|
+
Authorization: `Bearer ${token}`,
|
|
84
87
|
};
|
|
85
88
|
}
|
|
86
89
|
if (config.sessionToken) {
|
|
@@ -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;EA6IzB;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"}
|
|
@@ -76,12 +76,18 @@ export function createLBProxyHandler(config = {}) {
|
|
|
76
76
|
}
|
|
77
77
|
const authorization = request.headers.get("authorization");
|
|
78
78
|
const explicitApiKeyHeader = request.headers.get("x-lb-api-key");
|
|
79
|
+
const sessionToken = request.cookies.get(sessionCookieName)?.value;
|
|
79
80
|
if (authorization) {
|
|
80
81
|
headers["Authorization"] = authorization;
|
|
81
82
|
}
|
|
82
83
|
if (explicitApiKeyHeader) {
|
|
83
84
|
headers["x-lb-api-key"] = explicitApiKeyHeader;
|
|
84
85
|
}
|
|
86
|
+
if (sessionToken) {
|
|
87
|
+
// Always forward lb_session cookie to allow backend fallback auth,
|
|
88
|
+
// even when an Authorization header is present.
|
|
89
|
+
headers["Cookie"] = `${sessionCookieName}=${sessionToken}`;
|
|
90
|
+
}
|
|
85
91
|
// Authentification : LB_API_KEY ou session cookie
|
|
86
92
|
if (!authorization && !explicitApiKeyHeader) {
|
|
87
93
|
if (apiKey) {
|
|
@@ -90,11 +96,9 @@ export function createLBProxyHandler(config = {}) {
|
|
|
90
96
|
}
|
|
91
97
|
else {
|
|
92
98
|
// Lire le cookie de session
|
|
93
|
-
const sessionToken = request.cookies.get(sessionCookieName)?.value;
|
|
94
99
|
if (sessionToken) {
|
|
95
100
|
// Envoyer le cookie à la fois comme Authorization ET comme Cookie
|
|
96
101
|
headers["Authorization"] = `Bearer ${sessionToken}`;
|
|
97
|
-
headers["Cookie"] = `${sessionCookieName}=${sessionToken}`;
|
|
98
102
|
console.log("[LB Proxy] Forwarding session cookie:", {
|
|
99
103
|
name: sessionCookieName,
|
|
100
104
|
hasValue: !!sessionToken,
|
package/package.json
CHANGED
|
@@ -121,10 +121,14 @@ export function getAuthHeaders(config: {
|
|
|
121
121
|
apiKeyId?: string;
|
|
122
122
|
sessionToken?: string;
|
|
123
123
|
}): Record<string, string> {
|
|
124
|
-
|
|
124
|
+
const token = config.apiKeyId?.trim();
|
|
125
|
+
const looksLikeApiKey = Boolean(token && token.startsWith("lb_"));
|
|
126
|
+
const looksLikeJwt = Boolean(token && token.split(".").length === 3);
|
|
127
|
+
|
|
128
|
+
if (token && (looksLikeApiKey || looksLikeJwt)) {
|
|
125
129
|
return {
|
|
126
|
-
"x-lb-api-key":
|
|
127
|
-
Authorization: `Bearer ${
|
|
130
|
+
...(looksLikeApiKey ? { "x-lb-api-key": token } : {}),
|
|
131
|
+
Authorization: `Bearer ${token}`,
|
|
128
132
|
};
|
|
129
133
|
}
|
|
130
134
|
|
|
@@ -106,12 +106,18 @@ export function createLBProxyHandler(config: LBProxyConfig = {}) {
|
|
|
106
106
|
|
|
107
107
|
const authorization = request.headers.get("authorization");
|
|
108
108
|
const explicitApiKeyHeader = request.headers.get("x-lb-api-key");
|
|
109
|
+
const sessionToken = request.cookies.get(sessionCookieName)?.value;
|
|
109
110
|
if (authorization) {
|
|
110
111
|
headers["Authorization"] = authorization;
|
|
111
112
|
}
|
|
112
113
|
if (explicitApiKeyHeader) {
|
|
113
114
|
headers["x-lb-api-key"] = explicitApiKeyHeader;
|
|
114
115
|
}
|
|
116
|
+
if (sessionToken) {
|
|
117
|
+
// Always forward lb_session cookie to allow backend fallback auth,
|
|
118
|
+
// even when an Authorization header is present.
|
|
119
|
+
headers["Cookie"] = `${sessionCookieName}=${sessionToken}`;
|
|
120
|
+
}
|
|
115
121
|
|
|
116
122
|
// Authentification : LB_API_KEY ou session cookie
|
|
117
123
|
if (!authorization && !explicitApiKeyHeader) {
|
|
@@ -120,11 +126,9 @@ export function createLBProxyHandler(config: LBProxyConfig = {}) {
|
|
|
120
126
|
headers["Authorization"] = `Bearer ${apiKey}`;
|
|
121
127
|
} else {
|
|
122
128
|
// Lire le cookie de session
|
|
123
|
-
const sessionToken = request.cookies.get(sessionCookieName)?.value;
|
|
124
129
|
if (sessionToken) {
|
|
125
130
|
// Envoyer le cookie à la fois comme Authorization ET comme Cookie
|
|
126
131
|
headers["Authorization"] = `Bearer ${sessionToken}`;
|
|
127
|
-
headers["Cookie"] = `${sessionCookieName}=${sessionToken}`;
|
|
128
132
|
console.log("[LB Proxy] Forwarding session cookie:", {
|
|
129
133
|
name: sessionCookieName,
|
|
130
134
|
hasValue: !!sessionToken,
|