@lastbrain/ai-ui-core 1.0.33 → 1.0.35
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.
|
@@ -49,14 +49,14 @@ function buildUrl(baseUrl, endpoint) {
|
|
|
49
49
|
// Map endpoints for internal vs external context
|
|
50
50
|
const endpointMap = {
|
|
51
51
|
// Text and image generation
|
|
52
|
-
"text-ai": { internal: "/generate-text", external: "/text-ai" },
|
|
53
|
-
"image-ai": { internal: "/generate-image", external: "/image-ai" },
|
|
54
|
-
// Auth endpoints
|
|
55
|
-
status: { internal: "/auth/status", external: "/status" },
|
|
56
|
-
provider: { internal: "/auth/provider", external: "/provider" },
|
|
52
|
+
"text-ai": { internal: "/generate-text", external: "/ai/auth/text-ai" },
|
|
53
|
+
"image-ai": { internal: "/generate-image", external: "/ai/auth/image-ai" },
|
|
54
|
+
// Auth endpoints - LastBrain routes are /api/ai/auth/* pas /api/ai/*
|
|
55
|
+
status: { internal: "/auth/status", external: "/auth/status" },
|
|
56
|
+
provider: { internal: "/auth/provider", external: "/auth/provider" },
|
|
57
57
|
"gateway-models": {
|
|
58
58
|
internal: "/public/gateway-models",
|
|
59
|
-
external: "/gateway-models",
|
|
59
|
+
external: "/public/gateway-models",
|
|
60
60
|
},
|
|
61
61
|
// Other endpoints
|
|
62
62
|
"track-usage": { internal: "/track-usage", external: "/track-usage" },
|
|
@@ -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;
|
|
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;mBA6BlD,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;EA0HzB;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"}
|
|
@@ -19,11 +19,21 @@ import { NextResponse } from "next/server";
|
|
|
19
19
|
*/
|
|
20
20
|
export function createLBProxyHandler(config = {}) {
|
|
21
21
|
const { baseUrl = process.env.LB_BASE_URL || "https://prompt.lastbrain.io", apiKey = process.env.LB_API_KEY, sessionCookieName = "lb_session", } = config;
|
|
22
|
-
// Déterminer le chemin de base API
|
|
23
|
-
// Si baseUrl contient déjà /api/public/v1, l'utiliser tel quel
|
|
24
|
-
// Sinon, pour les nouvelles routes d'auth, utiliser /api/ai
|
|
22
|
+
// Déterminer le chemin de base API selon le format de baseUrl et le path
|
|
25
23
|
const isLegacyBaseUrl = baseUrl.includes("/api/public/v1");
|
|
26
|
-
|
|
24
|
+
/**
|
|
25
|
+
* Détermine le préfixe API à ajouter selon le path
|
|
26
|
+
* - Legacy : pas de préfixe si baseUrl contient déjà /api/public/v1
|
|
27
|
+
* - Sinon : toujours /api/ai (le client envoie les bons paths)
|
|
28
|
+
*/
|
|
29
|
+
function getApiPrefix(path) {
|
|
30
|
+
if (isLegacyBaseUrl) {
|
|
31
|
+
return ""; // Legacy: baseUrl contient déjà le préfixe
|
|
32
|
+
}
|
|
33
|
+
// Pour le nouveau format, toujours /api/ai
|
|
34
|
+
// Le client envoie déjà les bons paths (auth/*, public/*, ai/*)
|
|
35
|
+
return "/api/ai";
|
|
36
|
+
}
|
|
27
37
|
/**
|
|
28
38
|
* Handler unique pour toutes les méthodes HTTP et tous les paths
|
|
29
39
|
*/
|
|
@@ -45,12 +55,19 @@ export function createLBProxyHandler(config = {}) {
|
|
|
45
55
|
const publicPaths = [
|
|
46
56
|
"auth/login",
|
|
47
57
|
"auth/session/create",
|
|
58
|
+
"auth/session",
|
|
48
59
|
"public/user/api-keys",
|
|
49
60
|
];
|
|
50
61
|
const isPublicPath = publicPaths.some((p) => path.startsWith(p));
|
|
51
62
|
// Construire l'URL complète vers LastBrain
|
|
52
|
-
|
|
53
|
-
const targetUrl = `${baseUrl}${
|
|
63
|
+
const apiPrefix = getApiPrefix(path);
|
|
64
|
+
const targetUrl = `${baseUrl}${apiPrefix}/${path}`;
|
|
65
|
+
console.log("[LB Proxy] Request:", {
|
|
66
|
+
path,
|
|
67
|
+
apiPrefix,
|
|
68
|
+
targetUrl,
|
|
69
|
+
isLegacy: isLegacyBaseUrl,
|
|
70
|
+
});
|
|
54
71
|
// Préparer les headers
|
|
55
72
|
const headers = {};
|
|
56
73
|
// Copier les headers pertinents de la requête originale
|
package/package.json
CHANGED
|
@@ -84,14 +84,14 @@ function buildUrl(baseUrl: string, endpoint: string): string {
|
|
|
84
84
|
// Map endpoints for internal vs external context
|
|
85
85
|
const endpointMap: Record<string, { internal: string; external: string }> = {
|
|
86
86
|
// Text and image generation
|
|
87
|
-
"text-ai": { internal: "/generate-text", external: "/text-ai" },
|
|
88
|
-
"image-ai": { internal: "/generate-image", external: "/image-ai" },
|
|
89
|
-
// Auth endpoints
|
|
90
|
-
status: { internal: "/auth/status", external: "/status" },
|
|
91
|
-
provider: { internal: "/auth/provider", external: "/provider" },
|
|
87
|
+
"text-ai": { internal: "/generate-text", external: "/ai/auth/text-ai" },
|
|
88
|
+
"image-ai": { internal: "/generate-image", external: "/ai/auth/image-ai" },
|
|
89
|
+
// Auth endpoints - LastBrain routes are /api/ai/auth/* pas /api/ai/*
|
|
90
|
+
status: { internal: "/auth/status", external: "/auth/status" },
|
|
91
|
+
provider: { internal: "/auth/provider", external: "/auth/provider" },
|
|
92
92
|
"gateway-models": {
|
|
93
93
|
internal: "/public/gateway-models",
|
|
94
|
-
external: "/gateway-models",
|
|
94
|
+
external: "/public/gateway-models",
|
|
95
95
|
},
|
|
96
96
|
// Other endpoints
|
|
97
97
|
"track-usage": { internal: "/track-usage", external: "/track-usage" },
|
|
@@ -38,11 +38,23 @@ export function createLBProxyHandler(config: LBProxyConfig = {}) {
|
|
|
38
38
|
sessionCookieName = "lb_session",
|
|
39
39
|
} = config;
|
|
40
40
|
|
|
41
|
-
// Déterminer le chemin de base API
|
|
42
|
-
// Si baseUrl contient déjà /api/public/v1, l'utiliser tel quel
|
|
43
|
-
// Sinon, pour les nouvelles routes d'auth, utiliser /api/ai
|
|
41
|
+
// Déterminer le chemin de base API selon le format de baseUrl et le path
|
|
44
42
|
const isLegacyBaseUrl = baseUrl.includes("/api/public/v1");
|
|
45
|
-
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Détermine le préfixe API à ajouter selon le path
|
|
46
|
+
* - Legacy : pas de préfixe si baseUrl contient déjà /api/public/v1
|
|
47
|
+
* - Sinon : toujours /api/ai (le client envoie les bons paths)
|
|
48
|
+
*/
|
|
49
|
+
function getApiPrefix(path: string): string {
|
|
50
|
+
if (isLegacyBaseUrl) {
|
|
51
|
+
return ""; // Legacy: baseUrl contient déjà le préfixe
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// Pour le nouveau format, toujours /api/ai
|
|
55
|
+
// Le client envoie déjà les bons paths (auth/*, public/*, ai/*)
|
|
56
|
+
return "/api/ai";
|
|
57
|
+
}
|
|
46
58
|
|
|
47
59
|
/**
|
|
48
60
|
* Handler unique pour toutes les méthodes HTTP et tous les paths
|
|
@@ -68,13 +80,21 @@ export function createLBProxyHandler(config: LBProxyConfig = {}) {
|
|
|
68
80
|
const publicPaths = [
|
|
69
81
|
"auth/login",
|
|
70
82
|
"auth/session/create",
|
|
83
|
+
"auth/session",
|
|
71
84
|
"public/user/api-keys",
|
|
72
85
|
];
|
|
73
86
|
const isPublicPath = publicPaths.some((p) => path.startsWith(p));
|
|
74
87
|
|
|
75
88
|
// Construire l'URL complète vers LastBrain
|
|
76
|
-
|
|
77
|
-
const targetUrl = `${baseUrl}${
|
|
89
|
+
const apiPrefix = getApiPrefix(path);
|
|
90
|
+
const targetUrl = `${baseUrl}${apiPrefix}/${path}`;
|
|
91
|
+
|
|
92
|
+
console.log("[LB Proxy] Request:", {
|
|
93
|
+
path,
|
|
94
|
+
apiPrefix,
|
|
95
|
+
targetUrl,
|
|
96
|
+
isLegacy: isLegacyBaseUrl,
|
|
97
|
+
});
|
|
78
98
|
|
|
79
99
|
// Préparer les headers
|
|
80
100
|
const headers: Record<string, string> = {};
|