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.
Files changed (38) hide show
  1. package/README.md +102 -9
  2. package/dist/client/api/auth.api.d.ts +25 -1
  3. package/dist/client/api/auth.api.d.ts.map +1 -1
  4. package/dist/client/api/auth.api.js +30 -1
  5. package/dist/client/api/files.api.d.ts +0 -1
  6. package/dist/client/api/files.api.d.ts.map +1 -1
  7. package/dist/client/api/index.d.ts +2 -0
  8. package/dist/client/api/index.d.ts.map +1 -1
  9. package/dist/client/api/index.js +3 -1
  10. package/dist/client/api/license.api.d.ts +74 -0
  11. package/dist/client/api/license.api.d.ts.map +1 -0
  12. package/dist/client/api/license.api.js +50 -0
  13. package/dist/client/api/system-config.api.d.ts +11 -1
  14. package/dist/client/api/system-config.api.d.ts.map +1 -1
  15. package/dist/client/api/system-config.api.js +21 -0
  16. package/dist/client/auth-client.d.ts +278 -1
  17. package/dist/client/auth-client.d.ts.map +1 -1
  18. package/dist/client/auth-client.js +705 -10
  19. package/dist/client/index.d.ts +2 -0
  20. package/dist/client/index.d.ts.map +1 -1
  21. package/dist/client/index.js +15 -0
  22. package/dist/index.d.ts +2 -0
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +5 -0
  25. package/dist/types/auth.types.d.ts +9 -0
  26. package/dist/types/auth.types.d.ts.map +1 -1
  27. package/dist/types/index.d.ts +18 -0
  28. package/dist/types/index.d.ts.map +1 -1
  29. package/dist/types/system-config.types.d.ts +37 -0
  30. package/dist/types/system-config.types.d.ts.map +1 -1
  31. package/dist/utils/logger.d.ts +23 -0
  32. package/dist/utils/logger.d.ts.map +1 -0
  33. package/dist/utils/logger.js +49 -0
  34. package/dist/utils/token-utils.d.ts +60 -0
  35. package/dist/utils/token-utils.d.ts.map +1 -0
  36. package/dist/utils/token-utils.js +116 -0
  37. package/package.json +1 -2
  38. 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,EAAE,MAAM,OAAO,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEnH,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,QAAQ,CAAwC;IAGxD,SAAgB,IAAI,EAAE,OAAO,CAAC;IAC9B,SAAgB,MAAM,EAAE,SAAS,CAAC;IAClC,SAAgB,YAAY,EAAE,eAAe,CAAC;IAC9C,SAAgB,KAAK,EAAE,QAAQ,CAAC;IAChC,SAAgB,QAAQ,EAAE,WAAW,CAAC;IACtC,SAAgB,IAAI,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,QAAQ,CAAC;gBAEZ,MAAM,EAAE,aAAa;IA4DjC;;;;;;;;;;;OAWG;IACH,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAW1C;;OAEG;IACG,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAIvF;;OAEG;IACG,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAIpG;;OAEG;IACG,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAInG;;OAEG;IACG,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAIrG;;OAEG;IACG,MAAM,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAI1F;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B;;OAEG;IACH,eAAe,IAAI,MAAM;IAMzB;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,KAAK,GAAG,OAAO,GAAG,QAAgB,GAAG,IAAI;IAMvE;;OAEG;IACH,WAAW,IAAI,KAAK,GAAG,OAAO,GAAG,QAAQ;IAIzC;;;;OAIG;IACH,WAAW,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,IAAI;IAKnD;;OAEG;IACH,cAAc,IAAI,MAAM;IAOxB;;OAEG;IACH,UAAU,IAAI,IAAI;IAKlB;;OAEG;IACH,gBAAgB,IAAI,aAAa;CAGlC"}
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,EAA8B,MAAM,OAAO,CAAC;AAC5G,OAAO,EAAE,aAAa,EAA8C,MAAM,UAAU,CAAC;AACrF,OAAO,EACL,OAAO,EACP,SAAS,EACT,eAAe,EACf,QAAQ,EACR,WAAW,EACX,UAAU,EACV,QAAQ,EACR,WAAW,EACX,OAAO,EACR,MAAM,OAAO,CAAC;AAuBf,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,eAAe,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC9D;;OAEG;IACH,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzD;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,0BAA0B;IACzC;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,CAAC,gBAAgB,EAAE,MAAM,EAAE,cAAc,EAAE,YAAY,GAAG,UAAU,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClH;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,SAAS,EAAE,0BAA0B,CAAC;IACtC;;OAEG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,uBAAuB;IACtC;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,mBAAmB,CAAC,EAAE,CAAC,gBAAgB,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzE;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClD;AAED,MAAM,WAAW,0BAA0B;IACzC;;OAEG;IACH,SAAS,EAAE,mBAAmB,CAAC;IAC/B;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,WAAW,GAAG,SAAS,GAAG,YAAY,GAAG,QAAQ,CAAC,EAAE,CAAC;CAChE;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,QAAQ,CAAwC;IAGxD,OAAO,CAAC,qBAAqB,CAAsC;IACnE,OAAO,CAAC,gBAAgB,CAA8B;IACtD,OAAO,CAAC,uBAAuB,CAAuB;IACtD,OAAO,CAAC,uBAAuB,CAAwB;IACvD,OAAO,CAAC,kBAAkB,CAAa;IACvC,OAAO,CAAC,cAAc,CAAgC;IAGtD,OAAO,CAAC,0BAA0B,CAA2C;IAC7E,OAAO,CAAC,uBAAuB,CAAwC;IACvE,OAAO,CAAC,8BAA8B,CAA8B;IACpE,OAAO,CAAC,8BAA8B,CAA+B;IACrE,OAAO,CAAC,qCAAqC,CAAkD;IAC/F,OAAO,CAAC,eAAe,CAAa;IAGpC,OAAO,CAAC,mBAAmB,CAAoC;IAC/D,OAAO,CAAC,iBAAiB,CAA+B;IACxD,OAAO,CAAC,wBAAwB,CAA+B;IAC/D,OAAO,CAAC,gBAAgB,CAAa;IACrC,OAAO,CAAC,0BAA0B,CAAkB;IACpD,OAAO,CAAC,wBAAwB,CAAa;IAC7C,OAAO,CAAC,wBAAwB,CAAa;IAC7C,OAAO,CAAC,cAAc,CAA6D;IACnF,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,uBAAuB,CAA+B;IAC9D,OAAO,CAAC,kBAAkB,CAAwC;IAClE,OAAO,CAAC,gBAAgB,CAAsC;IAG9D,SAAgB,IAAI,EAAE,OAAO,CAAC;IAC9B,SAAgB,MAAM,EAAE,SAAS,CAAC;IAClC,SAAgB,YAAY,EAAE,eAAe,CAAC;IAC9C,SAAgB,KAAK,EAAE,QAAQ,CAAC;IAChC,SAAgB,QAAQ,EAAE,WAAW,CAAC;IACtC,SAAgB,OAAO,EAAE,UAAU,CAAC;IACpC,SAAgB,IAAI,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,QAAQ,CAAC;gBAEZ,MAAM,EAAE,aAAa;IAyJjC;;;;;;;;;;;OAWG;IACH,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAW1C;;OAEG;IACG,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAIvF;;OAEG;IACG,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAIpG;;OAEG;IACG,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAInG;;OAEG;IACG,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAIrG;;OAEG;IACG,MAAM,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAI1F;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B;;OAEG;IACH,eAAe,IAAI,MAAM;IAMzB;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,KAAK,GAAG,OAAO,GAAG,QAAgB,GAAG,IAAI;IAcvE;;OAEG;IACH,WAAW,IAAI,KAAK,GAAG,OAAO,GAAG,QAAQ;IAIzC;;;;OAIG;IACH,WAAW,CAAC,IAAI,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,IAAI;IAKnD;;OAEG;IACH,cAAc,IAAI,MAAM;IAOxB;;OAEG;IACH,UAAU,IAAI,IAAI;IAMlB;;OAEG;IACH,gBAAgB,IAAI,aAAa;IAIjC;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACG,sBAAsB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;IAgC7E;;OAEG;IACH,uBAAuB,IAAI,IAAI;IAO/B;;OAEG;YACW,aAAa;IAS3B;;OAEG;YACW,oBAAoB;IAgBlC;;OAEG;YACW,cAAc;IAmB5B;;OAEG;YACW,SAAS;IAiDvB;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAOtC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,iCAAiC,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;IAWzF;;OAEG;IACH,kCAAkC,IAAI,IAAI;IAO1C;;OAEG;YACW,2BAA2B;IASzC;;OAEG;YACW,kCAAkC;IAmBhD;;OAEG;IACH,OAAO,CAAC,gCAAgC;IAaxC;;OAEG;IACH,OAAO,CAAC,+BAA+B;IAOvC;;;;;;OAMG;IACH,OAAO,CAAC,sBAAsB;IAwE9B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAe9B;;OAEG;IACG,6BAA6B,IAAI,OAAO,CAAC,IAAI,CAAC;IAMpD;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACG,yBAAyB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC;IA0DnF;;OAEG;IACH,0BAA0B,IAAI,IAAI;IAyBlC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAkB1B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAuB9B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAc/B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAW/B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAmC5B;;OAEG;IACH,OAAO,CAAC,sBAAsB;CA0B/B"}