@nekutima/biome-sdk 0.8.0 → 0.9.1
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 +154 -6
- package/dist/core/resilience.d.ts +80 -0
- package/dist/core/resilience.d.ts.map +1 -0
- package/dist/core/resilience.js +151 -0
- package/dist/core/resilience.js.map +1 -0
- package/dist/sdk-info.d.ts +11 -4
- package/dist/sdk-info.d.ts.map +1 -1
- package/dist/sdk-info.js +11 -4
- package/dist/sdk-info.js.map +1 -1
- package/dist/tasks/task.service.d.ts +5 -3
- package/dist/tasks/task.service.d.ts.map +1 -1
- package/dist/tasks/task.service.js +70 -6
- package/dist/tasks/task.service.js.map +1 -1
- package/dist/users/user.service.d.ts +28 -0
- package/dist/users/user.service.d.ts.map +1 -1
- package/dist/users/user.service.js +72 -1
- package/dist/users/user.service.js.map +1 -1
- package/package.json +6 -3
package/README.md
CHANGED
|
@@ -11,6 +11,7 @@ The Biome SDK is the **official contract** between frontend and backend teams, p
|
|
|
11
11
|
- 🔄 **Authentication** - Login, logout, session management
|
|
12
12
|
- 📋 **Task Management** - CRUD operations, state transitions, search
|
|
13
13
|
- 👤 **Profile Management** - User profiles, updates, validation
|
|
14
|
+
- 🔍 **User Lookup** - Search users by username/email with rate limiting and circuit breaker
|
|
14
15
|
- 💬 **Chat System** - Context-agnostic messaging, file attachments, multi-user chats, SSE event delivery
|
|
15
16
|
- 📁 **File Upload** - Image validation, upload, management
|
|
16
17
|
- 🛡️ **CSRF Protection** - Auto-injection, token management
|
|
@@ -65,6 +66,91 @@ const profile = await biome.profiles.getMyProfile();
|
|
|
65
66
|
await biome.profiles.updateProfile({ bio: 'Updated bio' });
|
|
66
67
|
```
|
|
67
68
|
|
|
69
|
+
## Task Retrieval (v0.9.0+)
|
|
70
|
+
|
|
71
|
+
The SDK provides two resilient methods for retrieving tasks with automatic sorting, rate limiting, and circuit breaker protection.
|
|
72
|
+
|
|
73
|
+
### getMyTasks() - Assigned Tasks
|
|
74
|
+
|
|
75
|
+
Retrieves tasks assigned to the current user with intelligent sorting.
|
|
76
|
+
|
|
77
|
+
```typescript
|
|
78
|
+
// Basic usage - returns Task[] sorted by importance/urgency
|
|
79
|
+
const myTasks = await biome.tasks.getMyTasks();
|
|
80
|
+
// Returns: Task[] automatically sorted by:
|
|
81
|
+
// 1. Important + Urgent first
|
|
82
|
+
// 2. Important + Not Urgent
|
|
83
|
+
// 3. Not Important + Urgent
|
|
84
|
+
// 4. Not Important + Not Urgent
|
|
85
|
+
// Then by nextTouchDate (ascending), createdAt (descending)
|
|
86
|
+
|
|
87
|
+
// With filters
|
|
88
|
+
const pendingTasks = await biome.tasks.getMyTasks({
|
|
89
|
+
status: 'in-progress',
|
|
90
|
+
search: 'bug fix',
|
|
91
|
+
limit: 20,
|
|
92
|
+
offset: 0,
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
// Check sorting fields
|
|
96
|
+
myTasks.forEach(task => {
|
|
97
|
+
console.log(task.isImportant, task.isUrgent, task.nextTouchDate);
|
|
98
|
+
});
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### getDelegatedTasks() - Delegated Tasks
|
|
102
|
+
|
|
103
|
+
Retrieves tasks delegated by the current user (where user is requester, not assignee).
|
|
104
|
+
|
|
105
|
+
```typescript
|
|
106
|
+
// Basic usage
|
|
107
|
+
const delegatedTasks = await biome.tasks.getDelegatedTasks();
|
|
108
|
+
// Returns: Task[] where current user is the requester
|
|
109
|
+
|
|
110
|
+
// With filters
|
|
111
|
+
const pendingDelegated = await biome.tasks.getDelegatedTasks({
|
|
112
|
+
status: 'pending',
|
|
113
|
+
search: 'review',
|
|
114
|
+
});
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
### Resilience Features
|
|
118
|
+
|
|
119
|
+
Both methods include automatic protection:
|
|
120
|
+
|
|
121
|
+
| Feature | Configuration | Behavior |
|
|
122
|
+
|---------|--------------|-----------|
|
|
123
|
+
| Rate Limiter | 100 req/min per method | Returns 429 with retryAfter |
|
|
124
|
+
| Circuit Breaker | 5 failures, 60s timeout | Returns 503 when open |
|
|
125
|
+
| Auto-Sorting | TaskSorting.sortTasks() | Results sorted before returning |
|
|
126
|
+
|
|
127
|
+
### Error Handling
|
|
128
|
+
|
|
129
|
+
```typescript
|
|
130
|
+
import { RateLimitExceededError, CircuitBreakerOpenError } from '@nekutima/biome-sdk';
|
|
131
|
+
|
|
132
|
+
try {
|
|
133
|
+
const tasks = await biome.tasks.getMyTasks();
|
|
134
|
+
} catch (error) {
|
|
135
|
+
if (error instanceof RateLimitExceededError) {
|
|
136
|
+
console.log(`Rate limited. Retry after ${error.retryAfter}s`);
|
|
137
|
+
// error.status = 429
|
|
138
|
+
// error.retryAfter = seconds to wait
|
|
139
|
+
} else if (error instanceof CircuitBreakerOpenError) {
|
|
140
|
+
console.log('Service temporarily unavailable');
|
|
141
|
+
// error.status = 503
|
|
142
|
+
} else {
|
|
143
|
+
console.log('Other error:', error.message);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### Performance
|
|
149
|
+
|
|
150
|
+
The SDK processes task lists locally with overhead under 50ms for 1000 tasks (SC-004).
|
|
151
|
+
|
|
152
|
+
See [docs/tasks-resilience-flow.md](./docs/tasks-resilience-flow.md) for sequence diagrams and detailed flow.
|
|
153
|
+
|
|
68
154
|
## Architecture
|
|
69
155
|
|
|
70
156
|
```
|
|
@@ -219,14 +305,63 @@ export class SessionExpiredService implements OnDestroy {
|
|
|
219
305
|
|
|
220
306
|
## Migration Guide
|
|
221
307
|
|
|
222
|
-
### User Lookup (v0.
|
|
308
|
+
### User Lookup (v0.9.0+)
|
|
309
|
+
|
|
310
|
+
The Biome SDK now provides two canonical methods for user lookup that replace legacy methods:
|
|
223
311
|
|
|
224
|
-
|
|
312
|
+
#### 1. `findUsers()` - Multiple User Search (NEW)
|
|
225
313
|
|
|
226
|
-
|
|
314
|
+
Replaces `getUsers()` and `searchUsers()` with a unified method featuring better defaults, rate limiting, and resilience patterns.
|
|
227
315
|
|
|
228
316
|
```typescript
|
|
229
|
-
// ✅
|
|
317
|
+
// ✅ NEW: Search multiple users by keyword (partial match on username OR email)
|
|
318
|
+
const users = await sdk.users.findUsers('john');
|
|
319
|
+
// Returns: [{username: 'johndoe', ...}, {username: 'johnson', ...}]
|
|
320
|
+
|
|
321
|
+
// ✅ With custom limit (default: 20, max: 100)
|
|
322
|
+
const users = await sdk.users.findUsers('@example.com', 50);
|
|
323
|
+
|
|
324
|
+
// ✅ Always returns array (never null)
|
|
325
|
+
const users = await sdk.users.findUsers('xyznonexistent');
|
|
326
|
+
if (users.length === 0) {
|
|
327
|
+
console.log('No users found');
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
// ❌ Deprecated - use findUsers instead
|
|
331
|
+
const users = await sdk.users.getUsers('john', 10); // @deprecated
|
|
332
|
+
const users = await sdk.users.searchUsers('john', 10); // @deprecated
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
**Key Improvements:**
|
|
336
|
+
- **Better defaults**: Default limit of 20 (previously unspecified)
|
|
337
|
+
- **Enforced limits**: Maximum 100 results (client-side validation)
|
|
338
|
+
- **Rate limiting**: 100 requests per minute (429 error when exceeded)
|
|
339
|
+
- **Circuit breaker**: Fails fast when backend is unhealthy (503 error)
|
|
340
|
+
- **Resilience**: Graceful degradation with automatic retries
|
|
341
|
+
- **Whitespace handling**: Empty array returned immediately for whitespace-only input
|
|
342
|
+
- **Avatar URLs**: Automatically populated for all results
|
|
343
|
+
|
|
344
|
+
**Error Handling:**
|
|
345
|
+
```typescript
|
|
346
|
+
import { RateLimitExceededError, CircuitBreakerOpenError } from '@nekutima/biome-sdk';
|
|
347
|
+
|
|
348
|
+
try {
|
|
349
|
+
const users = await sdk.users.findUsers('john');
|
|
350
|
+
} catch (error) {
|
|
351
|
+
if (error.code === 'RATE_LIMIT_EXCEEDED') {
|
|
352
|
+
console.log(`Too many requests. Retry after ${error.retryAfter}s`);
|
|
353
|
+
} else if (error.code === 'CIRCUIT_BREAKER_OPEN') {
|
|
354
|
+
console.log('Service temporarily unavailable. Please try again later.');
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
#### 2. `findUser()` - Single User Lookup
|
|
360
|
+
|
|
361
|
+
The existing `findUser(identifier)` method (introduced v0.8.0) replaces `getUserByUsername()` as the canonical way to locate a single user. It accepts either username or email:
|
|
362
|
+
|
|
363
|
+
```typescript
|
|
364
|
+
// ✅ Canonical approach - works with username OR email
|
|
230
365
|
const user = await sdk.users.findUser('johndoe');
|
|
231
366
|
const user = await sdk.users.findUser('john@example.com');
|
|
232
367
|
|
|
@@ -241,9 +376,22 @@ const users = await sdk.users.getUsers('johndoe'); // Use findUser instead
|
|
|
241
376
|
- Single method for both username and email lookup
|
|
242
377
|
- Case-insensitive email matching (RFC 5321 compliant)
|
|
243
378
|
- Automatic avatar URL population
|
|
379
|
+
- Returns `null` when user not found
|
|
244
380
|
- Backward compatible - old methods still work
|
|
245
381
|
|
|
246
|
-
|
|
382
|
+
### Migration Summary
|
|
383
|
+
|
|
384
|
+
| Old Method | New Method | Reason |
|
|
385
|
+
|------------|------------|---------|
|
|
386
|
+
| `getUsers(query?, limit?)` | `findUsers(keyword?, limit?)` | Better defaults, rate limiting, resilience |
|
|
387
|
+
| `searchUsers(query, limit?)` | `findUsers(keyword?, limit?)` | Unified API, same functionality |
|
|
388
|
+
| `getUserByUsername(username)` | `findUser(identifier)` | Supports both username and email |
|
|
389
|
+
|
|
390
|
+
See [docs/user-lookup-flow.md](./docs/user-lookup-flow.md) for complete documentation including:
|
|
391
|
+
- Flow diagrams with Mermaid charts
|
|
392
|
+
- Complete API reference
|
|
393
|
+
- Error handling patterns
|
|
394
|
+
- Usage examples
|
|
247
395
|
|
|
248
396
|
## Documentation
|
|
249
397
|
|
|
@@ -256,7 +404,7 @@ See [docs/user-lookup-flow.md](./docs/user-lookup-flow.md) for complete document
|
|
|
256
404
|
|
|
257
405
|
## Version
|
|
258
406
|
|
|
259
|
-
Current: **0.
|
|
407
|
+
Current: **0.9.0**
|
|
260
408
|
- Published to npm: `@nekutima/biome-sdk`
|
|
261
409
|
- See [CHANGELOG.md](./CHANGELOG.md) for version history
|
|
262
410
|
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rate limiter for SDK operations
|
|
3
|
+
* Implements sliding window rate limiting per operation per user
|
|
4
|
+
*/
|
|
5
|
+
export declare class RateLimiter {
|
|
6
|
+
private requests;
|
|
7
|
+
private readonly windowMs;
|
|
8
|
+
private readonly maxRequests;
|
|
9
|
+
constructor(maxRequests: number, windowSeconds: number);
|
|
10
|
+
/**
|
|
11
|
+
* Check if operation is allowed and record request
|
|
12
|
+
* @param key - Unique key for the operation (e.g., 'findUsers:user123')
|
|
13
|
+
* @returns RateLimitCheck result with allowed status and wait time if throttled
|
|
14
|
+
*/
|
|
15
|
+
checkLimit(key: string): RateLimitCheck;
|
|
16
|
+
/**
|
|
17
|
+
* Clear all rate limit data (useful for testing)
|
|
18
|
+
*/
|
|
19
|
+
clear(): void;
|
|
20
|
+
}
|
|
21
|
+
export interface RateLimitCheck {
|
|
22
|
+
allowed: boolean;
|
|
23
|
+
remaining: number;
|
|
24
|
+
resetTime: Date;
|
|
25
|
+
retryAfter?: number;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Circuit breaker for resilient API calls
|
|
29
|
+
* States: CLOSED (normal), OPEN (failing), HALF_OPEN (testing recovery)
|
|
30
|
+
*/
|
|
31
|
+
export declare class CircuitBreaker {
|
|
32
|
+
private readonly failureThreshold;
|
|
33
|
+
private readonly resetTimeoutMs;
|
|
34
|
+
private readonly halfOpenMaxCalls;
|
|
35
|
+
private state;
|
|
36
|
+
private failureCount;
|
|
37
|
+
private lastFailureTime?;
|
|
38
|
+
private nextAttempt;
|
|
39
|
+
constructor(failureThreshold?: number, resetTimeoutMs?: number, halfOpenMaxCalls?: number);
|
|
40
|
+
/**
|
|
41
|
+
* Execute operation with circuit breaker protection
|
|
42
|
+
* @param operation - The async operation to execute
|
|
43
|
+
* @returns Result of the operation
|
|
44
|
+
* @throws CircuitBreakerOpenError if circuit is open
|
|
45
|
+
* @throws Original error if operation fails
|
|
46
|
+
*/
|
|
47
|
+
execute<T>(operation: () => Promise<T>): Promise<T>;
|
|
48
|
+
private onSuccess;
|
|
49
|
+
private onFailure;
|
|
50
|
+
/**
|
|
51
|
+
* Get current circuit breaker state
|
|
52
|
+
*/
|
|
53
|
+
getState(): CircuitBreakerState;
|
|
54
|
+
/**
|
|
55
|
+
* Reset circuit breaker (useful for testing)
|
|
56
|
+
*/
|
|
57
|
+
reset(): void;
|
|
58
|
+
}
|
|
59
|
+
export type CircuitBreakerState = 'CLOSED' | 'OPEN' | 'HALF_OPEN';
|
|
60
|
+
/**
|
|
61
|
+
* Error thrown when circuit breaker is open
|
|
62
|
+
*/
|
|
63
|
+
export declare class CircuitBreakerOpenError extends Error {
|
|
64
|
+
readonly retryAfter: number;
|
|
65
|
+
readonly status = 503;
|
|
66
|
+
readonly code = "CIRCUIT_BREAKER_OPEN";
|
|
67
|
+
constructor(message: string, retryAfter: number);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Error thrown when rate limit is exceeded
|
|
71
|
+
*/
|
|
72
|
+
export declare class RateLimitExceededError extends Error {
|
|
73
|
+
readonly retryAfter: number;
|
|
74
|
+
readonly limit: number;
|
|
75
|
+
readonly windowSeconds: number;
|
|
76
|
+
readonly status = 429;
|
|
77
|
+
readonly code = "RATE_LIMIT_EXCEEDED";
|
|
78
|
+
constructor(message: string, retryAfter: number, limit: number, windowSeconds: number);
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=resilience.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resilience.d.ts","sourceRoot":"","sources":["../../src/core/resilience.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;gBAEzB,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IAKtD;;;;OAIG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc;IAiCvC;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,qBAAa,cAAc;IAOvB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IARnC,OAAO,CAAC,KAAK,CAAiC;IAC9C,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,eAAe,CAAC,CAAS;IACjC,OAAO,CAAC,WAAW,CAAK;gBAGL,gBAAgB,SAAI,EACpB,cAAc,SAAQ,EACtB,gBAAgB,SAAI;IAGvC;;;;;;OAMG;IACG,OAAO,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAsBzD,OAAO,CAAC,SAAS;IAOjB,OAAO,CAAC,SAAS;IAUjB;;OAEG;IACH,QAAQ,IAAI,mBAAmB;IAI/B;;OAEG;IACH,KAAK,IAAI,IAAI;CAMd;AAED,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;AAElE;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;IAM9C,QAAQ,CAAC,UAAU,EAAE,MAAM;IAL7B,QAAQ,CAAC,MAAM,OAAO;IACtB,QAAQ,CAAC,IAAI,0BAA0B;gBAGrC,OAAO,EAAE,MAAM,EACN,UAAU,EAAE,MAAM;CAK9B;AAED;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;IAM7C,QAAQ,CAAC,UAAU,EAAE,MAAM;IAC3B,QAAQ,CAAC,KAAK,EAAE,MAAM;IACtB,QAAQ,CAAC,aAAa,EAAE,MAAM;IAPhC,QAAQ,CAAC,MAAM,OAAO;IACtB,QAAQ,CAAC,IAAI,yBAAyB;gBAGpC,OAAO,EAAE,MAAM,EACN,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,aAAa,EAAE,MAAM;CAKjC"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RateLimitExceededError = exports.CircuitBreakerOpenError = exports.CircuitBreaker = exports.RateLimiter = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Rate limiter for SDK operations
|
|
6
|
+
* Implements sliding window rate limiting per operation per user
|
|
7
|
+
*/
|
|
8
|
+
class RateLimiter {
|
|
9
|
+
constructor(maxRequests, windowSeconds) {
|
|
10
|
+
this.requests = new Map();
|
|
11
|
+
this.maxRequests = maxRequests;
|
|
12
|
+
this.windowMs = windowSeconds * 1000;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Check if operation is allowed and record request
|
|
16
|
+
* @param key - Unique key for the operation (e.g., 'findUsers:user123')
|
|
17
|
+
* @returns RateLimitCheck result with allowed status and wait time if throttled
|
|
18
|
+
*/
|
|
19
|
+
checkLimit(key) {
|
|
20
|
+
const now = Date.now();
|
|
21
|
+
const windowStart = now - this.windowMs;
|
|
22
|
+
// Get existing requests for this key
|
|
23
|
+
let timestamps = this.requests.get(key) || [];
|
|
24
|
+
// Clean up old requests outside the window
|
|
25
|
+
timestamps = timestamps.filter((ts) => ts > windowStart);
|
|
26
|
+
// Check if under limit
|
|
27
|
+
if (timestamps.length < this.maxRequests) {
|
|
28
|
+
timestamps.push(now);
|
|
29
|
+
this.requests.set(key, timestamps);
|
|
30
|
+
return {
|
|
31
|
+
allowed: true,
|
|
32
|
+
remaining: this.maxRequests - timestamps.length,
|
|
33
|
+
resetTime: new Date(now + this.windowMs),
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
// Rate limit exceeded
|
|
37
|
+
const oldestRequest = timestamps[0];
|
|
38
|
+
const retryAfter = Math.ceil((oldestRequest + this.windowMs - now) / 1000);
|
|
39
|
+
return {
|
|
40
|
+
allowed: false,
|
|
41
|
+
remaining: 0,
|
|
42
|
+
resetTime: new Date(oldestRequest + this.windowMs),
|
|
43
|
+
retryAfter,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Clear all rate limit data (useful for testing)
|
|
48
|
+
*/
|
|
49
|
+
clear() {
|
|
50
|
+
this.requests.clear();
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.RateLimiter = RateLimiter;
|
|
54
|
+
/**
|
|
55
|
+
* Circuit breaker for resilient API calls
|
|
56
|
+
* States: CLOSED (normal), OPEN (failing), HALF_OPEN (testing recovery)
|
|
57
|
+
*/
|
|
58
|
+
class CircuitBreaker {
|
|
59
|
+
constructor(failureThreshold = 5, resetTimeoutMs = 60000, halfOpenMaxCalls = 3) {
|
|
60
|
+
this.failureThreshold = failureThreshold;
|
|
61
|
+
this.resetTimeoutMs = resetTimeoutMs;
|
|
62
|
+
this.halfOpenMaxCalls = halfOpenMaxCalls;
|
|
63
|
+
this.state = 'CLOSED';
|
|
64
|
+
this.failureCount = 0;
|
|
65
|
+
this.nextAttempt = 0;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Execute operation with circuit breaker protection
|
|
69
|
+
* @param operation - The async operation to execute
|
|
70
|
+
* @returns Result of the operation
|
|
71
|
+
* @throws CircuitBreakerOpenError if circuit is open
|
|
72
|
+
* @throws Original error if operation fails
|
|
73
|
+
*/
|
|
74
|
+
async execute(operation) {
|
|
75
|
+
if (this.state === 'OPEN') {
|
|
76
|
+
if (Date.now() < this.nextAttempt) {
|
|
77
|
+
throw new CircuitBreakerOpenError('Service temporarily unavailable. Please try again later.', Math.ceil((this.nextAttempt - Date.now()) / 1000));
|
|
78
|
+
}
|
|
79
|
+
this.state = 'HALF_OPEN';
|
|
80
|
+
this.failureCount = 0;
|
|
81
|
+
}
|
|
82
|
+
try {
|
|
83
|
+
const result = await operation();
|
|
84
|
+
this.onSuccess();
|
|
85
|
+
return result;
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
this.onFailure();
|
|
89
|
+
throw error;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
onSuccess() {
|
|
93
|
+
this.failureCount = 0;
|
|
94
|
+
if (this.state === 'HALF_OPEN') {
|
|
95
|
+
this.state = 'CLOSED';
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
onFailure() {
|
|
99
|
+
this.failureCount++;
|
|
100
|
+
this.lastFailureTime = Date.now();
|
|
101
|
+
if (this.state === 'HALF_OPEN' || this.failureCount >= this.failureThreshold) {
|
|
102
|
+
this.state = 'OPEN';
|
|
103
|
+
this.nextAttempt = Date.now() + this.resetTimeoutMs;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Get current circuit breaker state
|
|
108
|
+
*/
|
|
109
|
+
getState() {
|
|
110
|
+
return this.state;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Reset circuit breaker (useful for testing)
|
|
114
|
+
*/
|
|
115
|
+
reset() {
|
|
116
|
+
this.state = 'CLOSED';
|
|
117
|
+
this.failureCount = 0;
|
|
118
|
+
this.lastFailureTime = undefined;
|
|
119
|
+
this.nextAttempt = 0;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
exports.CircuitBreaker = CircuitBreaker;
|
|
123
|
+
/**
|
|
124
|
+
* Error thrown when circuit breaker is open
|
|
125
|
+
*/
|
|
126
|
+
class CircuitBreakerOpenError extends Error {
|
|
127
|
+
constructor(message, retryAfter) {
|
|
128
|
+
super(message);
|
|
129
|
+
this.retryAfter = retryAfter;
|
|
130
|
+
this.status = 503;
|
|
131
|
+
this.code = 'CIRCUIT_BREAKER_OPEN';
|
|
132
|
+
this.name = 'CircuitBreakerOpenError';
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
exports.CircuitBreakerOpenError = CircuitBreakerOpenError;
|
|
136
|
+
/**
|
|
137
|
+
* Error thrown when rate limit is exceeded
|
|
138
|
+
*/
|
|
139
|
+
class RateLimitExceededError extends Error {
|
|
140
|
+
constructor(message, retryAfter, limit, windowSeconds) {
|
|
141
|
+
super(message);
|
|
142
|
+
this.retryAfter = retryAfter;
|
|
143
|
+
this.limit = limit;
|
|
144
|
+
this.windowSeconds = windowSeconds;
|
|
145
|
+
this.status = 429;
|
|
146
|
+
this.code = 'RATE_LIMIT_EXCEEDED';
|
|
147
|
+
this.name = 'RateLimitExceededError';
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
exports.RateLimitExceededError = RateLimitExceededError;
|
|
151
|
+
//# sourceMappingURL=resilience.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resilience.js","sourceRoot":"","sources":["../../src/core/resilience.ts"],"names":[],"mappings":"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"}
|
package/dist/sdk-info.d.ts
CHANGED
|
@@ -301,12 +301,19 @@ export declare const SDK_SERVICES: {
|
|
|
301
301
|
readonly returns: "UserWithAvatar[]";
|
|
302
302
|
readonly example: "const users = await biome.users.getAll()";
|
|
303
303
|
};
|
|
304
|
+
readonly findUsers: {
|
|
305
|
+
readonly signature: "(keyword?: string, limit?: number) => Promise<UserWithAvatar[]>";
|
|
306
|
+
readonly description: "Find users by keyword (partial match on username OR email). Returns array (never null). Default limit 20, max 100.";
|
|
307
|
+
readonly params: readonly ["keyword?: string - Search keyword (empty returns all, whitespace-only returns empty array)", "limit?: number - Max results (default: 20, max: 100)"];
|
|
308
|
+
readonly returns: "UserWithAvatar[]";
|
|
309
|
+
readonly example: "const users = await biome.users.findUsers('john')\nconst users = await biome.users.findUsers('@example.com', 50)\nconst allUsers = await biome.users.findUsers()";
|
|
310
|
+
};
|
|
304
311
|
readonly getUsers: {
|
|
305
312
|
readonly signature: "(query?: string, limit?: number) => Promise<UserWithAvatar[]>";
|
|
306
|
-
readonly description: "Get users with pagination and search";
|
|
313
|
+
readonly description: "Get users with pagination and search [Deprecated: Use findUsers]";
|
|
307
314
|
readonly params: readonly ["query?: string", "limit?: number"];
|
|
308
315
|
readonly returns: "UserWithAvatar[]";
|
|
309
|
-
readonly example: "const users = await biome.users.
|
|
316
|
+
readonly example: "const users = await biome.users.findUsers('john', 10) // Use findUsers instead";
|
|
310
317
|
};
|
|
311
318
|
readonly getUserById: {
|
|
312
319
|
readonly signature: "(id: number) => Promise<UserWithAvatar | null>";
|
|
@@ -331,10 +338,10 @@ export declare const SDK_SERVICES: {
|
|
|
331
338
|
};
|
|
332
339
|
readonly searchUsers: {
|
|
333
340
|
readonly signature: "(query: string, limit?: number) => Promise<UserWithAvatar[]>";
|
|
334
|
-
readonly description: "Search users by query";
|
|
341
|
+
readonly description: "Search users by query [Deprecated: Use findUsers]";
|
|
335
342
|
readonly params: readonly ["query: string", "limit?: number"];
|
|
336
343
|
readonly returns: "UserWithAvatar[]";
|
|
337
|
-
readonly example: "const results = await biome.users.
|
|
344
|
+
readonly example: "const results = await biome.users.findUsers('john') // Use findUsers instead";
|
|
338
345
|
};
|
|
339
346
|
};
|
|
340
347
|
};
|
package/dist/sdk-info.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk-info.d.ts","sourceRoot":"","sources":["../src/sdk-info.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,QAAQ;;;;;;;CAOX,CAAC;AAEX,eAAO,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"sdk-info.d.ts","sourceRoot":"","sources":["../src/sdk-info.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,QAAQ;;;;;;;CAOX,CAAC;AAEX,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqXf,CAAC;AAEX,eAAO,MAAM,UAAU;;;;;;;;;;;;CAqBb,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,MAAM,OAAO,YAAY,CAAC;AACvD,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,cAAc,IAAI,MAAM,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC"}
|
package/dist/sdk-info.js
CHANGED
|
@@ -304,12 +304,19 @@ exports.SDK_SERVICES = {
|
|
|
304
304
|
returns: 'UserWithAvatar[]',
|
|
305
305
|
example: 'const users = await biome.users.getAll()',
|
|
306
306
|
},
|
|
307
|
+
findUsers: {
|
|
308
|
+
signature: '(keyword?: string, limit?: number) => Promise<UserWithAvatar[]>',
|
|
309
|
+
description: 'Find users by keyword (partial match on username OR email). Returns array (never null). Default limit 20, max 100.',
|
|
310
|
+
params: ['keyword?: string - Search keyword (empty returns all, whitespace-only returns empty array)', 'limit?: number - Max results (default: 20, max: 100)'],
|
|
311
|
+
returns: 'UserWithAvatar[]',
|
|
312
|
+
example: "const users = await biome.users.findUsers('john')\nconst users = await biome.users.findUsers('@example.com', 50)\nconst allUsers = await biome.users.findUsers()",
|
|
313
|
+
},
|
|
307
314
|
getUsers: {
|
|
308
315
|
signature: '(query?: string, limit?: number) => Promise<UserWithAvatar[]>',
|
|
309
|
-
description: 'Get users with pagination and search',
|
|
316
|
+
description: 'Get users with pagination and search [Deprecated: Use findUsers]',
|
|
310
317
|
params: ['query?: string', 'limit?: number'],
|
|
311
318
|
returns: 'UserWithAvatar[]',
|
|
312
|
-
example: "const users = await biome.users.
|
|
319
|
+
example: "const users = await biome.users.findUsers('john', 10) // Use findUsers instead",
|
|
313
320
|
},
|
|
314
321
|
getUserById: {
|
|
315
322
|
signature: '(id: number) => Promise<UserWithAvatar | null>',
|
|
@@ -334,10 +341,10 @@ exports.SDK_SERVICES = {
|
|
|
334
341
|
},
|
|
335
342
|
searchUsers: {
|
|
336
343
|
signature: '(query: string, limit?: number) => Promise<UserWithAvatar[]>',
|
|
337
|
-
description: 'Search users by query',
|
|
344
|
+
description: 'Search users by query [Deprecated: Use findUsers]',
|
|
338
345
|
params: ['query: string', 'limit?: number'],
|
|
339
346
|
returns: 'UserWithAvatar[]',
|
|
340
|
-
example: "const results = await biome.users.
|
|
347
|
+
example: "const results = await biome.users.findUsers('john') // Use findUsers instead",
|
|
341
348
|
},
|
|
342
349
|
},
|
|
343
350
|
},
|
package/dist/sdk-info.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdk-info.js","sourceRoot":"","sources":["../src/sdk-info.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"sdk-info.js","sourceRoot":"","sources":["../src/sdk-info.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BiomeHttpClient } from "../core/http-client";
|
|
2
|
-
import { Task, TASK_STATUS,
|
|
2
|
+
import { Task, TASK_STATUS, TaskSearchResults } from "./task.model";
|
|
3
3
|
import { TaskUpdate, CreateTaskUpdateRequest, UpdateTaskUpdateRequest } from "./task-update.model";
|
|
4
4
|
import { TaskReference, CreateTaskReferenceRequest, UpdateTaskReferenceRequest, TaskReferenceListResponse } from "./task-reference.model";
|
|
5
5
|
/**
|
|
@@ -74,6 +74,8 @@ export interface TakeBackTaskRequest {
|
|
|
74
74
|
*/
|
|
75
75
|
export declare class BiomeTasks {
|
|
76
76
|
private http;
|
|
77
|
+
private static readonly rateLimiter;
|
|
78
|
+
private static readonly circuitBreaker;
|
|
77
79
|
constructor(http: BiomeHttpClient);
|
|
78
80
|
/**
|
|
79
81
|
* Get task by ID
|
|
@@ -100,11 +102,11 @@ export declare class BiomeTasks {
|
|
|
100
102
|
/**
|
|
101
103
|
* Get tasks assigned to current user
|
|
102
104
|
*/
|
|
103
|
-
getMyTasks(filters?: TaskFilters): Promise<
|
|
105
|
+
getMyTasks(filters?: TaskFilters): Promise<Task[]>;
|
|
104
106
|
/**
|
|
105
107
|
* Get tasks delegated by current user
|
|
106
108
|
*/
|
|
107
|
-
getDelegatedTasks(filters?: TaskFilters): Promise<
|
|
109
|
+
getDelegatedTasks(filters?: TaskFilters): Promise<Task[]>;
|
|
108
110
|
/**
|
|
109
111
|
* Search tasks
|
|
110
112
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task.service.d.ts","sourceRoot":"","sources":["../../src/tasks/task.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"task.service.d.ts","sourceRoot":"","sources":["../../src/tasks/task.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
2
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
12
|
exports.BiomeTasks = void 0;
|
|
4
13
|
const error_handler_1 = require("../core/error-handler");
|
|
14
|
+
const resilience_1 = require("../core/resilience");
|
|
15
|
+
const task_sorting_1 = require("./task-sorting");
|
|
16
|
+
const decorators_1 = require("../openapi/decorators");
|
|
5
17
|
/**
|
|
6
18
|
* Task management service - pure business logic without UI state
|
|
7
19
|
*/
|
|
@@ -82,12 +94,23 @@ class BiomeTasks {
|
|
|
82
94
|
* Get tasks assigned to current user
|
|
83
95
|
*/
|
|
84
96
|
async getMyTasks(filters) {
|
|
97
|
+
const rateLimitKey = "getMyTasks";
|
|
98
|
+
const rateCheck = BiomeTasks.rateLimiter.checkLimit(rateLimitKey);
|
|
99
|
+
if (!rateCheck.allowed) {
|
|
100
|
+
throw new resilience_1.RateLimitExceededError("Too many requests to get my tasks. Please try again later.", rateCheck.retryAfter || 60, 100, 60);
|
|
101
|
+
}
|
|
85
102
|
try {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
103
|
+
return await BiomeTasks.circuitBreaker.execute(async () => {
|
|
104
|
+
const params = this.buildQueryParams(filters);
|
|
105
|
+
const response = await this.http.get(`/tasks/my?${params}`);
|
|
106
|
+
return task_sorting_1.TaskSorting.sortTasks(response.payload);
|
|
107
|
+
});
|
|
89
108
|
}
|
|
90
109
|
catch (error) {
|
|
110
|
+
if (error instanceof resilience_1.CircuitBreakerOpenError ||
|
|
111
|
+
error instanceof resilience_1.RateLimitExceededError) {
|
|
112
|
+
throw error;
|
|
113
|
+
}
|
|
91
114
|
throw (0, error_handler_1.createSdkError)(error, "Failed to get my tasks");
|
|
92
115
|
}
|
|
93
116
|
}
|
|
@@ -95,12 +118,23 @@ class BiomeTasks {
|
|
|
95
118
|
* Get tasks delegated by current user
|
|
96
119
|
*/
|
|
97
120
|
async getDelegatedTasks(filters) {
|
|
121
|
+
const rateLimitKey = "getDelegatedTasks";
|
|
122
|
+
const rateCheck = BiomeTasks.rateLimiter.checkLimit(rateLimitKey);
|
|
123
|
+
if (!rateCheck.allowed) {
|
|
124
|
+
throw new resilience_1.RateLimitExceededError("Too many requests to get delegated tasks. Please try again later.", rateCheck.retryAfter || 60, 100, 60);
|
|
125
|
+
}
|
|
98
126
|
try {
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
127
|
+
return await BiomeTasks.circuitBreaker.execute(async () => {
|
|
128
|
+
const params = this.buildQueryParams(filters);
|
|
129
|
+
const response = await this.http.get(`/tasks/delegated?${params}`);
|
|
130
|
+
return task_sorting_1.TaskSorting.sortTasks(response.payload);
|
|
131
|
+
});
|
|
102
132
|
}
|
|
103
133
|
catch (error) {
|
|
134
|
+
if (error instanceof resilience_1.CircuitBreakerOpenError ||
|
|
135
|
+
error instanceof resilience_1.RateLimitExceededError) {
|
|
136
|
+
throw error;
|
|
137
|
+
}
|
|
104
138
|
throw (0, error_handler_1.createSdkError)(error, "Failed to get delegated tasks");
|
|
105
139
|
}
|
|
106
140
|
}
|
|
@@ -405,4 +439,34 @@ class BiomeTasks {
|
|
|
405
439
|
}
|
|
406
440
|
}
|
|
407
441
|
exports.BiomeTasks = BiomeTasks;
|
|
442
|
+
BiomeTasks.rateLimiter = new resilience_1.RateLimiter(100, 60);
|
|
443
|
+
BiomeTasks.circuitBreaker = new resilience_1.CircuitBreaker(5, 60000, 3);
|
|
444
|
+
__decorate([
|
|
445
|
+
(0, decorators_1.ApiEndpoint)({
|
|
446
|
+
method: "GET",
|
|
447
|
+
path: "/tasks/my",
|
|
448
|
+
summary: "Get my tasks",
|
|
449
|
+
description: "Get tasks assigned to current user",
|
|
450
|
+
tags: ["Tasks"],
|
|
451
|
+
secured: true,
|
|
452
|
+
}),
|
|
453
|
+
(0, decorators_1.ApiResponse)({ status: 200, type: Object, description: "Array of tasks" }),
|
|
454
|
+
__metadata("design:type", Function),
|
|
455
|
+
__metadata("design:paramtypes", [Object]),
|
|
456
|
+
__metadata("design:returntype", Promise)
|
|
457
|
+
], BiomeTasks.prototype, "getMyTasks", null);
|
|
458
|
+
__decorate([
|
|
459
|
+
(0, decorators_1.ApiEndpoint)({
|
|
460
|
+
method: "GET",
|
|
461
|
+
path: "/tasks/delegated",
|
|
462
|
+
summary: "Get delegated tasks",
|
|
463
|
+
description: "Get tasks delegated by current user",
|
|
464
|
+
tags: ["Tasks"],
|
|
465
|
+
secured: true,
|
|
466
|
+
}),
|
|
467
|
+
(0, decorators_1.ApiResponse)({ status: 200, type: Object, description: "Array of tasks" }),
|
|
468
|
+
__metadata("design:type", Function),
|
|
469
|
+
__metadata("design:paramtypes", [Object]),
|
|
470
|
+
__metadata("design:returntype", Promise)
|
|
471
|
+
], BiomeTasks.prototype, "getDelegatedTasks", null);
|
|
408
472
|
//# sourceMappingURL=task.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task.service.js","sourceRoot":"","sources":["../../src/tasks/task.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"task.service.js","sourceRoot":"","sources":["../../src/tasks/task.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,8 @@ import { BiomeHttpClient } from '../core/http-client';
|
|
|
4
4
|
*/
|
|
5
5
|
export declare class BiomeUsers {
|
|
6
6
|
private http;
|
|
7
|
+
private static readonly rateLimiter;
|
|
8
|
+
private static readonly circuitBreaker;
|
|
7
9
|
constructor(http: BiomeHttpClient);
|
|
8
10
|
/**
|
|
9
11
|
* Get all users with avatar URLs
|
|
@@ -20,6 +22,7 @@ export declare class BiomeUsers {
|
|
|
20
22
|
/**
|
|
21
23
|
* Get users with pagination and search
|
|
22
24
|
* Note: For single-user lookup, use `findUser(identifier)` instead (more efficient)
|
|
25
|
+
* @deprecated Use `findUsers()` instead for unified user search with consistent API
|
|
23
26
|
*/
|
|
24
27
|
getUsers(query?: string, limit?: number): Promise<UserWithAvatar[]>;
|
|
25
28
|
/**
|
|
@@ -33,8 +36,33 @@ export declare class BiomeUsers {
|
|
|
33
36
|
getUserByUsername(username: string): Promise<UserWithAvatar | null>;
|
|
34
37
|
/**
|
|
35
38
|
* Search users
|
|
39
|
+
* @deprecated Use `findUsers()` instead for unified user search with better defaults
|
|
36
40
|
*/
|
|
37
41
|
searchUsers(query: string, limit?: number): Promise<UserWithAvatar[]>;
|
|
42
|
+
/**
|
|
43
|
+
* Find users by keyword (partial match on username OR email)
|
|
44
|
+
* Canonical method for user search - use this instead of getUsers() or searchUsers()
|
|
45
|
+
*
|
|
46
|
+
* Includes rate limiting (100 req/min) and circuit breaker for resilience.
|
|
47
|
+
*
|
|
48
|
+
* @param keyword - Search keyword (optional). Empty string returns all users, whitespace-only returns empty array
|
|
49
|
+
* @param limit - Maximum results (default: 20, max: 100)
|
|
50
|
+
* @returns Array of users (never null, empty array if no matches)
|
|
51
|
+
* @throws RateLimitExceededError when rate limit exceeded (429)
|
|
52
|
+
* @throws CircuitBreakerOpenError when circuit breaker is open (503)
|
|
53
|
+
* @throws BiomeSdkError on other failures with proper error context
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* // Search by partial username or email
|
|
57
|
+
* const users = await biome.users.findUsers('john');
|
|
58
|
+
*
|
|
59
|
+
* // Search with custom limit
|
|
60
|
+
* const users = await biome.users.findUsers('@example.com', 50);
|
|
61
|
+
*
|
|
62
|
+
* // Get all users (respects default limit)
|
|
63
|
+
* const allUsers = await biome.users.findUsers();
|
|
64
|
+
*/
|
|
65
|
+
findUsers(keyword?: string, limit?: number): Promise<UserWithAvatar[]>;
|
|
38
66
|
/**
|
|
39
67
|
* Find a single user by username or email
|
|
40
68
|
* Tries exact username match first, then searches for email match
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.service.d.ts","sourceRoot":"","sources":["../../src/users/user.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"user.service.d.ts","sourceRoot":"","sources":["../../src/users/user.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAKtD;;GAEG;AACH,qBAAa,UAAU;IAMP,OAAO,CAAC,IAAI;IAJxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAA4B;IAE/D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAmC;gBAErD,IAAI,EAAE,eAAe;IAEzC;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAiBzC;;OAEG;IACH,OAAO,CAAC,cAAc;IAYtB;;OAEG;IACH,OAAO,CAAC,YAAY;IAYpB;;;;OAIG;IACG,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAgBzE;;OAEG;IACG,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAe7D;;;OAGG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAezE;;;OAGG;IACG,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAI3E;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAoDhF;;;;;;OAMG;IACG,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;CAqBrE;AAED,MAAM,WAAW,cAAc;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE;QACX,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.BiomeUsers = void 0;
|
|
4
4
|
const error_handler_1 = require("../core/error-handler");
|
|
5
|
+
const resilience_1 = require("../core/resilience");
|
|
5
6
|
/**
|
|
6
7
|
* User service - pure business logic without UI concerns
|
|
7
8
|
*/
|
|
@@ -55,6 +56,7 @@ class BiomeUsers {
|
|
|
55
56
|
/**
|
|
56
57
|
* Get users with pagination and search
|
|
57
58
|
* Note: For single-user lookup, use `findUser(identifier)` instead (more efficient)
|
|
59
|
+
* @deprecated Use `findUsers()` instead for unified user search with consistent API
|
|
58
60
|
*/
|
|
59
61
|
async getUsers(query, limit) {
|
|
60
62
|
try {
|
|
@@ -112,10 +114,75 @@ class BiomeUsers {
|
|
|
112
114
|
}
|
|
113
115
|
/**
|
|
114
116
|
* Search users
|
|
117
|
+
* @deprecated Use `findUsers()` instead for unified user search with better defaults
|
|
115
118
|
*/
|
|
116
119
|
async searchUsers(query, limit) {
|
|
117
120
|
return this.getUsers(query, limit);
|
|
118
121
|
}
|
|
122
|
+
/**
|
|
123
|
+
* Find users by keyword (partial match on username OR email)
|
|
124
|
+
* Canonical method for user search - use this instead of getUsers() or searchUsers()
|
|
125
|
+
*
|
|
126
|
+
* Includes rate limiting (100 req/min) and circuit breaker for resilience.
|
|
127
|
+
*
|
|
128
|
+
* @param keyword - Search keyword (optional). Empty string returns all users, whitespace-only returns empty array
|
|
129
|
+
* @param limit - Maximum results (default: 20, max: 100)
|
|
130
|
+
* @returns Array of users (never null, empty array if no matches)
|
|
131
|
+
* @throws RateLimitExceededError when rate limit exceeded (429)
|
|
132
|
+
* @throws CircuitBreakerOpenError when circuit breaker is open (503)
|
|
133
|
+
* @throws BiomeSdkError on other failures with proper error context
|
|
134
|
+
*
|
|
135
|
+
* @example
|
|
136
|
+
* // Search by partial username or email
|
|
137
|
+
* const users = await biome.users.findUsers('john');
|
|
138
|
+
*
|
|
139
|
+
* // Search with custom limit
|
|
140
|
+
* const users = await biome.users.findUsers('@example.com', 50);
|
|
141
|
+
*
|
|
142
|
+
* // Get all users (respects default limit)
|
|
143
|
+
* const allUsers = await biome.users.findUsers();
|
|
144
|
+
*/
|
|
145
|
+
async findUsers(keyword, limit = 20) {
|
|
146
|
+
// Apply rate limiting (FR-014) - 100 requests per minute
|
|
147
|
+
const rateLimitKey = 'findUsers';
|
|
148
|
+
const rateCheck = BiomeUsers.rateLimiter.checkLimit(rateLimitKey);
|
|
149
|
+
if (!rateCheck.allowed) {
|
|
150
|
+
throw new resilience_1.RateLimitExceededError('Too many search requests. Please try again later.', rateCheck.retryAfter || 60, 100, 60);
|
|
151
|
+
}
|
|
152
|
+
// Validate and clamp limit (max 100 per FR-012)
|
|
153
|
+
const effectiveLimit = Math.min(Math.max(1, limit), 100);
|
|
154
|
+
// Handle whitespace-only keyword - return empty array (per spec edge case)
|
|
155
|
+
// Empty string '' is valid and returns all users, but ' ' or '\t' returns []
|
|
156
|
+
if (keyword !== undefined && keyword.length > 0 && keyword.trim().length === 0) {
|
|
157
|
+
return [];
|
|
158
|
+
}
|
|
159
|
+
try {
|
|
160
|
+
// Execute with circuit breaker for resilience (FR-020)
|
|
161
|
+
return await BiomeUsers.circuitBreaker.execute(async () => {
|
|
162
|
+
const params = new URLSearchParams();
|
|
163
|
+
// Include q param only if keyword has non-whitespace content
|
|
164
|
+
if (keyword !== undefined && keyword.trim().length > 0) {
|
|
165
|
+
params.set('q', keyword);
|
|
166
|
+
}
|
|
167
|
+
params.set('limit', effectiveLimit.toString());
|
|
168
|
+
const response = await this.http.get(`/users?${params.toString()}`);
|
|
169
|
+
// Ensure we always return an array (never null per FR-003)
|
|
170
|
+
const users = response.payload?.users || [];
|
|
171
|
+
// Populate avatar URLs for all results
|
|
172
|
+
return users.map(user => ({
|
|
173
|
+
...user,
|
|
174
|
+
avatarUrl: this.buildAvatarUrl(user),
|
|
175
|
+
}));
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
catch (error) {
|
|
179
|
+
// Circuit breaker errors and rate limit errors pass through
|
|
180
|
+
if (error instanceof resilience_1.CircuitBreakerOpenError || error instanceof resilience_1.RateLimitExceededError) {
|
|
181
|
+
throw error;
|
|
182
|
+
}
|
|
183
|
+
throw (0, error_handler_1.createSdkError)(error, 'Failed to find users');
|
|
184
|
+
}
|
|
185
|
+
}
|
|
119
186
|
/**
|
|
120
187
|
* Find a single user by username or email
|
|
121
188
|
* Tries exact username match first, then searches for email match
|
|
@@ -131,7 +198,7 @@ class BiomeUsers {
|
|
|
131
198
|
}
|
|
132
199
|
// If username lookup fails and identifier looks like an email, search and match by email
|
|
133
200
|
if (identifier.includes('@')) {
|
|
134
|
-
const searchResults = await this.
|
|
201
|
+
const searchResults = await this.findUsers(identifier, 20);
|
|
135
202
|
const userByEmail = searchResults.find(user => user.email?.toLowerCase() === identifier.toLowerCase());
|
|
136
203
|
if (userByEmail) {
|
|
137
204
|
return userByEmail;
|
|
@@ -141,4 +208,8 @@ class BiomeUsers {
|
|
|
141
208
|
}
|
|
142
209
|
}
|
|
143
210
|
exports.BiomeUsers = BiomeUsers;
|
|
211
|
+
// Rate limiter: 100 requests per minute per user (FR-014)
|
|
212
|
+
BiomeUsers.rateLimiter = new resilience_1.RateLimiter(100, 60);
|
|
213
|
+
// Circuit breaker for backend failures (FR-020)
|
|
214
|
+
BiomeUsers.circuitBreaker = new resilience_1.CircuitBreaker(5, 60000, 3);
|
|
144
215
|
//# sourceMappingURL=user.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.service.js","sourceRoot":"","sources":["../../src/users/user.service.ts"],"names":[],"mappings":";;;AACA,yDAAuD;
|
|
1
|
+
{"version":3,"file":"user.service.js","sourceRoot":"","sources":["../../src/users/user.service.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nekutima/biome-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.1",
|
|
4
4
|
"description": "Pure TypeScript SDK for Biome platform integration - authentication, task management, and blockchain interactions",
|
|
5
5
|
"readme": "README.md",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -31,8 +31,8 @@
|
|
|
31
31
|
"dev": "tsc -p tsconfig.build.json --watch",
|
|
32
32
|
"test": "jest",
|
|
33
33
|
"test:watch": "jest --watch",
|
|
34
|
-
"lint": "eslint
|
|
35
|
-
"lint:fix": "eslint
|
|
34
|
+
"lint": "eslint",
|
|
35
|
+
"lint:fix": "eslint --fix",
|
|
36
36
|
"type-check": "tsc --noEmit -p tsconfig.build.json",
|
|
37
37
|
"clean": "rm -rf dist"
|
|
38
38
|
},
|
|
@@ -65,6 +65,9 @@
|
|
|
65
65
|
"@types/jest": "^29.5.0",
|
|
66
66
|
"@types/luxon": "^3.6.1",
|
|
67
67
|
"@types/node": "^24.10.0",
|
|
68
|
+
"@typescript-eslint/eslint-plugin": "^8.59.1",
|
|
69
|
+
"@typescript-eslint/parser": "^8.59.1",
|
|
70
|
+
"eslint": "^10.3.0",
|
|
68
71
|
"jest": "^29.7.0",
|
|
69
72
|
"ts-jest": "^29.1.0",
|
|
70
73
|
"typescript": "^5.9.2"
|