{"version":3,"file":"HeadlessB2BTOTPsClient.mjs","sources":["../../../../../../../../core/src/HeadlessClients/b2b/HeadlessB2BTOTPsClient.ts"],"sourcesContent":["import { IB2BSubscriptionService, IDFPProtectedAuthProvider, INetworkClient } from '../..';\nimport {\n  B2BTOTPAuthenticateOptions,\n  B2BTOTPAuthenticateResponse,\n  B2BTOTPCreateOptions,\n  B2BTOTPCreateResponse,\n  IHeadlessB2BTOTPsClient,\n} from '../../public/b2b/totp';\nimport { StytchProjectConfigurationInput } from '../../public/typeConfig';\nimport { validateInDev } from '../../utils/dev';\n\nexport class HeadlessB2BTOTPsClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n  implements IHeadlessB2BTOTPsClient<TProjectConfiguration>\n{\n  authenticate: (data: B2BTOTPAuthenticateOptions) => Promise<B2BTOTPAuthenticateResponse<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: B2BTOTPAuthenticateOptions): Promise<B2BTOTPAuthenticateResponse<TProjectConfiguration>> => {\n        validateInDev('stytch.totp.authenticate', data, {\n          organization_id: 'string',\n          member_id: 'string',\n          code: 'string',\n          session_duration_minutes: 'number',\n          set_mfa_enrollment: 'optionalString',\n          set_default_mfa: 'optionalBoolean',\n        });\n        const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n        const requestBody = {\n          ...data,\n          dfp_telemetry_id,\n          captcha_token,\n          intermediate_session_token: this._subscriptionService.getIntermediateSessionToken() || undefined,\n        };\n\n        return this._networkClient.retriableFetchSDK<B2BTOTPAuthenticateResponse<TProjectConfiguration>>({\n          url: '/b2b/totp/authenticate',\n          body: requestBody,\n          method: 'POST',\n          retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n        });\n      },\n    );\n  }\n\n  async create(data: B2BTOTPCreateOptions): Promise<B2BTOTPCreateResponse> {\n    validateInDev('stytch.totp.create', data, {\n      organization_id: 'string',\n      member_id: 'string',\n      expiration_minutes: 'optionalNumber',\n    });\n    const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n    const response = await this._networkClient.retriableFetchSDK<B2BTOTPCreateResponse>({\n      url: '/b2b/totp',\n      body: {\n        ...data,\n        dfp_telemetry_id,\n        captcha_token,\n        intermediate_session_token: (await this._subscriptionService.getIntermediateSessionToken()) || undefined,\n      },\n      method: 'POST',\n      retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n    });\n\n    if (response.member_id === this._subscriptionService.getMember()?.member_id) {\n      this._subscriptionService.updateMember(response.member);\n    }\n\n    return response;\n  }\n}\n"],"names":["HeadlessB2BTOTPsClient","authenticate","_networkClient","_subscriptionService","dfpProtectedAuth","withUpdateSession","data","dfp_telemetry_id","captcha_token","getDFPTelemetryIDAndCaptcha","requestBody","intermediate_session_token","getIntermediateSessionToken","undefined","retriableFetchSDK","url","body","method","retryCallback","retryWithCaptchaAndDFP","create","response","member_id","getMember","updateMember","member"],"mappings":"AAWO,MAAMA,sBAAAA,CAAAA;;;;IAGXC,YAAAA;IAEA,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;YASL,MAAM,EAAEC,gBAAgB,EAAEC,aAAa,EAAE,GAAG,MAAM,IAAI,CAACJ,gBAAgB,CAACK,2BAA2B,EAAA;AACnG,YAAA,MAAMC,WAAAA,GAAc;AAClB,gBAAA,GAAGJ,IAAI;AACPC,gBAAAA,gBAAAA;AACAC,gBAAAA,aAAAA;AACAG,gBAAAA,0BAAAA,EAA4B,IAAI,CAACR,oBAAoB,CAACS,2BAA2B,EAAA,IAAMC;AACzF,aAAA;AAEA,YAAA,OAAO,IAAI,CAACX,cAAc,CAACY,iBAAiB,CAAqD;gBAC/FC,GAAAA,EAAK,wBAAA;gBACLC,IAAAA,EAAMN,WAAAA;gBACNO,MAAAA,EAAQ,MAAA;AACRC,gBAAAA,aAAAA,EAAe,IAAI,CAACd,gBAAgB,CAACe;AACvC,aAAA,CAAA;AACF,QAAA,CAAA,CAAA;AAEJ,IAAA;IAEA,MAAMC,MAAAA,CAAOd,IAA0B,EAAkC;QAMvE,MAAM,EAAEC,gBAAgB,EAAEC,aAAa,EAAE,GAAG,MAAM,IAAI,CAACJ,gBAAgB,CAACK,2BAA2B,EAAA;AACnG,QAAA,MAAMY,WAAW,MAAM,IAAI,CAACnB,cAAc,CAACY,iBAAiB,CAAwB;YAClFC,GAAAA,EAAK,WAAA;YACLC,IAAAA,EAAM;AACJ,gBAAA,GAAGV,IAAI;AACPC,gBAAAA,gBAAAA;AACAC,gBAAAA,aAAAA;AACAG,gBAAAA,0BAAAA,EAA4B,MAAO,IAAI,CAACR,oBAAoB,CAACS,2BAA2B,EAAA,IAAOC;AACjG,aAAA;YACAI,MAAAA,EAAQ,MAAA;AACRC,YAAAA,aAAAA,EAAe,IAAI,CAACd,gBAAgB,CAACe;AACvC,SAAA,CAAA;QAEA,IAAIE,QAAAA,CAASC,SAAS,KAAK,IAAI,CAACnB,oBAAoB,CAACoB,SAAS,EAAA,EAAID,SAAAA,EAAW;AAC3E,YAAA,IAAI,CAACnB,oBAAoB,CAACqB,YAAY,CAACH,SAASI,MAAM,CAAA;AACxD,QAAA;QAEA,OAAOJ,QAAAA;AACT,IAAA;AACF;;;;"}