{"version":3,"file":"HeadlessB2BOTPsClient.mjs","sources":["../../../../../../../../core/src/HeadlessClients/b2b/HeadlessB2BOTPsClient.ts"],"sourcesContent":["import { IB2BSubscriptionService, IDFPProtectedAuthProvider, INetworkClient } from '../..';\nimport {\n  B2BDiscoveryOTPEmailAuthenticateOptions,\n  B2BDiscoveryOTPEmailAuthenticateResponse,\n  B2BDiscoveryOTPEmailSendOptions,\n  B2BDiscoveryOTPEmailSendResponse,\n  B2BOTPsEmailAuthenticateOptions,\n  B2BOTPsEmailAuthenticateResponse,\n  B2BOTPsEmailLoginOrSignupOptions,\n  B2BOTPsEmailLoginOrSignupResponse,\n  B2BSMSAuthenticateOptions,\n  B2BSMSAuthenticateResponse,\n  B2BSMSSendOptions,\n  B2BSMSSendResponse,\n  IHeadlessB2BOTPsClient,\n} from '../../public/b2b/otps';\nimport { StytchProjectConfigurationInput } from '../../public/typeConfig';\nimport { validateInDev } from '../../utils/dev';\n\nexport class HeadlessB2BOTPsClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n  implements IHeadlessB2BOTPsClient<TProjectConfiguration>\n{\n  sms: {\n    send: (data: B2BSMSSendOptions) => Promise<B2BSMSSendResponse>;\n    authenticate: (data: B2BSMSAuthenticateOptions) => Promise<B2BSMSAuthenticateResponse<TProjectConfiguration>>;\n  };\n\n  email: {\n    loginOrSignup: (data: B2BOTPsEmailLoginOrSignupOptions) => Promise<B2BOTPsEmailLoginOrSignupResponse>;\n    authenticate: (\n      data: B2BOTPsEmailAuthenticateOptions,\n    ) => Promise<B2BOTPsEmailAuthenticateResponse<TProjectConfiguration>>;\n    discovery: {\n      send: (data: B2BDiscoveryOTPEmailSendOptions) => Promise<B2BDiscoveryOTPEmailSendResponse>;\n      authenticate: (\n        data: B2BDiscoveryOTPEmailAuthenticateOptions,\n      ) => Promise<B2BDiscoveryOTPEmailAuthenticateResponse<TProjectConfiguration>>;\n    };\n  };\n\n  constructor(\n    private _networkClient: INetworkClient,\n    private _subscriptionService: IB2BSubscriptionService<TProjectConfiguration>,\n    private dfpProtectedAuth: IDFPProtectedAuthProvider,\n  ) {\n    this.sms = {\n      send: async (data: B2BSMSSendOptions): Promise<B2BSMSSendResponse> => {\n        validateInDev('stytch.otps.sms.send', data, {\n          organization_id: 'string',\n          member_id: 'string',\n          mfa_phone_number: 'optionalString',\n          locale: 'optionalString',\n        });\n        const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n        return this._networkClient.retriableFetchSDK<B2BSMSSendResponse>({\n          url: '/b2b/otps/sms/send',\n          body: {\n            ...data,\n            dfp_telemetry_id,\n            captcha_token,\n            intermediate_session_token: this._subscriptionService.getIntermediateSessionToken() || undefined,\n          },\n          method: 'POST',\n          retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n        });\n      },\n      authenticate: this._subscriptionService.withUpdateSession(\n        async (data: B2BSMSAuthenticateOptions): Promise<B2BSMSAuthenticateResponse<TProjectConfiguration>> => {\n          validateInDev('stytch.otps.sms.authenticate', data, {\n            session_duration_minutes: 'number',\n            organization_id: 'string',\n            member_id: 'string',\n            code: 'string',\n            set_mfa_enrollment: 'optionalString',\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          return this._networkClient.retriableFetchSDK<B2BSMSAuthenticateResponse<TProjectConfiguration>>({\n            url: '/b2b/otps/sms/authenticate',\n            body: requestBody,\n            method: 'POST',\n            retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n          });\n        },\n      ),\n    };\n\n    this.email = {\n      loginOrSignup: async (data: B2BOTPsEmailLoginOrSignupOptions): Promise<B2BOTPsEmailLoginOrSignupResponse> => {\n        validateInDev('stytch.otps.email.loginOrSignup', data, {\n          organization_id: 'string',\n          email_address: 'string',\n          login_template_id: 'optionalString',\n          signup_template_id: 'optionalString',\n          locale: 'optionalString',\n          login_expiration_minutes: 'optionalNumber',\n          signup_expiration_minutes: 'optionalNumber',\n        });\n\n        const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n        return this._networkClient.retriableFetchSDK<B2BOTPsEmailLoginOrSignupResponse>({\n          url: '/b2b/otps/email/login_or_signup',\n          body: {\n            ...data,\n            dfp_telemetry_id,\n            captcha_token,\n          },\n          method: 'POST',\n          retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n        });\n      },\n      authenticate: this._subscriptionService.withUpdateSession(\n        async (\n          data: B2BOTPsEmailAuthenticateOptions,\n        ): Promise<B2BOTPsEmailAuthenticateResponse<TProjectConfiguration>> => {\n          validateInDev('stytch.otps.email.authenticate', data, {\n            code: 'string',\n            email_address: 'string',\n            organization_id: 'string',\n            session_duration_minutes: 'number',\n            locale: 'optionalString',\n          });\n\n          const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n          return this._networkClient.retriableFetchSDK<B2BOTPsEmailAuthenticateResponse<TProjectConfiguration>>({\n            url: '/b2b/otps/email/authenticate',\n            body: {\n              ...data,\n              intermediate_session_token: this._subscriptionService.getIntermediateSessionToken() || undefined,\n              dfp_telemetry_id,\n              captcha_token,\n            },\n            method: 'POST',\n            retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n          });\n        },\n      ),\n      discovery: {\n        send: async (data: B2BDiscoveryOTPEmailSendOptions): Promise<B2BDiscoveryOTPEmailSendResponse> => {\n          validateInDev('stytch.otps.email.discovery.send', data, {\n            email_address: 'string',\n            login_template_id: 'optionalString',\n            locale: 'optionalString',\n            discovery_expiration_minutes: 'optionalNumber',\n          });\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          };\n          return this._networkClient.retriableFetchSDK<B2BDiscoveryOTPEmailSendResponse>({\n            url: '/b2b/otps/email/discovery/send',\n            body: requestBody,\n            method: 'POST',\n            retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n          });\n        },\n        authenticate: this._subscriptionService.withUpdateSession(\n          async (\n            data: B2BDiscoveryOTPEmailAuthenticateOptions,\n          ): Promise<B2BDiscoveryOTPEmailAuthenticateResponse<TProjectConfiguration>> => {\n            validateInDev('stytch.otps.email.discovery.authenticate', data, {\n              code: 'string',\n              email_address: 'string',\n            });\n\n            const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n            const requestBody = {\n              dfp_telemetry_id,\n              captcha_token,\n              ...data,\n            };\n\n            return this._networkClient.retriableFetchSDK<\n              B2BDiscoveryOTPEmailAuthenticateResponse<TProjectConfiguration>\n            >({\n              url: '/b2b/otps/email/discovery/authenticate',\n              body: requestBody,\n              method: 'POST',\n              retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n            });\n          },\n        ),\n      },\n    };\n  }\n}\n"],"names":["HeadlessB2BOTPsClient","sms","email","_networkClient","_subscriptionService","dfpProtectedAuth","send","data","validateInDev","organization_id","member_id","mfa_phone_number","locale","dfp_telemetry_id","captcha_token","getDFPTelemetryIDAndCaptcha","retriableFetchSDK","url","body","intermediate_session_token","getIntermediateSessionToken","undefined","method","retryCallback","retryWithCaptchaAndDFP","authenticate","withUpdateSession","session_duration_minutes","code","set_mfa_enrollment","requestBody","loginOrSignup","email_address","login_template_id","signup_template_id","login_expiration_minutes","signup_expiration_minutes","discovery","discovery_expiration_minutes"],"mappings":"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"}