{"version":3,"file":"HeadlessB2BSCIMClient.mjs","sources":["../../../../../../../../core/src/HeadlessClients/b2b/HeadlessB2BSCIMClient.ts"],"sourcesContent":["import { IB2BSubscriptionService, INetworkClient } from '../..';\nimport {\n  B2BSCIMCreateConnectionOptions,\n  B2BSCIMCreateConnectionResponse,\n  B2BSCIMDeleteConnectionResponse,\n  B2BSCIMGetConnectionGroupsOptions,\n  B2BSCIMGetConnectionGroupsResponse,\n  B2BSCIMGetConnectionResponse,\n  B2BSCIMRotateCancelResponse,\n  B2BSCIMRotateCompleteResponse,\n  B2BSCIMRotateStartResponse,\n  B2BSCIMUpdateConnectionOptions,\n  B2BSCIMUpdateConnectionResponse,\n  IHeadlessB2BSCIMClient,\n} from '../../public/b2b/scim';\nimport { StytchProjectConfigurationInput } from '../../public/typeConfig';\nimport { validateInDev } from '../../utils/dev';\n\nexport class HeadlessB2BSCIMClient<TProjectConfiguration extends StytchProjectConfigurationInput>\n  implements IHeadlessB2BSCIMClient\n{\n  constructor(\n    protected _networkClient: INetworkClient,\n    protected _subscriptionService: IB2BSubscriptionService<TProjectConfiguration>,\n  ) {}\n\n  async createConnection(data: B2BSCIMCreateConnectionOptions): Promise<B2BSCIMCreateConnectionResponse> {\n    validateInDev('stytch.scim.createConnection', data, {\n      display_name: 'optionalString',\n      identity_provider: 'optionalString',\n    });\n\n    return await this._networkClient.fetchSDK<B2BSCIMCreateConnectionResponse>({\n      url: '/b2b/scim',\n      method: 'POST',\n      body: data,\n    });\n  }\n\n  async updateConnection(data: B2BSCIMUpdateConnectionOptions): Promise<B2BSCIMUpdateConnectionResponse> {\n    validateInDev('stytch.scim.updateConnection', data, {\n      connection_id: 'string',\n      display_name: 'optionalString',\n      identity_provider: 'optionalString',\n    });\n\n    return await this._networkClient.fetchSDK<B2BSCIMUpdateConnectionResponse>({\n      url: `/b2b/scim/${data.connection_id}`,\n      method: 'PUT',\n      body: data,\n    });\n  }\n\n  async deleteConnection(connectionId: string): Promise<B2BSCIMDeleteConnectionResponse> {\n    validateInDev(\n      'stytch.scim.deleteConnection',\n      { connection_id: connectionId },\n      {\n        connection_id: 'string',\n      },\n    );\n\n    return await this._networkClient.fetchSDK<B2BSCIMDeleteConnectionResponse>({\n      url: `/b2b/scim/${connectionId}`,\n      method: 'DELETE',\n    });\n  }\n\n  async getConnection(): Promise<B2BSCIMGetConnectionResponse> {\n    return await this._networkClient.fetchSDK<B2BSCIMGetConnectionResponse>({\n      url: '/b2b/scim',\n      method: 'GET',\n    });\n  }\n\n  async getConnectionGroups(data: B2BSCIMGetConnectionGroupsOptions): Promise<B2BSCIMGetConnectionGroupsResponse> {\n    validateInDev('stytch.scim.getConnectionGroups', data, {\n      limit: 'optionalNumber',\n      cursor: 'optionalString',\n    });\n\n    return await this._networkClient.fetchSDK<B2BSCIMGetConnectionGroupsResponse>({\n      url: '/b2b/scim/groups',\n      method: 'POST',\n      body: data,\n    });\n  }\n\n  async rotateStart(connectionId: string): Promise<B2BSCIMRotateStartResponse> {\n    validateInDev(\n      'stytch.scim.rotateStart',\n      { connectionId },\n      {\n        connectionId: 'string',\n      },\n    );\n    return await this._networkClient.fetchSDK<B2BSCIMRotateStartResponse>({\n      url: `/b2b/scim/rotate/start`,\n      method: 'POST',\n      body: { connection_id: connectionId },\n    });\n  }\n\n  async rotateComplete(connectionId: string): Promise<B2BSCIMRotateCompleteResponse> {\n    validateInDev(\n      'stytch.scim.rotateComplete',\n      { connectionId },\n      {\n        connectionId: 'string',\n      },\n    );\n\n    return await this._networkClient.fetchSDK<B2BSCIMRotateCompleteResponse>({\n      url: `/b2b/scim/rotate/complete`,\n      method: 'POST',\n      body: { connection_id: connectionId },\n    });\n  }\n\n  async rotateCancel(connectionId: string): Promise<B2BSCIMRotateCancelResponse> {\n    validateInDev(\n      'stytch.scim.rotateCancel',\n      { connectionId },\n      {\n        connectionId: 'string',\n      },\n    );\n\n    return await this._networkClient.fetchSDK<B2BSCIMRotateCancelResponse>({\n      url: `/b2b/scim/rotate/cancel`,\n      method: 'POST',\n      body: { connection_id: connectionId },\n    });\n  }\n}\n"],"names":["HeadlessB2BSCIMClient","_subscriptionService","_networkClient","createConnection","data","validateInDev","display_name","identity_provider","fetchSDK","url","method","body","updateConnection","connection_id","deleteConnection","connectionId","getConnection","getConnectionGroups","limit","cursor","rotateStart","rotateComplete","rotateCancel"],"mappings":"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"}