{"version":3,"file":"HeadlessImpersonationClient.mjs","sources":["../../../../../../../core/src/HeadlessClients/HeadlessImpersonationClient.ts"],"sourcesContent":["import { IDFPProtectedAuthProvider } from '../DFPProtectedAuthProvider';\nimport { INetworkClient } from '../NetworkClient';\nimport {\n  IHeadlessImpersonationClient,\n  ImpersonationAuthenticateOptions,\n  ImpersonationAuthenticateResponse,\n} from '../public/impersonation';\nimport { StytchProjectConfigurationInput } from '../public/typeConfig';\nimport { IConsumerSubscriptionService } from '../SubscriptionService';\nimport { validateInDev } from '../utils/dev';\n\nexport class HeadlessImpersonationClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n  implements IHeadlessImpersonationClient<TProjectConfiguration>\n{\n  authenticate: (\n    data: ImpersonationAuthenticateOptions,\n  ) => Promise<ImpersonationAuthenticateResponse<TProjectConfiguration>>;\n\n  constructor(\n    private _networkClient: INetworkClient,\n    private _subscriptionService: IConsumerSubscriptionService<TProjectConfiguration>,\n    private dfpProtectedAuth: IDFPProtectedAuthProvider,\n  ) {\n    this.authenticate = this._subscriptionService.withUpdateSession(async (data: ImpersonationAuthenticateOptions) => {\n      validateInDev('stytch.impersonation.authenticate', data, {\n        impersonation_token: 'string',\n      });\n      const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n      return this._networkClient.retriableFetchSDK<ImpersonationAuthenticateResponse<TProjectConfiguration>>({\n        url: '/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"],"names":["HeadlessImpersonationClient","authenticate","_networkClient","_subscriptionService","dfpProtectedAuth","withUpdateSession","data","validateInDev","impersonation_token","dfp_telemetry_id","captcha_token","getDFPTelemetryIDAndCaptcha","retriableFetchSDK","url","body","method","retryCallback","retryWithCaptchaAndDFP"],"mappings":";;AAWO,MAAMA,2BAAAA,CAAAA;;;;IAGXC,YAAAA;IAIA,WAAA,CACUC,cAA8B,EAC9BC,oBAAyE,EACzEC,gBAA2C,CACnD;aAHQF,cAAAA,GAAAA,cAAAA;aACAC,oBAAAA,GAAAA,oBAAAA;aACAC,gBAAAA,GAAAA,gBAAAA;QAER,IAAI,CAACH,YAAY,GAAG,IAAI,CAACE,oBAAoB,CAACE,iBAAiB,CAAC,OAAOC,IAAAA,GAAAA;AACrEC,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;AACnG,YAAA,OAAO,IAAI,CAACT,cAAc,CAACU,iBAAiB,CAA2D;gBACrGC,GAAAA,EAAK,6BAAA;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;AACF,IAAA;AACF;;;;"}