{"version":3,"sources":["../../../src/clients/user/token.ts"],"names":["HttpClient"],"mappings":"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","file":"token.mjs","sourcesContent":["import qs from 'qs';\n\nimport {\n  Client as HttpClient,\n  type ClientOptions as HttpClientOptions\n} from '@microsoft/teams.common';\n\nimport { ChannelID, TokenExchangeRequest, TokenResponse, TokenStatus } from '../../models';\nimport { ApiClientSettings, mergeApiClientSettings } from '../api-client-settings';\n\nexport type GetUserTokenParams = {\n  userId: string;\n  connectionName: string;\n  channelId?: ChannelID;\n  code?: string;\n};\n\nexport type GetUserAADTokenParams = {\n  userId: string;\n  connectionName: string;\n  resourceUrls: string[];\n  channelId: ChannelID;\n};\n\nexport type GetUserTokenStatusParams = {\n  userId: string;\n  channelId: ChannelID;\n  includeFilter: string;\n};\n\nexport type SignOutUserParams = {\n  userId: string;\n  connectionName: string;\n  channelId: ChannelID;\n};\n\nexport type ExchangeUserTokenParams = {\n  userId: string;\n  connectionName: string;\n  channelId: ChannelID;\n  exchangeRequest: TokenExchangeRequest;\n};\n\nexport const USER_TOKEN_ENDPOINTS = {\n  GET_TOKEN: 'api/usertoken/GetToken',\n  GET_AAD_TOKENS: 'api/usertoken/GetAadTokens',\n  GET_STATUS: 'api/usertoken/GetTokenStatus',\n  SIGN_OUT: 'api/usertoken/SignOut',\n  EXCHANGE: 'api/usertoken/exchange',\n};\n\nexport class UserTokenClient {\n  get http() {\n    return this._http;\n  }\n  set http(v) {\n    this._http = v;\n  }\n  protected _http: HttpClient;\n  protected _apiClientSettings: Partial<ApiClientSettings>;\n\n  constructor(options?: HttpClient | HttpClientOptions, apiClientSettings?: Partial<ApiClientSettings>) {\n    if (!options) {\n      this._http = new HttpClient();\n    } else if ('request' in options) {\n      this._http = options;\n    } else {\n      this._http = new HttpClient(options);\n    }\n\n    this._apiClientSettings = mergeApiClientSettings(apiClientSettings);\n  }\n\n  async get(params: GetUserTokenParams) {\n    const q = qs.stringify(params);\n    const res = await this.http.get<TokenResponse>(\n      `${this._apiClientSettings.oauthUrl}/${USER_TOKEN_ENDPOINTS.GET_TOKEN}?${q}`\n    );\n\n    return res.data;\n  }\n\n  async getAad(params: GetUserAADTokenParams) {\n    const q = qs.stringify(params);\n    const res = await this.http.post<Record<string, TokenResponse>>(\n      `${this._apiClientSettings.oauthUrl}/${USER_TOKEN_ENDPOINTS.GET_AAD_TOKENS}?${q}`,\n      params\n    );\n\n    return res.data;\n  }\n\n  async getStatus(params: GetUserTokenStatusParams) {\n    const q = qs.stringify(params);\n    const res = await this.http.get<TokenStatus[]>(\n      `${this._apiClientSettings.oauthUrl}/${USER_TOKEN_ENDPOINTS.GET_STATUS}?${q}`\n    );\n\n    return res.data;\n  }\n\n  async signOut(params: SignOutUserParams) {\n    const q = qs.stringify(params);\n    const res = await this.http.delete<void>(\n      `${this._apiClientSettings.oauthUrl}/${USER_TOKEN_ENDPOINTS.SIGN_OUT}?${q}`,\n      { data: params }\n    );\n\n    return res.data;\n  }\n\n  async exchange(params: ExchangeUserTokenParams) {\n    const q = qs.stringify({\n      userId: params.userId,\n      connectionName: params.connectionName,\n      channelId: params.channelId,\n    });\n\n    const res = await this.http.post<TokenResponse>(\n      `${this._apiClientSettings.oauthUrl}/${USER_TOKEN_ENDPOINTS.EXCHANGE}?${q}`,\n      params.exchangeRequest\n    );\n\n    return res.data;\n  }\n}\n"]}