@egain/ai-agent-sdk 0.1.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 (164) hide show
  1. package/README.md +295 -0
  2. package/dist/browser.js +22739 -0
  3. package/dist/core/AiAgent.d.ts +1126 -0
  4. package/dist/core/AiAgent.d.ts.map +1 -0
  5. package/dist/core/AiAgent.js +2037 -0
  6. package/dist/core/AiAgent.js.map +1 -0
  7. package/dist/core/api/ApiHelper.d.ts +433 -0
  8. package/dist/core/api/ApiHelper.d.ts.map +1 -0
  9. package/dist/core/api/ApiHelper.js +689 -0
  10. package/dist/core/api/ApiHelper.js.map +1 -0
  11. package/dist/core/api/CacheAdapter.d.ts +295 -0
  12. package/dist/core/api/CacheAdapter.d.ts.map +1 -0
  13. package/dist/core/api/CacheAdapter.js +298 -0
  14. package/dist/core/api/CacheAdapter.js.map +1 -0
  15. package/dist/core/auth/AnonymousAuthStrategy.d.ts +87 -0
  16. package/dist/core/auth/AnonymousAuthStrategy.d.ts.map +1 -0
  17. package/dist/core/auth/AnonymousAuthStrategy.js +257 -0
  18. package/dist/core/auth/AnonymousAuthStrategy.js.map +1 -0
  19. package/dist/core/auth/AuthProvider.d.ts +13 -0
  20. package/dist/core/auth/AuthProvider.d.ts.map +1 -0
  21. package/dist/core/auth/AuthProvider.js +2 -0
  22. package/dist/core/auth/AuthProvider.js.map +1 -0
  23. package/dist/core/auth/AuthStrategy.d.ts +74 -0
  24. package/dist/core/auth/AuthStrategy.d.ts.map +1 -0
  25. package/dist/core/auth/AuthStrategy.js +2 -0
  26. package/dist/core/auth/AuthStrategy.js.map +1 -0
  27. package/dist/core/auth/AuthenticationService.d.ts +226 -0
  28. package/dist/core/auth/AuthenticationService.d.ts.map +1 -0
  29. package/dist/core/auth/AuthenticationService.js +344 -0
  30. package/dist/core/auth/AuthenticationService.js.map +1 -0
  31. package/dist/core/auth/ClientCredentialsAuthStrategy.d.ts +62 -0
  32. package/dist/core/auth/ClientCredentialsAuthStrategy.d.ts.map +1 -0
  33. package/dist/core/auth/ClientCredentialsAuthStrategy.js +78 -0
  34. package/dist/core/auth/ClientCredentialsAuthStrategy.js.map +1 -0
  35. package/dist/core/auth/PKCEAuthStrategy.d.ts +136 -0
  36. package/dist/core/auth/PKCEAuthStrategy.d.ts.map +1 -0
  37. package/dist/core/auth/PKCEAuthStrategy.js +409 -0
  38. package/dist/core/auth/PKCEAuthStrategy.js.map +1 -0
  39. package/dist/core/auth/PreAuthStrategy.d.ts +101 -0
  40. package/dist/core/auth/PreAuthStrategy.d.ts.map +1 -0
  41. package/dist/core/auth/PreAuthStrategy.js +216 -0
  42. package/dist/core/auth/PreAuthStrategy.js.map +1 -0
  43. package/dist/core/auth/msal-browser.js +19683 -0
  44. package/dist/core/auth/msal-loader.d.ts +14 -0
  45. package/dist/core/auth/msal-loader.d.ts.map +1 -0
  46. package/dist/core/auth/msal-loader.js +43 -0
  47. package/dist/core/auth/msal-loader.js.map +1 -0
  48. package/dist/core/connection/Connection.d.ts +168 -0
  49. package/dist/core/connection/Connection.d.ts.map +1 -0
  50. package/dist/core/connection/Connection.js +290 -0
  51. package/dist/core/connection/Connection.js.map +1 -0
  52. package/dist/core/connection/ConnectionState.d.ts +11 -0
  53. package/dist/core/connection/ConnectionState.d.ts.map +1 -0
  54. package/dist/core/connection/ConnectionState.js +12 -0
  55. package/dist/core/connection/ConnectionState.js.map +1 -0
  56. package/dist/core/connection/Transport.d.ts +98 -0
  57. package/dist/core/connection/Transport.d.ts.map +1 -0
  58. package/dist/core/connection/Transport.js +27 -0
  59. package/dist/core/connection/Transport.js.map +1 -0
  60. package/dist/core/connection/WebSocketTransport.d.ts +65 -0
  61. package/dist/core/connection/WebSocketTransport.d.ts.map +1 -0
  62. package/dist/core/connection/WebSocketTransport.js +177 -0
  63. package/dist/core/connection/WebSocketTransport.js.map +1 -0
  64. package/dist/core/errors/SDKError.d.ts +27 -0
  65. package/dist/core/errors/SDKError.d.ts.map +1 -0
  66. package/dist/core/errors/SDKError.js +43 -0
  67. package/dist/core/errors/SDKError.js.map +1 -0
  68. package/dist/core/events/EventEmitter.d.ts +120 -0
  69. package/dist/core/events/EventEmitter.d.ts.map +1 -0
  70. package/dist/core/events/EventEmitter.js +183 -0
  71. package/dist/core/events/EventEmitter.js.map +1 -0
  72. package/dist/core/logging/LogLevel.d.ts +33 -0
  73. package/dist/core/logging/LogLevel.d.ts.map +1 -0
  74. package/dist/core/logging/LogLevel.js +40 -0
  75. package/dist/core/logging/LogLevel.js.map +1 -0
  76. package/dist/core/logging/Logger.d.ts +120 -0
  77. package/dist/core/logging/Logger.d.ts.map +1 -0
  78. package/dist/core/logging/Logger.js +204 -0
  79. package/dist/core/logging/Logger.js.map +1 -0
  80. package/dist/core/logging/globalLogger.d.ts +8 -0
  81. package/dist/core/logging/globalLogger.d.ts.map +1 -0
  82. package/dist/core/logging/globalLogger.js +12 -0
  83. package/dist/core/logging/globalLogger.js.map +1 -0
  84. package/dist/core/logging/types.d.ts +45 -0
  85. package/dist/core/logging/types.d.ts.map +1 -0
  86. package/dist/core/logging/types.js +2 -0
  87. package/dist/core/logging/types.js.map +1 -0
  88. package/dist/core/message/BaseMessageHandler.d.ts +208 -0
  89. package/dist/core/message/BaseMessageHandler.d.ts.map +1 -0
  90. package/dist/core/message/BaseMessageHandler.js +155 -0
  91. package/dist/core/message/BaseMessageHandler.js.map +1 -0
  92. package/dist/core/message/Message.d.ts +69 -0
  93. package/dist/core/message/Message.d.ts.map +1 -0
  94. package/dist/core/message/Message.js +131 -0
  95. package/dist/core/message/Message.js.map +1 -0
  96. package/dist/core/message/MessageProcessor.d.ts +51 -0
  97. package/dist/core/message/MessageProcessor.d.ts.map +1 -0
  98. package/dist/core/message/MessageProcessor.js +123 -0
  99. package/dist/core/message/MessageProcessor.js.map +1 -0
  100. package/dist/core/message/MessageTypes.d.ts +123 -0
  101. package/dist/core/message/MessageTypes.d.ts.map +1 -0
  102. package/dist/core/message/MessageTypes.js +106 -0
  103. package/dist/core/message/MessageTypes.js.map +1 -0
  104. package/dist/core/message/Transcript.d.ts +373 -0
  105. package/dist/core/message/Transcript.d.ts.map +1 -0
  106. package/dist/core/message/Transcript.js +355 -0
  107. package/dist/core/message/Transcript.js.map +1 -0
  108. package/dist/core/message/handlers/AgentMessageHandler.d.ts +26 -0
  109. package/dist/core/message/handlers/AgentMessageHandler.d.ts.map +1 -0
  110. package/dist/core/message/handlers/AgentMessageHandler.js +130 -0
  111. package/dist/core/message/handlers/AgentMessageHandler.js.map +1 -0
  112. package/dist/core/message/handlers/ChatHistoryHandler.d.ts +12 -0
  113. package/dist/core/message/handlers/ChatHistoryHandler.d.ts.map +1 -0
  114. package/dist/core/message/handlers/ChatHistoryHandler.js +49 -0
  115. package/dist/core/message/handlers/ChatHistoryHandler.js.map +1 -0
  116. package/dist/core/message/handlers/ErrorMessageHandler.d.ts +12 -0
  117. package/dist/core/message/handlers/ErrorMessageHandler.d.ts.map +1 -0
  118. package/dist/core/message/handlers/ErrorMessageHandler.js +49 -0
  119. package/dist/core/message/handlers/ErrorMessageHandler.js.map +1 -0
  120. package/dist/core/message/handlers/HeartbeatHandler.d.ts +12 -0
  121. package/dist/core/message/handlers/HeartbeatHandler.d.ts.map +1 -0
  122. package/dist/core/message/handlers/HeartbeatHandler.js +46 -0
  123. package/dist/core/message/handlers/HeartbeatHandler.js.map +1 -0
  124. package/dist/core/message/handlers/TokenRefreshHandler.d.ts +30 -0
  125. package/dist/core/message/handlers/TokenRefreshHandler.d.ts.map +1 -0
  126. package/dist/core/message/handlers/TokenRefreshHandler.js +84 -0
  127. package/dist/core/message/handlers/TokenRefreshHandler.js.map +1 -0
  128. package/dist/core/message/types.d.ts +107 -0
  129. package/dist/core/message/types.d.ts.map +1 -0
  130. package/dist/core/message/types.js +30 -0
  131. package/dist/core/message/types.js.map +1 -0
  132. package/dist/core/platform/HookContract.d.ts +112 -0
  133. package/dist/core/platform/HookContract.d.ts.map +1 -0
  134. package/dist/core/platform/HookContract.js +13 -0
  135. package/dist/core/platform/HookContract.js.map +1 -0
  136. package/dist/core/platform/PlatformComponentService.d.ts +40 -0
  137. package/dist/core/platform/PlatformComponentService.d.ts.map +1 -0
  138. package/dist/core/platform/PlatformComponentService.js +12 -0
  139. package/dist/core/platform/PlatformComponentService.js.map +1 -0
  140. package/dist/core/platform/PlatformScriptLoader.d.ts +41 -0
  141. package/dist/core/platform/PlatformScriptLoader.d.ts.map +1 -0
  142. package/dist/core/platform/PlatformScriptLoader.js +110 -0
  143. package/dist/core/platform/PlatformScriptLoader.js.map +1 -0
  144. package/dist/core/polyfills.d.ts +16 -0
  145. package/dist/core/polyfills.d.ts.map +1 -0
  146. package/dist/core/polyfills.js +168 -0
  147. package/dist/core/polyfills.js.map +1 -0
  148. package/dist/core/portal-initializer/PortalInitializer.d.ts +234 -0
  149. package/dist/core/portal-initializer/PortalInitializer.d.ts.map +1 -0
  150. package/dist/core/portal-initializer/PortalInitializer.js +636 -0
  151. package/dist/core/portal-initializer/PortalInitializer.js.map +1 -0
  152. package/dist/core/queue/MessageQueue.d.ts +277 -0
  153. package/dist/core/queue/MessageQueue.d.ts.map +1 -0
  154. package/dist/core/queue/MessageQueue.js +291 -0
  155. package/dist/core/queue/MessageQueue.js.map +1 -0
  156. package/dist/core/types/PortalTypes.d.ts +51 -0
  157. package/dist/core/types/PortalTypes.d.ts.map +1 -0
  158. package/dist/core/types/PortalTypes.js +8 -0
  159. package/dist/core/types/PortalTypes.js.map +1 -0
  160. package/dist/index.d.ts +91 -0
  161. package/dist/index.d.ts.map +1 -0
  162. package/dist/index.js +82 -0
  163. package/dist/index.js.map +1 -0
  164. package/package.json +84 -0
