@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,87 @@
1
+ import { AuthStrategy, AuthStrategyInitializeOptions } from './AuthStrategy.js';
2
+ import { CacheStorageType } from '../api/CacheAdapter.js';
3
+ /**
4
+ * Cache configuration for AnonymousAuthStrategy
5
+ */
6
+ export interface AnonymousAuthCacheConfig {
7
+ /**
8
+ * Whether caching is enabled
9
+ * @default true
10
+ */
11
+ enabled?: boolean;
12
+ /**
13
+ * Storage type: 'local' (localStorage), 'session' (sessionStorage), or 'memory'
14
+ * @default 'session'
15
+ */
16
+ storageType?: CacheStorageType;
17
+ /**
18
+ * Prefix for cache keys
19
+ * @default 'egain_aiagent_auth_metadata_'
20
+ */
21
+ keyPrefix?: string;
22
+ /**
23
+ * Time-to-live in milliseconds
24
+ * @default 300000 (5 minutes)
25
+ */
26
+ ttl?: number;
27
+ }
28
+ /**
29
+ * Configuration for anonymous authentication strategy
30
+ */
31
+ export interface AnonymousAuthConfig {
32
+ /**
33
+ * Cache configuration for metadata
34
+ */
35
+ cache?: AnonymousAuthCacheConfig;
36
+ }
37
+ /**
38
+ * Anonymous authentication strategy
39
+ * No authentication required - user remains anonymous
40
+ */
41
+ export declare class AnonymousAuthStrategy implements AuthStrategy {
42
+ #private;
43
+ private readonly config?;
44
+ /**
45
+ * Buffer time in milliseconds to refresh token before it expires
46
+ * This prevents using a token that's about to expire
47
+ */
48
+ static readonly TOKEN_EXPIRY_BUFFER_MS: number;
49
+ constructor(config?: AnonymousAuthConfig | undefined);
50
+ /**
51
+ * Initialize the anonymous authentication strategy
52
+ */
53
+ initialize(options?: AuthStrategyInitializeOptions): Promise<void>;
54
+ /**
55
+ * Clears all cached metadata entries
56
+ */
57
+ clearMetadataCache(): void;
58
+ private getUserSpecificMetaData;
59
+ /**
60
+ * Authenticate the anonymous user
61
+ */
62
+ authenticate(): Promise<void>;
63
+ /**
64
+ * Check if the user is currently authenticated
65
+ */
66
+ isAuthenticated(): boolean;
67
+ /**
68
+ * Get authentication token for anonymous user
69
+ * Returns cached token if valid, otherwise fetches a new one
70
+ * Token is cached with TTL based on expires_in from the token response
71
+ */
72
+ getToken(): Promise<string | null>;
73
+ /**
74
+ * Clear the cached token
75
+ * Forces a new token to be fetched on next getToken() call
76
+ */
77
+ clearTokenCache(): void;
78
+ /**
79
+ * Cleanup resources
80
+ */
81
+ cleanup(): Promise<void>;
82
+ /**
83
+ * Get deployment information a given domain
84
+ */
85
+ getDeploymentInfo(domain: string): Promise<any>;
86
+ }
87
+ //# sourceMappingURL=AnonymousAuthStrategy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnonymousAuthStrategy.d.ts","sourceRoot":"","sources":["../../../src/core/auth/AnonymousAuthStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA8B,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAC5G,OAAO,EAEH,gBAAgB,EAEnB,MAAM,wBAAwB,CAAC;AAEhC;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACrC;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;OAGG;IACH,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAE/B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC;;OAEG;IACH,KAAK,CAAC,EAAE,wBAAwB,CAAC;CACpC;AAyBD;;;GAGG;AACH,qBAAa,qBAAsB,YAAW,YAAY;;IAoB1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IANpC;;;OAGG;IACH,MAAM,CAAC,QAAQ,CAAC,sBAAsB,SAAa;gBAEtB,MAAM,CAAC,iCAAqB;IAiBzD;;OAEG;IACG,UAAU,CAAC,OAAO,CAAC,EAAE,6BAA6B,GAAG,OAAO,CAAC,IAAI,CAAC;IAiDxE;;OAEG;IACH,kBAAkB,IAAI,IAAI;YAMZ,uBAAuB;IA4BrC;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAUnC;;OAEG;IACH,eAAe,IAAI,OAAO;IA8C1B;;;;OAIG;IACG,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAmExC;;;OAGG;IACH,eAAe,IAAI,IAAI;IAMvB;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAO9B;;OAEG;IACG,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;CASxD"}
@@ -0,0 +1,257 @@
1
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
2
+ if (kind === "m") throw new TypeError("Private method is not writable");
3
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
4
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
5
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
6
+ };
7
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
+ };
12
+ var _AnonymousAuthStrategy_instances, _a, _AnonymousAuthStrategy_isInitialized, _AnonymousAuthStrategy_isAuthenticated, _AnonymousAuthStrategy_postAuthentication, _AnonymousAuthStrategy_deploymentInfo, _AnonymousAuthStrategy_scopes, _AnonymousAuthStrategy_cacheEnabled, _AnonymousAuthStrategy_cacheAdapter, _AnonymousAuthStrategy_cacheKeyPrefix, _AnonymousAuthStrategy_cacheTtl, _AnonymousAuthStrategy_getFromCache, _AnonymousAuthStrategy_setInCache, _AnonymousAuthStrategy_getTokenCacheKey, _AnonymousAuthStrategy_getCachedToken, _AnonymousAuthStrategy_isTokenValid;
13
+ import { createCacheAdapter, } from '../api/CacheAdapter.js';
14
+ /**
15
+ * Default cache TTL (5 minutes)
16
+ */
17
+ const DEFAULT_CACHE_TTL = 5 * 60 * 1000;
18
+ /**
19
+ * Default cache key prefix for metadata
20
+ */
21
+ const DEFAULT_CACHE_KEY_PREFIX = 'egain_aiagent_auth_';
22
+ /**
23
+ * Cache key suffix for anonymous token (will be combined with the key prefix)
24
+ */
25
+ const ANONYMOUS_TOKEN_CACHE_KEY_SUFFIX = 'anonymous_token';
26
+ /**
27
+ * Anonymous authentication strategy
28
+ * No authentication required - user remains anonymous
29
+ */
30
+ export class AnonymousAuthStrategy {
31
+ constructor(config) {
32
+ _AnonymousAuthStrategy_instances.add(this);
33
+ this.config = config;
34
+ _AnonymousAuthStrategy_isInitialized.set(this, false);
35
+ _AnonymousAuthStrategy_isAuthenticated.set(this, false);
36
+ _AnonymousAuthStrategy_postAuthentication.set(this, void 0);
37
+ _AnonymousAuthStrategy_deploymentInfo.set(this, void 0);
38
+ _AnonymousAuthStrategy_scopes.set(this, void 0);
39
+ // Cache related properties
40
+ _AnonymousAuthStrategy_cacheEnabled.set(this, void 0);
41
+ _AnonymousAuthStrategy_cacheAdapter.set(this, void 0);
42
+ _AnonymousAuthStrategy_cacheKeyPrefix.set(this, void 0);
43
+ _AnonymousAuthStrategy_cacheTtl.set(this, void 0);
44
+ // Initialize cache settings
45
+ const cacheConfig = config?.cache || {};
46
+ __classPrivateFieldSet(this, _AnonymousAuthStrategy_cacheEnabled, cacheConfig.enabled !== false, "f");
47
+ __classPrivateFieldSet(this, _AnonymousAuthStrategy_cacheKeyPrefix, cacheConfig.keyPrefix || DEFAULT_CACHE_KEY_PREFIX, "f");
48
+ __classPrivateFieldSet(this, _AnonymousAuthStrategy_cacheTtl, cacheConfig.ttl || DEFAULT_CACHE_TTL, "f");
49
+ // Create cache adapter if caching is enabled
50
+ if (__classPrivateFieldGet(this, _AnonymousAuthStrategy_cacheEnabled, "f")) {
51
+ __classPrivateFieldSet(this, _AnonymousAuthStrategy_cacheAdapter, createCacheAdapter(cacheConfig.storageType || 'session'), "f");
52
+ }
53
+ else {
54
+ __classPrivateFieldSet(this, _AnonymousAuthStrategy_cacheAdapter, null, "f");
55
+ }
56
+ }
57
+ /**
58
+ * Initialize the anonymous authentication strategy
59
+ */
60
+ async initialize(options) {
61
+ __classPrivateFieldSet(this, _AnonymousAuthStrategy_postAuthentication, options?.postAuthentication, "f");
62
+ __classPrivateFieldSet(this, _AnonymousAuthStrategy_deploymentInfo, options?.deploymentInfo, "f");
63
+ __classPrivateFieldSet(this, _AnonymousAuthStrategy_isInitialized, true, "f");
64
+ __classPrivateFieldSet(this, _AnonymousAuthStrategy_scopes, options?.scopes || [], "f");
65
+ }
66
+ /**
67
+ * Clears all cached metadata entries
68
+ */
69
+ clearMetadataCache() {
70
+ if (__classPrivateFieldGet(this, _AnonymousAuthStrategy_cacheAdapter, "f")) {
71
+ __classPrivateFieldGet(this, _AnonymousAuthStrategy_cacheAdapter, "f").clear(__classPrivateFieldGet(this, _AnonymousAuthStrategy_cacheKeyPrefix, "f"));
72
+ }
73
+ }
74
+ async getUserSpecificMetaData(userType, metaData, isAuthenticated) {
75
+ let metaDataDetailURL;
76
+ if ((userType === "agent" && metaData.intClientId)
77
+ || (userType === "customer" && metaData.extClientId && isAuthenticated)) {
78
+ metaDataDetailURL = "https://" + metaData.apiDomain + "/core/authmgr/v3/metadata/tenant/" + metaData.tenantId;
79
+ }
80
+ else if (userType === "customer" && !isAuthenticated) {
81
+ metaDataDetailURL = "https://" + metaData.apiDomain + "/core/authmgr/v3/metadata/deployment";
82
+ }
83
+ if (metaDataDetailURL) {
84
+ // Check cache first
85
+ const cacheKey = `${__classPrivateFieldGet(this, _AnonymousAuthStrategy_cacheKeyPrefix, "f")}metadata:${userType}:${metaData.apiDomain}:${metaData.tenantId || 'deployment'}:${isAuthenticated}`;
86
+ const cached = __classPrivateFieldGet(this, _AnonymousAuthStrategy_instances, "m", _AnonymousAuthStrategy_getFromCache).call(this, cacheKey);
87
+ if (cached) {
88
+ return cached;
89
+ }
90
+ // Fetch from API
91
+ const metaDataDetailResponse = await fetch(metaDataDetailURL);
92
+ const result = await metaDataDetailResponse.json();
93
+ // Cache the result
94
+ __classPrivateFieldGet(this, _AnonymousAuthStrategy_instances, "m", _AnonymousAuthStrategy_setInCache).call(this, cacheKey, result);
95
+ return result;
96
+ }
97
+ }
98
+ /**
99
+ * Authenticate the anonymous user
100
+ */
101
+ async authenticate() {
102
+ // TODO: Implement authentication logic
103
+ __classPrivateFieldSet(this, _AnonymousAuthStrategy_isAuthenticated, true, "f");
104
+ const token = await this.getToken();
105
+ // Call postAuthentication callback after authentication completes
106
+ if (__classPrivateFieldGet(this, _AnonymousAuthStrategy_postAuthentication, "f")) {
107
+ await __classPrivateFieldGet(this, _AnonymousAuthStrategy_postAuthentication, "f").call(this, token);
108
+ }
109
+ }
110
+ /**
111
+ * Check if the user is currently authenticated
112
+ */
113
+ isAuthenticated() {
114
+ return __classPrivateFieldGet(this, _AnonymousAuthStrategy_isAuthenticated, "f");
115
+ }
116
+ /**
117
+ * Get authentication token for anonymous user
118
+ * Returns cached token if valid, otherwise fetches a new one
119
+ * Token is cached with TTL based on expires_in from the token response
120
+ */
121
+ async getToken() {
122
+ // Return cached token if still valid
123
+ const cachedToken = __classPrivateFieldGet(this, _AnonymousAuthStrategy_instances, "m", _AnonymousAuthStrategy_getCachedToken).call(this);
124
+ if (__classPrivateFieldGet(this, _AnonymousAuthStrategy_instances, "m", _AnonymousAuthStrategy_isTokenValid).call(this) && cachedToken) {
125
+ return cachedToken.accessToken;
126
+ }
127
+ const metaData = await this.getUserSpecificMetaData("customer", __classPrivateFieldGet(this, _AnonymousAuthStrategy_deploymentInfo, "f"), false);
128
+ if (metaData) {
129
+ const tenantId = __classPrivateFieldGet(this, _AnonymousAuthStrategy_deploymentInfo, "f")?.tenantId;
130
+ const anoymousTokenURL = metaData?.authenticationDetails?.oAuthAnonymousCustomer[0]?.accessTokenURL?.replace("<DOMAIN_NAME>", tenantId);
131
+ const scopePrefix = metaData?.authenticationDetails?.apiPermissionPrefix;
132
+ const scopesRequired = (__classPrivateFieldGet(this, _AnonymousAuthStrategy_scopes, "f") || []).map((scope) => scopePrefix + scope);
133
+ let body = {
134
+ client_id: "clientId",
135
+ client_secret: "clientSecret",
136
+ grant_type: "client_credentials",
137
+ scope: scopesRequired.join(" ")
138
+ };
139
+ const encodedBody = Object.keys(body)
140
+ .map((key) => {
141
+ return encodeURIComponent(key) + "=" + encodeURIComponent(body[key]);
142
+ })
143
+ .join("&");
144
+ const options = {
145
+ method: "POST",
146
+ headers: {
147
+ "content-type": "application/x-www-form-urlencoded",
148
+ Accept: "application/json",
149
+ },
150
+ body: encodedBody,
151
+ };
152
+ const response = await fetch(anoymousTokenURL, options);
153
+ const anonymousTokenObject = await response.json();
154
+ if (anonymousTokenObject?.access_token) {
155
+ // Cache the token with TTL from expires_in (in seconds)
156
+ // Falls back to default cache TTL if expires_in is not provided
157
+ const expiresInMs = anonymousTokenObject.expires_in
158
+ ? anonymousTokenObject.expires_in * 1000
159
+ : __classPrivateFieldGet(this, _AnonymousAuthStrategy_cacheTtl, "f");
160
+ const tokenEntry = {
161
+ accessToken: anonymousTokenObject.access_token,
162
+ expiresAt: Date.now() + expiresInMs,
163
+ };
164
+ // Store in cache adapter using the same prefix as metadata
165
+ if (__classPrivateFieldGet(this, _AnonymousAuthStrategy_cacheEnabled, "f") && __classPrivateFieldGet(this, _AnonymousAuthStrategy_cacheAdapter, "f")) {
166
+ __classPrivateFieldGet(this, _AnonymousAuthStrategy_cacheAdapter, "f").set(__classPrivateFieldGet(this, _AnonymousAuthStrategy_instances, "m", _AnonymousAuthStrategy_getTokenCacheKey).call(this), {
167
+ value: tokenEntry,
168
+ timestamp: Date.now(),
169
+ });
170
+ }
171
+ return anonymousTokenObject.access_token;
172
+ }
173
+ }
174
+ return null;
175
+ }
176
+ /**
177
+ * Clear the cached token
178
+ * Forces a new token to be fetched on next getToken() call
179
+ */
180
+ clearTokenCache() {
181
+ if (__classPrivateFieldGet(this, _AnonymousAuthStrategy_cacheAdapter, "f")) {
182
+ __classPrivateFieldGet(this, _AnonymousAuthStrategy_cacheAdapter, "f").delete(__classPrivateFieldGet(this, _AnonymousAuthStrategy_instances, "m", _AnonymousAuthStrategy_getTokenCacheKey).call(this));
183
+ }
184
+ }
185
+ /**
186
+ * Cleanup resources
187
+ */
188
+ async cleanup() {
189
+ // Clear the token cache
190
+ this.clearTokenCache();
191
+ // Clear metadata cache
192
+ this.clearMetadataCache();
193
+ }
194
+ /**
195
+ * Get deployment information a given domain
196
+ */
197
+ async getDeploymentInfo(domain) {
198
+ // TODO: Implement deployment information retrieval logic
199
+ return {
200
+ domainHint: domain,
201
+ apiDomain: domain,
202
+ nextRoute: domain,
203
+ metaData: domain,
204
+ };
205
+ }
206
+ }
207
+ _a = AnonymousAuthStrategy, _AnonymousAuthStrategy_isInitialized = new WeakMap(), _AnonymousAuthStrategy_isAuthenticated = new WeakMap(), _AnonymousAuthStrategy_postAuthentication = new WeakMap(), _AnonymousAuthStrategy_deploymentInfo = new WeakMap(), _AnonymousAuthStrategy_scopes = new WeakMap(), _AnonymousAuthStrategy_cacheEnabled = new WeakMap(), _AnonymousAuthStrategy_cacheAdapter = new WeakMap(), _AnonymousAuthStrategy_cacheKeyPrefix = new WeakMap(), _AnonymousAuthStrategy_cacheTtl = new WeakMap(), _AnonymousAuthStrategy_instances = new WeakSet(), _AnonymousAuthStrategy_getFromCache = function _AnonymousAuthStrategy_getFromCache(key) {
208
+ if (!__classPrivateFieldGet(this, _AnonymousAuthStrategy_cacheEnabled, "f") || !__classPrivateFieldGet(this, _AnonymousAuthStrategy_cacheAdapter, "f")) {
209
+ return null;
210
+ }
211
+ const entry = __classPrivateFieldGet(this, _AnonymousAuthStrategy_cacheAdapter, "f").get(key);
212
+ if (!entry) {
213
+ return null;
214
+ }
215
+ // Check if entry has expired
216
+ const now = Date.now();
217
+ if (now - entry.timestamp > __classPrivateFieldGet(this, _AnonymousAuthStrategy_cacheTtl, "f")) {
218
+ // Entry expired, remove it
219
+ __classPrivateFieldGet(this, _AnonymousAuthStrategy_cacheAdapter, "f").delete(key);
220
+ return null;
221
+ }
222
+ return entry.value;
223
+ }, _AnonymousAuthStrategy_setInCache = function _AnonymousAuthStrategy_setInCache(key, value) {
224
+ if (!__classPrivateFieldGet(this, _AnonymousAuthStrategy_cacheEnabled, "f") || !__classPrivateFieldGet(this, _AnonymousAuthStrategy_cacheAdapter, "f")) {
225
+ return;
226
+ }
227
+ __classPrivateFieldGet(this, _AnonymousAuthStrategy_cacheAdapter, "f").set(key, {
228
+ value,
229
+ timestamp: Date.now(),
230
+ });
231
+ }, _AnonymousAuthStrategy_getTokenCacheKey = function _AnonymousAuthStrategy_getTokenCacheKey() {
232
+ const tenantId = __classPrivateFieldGet(this, _AnonymousAuthStrategy_deploymentInfo, "f")?.tenantId || 'tenantId';
233
+ return `${__classPrivateFieldGet(this, _AnonymousAuthStrategy_cacheKeyPrefix, "f")}${tenantId}:${ANONYMOUS_TOKEN_CACHE_KEY_SUFFIX}`;
234
+ }, _AnonymousAuthStrategy_getCachedToken = function _AnonymousAuthStrategy_getCachedToken() {
235
+ if (!__classPrivateFieldGet(this, _AnonymousAuthStrategy_cacheEnabled, "f") || !__classPrivateFieldGet(this, _AnonymousAuthStrategy_cacheAdapter, "f")) {
236
+ return null;
237
+ }
238
+ const entry = __classPrivateFieldGet(this, _AnonymousAuthStrategy_cacheAdapter, "f").get(__classPrivateFieldGet(this, _AnonymousAuthStrategy_instances, "m", _AnonymousAuthStrategy_getTokenCacheKey).call(this));
239
+ if (!entry) {
240
+ return null;
241
+ }
242
+ return entry.value;
243
+ }, _AnonymousAuthStrategy_isTokenValid = function _AnonymousAuthStrategy_isTokenValid() {
244
+ const cachedToken = __classPrivateFieldGet(this, _AnonymousAuthStrategy_instances, "m", _AnonymousAuthStrategy_getCachedToken).call(this);
245
+ if (!cachedToken) {
246
+ return false;
247
+ }
248
+ const now = Date.now();
249
+ // Check if token will expire within the buffer time
250
+ return cachedToken.expiresAt - _a.TOKEN_EXPIRY_BUFFER_MS > now;
251
+ };
252
+ /**
253
+ * Buffer time in milliseconds to refresh token before it expires
254
+ * This prevents using a token that's about to expire
255
+ */
256
+ AnonymousAuthStrategy.TOKEN_EXPIRY_BUFFER_MS = 60 * 1000; // 1 minute
257
+ //# sourceMappingURL=AnonymousAuthStrategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AnonymousAuthStrategy.js","sourceRoot":"","sources":["../../../src/core/auth/AnonymousAuthStrategy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Authentication provider interface
3
+ * Implement this interface to provide custom authentication mechanisms
4
+ */
5
+ export interface AuthProvider {
6
+ /**
7
+ * Get an authentication token
8
+ * This method may be called multiple times, so implementations should
9
+ * handle token refresh if needed
10
+ */
11
+ getToken(): Promise<string | null>;
12
+ }
13
+ //# sourceMappingURL=AuthProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthProvider.d.ts","sourceRoot":"","sources":["../../../src/core/auth/AuthProvider.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,QAAQ,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CACpC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=AuthProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthProvider.js","sourceRoot":"","sources":["../../../src/core/auth/AuthProvider.ts"],"names":[],"mappings":""}
@@ -0,0 +1,74 @@
1
+ import { AuthProvider } from './AuthProvider.js';
2
+ /**
3
+ * Callback function called after authentication is complete
4
+ * This is called after authenticate() completes successfully
5
+ * @param result The authentication result (e.g., token, auth data) of any type
6
+ */
7
+ export type PostAuthenticationCallback = (result: any) => void | Promise<void>;
8
+ /**
9
+ * Options for initializing an authentication strategy
10
+ */
11
+ export interface AuthServiceInitializeOptions {
12
+ /**
13
+ * The scopes for the authentication strategy
14
+ */
15
+ scopes?: string[];
16
+ /**
17
+ * The deployment information for the authentication strategy
18
+ */
19
+ deploymentInfo?: any;
20
+ /**
21
+ * Callback to be called after authentication completes
22
+ */
23
+ postAuthentication?: PostAuthenticationCallback;
24
+ /**
25
+ * The user type for the authentication strategy
26
+ * Used to determine scopes - 'customer' adds core.customermgr.read scope
27
+ */
28
+ userType?: 'agent' | 'customer';
29
+ }
30
+ /**
31
+ * Options for initializing an authentication strategy
32
+ */
33
+ export interface AuthStrategyInitializeOptions {
34
+ /**
35
+ * The deployment information for the authentication strategy
36
+ */
37
+ deploymentInfo: any;
38
+ /**
39
+ * The scopes for the authentication strategy
40
+ */
41
+ scopes?: string[];
42
+ /**
43
+ * Callback to be called after authentication completes
44
+ */
45
+ postAuthentication?: PostAuthenticationCallback;
46
+ }
47
+ /**
48
+ * Base interface for authentication strategies
49
+ * All authentication strategies must implement this interface
50
+ */
51
+ export interface AuthStrategy extends AuthProvider {
52
+ /**
53
+ * Initialize the authentication strategy
54
+ * This method sets up the strategy but does not perform authentication
55
+ * Called when the strategy is set on the agent
56
+ * @param options Initialize options including postAuthentication callback
57
+ */
58
+ initialize(options?: AuthStrategyInitializeOptions): Promise<void>;
59
+ /**
60
+ * Authenticate the user
61
+ * This method performs the actual authentication flow
62
+ * The postAuthentication callback registered during initialize() will be called after authentication completes
63
+ */
64
+ authenticate(): Promise<void>;
65
+ /**
66
+ * Cleanup resources when the strategy is no longer needed
67
+ */
68
+ cleanup?(): Promise<void>;
69
+ /**
70
+ * Get the domain for authentication
71
+ */
72
+ getDomain?(): string;
73
+ }
74
+ //# sourceMappingURL=AuthStrategy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthStrategy.d.ts","sourceRoot":"","sources":["../../../src/core/auth/AuthStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD;;;;GAIG;AACH,MAAM,MAAM,0BAA0B,GAAG,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE/E;;GAEG;AACH,MAAM,WAAW,4BAA4B;IACzC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;OAEG;IACH,cAAc,CAAC,EAAE,GAAG,CAAC;IAErB;;OAEG;IACH,kBAAkB,CAAC,EAAE,0BAA0B,CAAC;IAEhD;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC1C;;OAEG;IACH,cAAc,EAAE,GAAG,CAAC;IACpB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB;;OAEG;IACH,kBAAkB,CAAC,EAAE,0BAA0B,CAAC;CACnD;AAED;;;GAGG;AACH,MAAM,WAAW,YAAa,SAAQ,YAAY;IAE9C;;;;;OAKG;IACH,UAAU,CAAC,OAAO,CAAC,EAAE,6BAA6B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnE;;;;OAIG;IACH,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9B;;OAEG;IACH,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1B;;OAEG;IACH,SAAS,CAAC,IAAI,MAAM,CAAC;CACxB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=AuthStrategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthStrategy.js","sourceRoot":"","sources":["../../../src/core/auth/AuthStrategy.ts"],"names":[],"mappings":""}