{"version":3,"file":"HeadlessB2BImpersonationClient.mjs","sources":["../../../../../../../../core/src/HeadlessClients/b2b/HeadlessB2BImpersonationClient.ts"],"sourcesContent":["import { IB2BSubscriptionService, IDFPProtectedAuthProvider, INetworkClient } from '../..';\nimport {\n  B2BImpersonationAuthenticateOptions,\n  B2BImpersonationAuthenticateResponse,\n  IHeadlessB2BImpersonationClient,\n} from '../../public/b2b/impersonation';\nimport { StytchProjectConfigurationInput } from '../../public/typeConfig';\nimport { validateInDev } from '../../utils/dev';\n\nexport class HeadlessB2BImpersonationClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n  implements IHeadlessB2BImpersonationClient<TProjectConfiguration>\n{\n  authenticate: (\n    data: B2BImpersonationAuthenticateOptions,\n  ) => Promise<B2BImpersonationAuthenticateResponse<TProjectConfiguration>>;\n\n  constructor(\n    private _networkClient: INetworkClient,\n    private _subscriptionService: IB2BSubscriptionService<TProjectConfiguration>,\n    private dfpProtectedAuth: IDFPProtectedAuthProvider,\n  ) {\n    this.authenticate = this._subscriptionService.withUpdateSession(\n      async (data: B2BImpersonationAuthenticateOptions) => {\n        validateInDev('stytch.impersonation.authenticate', data, {\n          impersonation_token: 'string',\n        });\n        const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n\n        return this._networkClient.retriableFetchSDK<B2BImpersonationAuthenticateResponse<TProjectConfiguration>>({\n          url: '/b2b/impersonation/authenticate',\n          body: {\n            ...data,\n            dfp_telemetry_id,\n            captcha_token,\n          },\n          method: 'POST',\n          retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n        });\n      },\n    );\n  }\n}\n"],"names":["HeadlessB2BImpersonationClient","authenticate","_networkClient","_subscriptionService","dfpProtectedAuth","withUpdateSession","data","validateInDev","impersonation_token","dfp_telemetry_id","captcha_token","getDFPTelemetryIDAndCaptcha","retriableFetchSDK","url","body","method","retryCallback","retryWithCaptchaAndDFP"],"mappings":";;AASO,MAAMA,8BAAAA,CAAAA;;;;IAGXC,YAAAA;IAIA,WAAA,CACUC,cAA8B,EAC9BC,oBAAoE,EACpEC,gBAA2C,CACnD;aAHQF,cAAAA,GAAAA,cAAAA;aACAC,oBAAAA,GAAAA,oBAAAA;aACAC,gBAAAA,GAAAA,gBAAAA;QAER,IAAI,CAACH,YAAY,GAAG,IAAI,CAACE,oBAAoB,CAACE,iBAAiB,CAC7D,OAAOC,IAAAA,GAAAA;AACLC,YAAAA,aAAAA,CAAc,qCAAqCD,IAAAA,EAAM;gBACvDE,mBAAAA,EAAqB;AACvB,aAAA,CAAA;YACA,MAAM,EAAEC,gBAAgB,EAAEC,aAAa,EAAE,GAAG,MAAM,IAAI,CAACN,gBAAgB,CAACO,2BAA2B,EAAA;AAEnG,YAAA,OAAO,IAAI,CAACT,cAAc,CAACU,iBAAiB,CAA8D;gBACxGC,GAAAA,EAAK,iCAAA;gBACLC,IAAAA,EAAM;AACJ,oBAAA,GAAGR,IAAI;AACPG,oBAAAA,gBAAAA;AACAC,oBAAAA;AACF,iBAAA;gBACAK,MAAAA,EAAQ,MAAA;AACRC,gBAAAA,aAAAA,EAAe,IAAI,CAACZ,gBAAgB,CAACa;AACvC,aAAA,CAAA;AACF,QAAA,CAAA,CAAA;AAEJ,IAAA;AACF;;;;"}