{"version":3,"file":"HeadlessB2BDiscoveryClient.mjs","sources":["../../../../../../../../core/src/HeadlessClients/b2b/HeadlessB2BDiscoveryClient.ts"],"sourcesContent":["import { IB2BSubscriptionService, INetworkClient } from '../..';\nimport {\n  B2BDiscoveryIntermediateSessionsExchangeOptions,\n  B2BDiscoveryIntermediateSessionsExchangeResponse,\n  B2BDiscoveryOrganizationsCreateOptions,\n  B2BDiscoveryOrganizationsCreateResponse,\n  B2BDiscoveryOrganizationsResponse,\n  IHeadlessB2BDiscoveryClient,\n  StytchProjectConfigurationInput,\n} from '../../public';\nimport { validateInDev } from '../../utils/dev';\n\nexport class HeadlessB2BDiscoveryClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n  implements IHeadlessB2BDiscoveryClient<TProjectConfiguration>\n{\n  organizations: {\n    list: () => Promise<B2BDiscoveryOrganizationsResponse>;\n    create: (\n      data: B2BDiscoveryOrganizationsCreateOptions,\n    ) => Promise<B2BDiscoveryOrganizationsCreateResponse<TProjectConfiguration>>;\n  };\n\n  intermediateSessions: {\n    exchange: (\n      data: B2BDiscoveryIntermediateSessionsExchangeOptions,\n    ) => Promise<B2BDiscoveryIntermediateSessionsExchangeResponse<TProjectConfiguration>>;\n  };\n\n  constructor(\n    private _networkClient: INetworkClient,\n    private _subscriptionService: IB2BSubscriptionService<TProjectConfiguration>,\n  ) {\n    this.organizations = {\n      list: async () =>\n        this._networkClient.fetchSDK<B2BDiscoveryOrganizationsResponse>({\n          url: '/b2b/discovery/organizations',\n          body: {\n            intermediate_session_token: (await this._subscriptionService.getIntermediateSessionToken()) || undefined,\n          },\n          method: 'POST',\n        }),\n      create: this._subscriptionService.withUpdateSession(\n        async (\n          data: B2BDiscoveryOrganizationsCreateOptions,\n        ): Promise<B2BDiscoveryOrganizationsCreateResponse<TProjectConfiguration>> => {\n          validateInDev('stytch.discovery.organizations.create', data, {\n            session_duration_minutes: 'number',\n            organization_name: 'optionalString',\n            organization_slug: 'optionalString',\n            organization_logo_url: 'optionalString',\n            sso_jit_provisioning: 'optionalString',\n            email_allowed_domains: 'optionalStringArray',\n            email_invites: 'optionalString',\n            auth_methods: 'optionalString',\n            allowed_auth_methods: 'optionalStringArray',\n            mfa_policy: 'optionalString',\n          });\n\n          const requestBody = {\n            ...data,\n            intermediate_session_token: (await this._subscriptionService.getIntermediateSessionToken()) || undefined,\n          };\n\n          return this._networkClient.fetchSDK<B2BDiscoveryOrganizationsCreateResponse<TProjectConfiguration>>({\n            url: '/b2b/discovery/organizations/create',\n            body: requestBody,\n            method: 'POST',\n          });\n        },\n      ),\n    };\n\n    this.intermediateSessions = {\n      exchange: this._subscriptionService.withUpdateSession(\n        async (\n          data: B2BDiscoveryIntermediateSessionsExchangeOptions,\n        ): Promise<B2BDiscoveryIntermediateSessionsExchangeResponse<TProjectConfiguration>> => {\n          validateInDev('stytch.discovery.intermediateSessions.exchange', data, {\n            organization_id: 'string',\n            session_duration_minutes: 'number',\n            locale: 'optionalString',\n          });\n\n          const requestBody = {\n            ...data,\n            intermediate_session_token: this._subscriptionService.getIntermediateSessionToken() || undefined,\n          };\n          return this._networkClient.fetchSDK<B2BDiscoveryIntermediateSessionsExchangeResponse<TProjectConfiguration>>({\n            url: '/b2b/discovery/intermediate_sessions/exchange',\n            body: requestBody,\n            method: 'POST',\n          });\n        },\n      ),\n    };\n  }\n}\n"],"names":["HeadlessB2BDiscoveryClient","organizations","intermediateSessions","_subscriptionService","_networkClient","list","fetchSDK","url","body","intermediate_session_token","getIntermediateSessionToken","undefined","method","create","withUpdateSession","data","requestBody","exchange"],"mappings":"AAYO,MAAMA,0BAAAA,CAAAA;;;IAGXC,aAAAA;IAOAC,oBAAAA;AAMA,IAAA,WAAA,CACE,cAAsC,EAC9BC,oBAAoE,CAC5E;aAFQC,cAAAA,GAAAA,cAAAA;aACAD,oBAAAA,GAAAA,oBAAAA;QAER,IAAI,CAACF,aAAa,GAAG;AACnBI,YAAAA,IAAAA,EAAM,UACJ,IAAI,CAACD,cAAc,CAACE,QAAQ,CAAoC;oBAC9DC,GAAAA,EAAK,8BAAA;oBACLC,IAAAA,EAAM;AACJC,wBAAAA,0BAAAA,EAA4B,MAAO,IAAI,CAACN,oBAAoB,CAACO,2BAA2B,EAAA,IAAOC;AACjG,qBAAA;oBACAC,MAAAA,EAAQ;AACV,iBAAA,CAAA;AACFC,YAAAA,MAAAA,EAAQ,IAAI,CAACV,oBAAoB,CAACW,iBAAiB,CACjD,OACEC,IAAAA,GAAAA;AAeA,gBAAA,MAAMC,WAAAA,GAAc;AAClB,oBAAA,GAAGD,IAAI;AACPN,oBAAAA,0BAAAA,EAA4B,MAAO,IAAI,CAACN,oBAAoB,CAACO,2BAA2B,EAAA,IAAOC;AACjG,iBAAA;AAEA,gBAAA,OAAO,IAAI,CAACP,cAAc,CAACE,QAAQ,CAAiE;oBAClGC,GAAAA,EAAK,qCAAA;oBACLC,IAAAA,EAAMQ,WAAAA;oBACNJ,MAAAA,EAAQ;AACV,iBAAA,CAAA;AACF,YAAA,CAAA;AAEJ,SAAA;QAEA,IAAI,CAACV,oBAAoB,GAAG;AAC1Be,YAAAA,QAAAA,EAAU,IAAI,CAACd,oBAAoB,CAACW,iBAAiB,CACnD,OACEC,IAAAA,GAAAA;AAQA,gBAAA,MAAMC,WAAAA,GAAc;AAClB,oBAAA,GAAGD,IAAI;AACPN,oBAAAA,0BAAAA,EAA4B,IAAI,CAACN,oBAAoB,CAACO,2BAA2B,EAAA,IAAMC;AACzF,iBAAA;AACA,gBAAA,OAAO,IAAI,CAACP,cAAc,CAACE,QAAQ,CAA0E;oBAC3GC,GAAAA,EAAK,+CAAA;oBACLC,IAAAA,EAAMQ,WAAAA;oBACNJ,MAAAA,EAAQ;AACV,iBAAA,CAAA;AACF,YAAA,CAAA;AAEJ,SAAA;AACF,IAAA;AACF;;;;"}