{"version":3,"sources":["../../src/clients/meeting.ts"],"names":[],"mappings":";;;AAWO,MAAM,aAAA,CAAc;AAAA,EAChB,UAAA;AAAA,EAET,IAAI,IAAA,GAAO;AACT,IAAA,OAAO,IAAA,CAAK,KAAA;AAAA,EACd;AAAA,EACA,IAAI,KAAK,CAAA,EAAG;AACV,IAAA,IAAA,CAAK,KAAA,GAAQ,CAAA;AAAA,EACf;AAAA,EACU,KAAA;AAAA,EACA,kBAAA;AAAA,EAEV,WAAA,CAAY,UAAA,EAAoB,OAAA,EAAkC,iBAAA,EAAgD;AAChH,IAAA,IAAA,CAAK,UAAA,GAAa,UAAA;AAElB,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,IAAA,CAAK,KAAA,GAAQ,IAAI,MAAA,EAAO;AAAA,IAC1B,CAAA,MAAA,IAAW,aAAa,OAAA,EAAS;AAC/B,MAAA,IAAA,CAAK,KAAA,GAAQ,OAAA;AAAA,IACf,CAAA,MAAO;AACL,MAAA,IAAA,CAAK,KAAA,GAAQ,IAAI,MAAA,CAAO,OAAO,CAAA;AAAA,IACjC;AAEA,IAAA,IAAA,CAAK,kBAAA,GAAqB,uBAAuB,iBAAiB,CAAA;AAAA,EACpE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,QAAQ,EAAA,EAAY;AACxB,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,IAAA,CAAK,GAAA,CAAiB,CAAA,EAAG,IAAA,CAAK,UAAU,CAAA,aAAA,EAAgB,kBAAA,CAAmB,EAAE,CAAC,CAAA,CAAE,CAAA;AACvG,IAAA,OAAO,GAAA,CAAI,IAAA;AAAA,EACb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAM,cAAA,CAAe,SAAA,EAAmB,EAAA,EAAY,QAAA,EAAkB;AACpE,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,IAAA,CAAK,GAAA;AAAA,MAC1B,CAAA,EAAG,IAAA,CAAK,UAAU,CAAA,aAAA,EAAgB,mBAAmB,SAAS,CAAC,CAAA,cAAA,EAAiB,kBAAA,CAAmB,EAAE,CAAC,CAAA,UAAA,EAAa,kBAAA,CAAmB,QAAQ,CAAC,CAAA;AAAA,KACjJ;AACA,IAAA,OAAO,GAAA,CAAI,IAAA;AAAA,EACb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcA,MAAM,gBAAA,CACJ,SAAA,EACA,MAAA,EACkD;AAClD,IAAA,MAAM,IAAA,GAAO;AAAA,MACX,IAAA,EAAM,OAAO,IAAA,IAAQ,6BAAA;AAAA,MACrB,OAAO,MAAA,CAAO;AAAA,KAChB;AACA,IAAA,MAAM,GAAA,GAAM,MAAM,IAAA,CAAK,IAAA,CAAK,IAAA;AAAA,MAC1B,GAAG,IAAA,CAAK,UAAU,CAAA,aAAA,EAAgB,kBAAA,CAAmB,SAAS,CAAC,CAAA,aAAA,CAAA;AAAA,MAC/D;AAAA,KACF;AACA,IAAA,OAAO,IAAI,IAAA,IAAQ,MAAA;AAAA,EACrB;AACF","file":"meeting.mjs","sourcesContent":["import { Client, ClientOptions } from '@microsoft/teams.common/http';\n\nimport {\n  MeetingInfo,\n  MeetingNotificationParams,\n  MeetingNotificationResponse,\n  MeetingParticipant,\n} from '../models';\n\nimport { ApiClientSettings, mergeApiClientSettings } from './api-client-settings';\n\nexport class MeetingClient {\n  readonly serviceUrl: string;\n\n  get http() {\n    return this._http;\n  }\n  set http(v) {\n    this._http = v;\n  }\n  protected _http: Client;\n  protected _apiClientSettings: Partial<ApiClientSettings>;\n\n  constructor(serviceUrl: string, options?: Client | ClientOptions, apiClientSettings?: Partial<ApiClientSettings>) {\n    this.serviceUrl = serviceUrl;\n\n    if (!options) {\n      this._http = new Client();\n    } else if ('request' in options) {\n      this._http = options;\n    } else {\n      this._http = new Client(options);\n    }\n\n    this._apiClientSettings = mergeApiClientSettings(apiClientSettings);\n  }\n\n  /**\n   * Retrieves meeting information including details, organizer, and conversation.\n   * @param id - The meeting ID.\n   */\n  async getById(id: string) {\n    const res = await this.http.get<MeetingInfo>(`${this.serviceUrl}/v1/meetings/${encodeURIComponent(id)}`);\n    return res.data;\n  }\n\n  /**\n   * Retrieves information about a specific participant in a meeting.\n   * @param meetingId - The meeting ID.\n   * @param id - The user AAD object ID\n   * @param tenantId - The tenant ID of the meeting and user.\n   * @returns {MeetingParticipant} The meeting participant information.\n   */\n  async getParticipant(meetingId: string, id: string, tenantId: string) {\n    const res = await this.http.get<MeetingParticipant>(\n      `${this.serviceUrl}/v1/meetings/${encodeURIComponent(meetingId)}/participants/${encodeURIComponent(id)}?tenantId=${encodeURIComponent(tenantId)}`\n    );\n    return res.data;\n  }\n\n  /**\n   * Send a targeted in-meeting notification to specific participants.\n   *\n   * Returns `undefined` on full success (HTTP 202). Returns a `MeetingNotificationResponse`\n   * with per-recipient failure info on partial success (HTTP 207).\n   *\n   * Requires the RSC permission `OnlineMeetingNotification.Send.Chat` and the ECS flag\n   * enabled for the tenant/bot.\n   *\n   * @param meetingId - The BASE64-encoded meeting ID.\n   * @param params - The notification parameters including recipients and surfaces.\n   */\n  async sendNotification(\n    meetingId: string,\n    params: MeetingNotificationParams\n  ): Promise<MeetingNotificationResponse | undefined> {\n    const body = {\n      type: params.type ?? 'targetedMeetingNotification',\n      value: params.value,\n    };\n    const res = await this.http.post<MeetingNotificationResponse>(\n      `${this.serviceUrl}/v1/meetings/${encodeURIComponent(meetingId)}/notification`,\n      body\n    );\n    return res.data || undefined;\n  }\n}\n"]}