win-portal-auth-sdk 1.3.0 → 1.4.0

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 (45) hide show
  1. package/README.md +80 -7
  2. package/dist/client/auth-client.d.ts +97 -2
  3. package/dist/client/auth-client.d.ts.map +1 -1
  4. package/dist/client/auth-client.js +276 -30
  5. package/dist/client/index.d.ts +1 -1
  6. package/dist/client/index.d.ts.map +1 -1
  7. package/dist/index.d.ts +7 -1
  8. package/dist/index.d.ts.map +1 -1
  9. package/dist/index.js +14 -2
  10. package/dist/nestjs/decorators/current-token.decorator.d.ts +29 -0
  11. package/dist/nestjs/decorators/current-token.decorator.d.ts.map +1 -0
  12. package/dist/nestjs/decorators/current-token.decorator.js +36 -0
  13. package/dist/nestjs/decorators/current-user.decorator.d.ts +26 -0
  14. package/dist/nestjs/decorators/current-user.decorator.d.ts.map +1 -0
  15. package/dist/nestjs/decorators/current-user.decorator.js +33 -0
  16. package/dist/nestjs/decorators/index.d.ts +9 -0
  17. package/dist/nestjs/decorators/index.d.ts.map +1 -0
  18. package/dist/nestjs/decorators/index.js +15 -0
  19. package/dist/nestjs/decorators/public.decorator.d.ts +31 -0
  20. package/dist/nestjs/decorators/public.decorator.d.ts.map +1 -0
  21. package/dist/nestjs/decorators/public.decorator.js +36 -0
  22. package/dist/nestjs/guards/index.d.ts +7 -0
  23. package/dist/nestjs/guards/index.d.ts.map +1 -0
  24. package/dist/nestjs/guards/index.js +11 -0
  25. package/dist/nestjs/guards/oauth-auth.guard.d.ts +139 -0
  26. package/dist/nestjs/guards/oauth-auth.guard.d.ts.map +1 -0
  27. package/dist/nestjs/guards/oauth-auth.guard.js +257 -0
  28. package/dist/nestjs/index.d.ts +28 -0
  29. package/dist/nestjs/index.d.ts.map +1 -0
  30. package/dist/nestjs/index.js +47 -0
  31. package/dist/nestjs/middleware/index.d.ts +7 -0
  32. package/dist/nestjs/middleware/index.d.ts.map +1 -0
  33. package/dist/nestjs/middleware/index.js +11 -0
  34. package/dist/nestjs/middleware/request-context.middleware.d.ts +62 -0
  35. package/dist/nestjs/middleware/request-context.middleware.d.ts.map +1 -0
  36. package/dist/nestjs/middleware/request-context.middleware.js +122 -0
  37. package/dist/nestjs/types/request-context.types.d.ts +69 -0
  38. package/dist/nestjs/types/request-context.types.d.ts.map +1 -0
  39. package/dist/nestjs/types/request-context.types.js +33 -0
  40. package/dist/types/index.d.ts +18 -0
  41. package/dist/types/index.d.ts.map +1 -1
  42. package/dist/utils/logger.d.ts +23 -0
  43. package/dist/utils/logger.d.ts.map +1 -0
  44. package/dist/utils/logger.js +49 -0
  45. package/package.json +41 -3
package/README.md CHANGED
@@ -305,9 +305,27 @@ const client = new AuthClient({
305
305
  baseURL?: string; // Optional: Base URL for requests
306
306
  apiKeyHeader?: string; // Optional: Custom header name (default: 'X-API-Key')
307
307
  timeout?: number; // Optional: Request timeout (default: 30000ms)
308
+ advanced?: { // Optional: Advanced configuration
309
+ activityThrottleMs?: number; // Activity handler throttle (default: 1000ms)
310
+ refreshTimeoutMs?: number; // Refresh token timeout (default: 5000ms)
311
+ }
308
312
  })
