UNPKG

@embrace-io/web-sdk

Version:
1 lines 2.71 kB
{"version":3,"file":"SessionAPI.cjs","names":["NoOpUserSessionManager","ProxyUserSessionManager","createSafeProxy","diag"],"sources":["../../../../src/api-sessions/api/SessionAPI/SessionAPI.ts"],"sourcesContent":["import { diag } from '@opentelemetry/api';\nimport type { UserSessionManagerInternal } from '../../../managers/EmbraceUserSessionManager/types.ts';\nimport { createSafeProxy } from '../../../utils/index.ts';\nimport type { UserSessionManager } from '../../manager/index.ts';\nimport {\n NoOpUserSessionManager,\n ProxyUserSessionManager,\n} from '../../manager/index.ts';\n\n/**\n * Public interface for SessionAPI including SDK-internal methods.\n */\nexport interface SessionAPIInstance extends UserSessionManager {\n /** @internal SDK use only */\n setGlobalUserSessionManager(\n userSessionManager: UserSessionManagerInternal,\n ): void;\n /** @internal SDK use only */\n getUserSessionManager(): UserSessionManagerInternal;\n}\n\nconst NOOP_USER_SESSION_MANAGER = new NoOpUserSessionManager();\nconst INTERNAL_METHODS = new Set(['setDelegate', 'getDelegate']);\n\nexport class SessionAPI {\n private static _instance?: SessionAPIInstance;\n\n public static getInstance(): SessionAPIInstance {\n if (!SessionAPI._instance) {\n const proxyManager = new ProxyUserSessionManager();\n\n const safeManager = createSafeProxy(\n proxyManager,\n NOOP_USER_SESSION_MANAGER,\n diag.createComponentLogger({ namespace: 'SessionAPI' }),\n INTERNAL_METHODS,\n );\n\n // Combine safe-wrapped manager methods with SDK-internal methods\n SessionAPI._instance = Object.assign(safeManager, {\n setGlobalUserSessionManager(\n userSessionManager: UserSessionManagerInternal,\n ): void {\n proxyManager.setDelegate(userSessionManager);\n },\n getUserSessionManager(): UserSessionManagerInternal {\n return proxyManager;\n },\n }) as SessionAPIInstance;\n }\n\n return SessionAPI._instance;\n }\n\n /** @internal For testing only. Resets the global singleton between tests. */\n public static resetInstance(): void {\n SessionAPI._instance = undefined;\n }\n}\n"],"mappings":";;;;;;AAqBA,MAAM,4BAA4B,IAAIA,2EAAAA,uBAAuB;AAC7D,MAAM,mCAAmB,IAAI,IAAI,CAAC,eAAe,aAAa,CAAC;AAE/D,IAAa,aAAb,MAAa,WAAW;CACtB,OAAe;CAEf,OAAc,cAAkC;EAC9C,IAAI,CAAC,WAAW,WAAW;GACzB,MAAM,eAAe,IAAIC,6EAAAA,wBAAwB;GAEjD,MAAM,cAAcC,8CAAAA,gBAClB,cACA,2BACAC,mBAAAA,KAAK,sBAAsB,EAAE,WAAW,aAAa,CAAC,GACtD,gBACF;GAGA,WAAW,YAAY,OAAO,OAAO,aAAa;IAChD,4BACE,oBACM;KACN,aAAa,YAAY,kBAAkB;IAC7C;IACA,wBAAoD;KAClD,OAAO;IACT;GACF,CAAC;EACH;EAEA,OAAO,WAAW;CACpB;;CAGA,OAAc,gBAAsB;EAClC,WAAW,YAAY,KAAA;CACzB;AACF"}