{"version":3,"sources":["../../../src/clients/conversation/activity.ts"],"names":["HttpClient"],"mappings":"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","file":"activity.mjs","sourcesContent":["import {\n  Client as HttpClient,\n  type ClientOptions as HttpClientOptions\n} from '@microsoft/teams.common';\n\nimport {\n  toActivityParams,\n  type IMessageActivityInput,\n  type ITypingActivityInput\n} from '../../activities';\nimport { resolveAadObjectId, Resource, TeamsChannelAccount, type DeprecatedInputActivity } from '../../models';\nimport { ApiClientSettings, mergeApiClientSettings } from '../api-client-settings';\n\n/**\n * Payload accepted by the low-level conversation activity client.\n *\n * The OUTBOUND activity union: an app only sends message or typing activity inputs.\n * Kept as a named export for backwards compatibility.\n */\nexport type ActivityParams = IMessageActivityInput | ITypingActivityInput;\ntype ActivityParamsLike = ActivityParams | DeprecatedInputActivity;\n\nexport class ConversationActivityClient {\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: HttpClient;\n  protected _apiClientSettings: Partial<ApiClientSettings>;\n\n  constructor(serviceUrl: string, options?: HttpClient | HttpClientOptions, apiClientSettings?: Partial<ApiClientSettings>) {\n    this.serviceUrl = serviceUrl;\n\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  /**\n   * @deprecated Use MessageActivityInput or TypingActivityInput instead.\n   */\n  async create(conversationId: string, params: DeprecatedInputActivity): Promise<Resource>;\n  async create(conversationId: string, params: ActivityParams): Promise<Resource>;\n  async create(conversationId: string, params: ActivityParamsLike): Promise<Resource>;\n  async create(conversationId: string, params: ActivityParamsLike) {\n    // TODO: Will be deprecated alongside accessor in ConversationClient\n    const activity = toActivityParams(params);\n    const res = await this.http.post<Resource>(\n      `${this.serviceUrl}/v3/conversations/${conversationId}/activities`,\n      activity\n    );\n    return res.data;\n  }\n\n  /**\n   * @deprecated Use MessageActivityInput or TypingActivityInput instead.\n   */\n  async update(conversationId: string, id: string, params: DeprecatedInputActivity): Promise<Resource>;\n  async update(conversationId: string, id: string, params: ActivityParams): Promise<Resource>;\n  async update(conversationId: string, id: string, params: ActivityParamsLike): Promise<Resource>;\n  async update(conversationId: string, id: string, params: ActivityParamsLike) {\n    // TODO: Will be deprecated alongside accessor in ConversationClient\n    const activity = toActivityParams(params);\n    const res = await this.http.put<Resource>(\n      `${this.serviceUrl}/v3/conversations/${conversationId}/activities/${id}`,\n      activity\n    );\n    return res.data;\n  }\n\n  /**\n   * @deprecated Use MessageActivityInput or TypingActivityInput instead.\n   */\n  async reply(conversationId: string, id: string, params: DeprecatedInputActivity): Promise<Resource>;\n  async reply(conversationId: string, id: string, params: ActivityParams): Promise<Resource>;\n  async reply(conversationId: string, id: string, params: ActivityParamsLike): Promise<Resource>;\n  async reply(conversationId: string, id: string, params: ActivityParamsLike) {\n    // TODO: Will be deprecated alongside accessor in ConversationClient\n    const activity = toActivityParams(params);\n    activity.replyToId = id;\n    const res = await this.http.post<Resource>(\n      `${this.serviceUrl}/v3/conversations/${conversationId}/activities`,\n      activity\n    );\n    return res.data;\n  }\n\n  async delete(conversationId: string, id: string) {\n    // TODO: Will be deprecated alongside accessor in ConversationClient\n    const res = await this.http.delete<void>(\n      `${this.serviceUrl}/v3/conversations/${conversationId}/activities/${id}`\n    );\n    return res.data;\n  }\n\n  async getMembers(conversationId: string, id: string): Promise<TeamsChannelAccount[]> {\n    // TODO: Will be deprecated alongside accessor in ConversationClient\n    const res = await this.http.get<TeamsChannelAccount[]>(\n      `${this.serviceUrl}/v3/conversations/${conversationId}/activities/${id}/members`\n    );\n    return (res.data ?? []).map(resolveAadObjectId);\n  }\n\n  /**\n   * @deprecated Use MessageActivityInput or TypingActivityInput instead.\n   */\n  async createTargeted(conversationId: string, params: DeprecatedInputActivity): Promise<Resource>;\n  async createTargeted(conversationId: string, params: ActivityParams): Promise<Resource>;\n  async createTargeted(conversationId: string, params: ActivityParamsLike): Promise<Resource>;\n  async createTargeted(conversationId: string, params: ActivityParamsLike) {\n    // TODO: Will be deprecated alongside accessor in ConversationClient\n    const activity = toActivityParams(params);\n    const res = await this.http.post<Resource>(\n      `${this.serviceUrl}/v3/conversations/${conversationId}/activities?isTargetedActivity=true`,\n      activity\n    );\n    return res.data;\n  }\n\n  /**\n   * @deprecated Use MessageActivityInput or TypingActivityInput instead.\n   */\n  async updateTargeted(conversationId: string, id: string, params: DeprecatedInputActivity): Promise<Resource>;\n  async updateTargeted(conversationId: string, id: string, params: ActivityParams): Promise<Resource>;\n  async updateTargeted(conversationId: string, id: string, params: ActivityParamsLike): Promise<Resource>;\n  async updateTargeted(conversationId: string, id: string, params: ActivityParamsLike) {\n    // TODO: Will be deprecated alongside accessor in ConversationClient\n    const activity = toActivityParams(params);\n    const res = await this.http.put<Resource>(\n      `${this.serviceUrl}/v3/conversations/${conversationId}/activities/${id}?isTargetedActivity=true`,\n      activity\n    );\n    return res.data;\n  }\n\n  async deleteTargeted(conversationId: string, id: string) {\n    // TODO: Will be deprecated alongside accessor in ConversationClient\n    const res = await this.http.delete<void>(\n      `${this.serviceUrl}/v3/conversations/${conversationId}/activities/${id}?isTargetedActivity=true`\n    );\n    return res.data;\n  }\n}\n"]}