{"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","fetchSDK","url","method","body","updateConnection","connection_id","deleteConnection","connectionId","getConnection","getConnectionGroups","rotateStart","rotateComplete","rotateCancel"],"mappings":"AAkBO,MAAMA,qBAAAA,CAAAA;;;AAGX,IAAA,WAAA,CACE,cAAwC,EAC9BC,oBAAoE,CAC9E;aAFUC,cAAAA,GAAAA,cAAAA;aACAD,oBAAAA,GAAAA,oBAAAA;AACT,IAAA;IAEH,MAAME,gBAAAA,CAAiBC,IAAoC,EAA4C;AAMrG,QAAA,OAAO,MAAM,IAAI,CAACF,cAAc,CAACG,QAAQ,CAAkC;YACzEC,GAAAA,EAAK,WAAA;YACLC,MAAAA,EAAQ,MAAA;YACRC,IAAAA,EAAMJ;AACR,SAAA,CAAA;AACF,IAAA;IAEA,MAAMK,gBAAAA,CAAiBL,IAAoC,EAA4C;AAOrG,QAAA,OAAO,MAAM,IAAI,CAACF,cAAc,CAACG,QAAQ,CAAkC;AACzEC,YAAAA,GAAAA,EAAK,CAAC,UAAU,EAAEF,IAAAA,CAAKM,aAAa,CAAA,CAAE;YACtCH,MAAAA,EAAQ,KAAA;YACRC,IAAAA,EAAMJ;AACR,SAAA,CAAA;AACF,IAAA;IAEA,MAAMO,gBAAAA,CAAiBC,YAAoB,EAA4C;AASrF,QAAA,OAAO,MAAM,IAAI,CAACV,cAAc,CAACG,QAAQ,CAAkC;YACzEC,GAAAA,EAAK,CAAC,UAAU,EAAEM,YAAAA,CAAAA,CAAc;YAChCL,MAAAA,EAAQ;AACV,SAAA,CAAA;AACF,IAAA;AAEA,IAAA,MAAMM,aAAAA,GAAuD;AAC3D,QAAA,OAAO,MAAM,IAAI,CAACX,cAAc,CAACG,QAAQ,CAA+B;YACtEC,GAAAA,EAAK,WAAA;YACLC,MAAAA,EAAQ;AACV,SAAA,CAAA;AACF,IAAA;IAEA,MAAMO,mBAAAA,CAAoBV,IAAuC,EAA+C;AAM9G,QAAA,OAAO,MAAM,IAAI,CAACF,cAAc,CAACG,QAAQ,CAAqC;YAC5EC,GAAAA,EAAK,kBAAA;YACLC,MAAAA,EAAQ,MAAA;YACRC,IAAAA,EAAMJ;AACR,SAAA,CAAA;AACF,IAAA;IAEA,MAAMW,WAAAA,CAAYH,YAAoB,EAAuC;AAQ3E,QAAA,OAAO,MAAM,IAAI,CAACV,cAAc,CAACG,QAAQ,CAA6B;YACpEC,GAAAA,EAAK,CAAC,sBAAsB,CAAC;YAC7BC,MAAAA,EAAQ,MAAA;YACRC,IAAAA,EAAM;gBAAEE,aAAAA,EAAeE;AAAa;AACtC,SAAA,CAAA;AACF,IAAA;IAEA,MAAMI,cAAAA,CAAeJ,YAAoB,EAA0C;AASjF,QAAA,OAAO,MAAM,IAAI,CAACV,cAAc,CAACG,QAAQ,CAAgC;YACvEC,GAAAA,EAAK,CAAC,yBAAyB,CAAC;YAChCC,MAAAA,EAAQ,MAAA;YACRC,IAAAA,EAAM;gBAAEE,aAAAA,EAAeE;AAAa;AACtC,SAAA,CAAA;AACF,IAAA;IAEA,MAAMK,YAAAA,CAAaL,YAAoB,EAAwC;AAS7E,QAAA,OAAO,MAAM,IAAI,CAACV,cAAc,CAACG,QAAQ,CAA8B;YACrEC,GAAAA,EAAK,CAAC,uBAAuB,CAAC;YAC9BC,MAAAA,EAAQ,MAAA;YACRC,IAAAA,EAAM;gBAAEE,aAAAA,EAAeE;AAAa;AACtC,SAAA,CAAA;AACF,IAAA;AACF;;;;"}