{"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","validateInDev","organization_id","member_id","code","session_duration_minutes","set_mfa_enrollment","set_default_mfa","dfp_telemetry_id","captcha_token","getDFPTelemetryIDAndCaptcha","requestBody","intermediate_session_token","getIntermediateSessionToken","undefined","retriableFetchSDK","url","body","method","retryCallback","retryWithCaptchaAndDFP","create","expiration_minutes","response","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;AACLC,YAAAA,aAAAA,CAAc,4BAA4BD,IAAAA,EAAM;gBAC9CE,eAAAA,EAAiB,QAAA;gBACjBC,SAAAA,EAAW,QAAA;gBACXC,IAAAA,EAAM,QAAA;gBACNC,wBAAAA,EAA0B,QAAA;gBAC1BC,kBAAAA,EAAoB,gBAAA;gBACpBC,eAAAA,EAAiB;AACnB,aAAA,CAAA;YACA,MAAM,EAAEC,gBAAgB,EAAEC,aAAa,EAAE,GAAG,MAAM,IAAI,CAACX,gBAAgB,CAACY,2BAA2B,EAAA;AACnG,YAAA,MAAMC,WAAAA,GAAc;AAClB,gBAAA,GAAGX,IAAI;AACPQ,gBAAAA,gBAAAA;AACAC,gBAAAA,aAAAA;AACAG,gBAAAA,0BAAAA,EAA4B,IAAI,CAACf,oBAAoB,CAACgB,2BAA2B,EAAA,IAAMC;AACzF,aAAA;AAEA,YAAA,OAAO,IAAI,CAAClB,cAAc,CAACmB,iBAAiB,CAAqD;gBAC/FC,GAAAA,EAAK,wBAAA;gBACLC,IAAAA,EAAMN,WAAAA;gBACNO,MAAAA,EAAQ,MAAA;AACRC,gBAAAA,aAAAA,EAAe,IAAI,CAACrB,gBAAgB,CAACsB;AACvC,aAAA,CAAA;AACF,QAAA,CAAA,CAAA;AAEJ,IAAA;IAEA,MAAMC,MAAAA,CAAOrB,IAA0B,EAAkC;AACvEC,QAAAA,aAAAA,CAAc,sBAAsBD,IAAAA,EAAM;YACxCE,eAAAA,EAAiB,QAAA;YACjBC,SAAAA,EAAW,QAAA;YACXmB,kBAAAA,EAAoB;AACtB,SAAA,CAAA;QACA,MAAM,EAAEd,gBAAgB,EAAEC,aAAa,EAAE,GAAG,MAAM,IAAI,CAACX,gBAAgB,CAACY,2BAA2B,EAAA;AACnG,QAAA,MAAMa,WAAW,MAAM,IAAI,CAAC3B,cAAc,CAACmB,iBAAiB,CAAwB;YAClFC,GAAAA,EAAK,WAAA;YACLC,IAAAA,EAAM;AACJ,gBAAA,GAAGjB,IAAI;AACPQ,gBAAAA,gBAAAA;AACAC,gBAAAA,aAAAA;AACAG,gBAAAA,0BAAAA,EAA4B,MAAO,IAAI,CAACf,oBAAoB,CAACgB,2BAA2B,EAAA,IAAOC;AACjG,aAAA;YACAI,MAAAA,EAAQ,MAAA;AACRC,YAAAA,aAAAA,EAAe,IAAI,CAACrB,gBAAgB,CAACsB;AACvC,SAAA,CAAA;QAEA,IAAIG,QAAAA,CAASpB,SAAS,KAAK,IAAI,CAACN,oBAAoB,CAAC2B,SAAS,EAAA,EAAIrB,SAAAA,EAAW;AAC3E,YAAA,IAAI,CAACN,oBAAoB,CAAC4B,YAAY,CAACF,SAASG,MAAM,CAAA;AACxD,QAAA;QAEA,OAAOH,QAAAA;AACT,IAAA;AACF;;;;"}