@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.
Files changed (146) hide show
  1. package/README.md +100 -0
  2. package/dist/auth/auth.service.d.ts +90 -0
  3. package/dist/auth/auth.service.d.ts.map +1 -0
  4. package/dist/auth/auth.service.js +166 -0
  5. package/dist/auth/auth.service.js.map +1 -0
  6. package/dist/auth/types.d.ts +19 -0
  7. package/dist/auth/types.d.ts.map +1 -0
  8. package/dist/auth/types.js +3 -0
  9. package/dist/auth/types.js.map +1 -0
  10. package/dist/core/configuration.d.ts +26 -0
  11. package/dist/core/configuration.d.ts.map +1 -0
  12. package/dist/core/configuration.js +3 -0
  13. package/dist/core/configuration.js.map +1 -0
  14. package/dist/core/error-handler.d.ts +24 -0
  15. package/dist/core/error-handler.d.ts.map +1 -0
  16. package/dist/core/error-handler.js +76 -0
  17. package/dist/core/error-handler.js.map +1 -0
  18. package/dist/core/http-client.d.ts +43 -0
  19. package/dist/core/http-client.d.ts.map +1 -0
  20. package/dist/core/http-client.js +97 -0
  21. package/dist/core/http-client.js.map +1 -0
  22. package/dist/core/state-manager.d.ts +16 -0
  23. package/dist/core/state-manager.d.ts.map +1 -0
  24. package/dist/core/state-manager.js +33 -0
  25. package/dist/core/state-manager.js.map +1 -0
  26. package/dist/files/file-upload.d.ts +60 -0
  27. package/dist/files/file-upload.d.ts.map +1 -0
  28. package/dist/files/file-upload.js +121 -0
  29. package/dist/files/file-upload.js.map +1 -0
  30. package/dist/index.d.ts +80 -0
  31. package/dist/index.d.ts.map +1 -0
  32. package/dist/index.js +140 -0
  33. package/dist/index.js.map +1 -0
  34. package/dist/models/api-error.model.d.ts +31 -0
  35. package/dist/models/api-error.model.d.ts.map +1 -0
  36. package/dist/models/api-error.model.js +53 -0
  37. package/dist/models/api-error.model.js.map +1 -0
  38. package/dist/models/api-response.model.d.ts +51 -0
  39. package/dist/models/api-response.model.d.ts.map +1 -0
  40. package/dist/models/api-response.model.js +77 -0
  41. package/dist/models/api-response.model.js.map +1 -0
  42. package/dist/models/chat.model.d.ts +59 -0
  43. package/dist/models/chat.model.d.ts.map +1 -0
  44. package/dist/models/chat.model.js +3 -0
  45. package/dist/models/chat.model.js.map +1 -0
  46. package/dist/models/ecosystem.model.d.ts +16 -0
  47. package/dist/models/ecosystem.model.d.ts.map +1 -0
  48. package/dist/models/ecosystem.model.js +7 -0
  49. package/dist/models/ecosystem.model.js.map +1 -0
  50. package/dist/models/file.model.d.ts +67 -0
  51. package/dist/models/file.model.d.ts.map +1 -0
  52. package/dist/models/file.model.js +3 -0
  53. package/dist/models/file.model.js.map +1 -0
  54. package/dist/models/notification.model.d.ts +172 -0
  55. package/dist/models/notification.model.d.ts.map +1 -0
  56. package/dist/models/notification.model.js +77 -0
  57. package/dist/models/notification.model.js.map +1 -0
  58. package/dist/models/person.model.d.ts +94 -0
  59. package/dist/models/person.model.d.ts.map +1 -0
  60. package/dist/models/person.model.js +14 -0
  61. package/dist/models/person.model.js.map +1 -0
  62. package/dist/models/project.model.d.ts +62 -0
  63. package/dist/models/project.model.d.ts.map +1 -0
  64. package/dist/models/project.model.js +93 -0
  65. package/dist/models/project.model.js.map +1 -0
  66. package/dist/models/task-update.model.d.ts +28 -0
  67. package/dist/models/task-update.model.d.ts.map +1 -0
  68. package/dist/models/task-update.model.js +8 -0
  69. package/dist/models/task-update.model.js.map +1 -0
  70. package/dist/models/task-url.model.d.ts +16 -0
  71. package/dist/models/task-url.model.d.ts.map +1 -0
  72. package/dist/models/task-url.model.js +3 -0
  73. package/dist/models/task-url.model.js.map +1 -0
  74. package/dist/models/task.model.d.ts +120 -0
  75. package/dist/models/task.model.d.ts.map +1 -0
  76. package/dist/models/task.model.js +78 -0
  77. package/dist/models/task.model.js.map +1 -0
  78. package/dist/models/timezone.model.d.ts +19 -0
  79. package/dist/models/timezone.model.d.ts.map +1 -0
  80. package/dist/models/timezone.model.js +12 -0
  81. package/dist/models/timezone.model.js.map +1 -0
  82. package/dist/models/user.model.d.ts +101 -0
  83. package/dist/models/user.model.d.ts.map +1 -0
  84. package/dist/models/user.model.js +22 -0
  85. package/dist/models/user.model.js.map +1 -0
  86. package/dist/profiles/profile.service.d.ts +52 -0
  87. package/dist/profiles/profile.service.d.ts.map +1 -0
  88. package/dist/profiles/profile.service.js +119 -0
  89. package/dist/profiles/profile.service.js.map +1 -0
  90. package/dist/profiles/types.d.ts +1 -0
  91. package/dist/profiles/types.d.ts.map +1 -0
  92. package/dist/profiles/types.js +3 -0
  93. package/dist/profiles/types.js.map +1 -0
  94. package/dist/tasks/task-sorting.d.ts +51 -0
  95. package/dist/tasks/task-sorting.d.ts.map +1 -0
  96. package/dist/tasks/task-sorting.js +137 -0
  97. package/dist/tasks/task-sorting.js.map +1 -0
  98. package/dist/tasks/task.service.d.ts +134 -0
  99. package/dist/tasks/task.service.d.ts.map +1 -0
  100. package/dist/tasks/task.service.js +256 -0
  101. package/dist/tasks/task.service.js.map +1 -0
  102. package/dist/tasks/types.d.ts +2 -0
  103. package/dist/tasks/types.d.ts.map +1 -0
  104. package/dist/tasks/types.js +3 -0
  105. package/dist/tasks/types.js.map +1 -0
  106. package/dist/types/actor.types.d.ts +101 -0
  107. package/dist/types/actor.types.d.ts.map +1 -0
  108. package/dist/types/actor.types.js +135 -0
  109. package/dist/types/actor.types.js.map +1 -0
  110. package/dist/types/api.types.d.ts +43 -0
  111. package/dist/types/api.types.d.ts.map +1 -0
  112. package/dist/types/api.types.js +6 -0
  113. package/dist/types/api.types.js.map +1 -0
  114. package/dist/types/common.types.d.ts +40 -0
  115. package/dist/types/common.types.d.ts.map +1 -0
  116. package/dist/types/common.types.js +6 -0
  117. package/dist/types/common.types.js.map +1 -0
  118. package/dist/types/state-machine.types.d.ts +102 -0
  119. package/dist/types/state-machine.types.d.ts.map +1 -0
  120. package/dist/types/state-machine.types.js +18 -0
  121. package/dist/types/state-machine.types.js.map +1 -0
  122. package/dist/users/user.service.d.ts +49 -0
  123. package/dist/users/user.service.d.ts.map +1 -0
  124. package/dist/users/user.service.js +119 -0
  125. package/dist/users/user.service.js.map +1 -0
  126. package/dist/utils/date.utils.d.ts +60 -0
  127. package/dist/utils/date.utils.d.ts.map +1 -0
  128. package/dist/utils/date.utils.js +125 -0
  129. package/dist/utils/date.utils.js.map +1 -0
  130. package/dist/utils/username-generator.d.ts +76 -0
  131. package/dist/utils/username-generator.d.ts.map +1 -0
  132. package/dist/utils/username-generator.js +177 -0
  133. package/dist/utils/username-generator.js.map +1 -0
  134. package/dist/utils/validation.utils.d.ts +57 -0
  135. package/dist/utils/validation.utils.d.ts.map +1 -0
  136. package/dist/utils/validation.utils.js +117 -0
  137. package/dist/utils/validation.utils.js.map +1 -0
  138. package/dist/validation/password-strength.d.ts +66 -0
  139. package/dist/validation/password-strength.d.ts.map +1 -0
  140. package/dist/validation/password-strength.js +192 -0
  141. package/dist/validation/password-strength.js.map +1 -0
  142. package/dist/validation/schemas.d.ts +69 -0
  143. package/dist/validation/schemas.d.ts.map +1 -0
  144. package/dist/validation/schemas.js +94 -0
  145. package/dist/validation/schemas.js.map +1 -0
  146. 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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"}
@@ -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"}