win-portal-auth-sdk 1.2.1 → 1.3.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 +102 -9
- package/dist/client/api/auth.api.d.ts +25 -1
- package/dist/client/api/auth.api.d.ts.map +1 -1
- package/dist/client/api/auth.api.js +30 -1
- package/dist/client/api/files.api.d.ts +0 -1
- package/dist/client/api/files.api.d.ts.map +1 -1
- package/dist/client/api/index.d.ts +2 -0
- package/dist/client/api/index.d.ts.map +1 -1
- package/dist/client/api/index.js +3 -1
- package/dist/client/api/license.api.d.ts +74 -0
- package/dist/client/api/license.api.d.ts.map +1 -0
- package/dist/client/api/license.api.js +50 -0
- package/dist/client/api/system-config.api.d.ts +11 -1
- package/dist/client/api/system-config.api.d.ts.map +1 -1
- package/dist/client/api/system-config.api.js +21 -0
- package/dist/client/auth-client.d.ts +278 -1
- package/dist/client/auth-client.d.ts.map +1 -1
- package/dist/client/auth-client.js +705 -10
- package/dist/client/index.d.ts +2 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +15 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/types/auth.types.d.ts +9 -0
- package/dist/types/auth.types.d.ts.map +1 -1
- package/dist/types/index.d.ts +18 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/system-config.types.d.ts +37 -0
- package/dist/types/system-config.types.d.ts.map +1 -1
- package/dist/utils/logger.d.ts +23 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +49 -0
- package/dist/utils/token-utils.d.ts +60 -0
- package/dist/utils/token-utils.d.ts.map +1 -0
- package/dist/utils/token-utils.js +116 -0
- package/package.json +1 -2
- package/TYPE_SAFETY.md +0 -97
|
@@ -7,18 +7,129 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';
|
|
9
9
|
import { AuthSdkConfig } from '../types';
|
|
10
|
-
import { AuthAPI, HealthAPI, SystemConfigAPI, FilesAPI, EventLogApi, OAuthAPI, OAuthConfig, LineAPI } from './api';
|
|
10
|
+
import { AuthAPI, HealthAPI, SystemConfigAPI, FilesAPI, EventLogApi, LicenseAPI, OAuthAPI, OAuthConfig, LineAPI } from './api';
|
|
11
|
+
export interface RefreshTokenCallbacks {
|
|
12
|
+
/**
|
|
13
|
+
* Get refresh token from storage
|
|
14
|
+
*/
|
|
15
|
+
getRefreshToken: () => string | null | Promise<string | null>;
|
|
16
|
+
/**
|
|
17
|
+
* Save refresh token to storage
|
|
18
|
+
*/
|
|
19
|
+
setRefreshToken: (token: string) => void | Promise<void>;
|
|
20
|
+
/**
|
|
21
|
+
* Clear refresh token from storage
|
|
22
|
+
*/
|
|
23
|
+
clearRefreshToken?: () => void | Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
* Optional: Callback when refresh fails (for logout handling)
|
|
26
|
+
*/
|
|
27
|
+
onRefreshFailure?: () => void | Promise<void>;
|
|
28
|
+
}
|
|
29
|
+
export interface SessionExpirationCallbacks {
|
|
30
|
+
/**
|
|
31
|
+
* Callback เมื่อ session ใกล้หมดอายุ (ตาม warning_minutes จาก config)
|
|
32
|
+
* @param remainingMinutes - จำนวนนาทีที่เหลือก่อน session หมดอายุ
|
|
33
|
+
* @param expirationType - ประเภทการหมดอายุ: 'inactivity' หรือ 'lifetime'
|
|
34
|
+
*/
|
|
35
|
+
onSessionExpiring?: (remainingMinutes: number, expirationType: 'inactivity' | 'lifetime') => void | Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* Callback เมื่อ session หมดอายุแล้ว
|
|
38
|
+
*/
|
|
39
|
+
onSessionExpired?: () => void | Promise<void>;
|
|
40
|
+
}
|
|
41
|
+
export interface SessionExpirationOptions {
|
|
42
|
+
/**
|
|
43
|
+
* Callbacks สำหรับ session expiration events
|
|
44
|
+
*/
|
|
45
|
+
callbacks: SessionExpirationCallbacks;
|
|
46
|
+
/**
|
|
47
|
+
* Optional: ตรวจสอบ session expiration อัตโนมัติทุก N วินาที (default: 30)
|
|
48
|
+
*/
|
|
49
|
+
checkIntervalSeconds?: number;
|
|
50
|
+
}
|
|
51
|
+
export interface AutomaticRefreshOptions {
|
|
52
|
+
/**
|
|
53
|
+
* Storage key for refresh token (SDK will manage localStorage automatically)
|
|
54
|
+
* If provided, SDK will handle localStorage operations automatically
|
|
55
|
+
*/
|
|
56
|
+
refreshTokenKey?: string;
|
|
57
|
+
/**
|
|
58
|
+
* Custom callbacks (use if you need custom storage or want to override default behavior)
|
|
59
|
+
* If refreshTokenKey is provided, these will be ignored
|
|
60
|
+
*/
|
|
61
|
+
callbacks?: RefreshTokenCallbacks;
|
|
62
|
+
/**
|
|
63
|
+
* Optional: Callback when refresh fails (for logout handling)
|
|
64
|
+
* This will be called even if refreshTokenKey is provided
|
|
65
|
+
*/
|
|
66
|
+
onRefreshFailure?: () => void | Promise<void>;
|
|
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
|
+
}
|
|
11
97
|
export declare class AuthClient {
|
|
12
98
|
private client;
|
|
13
99
|
private apiKey;
|
|
14
100
|
private apiKeyHeader;
|
|
15
101
|
private token;
|
|
16
102
|
private authType;
|
|
103
|
+
private refreshTokenCallbacks;
|
|
104
|
+
private jwtConfigPromise;
|
|
105
|
+
private refreshThresholdMinutes;
|
|
106
|
+
private automaticRefreshEnabled;
|
|
107
|
+
private lastRefreshAttempt;
|
|
108
|
+
private refreshPromise;
|
|
109
|
+
private sessionExpirationCallbacks;
|
|
110
|
+
private sessionManagementConfig;
|
|
111
|
+
private sessionManagementConfigPromise;
|
|
112
|
+
private sessionExpirationCheckInterval;
|
|
113
|
+
private sessionExpirationCheckIntervalSeconds;
|
|
114
|
+
private lastWarningTime;
|
|
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;
|
|
17
127
|
readonly auth: AuthAPI;
|
|
18
128
|
readonly health: HealthAPI;
|
|
19
129
|
readonly systemConfig: SystemConfigAPI;
|
|
20
130
|
readonly files: FilesAPI;
|
|
21
131
|
readonly eventLog: EventLogApi;
|
|
132
|
+
readonly license: LicenseAPI;
|
|
22
133
|
readonly line: LineAPI;
|
|
23
134
|
oauth?: OAuthAPI;
|
|
24
135
|
constructor(config: AuthSdkConfig);
|
|
@@ -104,5 +215,171 @@ export declare class AuthClient {
|
|
|
104
215
|
* Get axios instance for advanced usage
|
|
105
216
|
*/
|
|
106
217
|
getAxiosInstance(): AxiosInstance;
|
|
218
|
+
/**
|
|
219
|
+
* Enable automatic token refresh
|
|
220
|
+
* Call this after user is authenticated to enable automatic refresh
|
|
221
|
+
*
|
|
222
|
+
* @param options - Options for automatic refresh
|
|
223
|
+
*
|
|
224
|
+
* @example
|
|
225
|
+
* ```typescript
|
|
226
|
+
* // Simple: SDK manages localStorage automatically
|
|
227
|
+
* await authClient.enableAutomaticRefresh({
|
|
228
|
+
* refreshTokenKey: 'refresh_token',
|
|
229
|
+
* onRefreshFailure: () => window.location.href = '/login'
|
|
230
|
+
* });
|
|
231
|
+
*
|
|
232
|
+
* // Advanced: Custom callbacks
|
|
233
|
+
* await authClient.enableAutomaticRefresh({
|
|
234
|
+
* callbacks: {
|
|
235
|
+
* getRefreshToken: () => customStorage.get('refresh_token'),
|
|
236
|
+
* setRefreshToken: (token) => customStorage.set('refresh_token', token),
|
|
237
|
+
* clearRefreshToken: () => customStorage.remove('refresh_token'),
|
|
238
|
+
* onRefreshFailure: () => window.location.href = '/login'
|
|
239
|
+
* }
|
|
240
|
+
* });
|
|
241
|
+
* ```
|
|
242
|
+
*/
|
|
243
|
+
enableAutomaticRefresh(options: AutomaticRefreshOptions): Promise<void>;
|
|
244
|
+
/**
|
|
245
|
+
* Disable automatic token refresh
|
|
246
|
+
*/
|
|
247
|
+
disableAutomaticRefresh(): void;
|
|
248
|
+
/**
|
|
249
|
+
* Load JWT config from API
|
|
250
|
+
*/
|
|
251
|
+
private loadJwtConfig;
|
|
252
|
+
/**
|
|
253
|
+
* Perform JWT config load
|
|
254
|
+
*/
|
|
255
|
+
private performJwtConfigLoad;
|
|
256
|
+
/**
|
|
257
|
+
* Perform token refresh
|
|
258
|
+
*/
|
|
259
|
+
private performRefresh;
|
|
260
|
+
/**
|
|
261
|
+
* Execute refresh token request
|
|
262
|
+
*/
|
|
263
|
+
private doRefresh;
|
|
264
|
+
/**
|
|
265
|
+
* Reload JWT config (for when config changes)
|
|
266
|
+
*/
|
|
267
|
+
reloadJwtConfig(): Promise<void>;
|
|
268
|
+
/**
|
|
269
|
+
* Enable session expiration monitoring
|
|
270
|
+
* จะตรวจสอบ session expiration ตาม config จาก settings/sessions และเรียก callback เมื่อใกล้หมดอายุ
|
|
271
|
+
*
|
|
272
|
+
* @param options - Options for session expiration monitoring
|
|
273
|
+
*
|
|
274
|
+
* @example
|
|
275
|
+
* ```typescript
|
|
276
|
+
* await authClient.enableSessionExpirationMonitoring({
|
|
277
|
+
* callbacks: {
|
|
278
|
+
* onSessionExpiring: (remainingMinutes, expirationType) => {
|
|
279
|
+
* console.log(`Session will expire in ${remainingMinutes} minutes (${expirationType})`);
|
|
280
|
+
* // แสดง notification หรือ dialog
|
|
281
|
+
* },
|
|
282
|
+
* onSessionExpired: () => {
|
|
283
|
+
* console.log('Session expired');
|
|
284
|
+
* // Redirect to login
|
|
285
|
+
* }
|
|
286
|
+
* },
|
|
287
|
+
* checkIntervalSeconds: 30 // ตรวจสอบทุก 30 วินาที
|
|
288
|
+
* });
|
|
289
|
+
* ```
|
|
290
|
+
*/
|
|
291
|
+
enableSessionExpirationMonitoring(options: SessionExpirationOptions): Promise<void>;
|
|
292
|
+
/**
|
|
293
|
+
* Disable session expiration monitoring
|
|
294
|
+
*/
|
|
295
|
+
disableSessionExpirationMonitoring(): void;
|
|
296
|
+
/**
|
|
297
|
+
* Load session management config from API
|
|
298
|
+
*/
|
|
299
|
+
private loadSessionManagementConfig;
|
|
300
|
+
/**
|
|
301
|
+
* Perform session management config load
|
|
302
|
+
*/
|
|
303
|
+
private performSessionManagementConfigLoad;
|
|
304
|
+
/**
|
|
305
|
+
* Start session expiration monitoring interval
|
|
306
|
+
*/
|
|
307
|
+
private startSessionExpirationMonitoring;
|
|
308
|
+
/**
|
|
309
|
+
* Stop session expiration monitoring interval
|
|
310
|
+
*/
|
|
311
|
+
private stopSessionExpirationMonitoring;
|
|
312
|
+
/**
|
|
313
|
+
* Check session expiration and trigger callbacks if needed
|
|
314
|
+
*
|
|
315
|
+
* Note: ใช้ token expiration time เป็นตัวประมาณ session expiration
|
|
316
|
+
* เพราะเราไม่มี session creation time หรือ last activity time ใน SDK
|
|
317
|
+
* Token expiration จะถูก refresh อัตโนมัติเมื่อมีการใช้งาน (extend_on_activity)
|
|
318
|
+
*/
|
|
319
|
+
private checkSessionExpiration;
|
|
320
|
+
/**
|
|
321
|
+
* Trigger expiring warning callback with cooldown
|
|
322
|
+
*/
|
|
323
|
+
private triggerExpiringWarning;
|
|
324
|
+
/**
|
|
325
|
+
* Reload session management config (for when config changes)
|
|
326
|
+
*/
|
|
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;
|
|
107
384
|
}
|
|
108
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":"AAAA;;;;;;GAMG;AAEH,OAAc,EAAE,aAAa,EAAE,kBAAkB,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"auth-client.d.ts","sourceRoot":"","sources":["../../src/client/auth-client.ts"],"names":[],"mappings":"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"}
|