{"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","validateInDev","organization_slug","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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"}