{"version":3,"file":"HeadlessB2BRecoveryCodesClient.mjs","sources":["../../../../../../../../core/src/HeadlessClients/b2b/HeadlessB2BRecoveryCodesClient.ts"],"sourcesContent":["import { IB2BSubscriptionService, IDFPProtectedAuthProvider, INetworkClient } from '../..';\nimport {\n  IHeadlessB2BRecoveryCodesClient,\n  RecoveryCodeGetResponse,\n  RecoveryCodeRecoverOptions,\n  RecoveryCodeRecoverResponse,\n  RecoveryCodeRotateResponse,\n} from '../../public/b2b/recoveryCodes';\nimport { StytchProjectConfigurationInput } from '../../public/typeConfig';\nimport { validateInDev } from '../../utils/dev';\n\nexport class HeadlessB2BRecoveryCodesClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n  implements IHeadlessB2BRecoveryCodesClient<TProjectConfiguration>\n{\n  recover: (data: RecoveryCodeRecoverOptions) => Promise<RecoveryCodeRecoverResponse<TProjectConfiguration>>;\n\n  constructor(\n    private _networkClient: INetworkClient,\n    private _subscriptionService: IB2BSubscriptionService<TProjectConfiguration>,\n    private dfpProtectedAuth: IDFPProtectedAuthProvider,\n  ) {\n    this.recover = this._subscriptionService.withUpdateSession(\n      async (data: RecoveryCodeRecoverOptions): Promise<RecoveryCodeRecoverResponse<TProjectConfiguration>> => {\n        validateInDev('stytch.recoveryCodes.recover', data, {\n          organization_id: 'string',\n          member_id: 'string',\n          recovery_code: 'string',\n          session_duration_minutes: 'number',\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<RecoveryCodeRecoverResponse<TProjectConfiguration>>({\n          url: '/b2b/recovery_codes/recover',\n          body: requestBody,\n          method: 'POST',\n          retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n        });\n      },\n    );\n  }\n\n  async rotate(): Promise<RecoveryCodeRotateResponse> {\n    const { dfp_telemetry_id, captcha_token } = await this.dfpProtectedAuth.getDFPTelemetryIDAndCaptcha();\n    return this._networkClient.retriableFetchSDK<RecoveryCodeRotateResponse>({\n      url: '/b2b/recovery_codes/rotate',\n      body: {\n        dfp_telemetry_id,\n        captcha_token,\n      },\n      method: 'POST',\n      retryCallback: this.dfpProtectedAuth.retryWithCaptchaAndDFP,\n    });\n  }\n\n  async get(): Promise<RecoveryCodeGetResponse> {\n    return this._networkClient.fetchSDK<RecoveryCodeGetResponse>({\n      url: '/b2b/recovery_codes',\n      method: 'GET',\n    });\n  }\n}\n"],"names":["HeadlessB2BRecoveryCodesClient","recover","_networkClient","_subscriptionService","dfpProtectedAuth","withUpdateSession","data","validateInDev","organization_id","member_id","recovery_code","session_duration_minutes","dfp_telemetry_id","captcha_token","getDFPTelemetryIDAndCaptcha","requestBody","intermediate_session_token","getIntermediateSessionToken","undefined","retriableFetchSDK","url","body","method","retryCallback","retryWithCaptchaAndDFP","rotate","get","fetchSDK"],"mappings":";;AAWO,MAAMA,8BAAAA,CAAAA;;;;IAGXC,OAAAA;IAEA,WAAA,CACUC,cAA8B,EAC9BC,oBAAoE,EACpEC,gBAA2C,CACnD;aAHQF,cAAAA,GAAAA,cAAAA;aACAC,oBAAAA,GAAAA,oBAAAA;aACAC,gBAAAA,GAAAA,gBAAAA;QAER,IAAI,CAACH,OAAO,GAAG,IAAI,CAACE,oBAAoB,CAACE,iBAAiB,CACxD,OAAOC,IAAAA,GAAAA;AACLC,YAAAA,aAAAA,CAAc,gCAAgCD,IAAAA,EAAM;gBAClDE,eAAAA,EAAiB,QAAA;gBACjBC,SAAAA,EAAW,QAAA;gBACXC,aAAAA,EAAe,QAAA;gBACfC,wBAAAA,EAA0B;AAC5B,aAAA,CAAA;YACA,MAAM,EAAEC,gBAAgB,EAAEC,aAAa,EAAE,GAAG,MAAM,IAAI,CAACT,gBAAgB,CAACU,2BAA2B,EAAA;AACnG,YAAA,MAAMC,WAAAA,GAAc;AAClB,gBAAA,GAAGT,IAAI;AACPM,gBAAAA,gBAAAA;AACAC,gBAAAA,aAAAA;AACAG,gBAAAA,0BAAAA,EAA4B,IAAI,CAACb,oBAAoB,CAACc,2BAA2B,EAAA,IAAMC;AACzF,aAAA;AACA,YAAA,OAAO,IAAI,CAAChB,cAAc,CAACiB,iBAAiB,CAAqD;gBAC/FC,GAAAA,EAAK,6BAAA;gBACLC,IAAAA,EAAMN,WAAAA;gBACNO,MAAAA,EAAQ,MAAA;AACRC,gBAAAA,aAAAA,EAAe,IAAI,CAACnB,gBAAgB,CAACoB;AACvC,aAAA,CAAA;AACF,QAAA,CAAA,CAAA;AAEJ,IAAA;AAEA,IAAA,MAAMC,MAAAA,GAA8C;QAClD,MAAM,EAAEb,gBAAgB,EAAEC,aAAa,EAAE,GAAG,MAAM,IAAI,CAACT,gBAAgB,CAACU,2BAA2B,EAAA;AACnG,QAAA,OAAO,IAAI,CAACZ,cAAc,CAACiB,iBAAiB,CAA6B;YACvEC,GAAAA,EAAK,4BAAA;YACLC,IAAAA,EAAM;AACJT,gBAAAA,gBAAAA;AACAC,gBAAAA;AACF,aAAA;YACAS,MAAAA,EAAQ,MAAA;AACRC,YAAAA,aAAAA,EAAe,IAAI,CAACnB,gBAAgB,CAACoB;AACvC,SAAA,CAAA;AACF,IAAA;AAEA,IAAA,MAAME,GAAAA,GAAwC;AAC5C,QAAA,OAAO,IAAI,CAACxB,cAAc,CAACyB,QAAQ,CAA0B;YAC3DP,GAAAA,EAAK,qBAAA;YACLE,MAAAA,EAAQ;AACV,SAAA,CAAA;AACF,IAAA;AACF;;;;"}