{"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,iBAAiB;AAC/C,MAAM,mBAAmB,IAAI,IAAI,CAAC,eAAe,cAAc,CAAC;AAEhE,IAAa,UAAb,MAAa,QAAQ;CACnB,OAAe;CAEf,OAAc,cAA+B;AAC3C,MAAI,CAAC,QAAQ,WAAW;GACtB,MAAM,eAAe,IAAIC,4DAAAA,kBAAkB;GAE3C,MAAM,cAAcC,8CAAAA,gBAClB,cACA,mBACAC,mBAAAA,KAAK,sBAAsB,EAAE,WAAW,WAAW,CAAC,EACpD,iBACD;AAED,WAAQ,YAAY,OAAO,OAAO,aAAa;IAC7C,qBAAqB,aAAgC;AACnD,kBAAa,YAAY,YAAY;;IAEvC,iBAA8B;AAC5B,YAAO;;IAEV,CAAC;;AAGJ,SAAO,QAAQ;;CAGjB,OAAc,gBAAsB;AAClC,UAAQ,YAAY,KAAA"}