309
313
  ```
310
314
 
315
+ **Advanced Configuration:**
316
+
317
+ ```typescript
318
+ // ปรับแต่ง performance และ timeout settings
319
+ const client = new AuthClient({
320
+ apiKey: 'your-api-key',
321
+ baseURL: 'https://api.example.com',
322
+ advanced: {
323
+ activityThrottleMs: 500, // ลด throttle time สำหรับ responsive มากขึ้น (แต่ใช้ CPU มากขึ้น)
324
+ refreshTimeoutMs: 10000, // เพิ่ม timeout สำหรับ slow network
325
+ }
326
+ });
327
+ ```
328
+
311
329
  #### HTTP Methods
312
330
 
313
331
  - `get<T>(url, config?)` - GET request
@@ -369,6 +387,62 @@ const client = new AuthClient({
369
387
  - `getApiKeyMasked()` - Get masked API key for display
370
388
  - `getAxiosInstance()` - Get underlying axios instance
371
389
 
390
+ #### Session Management
391
+
392
+ **Inactivity Detection:**
393
+
394
+ - `enableInactivityDetection(options)` - Enable inactivity detection ที่จับ user activity (mouse/keyboard/touch/scroll)
395
+ - จับ user activity และ trigger callback เมื่อ inactivity timeout
396
+ - ใช้ timeout และ warning time จาก session management config เป็น default
397
+ - Support SSR (Next.js) โดยไม่ error
398
+
399
+ ```typescript
400
+ // Enable inactivity detection
401
+ await authClient.enableInactivityDetection({
402
+ callbacks: {
403
+ onInactivityWarning: (remainingSeconds) => {
404
+ console.log(`Inactivity warning: ${remainingSeconds} seconds remaining`);
405
+ // แสดง notification หรือ dialog
406
+ alert(`Session will expire in ${remainingSeconds} seconds due to inactivity`);
407
+ },
408
+ onInactivityTimeout: () => {
409
+ console.log('Inactivity timeout');
410
+ // Redirect to login หรือ logout
411
+ authClient.clearToken();
412
+ window.location.href = '/login';
413
+ }
414
+ },
415
+ timeoutSeconds: 1800, // 30 minutes (optional, default: จาก session management config)
416
+ warningSeconds: 300, // 5 minutes warning (optional, default: จาก session management config)
417
+ events: ['mousemove', 'keydown', 'touchstart', 'scroll'] // (optional, default: ทั้งหมด)
418
+ });
419
+
420
+ // Disable inactivity detection
421
+ authClient.disableInactivityDetection();
422
+ ```
423
+
424
+ **Session Expiration Monitoring:**
425
+
426
+ - `enableSessionExpirationMonitoring(options)` - Enable session expiration monitoring
427
+ - ตรวจสอบ session expiration ตาม config จาก settings/sessions
428
+ - เรียก callback เมื่อใกล้หมดอายุ
429
+
430
+ ```typescript
431
+ await authClient.enableSessionExpirationMonitoring({
432
+ callbacks: {
433
+ onSessionExpiring: (remainingMinutes, expirationType) => {
434
+ console.log(`Session will expire in ${remainingMinutes} minutes (${expirationType})`);
435
+ // แสดง notification หรือ dialog
436
+ },
437
+ onSessionExpired: () => {
438
+ console.log('Session expired');
439
+ // Redirect to login
440
+ }
441
+ },
442
+ checkIntervalSeconds: 30 // ตรวจสอบทุก 30 วินาที
443
+ });
444
+ ```
445
+
372
446
  ## Authentication Types
373
447
 
374
448
  The SDK supports three authentication types through the `X-Auth-Type` header:
@@ -480,15 +554,14 @@ try {
480
554
 
481
555
  📚 **[Complete Documentation →](./docs/README.md)**
482
556
 
483
- - [API Functions Reference](./docs/api/functions.md) - สรุปฟังก์ชันทั้งหมดที่ SDK รองรับ 🆕
484
- - [Frontend Examples](./docs/guides/frontend-examples.md) - Next.js, React usage
485
- - [Middleware Guide](./docs/middleware/usage.md) - Express & NestJS
486
- - [Type Safety Guide](./docs/middleware/type-safety.md) - Express type augmentation 🆕
487
- - [Type Names Guide](./docs/guides/type-names.md) - SDK-friendly type names 🆕
488
- - [Next.js Guide](./docs/guides/nextjs.md) - คู่มือ Next.js ภาษาไทย
557
+ - [Next.js Guide](./docs/guides/nextjs.md) - คู่มือ Next.js ภาษาไทย (ครบถ้วน) ⭐
489
558
  - [OAuth Next.js Guide](./docs/guides/oauth-nextjs.md) - คู่มือ OAuth กับ Next.js
490
559
  - [NestJS Guide](./docs/guides/nestjs.md) - คู่มือ NestJS
491
- - [Thai Documentation](./docs/guides/getting-started.md) - คู่มือภาษาไทย
560
+ - [Middleware Guide](./docs/middleware/usage.md) - Express & NestJS (English & ไทย)
561
+ - [Middleware Examples](./docs/middleware/examples.md) - Complete backend examples
562
+ - [Type Safety Guide](./docs/middleware/type-safety.md) - Express type augmentation
563
+ - [API Functions Reference](./docs/api/functions.md) - สรุปฟังก์ชันทั้งหมดที่ SDK รองรับ
564
+ - [Type Names Guide](./docs/guides/type-names.md) - SDK-friendly type names
492
565
  - [Publishing Guide](./docs/development/publish.md) - How to publish updates
493
566
 
494
567
  ## License
@@ -65,6 +65,35 @@ export interface AutomaticRefreshOptions {
65
65
  */
66
66
  onRefreshFailure?: () => void | Promise<void>;
67
67
  }
68
+ export interface InactivityCallbacks {
69
+ /**
70
+ * Callback เมื่อ inactivity ใกล้หมดเวลา (ตาม warningSeconds)
71
+ * @param remainingSeconds - จำนวนวินาทีที่เหลือก่อน inactivity timeout
72
+ */
73
+ onInactivityWarning?: (remainingSeconds: number) => void | Promise<void>;
74
+ /**
75
+ * Callback เมื่อ inactivity timeout แล้ว
76
+ */
77
+ onInactivityTimeout?: () => void | Promise<void>;
78
+ }
79
+ export interface InactivityDetectionOptions {
80
+ /**
81
+ * Callbacks สำหรับ inactivity events
82
+ */
83
+ callbacks: InactivityCallbacks;
84
+ /**
85
+ * Optional: ระยะเวลา inactivity timeout เป็นวินาที (default: ใช้จาก session management config)
86
+ */
87
+ timeoutSeconds?: number;
88
+ /**
89
+ * Optional: ระยะเวลา warning ก่อน timeout เป็นวินาที (default: ใช้จาก session management config)
90
+ */
91
+ warningSeconds?: number;
92
+ /**
93
+ * Optional: Events ที่ต้องการจับ (default: ทั้งหมด ['mousemove', 'keydown', 'touchstart', 'scroll'])
94
+ */
95
+ events?: ('mousemove' | 'keydown' | 'touchstart' | 'scroll')[];
96
+ }
68
97
  export declare class AuthClient {
69
98
  private client;
70
99
  private apiKey;
@@ -77,14 +106,24 @@ export declare class AuthClient {
77
106
  private automaticRefreshEnabled;
78
107
  private lastRefreshAttempt;
79
108
  private refreshPromise;
80
- private readonly REFRESH_COOLDOWN_MS;
81
109
  private sessionExpirationCallbacks;
82
110
  private sessionManagementConfig;
83
111
  private sessionManagementConfigPromise;
84
112
  private sessionExpirationCheckInterval;
85
113
  private sessionExpirationCheckIntervalSeconds;
86
114
  private lastWarningTime;
87
- private readonly WARNING_COOLDOWN_MS;
115
+ private inactivityCallbacks;
116
+ private inactivityTimeout;
117
+ private inactivityWarningTimeout;
118
+ private lastActivityTime;
119
+ private inactivityDetectionEnabled;
120
+ private inactivityTimeoutSeconds;
121
+ private inactivityWarningSeconds;
122
+ private activityEvents;
123
+ private activityHandler;
124
+ private activityThrottleTimeout;
125
+ private activityThrottleMs;
126
+ private refreshTimeoutMs;
88
127
  readonly auth: AuthAPI;
89
128
  readonly health: HealthAPI;
90
129
  readonly systemConfig: SystemConfigAPI;
@@ -286,5 +325,61 @@ export declare class AuthClient {
286
325
  * Reload session management config (for when config changes)
287
326
  */
288
327
  reloadSessionManagementConfig(): Promise<void>;
328
+ /**
329
+ * Enable inactivity detection
330
+ * จับ user activity (mouse/keyboard/touch/scroll) และ trigger callback เมื่อ inactivity timeout
331
+ *
332
+ * @param options - Options for inactivity detection
333
+ *
334
+ * @example
335
+ * ```typescript
336
+ * await authClient.enableInactivityDetection({
337
+ * callbacks: {
338
+ * onInactivityWarning: (remainingSeconds) => {
339
+ * console.log(`Inactivity warning: ${remainingSeconds} seconds remaining`);
340
+ * // แสดง notification หรือ dialog
341
+ * },
342
+ * onInactivityTimeout: () => {
343
+ * console.log('Inactivity timeout');
344
+ * // Redirect to login หรือ logout
345
+ * authClient.clearToken();
346
+ * window.location.href = '/login';
347
+ * }
348
+ * },
349
+ * timeoutSeconds: 1800, // 30 minutes (optional, default: จาก session management config)
350
+ * warningSeconds: 300, // 5 minutes warning (optional, default: จาก session management config)
351
+ * events: ['mousemove', 'keydown', 'touchstart', 'scroll'] // (optional, default: ทั้งหมด)
352
+ * });
353
+ * ```
354
+ */
355
+ enableInactivityDetection(options: InactivityDetectionOptions): Promise<void>;
356
+ /**
357
+ * Disable inactivity detection
358
+ */
359
+ disableInactivityDetection(): void;
360
+ /**
361
+ * Handle user activity - reset inactivity timer with throttle
362
+ */
363
+ private handleUserActivity;
364
+ /**
365
+ * Setup activity event listeners
366
+ */
367
+ private setupActivityListeners;
368
+ /**
369
+ * Remove activity event listeners
370
+ */
371
+ private removeActivityListeners;
372
+ /**
373
+ * Clear inactivity timeouts (helper method)
374
+ */
375
+ private clearInactivityTimeouts;
376
+ /**
377
+ * Reset inactivity timer
378
+ */
379
+ private resetInactivityTimer;
380
+ /**
381
+ * Check inactivity timeout and trigger callbacks if needed
382
+ */
383
+ private checkInactivityTimeout;
289
384
  }
290
385
  //# sourceMappingURL=auth-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-client.d.ts","sourceRoot":"","sources":["../../src/client/auth-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth-client.d.ts","sourceRoot":"","sources":["../../src/client/auth-client.ts"],"names":[],"mappings":"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"}