{"version":3,"file":"PageAPI.cjs","names":["NoOpPageManager","ProxyPageManager","createSafeProxy","diag"],"sources":["../../../../src/api-page/api/PageAPI/PageAPI.ts"],"sourcesContent":["import { diag } from '@opentelemetry/api';\nimport { createSafeProxy } from '../../../utils/index.ts';\nimport type { PageManager } from '../../manager/index.ts';\nimport { NoOpPageManager, ProxyPageManager } from '../../manager/index.ts';\n\n/**\n * Public interface for PageAPI including SDK-internal methods.\n */\nexport interface PageAPIInstance extends PageManager {\n  /** @internal SDK use only */\n  setGlobalPageManager(pageManager: PageManager): void;\n  /** @internal SDK use only */\n  getPageManager(): PageManager;\n}\n\nconst NOOP_PAGE_MANAGER = new NoOpPageManager();\nconst INTERNAL_METHODS = new Set(['setDelegate', 'getDelegate']);\n\nexport class PageAPI {\n  private static _instance?: PageAPIInstance;\n\n  public static getInstance(): PageAPIInstance {\n    if (!PageAPI._instance) {\n      const proxyManager = new ProxyPageManager();\n\n      const safeManager = createSafeProxy(\n        proxyManager,\n        NOOP_PAGE_MANAGER,\n        diag.createComponentLogger({ namespace: 'PageAPI' }),\n        INTERNAL_METHODS,\n      );\n\n      PageAPI._instance = Object.assign(safeManager, {\n        setGlobalPageManager(pageManager: PageManager): void {\n          proxyManager.setDelegate(pageManager);\n        },\n        getPageManager(): PageManager {\n          return proxyManager;\n        },\n      }) as PageAPIInstance;\n    }\n\n    return PageAPI._instance;\n  }\n\n  public static resetInstance(): void {\n    PageAPI._instance = undefined;\n  }\n}\n"],"mappings":";;;;;;;AAeA,MAAM,oBAAoB,IAAIA,yDAAAA,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,2DAAAA,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"}