@microsoft/teams.api
Version:
<p> <a href="https://www.npmjs.com/package/@microsoft/teams.api" target="_blank"> <img src="https://img.shields.io/npm/v/@microsoft/teams.api/latest" /> </a> <a href="https://www.npmjs.com/package/@microsoft/teams.api?activeTab=code" t
1 lines • 8.91 kB
Source Map (JSON)
{"version":3,"sources":["../../src/clients/index.ts"],"names":["HttpClient"],"mappings":"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","file":"index.mjs","sourcesContent":["import {\n Client as HttpClient,\n type ClientOptions as HttpClientOptions\n} from '@microsoft/teams.common';\n\nimport { CloudEnvironment } from '../auth/cloud-environment';\nimport type { ITokenProvider } from '../auth/credentials';\nimport { AgenticIdentity } from '../models';\n\nimport { ApiClientSettings, mergeApiClientSettings } from './api-client-settings';\nimport {\n ensureApiOutboundTelemetryMiddleware\n} from './api-outbound-middleware';\nimport { BotClient } from './bot';\nimport { ConversationClient } from './conversation';\nimport { MeetingClient } from './meeting';\nimport { ReactionClient } from './reaction';\nimport { normalizeServiceUrl } from './service-url';\nimport { TeamClient } from './team';\nimport { createTokenProviderFactory } from './token-provider-factory';\nimport { UserClient } from './user';\n\n/**\n * Options for creating a scoped API client from an existing client.\n */\nexport type ApiClientCloneOptions = Omit<Partial<ApiClientSettings>, 'agenticIdentity'> & {\n /**\n * Service URL for the scoped client. Defaults to the current client's service URL.\n */\n readonly serviceUrl?: string;\n\n /**\n * `undefined` preserves the current client default; `null` clears it.\n */\n readonly agenticIdentity?: AgenticIdentity | null;\n};\n\n/**\n * Options for creating a scoped API client for a specific Bot Framework service URL.\n */\nexport type ApiClientFromServiceUrlOptions = {\n /**\n * Service URL for the scoped client.\n */\n readonly serviceUrl: string;\n};\n\nexport class Client {\n readonly serviceUrl: string;\n readonly bots: BotClient;\n readonly users: UserClient;\n readonly conversations: ConversationClient;\n readonly teams: TeamClient;\n readonly meetings: MeetingClient;\n readonly reactions: ReactionClient;\n\n get http() {\n return this._http;\n }\n set http(v) {\n const http = this.prepareHttpClient(v);\n this.bots.http = http;\n this.users.http = http;\n this.conversations.http = http;\n this.teams.http = http;\n this.meetings.http = http;\n this.reactions.http = http;\n this._http = http;\n }\n protected _http: HttpClient;\n protected _baseHttp!: HttpClient;\n protected _apiClientSettings: Partial<ApiClientSettings>;\n protected _tokenProvider?: ITokenProvider;\n protected _cloud?: CloudEnvironment;\n protected _defaultAgenticIdentity?: AgenticIdentity;\n\n constructor(\n serviceUrl: string,\n httpOptions?: HttpClient | HttpClientOptions,\n apiClientSettings?: Partial<ApiClientSettings>,\n ) {\n this.serviceUrl = normalizeServiceUrl(serviceUrl);\n this._cloud = apiClientSettings?.cloud;\n this._tokenProvider = apiClientSettings?.tokenProvider;\n this._defaultAgenticIdentity = apiClientSettings?.agenticIdentity;\n\n if (!httpOptions) {\n this._http = this.prepareHttpClient(new HttpClient());\n } else if ('request' in httpOptions) {\n this._http = this.prepareHttpClient(httpOptions);\n } else {\n this._http = this.prepareHttpClient(new HttpClient({\n ...httpOptions,\n headers: {\n ...httpOptions?.headers,\n 'Content-Type': 'application/json',\n },\n }));\n }\n\n this._apiClientSettings = mergeApiClientSettings(apiClientSettings, this._cloud);\n\n this.bots = new BotClient(this.http, this._apiClientSettings, this._cloud);\n this.users = new UserClient(this.http, this._apiClientSettings, this._cloud);\n this.conversations = new ConversationClient(this.serviceUrl, this.http, this._apiClientSettings);\n this.teams = new TeamClient(this.serviceUrl, this.http, this._apiClientSettings);\n this.meetings = new MeetingClient(this.serviceUrl, this.http, this._apiClientSettings);\n this.reactions = new ReactionClient(this.serviceUrl, this.http, this._apiClientSettings);\n }\n\n /**\n * Create a scoped API client that reuses this client's HTTP configuration and token provider.\n */\n clone(options: ApiClientCloneOptions = {}): Client {\n const { serviceUrl, agenticIdentity, ...apiClientSettings } = options;\n const http = this._baseHttp.clone();\n if (this._tokenProvider) {\n http.token = undefined;\n }\n\n return new Client(\n serviceUrl ?? this.serviceUrl,\n http,\n {\n ...this._apiClientSettings,\n ...apiClientSettings,\n ...(agenticIdentity === undefined ? {} : { agenticIdentity: agenticIdentity ?? undefined }),\n }\n );\n }\n\n /**\n * Create a scoped API client for the provided agentic identity.\n *\n * @param agenticIdentity Agentic operation identity used by the scoped client\n * when acquiring auth tokens.\n */\n forAgenticIdentity(agenticIdentity: AgenticIdentity): Client {\n return this.clone({ agenticIdentity });\n }\n\n /**\n * Create a scoped API client for the provided Bot Framework service URL.\n */\n fromServiceUrl(options: ApiClientFromServiceUrlOptions): Client {\n return this.clone(options);\n }\n\n private prepareHttpClient(http: HttpClient): HttpClient {\n if (this._tokenProvider && http.token !== undefined) {\n throw new Error('Cannot use both a token provider and an HTTP client token.');\n }\n\n ensureApiOutboundTelemetryMiddleware(http);\n if (this._tokenProvider) {\n http.token = createTokenProviderFactory(this._tokenProvider, this._defaultAgenticIdentity, this._cloud);\n }\n\n this._baseHttp = http;\n return http;\n }\n\n}\n\nexport * from './user';\nexport * from './bot';\nexport * from './conversation';\nexport * from './meeting';\nexport * from './reaction';\nexport * from './team';\nexport * from './api-client-settings';\n"]}