{"version":3,"file":"HeadlessB2BOrganizationClient.mjs","sources":["../../../../../../../../core/src/HeadlessClients/b2b/HeadlessB2BOrganizationClient.ts"],"sourcesContent":["import { INetworkClient } from '../../NetworkClient';\nimport {\n  B2BOrganizationsDeleteResponse,\n  B2BOrganizationsGetBySlugOptions,\n  B2BOrganizationsGetBySlugResponse,\n  B2BOrganizationsGetConnectedAppOptions,\n  B2BOrganizationsGetConnectedAppResponse,\n  B2BOrganizationsGetConnectedAppsResponse,\n  B2BOrganizationsMemberDeleteMFAPhoneNumberResponse,\n  B2BOrganizationsMemberDeleteMFATOTPResponse,\n  B2BOrganizationsMemberDeletePasswordResponse,\n  B2BOrganizationsMemberGetConnectedAppsOptions,\n  B2BOrganizationsMemberGetConnectedAppsResponse,\n  B2BOrganizationsMemberRevokeConnectedAppOptions,\n  B2BOrganizationsMemberRevokeConnectedAppResponse,\n  B2BOrganizationsMembersCreateOptions,\n  B2BOrganizationsMembersCreateResponse,\n  B2BOrganizationsMembersDeleteResponse,\n  B2BOrganizationsMembersReactivateResponse,\n  B2BOrganizationsMembersSearchOptions,\n  B2BOrganizationsMembersSearchResponse,\n  B2BOrganizationsMemberStartEmailUpdateOptions,\n  B2BOrganizationsMemberStartEmailUpdateResponse,\n  B2BOrganizationsMembersUpdateOptions,\n  B2BOrganizationsMembersUpdateResponse,\n  B2BOrganizationsMemberUnlinkRetiredEmailOptions,\n  B2BOrganizationsMemberUnlinkRetiredEmailResponse,\n  B2BOrganizationsUpdateOptions,\n  B2BOrganizationsUpdateResponse,\n  IHeadlessB2BOrganizationClient,\n  MemberResponseCommon,\n  Organization,\n  OrganizationInfo,\n  ResponseCommon,\n  StytchProjectConfigurationInput,\n} from '../../public';\nimport { IB2BSubscriptionService } from '../../SubscriptionService';\nimport { validateInDev } from '../../utils/dev';\n\nexport class HeadlessB2BOrganizationClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n  implements IHeadlessB2BOrganizationClient\n{\n  constructor(\n    private _networkClient: INetworkClient,\n    private _apiNetworkClient: INetworkClient,\n    private _subscriptionService: IB2BSubscriptionService<TProjectConfiguration>,\n  ) {}\n\n  get = async (): Promise<Organization | null> => {\n    const resp = await this._networkClient.fetchSDK<{ organization: Organization } & ResponseCommon>({\n      url: `/b2b/organizations/me`,\n      method: 'GET',\n    });\n    this._subscriptionService.updateOrganization(resp.organization);\n    return resp.organization;\n  };\n\n  getSync = (): Organization | null => {\n    return this._subscriptionService.getOrganization();\n  };\n\n  getInfo = (): OrganizationInfo => ({\n    organization: this.getSync(),\n    fromCache: this._subscriptionService.getFromCache(),\n  });\n\n  onChange = (callback: (organization: Organization | null) => void) => {\n    return this._subscriptionService.subscribeToState((state) => callback(state?.organization ?? null));\n  };\n\n  update = async (data: B2BOrganizationsUpdateOptions): Promise<B2BOrganizationsUpdateResponse> => {\n    const resp = await this._networkClient.fetchSDK<B2BOrganizationsUpdateResponse>({\n      url: `/b2b/organizations/me`,\n      method: 'PUT',\n      body: data,\n    });\n\n    this._subscriptionService.updateOrganization(resp.organization);\n    return resp;\n  };\n\n  delete = async (): Promise<B2BOrganizationsDeleteResponse> => {\n    const resp = await this._networkClient.fetchSDK<B2BOrganizationsDeleteResponse>({\n      url: `/b2b/organizations/me`,\n      method: 'DELETE',\n    });\n\n    this._subscriptionService.destroyState();\n\n    return resp;\n  };\n\n  getBySlug = async (data: B2BOrganizationsGetBySlugOptions): Promise<B2BOrganizationsGetBySlugResponse> => {\n    validateInDev('stytch.organization.getBySlug', data, {\n      organization_slug: 'string',\n    });\n\n    return this._networkClient.fetchSDK<B2BOrganizationsGetBySlugResponse>({\n      url: `/b2b/organizations/search`,\n      method: 'POST',\n      body: data,\n    });\n  };\n\n  getConnectedApps = async (): Promise<B2BOrganizationsGetConnectedAppsResponse> => {\n    return this._networkClient.fetchSDK<B2BOrganizationsGetConnectedAppsResponse>({\n      url: '/b2b/organizations/connected_apps',\n      method: 'GET',\n    });\n  };\n\n  getConnectedApp = async (\n    data: B2BOrganizationsGetConnectedAppOptions,\n  ): Promise<B2BOrganizationsGetConnectedAppResponse> => {\n    return this._networkClient.fetchSDK<B2BOrganizationsGetConnectedAppResponse>({\n      url: `/b2b/organizations/connected_apps/${data.connected_app_id}`,\n      method: 'GET',\n    });\n  };\n\n  members = {\n    create: async (data: B2BOrganizationsMembersCreateOptions): Promise<B2BOrganizationsMembersCreateResponse> => {\n      return this._networkClient.fetchSDK<B2BOrganizationsMembersCreateResponse>({\n        url: `/b2b/organizations/members`,\n        method: 'POST',\n        body: data,\n      });\n    },\n    search: async (data: B2BOrganizationsMembersSearchOptions): Promise<B2BOrganizationsMembersSearchResponse> => {\n      return this._networkClient.fetchSDK<B2BOrganizationsMembersSearchResponse>({\n        url: `/b2b/organizations/me/members/search`,\n        method: 'POST',\n        body: data,\n      });\n    },\n    update: async (data: B2BOrganizationsMembersUpdateOptions): Promise<B2BOrganizationsMembersUpdateResponse> => {\n      const response = await this._networkClient.fetchSDK<B2BOrganizationsMembersUpdateResponse>({\n        url: `/b2b/organizations/members/${data.member_id}`,\n        method: 'PUT',\n        body: data,\n      });\n\n      this.updateMemberIfSelf(response);\n      return response;\n    },\n    deletePassword: async (passwordId: string): Promise<B2BOrganizationsMemberDeletePasswordResponse> => {\n      const response = await this._networkClient.fetchSDK<B2BOrganizationsMemberDeletePasswordResponse>({\n        url: `/b2b/organizations/members/passwords/${passwordId}`,\n        method: 'DELETE',\n      });\n\n      this.updateMemberIfSelf(response);\n      return response;\n    },\n    deleteMFAPhoneNumber: async (memberId: string): Promise<B2BOrganizationsMemberDeleteMFAPhoneNumberResponse> => {\n      const response = await this._networkClient.fetchSDK<B2BOrganizationsMemberDeleteMFAPhoneNumberResponse>({\n        url: `/b2b/organizations/members/mfa_phone_numbers/${memberId}`,\n        method: 'DELETE',\n      });\n\n      this.updateMemberIfSelf(response);\n      return response;\n    },\n    deleteMFATOTP: async (memberId: string): Promise<B2BOrganizationsMemberDeleteMFATOTPResponse> => {\n      const response = await this._networkClient.fetchSDK<B2BOrganizationsMemberDeleteMFATOTPResponse>({\n        url: `/b2b/organizations/members/totp/${memberId}`,\n        method: 'DELETE',\n      });\n\n      this.updateMemberIfSelf(response);\n      return response;\n    },\n    delete: async (memberId: string): Promise<B2BOrganizationsMembersDeleteResponse> => {\n      const response = await this._networkClient.fetchSDK<B2BOrganizationsMembersDeleteResponse>({\n        url: `/b2b/organizations/members/${memberId}`,\n        method: 'DELETE',\n      });\n\n      if (memberId === this._subscriptionService.getMember()?.member_id) {\n        this._subscriptionService.destroyState();\n      }\n\n      return response;\n    },\n    reactivate: async (memberId: string): Promise<B2BOrganizationsMembersReactivateResponse> => {\n      return this._networkClient.fetchSDK<B2BOrganizationsMembersReactivateResponse>({\n        url: `/b2b/organizations/members/${memberId}/reactivate`,\n        method: 'PUT',\n      });\n    },\n    unlinkRetiredEmail: async (\n      data: B2BOrganizationsMemberUnlinkRetiredEmailOptions,\n    ): Promise<B2BOrganizationsMemberUnlinkRetiredEmailResponse> => {\n      const { member_id, ...body } = data;\n      const response = await this._apiNetworkClient.fetchSDK<B2BOrganizationsMemberUnlinkRetiredEmailResponse>({\n        url: `/b2b/organizations/members/${member_id}/unlink_retired_email`,\n        method: 'POST',\n        body,\n      });\n\n      this.updateMemberIfSelf(response);\n      return response;\n    },\n    startEmailUpdate: async (\n      data: B2BOrganizationsMemberStartEmailUpdateOptions,\n    ): Promise<B2BOrganizationsMemberStartEmailUpdateResponse> => {\n      const { member_id, ...body } = data;\n      const response = await this._apiNetworkClient.fetchSDK<B2BOrganizationsMemberStartEmailUpdateResponse>({\n        url: `/b2b/organizations/members/${member_id}/start_email_update`,\n        method: 'POST',\n        body,\n      });\n\n      this.updateMemberIfSelf(response);\n      return response;\n    },\n    getConnectedApps: async (\n      data: B2BOrganizationsMemberGetConnectedAppsOptions,\n    ): Promise<B2BOrganizationsMemberGetConnectedAppsResponse> => {\n      return this._networkClient.fetchSDK<B2BOrganizationsMemberGetConnectedAppsResponse>({\n        url: `b2b/organizations/members/${data.member_id}/connected_apps`,\n        method: 'GET',\n      });\n    },\n    revokeConnectedApp: async (\n      data: B2BOrganizationsMemberRevokeConnectedAppOptions,\n    ): Promise<B2BOrganizationsMemberRevokeConnectedAppResponse> => {\n      return this._networkClient.fetchSDK<B2BOrganizationsMemberRevokeConnectedAppResponse>({\n        url: `/b2b/organizations/members/${data.member_id}/connected_apps/${data.connected_app_id}/revoke`,\n        method: 'POST',\n      });\n    },\n  };\n\n  private updateMemberIfSelf = (response: MemberResponseCommon) => {\n    if (response.member_id === this._subscriptionService.getMember()?.member_id) {\n      this._subscriptionService.updateMember(response.member);\n    }\n  };\n}\n"],"names":["HeadlessB2BOrganizationClient","_networkClient","_apiNetworkClient","_subscriptionService","get","resp","fetchSDK","url","method","updateOrganization","organization","getSync","getOrganization","getInfo","fromCache","getFromCache","onChange","callback","subscribeToState","state","update","data","body","delete","destroyState","getBySlug","getConnectedApps","getConnectedApp","connected_app_id","members","create","search","response","member_id","updateMemberIfSelf","deletePassword","passwordId","deleteMFAPhoneNumber","memberId","deleteMFATOTP","getMember","reactivate","unlinkRetiredEmail","startEmailUpdate","revokeConnectedApp","updateMember","member"],"mappings":"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"}