{"version":3,"file":"UserAPI.cjs","names":["NoOpUserManager","ProxyUserManager","createSafeProxy","diag"],"sources":["../../../../src/api-users/api/UserAPI/UserAPI.ts"],"sourcesContent":["import { diag } from '@opentelemetry/api';\nimport { createSafeProxy } from '../../../utils/index.ts';\nimport type { UserManager } from '../../manager/index.ts';\nimport { NoOpUserManager, ProxyUserManager } from '../../manager/index.ts';\n\n/**\n * Public interface for UserAPI including SDK-internal methods.\n */\nexport interface UserAPIInstance extends UserManager {\n  /** @internal SDK use only */\n  setGlobalUserManager(userManager: UserManager): void;\n  /** @internal SDK use only */\n  getUserManager(): UserManager;\n}\n\nconst NOOP_USER_MANAGER = new NoOpUserManager();\nconst INTERNAL_METHODS = new Set(['setDelegate', 'getDelegate']);\n\nexport class UserAPI {\n  private static _instance?: UserAPIInstance;\n\n  public static getInstance(): UserAPIInstance {\n    if (!UserAPI._instance) {\n      const proxyManager = new ProxyUserManager();\n\n      const safeManager = createSafeProxy(\n        proxyManager,\n        NOOP_USER_MANAGER,\n        diag.createComponentLogger({ namespace: 'UserAPI' }),\n        INTERNAL_METHODS,\n      );\n\n      UserAPI._instance = Object.assign(safeManager, {\n        setGlobalUserManager(userManager: UserManager): void {\n          proxyManager.setDelegate(userManager);\n        },\n        getUserManager(): UserManager {\n          return proxyManager;\n        },\n      }) as UserAPIInstance;\n    }\n\n    return UserAPI._instance;\n  }\n\n  public static resetInstance(): void {\n    UserAPI._instance = undefined;\n  }\n}\n"],"mappings":";;;;;;AAeA,MAAM,oBAAoB,IAAIA,0DAAAA,gBAAgB;AAC9C,MAAM,mCAAmB,IAAI,IAAI,CAAC,eAAe,aAAa,CAAC;AAE/D,IAAa,UAAb,MAAa,QAAQ;CACnB,OAAe;CAEf,OAAc,cAA+B;EAC3C,IAAI,CAAC,QAAQ,WAAW;GACtB,MAAM,eAAe,IAAIC,4DAAAA,iBAAiB;GAE1C,MAAM,cAAcC,8CAAAA,gBAClB,cACA,mBACAC,mBAAAA,KAAK,sBAAsB,EAAE,WAAW,UAAU,CAAC,GACnD,gBACF;GAEA,QAAQ,YAAY,OAAO,OAAO,aAAa;IAC7C,qBAAqB,aAAgC;KACnD,aAAa,YAAY,WAAW;IACtC;IACA,iBAA8B;KAC5B,OAAO;IACT;GACF,CAAC;EACH;EAEA,OAAO,QAAQ;CACjB;CAEA,OAAc,gBAAsB;EAClC,QAAQ,YAAY,KAAA;CACtB;AACF"}