@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.
- package/README.md +295 -0
- package/dist/browser.js +22739 -0
- package/dist/core/AiAgent.d.ts +1126 -0
- package/dist/core/AiAgent.d.ts.map +1 -0
- package/dist/core/AiAgent.js +2037 -0
- package/dist/core/AiAgent.js.map +1 -0
- package/dist/core/api/ApiHelper.d.ts +433 -0
- package/dist/core/api/ApiHelper.d.ts.map +1 -0
- package/dist/core/api/ApiHelper.js +689 -0
- package/dist/core/api/ApiHelper.js.map +1 -0
- package/dist/core/api/CacheAdapter.d.ts +295 -0
- package/dist/core/api/CacheAdapter.d.ts.map +1 -0
- package/dist/core/api/CacheAdapter.js +298 -0
- package/dist/core/api/CacheAdapter.js.map +1 -0
- package/dist/core/auth/AnonymousAuthStrategy.d.ts +87 -0
- package/dist/core/auth/AnonymousAuthStrategy.d.ts.map +1 -0
- package/dist/core/auth/AnonymousAuthStrategy.js +257 -0
- package/dist/core/auth/AnonymousAuthStrategy.js.map +1 -0
- package/dist/core/auth/AuthProvider.d.ts +13 -0
- package/dist/core/auth/AuthProvider.d.ts.map +1 -0
- package/dist/core/auth/AuthProvider.js +2 -0
- package/dist/core/auth/AuthProvider.js.map +1 -0
- package/dist/core/auth/AuthStrategy.d.ts +74 -0
- package/dist/core/auth/AuthStrategy.d.ts.map +1 -0
- package/dist/core/auth/AuthStrategy.js +2 -0
- package/dist/core/auth/AuthStrategy.js.map +1 -0
- package/dist/core/auth/AuthenticationService.d.ts +226 -0
- package/dist/core/auth/AuthenticationService.d.ts.map +1 -0
- package/dist/core/auth/AuthenticationService.js +344 -0
- package/dist/core/auth/AuthenticationService.js.map +1 -0
- package/dist/core/auth/ClientCredentialsAuthStrategy.d.ts +62 -0
- package/dist/core/auth/ClientCredentialsAuthStrategy.d.ts.map +1 -0
- package/dist/core/auth/ClientCredentialsAuthStrategy.js +78 -0
- package/dist/core/auth/ClientCredentialsAuthStrategy.js.map +1 -0
- package/dist/core/auth/PKCEAuthStrategy.d.ts +136 -0
- package/dist/core/auth/PKCEAuthStrategy.d.ts.map +1 -0
- package/dist/core/auth/PKCEAuthStrategy.js +409 -0
- package/dist/core/auth/PKCEAuthStrategy.js.map +1 -0
- package/dist/core/auth/PreAuthStrategy.d.ts +101 -0
- package/dist/core/auth/PreAuthStrategy.d.ts.map +1 -0
- package/dist/core/auth/PreAuthStrategy.js +216 -0
- package/dist/core/auth/PreAuthStrategy.js.map +1 -0
- package/dist/core/auth/msal-browser.js +19683 -0
- package/dist/core/auth/msal-loader.d.ts +14 -0
- package/dist/core/auth/msal-loader.d.ts.map +1 -0
- package/dist/core/auth/msal-loader.js +43 -0
- package/dist/core/auth/msal-loader.js.map +1 -0
- package/dist/core/connection/Connection.d.ts +168 -0
- package/dist/core/connection/Connection.d.ts.map +1 -0
- package/dist/core/connection/Connection.js +290 -0
- package/dist/core/connection/Connection.js.map +1 -0
- package/dist/core/connection/ConnectionState.d.ts +11 -0
- package/dist/core/connection/ConnectionState.d.ts.map +1 -0
- package/dist/core/connection/ConnectionState.js +12 -0
- package/dist/core/connection/ConnectionState.js.map +1 -0
- package/dist/core/connection/Transport.d.ts +98 -0
- package/dist/core/connection/Transport.d.ts.map +1 -0
- package/dist/core/connection/Transport.js +27 -0
- package/dist/core/connection/Transport.js.map +1 -0
- package/dist/core/connection/WebSocketTransport.d.ts +65 -0
- package/dist/core/connection/WebSocketTransport.d.ts.map +1 -0
- package/dist/core/connection/WebSocketTransport.js +177 -0
- package/dist/core/connection/WebSocketTransport.js.map +1 -0
- package/dist/core/errors/SDKError.d.ts +27 -0
- package/dist/core/errors/SDKError.d.ts.map +1 -0
- package/dist/core/errors/SDKError.js +43 -0
- package/dist/core/errors/SDKError.js.map +1 -0
- package/dist/core/events/EventEmitter.d.ts +120 -0
- package/dist/core/events/EventEmitter.d.ts.map +1 -0
- package/dist/core/events/EventEmitter.js +183 -0
- package/dist/core/events/EventEmitter.js.map +1 -0
- package/dist/core/logging/LogLevel.d.ts +33 -0
- package/dist/core/logging/LogLevel.d.ts.map +1 -0
- package/dist/core/logging/LogLevel.js +40 -0
- package/dist/core/logging/LogLevel.js.map +1 -0
- package/dist/core/logging/Logger.d.ts +120 -0
- package/dist/core/logging/Logger.d.ts.map +1 -0
- package/dist/core/logging/Logger.js +204 -0
- package/dist/core/logging/Logger.js.map +1 -0
- package/dist/core/logging/globalLogger.d.ts +8 -0
- package/dist/core/logging/globalLogger.d.ts.map +1 -0
- package/dist/core/logging/globalLogger.js +12 -0
- package/dist/core/logging/globalLogger.js.map +1 -0
- package/dist/core/logging/types.d.ts +45 -0
- package/dist/core/logging/types.d.ts.map +1 -0
- package/dist/core/logging/types.js +2 -0
- package/dist/core/logging/types.js.map +1 -0
- package/dist/core/message/BaseMessageHandler.d.ts +208 -0
- package/dist/core/message/BaseMessageHandler.d.ts.map +1 -0
- package/dist/core/message/BaseMessageHandler.js +155 -0
- package/dist/core/message/BaseMessageHandler.js.map +1 -0
- package/dist/core/message/Message.d.ts +69 -0
- package/dist/core/message/Message.d.ts.map +1 -0
- package/dist/core/message/Message.js +131 -0
- package/dist/core/message/Message.js.map +1 -0
- package/dist/core/message/MessageProcessor.d.ts +51 -0
- package/dist/core/message/MessageProcessor.d.ts.map +1 -0
- package/dist/core/message/MessageProcessor.js +123 -0
- package/dist/core/message/MessageProcessor.js.map +1 -0
- package/dist/core/message/MessageTypes.d.ts +123 -0
- package/dist/core/message/MessageTypes.d.ts.map +1 -0
- package/dist/core/message/MessageTypes.js +106 -0
- package/dist/core/message/MessageTypes.js.map +1 -0
- package/dist/core/message/Transcript.d.ts +373 -0
- package/dist/core/message/Transcript.d.ts.map +1 -0
- package/dist/core/message/Transcript.js +355 -0
- package/dist/core/message/Transcript.js.map +1 -0
- package/dist/core/message/handlers/AgentMessageHandler.d.ts +26 -0
- package/dist/core/message/handlers/AgentMessageHandler.d.ts.map +1 -0
- package/dist/core/message/handlers/AgentMessageHandler.js +130 -0
- package/dist/core/message/handlers/AgentMessageHandler.js.map +1 -0
- package/dist/core/message/handlers/ChatHistoryHandler.d.ts +12 -0
- package/dist/core/message/handlers/ChatHistoryHandler.d.ts.map +1 -0
- package/dist/core/message/handlers/ChatHistoryHandler.js +49 -0
- package/dist/core/message/handlers/ChatHistoryHandler.js.map +1 -0
- package/dist/core/message/handlers/ErrorMessageHandler.d.ts +12 -0
- package/dist/core/message/handlers/ErrorMessageHandler.d.ts.map +1 -0
- package/dist/core/message/handlers/ErrorMessageHandler.js +49 -0
- package/dist/core/message/handlers/ErrorMessageHandler.js.map +1 -0
- package/dist/core/message/handlers/HeartbeatHandler.d.ts +12 -0
- package/dist/core/message/handlers/HeartbeatHandler.d.ts.map +1 -0
- package/dist/core/message/handlers/HeartbeatHandler.js +46 -0
- package/dist/core/message/handlers/HeartbeatHandler.js.map +1 -0
- package/dist/core/message/handlers/TokenRefreshHandler.d.ts +30 -0
- package/dist/core/message/handlers/TokenRefreshHandler.d.ts.map +1 -0
- package/dist/core/message/handlers/TokenRefreshHandler.js +84 -0
- package/dist/core/message/handlers/TokenRefreshHandler.js.map +1 -0
- package/dist/core/message/types.d.ts +107 -0
- package/dist/core/message/types.d.ts.map +1 -0
- package/dist/core/message/types.js +30 -0
- package/dist/core/message/types.js.map +1 -0
- package/dist/core/platform/HookContract.d.ts +112 -0
- package/dist/core/platform/HookContract.d.ts.map +1 -0
- package/dist/core/platform/HookContract.js +13 -0
- package/dist/core/platform/HookContract.js.map +1 -0
- package/dist/core/platform/PlatformComponentService.d.ts +40 -0
- package/dist/core/platform/PlatformComponentService.d.ts.map +1 -0
- package/dist/core/platform/PlatformComponentService.js +12 -0
- package/dist/core/platform/PlatformComponentService.js.map +1 -0
- package/dist/core/platform/PlatformScriptLoader.d.ts +41 -0
- package/dist/core/platform/PlatformScriptLoader.d.ts.map +1 -0
- package/dist/core/platform/PlatformScriptLoader.js +110 -0
- package/dist/core/platform/PlatformScriptLoader.js.map +1 -0
- package/dist/core/polyfills.d.ts +16 -0
- package/dist/core/polyfills.d.ts.map +1 -0
- package/dist/core/polyfills.js +168 -0
- package/dist/core/polyfills.js.map +1 -0
- package/dist/core/portal-initializer/PortalInitializer.d.ts +234 -0
- package/dist/core/portal-initializer/PortalInitializer.d.ts.map +1 -0
- package/dist/core/portal-initializer/PortalInitializer.js +636 -0
- package/dist/core/portal-initializer/PortalInitializer.js.map +1 -0
- package/dist/core/queue/MessageQueue.d.ts +277 -0
- package/dist/core/queue/MessageQueue.d.ts.map +1 -0
- package/dist/core/queue/MessageQueue.js +291 -0
- package/dist/core/queue/MessageQueue.js.map +1 -0
- package/dist/core/types/PortalTypes.d.ts +51 -0
- package/dist/core/types/PortalTypes.d.ts.map +1 -0
- package/dist/core/types/PortalTypes.js +8 -0
- package/dist/core/types/PortalTypes.js.map +1 -0
- package/dist/index.d.ts +91 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +82 -0
- package/dist/index.js.map +1 -0
- 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 @@
|
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"AuthStrategy.js","sourceRoot":"","sources":["../../../src/core/auth/AuthStrategy.ts"],"names":[],"mappings":""}
|