@nekutima/biome-sdk 0.1.18
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/README.md +100 -0
- package/dist/auth/auth.service.d.ts +90 -0
- package/dist/auth/auth.service.d.ts.map +1 -0
- package/dist/auth/auth.service.js +166 -0
- package/dist/auth/auth.service.js.map +1 -0
- package/dist/auth/types.d.ts +19 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/auth/types.js +3 -0
- package/dist/auth/types.js.map +1 -0
- package/dist/core/configuration.d.ts +26 -0
- package/dist/core/configuration.d.ts.map +1 -0
- package/dist/core/configuration.js +3 -0
- package/dist/core/configuration.js.map +1 -0
- package/dist/core/error-handler.d.ts +24 -0
- package/dist/core/error-handler.d.ts.map +1 -0
- package/dist/core/error-handler.js +76 -0
- package/dist/core/error-handler.js.map +1 -0
- package/dist/core/http-client.d.ts +43 -0
- package/dist/core/http-client.d.ts.map +1 -0
- package/dist/core/http-client.js +97 -0
- package/dist/core/http-client.js.map +1 -0
- package/dist/core/state-manager.d.ts +16 -0
- package/dist/core/state-manager.d.ts.map +1 -0
- package/dist/core/state-manager.js +33 -0
- package/dist/core/state-manager.js.map +1 -0
- package/dist/files/file-upload.d.ts +60 -0
- package/dist/files/file-upload.d.ts.map +1 -0
- package/dist/files/file-upload.js +121 -0
- package/dist/files/file-upload.js.map +1 -0
- package/dist/index.d.ts +80 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +140 -0
- package/dist/index.js.map +1 -0
- package/dist/models/api-error.model.d.ts +31 -0
- package/dist/models/api-error.model.d.ts.map +1 -0
- package/dist/models/api-error.model.js +53 -0
- package/dist/models/api-error.model.js.map +1 -0
- package/dist/models/api-response.model.d.ts +51 -0
- package/dist/models/api-response.model.d.ts.map +1 -0
- package/dist/models/api-response.model.js +77 -0
- package/dist/models/api-response.model.js.map +1 -0
- package/dist/models/chat.model.d.ts +59 -0
- package/dist/models/chat.model.d.ts.map +1 -0
- package/dist/models/chat.model.js +3 -0
- package/dist/models/chat.model.js.map +1 -0
- package/dist/models/ecosystem.model.d.ts +16 -0
- package/dist/models/ecosystem.model.d.ts.map +1 -0
- package/dist/models/ecosystem.model.js +7 -0
- package/dist/models/ecosystem.model.js.map +1 -0
- package/dist/models/file.model.d.ts +67 -0
- package/dist/models/file.model.d.ts.map +1 -0
- package/dist/models/file.model.js +3 -0
- package/dist/models/file.model.js.map +1 -0
- package/dist/models/notification.model.d.ts +172 -0
- package/dist/models/notification.model.d.ts.map +1 -0
- package/dist/models/notification.model.js +77 -0
- package/dist/models/notification.model.js.map +1 -0
- package/dist/models/person.model.d.ts +94 -0
- package/dist/models/person.model.d.ts.map +1 -0
- package/dist/models/person.model.js +14 -0
- package/dist/models/person.model.js.map +1 -0
- package/dist/models/project.model.d.ts +62 -0
- package/dist/models/project.model.d.ts.map +1 -0
- package/dist/models/project.model.js +93 -0
- package/dist/models/project.model.js.map +1 -0
- package/dist/models/task-update.model.d.ts +28 -0
- package/dist/models/task-update.model.d.ts.map +1 -0
- package/dist/models/task-update.model.js +8 -0
- package/dist/models/task-update.model.js.map +1 -0
- package/dist/models/task-url.model.d.ts +16 -0
- package/dist/models/task-url.model.d.ts.map +1 -0
- package/dist/models/task-url.model.js +3 -0
- package/dist/models/task-url.model.js.map +1 -0
- package/dist/models/task.model.d.ts +120 -0
- package/dist/models/task.model.d.ts.map +1 -0
- package/dist/models/task.model.js +78 -0
- package/dist/models/task.model.js.map +1 -0
- package/dist/models/timezone.model.d.ts +19 -0
- package/dist/models/timezone.model.d.ts.map +1 -0
- package/dist/models/timezone.model.js +12 -0
- package/dist/models/timezone.model.js.map +1 -0
- package/dist/models/user.model.d.ts +101 -0
- package/dist/models/user.model.d.ts.map +1 -0
- package/dist/models/user.model.js +22 -0
- package/dist/models/user.model.js.map +1 -0
- package/dist/profiles/profile.service.d.ts +52 -0
- package/dist/profiles/profile.service.d.ts.map +1 -0
- package/dist/profiles/profile.service.js +119 -0
- package/dist/profiles/profile.service.js.map +1 -0
- package/dist/profiles/types.d.ts +1 -0
- package/dist/profiles/types.d.ts.map +1 -0
- package/dist/profiles/types.js +3 -0
- package/dist/profiles/types.js.map +1 -0
- package/dist/tasks/task-sorting.d.ts +51 -0
- package/dist/tasks/task-sorting.d.ts.map +1 -0
- package/dist/tasks/task-sorting.js +137 -0
- package/dist/tasks/task-sorting.js.map +1 -0
- package/dist/tasks/task.service.d.ts +134 -0
- package/dist/tasks/task.service.d.ts.map +1 -0
- package/dist/tasks/task.service.js +256 -0
- package/dist/tasks/task.service.js.map +1 -0
- package/dist/tasks/types.d.ts +2 -0
- package/dist/tasks/types.d.ts.map +1 -0
- package/dist/tasks/types.js +3 -0
- package/dist/tasks/types.js.map +1 -0
- package/dist/types/actor.types.d.ts +101 -0
- package/dist/types/actor.types.d.ts.map +1 -0
- package/dist/types/actor.types.js +135 -0
- package/dist/types/actor.types.js.map +1 -0
- package/dist/types/api.types.d.ts +43 -0
- package/dist/types/api.types.d.ts.map +1 -0
- package/dist/types/api.types.js +6 -0
- package/dist/types/api.types.js.map +1 -0
- package/dist/types/common.types.d.ts +40 -0
- package/dist/types/common.types.d.ts.map +1 -0
- package/dist/types/common.types.js +6 -0
- package/dist/types/common.types.js.map +1 -0
- package/dist/types/state-machine.types.d.ts +102 -0
- package/dist/types/state-machine.types.d.ts.map +1 -0
- package/dist/types/state-machine.types.js +18 -0
- package/dist/types/state-machine.types.js.map +1 -0
- package/dist/users/user.service.d.ts +49 -0
- package/dist/users/user.service.d.ts.map +1 -0
- package/dist/users/user.service.js +119 -0
- package/dist/users/user.service.js.map +1 -0
- package/dist/utils/date.utils.d.ts +60 -0
- package/dist/utils/date.utils.d.ts.map +1 -0
- package/dist/utils/date.utils.js +125 -0
- package/dist/utils/date.utils.js.map +1 -0
- package/dist/utils/username-generator.d.ts +76 -0
- package/dist/utils/username-generator.d.ts.map +1 -0
- package/dist/utils/username-generator.js +177 -0
- package/dist/utils/username-generator.js.map +1 -0
- package/dist/utils/validation.utils.d.ts +57 -0
- package/dist/utils/validation.utils.d.ts.map +1 -0
- package/dist/utils/validation.utils.js +117 -0
- package/dist/utils/validation.utils.js.map +1 -0
- package/dist/validation/password-strength.d.ts +66 -0
- package/dist/validation/password-strength.d.ts.map +1 -0
- package/dist/validation/password-strength.js +192 -0
- package/dist/validation/password-strength.js.map +1 -0
- package/dist/validation/schemas.d.ts +69 -0
- package/dist/validation/schemas.d.ts.map +1 -0
- package/dist/validation/schemas.js +94 -0
- package/dist/validation/schemas.js.map +1 -0
- package/package.json +51 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.BiomeHttpClient = void 0;
|
|
7
|
+
const axios_1 = __importDefault(require("axios"));
|
|
8
|
+
/**
|
|
9
|
+
* Framework-agnostic HTTP client using Axios
|
|
10
|
+
*/
|
|
11
|
+
class BiomeHttpClient {
|
|
12
|
+
constructor(config) {
|
|
13
|
+
this.config = config;
|
|
14
|
+
this.axiosInstance = axios_1.default.create({
|
|
15
|
+
baseURL: config.apiBaseUrl,
|
|
16
|
+
timeout: config.timeout || 30000,
|
|
17
|
+
headers: {
|
|
18
|
+
'Content-Type': 'application/json',
|
|
19
|
+
...config.headers,
|
|
20
|
+
},
|
|
21
|
+
withCredentials: config.http?.withCredentials || false,
|
|
22
|
+
});
|
|
23
|
+
this.setupInterceptors();
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Perform GET request
|
|
27
|
+
*/
|
|
28
|
+
async get(url, config) {
|
|
29
|
+
const response = await this.axiosInstance.get(url, config);
|
|
30
|
+
return response.data;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Perform POST request
|
|
34
|
+
*/
|
|
35
|
+
async post(url, data, config) {
|
|
36
|
+
const response = await this.axiosInstance.post(url, data, config);
|
|
37
|
+
return response.data;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Perform PUT request
|
|
41
|
+
*/
|
|
42
|
+
async put(url, data, config) {
|
|
43
|
+
const response = await this.axiosInstance.put(url, data, config);
|
|
44
|
+
return response.data;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Perform PATCH request
|
|
48
|
+
*/
|
|
49
|
+
async patch(url, data, config) {
|
|
50
|
+
const response = await this.axiosInstance.patch(url, data, config);
|
|
51
|
+
return response.data;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Perform DELETE request
|
|
55
|
+
*/
|
|
56
|
+
async delete(url, config) {
|
|
57
|
+
const response = await this.axiosInstance.delete(url, config);
|
|
58
|
+
return response.data;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Set authentication token for subsequent requests
|
|
62
|
+
*/
|
|
63
|
+
setAuthToken(token) {
|
|
64
|
+
this.config.authToken = token;
|
|
65
|
+
this.axiosInstance.defaults.headers.common['Authorization'] = `Bearer ${token}`;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Clear authentication token
|
|
69
|
+
*/
|
|
70
|
+
clearAuthToken() {
|
|
71
|
+
this.config.authToken = undefined;
|
|
72
|
+
delete this.axiosInstance.defaults.headers.common['Authorization'];
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Setup request and response interceptors
|
|
76
|
+
*/
|
|
77
|
+
setupInterceptors() {
|
|
78
|
+
// Request interceptor
|
|
79
|
+
this.axiosInstance.interceptors.request.use((config) => {
|
|
80
|
+
// Add auth token if available
|
|
81
|
+
if (this.config.authToken) {
|
|
82
|
+
config.headers.Authorization = `Bearer ${this.config.authToken}`;
|
|
83
|
+
}
|
|
84
|
+
return config;
|
|
85
|
+
}, (error) => Promise.reject(error));
|
|
86
|
+
// Response interceptor for error handling
|
|
87
|
+
this.axiosInstance.interceptors.response.use((response) => response, (error) => {
|
|
88
|
+
// Handle common error scenarios
|
|
89
|
+
if (error.response?.status === 401) {
|
|
90
|
+
this.clearAuthToken();
|
|
91
|
+
}
|
|
92
|
+
return Promise.reject(error);
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
exports.BiomeHttpClient = BiomeHttpClient;
|
|
97
|
+
//# sourceMappingURL=http-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-client.js","sourceRoot":"","sources":["../../src/core/http-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Simple state management for SDK (no UI reactivity)
|
|
3
|
+
*/
|
|
4
|
+
export declare class StatefulValue<T> {
|
|
5
|
+
private _value;
|
|
6
|
+
private _subscribers;
|
|
7
|
+
constructor(initialValue: T);
|
|
8
|
+
get value(): T;
|
|
9
|
+
set value(newValue: T);
|
|
10
|
+
subscribe(callback: (value: T) => void): () => void;
|
|
11
|
+
/**
|
|
12
|
+
* Update value using a function
|
|
13
|
+
*/
|
|
14
|
+
update(updateFn: (currentValue: T) => T): void;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=state-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-manager.d.ts","sourceRoot":"","sources":["../../src/core/state-manager.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,aAAa,CAAC,CAAC;IACxB,OAAO,CAAC,MAAM,CAAI;IAClB,OAAO,CAAC,YAAY,CAAsC;gBAE9C,YAAY,EAAE,CAAC;IAI3B,IAAI,KAAK,IAAI,CAAC,CAEb;IAED,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC,EAKpB;IAED,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI;IAKnD;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,GAAG,IAAI;CAGjD"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StatefulValue = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Simple state management for SDK (no UI reactivity)
|
|
6
|
+
*/
|
|
7
|
+
class StatefulValue {
|
|
8
|
+
constructor(initialValue) {
|
|
9
|
+
this._subscribers = new Set();
|
|
10
|
+
this._value = initialValue;
|
|
11
|
+
}
|
|
12
|
+
get value() {
|
|
13
|
+
return this._value;
|
|
14
|
+
}
|
|
15
|
+
set value(newValue) {
|
|
16
|
+
if (this._value !== newValue) {
|
|
17
|
+
this._value = newValue;
|
|
18
|
+
this._subscribers.forEach(callback => callback(newValue));
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
subscribe(callback) {
|
|
22
|
+
this._subscribers.add(callback);
|
|
23
|
+
return () => this._subscribers.delete(callback);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Update value using a function
|
|
27
|
+
*/
|
|
28
|
+
update(updateFn) {
|
|
29
|
+
this.value = updateFn(this._value);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.StatefulValue = StatefulValue;
|
|
33
|
+
//# sourceMappingURL=state-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-manager.js","sourceRoot":"","sources":["../../src/core/state-manager.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,MAAa,aAAa;IAItB,YAAY,YAAe;QAFnB,iBAAY,GAA4B,IAAI,GAAG,EAAE,CAAC;QAGtD,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;IAC/B,CAAC;IAED,IAAI,KAAK;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,IAAI,KAAK,CAAC,QAAW;QACjB,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC3B,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;YACvB,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC9D,CAAC;IACL,CAAC;IAED,SAAS,CAAC,QAA4B;QAClC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAgC;QACnC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;CACJ;AA9BD,sCA8BC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { BiomeHttpClient } from '../core/http-client';
|
|
2
|
+
import { ApiResponse } from '../models/api-response.model';
|
|
3
|
+
/**
|
|
4
|
+
* Upload response structure
|
|
5
|
+
*/
|
|
6
|
+
export interface UploadResponse {
|
|
7
|
+
id: number;
|
|
8
|
+
filename: string;
|
|
9
|
+
name?: string;
|
|
10
|
+
description?: string;
|
|
11
|
+
storagePath?: string;
|
|
12
|
+
mimeType: string;
|
|
13
|
+
size: number;
|
|
14
|
+
url?: string;
|
|
15
|
+
isPublic?: boolean;
|
|
16
|
+
ownerId?: number;
|
|
17
|
+
createdAt?: string;
|
|
18
|
+
updatedAt?: string;
|
|
19
|
+
tags?: string[];
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* File upload service - pure business logic without UI concerns
|
|
23
|
+
*/
|
|
24
|
+
export declare class FileUpload {
|
|
25
|
+
private http;
|
|
26
|
+
constructor(http: BiomeHttpClient);
|
|
27
|
+
/**
|
|
28
|
+
* Upload an image file
|
|
29
|
+
*/
|
|
30
|
+
uploadImage(file: File, folder?: string): Promise<UploadResponse>;
|
|
31
|
+
/**
|
|
32
|
+
* Delete an image file
|
|
33
|
+
*/
|
|
34
|
+
deleteImage(fileId: number): Promise<void>;
|
|
35
|
+
/**
|
|
36
|
+
* Create preview URL for file
|
|
37
|
+
*/
|
|
38
|
+
createPreviewUrl(file: File): string;
|
|
39
|
+
/**
|
|
40
|
+
* Revoke preview URL to free memory
|
|
41
|
+
*/
|
|
42
|
+
revokePreviewUrl(url: string): void;
|
|
43
|
+
/**
|
|
44
|
+
* Validate if file is a valid image type
|
|
45
|
+
*/
|
|
46
|
+
private static isValidImageType;
|
|
47
|
+
/**
|
|
48
|
+
* Delete a file from server
|
|
49
|
+
*/
|
|
50
|
+
deleteFile(fileId: number): Promise<ApiResponse<void>>;
|
|
51
|
+
/**
|
|
52
|
+
* Get file information from server
|
|
53
|
+
*/
|
|
54
|
+
getFileInfo(fileId: number): Promise<ApiResponse<UploadResponse>>;
|
|
55
|
+
/**
|
|
56
|
+
* Validate image dimensions are within constraints
|
|
57
|
+
*/
|
|
58
|
+
private static validateImageDimensions;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=file-upload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-upload.d.ts","sourceRoot":"","sources":["../../src/files/file-upload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,UAAU;IACP,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,eAAe;IAEzC;;OAEG;IACG,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,SAAmB,GAAG,OAAO,CAAC,cAAc,CAAC;IA0BjF;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQhD;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;IAIpC;;OAEG;IACH,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAInC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAK/B;;OAEG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAS5D;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IASvE;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,uBAAuB;CAgCzC"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FileUpload = void 0;
|
|
4
|
+
const error_handler_1 = require("../core/error-handler");
|
|
5
|
+
/**
|
|
6
|
+
* File upload service - pure business logic without UI concerns
|
|
7
|
+
*/
|
|
8
|
+
class FileUpload {
|
|
9
|
+
constructor(http) {
|
|
10
|
+
this.http = http;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Upload an image file
|
|
14
|
+
*/
|
|
15
|
+
async uploadImage(file, folder = 'profile-photos') {
|
|
16
|
+
// Validate file type
|
|
17
|
+
if (!FileUpload.isValidImageType(file)) {
|
|
18
|
+
throw (0, error_handler_1.createSdkError)(new Error('Please upload a JPG, PNG, or WebP image.'), 'File validation failed');
|
|
19
|
+
}
|
|
20
|
+
// Validate file size (max 5MB)
|
|
21
|
+
if (file.size > 5 * 1024 * 1024) {
|
|
22
|
+
throw (0, error_handler_1.createSdkError)(new Error('File size too large. Please upload an image smaller than 5MB.'), 'File validation failed');
|
|
23
|
+
}
|
|
24
|
+
// Validate image dimensions
|
|
25
|
+
await FileUpload.validateImageDimensions(file);
|
|
26
|
+
try {
|
|
27
|
+
const formData = new FormData();
|
|
28
|
+
formData.append('file', file);
|
|
29
|
+
formData.append('folder', folder);
|
|
30
|
+
const response = await this.http.post('/trunk/files', formData);
|
|
31
|
+
return response.payload;
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
throw (0, error_handler_1.createSdkError)(error, 'Failed to upload image');
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Delete an image file
|
|
39
|
+
*/
|
|
40
|
+
async deleteImage(fileId) {
|
|
41
|
+
try {
|
|
42
|
+
await this.http.delete(`/trunk/files/${fileId}`);
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
throw (0, error_handler_1.createSdkError)(error, 'Failed to delete image');
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Create preview URL for file
|
|
50
|
+
*/
|
|
51
|
+
createPreviewUrl(file) {
|
|
52
|
+
return URL.createObjectURL(file);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Revoke preview URL to free memory
|
|
56
|
+
*/
|
|
57
|
+
revokePreviewUrl(url) {
|
|
58
|
+
URL.revokeObjectURL(url);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Validate if file is a valid image type
|
|
62
|
+
*/
|
|
63
|
+
static isValidImageType(file) {
|
|
64
|
+
const validTypes = ['image/jpeg', 'image/jpg', 'image/png', 'image/webp'];
|
|
65
|
+
return validTypes.includes(file.type);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Delete a file from server
|
|
69
|
+
*/
|
|
70
|
+
async deleteFile(fileId) {
|
|
71
|
+
try {
|
|
72
|
+
const response = await this.http.delete(`/files/${fileId}`);
|
|
73
|
+
return response;
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
throw (0, error_handler_1.createSdkError)(error, 'Failed to delete file');
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Get file information from server
|
|
81
|
+
*/
|
|
82
|
+
async getFileInfo(fileId) {
|
|
83
|
+
try {
|
|
84
|
+
const response = await this.http.get(`/files/${fileId}`);
|
|
85
|
+
return response;
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
throw (0, error_handler_1.createSdkError)(error, 'Failed to get file info');
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Validate image dimensions are within constraints
|
|
93
|
+
*/
|
|
94
|
+
static validateImageDimensions(file) {
|
|
95
|
+
const minDimension = 100;
|
|
96
|
+
const maxDimension = 2048;
|
|
97
|
+
return new Promise((resolve, reject) => {
|
|
98
|
+
const objectUrl = URL.createObjectURL(file);
|
|
99
|
+
const img = new Image();
|
|
100
|
+
img.onload = () => {
|
|
101
|
+
URL.revokeObjectURL(objectUrl);
|
|
102
|
+
if (img.naturalWidth < minDimension || img.naturalHeight < minDimension) {
|
|
103
|
+
reject(new Error('Image must be at least 100 x 100 pixels.'));
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
if (img.naturalWidth > maxDimension || img.naturalHeight > maxDimension) {
|
|
107
|
+
reject(new Error('Image must not exceed 2048 x 2048 pixels.'));
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
resolve();
|
|
111
|
+
};
|
|
112
|
+
img.onerror = () => {
|
|
113
|
+
URL.revokeObjectURL(objectUrl);
|
|
114
|
+
reject(new Error('We could not read that image file. Please choose a different one.'));
|
|
115
|
+
};
|
|
116
|
+
img.src = objectUrl;
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
exports.FileUpload = FileUpload;
|
|
121
|
+
//# sourceMappingURL=file-upload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-upload.js","sourceRoot":"","sources":["../../src/files/file-upload.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
export type { BiomeConfig } from './core/configuration';
|
|
2
|
+
import { BiomeHttpClient } from './core/http-client';
|
|
3
|
+
export { BiomeHttpClient };
|
|
4
|
+
export { StatefulValue } from './core/state-manager';
|
|
5
|
+
export type { createSdkError, BiomeSdkError } from './core/error-handler';
|
|
6
|
+
export { BiomeAuth } from './auth/auth.service';
|
|
7
|
+
export type { SessionData, SignupData, LoginData, LoginResponse } from './auth/auth.service';
|
|
8
|
+
export { BiomeTasks } from './tasks/task.service';
|
|
9
|
+
export { TaskSorting } from './tasks/task-sorting';
|
|
10
|
+
export type { TaskFilters, CreateTaskRequest, UpdateTaskRequest, TaskDeliveryRequest, TaskEvaluationRequest, TaskRejectionRequest, TaskCancellationRequest } from './tasks/task.service';
|
|
11
|
+
export { BiomeProfiles } from './profiles/profile.service';
|
|
12
|
+
export { BiomeUsers } from './users/user.service';
|
|
13
|
+
export type { UserWithAvatar } from './users/user.service';
|
|
14
|
+
export { FileUpload } from './files/file-upload';
|
|
15
|
+
export type { UploadResponse } from './files/file-upload';
|
|
16
|
+
export * from './models/api-error.model';
|
|
17
|
+
export * from './models/api-response.model';
|
|
18
|
+
export * from './models/ecosystem.model';
|
|
19
|
+
export * from './models/notification.model';
|
|
20
|
+
export * from './models/person.model';
|
|
21
|
+
export * from './models/project.model';
|
|
22
|
+
export * from './models/chat.model';
|
|
23
|
+
export * from './models/file.model';
|
|
24
|
+
export * from './models/task.model';
|
|
25
|
+
export type { TaskSearchParams } from './models/task.model';
|
|
26
|
+
export * from './models/task-update.model';
|
|
27
|
+
export * from './models/task-url.model';
|
|
28
|
+
export * from './models/timezone.model';
|
|
29
|
+
export * from './models/user.model';
|
|
30
|
+
export * from './types/actor.types';
|
|
31
|
+
export type { ApiEndpoint, ApiRequest, ApiValidationResponse, HttpMethod, HttpStatus, RateLimitInfo, ValidationError } from './types/api.types';
|
|
32
|
+
export * from './types/common.types';
|
|
33
|
+
export * from './types/state-machine.types';
|
|
34
|
+
export { createValidationError, hasMaxLength, hasMinLength, isInRange, isNotEmpty, isOneOf, isValidEmail, isValidInteger, isValidNumber, isValidPositiveNumber, isValidUrl, validateObject, } from './utils/validation.utils';
|
|
35
|
+
export { addDays, formatDate, formatDateTime, getCurrentDate, getDaysDifference, getEndOfDay, getStartOfDay, isFuture, isPast, isToday, isValidDate, parseDate, subtractDays, toISOString, } from './utils/date.utils';
|
|
36
|
+
export { generateCreativeUsername, generateUsernameSuggestions, isValidGeneratedUsername, } from './utils/username-generator';
|
|
37
|
+
export * from './validation/schemas';
|
|
38
|
+
export * from './validation/password-strength';
|
|
39
|
+
import { BiomeConfig } from './core/configuration';
|
|
40
|
+
import { BiomeAuth } from './auth/auth.service';
|
|
41
|
+
import { BiomeTasks } from './tasks/task.service';
|
|
42
|
+
import { BiomeProfiles } from './profiles/profile.service';
|
|
43
|
+
import { BiomeUsers } from './users/user.service';
|
|
44
|
+
import { FileUpload } from './files/file-upload';
|
|
45
|
+
/**
|
|
46
|
+
* Main Biome SDK class
|
|
47
|
+
*/
|
|
48
|
+
export declare class BiomeSDK {
|
|
49
|
+
readonly auth: BiomeAuth;
|
|
50
|
+
readonly tasks: BiomeTasks;
|
|
51
|
+
readonly profiles: BiomeProfiles;
|
|
52
|
+
readonly users: BiomeUsers;
|
|
53
|
+
readonly files: FileUpload;
|
|
54
|
+
readonly fileUpload: FileUpload;
|
|
55
|
+
constructor(config: BiomeConfig);
|
|
56
|
+
/**
|
|
57
|
+
* Get SDK configuration (for backward compatibility)
|
|
58
|
+
*/
|
|
59
|
+
get config(): BiomeConfig;
|
|
60
|
+
/**
|
|
61
|
+
* Initialize BiomeSDK with configuration
|
|
62
|
+
*/
|
|
63
|
+
static initialize(config: {
|
|
64
|
+
baseURL: string;
|
|
65
|
+
timeout?: number;
|
|
66
|
+
retryAttempts?: number;
|
|
67
|
+
http?: {
|
|
68
|
+
withCredentials?: boolean;
|
|
69
|
+
interceptors?: {
|
|
70
|
+
credentials?: boolean;
|
|
71
|
+
taskNotificationRefresh?: {
|
|
72
|
+
broadcastChannel?: string;
|
|
73
|
+
customEvent?: string;
|
|
74
|
+
ignoreUrls?: string[];
|
|
75
|
+
};
|
|
76
|
+
};
|
|
77
|
+
};
|
|
78
|
+
}): BiomeSDK;
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.BiomeSDK = exports.isValidGeneratedUsername = exports.generateUsernameSuggestions = exports.generateCreativeUsername = exports.toISOString = exports.subtractDays = exports.parseDate = exports.isValidDate = exports.isToday = exports.isPast = exports.isFuture = exports.getStartOfDay = exports.getEndOfDay = exports.getDaysDifference = exports.getCurrentDate = exports.formatDateTime = exports.formatDate = exports.addDays = exports.validateObject = exports.isValidUrl = exports.isValidPositiveNumber = exports.isValidNumber = exports.isValidInteger = exports.isValidEmail = exports.isOneOf = exports.isNotEmpty = exports.isInRange = exports.hasMinLength = exports.hasMaxLength = exports.createValidationError = exports.FileUpload = exports.BiomeUsers = exports.BiomeProfiles = exports.TaskSorting = exports.BiomeTasks = exports.BiomeAuth = exports.StatefulValue = exports.BiomeHttpClient = void 0;
|
|
18
|
+
const http_client_1 = require("./core/http-client");
|
|
19
|
+
Object.defineProperty(exports, "BiomeHttpClient", { enumerable: true, get: function () { return http_client_1.BiomeHttpClient; } });
|
|
20
|
+
var state_manager_1 = require("./core/state-manager");
|
|
21
|
+
Object.defineProperty(exports, "StatefulValue", { enumerable: true, get: function () { return state_manager_1.StatefulValue; } });
|
|
22
|
+
// Authentication exports
|
|
23
|
+
var auth_service_1 = require("./auth/auth.service");
|
|
24
|
+
Object.defineProperty(exports, "BiomeAuth", { enumerable: true, get: function () { return auth_service_1.BiomeAuth; } });
|
|
25
|
+
// Task management exports
|
|
26
|
+
var task_service_1 = require("./tasks/task.service");
|
|
27
|
+
Object.defineProperty(exports, "BiomeTasks", { enumerable: true, get: function () { return task_service_1.BiomeTasks; } });
|
|
28
|
+
var task_sorting_1 = require("./tasks/task-sorting");
|
|
29
|
+
Object.defineProperty(exports, "TaskSorting", { enumerable: true, get: function () { return task_sorting_1.TaskSorting; } });
|
|
30
|
+
// Profile management exports
|
|
31
|
+
var profile_service_1 = require("./profiles/profile.service");
|
|
32
|
+
Object.defineProperty(exports, "BiomeProfiles", { enumerable: true, get: function () { return profile_service_1.BiomeProfiles; } });
|
|
33
|
+
// User management exports
|
|
34
|
+
var user_service_1 = require("./users/user.service");
|
|
35
|
+
Object.defineProperty(exports, "BiomeUsers", { enumerable: true, get: function () { return user_service_1.BiomeUsers; } });
|
|
36
|
+
// File upload exports
|
|
37
|
+
var file_upload_1 = require("./files/file-upload");
|
|
38
|
+
Object.defineProperty(exports, "FileUpload", { enumerable: true, get: function () { return file_upload_1.FileUpload; } });
|
|
39
|
+
// Model exports (existing)
|
|
40
|
+
__exportStar(require("./models/api-error.model"), exports);
|
|
41
|
+
__exportStar(require("./models/api-response.model"), exports);
|
|
42
|
+
__exportStar(require("./models/ecosystem.model"), exports);
|
|
43
|
+
__exportStar(require("./models/notification.model"), exports);
|
|
44
|
+
__exportStar(require("./models/person.model"), exports);
|
|
45
|
+
__exportStar(require("./models/project.model"), exports);
|
|
46
|
+
__exportStar(require("./models/chat.model"), exports);
|
|
47
|
+
__exportStar(require("./models/file.model"), exports);
|
|
48
|
+
__exportStar(require("./models/task.model"), exports);
|
|
49
|
+
__exportStar(require("./models/task-update.model"), exports);
|
|
50
|
+
__exportStar(require("./models/task-url.model"), exports);
|
|
51
|
+
__exportStar(require("./models/timezone.model"), exports);
|
|
52
|
+
__exportStar(require("./models/user.model"), exports);
|
|
53
|
+
// Type exports (existing)
|
|
54
|
+
__exportStar(require("./types/actor.types"), exports);
|
|
55
|
+
__exportStar(require("./types/common.types"), exports);
|
|
56
|
+
__exportStar(require("./types/state-machine.types"), exports);
|
|
57
|
+
// Utility exports (existing)
|
|
58
|
+
var validation_utils_1 = require("./utils/validation.utils");
|
|
59
|
+
Object.defineProperty(exports, "createValidationError", { enumerable: true, get: function () { return validation_utils_1.createValidationError; } });
|
|
60
|
+
Object.defineProperty(exports, "hasMaxLength", { enumerable: true, get: function () { return validation_utils_1.hasMaxLength; } });
|
|
61
|
+
Object.defineProperty(exports, "hasMinLength", { enumerable: true, get: function () { return validation_utils_1.hasMinLength; } });
|
|
62
|
+
Object.defineProperty(exports, "isInRange", { enumerable: true, get: function () { return validation_utils_1.isInRange; } });
|
|
63
|
+
Object.defineProperty(exports, "isNotEmpty", { enumerable: true, get: function () { return validation_utils_1.isNotEmpty; } });
|
|
64
|
+
Object.defineProperty(exports, "isOneOf", { enumerable: true, get: function () { return validation_utils_1.isOneOf; } });
|
|
65
|
+
Object.defineProperty(exports, "isValidEmail", { enumerable: true, get: function () { return validation_utils_1.isValidEmail; } });
|
|
66
|
+
Object.defineProperty(exports, "isValidInteger", { enumerable: true, get: function () { return validation_utils_1.isValidInteger; } });
|
|
67
|
+
Object.defineProperty(exports, "isValidNumber", { enumerable: true, get: function () { return validation_utils_1.isValidNumber; } });
|
|
68
|
+
Object.defineProperty(exports, "isValidPositiveNumber", { enumerable: true, get: function () { return validation_utils_1.isValidPositiveNumber; } });
|
|
69
|
+
Object.defineProperty(exports, "isValidUrl", { enumerable: true, get: function () { return validation_utils_1.isValidUrl; } });
|
|
70
|
+
Object.defineProperty(exports, "validateObject", { enumerable: true, get: function () { return validation_utils_1.validateObject; } });
|
|
71
|
+
var date_utils_1 = require("./utils/date.utils");
|
|
72
|
+
Object.defineProperty(exports, "addDays", { enumerable: true, get: function () { return date_utils_1.addDays; } });
|
|
73
|
+
Object.defineProperty(exports, "formatDate", { enumerable: true, get: function () { return date_utils_1.formatDate; } });
|
|
74
|
+
Object.defineProperty(exports, "formatDateTime", { enumerable: true, get: function () { return date_utils_1.formatDateTime; } });
|
|
75
|
+
Object.defineProperty(exports, "getCurrentDate", { enumerable: true, get: function () { return date_utils_1.getCurrentDate; } });
|
|
76
|
+
Object.defineProperty(exports, "getDaysDifference", { enumerable: true, get: function () { return date_utils_1.getDaysDifference; } });
|
|
77
|
+
Object.defineProperty(exports, "getEndOfDay", { enumerable: true, get: function () { return date_utils_1.getEndOfDay; } });
|
|
78
|
+
Object.defineProperty(exports, "getStartOfDay", { enumerable: true, get: function () { return date_utils_1.getStartOfDay; } });
|
|
79
|
+
Object.defineProperty(exports, "isFuture", { enumerable: true, get: function () { return date_utils_1.isFuture; } });
|
|
80
|
+
Object.defineProperty(exports, "isPast", { enumerable: true, get: function () { return date_utils_1.isPast; } });
|
|
81
|
+
Object.defineProperty(exports, "isToday", { enumerable: true, get: function () { return date_utils_1.isToday; } });
|
|
82
|
+
Object.defineProperty(exports, "isValidDate", { enumerable: true, get: function () { return date_utils_1.isValidDate; } });
|
|
83
|
+
Object.defineProperty(exports, "parseDate", { enumerable: true, get: function () { return date_utils_1.parseDate; } });
|
|
84
|
+
Object.defineProperty(exports, "subtractDays", { enumerable: true, get: function () { return date_utils_1.subtractDays; } });
|
|
85
|
+
Object.defineProperty(exports, "toISOString", { enumerable: true, get: function () { return date_utils_1.toISOString; } });
|
|
86
|
+
var username_generator_1 = require("./utils/username-generator");
|
|
87
|
+
Object.defineProperty(exports, "generateCreativeUsername", { enumerable: true, get: function () { return username_generator_1.generateCreativeUsername; } });
|
|
88
|
+
Object.defineProperty(exports, "generateUsernameSuggestions", { enumerable: true, get: function () { return username_generator_1.generateUsernameSuggestions; } });
|
|
89
|
+
Object.defineProperty(exports, "isValidGeneratedUsername", { enumerable: true, get: function () { return username_generator_1.isValidGeneratedUsername; } });
|
|
90
|
+
__exportStar(require("./validation/schemas"), exports);
|
|
91
|
+
__exportStar(require("./validation/password-strength"), exports);
|
|
92
|
+
const auth_service_2 = require("./auth/auth.service");
|
|
93
|
+
const task_service_2 = require("./tasks/task.service");
|
|
94
|
+
const profile_service_2 = require("./profiles/profile.service");
|
|
95
|
+
const user_service_2 = require("./users/user.service");
|
|
96
|
+
const file_upload_2 = require("./files/file-upload");
|
|
97
|
+
/**
|
|
98
|
+
* Main Biome SDK class
|
|
99
|
+
*/
|
|
100
|
+
class BiomeSDK {
|
|
101
|
+
constructor(config) {
|
|
102
|
+
const httpClient = new http_client_1.BiomeHttpClient(config);
|
|
103
|
+
this.auth = new auth_service_2.BiomeAuth(httpClient);
|
|
104
|
+
this.tasks = new task_service_2.BiomeTasks(httpClient);
|
|
105
|
+
this.profiles = new profile_service_2.BiomeProfiles(httpClient);
|
|
106
|
+
this.users = new user_service_2.BiomeUsers(httpClient);
|
|
107
|
+
this.files = new file_upload_2.FileUpload(httpClient);
|
|
108
|
+
// Alias for backward compatibility
|
|
109
|
+
this.fileUpload = this.files;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Get SDK configuration (for backward compatibility)
|
|
113
|
+
*/
|
|
114
|
+
get config() {
|
|
115
|
+
return {
|
|
116
|
+
apiBaseUrl: '', // This would need to be stored
|
|
117
|
+
timeout: 30000,
|
|
118
|
+
headers: {},
|
|
119
|
+
http: {
|
|
120
|
+
withCredentials: false
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Initialize BiomeSDK with configuration
|
|
126
|
+
*/
|
|
127
|
+
static initialize(config) {
|
|
128
|
+
const sdkConfig = {
|
|
129
|
+
apiBaseUrl: config.baseURL,
|
|
130
|
+
timeout: config.timeout,
|
|
131
|
+
headers: config.http?.withCredentials ? {
|
|
132
|
+
'withCredentials': 'true'
|
|
133
|
+
} : undefined,
|
|
134
|
+
http: config.http
|
|
135
|
+
};
|
|
136
|
+
return new BiomeSDK(sdkConfig);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
exports.BiomeSDK = BiomeSDK;
|
|
140
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Unified API Error model for Biome platform
|
|
3
|
+
* This model is shared between frontend and backend
|
|
4
|
+
*/
|
|
5
|
+
export declare enum API_ERROR_TYPE {
|
|
6
|
+
BAD_REQUEST = "BAD_REQUEST",
|
|
7
|
+
UNAUTHORIZED = "UNAUTHORIZED",
|
|
8
|
+
FORBIDDEN = "FORBIDDEN",
|
|
9
|
+
NOT_FOUND = "NOT_FOUND",
|
|
10
|
+
INTERNAL_SERVER_ERROR = "INTERNAL_SERVER_ERROR",
|
|
11
|
+
VALIDATION_ERROR = "VALIDATION_ERROR",
|
|
12
|
+
CONFLICT = "CONFLICT",
|
|
13
|
+
RATE_LIMIT_EXCEEDED = "RATE_LIMIT_EXCEEDED"
|
|
14
|
+
}
|
|
15
|
+
export interface ApiError {
|
|
16
|
+
type: API_ERROR_TYPE;
|
|
17
|
+
message: string;
|
|
18
|
+
details?: Record<string, unknown>;
|
|
19
|
+
statusCode: number;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* API Error helper class for backend usage
|
|
23
|
+
*/
|
|
24
|
+
export declare class ApiStandardError extends Error {
|
|
25
|
+
type: API_ERROR_TYPE;
|
|
26
|
+
statusCode: number;
|
|
27
|
+
details?: Record<string, unknown>;
|
|
28
|
+
constructor(type: API_ERROR_TYPE, message: string, details?: Record<string, unknown>);
|
|
29
|
+
private getStatusCode;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=api-error.model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-error.model.d.ts","sourceRoot":"","sources":["../../src/models/api-error.model.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,oBAAY,cAAc;IACtB,WAAW,gBAAgB;IAC3B,YAAY,iBAAiB;IAC7B,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,qBAAqB,0BAA0B;IAC/C,gBAAgB,qBAAqB;IACrC,QAAQ,aAAa;IACrB,mBAAmB,wBAAwB;CAC9C;AAED,MAAM,WAAW,QAAQ;IACrB,IAAI,EAAE,cAAc,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,KAAK;IAChC,IAAI,EAAE,cAAc,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAE7B,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAQpF,OAAO,CAAC,aAAa;CAqBxB"}
|