@lastbrain/ai-ui-core 1.0.36 → 1.0.38
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 +17 -11
- package/dist/route-handlers/nextjs/lb-proxy.d.ts.map +1 -1
- package/dist/route-handlers/nextjs/lb-proxy.js +7 -3
- package/dist/types/index.d.ts +11 -2
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/client/createClient.ts +18 -11
- package/src/route-handlers/nextjs/lb-proxy.ts +8 -3
- package/src/types/index.ts +11 -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;
|
|
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;AAgHlB,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY;qBAsBnB,OAAO,CAAC,QAAQ,EAAE,CAAC;iCAqKP,OAAO,CAAC,qBAAqB,CAAC;wBAhIrC,aAAa,KAAG,OAAO,CAAC,cAAc,CAAC;yBAoCtC,cAAc,KAAG,OAAO,CAAC,eAAe,CAAC;iBAqDjD,cAAc,KAAG,OAAO,CAAC,eAAe,CAAC;qBAkBvC,OAAO,CAAC,QAAQ,CAAC;EAiD9C"}
|
|
@@ -47,29 +47,35 @@ function buildUrl(baseUrl, endpoint) {
|
|
|
47
47
|
const isPublicApi = baseUrl.includes("/api/public/v1");
|
|
48
48
|
const isExternalProxy = baseUrl.includes("/api/lastbrain");
|
|
49
49
|
// Map endpoints for internal vs external context
|
|
50
|
-
// Pour external:
|
|
50
|
+
// Pour external:
|
|
51
|
+
// - text-ai/image-ai utilisent les routes publiques v1 (legacy)
|
|
52
|
+
// - autres routes: le proxy ajoute /api/ai/ automatiquement
|
|
51
53
|
const endpointMap = {
|
|
52
|
-
// Text and image generation
|
|
53
|
-
"text-ai": { internal: "/generate-text", external: "/
|
|
54
|
-
"image-ai": { internal: "/generate-image", external: "/
|
|
54
|
+
// Text and image generation - utilisent l'API publique v1
|
|
55
|
+
"text-ai": { internal: "/generate-text", external: "public/v1/text-ai" },
|
|
56
|
+
"image-ai": { internal: "/generate-image", external: "public/v1/image-ai" },
|
|
55
57
|
// Auth endpoints - le proxy ajoutera /api/ai/ devant
|
|
56
|
-
status: { internal: "/auth/status", external: "
|
|
57
|
-
provider: { internal: "/auth/provider", external: "
|
|
58
|
+
status: { internal: "/auth/status", external: "auth/status" },
|
|
59
|
+
provider: { internal: "/auth/provider", external: "auth/provider" },
|
|
58
60
|
"gateway-models": {
|
|
59
61
|
internal: "/public/gateway-models",
|
|
60
|
-
external: "
|
|
62
|
+
external: "public/gateway-models",
|
|
61
63
|
},
|
|
62
64
|
// Other endpoints
|
|
63
|
-
"track-usage": { internal: "/track-usage", external: "
|
|
64
|
-
"ai/embed": { internal: "/ai/embed", external: "
|
|
65
|
+
"track-usage": { internal: "/track-usage", external: "track-usage" },
|
|
66
|
+
"ai/embed": { internal: "/ai/embed", external: "ai/embed" },
|
|
65
67
|
};
|
|
66
68
|
const mapping = endpointMap[endpoint];
|
|
67
69
|
if (mapping) {
|
|
68
|
-
// For public API or external proxy, use external routes
|
|
69
|
-
// Only internal app uses internal routes (with /
|
|
70
|
+
// For public API or external proxy, use external routes
|
|
71
|
+
// Only internal app uses internal routes (with / prefix)
|
|
70
72
|
const finalEndpoint = isInternalApp && !isPublicApi && !isExternalProxy
|
|
71
73
|
? mapping.internal
|
|
72
74
|
: mapping.external;
|
|
75
|
+
// Pour external, ne pas ajouter de / car le proxy le fera
|
|
76
|
+
if (isExternalProxy && !finalEndpoint.startsWith("/")) {
|
|
77
|
+
return `${baseUrl}/${finalEndpoint}`;
|
|
78
|
+
}
|
|
73
79
|
return `${baseUrl}${finalEndpoint}`;
|
|
74
80
|
}
|
|
75
81
|
// Fallback for unmapped endpoints
|
|
@@ -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;mBAkClD,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;EAoIzB;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"}
|
|
@@ -24,14 +24,18 @@ export function createLBProxyHandler(config = {}) {
|
|
|
24
24
|
/**
|
|
25
25
|
* Détermine le préfixe API à ajouter selon le path
|
|
26
26
|
* - Legacy : pas de préfixe si baseUrl contient déjà /api/public/v1
|
|
27
|
-
* -
|
|
27
|
+
* - Routes public/v1/* : utiliser /api directement (legacy endpoints)
|
|
28
|
+
* - Sinon : /api/ai pour les autres routes
|
|
28
29
|
*/
|
|
29
30
|
function getApiPrefix(path) {
|
|
30
31
|
if (isLegacyBaseUrl) {
|
|
31
32
|
return ""; // Legacy: baseUrl contient déjà le préfixe
|
|
32
33
|
}
|
|
33
|
-
//
|
|
34
|
-
|
|
34
|
+
// Routes publiques v1 (legacy) : /api/public/v1/*
|
|
35
|
+
if (path.startsWith("public/v1/")) {
|
|
36
|
+
return "/api";
|
|
37
|
+
}
|
|
38
|
+
// Pour le nouveau format, /api/ai pour auth/*, public/* (non-v1), etc.
|
|
35
39
|
return "/api/ai";
|
|
36
40
|
}
|
|
37
41
|
/**
|
package/dist/types/index.d.ts
CHANGED
|
@@ -78,8 +78,17 @@ export interface AiEmbedResponse {
|
|
|
78
78
|
requestId?: string;
|
|
79
79
|
}
|
|
80
80
|
export interface AiStatus {
|
|
81
|
-
request_id
|
|
82
|
-
|
|
81
|
+
request_id?: string;
|
|
82
|
+
user?: {
|
|
83
|
+
id: string;
|
|
84
|
+
email: string;
|
|
85
|
+
};
|
|
86
|
+
apiKey?: {
|
|
87
|
+
id: string;
|
|
88
|
+
name: string;
|
|
89
|
+
prefix: string;
|
|
90
|
+
};
|
|
91
|
+
api_key?: {
|
|
83
92
|
id: string;
|
|
84
93
|
name: string;
|
|
85
94
|
prefix: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -82,31 +82,38 @@ function buildUrl(baseUrl: string, endpoint: string): string {
|
|
|
82
82
|
const isExternalProxy = baseUrl.includes("/api/lastbrain");
|
|
83
83
|
|
|
84
84
|
// Map endpoints for internal vs external context
|
|
85
|
-
// Pour external:
|
|
85
|
+
// Pour external:
|
|
86
|
+
// - text-ai/image-ai utilisent les routes publiques v1 (legacy)
|
|
87
|
+
// - autres routes: le proxy ajoute /api/ai/ automatiquement
|
|
86
88
|
const endpointMap: Record<string, { internal: string; external: string }> = {
|
|
87
|
-
// Text and image generation
|
|
88
|
-
"text-ai": { internal: "/generate-text", external: "/
|
|
89
|
-
"image-ai": { internal: "/generate-image", external: "/
|
|
89
|
+
// Text and image generation - utilisent l'API publique v1
|
|
90
|
+
"text-ai": { internal: "/generate-text", external: "public/v1/text-ai" },
|
|
91
|
+
"image-ai": { internal: "/generate-image", external: "public/v1/image-ai" },
|
|
90
92
|
// Auth endpoints - le proxy ajoutera /api/ai/ devant
|
|
91
|
-
status: { internal: "/auth/status", external: "
|
|
92
|
-
provider: { internal: "/auth/provider", external: "
|
|
93
|
+
status: { internal: "/auth/status", external: "auth/status" },
|
|
94
|
+
provider: { internal: "/auth/provider", external: "auth/provider" },
|
|
93
95
|
"gateway-models": {
|
|
94
96
|
internal: "/public/gateway-models",
|
|
95
|
-
external: "
|
|
97
|
+
external: "public/gateway-models",
|
|
96
98
|
},
|
|
97
99
|
// Other endpoints
|
|
98
|
-
"track-usage": { internal: "/track-usage", external: "
|
|
99
|
-
"ai/embed": { internal: "/ai/embed", external: "
|
|
100
|
+
"track-usage": { internal: "/track-usage", external: "track-usage" },
|
|
101
|
+
"ai/embed": { internal: "/ai/embed", external: "ai/embed" },
|
|
100
102
|
};
|
|
101
103
|
|
|
102
104
|
const mapping = endpointMap[endpoint];
|
|
103
105
|
if (mapping) {
|
|
104
|
-
// For public API or external proxy, use external routes
|
|
105
|
-
// Only internal app uses internal routes (with /
|
|
106
|
+
// For public API or external proxy, use external routes
|
|
107
|
+
// Only internal app uses internal routes (with / prefix)
|
|
106
108
|
const finalEndpoint =
|
|
107
109
|
isInternalApp && !isPublicApi && !isExternalProxy
|
|
108
110
|
? mapping.internal
|
|
109
111
|
: mapping.external;
|
|
112
|
+
|
|
113
|
+
// Pour external, ne pas ajouter de / car le proxy le fera
|
|
114
|
+
if (isExternalProxy && !finalEndpoint.startsWith("/")) {
|
|
115
|
+
return `${baseUrl}/${finalEndpoint}`;
|
|
116
|
+
}
|
|
110
117
|
return `${baseUrl}${finalEndpoint}`;
|
|
111
118
|
}
|
|
112
119
|
|
|
@@ -44,15 +44,20 @@ export function createLBProxyHandler(config: LBProxyConfig = {}) {
|
|
|
44
44
|
/**
|
|
45
45
|
* Détermine le préfixe API à ajouter selon le path
|
|
46
46
|
* - Legacy : pas de préfixe si baseUrl contient déjà /api/public/v1
|
|
47
|
-
* -
|
|
47
|
+
* - Routes public/v1/* : utiliser /api directement (legacy endpoints)
|
|
48
|
+
* - Sinon : /api/ai pour les autres routes
|
|
48
49
|
*/
|
|
49
50
|
function getApiPrefix(path: string): string {
|
|
50
51
|
if (isLegacyBaseUrl) {
|
|
51
52
|
return ""; // Legacy: baseUrl contient déjà le préfixe
|
|
52
53
|
}
|
|
53
54
|
|
|
54
|
-
//
|
|
55
|
-
|
|
55
|
+
// Routes publiques v1 (legacy) : /api/public/v1/*
|
|
56
|
+
if (path.startsWith("public/v1/")) {
|
|
57
|
+
return "/api";
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// Pour le nouveau format, /api/ai pour auth/*, public/* (non-v1), etc.
|
|
56
61
|
return "/api/ai";
|
|
57
62
|
}
|
|
58
63
|
|
package/src/types/index.ts
CHANGED
|
@@ -88,8 +88,17 @@ export interface AiEmbedResponse {
|
|
|
88
88
|
}
|
|
89
89
|
|
|
90
90
|
export interface AiStatus {
|
|
91
|
-
request_id
|
|
92
|
-
|
|
91
|
+
request_id?: string;
|
|
92
|
+
user?: {
|
|
93
|
+
id: string;
|
|
94
|
+
email: string;
|
|
95
|
+
};
|
|
96
|
+
apiKey?: {
|
|
97
|
+
id: string;
|
|
98
|
+
name: string;
|
|
99
|
+
prefix: string;
|
|
100
|
+
};
|
|
101
|
+
api_key?: {
|
|
93
102
|
id: string;
|
|
94
103
|
name: string;
|
|
95
104
|
prefix: string;
|