@@ -0,0 +1,101 @@
1
+ import { AuthStrategy, AuthStrategyInitializeOptions } from './AuthStrategy.js';
2
+ /**
3
+ * Callback type for token expiring notification
4
+ */
5
+ export type TokenExpiringCallback = (expiresAt: number) => void;
6
+ /**
7
+ * Configuration for pre-auth authentication strategy
8
+ */
9
+ export interface PreAuthConfig {
10
+ /**
11
+ * Access token to use directly
12
+ */
13
+ accessToken: string;
14
+ /**
15
+ * Optional token refresh function
16
+ * If provided, will be called when token needs to be refreshed
17
+ */
18
+ refreshTokenFn?: () => Promise<string>;
19
+ /**
20
+ * Buffer time in milliseconds before token expiry to trigger the expiring event
21
+ * @default 180000 (3 minutes)
22
+ */
23
+ expiryBufferMs?: number;
24
+ }
25
+ /**
26
+ * Pre-auth authentication strategy
27
+ * Uses a pre-obtained access token without completing authentication flow
28
+ */
29
+ export declare class PreAuthStrategy implements AuthStrategy {
30
+ private readonly config;
31
+ private currentToken;
32
+ private postAuthentication?;
33
+ private isAuthenticatedFlag;
34
+ private deploymentInfo?;
35
+ private expiryTimer?;
36
+ private tokenExpiringCallback?;
37
+ private expiryBufferMs;
38
+ constructor(config: PreAuthConfig);
39
+ /**
40
+ * Decode a JWT token and extract the payload
41
+ * Does not verify the signature - only extracts the claims
42
+ * @param token - The JWT token string
43
+ * @returns The decoded payload or null if decoding fails
44
+ */
45
+ private decodeJwt;
46
+ /**
47
+ * Get the expiration time from the token
48
+ * @param token - The JWT token string
49
+ * @returns Expiration timestamp in milliseconds, or null if not available
50
+ */
51
+ private getTokenExpiry;
52
+ /**
53
+ * Schedule the token expiring event
54
+ * Fires at (expiry - buffer) time
55
+ * @param token - The JWT token to schedule expiry for
56
+ */
57
+ private scheduleExpiryEvent;
58
+ /**
59
+ * Cancel the expiry timer
60
+ */
61
+ private cancelExpiryTimer;
62
+ /**
63
+ * Set the callback to be called when token is about to expire
64
+ * @param callback - Function to call when token is expiring
65
+ */
66
+ setTokenExpiringCallback(callback: TokenExpiringCallback): void;
67
+ /**
68
+ * Initialize the pre-auth authentication strategy
69
+ * Ensures the token is available and ready to use
70
+ */
71
+ initialize(options?: AuthStrategyInitializeOptions): Promise<void>;
72
+ /**
73
+ * Authenticate using pre-auth token
74
+ */
75
+ authenticate(): Promise<void>;
76
+ /**
77
+ * Check if the user is currently authenticated
78
+ */
79
+ isAuthenticated(): boolean;
80
+ /**
81
+ * Get the access token
82
+ * If refresh function is provided and token is expired, attempts to refresh
83
+ */
84
+ getToken(): Promise<string>;
85
+ /**
86
+ * Update the access token
87
+ * Cancels existing expiry timer and schedules new one based on new token
88
+ * If authenticated, calls postAuthentication callback with the new token
89
+ * @param token - The new access token
90
+ */
91
+ updateToken(token: string): Promise<void>;
92
+ /**
93
+ * Refresh the token using the provided refresh function
94
+ */
95
+ refreshToken(): Promise<string>;
96
+ /**
97
+ * Cleanup resources
98
+ */
99
+ cleanup(): Promise<void>;
100
+ }
101
+ //# sourceMappingURL=PreAuthStrategy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PreAuthStrategy.d.ts","sourceRoot":"","sources":["../../../src/core/auth/PreAuthStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA8B,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAE5G;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;AAOhE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAEvC;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAWD;;;GAGG;AACH,qBAAa,eAAgB,YAAW,YAAY;IAStC,OAAO,CAAC,QAAQ,CAAC,MAAM;IARnC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,kBAAkB,CAAC,CAA6B;IACxD,OAAO,CAAC,mBAAmB,CAAkB;IAC7C,OAAO,CAAC,cAAc,CAAC,CAAM;IAC7B,OAAO,CAAC,WAAW,CAAC,CAAgC;IACpD,OAAO,CAAC,qBAAqB,CAAC,CAAwB;IACtD,OAAO,CAAC,cAAc,CAAS;gBAEF,MAAM,EAAE,aAAa;IAKlD;;;;;OAKG;IACH,OAAO,CAAC,SAAS;IAgCjB;;;;OAIG;IACH,OAAO,CAAC,cAAc;IAStB;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IA6B3B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;;OAGG;IACH,wBAAwB,CAAC,QAAQ,EAAE,qBAAqB,GAAG,IAAI;IAQ/D;;;OAGG;IACG,UAAU,CAAC,OAAO,CAAC,EAAE,6BAA6B,GAAG,OAAO,CAAC,IAAI,CAAC;IAoCxE;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAkBnC;;OAEG;IACH,eAAe,IAAI,OAAO;IAI1B;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;IAIjC;;;;;OAKG;IACG,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW/C;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAQrC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B"}
@@ -0,0 +1,216 @@
1
+ /**
2
+ * Buffer time before token expiry to trigger the expiring event (3 minutes in ms)
3
+ */
4
+ const TOKEN_EXPIRY_BUFFER_MS = 3 * 60 * 1000;
5
+ /**
6
+ * Pre-auth authentication strategy
7
+ * Uses a pre-obtained access token without completing authentication flow
8
+ */
9
+ export class PreAuthStrategy {
10
+ constructor(config) {
11
+ this.config = config;
12
+ this.isAuthenticatedFlag = false;
13
+ this.currentToken = config.accessToken;
14
+ this.expiryBufferMs = config.expiryBufferMs ?? TOKEN_EXPIRY_BUFFER_MS;
15
+ }
16
+ /**
17
+ * Decode a JWT token and extract the payload
18
+ * Does not verify the signature - only extracts the claims
19
+ * @param token - The JWT token string
20
+ * @returns The decoded payload or null if decoding fails
21
+ */
22
+ decodeJwt(token) {
23
+ try {
24
+ // JWT format: header.payload.signature
25
+ const parts = token.split('.');
26
+ if (parts.length !== 3) {
27
+ return null;
28
+ }
29
+ // Decode the payload (second part)
30
+ const payload = parts[1];
31
+ // Handle URL-safe base64 encoding
32
+ const base64 = payload.replace(/-/g, '+').replace(/_/g, '/');
33
+ // Decode base64 - works in both browser and Node.js
34
+ let decoded;
35
+ if (typeof atob === 'function') {
36
+ // Browser environment
37
+ decoded = atob(base64);
38
+ }
39
+ else if (typeof Buffer !== 'undefined') {
40
+ // Node.js environment
41
+ decoded = Buffer.from(base64, 'base64').toString('utf-8');
42
+ }
43
+ else {
44
+ return null;
45
+ }
46
+ return JSON.parse(decoded);
47
+ }
48
+ catch {
49
+ // Token is not a valid JWT or decoding failed
50
+ return null;
51
+ }
52
+ }
53
+ /**
54
+ * Get the expiration time from the token
55
+ * @param token - The JWT token string
56
+ * @returns Expiration timestamp in milliseconds, or null if not available
57
+ */
58
+ getTokenExpiry(token) {
59
+ const payload = this.decodeJwt(token);
60
+ if (payload?.exp) {
61
+ // JWT exp is in seconds, convert to milliseconds
62
+ return payload.exp * 1000;
63
+ }
64
+ return null;
65
+ }
66
+ /**
67
+ * Schedule the token expiring event
68
+ * Fires at (expiry - buffer) time
69
+ * @param token - The JWT token to schedule expiry for
70
+ */
71
+ scheduleExpiryEvent(token) {
72
+ // Cancel any existing timer
73
+ this.cancelExpiryTimer();
74
+ const expiresAt = this.getTokenExpiry(token);
75
+ if (!expiresAt) {
76
+ // Token doesn't have expiry info, can't schedule
77
+ return;
78
+ }
79
+ const now = Date.now();
80
+ const timeUntilExpiry = expiresAt - now - this.expiryBufferMs;
81
+ if (timeUntilExpiry <= 0) {
82
+ // Token is already expired or within buffer, fire immediately
83
+ if (this.tokenExpiringCallback) {
84
+ this.tokenExpiringCallback(expiresAt);
85
+ }
86
+ return;
87
+ }
88
+ // Schedule the expiry event
89
+ this.expiryTimer = setTimeout(() => {
90
+ if (this.tokenExpiringCallback) {
91
+ this.tokenExpiringCallback(expiresAt);
92
+ }
93
+ }, timeUntilExpiry);
94
+ }
95
+ /**
96
+ * Cancel the expiry timer
97
+ */
98
+ cancelExpiryTimer() {
99
+ if (this.expiryTimer) {
100
+ clearTimeout(this.expiryTimer);
101
+ this.expiryTimer = undefined;
102
+ }
103
+ }
104
+ /**
105
+ * Set the callback to be called when token is about to expire
106
+ * @param callback - Function to call when token is expiring
107
+ */
108
+ setTokenExpiringCallback(callback) {
109
+ this.tokenExpiringCallback = callback;
110
+ // If already authenticated, schedule the expiry event with current token
111
+ if (this.isAuthenticatedFlag && this.currentToken) {
112
+ this.scheduleExpiryEvent(this.currentToken);
113
+ }
114
+ }
115
+ /**
116
+ * Initialize the pre-auth authentication strategy
117
+ * Ensures the token is available and ready to use
118
+ */
119
+ async initialize(options) {
120
+ console.debug('[PreAuthStrategy] initialize() called', {
121
+ hasPostAuthentication: !!options?.postAuthentication,
122
+ hasDeploymentInfo: !!options?.deploymentInfo
123
+ });
124
+ // Update postAuthentication callback even if already initialized
125
+ // This allows setting the callback after early initialization (e.g., for fetching agent details)
126
+ if (options?.postAuthentication) {
127
+ this.postAuthentication = options.postAuthentication;
128
+ console.debug('[PreAuthStrategy] postAuthentication callback SET');
129
+ }
130
+ if (options?.deploymentInfo) {
131
+ this.deploymentInfo = options.deploymentInfo;
132
+ }
133
+ // Ensure token is available and valid
134
+ // The token is set in constructor, but we verify it's still available here
135
+ if (!this.currentToken) {
136
+ throw new Error('PreAuthStrategy: Access token is required but not available');
137
+ }
138
+ // If we have a token and it's a JWT, we can validate its structure (but not signature)
139
+ // This ensures the token is properly formatted
140
+ const token = this.currentToken;
141
+ if (token.split('.').length === 3) {
142
+ // It's a JWT - validate basic structure
143
+ try {
144
+ this.decodeJwt(token);
145
+ }
146
+ catch (error) {
147
+ // Token structure is invalid, but we'll still allow it to proceed
148
+ // The actual validation happens when the token is used
149
+ }
150
+ }
151
+ }
152
+ /**
153
+ * Authenticate using pre-auth token
154
+ */
155
+ async authenticate() {
156
+ console.debug('[PreAuthStrategy] authenticate() called, postAuthentication callback:', this.postAuthentication ? 'SET' : 'NOT SET');
157
+ const token = await this.getToken();
158
+ this.isAuthenticatedFlag = true;
159
+ // Schedule expiry event for the current token
160
+ this.scheduleExpiryEvent(token);
161
+ // Call postAuthentication callback after authentication completes
162
+ if (this.postAuthentication) {
163
+ console.debug('[PreAuthStrategy] Calling postAuthentication callback');
164
+ await this.postAuthentication(token);
165
+ console.debug('[PreAuthStrategy] postAuthentication callback completed');
166
+ }
167
+ else {
168
+ console.warn('[PreAuthStrategy] postAuthentication callback is not set - isInitialized may not be set to true');
169
+ }
170
+ }
171
+ /**
172
+ * Check if the user is currently authenticated
173
+ */
174
+ isAuthenticated() {
175
+ return this.isAuthenticatedFlag;
176
+ }
177
+ /**
178
+ * Get the access token
179
+ * If refresh function is provided and token is expired, attempts to refresh
180
+ */
181
+ async getToken() {
182
+ return this.currentToken;
183
+ }
184
+ /**
185
+ * Update the access token
186
+ * Cancels existing expiry timer and schedules new one based on new token
187
+ * If authenticated, calls postAuthentication callback with the new token
188
+ * @param token - The new access token
189
+ */
190
+ async updateToken(token) {
191
+ this.currentToken = token;
192
+ // Reschedule expiry event with new token
193
+ this.scheduleExpiryEvent(token);
194
+ // If authenticated, call postAuthentication callback with new token
195
+ if (this.isAuthenticatedFlag && this.postAuthentication) {
196
+ await this.postAuthentication(token);
197
+ }
198
+ }
199
+ /**
200
+ * Refresh the token using the provided refresh function
201
+ */
202
+ async refreshToken() {
203
+ if (this.config.refreshTokenFn) {
204
+ const newToken = await this.config.refreshTokenFn();
205
+ await this.updateToken(newToken);
206
+ }
207
+ return this.currentToken;
208
+ }
209
+ /**
210
+ * Cleanup resources
211
+ */
212
+ async cleanup() {
213
+ this.cancelExpiryTimer();
214
+ }
215
+ }
216
+ //# sourceMappingURL=PreAuthStrategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PreAuthStrategy.js","sourceRoot":"","sources":["../../../src/core/auth/PreAuthStrategy.ts"],"names":[],"mappings":"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"}