{"version":3,"file":"HeadlessB2BSelfClient.mjs","sources":["../../../../../../../../core/src/HeadlessClients/b2b/HeadlessB2BSelfClient.ts"],"sourcesContent":["import { INetworkClient } from '../../NetworkClient';\nimport {\n  B2BMemberDeleteMFAPhoneNumberResponse,\n  B2BMemberDeletePasswordResponse,\n  B2BMemberGetConnectedAppsResponse,\n  B2BMemberOnChangeCallback,\n  B2BMemberRevokeConnectedAppOptions,\n  B2BMemberRevokeConnectedAppResponse,\n  B2BMemberStartEmailUpdateRequest,\n  B2BMemberStartEmailUpdateResponse,\n  B2BMemberUnlinkRetiredEmailRequest,\n  B2BMemberUnlinkRetiredEmailResponse,\n  B2BMemberUpdateOptions,\n  B2BMemberUpdateResponse,\n  IHeadlessB2BSelfClient,\n  Member,\n  MemberInfo,\n  ResponseCommon,\n  StytchProjectConfigurationInput,\n} from '../../public';\nimport { IB2BSubscriptionService } from '../../SubscriptionService';\nimport { validateInDev } from '../../utils/dev';\n\nexport class HeadlessB2BSelfClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n  implements IHeadlessB2BSelfClient\n{\n  constructor(\n    private _networkClient: INetworkClient,\n    private _apiNetworkClient: INetworkClient,\n    private _subscriptionService: IB2BSubscriptionService<TProjectConfiguration>,\n  ) {}\n\n  get = async (): Promise<Member | null> => {\n    const resp = await this._networkClient.fetchSDK<{ member: Member } & ResponseCommon>({\n      url: `/b2b/organizations/members/me`,\n      method: 'GET',\n    });\n    this._subscriptionService.updateMember(resp.member);\n    return resp.member;\n  };\n\n  getSync = (): Member | null => {\n    return this._subscriptionService.getMember();\n  };\n\n  getInfo = (): MemberInfo => ({\n    member: this.getSync(),\n    fromCache: this._subscriptionService.getFromCache(),\n  });\n\n  onChange = (callback: B2BMemberOnChangeCallback) => {\n    return this._subscriptionService.subscribeToState((state) => callback(state?.member ?? null));\n  };\n\n  update = async (data: B2BMemberUpdateOptions): Promise<B2BMemberUpdateResponse> => {\n    validateInDev('stytch.self.update', data, {\n      name: 'optionalString',\n      untrusted_metadata: 'optionalObject',\n      mfa_enrolled: 'optionalBoolean',\n      mfa_phone_number: 'optionalString',\n      default_mfa_method: 'optionalString',\n    });\n\n    const resp = await this._networkClient.fetchSDK<B2BMemberUpdateResponse>({\n      url: '/b2b/organizations/members/update',\n      body: data,\n      method: 'PUT',\n    });\n    this._subscriptionService.updateMember(resp.member);\n    return resp;\n  };\n\n  deleteMFAPhoneNumber = async (): Promise<B2BMemberDeleteMFAPhoneNumberResponse> => {\n    const resp = await this._networkClient.fetchSDK<B2BMemberDeleteMFAPhoneNumberResponse>({\n      url: '/b2b/organizations/members/deletePhoneNumber',\n      method: 'DELETE',\n    });\n    this._subscriptionService.updateMember(resp.member);\n    return resp;\n  };\n\n  deleteMFATOTP = async (): Promise<B2BMemberDeletePasswordResponse> => {\n    const resp = await this._networkClient.fetchSDK<B2BMemberDeletePasswordResponse>({\n      url: `/b2b/organizations/members/deleteTOTP`,\n      method: 'DELETE',\n    });\n    this._subscriptionService.updateMember(resp.member);\n    return resp;\n  };\n\n  deletePassword = async (passwordId: string): Promise<B2BMemberDeletePasswordResponse> => {\n    const resp = await this._networkClient.fetchSDK<B2BMemberDeletePasswordResponse>({\n      url: `/b2b/organizations/members/passwords/${passwordId}`,\n      method: 'DELETE',\n    });\n    this._subscriptionService.updateMember(resp.member);\n    return resp;\n  };\n\n  unlinkRetiredEmail = async (\n    data: B2BMemberUnlinkRetiredEmailRequest,\n  ): Promise<B2BMemberUnlinkRetiredEmailResponse> => {\n    const resp = await this._apiNetworkClient.fetchSDK<B2BMemberUnlinkRetiredEmailResponse>({\n      url: '/b2b/organizations/members/unlink_retired_email',\n      method: 'POST',\n      body: data,\n    });\n    this._subscriptionService.updateMember(resp.member);\n    return resp;\n  };\n\n  startEmailUpdate = async (data: B2BMemberStartEmailUpdateRequest): Promise<B2BMemberStartEmailUpdateResponse> => {\n    const resp = await this._apiNetworkClient.fetchSDK<B2BMemberStartEmailUpdateResponse>({\n      url: '/b2b/organizations/members/start_email_update',\n      method: 'POST',\n      body: data,\n    });\n    this._subscriptionService.updateMember(resp.member);\n    return resp;\n  };\n\n  getConnectedApps = async (): Promise<B2BMemberGetConnectedAppsResponse> => {\n    return this._networkClient.fetchSDK<B2BMemberGetConnectedAppsResponse>({\n      url: '/b2b/organizations/members/connected_apps',\n      method: 'GET',\n    });\n  };\n\n  revokeConnectedApp = async (\n    data: B2BMemberRevokeConnectedAppOptions,\n  ): Promise<B2BMemberRevokeConnectedAppResponse> => {\n    return this._networkClient.fetchSDK<B2BMemberRevokeConnectedAppResponse>({\n      url: `/b2b/organizations/members/connected_apps/${data.connected_app_id}/revoke`,\n      method: 'POST',\n    });\n  };\n}\n"],"names":["HeadlessB2BSelfClient","_networkClient","_apiNetworkClient","_subscriptionService","get","resp","fetchSDK","url","method","updateMember","member","getSync","getMember","getInfo","fromCache","getFromCache","onChange","callback","subscribeToState","state","update","data","validateInDev","name","untrusted_metadata","mfa_enrolled","mfa_phone_number","default_mfa_method","body","deleteMFAPhoneNumber","deleteMFATOTP","deletePassword","passwordId","unlinkRetiredEmail","startEmailUpdate","getConnectedApps","revokeConnectedApp","connected_app_id"],"mappings":"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"}