@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,256 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BiomeTasks = void 0;
4
+ const error_handler_1 = require("../core/error-handler");
5
+ /**
6
+ * Task management service - pure business logic without UI state
7
+ */
8
+ class BiomeTasks {
9
+ constructor(http) {
10
+ this.http = http;
11
+ }
12
+ /**
13
+ * Get task by ID
14
+ */
15
+ async getById(id) {
16
+ try {
17
+ const response = await this.http.get(`/tasks/task/${id}`);
18
+ return response.payload;
19
+ }
20
+ catch (error) {
21
+ throw (0, error_handler_1.createSdkError)(error, 'Failed to get task');
22
+ }
23
+ }
24
+ /**
25
+ * Create a new task
26
+ */
27
+ async create(task) {
28
+ try {
29
+ const response = await this.http.post('/tasks/task', task);
30
+ return response.payload;
31
+ }
32
+ catch (error) {
33
+ throw (0, error_handler_1.createSdkError)(error, 'Failed to create task');
34
+ }
35
+ }
36
+ /**
37
+ * Update an existing task
38
+ */
39
+ async update(id, updates) {
40
+ try {
41
+ const response = await this.http.put(`/tasks/task/${id}`, updates);
42
+ return response.payload;
43
+ }
44
+ catch (error) {
45
+ throw (0, error_handler_1.createSdkError)(error, 'Failed to update task');
46
+ }
47
+ }
48
+ /**
49
+ * Update specific task fields (partial update)
50
+ */
51
+ async updateFields(id, fields) {
52
+ try {
53
+ const response = await this.http.patch(`/tasks/task/${id}/fields`, fields);
54
+ return response.payload;
55
+ }
56
+ catch (error) {
57
+ throw (0, error_handler_1.createSdkError)(error, 'Failed to update task fields');
58
+ }
59
+ }
60
+ /**
61
+ * Delete a task
62
+ */
63
+ async delete(id) {
64
+ try {
65
+ await this.http.delete(`/tasks/task/${id}`);
66
+ }
67
+ catch (error) {
68
+ throw (0, error_handler_1.createSdkError)(error, 'Failed to delete task');
69
+ }
70
+ }
71
+ /**
72
+ * Get tasks assigned to current user
73
+ */
74
+ async getMyTasks(filters) {
75
+ try {
76
+ const params = this.buildQueryParams(filters);
77
+ const response = await this.http.get(`/tasks/my?${params}`);
78
+ return response.payload;
79
+ }
80
+ catch (error) {
81
+ throw (0, error_handler_1.createSdkError)(error, 'Failed to get my tasks');
82
+ }
83
+ }
84
+ /**
85
+ * Get tasks delegated by current user
86
+ */
87
+ async getDelegatedTasks(filters) {
88
+ try {
89
+ const params = this.buildQueryParams(filters);
90
+ const response = await this.http.get(`/tasks/delegated?${params}`);
91
+ return response.payload;
92
+ }
93
+ catch (error) {
94
+ throw (0, error_handler_1.createSdkError)(error, 'Failed to get delegated tasks');
95
+ }
96
+ }
97
+ /**
98
+ * Search tasks
99
+ */
100
+ async searchTasks(query, filters) {
101
+ try {
102
+ const params = this.buildQueryParams({ ...filters, search: query });
103
+ const response = await this.http.get(`/tasks/search?${params}`);
104
+ return response.payload;
105
+ }
106
+ catch (error) {
107
+ throw (0, error_handler_1.createSdkError)(error, 'Failed to search tasks');
108
+ }
109
+ }
110
+ /**
111
+ * Get tasks by status (for frontend compatibility)
112
+ */
113
+ async getTasksByStatus(statuses) {
114
+ try {
115
+ const params = this.buildQueryParams({ status: statuses });
116
+ const response = await this.http.get(`/tasks/by-status?${params}`);
117
+ return response.payload;
118
+ }
119
+ catch (error) {
120
+ throw (0, error_handler_1.createSdkError)(error, 'Failed to get tasks by status');
121
+ }
122
+ }
123
+ /**
124
+ * Get task prerequisites/children
125
+ */
126
+ async getRequisites(parentId) {
127
+ try {
128
+ const response = await this.http.get(`/tasks/task/children/${parentId}`);
129
+ const payload = response.payload;
130
+ const childIds = payload.children;
131
+ if (childIds.length === 0) {
132
+ return [];
133
+ }
134
+ // Fetch full details for all child tasks
135
+ const taskPromises = childIds.map(id => this.getById(id));
136
+ return Promise.all(taskPromises);
137
+ }
138
+ catch (error) {
139
+ throw (0, error_handler_1.createSdkError)(error, 'Failed to get task requisites');
140
+ }
141
+ }
142
+ /**
143
+ * Accept a task
144
+ */
145
+ async accept(id) {
146
+ try {
147
+ const response = await this.http.put(`/tasks/task/${id}/accept`, {});
148
+ return response.payload;
149
+ }
150
+ catch (error) {
151
+ throw (0, error_handler_1.createSdkError)(error, 'Failed to accept task');
152
+ }
153
+ }
154
+ /**
155
+ * Reject a task
156
+ */
157
+ async reject(id, request) {
158
+ try {
159
+ const response = await this.http.put(`/tasks/task/${id}/reject`, request);
160
+ return response.payload;
161
+ }
162
+ catch (error) {
163
+ throw (0, error_handler_1.createSdkError)(error, 'Failed to reject task');
164
+ }
165
+ }
166
+ /**
167
+ * Deliver a completed task
168
+ */
169
+ async deliver(id, request) {
170
+ try {
171
+ const response = await this.http.put(`/tasks/task/${id}/deliver`, request);
172
+ return response.payload;
173
+ }
174
+ catch (error) {
175
+ throw (0, error_handler_1.createSdkError)(error, 'Failed to deliver task');
176
+ }
177
+ }
178
+ /**
179
+ * Evaluate a delivered task
180
+ */
181
+ async evaluate(id, request) {
182
+ try {
183
+ const response = await this.http.put(`/tasks/task/${id}/evaluate`, request);
184
+ return response.payload;
185
+ }
186
+ catch (error) {
187
+ throw (0, error_handler_1.createSdkError)(error, 'Failed to evaluate task');
188
+ }
189
+ }
190
+ /**
191
+ * Archive a task
192
+ */
193
+ async archive(id) {
194
+ try {
195
+ const response = await this.http.put(`/tasks/task/${id}/archive`, {});
196
+ return response.payload;
197
+ }
198
+ catch (error) {
199
+ throw (0, error_handler_1.createSdkError)(error, 'Failed to archive task');
200
+ }
201
+ }
202
+ /**
203
+ * Cancel a task
204
+ */
205
+ async cancel(id, request) {
206
+ try {
207
+ const response = await this.http.put(`/tasks/task/${id}/cancel`, request);
208
+ return response.payload;
209
+ }
210
+ catch (error) {
211
+ throw (0, error_handler_1.createSdkError)(error, 'Failed to cancel task');
212
+ }
213
+ }
214
+ /**
215
+ * Quit a task (for assignee)
216
+ */
217
+ async quit(id) {
218
+ try {
219
+ const response = await this.http.put(`/tasks/task/${id}/quit`, {});
220
+ return response.payload;
221
+ }
222
+ catch (error) {
223
+ throw (0, error_handler_1.createSdkError)(error, 'Failed to quit task');
224
+ }
225
+ }
226
+ /**
227
+ * Build query parameters from filters
228
+ */
229
+ buildQueryParams(filters) {
230
+ if (!filters)
231
+ return '';
232
+ const params = new URLSearchParams();
233
+ if (filters.status) {
234
+ const statuses = Array.isArray(filters.status) ? filters.status : [filters.status];
235
+ statuses.forEach(status => params.append('status', status));
236
+ }
237
+ if (filters.assigneeId) {
238
+ params.append('assigneeId', filters.assigneeId.toString());
239
+ }
240
+ if (filters.requesterId) {
241
+ params.append('requesterId', filters.requesterId.toString());
242
+ }
243
+ if (filters.limit) {
244
+ params.append('limit', filters.limit.toString());
245
+ }
246
+ if (filters.offset) {
247
+ params.append('offset', filters.offset.toString());
248
+ }
249
+ if (filters.search) {
250
+ params.append('q', filters.search);
251
+ }
252
+ return params.toString();
253
+ }
254
+ }
255
+ exports.BiomeTasks = BiomeTasks;
256
+ //# sourceMappingURL=task.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.service.js","sourceRoot":"","sources":["../../src/tasks/task.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { TaskFilters, CreateTaskRequest, UpdateTaskRequest, TaskDeliveryRequest, TaskEvaluationRequest, TaskRejectionRequest, TaskCancellationRequest } from './task.service';
2
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tasks/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tasks/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Actor types for state machine validation
3
+ * These types define the actors that can perform state transitions
4
+ */
5
+ import { Actor } from './state-machine.types';
6
+ export type { Actor };
7
+ /**
8
+ * Project-specific actor types
9
+ */
10
+ export declare enum ProjectActorType {
11
+ CONCEPTUALIZER = "conceptualizer",
12
+ PROJECT_MANAGER = "project_manager"
13
+ }
14
+ /**
15
+ * Task-specific actor types
16
+ */
17
+ export declare enum TaskActorType {
18
+ ASSIGNEE = "assignee",
19
+ REQUESTER = "requester"
20
+ }
21
+ /**
22
+ * Actor permissions
23
+ */
24
+ export declare enum ActorPermission {
25
+ PROJECT_CREATE = "project:create",
26
+ PROJECT_UPDATE = "project:update",
27
+ PROJECT_DELETE = "project:delete",
28
+ PROJECT_STATE_TRANSITION = "project:state_transition",
29
+ TASK_CREATE = "task:create",
30
+ TASK_UPDATE = "task:update",
31
+ TASK_DELETE = "task:delete",
32
+ TASK_STATE_TRANSITION = "task:state_transition",
33
+ READ = "read",
34
+ WRITE = "write",
35
+ ADMIN = "admin"
36
+ }
37
+ /**
38
+ * Project actor with specific permissions
39
+ */
40
+ export type ProjectActor = Actor & {
41
+ type: ProjectActorType;
42
+ permissions: ActorPermission[];
43
+ projectId?: number;
44
+ };
45
+ /**
46
+ * Task actor with specific permissions
47
+ */
48
+ export type TaskActor = Actor & {
49
+ type: TaskActorType;
50
+ permissions: ActorPermission[];
51
+ taskId?: number;
52
+ };
53
+ /**
54
+ * Actor validation result
55
+ */
56
+ export type ActorValidationResult = {
57
+ isValid: boolean;
58
+ actor: Actor;
59
+ permissions: string[];
60
+ missingPermissions: ActorPermission[];
61
+ error?: string;
62
+ };
63
+ /**
64
+ * Actor factory for creating actors with specific permissions
65
+ */
66
+ export declare const ActorFactory: {
67
+ /**
68
+ * Create a conceptualizer actor
69
+ */
70
+ createConceptualizer: (userId: number, projectId?: number) => ProjectActor;
71
+ /**
72
+ * Create a project manager actor
73
+ */
74
+ createProjectManager: (userId: number, projectId?: number) => ProjectActor;
75
+ /**
76
+ * Create an assignee actor
77
+ */
78
+ createAssignee: (userId: number, taskId?: number) => TaskActor;
79
+ /**
80
+ * Create a requester actor
81
+ */
82
+ createRequester: (userId: number, taskId?: number) => TaskActor;
83
+ };
84
+ /**
85
+ * Actor validation utilities
86
+ */
87
+ export declare const ActorValidator: {
88
+ /**
89
+ * Check if an actor has a specific permission
90
+ */
91
+ hasPermission: (actor: Actor, permission: ActorPermission) => boolean;
92
+ /**
93
+ * Check if an actor has all required permissions
94
+ */
95
+ hasAllPermissions: (actor: Actor, permissions: ActorPermission[]) => boolean;
96
+ /**
97
+ * Validate an actor for a specific action
98
+ */
99
+ validateActor: (actor: Actor, requiredPermissions: ActorPermission[]) => ActorValidationResult;
100
+ };
101
+ //# sourceMappingURL=actor.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actor.types.d.ts","sourceRoot":"","sources":["../../src/types/actor.types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE9C,YAAY,EAAE,KAAK,EAAE,CAAC;AAEtB;;GAEG;AACH,oBAAY,gBAAgB;IACxB,cAAc,mBAAmB;IACjC,eAAe,oBAAoB;CACtC;AAED;;GAEG;AACH,oBAAY,aAAa;IACrB,QAAQ,aAAa;IACrB,SAAS,cAAc;CAC1B;AAED;;GAEG;AACH,oBAAY,eAAe;IAEvB,cAAc,mBAAmB;IACjC,cAAc,mBAAmB;IACjC,cAAc,mBAAmB;IACjC,wBAAwB,6BAA6B;IAGrD,WAAW,gBAAgB;IAC3B,WAAW,gBAAgB;IAC3B,WAAW,gBAAgB;IAC3B,qBAAqB,0BAA0B;IAG/C,IAAI,SAAS;IACb,KAAK,UAAU;IACf,KAAK,UAAU;CAClB;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG;IAC/B,IAAI,EAAE,gBAAgB,CAAC;IACvB,WAAW,EAAE,eAAe,EAAE,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG;IAC5B,IAAI,EAAE,aAAa,CAAC;IACpB,WAAW,EAAE,eAAe,EAAE,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC;IACb,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,kBAAkB,EAAE,eAAe,EAAE,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY;IACrB;;OAEG;mCAC4B,MAAM,cAAc,MAAM,KAAG,YAAY;IAaxE;;OAEG;mCAC4B,MAAM,cAAc,MAAM,KAAG,YAAY;IAexE;;OAEG;6BACsB,MAAM,WAAW,MAAM,KAAG,SAAS;IAO5D;;OAEG;8BACuB,MAAM,WAAW,MAAM,KAAG,SAAS;CAYhE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc;IACvB;;OAEG;2BACoB,KAAK,cAAc,eAAe,KAAG,OAAO;IAInE;;OAEG;+BACwB,KAAK,eAAe,eAAe,EAAE,KAAG,OAAO;IAI1E;;OAEG;2BACoB,KAAK,uBAAuB,eAAe,EAAE,KAAG,qBAAqB;CAW/F,CAAC"}
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+ /**
3
+ * Actor types for state machine validation
4
+ * These types define the actors that can perform state transitions
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.ActorValidator = exports.ActorFactory = exports.ActorPermission = exports.TaskActorType = exports.ProjectActorType = void 0;
8
+ /**
9
+ * Project-specific actor types
10
+ */
11
+ var ProjectActorType;
12
+ (function (ProjectActorType) {
13
+ ProjectActorType["CONCEPTUALIZER"] = "conceptualizer";
14
+ ProjectActorType["PROJECT_MANAGER"] = "project_manager";
15
+ })(ProjectActorType || (exports.ProjectActorType = ProjectActorType = {}));
16
+ /**
17
+ * Task-specific actor types
18
+ */
19
+ var TaskActorType;
20
+ (function (TaskActorType) {
21
+ TaskActorType["ASSIGNEE"] = "assignee";
22
+ TaskActorType["REQUESTER"] = "requester";
23
+ })(TaskActorType || (exports.TaskActorType = TaskActorType = {}));
24
+ /**
25
+ * Actor permissions
26
+ */
27
+ var ActorPermission;
28
+ (function (ActorPermission) {
29
+ // Project permissions
30
+ ActorPermission["PROJECT_CREATE"] = "project:create";
31
+ ActorPermission["PROJECT_UPDATE"] = "project:update";
32
+ ActorPermission["PROJECT_DELETE"] = "project:delete";
33
+ ActorPermission["PROJECT_STATE_TRANSITION"] = "project:state_transition";
34
+ // Task permissions
35
+ ActorPermission["TASK_CREATE"] = "task:create";
36
+ ActorPermission["TASK_UPDATE"] = "task:update";
37
+ ActorPermission["TASK_DELETE"] = "task:delete";
38
+ ActorPermission["TASK_STATE_TRANSITION"] = "task:state_transition";
39
+ // General permissions
40
+ ActorPermission["READ"] = "read";
41
+ ActorPermission["WRITE"] = "write";
42
+ ActorPermission["ADMIN"] = "admin";
43
+ })(ActorPermission || (exports.ActorPermission = ActorPermission = {}));
44
+ /**
45
+ * Actor factory for creating actors with specific permissions
46
+ */
47
+ exports.ActorFactory = {
48
+ /**
49
+ * Create a conceptualizer actor
50
+ */
51
+ createConceptualizer: (userId, projectId) => ({
52
+ id: userId,
53
+ type: ProjectActorType.CONCEPTUALIZER,
54
+ permissions: [
55
+ ActorPermission.PROJECT_CREATE,
56
+ ActorPermission.PROJECT_UPDATE,
57
+ ActorPermission.PROJECT_STATE_TRANSITION,
58
+ ActorPermission.READ,
59
+ ActorPermission.WRITE,
60
+ ],
61
+ projectId,
62
+ }),
63
+ /**
64
+ * Create a project manager actor
65
+ */
66
+ createProjectManager: (userId, projectId) => ({
67
+ id: userId,
68
+ type: ProjectActorType.PROJECT_MANAGER,
69
+ permissions: [
70
+ ActorPermission.PROJECT_UPDATE,
71
+ ActorPermission.PROJECT_STATE_TRANSITION,
72
+ ActorPermission.TASK_CREATE,
73
+ ActorPermission.TASK_UPDATE,
74
+ ActorPermission.TASK_STATE_TRANSITION,
75
+ ActorPermission.READ,
76
+ ActorPermission.WRITE,
77
+ ],
78
+ projectId,
79
+ }),
80
+ /**
81
+ * Create an assignee actor
82
+ */
83
+ createAssignee: (userId, taskId) => ({
84
+ id: userId,
85
+ type: TaskActorType.ASSIGNEE,
86
+ permissions: [ActorPermission.TASK_UPDATE, ActorPermission.TASK_STATE_TRANSITION, ActorPermission.READ],
87
+ taskId,
88
+ }),
89
+ /**
90
+ * Create a requester actor
91
+ */
92
+ createRequester: (userId, taskId) => ({
93
+ id: userId,
94
+ type: TaskActorType.REQUESTER,
95
+ permissions: [
96
+ ActorPermission.TASK_CREATE,
97
+ ActorPermission.TASK_UPDATE,
98
+ ActorPermission.TASK_STATE_TRANSITION,
99
+ ActorPermission.READ,
100
+ ActorPermission.WRITE,
101
+ ],
102
+ taskId,
103
+ }),
104
+ };
105
+ /**
106
+ * Actor validation utilities
107
+ */
108
+ exports.ActorValidator = {
109
+ /**
110
+ * Check if an actor has a specific permission
111
+ */
112
+ hasPermission: (actor, permission) => {
113
+ return actor.permissions.includes(permission);
114
+ },
115
+ /**
116
+ * Check if an actor has all required permissions
117
+ */
118
+ hasAllPermissions: (actor, permissions) => {
119
+ return permissions.every((permission) => actor.permissions.includes(permission));
120
+ },
121
+ /**
122
+ * Validate an actor for a specific action
123
+ */
124
+ validateActor: (actor, requiredPermissions) => {
125
+ const missingPermissions = requiredPermissions.filter((permission) => !actor.permissions.includes(permission));
126
+ return {
127
+ isValid: missingPermissions.length === 0,
128
+ actor,
129
+ permissions: actor.permissions,
130
+ missingPermissions,
131
+ error: missingPermissions.length > 0 ? `Missing permissions: ${missingPermissions.join(', ')}` : undefined,
132
+ };
133
+ },
134
+ };
135
+ //# sourceMappingURL=actor.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"actor.types.js","sourceRoot":"","sources":["../../src/types/actor.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * API-specific types for Biome platform
3
+ */
4
+ import { ApiResponseType } from '../models/api-response.model';
5
+ export type HttpMethod = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
6
+ export type HttpStatus = 200 | 201 | 204 | 400 | 401 | 403 | 404 | 409 | 422 | 429 | 500;
7
+ export type ApiEndpoint = {
8
+ method: HttpMethod;
9
+ path: string;
10
+ description: string;
11
+ requiresAuth: boolean;
12
+ requiredRoles?: string[];
13
+ };
14
+ export type ApiRequest<T = any> = {
15
+ body?: T;
16
+ params?: Record<string, string>;
17
+ query?: Record<string, string>;
18
+ headers?: Record<string, string>;
19
+ };
20
+ export type ApiResponse<T = any> = {
21
+ statusCode: HttpStatus;
22
+ type: ApiResponseType;
23
+ data?: T;
24
+ message: string;
25
+ isSuccess: boolean;
26
+ errors?: string[];
27
+ };
28
+ export type ValidationError = {
29
+ field: string;
30
+ message: string;
31
+ value?: any;
32
+ };
33
+ export type ApiValidationResponse = {
34
+ isValid: boolean;
35
+ errors: ValidationError[];
36
+ };
37
+ export type RateLimitInfo = {
38
+ limit: number;
39
+ remaining: number;
40
+ reset: Date;
41
+ retryAfter?: number;
42
+ };
43
+ //# sourceMappingURL=api.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.types.d.ts","sourceRoot":"","sources":["../../src/types/api.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;AAErE,MAAM,MAAM,UAAU,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAEzF,MAAM,MAAM,WAAW,GAAG;IACtB,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,UAAU,CAAC,CAAC,GAAG,GAAG,IAAI;IAC9B,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,WAAW,CAAC,CAAC,GAAG,GAAG,IAAI;IAC/B,UAAU,EAAE,UAAU,CAAC;IACvB,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,GAAG,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,eAAe,EAAE,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,IAAI,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * API-specific types for Biome platform
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=api.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.types.js","sourceRoot":"","sources":["../../src/types/api.types.ts"],"names":[],"mappings":";AAAA;;GAEG"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Common types used across the Biome platform
3
+ */
4
+ export type PaginationParams = {
5
+ page?: number;
6
+ limit?: number;
7
+ offset?: number;
8
+ };
9
+ export type PaginatedResponse<T> = {
10
+ data: T[];
11
+ pagination: {
12
+ page: number;
13
+ limit: number;
14
+ total: number;
15
+ totalPages: number;
16
+ };
17
+ };
18
+ export type SortParams = {
19
+ field: string;
20
+ direction: 'asc' | 'desc';
21
+ };
22
+ export type FilterParams = {
23
+ [key: string]: any;
24
+ };
25
+ export type QueryParams = PaginationParams & {
26
+ sort?: SortParams;
27
+ filter?: FilterParams;
28
+ search?: string;
29
+ };
30
+ export type Id = number | string;
31
+ export type Timestamp = Date | string;
32
+ export type Optional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
33
+ export type RequiredFields<T, K extends keyof T> = T & Required<Pick<T, K>>;
34
+ export type DeepPartial<T> = {
35
+ [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
36
+ };
37
+ export type Nullable<T> = T | null;
38
+ export type Undefinable<T> = T | undefined;
39
+ export type NullableUndefinable<T> = T | null | undefined;
40
+ //# sourceMappingURL=common.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.types.d.ts","sourceRoot":"","sources":["../../src/types/common.types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,gBAAgB,GAAG;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAAI;IAC/B,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,UAAU,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;KACtB,CAAC;CACL,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,gBAAgB,GAAG;IACzC,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,EAAE,GAAG,MAAM,GAAG,MAAM,CAAC;AAEjC,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,MAAM,CAAC;AAEtC,MAAM,MAAM,QAAQ,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAE9E,MAAM,MAAM,cAAc,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAE5E,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;KACxB,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAClE,CAAC;AAEF,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAEnC,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;AAE3C,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ /**
3
+ * Common types used across the Biome platform
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ //# sourceMappingURL=common.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.types.js","sourceRoot":"","sources":["../../src/types/common.types.ts"],"names":[],"mappings":";AAAA;;GAEG"}