@nekutima/biome-sdk 0.1.21 → 0.1.23
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/ai/yuri.service.d.ts +23 -0
- package/dist/ai/yuri.service.d.ts.map +1 -0
- package/dist/ai/yuri.service.js +68 -0
- package/dist/ai/yuri.service.js.map +1 -0
- package/dist/auth/auth.service.d.ts +10 -2
- package/dist/auth/auth.service.d.ts.map +1 -1
- package/dist/auth/auth.service.js +40 -14
- package/dist/auth/auth.service.js.map +1 -1
- package/dist/chat/chat.service.d.ts +48 -0
- package/dist/chat/chat.service.d.ts.map +1 -0
- package/dist/chat/chat.service.js +46 -0
- package/dist/chat/chat.service.js.map +1 -0
- package/dist/core/http-client.d.ts +6 -2
- package/dist/core/http-client.d.ts.map +1 -1
- package/dist/core/http-client.js +19 -11
- package/dist/core/http-client.js.map +1 -1
- package/dist/index.d.ts +61 -45
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +32 -8
- package/dist/index.js.map +1 -1
- package/dist/models/chat.model.d.ts +33 -0
- package/dist/models/chat.model.d.ts.map +1 -0
- package/dist/models/chat.model.js +6 -0
- package/dist/models/chat.model.js.map +1 -0
- package/dist/models/timezone.model.d.ts +11 -0
- package/dist/models/timezone.model.d.ts.map +1 -0
- package/dist/models/timezone.model.js +6 -0
- package/dist/models/timezone.model.js.map +1 -0
- package/dist/notifications/notification.service.d.ts +14 -0
- package/dist/notifications/notification.service.d.ts.map +1 -0
- package/dist/notifications/notification.service.js +35 -0
- package/dist/notifications/notification.service.js.map +1 -0
- package/dist/tasks/task.service.d.ts +15 -2
- package/dist/tasks/task.service.d.ts.map +1 -1
- package/dist/tasks/task.service.js +65 -27
- package/dist/tasks/task.service.js.map +1 -1
- package/dist/timezone/timezone.service.d.ts +8 -0
- package/dist/timezone/timezone.service.d.ts.map +1 -0
- package/dist/timezone/timezone.service.js +14 -0
- package/dist/timezone/timezone.service.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { BiomeHttpClient } from "../core/http-client";
|
|
2
|
+
export interface AiDialogPhrase {
|
|
3
|
+
message: string;
|
|
4
|
+
history?: Array<{
|
|
5
|
+
role: "user" | "assistant";
|
|
6
|
+
content: string;
|
|
7
|
+
}>;
|
|
8
|
+
context?: Record<string, unknown>;
|
|
9
|
+
}
|
|
10
|
+
export declare class BiomeYuri {
|
|
11
|
+
private readonly http;
|
|
12
|
+
constructor(http: BiomeHttpClient);
|
|
13
|
+
/**
|
|
14
|
+
* Send a message to Yuri AI and get streaming response via SSE
|
|
15
|
+
* Returns raw Response object for frontend to handle streaming
|
|
16
|
+
*/
|
|
17
|
+
talk(userAffirmation: AiDialogPhrase): Promise<Response>;
|
|
18
|
+
/**
|
|
19
|
+
* Read CSRF token from cookie
|
|
20
|
+
*/
|
|
21
|
+
private getCookie;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=yuri.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yuri.service.d.ts","sourceRoot":"","sources":["../../src/ai/yuri.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;QAC3B,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAkB;gBAE3B,IAAI,EAAE,eAAe;IAIjC;;;OAGG;IACG,IAAI,CAAC,eAAe,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;IAiC9D;;OAEG;IACH,OAAO,CAAC,SAAS;CAoBlB"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BiomeYuri = void 0;
|
|
4
|
+
const error_handler_1 = require("../core/error-handler");
|
|
5
|
+
class BiomeYuri {
|
|
6
|
+
constructor(http) {
|
|
7
|
+
this.http = http;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Send a message to Yuri AI and get streaming response via SSE
|
|
11
|
+
* Returns raw Response object for frontend to handle streaming
|
|
12
|
+
*/
|
|
13
|
+
async talk(userAffirmation) {
|
|
14
|
+
try {
|
|
15
|
+
const baseUrl = this.http.baseURL;
|
|
16
|
+
const url = `${baseUrl}/adam/talk`;
|
|
17
|
+
// Get CSRF token from cookie if available
|
|
18
|
+
const xsrfToken = this.getCookie("XSRF-TOKEN");
|
|
19
|
+
const headers = {
|
|
20
|
+
"Content-Type": "application/json",
|
|
21
|
+
Accept: "text/event-stream",
|
|
22
|
+
};
|
|
23
|
+
if (xsrfToken) {
|
|
24
|
+
headers["X-XSRF-TOKEN"] = xsrfToken;
|
|
25
|
+
}
|
|
26
|
+
const response = await fetch(url, {
|
|
27
|
+
method: "POST",
|
|
28
|
+
credentials: "include",
|
|
29
|
+
headers,
|
|
30
|
+
body: JSON.stringify(userAffirmation),
|
|
31
|
+
});
|
|
32
|
+
if (!response.ok) {
|
|
33
|
+
throw new Error(`Server error: ${response.status}`);
|
|
34
|
+
}
|
|
35
|
+
return response;
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
throw (0, error_handler_1.createSdkError)(error, "Failed to talk to Yuri");
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Read CSRF token from cookie
|
|
43
|
+
*/
|
|
44
|
+
getCookie(name) {
|
|
45
|
+
if (typeof document === "undefined") {
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
const nameEQ = name + "=";
|
|
49
|
+
const ca = document.cookie.split(";");
|
|
50
|
+
for (const element of ca) {
|
|
51
|
+
let c = element;
|
|
52
|
+
while (c.charAt(0) === " ")
|
|
53
|
+
c = c.substring(1, c.length);
|
|
54
|
+
if (c.indexOf(nameEQ) === 0) {
|
|
55
|
+
const rawValue = c.substring(nameEQ.length, c.length);
|
|
56
|
+
try {
|
|
57
|
+
return decodeURIComponent(rawValue);
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
return rawValue;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
exports.BiomeYuri = BiomeYuri;
|
|
68
|
+
//# sourceMappingURL=yuri.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yuri.service.js","sourceRoot":"","sources":["../../src/ai/yuri.service.ts"],"names":[],"mappings":";;;AACA,yDAAuD;AAWvD,MAAa,SAAS;IAGpB,YAAY,IAAqB;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI,CAAC,eAA+B;QACxC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;YAClC,MAAM,GAAG,GAAG,GAAG,OAAO,YAAY,CAAC;YAEnC,0CAA0C;YAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;YAC/C,MAAM,OAAO,GAA2B;gBACtC,cAAc,EAAE,kBAAkB;gBAClC,MAAM,EAAE,mBAAmB;aAC5B,CAAC;YAEF,IAAI,SAAS,EAAE,CAAC;gBACd,OAAO,CAAC,cAAc,CAAC,GAAG,SAAS,CAAC;YACtC,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAChC,MAAM,EAAE,MAAM;gBACd,WAAW,EAAE,SAAS;gBACtB,OAAO;gBACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC;aACtC,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CAAC,iBAAiB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;YACtD,CAAC;YAED,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAA,8BAAc,EAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IAED;;OAEG;IACK,SAAS,CAAC,IAAY;QAC5B,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;YACpC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,GAAG,GAAG,CAAC;QAC1B,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACtC,KAAK,MAAM,OAAO,IAAI,EAAE,EAAE,CAAC;YACzB,IAAI,CAAC,GAAG,OAAO,CAAC;YAChB,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG;gBAAE,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;YACzD,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;gBACtD,IAAI,CAAC;oBACH,OAAO,kBAAkB,CAAC,QAAQ,CAAC,CAAC;gBACtC,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,QAAQ,CAAC;gBAClB,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAnED,8BAmEC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { BiomeHttpClient } from
|
|
2
|
-
import { ApiResponse } from
|
|
1
|
+
import { BiomeHttpClient } from "../core/http-client";
|
|
2
|
+
import { ApiResponse } from "../models/api-response.model";
|
|
3
3
|
/**
|
|
4
4
|
* Authentication service - pure business logic without UI concerns
|
|
5
5
|
*/
|
|
@@ -52,6 +52,14 @@ export declare class BiomeAuth {
|
|
|
52
52
|
* Resend confirmation email
|
|
53
53
|
*/
|
|
54
54
|
resendConfirmation(email: string): Promise<void>;
|
|
55
|
+
/**
|
|
56
|
+
* Request password reset - sends reset email to user
|
|
57
|
+
*/
|
|
58
|
+
forgotPassword(email: string): Promise<void>;
|
|
59
|
+
/**
|
|
60
|
+
* Reset password using reset token
|
|
61
|
+
*/
|
|
62
|
+
resetPassword(token: string, newPassword: string): Promise<void>;
|
|
55
63
|
/**
|
|
56
64
|
* Clear current session
|
|
57
65
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.service.d.ts","sourceRoot":"","sources":["../../src/auth/auth.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D;;GAEG;AACH,qBAAa,SAAS;
|
|
1
|
+
{"version":3,"file":"auth.service.d.ts","sourceRoot":"","sources":["../../src/auth/auth.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D;;GAEG;AACH,qBAAa,SAAS;IAIR,OAAO,CAAC,IAAI;IAHxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0C;IACrE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAwC;gBAErD,IAAI,EAAE,eAAe;IAEzC;;OAEG;IACH,IAAI,iBAAiB,IAAI,MAAM,GAAG,IAAI,CAErC;IAED;;OAEG;IACH,kBAAkB,CAChB,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,GAC5C,MAAM,IAAI;IAIb;;OAEG;IACG,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAQ1D;;OAEG;IACG,KAAK,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC;IAqBpD;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAY1C;;OAEG;IACH,cAAc,IAAI,OAAO;IASzB;;OAEG;IACG,yBAAyB,IAAI,OAAO,CAAC,OAAO,CAAC;IAuBnD;;OAEG;IACH,cAAc,IAAI,WAAW;IAc7B;;OAEG;IACH,qBAAqB,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO;IAgBxD;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQhD;;OAEG;IACG,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQtD;;OAEG;IACG,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlD;;OAEG;IACG,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQtE;;OAEG;IACH,YAAY,IAAI,IAAI;CAIrB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,CAAC;CACf"}
|
|
@@ -30,10 +30,10 @@ class BiomeAuth {
|
|
|
30
30
|
*/
|
|
31
31
|
async signup(data) {
|
|
32
32
|
try {
|
|
33
|
-
return await this.http.post(
|
|
33
|
+
return await this.http.post("/signup", data);
|
|
34
34
|
}
|
|
35
35
|
catch (error) {
|
|
36
|
-
throw (0, error_handler_1.createSdkError)(error,
|
|
36
|
+
throw (0, error_handler_1.createSdkError)(error, "User registration failed");
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
/**
|
|
@@ -41,16 +41,18 @@ class BiomeAuth {
|
|
|
41
41
|
*/
|
|
42
42
|
async login(data) {
|
|
43
43
|
try {
|
|
44
|
-
const response = await this.http.post(
|
|
44
|
+
const response = await this.http.post("/login", data);
|
|
45
45
|
const payload = response.payload;
|
|
46
46
|
// Update session state
|
|
47
47
|
this.operatorId.value = payload.operatorId;
|
|
48
|
-
this.sessionExpiresAt.value = luxon_1.DateTime.now()
|
|
48
|
+
this.sessionExpiresAt.value = luxon_1.DateTime.now()
|
|
49
|
+
.plus({ seconds: payload.ttl })
|
|
50
|
+
.toJSDate();
|
|
49
51
|
return payload;
|
|
50
52
|
}
|
|
51
53
|
catch (error) {
|
|
52
54
|
this.clearSession();
|
|
53
|
-
throw (0, error_handler_1.createSdkError)(error,
|
|
55
|
+
throw (0, error_handler_1.createSdkError)(error, "Login failed");
|
|
54
56
|
}
|
|
55
57
|
}
|
|
56
58
|
/**
|
|
@@ -58,14 +60,14 @@ class BiomeAuth {
|
|
|
58
60
|
*/
|
|
59
61
|
async logout() {
|
|
60
62
|
try {
|
|
61
|
-
const response = await this.http.post(
|
|
63
|
+
const response = await this.http.post("/logout", {});
|
|
62
64
|
this.clearSession();
|
|
63
65
|
return response;
|
|
64
66
|
}
|
|
65
67
|
catch (error) {
|
|
66
68
|
// Still clear session even if logout API fails
|
|
67
69
|
this.clearSession();
|
|
68
|
-
throw (0, error_handler_1.createSdkError)(error,
|
|
70
|
+
throw (0, error_handler_1.createSdkError)(error, "Logout failed");
|
|
69
71
|
}
|
|
70
72
|
}
|
|
71
73
|
/**
|
|
@@ -85,14 +87,16 @@ class BiomeAuth {
|
|
|
85
87
|
*/
|
|
86
88
|
async validateSessionWithServer() {
|
|
87
89
|
try {
|
|
88
|
-
const response = await this.http.get(
|
|
90
|
+
const response = await this.http.get("/validate");
|
|
89
91
|
if (response.isSuccess) {
|
|
90
92
|
if (response.payload !== undefined) {
|
|
91
93
|
const payload = response.payload;
|
|
92
94
|
this.operatorId.value = payload.operatorId;
|
|
93
95
|
}
|
|
94
96
|
// Set reasonable expiration time
|
|
95
|
-
this.sessionExpiresAt.value = luxon_1.DateTime.now()
|
|
97
|
+
this.sessionExpiresAt.value = luxon_1.DateTime.now()
|
|
98
|
+
.plus({ hours: 1 })
|
|
99
|
+
.toJSDate();
|
|
96
100
|
return true;
|
|
97
101
|
}
|
|
98
102
|
return false;
|
|
@@ -109,7 +113,7 @@ class BiomeAuth {
|
|
|
109
113
|
const operatorId = this.operatorId.value;
|
|
110
114
|
const expiresAt = this.sessionExpiresAt.value;
|
|
111
115
|
if (!operatorId || !expiresAt) {
|
|
112
|
-
throw new Error(
|
|
116
|
+
throw new Error("No active session");
|
|
113
117
|
}
|
|
114
118
|
return {
|
|
115
119
|
operatorId,
|
|
@@ -137,10 +141,10 @@ class BiomeAuth {
|
|
|
137
141
|
*/
|
|
138
142
|
async confirmEmail(token) {
|
|
139
143
|
try {
|
|
140
|
-
await this.http.post(
|
|
144
|
+
await this.http.post("/confirm-email", {}, { params: { token } });
|
|
141
145
|
}
|
|
142
146
|
catch (error) {
|
|
143
|
-
throw (0, error_handler_1.createSdkError)(error,
|
|
147
|
+
throw (0, error_handler_1.createSdkError)(error, "Email confirmation failed");
|
|
144
148
|
}
|
|
145
149
|
}
|
|
146
150
|
/**
|
|
@@ -148,10 +152,32 @@ class BiomeAuth {
|
|
|
148
152
|
*/
|
|
149
153
|
async resendConfirmation(email) {
|
|
150
154
|
try {
|
|
151
|
-
await this.http.post(
|
|
155
|
+
await this.http.post("/resend-confirmation", { email });
|
|
152
156
|
}
|
|
153
157
|
catch (error) {
|
|
154
|
-
throw (0, error_handler_1.createSdkError)(error,
|
|
158
|
+
throw (0, error_handler_1.createSdkError)(error, "Failed to resend confirmation email");
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Request password reset - sends reset email to user
|
|
163
|
+
*/
|
|
164
|
+
async forgotPassword(email) {
|
|
165
|
+
try {
|
|
166
|
+
await this.http.post("/forgot-password", { email });
|
|
167
|
+
}
|
|
168
|
+
catch (error) {
|
|
169
|
+
throw (0, error_handler_1.createSdkError)(error, "Failed to request password reset");
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Reset password using reset token
|
|
174
|
+
*/
|
|
175
|
+
async resetPassword(token, newPassword) {
|
|
176
|
+
try {
|
|
177
|
+
await this.http.post("/reset-password", { token, password: newPassword });
|
|
178
|
+
}
|
|
179
|
+
catch (error) {
|
|
180
|
+
throw (0, error_handler_1.createSdkError)(error, "Failed to reset password");
|
|
155
181
|
}
|
|
156
182
|
}
|
|
157
183
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../src/auth/auth.service.ts"],"names":[],"mappings":";;;AAAA,iCAAiC;AAEjC,yDAAsD;AACtD,yDAAuD;AAGvD;;GAEG;AACH,MAAa,SAAS;
|
|
1
|
+
{"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../../src/auth/auth.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { BiomeHttpClient } from "../core/http-client";
|
|
2
|
+
export interface ChatMessageWithSender {
|
|
3
|
+
id: number;
|
|
4
|
+
chatId: number;
|
|
5
|
+
senderId: number;
|
|
6
|
+
senderUsername: string;
|
|
7
|
+
senderAvatarUrl?: string;
|
|
8
|
+
content: string;
|
|
9
|
+
createdAt: Date;
|
|
10
|
+
updatedAt?: Date;
|
|
11
|
+
}
|
|
12
|
+
export interface ChatWithParticipants {
|
|
13
|
+
id: number;
|
|
14
|
+
taskId: number;
|
|
15
|
+
participantIds: number[];
|
|
16
|
+
participantUsernames: string[];
|
|
17
|
+
createdAt: Date;
|
|
18
|
+
updatedAt?: Date;
|
|
19
|
+
}
|
|
20
|
+
export interface TaskChatMessagesResponse {
|
|
21
|
+
chat: ChatWithParticipants;
|
|
22
|
+
messages: ChatMessageWithSender[];
|
|
23
|
+
pagination: {
|
|
24
|
+
hasMore: boolean;
|
|
25
|
+
nextCursor?: string;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
export interface SendChatMessageResponse {
|
|
29
|
+
message: ChatMessageWithSender;
|
|
30
|
+
}
|
|
31
|
+
export declare class BiomeChat {
|
|
32
|
+
private readonly http;
|
|
33
|
+
constructor(http: BiomeHttpClient);
|
|
34
|
+
/**
|
|
35
|
+
* Get chat messages for a task
|
|
36
|
+
*/
|
|
37
|
+
getMessages(taskId: number, cursor?: string): Promise<TaskChatMessagesResponse>;
|
|
38
|
+
/**
|
|
39
|
+
* Send a chat message for a task
|
|
40
|
+
*/
|
|
41
|
+
sendMessage(taskId: number, content: string): Promise<ChatMessageWithSender>;
|
|
42
|
+
/**
|
|
43
|
+
* Connect to chat events via SSE
|
|
44
|
+
* Returns raw EventSource for frontend to handle
|
|
45
|
+
*/
|
|
46
|
+
connect(chatId: number): EventSource;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=chat.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.service.d.ts","sourceRoot":"","sources":["../../src/chat/chat.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAItD,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,oBAAoB,EAAE,MAAM,EAAE,CAAC;IAC/B,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,oBAAoB,CAAC;IAC3B,QAAQ,EAAE,qBAAqB,EAAE,CAAC;IAClC,UAAU,EAAE;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,qBAAqB,CAAC;CAChC;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAkB;gBAE3B,IAAI,EAAE,eAAe;IAIjC;;OAEG;IACG,WAAW,CACf,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,wBAAwB,CAAC;IAYpC;;OAEG;IACG,WAAW,CACf,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,qBAAqB,CAAC;IAWjC;;;OAGG;IACH,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW;CAMrC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BiomeChat = void 0;
|
|
4
|
+
const error_handler_1 = require("../core/error-handler");
|
|
5
|
+
class BiomeChat {
|
|
6
|
+
constructor(http) {
|
|
7
|
+
this.http = http;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Get chat messages for a task
|
|
11
|
+
*/
|
|
12
|
+
async getMessages(taskId, cursor) {
|
|
13
|
+
try {
|
|
14
|
+
const params = cursor ? `?cursor=${encodeURIComponent(cursor)}` : "";
|
|
15
|
+
const response = await this.http.get(`/tasks/task/${taskId}/chat/messages${params}`);
|
|
16
|
+
return response.payload;
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
throw (0, error_handler_1.createSdkError)(error, "Failed to get chat messages");
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Send a chat message for a task
|
|
24
|
+
*/
|
|
25
|
+
async sendMessage(taskId, content) {
|
|
26
|
+
try {
|
|
27
|
+
const response = await this.http.post(`/tasks/task/${taskId}/chat/messages`, { content });
|
|
28
|
+
return response.payload.message;
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
throw (0, error_handler_1.createSdkError)(error, "Failed to send chat message");
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Connect to chat events via SSE
|
|
36
|
+
* Returns raw EventSource for frontend to handle
|
|
37
|
+
*/
|
|
38
|
+
connect(chatId) {
|
|
39
|
+
const baseUrl = this.http.baseURL;
|
|
40
|
+
return new EventSource(`${baseUrl}/chats/${chatId}/events`, {
|
|
41
|
+
withCredentials: true,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.BiomeChat = BiomeChat;
|
|
46
|
+
//# sourceMappingURL=chat.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.service.js","sourceRoot":"","sources":["../../src/chat/chat.service.ts"],"names":[],"mappings":";;;AACA,yDAAuD;AAoCvD,MAAa,SAAS;IAGpB,YAAY,IAAqB;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,MAAc,EACd,MAAe;QAEf,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAElC,eAAe,MAAM,iBAAiB,MAAM,EAAE,CAAC,CAAC;YAClD,OAAO,QAAQ,CAAC,OAAO,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAA,8BAAc,EAAC,KAAK,EAAE,6BAA6B,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,MAAc,EACd,OAAe;QAEf,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAEnC,eAAe,MAAM,gBAAgB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YACtD,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC;QAClC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAA,8BAAc,EAAC,KAAK,EAAE,6BAA6B,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,MAAc;QACpB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QAClC,OAAO,IAAI,WAAW,CAAC,GAAG,OAAO,UAAU,MAAM,SAAS,EAAE;YAC1D,eAAe,EAAE,IAAI;SACtB,CAAC,CAAC;IACL,CAAC;CACF;AApDD,8BAoDC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AxiosRequestConfig } from
|
|
2
|
-
import { BiomeConfig } from
|
|
1
|
+
import { AxiosRequestConfig } from "axios";
|
|
2
|
+
import { BiomeConfig } from "./configuration";
|
|
3
3
|
/**
|
|
4
4
|
* Framework-agnostic HTTP client using Axios
|
|
5
5
|
*/
|
|
@@ -8,6 +8,10 @@ export declare class BiomeHttpClient {
|
|
|
8
8
|
private readonly axiosInstance;
|
|
9
9
|
private _csrfToken;
|
|
10
10
|
private _csrfInitialized;
|
|
11
|
+
/**
|
|
12
|
+
* Get the base URL configured for this client
|
|
13
|
+
*/
|
|
14
|
+
get baseURL(): string;
|
|
11
15
|
constructor(config: BiomeConfig);
|
|
12
16
|
/**
|
|
13
17
|
* Initialize CSRF token - fetch from server if URL provided
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../src/core/http-client.ts"],"names":[],"mappings":"AAAA,OAAc,EAAiB,kBAAkB,EAAiB,MAAM,OAAO,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAM9C;;GAEG;AACH,qBAAa,eAAe;
|
|
1
|
+
{"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../src/core/http-client.ts"],"names":[],"mappings":"AAAA,OAAc,EAAiB,kBAAkB,EAAiB,MAAM,OAAO,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAM9C;;GAEG;AACH,qBAAa,eAAe;IAYd,OAAO,CAAC,MAAM;IAX1B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,gBAAgB,CAAS;IAEjC;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAEpB;gBAEmB,MAAM,EAAE,WAAW;IAevC;;OAEG;YACW,QAAQ;IAYtB;;OAEG;IACG,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAYlD;;OAEG;IACH,YAAY,IAAI,MAAM,GAAG,IAAI;IAwB7B;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIjC;;OAEG;IACH,cAAc,IAAI,IAAI;IAItB;;OAEG;IACH,aAAa,IAAI,OAAO;IAIxB;;OAEG;IACG,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC;IAKlE;;OAEG;IACG,IAAI,CAAC,CAAC,EACV,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,GAAG,EACV,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,CAAC,CAAC;IAKb;;OAEG;IACG,GAAG,CAAC,CAAC,EACT,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,GAAG,EACV,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,CAAC,CAAC;IAKb;;OAEG;IACG,KAAK,CAAC,CAAC,EACX,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE,GAAG,EACV,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,CAAC,CAAC;IAKb;;OAEG;IACG,MAAM,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,CAAC,CAAC;IAK5E;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMjC;;OAEG;IACH,cAAc,IAAI,IAAI;IAKtB;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAwC1B"}
|
package/dist/core/http-client.js
CHANGED
|
@@ -5,13 +5,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.BiomeHttpClient = void 0;
|
|
7
7
|
const axios_1 = __importDefault(require("axios"));
|
|
8
|
-
const DEFAULT_CSRF_HEADER_NAME =
|
|
9
|
-
const DEFAULT_CSRF_COOKIE_NAME =
|
|
10
|
-
const CSRF_METHODS = [
|
|
8
|
+
const DEFAULT_CSRF_HEADER_NAME = "X-CSRF-TOKEN";
|
|
9
|
+
const DEFAULT_CSRF_COOKIE_NAME = "XSRF-TOKEN";
|
|
10
|
+
const CSRF_METHODS = ["post", "put", "patch", "delete"];
|
|
11
11
|
/**
|
|
12
12
|
* Framework-agnostic HTTP client using Axios
|
|
13
13
|
*/
|
|
14
14
|
class BiomeHttpClient {
|
|
15
|
+
/**
|
|
16
|
+
* Get the base URL configured for this client
|
|
17
|
+
*/
|
|
18
|
+
get baseURL() {
|
|
19
|
+
return this.config.apiBaseUrl;
|
|
20
|
+
}
|
|
15
21
|
constructor(config) {
|
|
16
22
|
this.config = config;
|
|
17
23
|
this._csrfToken = null;
|
|
@@ -20,7 +26,7 @@ class BiomeHttpClient {
|
|
|
20
26
|
baseURL: config.apiBaseUrl,
|
|
21
27
|
timeout: config.timeout || 30000,
|
|
22
28
|
headers: {
|
|
23
|
-
|
|
29
|
+
"Content-Type": "application/json",
|
|
24
30
|
...config.headers,
|
|
25
31
|
},
|
|
26
32
|
withCredentials: config.http?.withCredentials || false,
|
|
@@ -47,12 +53,13 @@ class BiomeHttpClient {
|
|
|
47
53
|
async fetchCsrfToken(url) {
|
|
48
54
|
try {
|
|
49
55
|
const response = await this.axiosInstance.get(url);
|
|
50
|
-
this._csrfToken =
|
|
56
|
+
this._csrfToken =
|
|
57
|
+
response.data.token || response.data;
|
|
51
58
|
return this._csrfToken;
|
|
52
59
|
}
|
|
53
60
|
catch {
|
|
54
61
|
this._csrfToken = null;
|
|
55
|
-
throw new Error(
|
|
62
|
+
throw new Error("Failed to fetch CSRF token");
|
|
56
63
|
}
|
|
57
64
|
}
|
|
58
65
|
/**
|
|
@@ -63,12 +70,12 @@ class BiomeHttpClient {
|
|
|
63
70
|
return this._csrfToken;
|
|
64
71
|
}
|
|
65
72
|
const cookieName = this.config.csrf?.cookieName || DEFAULT_CSRF_COOKIE_NAME;
|
|
66
|
-
if (typeof document ===
|
|
73
|
+
if (typeof document === "undefined") {
|
|
67
74
|
return null;
|
|
68
75
|
}
|
|
69
|
-
const cookies = document?.cookie?.split(
|
|
76
|
+
const cookies = document?.cookie?.split(";") || [];
|
|
70
77
|
for (const cookie of cookies) {
|
|
71
|
-
const [name, value] = cookie.trim().split(
|
|
78
|
+
const [name, value] = cookie.trim().split("=");
|
|
72
79
|
if (name === cookieName) {
|
|
73
80
|
this._csrfToken = decodeURIComponent(value);
|
|
74
81
|
return this._csrfToken;
|
|
@@ -134,14 +141,15 @@ class BiomeHttpClient {
|
|
|
134
141
|
*/
|
|
135
142
|
setAuthToken(token) {
|
|
136
143
|
this.config.authToken = token;
|
|
137
|
-
this.axiosInstance.defaults.headers.common[
|
|
144
|
+
this.axiosInstance.defaults.headers.common["Authorization"] =
|
|
145
|
+
`Bearer ${token}`;
|
|
138
146
|
}
|
|
139
147
|
/**
|
|
140
148
|
* Clear authentication token
|
|
141
149
|
*/
|
|
142
150
|
clearAuthToken() {
|
|
143
151
|
this.config.authToken = undefined;
|
|
144
|
-
delete this.axiosInstance.defaults.headers.common[
|
|
152
|
+
delete this.axiosInstance.defaults.headers.common["Authorization"];
|
|
145
153
|
}
|
|
146
154
|
/**
|
|
147
155
|
* Setup request and response interceptors
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../src/core/http-client.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAgF;AAGhF,MAAM,wBAAwB,GAAG,cAAc,CAAC;AAChD,MAAM,wBAAwB,GAAG,YAAY,CAAC;AAC9C,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;AAExD;;GAEG;AACH,MAAa,eAAe;
|
|
1
|
+
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../src/core/http-client.ts"],"names":[],"mappings":"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"}
|