@microsoft/teams.api 0.2.13 → 0.2.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,37 +1,37 @@
1
- # Teams: Api
2
-
3
- <p>
4
- <a href="https://www.npmjs.com/package/@microsoft/teams.api" target="_blank">
5
- <img src="https://img.shields.io/npm/v/@microsoft/teams.api" />
6
- </a>
7
- <a href="https://www.npmjs.com/package/@microsoft/teams.api?activeTab=code" target="_blank">
8
- <img src="https://img.shields.io/bundlephobia/min/@microsoft/teams.api" />
9
- </a>
10
- <a href="https://www.npmjs.com/package/@microsoft/teams.api?activeTab=dependencies" target="_blank">
11
- <img src="https://img.shields.io/librariesio/release/npm/@microsoft/teams.api" />
12
- </a>
13
- <a href="https://www.npmjs.com/package/@microsoft/teams.api" target="_blank">
14
- <img src="https://img.shields.io/npm/dw/@microsoft/teams.api" />
15
- </a>
16
- <a href="https://microsoft.github.io/teams-ai" target="_blank">
17
- <img src="https://img.shields.io/badge/📖 docs-open-blue" />
18
- </a>
19
- </p>
20
-
21
- Model and client implementations used to send and receive requests from Teams.
22
-
23
- <a href="https://microsoft.github.io/teams-ai" target="_blank">
24
- <img src="https://img.shields.io/badge/📖 Getting Started-blue?style=for-the-badge" />
25
- </a>
26
-
27
- ## Install
28
-
29
- ```bash
30
- $: npm install @microsoft/teams.api
31
- ```
32
-
33
- ## Dependencies
34
-
35
- - [`axios`](https://www.npmjs.com/package/axios)
36
- - [`jwt-decode`](https://www.npmjs.com/package/jwt-decode)
37
- - [`qs`](https://www.npmjs.com/package/qs)
1
+ # Teams: Api
2
+
3
+ <p>
4
+ <a href="https://www.npmjs.com/package/@microsoft/teams.api" target="_blank">
5
+ <img src="https://img.shields.io/npm/v/@microsoft/teams.api" />
6
+ </a>
7
+ <a href="https://www.npmjs.com/package/@microsoft/teams.api?activeTab=code" target="_blank">
8
+ <img src="https://img.shields.io/bundlephobia/min/@microsoft/teams.api" />
9
+ </a>
10
+ <a href="https://www.npmjs.com/package/@microsoft/teams.api?activeTab=dependencies" target="_blank">
11
+ <img src="https://img.shields.io/librariesio/release/npm/@microsoft/teams.api" />
12
+ </a>
13
+ <a href="https://www.npmjs.com/package/@microsoft/teams.api" target="_blank">
14
+ <img src="https://img.shields.io/npm/dw/@microsoft/teams.api" />
15
+ </a>
16
+ <a href="https://microsoft.github.io/teams-ai" target="_blank">
17
+ <img src="https://img.shields.io/badge/📖 docs-open-blue" />
18
+ </a>
19
+ </p>
20
+
21
+ Model and client implementations used to send and receive requests from Teams.
22
+
23
+ <a href="https://microsoft.github.io/teams-ai" target="_blank">
24
+ <img src="https://img.shields.io/badge/📖 Getting Started-blue?style=for-the-badge" />
25
+ </a>
26
+
27
+ ## Install
28
+
29
+ ```bash
30
+ $: npm install @microsoft/teams.api
31
+ ```
32
+
33
+ ## Dependencies
34
+
35
+ - [`axios`](https://www.npmjs.com/package/axios)
36
+ - [`jwt-decode`](https://www.npmjs.com/package/jwt-decode)
37
+ - [`qs`](https://www.npmjs.com/package/qs)
@@ -190,7 +190,7 @@ class Activity {
190
190
  if (!messageEntity.additionalType) {
191
191
  messageEntity.additionalType = [];
192
192
  }
193
- messageEntity.additionalType.push(`AIGeneratedContent`);
193
+ messageEntity.additionalType.push("AIGeneratedContent");
194
194
  return this;
195
195
  }
196
196
  /**
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/activities/activity.ts"],"names":[],"mappings":"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","file":"activity.js","sourcesContent":["import {\n Account,\n AIMessageEntity,\n ChannelData,\n ChannelID,\n ChannelInfo,\n CitationAppearance,\n CitationEntity,\n ConversationAccount,\n ConversationReference,\n Entity,\n MeetingInfo,\n MessageEntity,\n NotificationInfo,\n TeamInfo,\n} from '../models';\n\nexport interface IActivity<T extends string = string> {\n /**\n * Contains the type of the activity.\n */\n readonly type: T;\n\n /**\n * Contains an ID that uniquely identifies the activity on the channel.\n */\n id: string;\n\n /**\n * Contains the URL that specifies the channel's service endpoint. Set by the channel.\n */\n serviceUrl?: string;\n\n /**\n * Contains the date and time that the message was sent, in UTC, expressed in ISO-8601 format.\n */\n timestamp?: Date;\n\n /**\n * A locale name for the contents of the text field.\n * The locale name is a combination of an ISO 639 two- or three-letter culture code associated\n * with a language\n * and an ISO 3166 two-letter subculture code associated with a country or region.\n * The locale name can also correspond to a valid BCP-47 language tag.\n */\n locale?: string;\n\n /**\n * Contains the local date and time of the message, expressed in ISO-8601 format.\n *\n * For example, 2016-09-23T13:07:49.4714686-07:00.\n */\n localTimestamp?: Date;\n\n /**\n * Contains an ID that uniquely identifies the channel. Set by the channel.\n */\n channelId: ChannelID;\n\n /**\n * Identifies the sender of the message.\n */\n from: Account;\n\n /**\n * Identifies the conversation to which the activity belongs.\n */\n conversation: ConversationAccount;\n\n /**\n * A reference to another conversation or activity.\n */\n relatesTo?: ConversationReference;\n\n /**\n * Identifies the recipient of the message.\n */\n recipient: Account;\n\n /**\n * Contains the ID of the message to which this message is a reply.\n */\n replyToId?: string;\n\n /**\n * Represents the entities that were mentioned in the message.\n */\n entities?: Entity[];\n\n /**\n * Contains channel-specific content.\n */\n channelData?: ChannelData;\n\n /**\n * Information about the channel in which the message was sent.\n */\n get channel(): ChannelInfo | undefined;\n\n /**\n * Information about the team in which the message was sent.\n */\n get team(): TeamInfo | undefined;\n\n /**\n * Information about the tenant in which the message was sent.\n */\n get meeting(): MeetingInfo | undefined;\n\n /**\n * Notification settings for the message.\n */\n get notification(): NotificationInfo | undefined;\n\n /**\n * is this a streaming activity\n */\n isStreaming(): boolean;\n}\n\nexport class Activity<T extends string = string> implements IActivity<T> {\n /**\n * Contains the type of the activity.\n */\n readonly type!: T;\n\n /**\n * Contains an ID that uniquely identifies the activity on the channel.\n */\n id!: string;\n\n /**\n * Contains the URL that specifies the channel's service endpoint. Set by the channel.\n */\n serviceUrl?: string;\n\n /**\n * Contains the date and time that the message was sent, in UTC, expressed in ISO-8601 format.\n */\n timestamp?: Date;\n\n /**\n * A locale name for the contents of the text field.\n * The locale name is a combination of an ISO 639 two- or three-letter culture code associated\n * with a language\n * and an ISO 3166 two-letter subculture code associated with a country or region.\n * The locale name can also correspond to a valid BCP-47 language tag.\n */\n locale?: string;\n\n /**\n * Contains the local date and time of the message, expressed in ISO-8601 format.\n *\n * For example, 2016-09-23T13:07:49.4714686-07:00.\n */\n localTimestamp?: Date;\n\n /**\n * Contains an ID that uniquely identifies the channel. Set by the channel.\n */\n channelId!: ChannelID;\n\n /**\n * Identifies the sender of the message.\n */\n from!: Account;\n\n /**\n * Identifies the conversation to which the activity belongs.\n */\n conversation!: ConversationAccount;\n\n /**\n * A reference to another conversation or activity.\n */\n relatesTo?: ConversationReference;\n\n /**\n * Identifies the recipient of the message.\n */\n recipient!: Account;\n\n /**\n * Contains the ID of the message to which this message is a reply.\n */\n replyToId?: string;\n\n /**\n * Represents the entities that were mentioned in the message.\n */\n entities?: Entity[];\n\n /**\n * Contains channel-specific content.\n */\n channelData?: ChannelData;\n\n /**\n * Information about the tenant in which the message was sent.\n */\n get tenant() {\n return this.channelData?.tenant;\n }\n\n /**\n * Information about the channel in which the message was sent.\n */\n get channel() {\n return this.channelData?.channel;\n }\n\n /**\n * Information about the team in which the message was sent.\n */\n get team() {\n return this.channelData?.team;\n }\n\n /**\n * Information about the tenant in which the message was sent.\n */\n get meeting() {\n return this.channelData?.meeting;\n }\n\n /**\n * Notification settings for the message.\n */\n get notification() {\n return this.channelData?.notification;\n }\n\n constructor(value: Pick<IActivity<T>, 'type'> & Partial<Omit<IActivity<T>, 'type'>>) {\n Object.assign(this, {\n channelId: 'msteams',\n ...value,\n });\n }\n\n static from(activity: IActivity) {\n return new Activity(activity);\n }\n\n toInterface(): IActivity {\n return Object.assign({}, this);\n }\n\n clone(options: Omit<Partial<IActivity>, 'type'> = {}) {\n return new Activity({\n ...this.toInterface(),\n ...options,\n });\n }\n\n withId(value: string) {\n this.id = value;\n return this;\n }\n\n withReplyToId(value: string) {\n this.replyToId = value;\n return this;\n }\n\n withChannelId(value: ChannelID) {\n this.channelId = value;\n return this;\n }\n\n withFrom(value: Account) {\n this.from = value;\n return this;\n }\n\n withConversation(value: ConversationAccount) {\n this.conversation = value;\n return this;\n }\n\n withRelatesTo(value: ConversationReference) {\n this.relatesTo = value;\n return this;\n }\n\n withRecipient(value: Account) {\n this.recipient = value;\n return this;\n }\n\n withServiceUrl(value: string) {\n this.serviceUrl = value;\n return this;\n }\n\n withTimestamp(value: Date) {\n this.timestamp = value;\n return this;\n }\n\n withLocale(value: string) {\n this.locale = value;\n return this;\n }\n\n withLocalTimestamp(value: Date) {\n this.localTimestamp = value;\n return this;\n }\n\n withChannelData(value: ChannelData) {\n this.channelData = { ...this.channelData, ...value };\n return this;\n }\n\n /**\n * Add an entity.\n */\n addEntity(value: Entity) {\n if (!this.entities) {\n this.entities = [];\n }\n\n this.entities.push(value);\n return this;\n }\n\n /**\n * Add multiple entities\n */\n addEntities(...value: Entity[]) {\n if (!this.entities) {\n this.entities = [];\n }\n\n this.entities.push(...value);\n return this;\n }\n\n /**\n * Add the `Generated By AI` label.\n */\n addAiGenerated() {\n const messageEntity: AIMessageEntity = this.ensureSingleRootLevelMessageEntity();\n if (messageEntity.additionalType?.includes('AIGeneratedContent')) {\n return this;\n }\n\n if (!messageEntity.additionalType) {\n messageEntity.additionalType = [];\n }\n\n messageEntity.additionalType.push(`AIGeneratedContent`);\n return this;\n }\n\n /**\n * Enable message feedback\n */\n addFeedback() {\n if (!this.channelData) {\n this.channelData = {};\n }\n\n this.channelData.feedbackLoopEnabled = true;\n return this;\n }\n\n /**\n * Add citations\n */\n addCitation(position: number, appearance: CitationAppearance) {\n const messageEntity: CitationEntity = this.ensureSingleRootLevelMessageEntity();\n if (!messageEntity.citation) {\n messageEntity.citation = [];\n }\n\n messageEntity.citation.push({\n '@type': 'Claim',\n position,\n appearance: {\n '@type': 'DigitalDocument',\n abstract: appearance.abstract,\n name: appearance.name,\n encodingFormat: 'application/vnd.microsoft.card.adaptive',\n image: appearance.icon\n ? {\n '@type': 'ImageObject',\n name: appearance.icon,\n }\n : undefined,\n keywords: appearance.keywords,\n text: appearance.text,\n url: appearance.url,\n usageInfo: appearance.usageInfo,\n },\n });\n\n return this;\n }\n\n /**\n * is this a streaming activity\n */\n isStreaming() {\n return this.entities?.some((e) => e.type === 'streaminfo') || false;\n }\n\n /**\n * Get or create the base message entity.\n * There should only be one root level message entity.\n */\n private ensureSingleRootLevelMessageEntity(): MessageEntity {\n let mesageEntity = this.entities?.find(\n (e) => e.type === 'https://schema.org/Message' && e['@type'] === 'Message'\n ) as MessageEntity | undefined;\n\n if (!mesageEntity) {\n mesageEntity = {\n type: 'https://schema.org/Message',\n '@type': 'Message',\n '@context': 'https://schema.org',\n '@id': '',\n };\n this.addEntity(mesageEntity);\n }\n\n return mesageEntity;\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/activities/activity.ts"],"names":[],"mappings":";;AAwHO,MAAM,QAA4D,CAAA;AAAA;AAAA;AAAA;AAAA,EAI9D,IAAA;AAAA;AAAA;AAAA;AAAA,EAKT,EAAA;AAAA;AAAA;AAAA;AAAA,EAKA,UAAA;AAAA;AAAA;AAAA;AAAA,EAKA,SAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,cAAA;AAAA;AAAA;AAAA;AAAA,EAKA,SAAA;AAAA;AAAA;AAAA;AAAA,EAKA,IAAA;AAAA;AAAA;AAAA;AAAA,EAKA,YAAA;AAAA;AAAA;AAAA;AAAA,EAKA,SAAA;AAAA;AAAA;AAAA;AAAA,EAKA,SAAA;AAAA;AAAA;AAAA;AAAA,EAKA,SAAA;AAAA;AAAA;AAAA;AAAA,EAKA,QAAA;AAAA;AAAA;AAAA;AAAA,EAKA,WAAA;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,MAAS,GAAA;AACX,IAAA,OAAO,KAAK,WAAa,EAAA,MAAA;AAAA;AAC3B;AAAA;AAAA;AAAA,EAKA,IAAI,OAAU,GAAA;AACZ,IAAA,OAAO,KAAK,WAAa,EAAA,OAAA;AAAA;AAC3B;AAAA;AAAA;AAAA,EAKA,IAAI,IAAO,GAAA;AACT,IAAA,OAAO,KAAK,WAAa,EAAA,IAAA;AAAA;AAC3B;AAAA;AAAA;AAAA,EAKA,IAAI,OAAU,GAAA;AACZ,IAAA,OAAO,KAAK,WAAa,EAAA,OAAA;AAAA;AAC3B;AAAA;AAAA;AAAA,EAKA,IAAI,YAAe,GAAA;AACjB,IAAA,OAAO,KAAK,WAAa,EAAA,YAAA;AAAA;AAC3B,EAEA,YAAY,KAAyE,EAAA;AACnF,IAAA,MAAA,CAAO,OAAO,IAAM,EAAA;AAAA,MAClB,SAAW,EAAA,SAAA;AAAA,MACX,GAAG;AAAA,KACJ,CAAA;AAAA;AACH,EAEA,OAAO,KAAK,QAAqB,EAAA;AAC/B,IAAO,OAAA,IAAI,SAAS,QAAQ,CAAA;AAAA;AAC9B,EAEA,WAAyB,GAAA;AACvB,IAAA,OAAO,MAAO,CAAA,MAAA,CAAO,EAAC,EAAG,IAAI,CAAA;AAAA;AAC/B,EAEA,KAAA,CAAM,OAA4C,GAAA,EAAI,EAAA;AACpD,IAAA,OAAO,IAAI,QAAS,CAAA;AAAA,MAClB,GAAG,KAAK,WAAY,EAAA;AAAA,MACpB,GAAG;AAAA,KACJ,CAAA;AAAA;AACH,EAEA,OAAO,KAAe,EAAA;AACpB,IAAA,IAAA,CAAK,EAAK,GAAA,KAAA;AACV,IAAO,OAAA,IAAA;AAAA;AACT,EAEA,cAAc,KAAe,EAAA;AAC3B,IAAA,IAAA,CAAK,SAAY,GAAA,KAAA;AACjB,IAAO,OAAA,IAAA;AAAA;AACT,EAEA,cAAc,KAAkB,EAAA;AAC9B,IAAA,IAAA,CAAK,SAAY,GAAA,KAAA;AACjB,IAAO,OAAA,IAAA;AAAA;AACT,EAEA,SAAS,KAAgB,EAAA;AACvB,IAAA,IAAA,CAAK,IAAO,GAAA,KAAA;AACZ,IAAO,OAAA,IAAA;AAAA;AACT,EAEA,iBAAiB,KAA4B,EAAA;AAC3C,IAAA,IAAA,CAAK,YAAe,GAAA,KAAA;AACpB,IAAO,OAAA,IAAA;AAAA;AACT,EAEA,cAAc,KAA8B,EAAA;AAC1C,IAAA,IAAA,CAAK,SAAY,GAAA,KAAA;AACjB,IAAO,OAAA,IAAA;AAAA;AACT,EAEA,cAAc,KAAgB,EAAA;AAC5B,IAAA,IAAA,CAAK,SAAY,GAAA,KAAA;AACjB,IAAO,OAAA,IAAA;AAAA;AACT,EAEA,eAAe,KAAe,EAAA;AAC5B,IAAA,IAAA,CAAK,UAAa,GAAA,KAAA;AAClB,IAAO,OAAA,IAAA;AAAA;AACT,EAEA,cAAc,KAAa,EAAA;AACzB,IAAA,IAAA,CAAK,SAAY,GAAA,KAAA;AACjB,IAAO,OAAA,IAAA;AAAA;AACT,EAEA,WAAW,KAAe,EAAA;AACxB,IAAA,IAAA,CAAK,MAAS,GAAA,KAAA;AACd,IAAO,OAAA,IAAA;AAAA;AACT,EAEA,mBAAmB,KAAa,EAAA;AAC9B,IAAA,IAAA,CAAK,cAAiB,GAAA,KAAA;AACtB,IAAO,OAAA,IAAA;AAAA;AACT,EAEA,gBAAgB,KAAoB,EAAA;AAClC,IAAA,IAAA,CAAK,cAAc,EAAE,GAAG,IAAK,CAAA,WAAA,EAAa,GAAG,KAAM,EAAA;AACnD,IAAO,OAAA,IAAA;AAAA;AACT;AAAA;AAAA;AAAA,EAKA,UAAU,KAAe,EAAA;AACvB,IAAI,IAAA,CAAC,KAAK,QAAU,EAAA;AAClB,MAAA,IAAA,CAAK,WAAW,EAAC;AAAA;AAGnB,IAAK,IAAA,CAAA,QAAA,CAAS,KAAK,KAAK,CAAA;AACxB,IAAO,OAAA,IAAA;AAAA;AACT;AAAA;AAAA;AAAA,EAKA,eAAe,KAAiB,EAAA;AAC9B,IAAI,IAAA,CAAC,KAAK,QAAU,EAAA;AAClB,MAAA,IAAA,CAAK,WAAW,EAAC;AAAA;AAGnB,IAAK,IAAA,CAAA,QAAA,CAAS,IAAK,CAAA,GAAG,KAAK,CAAA;AAC3B,IAAO,OAAA,IAAA;AAAA;AACT;AAAA;AAAA;AAAA,EAKA,cAAiB,GAAA;AACf,IAAM,MAAA,aAAA,GAAiC,KAAK,kCAAmC,EAAA;AAC/E,IAAA,IAAI,aAAc,CAAA,cAAA,EAAgB,QAAS,CAAA,oBAAoB,CAAG,EAAA;AAChE,MAAO,OAAA,IAAA;AAAA;AAGT,IAAI,IAAA,CAAC,cAAc,cAAgB,EAAA;AACjC,MAAA,aAAA,CAAc,iBAAiB,EAAC;AAAA;AAGlC,IAAc,aAAA,CAAA,cAAA,CAAe,KAAK,oBAAoB,CAAA;AACtD,IAAO,OAAA,IAAA;AAAA;AACT;AAAA;AAAA;AAAA,EAKA,WAAc,GAAA;AACZ,IAAI,IAAA,CAAC,KAAK,WAAa,EAAA;AACrB,MAAA,IAAA,CAAK,cAAc,EAAC;AAAA;AAGtB,IAAA,IAAA,CAAK,YAAY,mBAAsB,GAAA,IAAA;AACvC,IAAO,OAAA,IAAA;AAAA;AACT;AAAA;AAAA;AAAA,EAKA,WAAA,CAAY,UAAkB,UAAgC,EAAA;AAC5D,IAAM,MAAA,aAAA,GAAgC,KAAK,kCAAmC,EAAA;AAC9E,IAAI,IAAA,CAAC,cAAc,QAAU,EAAA;AAC3B,MAAA,aAAA,CAAc,WAAW,EAAC;AAAA;AAG5B,IAAA,aAAA,CAAc,SAAS,IAAK,CAAA;AAAA,MAC1B,OAAS,EAAA,OAAA;AAAA,MACT,QAAA;AAAA,MACA,UAAY,EAAA;AAAA,QACV,OAAS,EAAA,iBAAA;AAAA,QACT,UAAU,UAAW,CAAA,QAAA;AAAA,QACrB,MAAM,UAAW,CAAA,IAAA;AAAA,QACjB,cAAgB,EAAA,yCAAA;AAAA,QAChB,KAAA,EAAO,WAAW,IACd,GAAA;AAAA,UACE,OAAS,EAAA,aAAA;AAAA,UACT,MAAM,UAAW,CAAA;AAAA,SAEnB,GAAA,MAAA;AAAA,QACJ,UAAU,UAAW,CAAA,QAAA;AAAA,QACrB,MAAM,UAAW,CAAA,IAAA;AAAA,QACjB,KAAK,UAAW,CAAA,GAAA;AAAA,QAChB,WAAW,UAAW,CAAA;AAAA;AACxB,KACD,CAAA;AAED,IAAO,OAAA,IAAA;AAAA;AACT;AAAA;AAAA;AAAA,EAKA,WAAc,GAAA;AACZ,IAAO,OAAA,IAAA,CAAK,UAAU,IAAK,CAAA,CAAC,MAAM,CAAE,CAAA,IAAA,KAAS,YAAY,CAAK,IAAA,KAAA;AAAA;AAChE;AAAA;AAAA;AAAA;AAAA,EAMQ,kCAAoD,GAAA;AAC1D,IAAI,IAAA,YAAA,GAAe,KAAK,QAAU,EAAA,IAAA;AAAA,MAChC,CAAC,CAAM,KAAA,CAAA,CAAE,SAAS,4BAAgC,IAAA,CAAA,CAAE,OAAO,CAAM,KAAA;AAAA,KACnE;AAEA,IAAA,IAAI,CAAC,YAAc,EAAA;AACjB,MAAe,YAAA,GAAA;AAAA,QACb,IAAM,EAAA,4BAAA;AAAA,QACN,OAAS,EAAA,SAAA;AAAA,QACT,UAAY,EAAA,oBAAA;AAAA,QACZ,KAAO,EAAA;AAAA,OACT;AACA,MAAA,IAAA,CAAK,UAAU,YAAY,CAAA;AAAA;AAG7B,IAAO,OAAA,YAAA;AAAA;AAEX","file":"activity.js","sourcesContent":["import {\n Account,\n AIMessageEntity,\n ChannelData,\n ChannelID,\n ChannelInfo,\n CitationAppearance,\n CitationEntity,\n ConversationAccount,\n ConversationReference,\n Entity,\n MeetingInfo,\n MessageEntity,\n NotificationInfo,\n TeamInfo,\n} from '../models';\n\nexport interface IActivity<T extends string = string> {\n /**\n * Contains the type of the activity.\n */\n readonly type: T;\n\n /**\n * Contains an ID that uniquely identifies the activity on the channel.\n */\n id: string;\n\n /**\n * Contains the URL that specifies the channel's service endpoint. Set by the channel.\n */\n serviceUrl?: string;\n\n /**\n * Contains the date and time that the message was sent, in UTC, expressed in ISO-8601 format.\n */\n timestamp?: Date;\n\n /**\n * A locale name for the contents of the text field.\n * The locale name is a combination of an ISO 639 two- or three-letter culture code associated\n * with a language\n * and an ISO 3166 two-letter subculture code associated with a country or region.\n * The locale name can also correspond to a valid BCP-47 language tag.\n */\n locale?: string;\n\n /**\n * Contains the local date and time of the message, expressed in ISO-8601 format.\n *\n * For example, 2016-09-23T13:07:49.4714686-07:00.\n */\n localTimestamp?: Date;\n\n /**\n * Contains an ID that uniquely identifies the channel. Set by the channel.\n */\n channelId: ChannelID;\n\n /**\n * Identifies the sender of the message.\n */\n from: Account;\n\n /**\n * Identifies the conversation to which the activity belongs.\n */\n conversation: ConversationAccount;\n\n /**\n * A reference to another conversation or activity.\n */\n relatesTo?: ConversationReference;\n\n /**\n * Identifies the recipient of the message.\n */\n recipient: Account;\n\n /**\n * Contains the ID of the message to which this message is a reply.\n */\n replyToId?: string;\n\n /**\n * Represents the entities that were mentioned in the message.\n */\n entities?: Entity[];\n\n /**\n * Contains channel-specific content.\n */\n channelData?: ChannelData;\n\n /**\n * Information about the channel in which the message was sent.\n */\n get channel(): ChannelInfo | undefined;\n\n /**\n * Information about the team in which the message was sent.\n */\n get team(): TeamInfo | undefined;\n\n /**\n * Information about the tenant in which the message was sent.\n */\n get meeting(): MeetingInfo | undefined;\n\n /**\n * Notification settings for the message.\n */\n get notification(): NotificationInfo | undefined;\n\n /**\n * is this a streaming activity\n */\n isStreaming(): boolean;\n}\n\nexport class Activity<T extends string = string> implements IActivity<T> {\n /**\n * Contains the type of the activity.\n */\n readonly type!: T;\n\n /**\n * Contains an ID that uniquely identifies the activity on the channel.\n */\n id!: string;\n\n /**\n * Contains the URL that specifies the channel's service endpoint. Set by the channel.\n */\n serviceUrl?: string;\n\n /**\n * Contains the date and time that the message was sent, in UTC, expressed in ISO-8601 format.\n */\n timestamp?: Date;\n\n /**\n * A locale name for the contents of the text field.\n * The locale name is a combination of an ISO 639 two- or three-letter culture code associated\n * with a language\n * and an ISO 3166 two-letter subculture code associated with a country or region.\n * The locale name can also correspond to a valid BCP-47 language tag.\n */\n locale?: string;\n\n /**\n * Contains the local date and time of the message, expressed in ISO-8601 format.\n *\n * For example, 2016-09-23T13:07:49.4714686-07:00.\n */\n localTimestamp?: Date;\n\n /**\n * Contains an ID that uniquely identifies the channel. Set by the channel.\n */\n channelId!: ChannelID;\n\n /**\n * Identifies the sender of the message.\n */\n from!: Account;\n\n /**\n * Identifies the conversation to which the activity belongs.\n */\n conversation!: ConversationAccount;\n\n /**\n * A reference to another conversation or activity.\n */\n relatesTo?: ConversationReference;\n\n /**\n * Identifies the recipient of the message.\n */\n recipient!: Account;\n\n /**\n * Contains the ID of the message to which this message is a reply.\n */\n replyToId?: string;\n\n /**\n * Represents the entities that were mentioned in the message.\n */\n entities?: Entity[];\n\n /**\n * Contains channel-specific content.\n */\n channelData?: ChannelData;\n\n /**\n * Information about the tenant in which the message was sent.\n */\n get tenant() {\n return this.channelData?.tenant;\n }\n\n /**\n * Information about the channel in which the message was sent.\n */\n get channel() {\n return this.channelData?.channel;\n }\n\n /**\n * Information about the team in which the message was sent.\n */\n get team() {\n return this.channelData?.team;\n }\n\n /**\n * Information about the tenant in which the message was sent.\n */\n get meeting() {\n return this.channelData?.meeting;\n }\n\n /**\n * Notification settings for the message.\n */\n get notification() {\n return this.channelData?.notification;\n }\n\n constructor(value: Pick<IActivity<T>, 'type'> & Partial<Omit<IActivity<T>, 'type'>>) {\n Object.assign(this, {\n channelId: 'msteams',\n ...value,\n });\n }\n\n static from(activity: IActivity) {\n return new Activity(activity);\n }\n\n toInterface(): IActivity {\n return Object.assign({}, this);\n }\n\n clone(options: Omit<Partial<IActivity>, 'type'> = {}) {\n return new Activity({\n ...this.toInterface(),\n ...options,\n });\n }\n\n withId(value: string) {\n this.id = value;\n return this;\n }\n\n withReplyToId(value: string) {\n this.replyToId = value;\n return this;\n }\n\n withChannelId(value: ChannelID) {\n this.channelId = value;\n return this;\n }\n\n withFrom(value: Account) {\n this.from = value;\n return this;\n }\n\n withConversation(value: ConversationAccount) {\n this.conversation = value;\n return this;\n }\n\n withRelatesTo(value: ConversationReference) {\n this.relatesTo = value;\n return this;\n }\n\n withRecipient(value: Account) {\n this.recipient = value;\n return this;\n }\n\n withServiceUrl(value: string) {\n this.serviceUrl = value;\n return this;\n }\n\n withTimestamp(value: Date) {\n this.timestamp = value;\n return this;\n }\n\n withLocale(value: string) {\n this.locale = value;\n return this;\n }\n\n withLocalTimestamp(value: Date) {\n this.localTimestamp = value;\n return this;\n }\n\n withChannelData(value: ChannelData) {\n this.channelData = { ...this.channelData, ...value };\n return this;\n }\n\n /**\n * Add an entity.\n */\n addEntity(value: Entity) {\n if (!this.entities) {\n this.entities = [];\n }\n\n this.entities.push(value);\n return this;\n }\n\n /**\n * Add multiple entities\n */\n addEntities(...value: Entity[]) {\n if (!this.entities) {\n this.entities = [];\n }\n\n this.entities.push(...value);\n return this;\n }\n\n /**\n * Add the `Generated By AI` label.\n */\n addAiGenerated() {\n const messageEntity: AIMessageEntity = this.ensureSingleRootLevelMessageEntity();\n if (messageEntity.additionalType?.includes('AIGeneratedContent')) {\n return this;\n }\n\n if (!messageEntity.additionalType) {\n messageEntity.additionalType = [];\n }\n\n messageEntity.additionalType.push('AIGeneratedContent');\n return this;\n }\n\n /**\n * Enable message feedback\n */\n addFeedback() {\n if (!this.channelData) {\n this.channelData = {};\n }\n\n this.channelData.feedbackLoopEnabled = true;\n return this;\n }\n\n /**\n * Add citations\n */\n addCitation(position: number, appearance: CitationAppearance) {\n const messageEntity: CitationEntity = this.ensureSingleRootLevelMessageEntity();\n if (!messageEntity.citation) {\n messageEntity.citation = [];\n }\n\n messageEntity.citation.push({\n '@type': 'Claim',\n position,\n appearance: {\n '@type': 'DigitalDocument',\n abstract: appearance.abstract,\n name: appearance.name,\n encodingFormat: 'application/vnd.microsoft.card.adaptive',\n image: appearance.icon\n ? {\n '@type': 'ImageObject',\n name: appearance.icon,\n }\n : undefined,\n keywords: appearance.keywords,\n text: appearance.text,\n url: appearance.url,\n usageInfo: appearance.usageInfo,\n },\n });\n\n return this;\n }\n\n /**\n * is this a streaming activity\n */\n isStreaming() {\n return this.entities?.some((e) => e.type === 'streaminfo') || false;\n }\n\n /**\n * Get or create the base message entity.\n * There should only be one root level message entity.\n */\n private ensureSingleRootLevelMessageEntity(): MessageEntity {\n let mesageEntity = this.entities?.find(\n (e) => e.type === 'https://schema.org/Message' && e['@type'] === 'Message'\n ) as MessageEntity | undefined;\n\n if (!mesageEntity) {\n mesageEntity = {\n type: 'https://schema.org/Message',\n '@type': 'Message',\n '@context': 'https://schema.org',\n '@id': '',\n };\n this.addEntity(mesageEntity);\n }\n\n return mesageEntity;\n }\n}\n"]}
@@ -188,7 +188,7 @@ class Activity {
188
188
  if (!messageEntity.additionalType) {
189
189
  messageEntity.additionalType = [];
190
190
  }
191
- messageEntity.additionalType.push(`AIGeneratedContent`);
191
+ messageEntity.additionalType.push("AIGeneratedContent");
192
192
  return this;
193
193
  }
194
194
  /**
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/activities/activity.ts"],"names":[],"mappings":"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","file":"activity.mjs","sourcesContent":["import {\n Account,\n AIMessageEntity,\n ChannelData,\n ChannelID,\n ChannelInfo,\n CitationAppearance,\n CitationEntity,\n ConversationAccount,\n ConversationReference,\n Entity,\n MeetingInfo,\n MessageEntity,\n NotificationInfo,\n TeamInfo,\n} from '../models';\n\nexport interface IActivity<T extends string = string> {\n /**\n * Contains the type of the activity.\n */\n readonly type: T;\n\n /**\n * Contains an ID that uniquely identifies the activity on the channel.\n */\n id: string;\n\n /**\n * Contains the URL that specifies the channel's service endpoint. Set by the channel.\n */\n serviceUrl?: string;\n\n /**\n * Contains the date and time that the message was sent, in UTC, expressed in ISO-8601 format.\n */\n timestamp?: Date;\n\n /**\n * A locale name for the contents of the text field.\n * The locale name is a combination of an ISO 639 two- or three-letter culture code associated\n * with a language\n * and an ISO 3166 two-letter subculture code associated with a country or region.\n * The locale name can also correspond to a valid BCP-47 language tag.\n */\n locale?: string;\n\n /**\n * Contains the local date and time of the message, expressed in ISO-8601 format.\n *\n * For example, 2016-09-23T13:07:49.4714686-07:00.\n */\n localTimestamp?: Date;\n\n /**\n * Contains an ID that uniquely identifies the channel. Set by the channel.\n */\n channelId: ChannelID;\n\n /**\n * Identifies the sender of the message.\n */\n from: Account;\n\n /**\n * Identifies the conversation to which the activity belongs.\n */\n conversation: ConversationAccount;\n\n /**\n * A reference to another conversation or activity.\n */\n relatesTo?: ConversationReference;\n\n /**\n * Identifies the recipient of the message.\n */\n recipient: Account;\n\n /**\n * Contains the ID of the message to which this message is a reply.\n */\n replyToId?: string;\n\n /**\n * Represents the entities that were mentioned in the message.\n */\n entities?: Entity[];\n\n /**\n * Contains channel-specific content.\n */\n channelData?: ChannelData;\n\n /**\n * Information about the channel in which the message was sent.\n */\n get channel(): ChannelInfo | undefined;\n\n /**\n * Information about the team in which the message was sent.\n */\n get team(): TeamInfo | undefined;\n\n /**\n * Information about the tenant in which the message was sent.\n */\n get meeting(): MeetingInfo | undefined;\n\n /**\n * Notification settings for the message.\n */\n get notification(): NotificationInfo | undefined;\n\n /**\n * is this a streaming activity\n */\n isStreaming(): boolean;\n}\n\nexport class Activity<T extends string = string> implements IActivity<T> {\n /**\n * Contains the type of the activity.\n */\n readonly type!: T;\n\n /**\n * Contains an ID that uniquely identifies the activity on the channel.\n */\n id!: string;\n\n /**\n * Contains the URL that specifies the channel's service endpoint. Set by the channel.\n */\n serviceUrl?: string;\n\n /**\n * Contains the date and time that the message was sent, in UTC, expressed in ISO-8601 format.\n */\n timestamp?: Date;\n\n /**\n * A locale name for the contents of the text field.\n * The locale name is a combination of an ISO 639 two- or three-letter culture code associated\n * with a language\n * and an ISO 3166 two-letter subculture code associated with a country or region.\n * The locale name can also correspond to a valid BCP-47 language tag.\n */\n locale?: string;\n\n /**\n * Contains the local date and time of the message, expressed in ISO-8601 format.\n *\n * For example, 2016-09-23T13:07:49.4714686-07:00.\n */\n localTimestamp?: Date;\n\n /**\n * Contains an ID that uniquely identifies the channel. Set by the channel.\n */\n channelId!: ChannelID;\n\n /**\n * Identifies the sender of the message.\n */\n from!: Account;\n\n /**\n * Identifies the conversation to which the activity belongs.\n */\n conversation!: ConversationAccount;\n\n /**\n * A reference to another conversation or activity.\n */\n relatesTo?: ConversationReference;\n\n /**\n * Identifies the recipient of the message.\n */\n recipient!: Account;\n\n /**\n * Contains the ID of the message to which this message is a reply.\n */\n replyToId?: string;\n\n /**\n * Represents the entities that were mentioned in the message.\n */\n entities?: Entity[];\n\n /**\n * Contains channel-specific content.\n */\n channelData?: ChannelData;\n\n /**\n * Information about the tenant in which the message was sent.\n */\n get tenant() {\n return this.channelData?.tenant;\n }\n\n /**\n * Information about the channel in which the message was sent.\n */\n get channel() {\n return this.channelData?.channel;\n }\n\n /**\n * Information about the team in which the message was sent.\n */\n get team() {\n return this.channelData?.team;\n }\n\n /**\n * Information about the tenant in which the message was sent.\n */\n get meeting() {\n return this.channelData?.meeting;\n }\n\n /**\n * Notification settings for the message.\n */\n get notification() {\n return this.channelData?.notification;\n }\n\n constructor(value: Pick<IActivity<T>, 'type'> & Partial<Omit<IActivity<T>, 'type'>>) {\n Object.assign(this, {\n channelId: 'msteams',\n ...value,\n });\n }\n\n static from(activity: IActivity) {\n return new Activity(activity);\n }\n\n toInterface(): IActivity {\n return Object.assign({}, this);\n }\n\n clone(options: Omit<Partial<IActivity>, 'type'> = {}) {\n return new Activity({\n ...this.toInterface(),\n ...options,\n });\n }\n\n withId(value: string) {\n this.id = value;\n return this;\n }\n\n withReplyToId(value: string) {\n this.replyToId = value;\n return this;\n }\n\n withChannelId(value: ChannelID) {\n this.channelId = value;\n return this;\n }\n\n withFrom(value: Account) {\n this.from = value;\n return this;\n }\n\n withConversation(value: ConversationAccount) {\n this.conversation = value;\n return this;\n }\n\n withRelatesTo(value: ConversationReference) {\n this.relatesTo = value;\n return this;\n }\n\n withRecipient(value: Account) {\n this.recipient = value;\n return this;\n }\n\n withServiceUrl(value: string) {\n this.serviceUrl = value;\n return this;\n }\n\n withTimestamp(value: Date) {\n this.timestamp = value;\n return this;\n }\n\n withLocale(value: string) {\n this.locale = value;\n return this;\n }\n\n withLocalTimestamp(value: Date) {\n this.localTimestamp = value;\n return this;\n }\n\n withChannelData(value: ChannelData) {\n this.channelData = { ...this.channelData, ...value };\n return this;\n }\n\n /**\n * Add an entity.\n */\n addEntity(value: Entity) {\n if (!this.entities) {\n this.entities = [];\n }\n\n this.entities.push(value);\n return this;\n }\n\n /**\n * Add multiple entities\n */\n addEntities(...value: Entity[]) {\n if (!this.entities) {\n this.entities = [];\n }\n\n this.entities.push(...value);\n return this;\n }\n\n /**\n * Add the `Generated By AI` label.\n */\n addAiGenerated() {\n const messageEntity: AIMessageEntity = this.ensureSingleRootLevelMessageEntity();\n if (messageEntity.additionalType?.includes('AIGeneratedContent')) {\n return this;\n }\n\n if (!messageEntity.additionalType) {\n messageEntity.additionalType = [];\n }\n\n messageEntity.additionalType.push(`AIGeneratedContent`);\n return this;\n }\n\n /**\n * Enable message feedback\n */\n addFeedback() {\n if (!this.channelData) {\n this.channelData = {};\n }\n\n this.channelData.feedbackLoopEnabled = true;\n return this;\n }\n\n /**\n * Add citations\n */\n addCitation(position: number, appearance: CitationAppearance) {\n const messageEntity: CitationEntity = this.ensureSingleRootLevelMessageEntity();\n if (!messageEntity.citation) {\n messageEntity.citation = [];\n }\n\n messageEntity.citation.push({\n '@type': 'Claim',\n position,\n appearance: {\n '@type': 'DigitalDocument',\n abstract: appearance.abstract,\n name: appearance.name,\n encodingFormat: 'application/vnd.microsoft.card.adaptive',\n image: appearance.icon\n ? {\n '@type': 'ImageObject',\n name: appearance.icon,\n }\n : undefined,\n keywords: appearance.keywords,\n text: appearance.text,\n url: appearance.url,\n usageInfo: appearance.usageInfo,\n },\n });\n\n return this;\n }\n\n /**\n * is this a streaming activity\n */\n isStreaming() {\n return this.entities?.some((e) => e.type === 'streaminfo') || false;\n }\n\n /**\n * Get or create the base message entity.\n * There should only be one root level message entity.\n */\n private ensureSingleRootLevelMessageEntity(): MessageEntity {\n let mesageEntity = this.entities?.find(\n (e) => e.type === 'https://schema.org/Message' && e['@type'] === 'Message'\n ) as MessageEntity | undefined;\n\n if (!mesageEntity) {\n mesageEntity = {\n type: 'https://schema.org/Message',\n '@type': 'Message',\n '@context': 'https://schema.org',\n '@id': '',\n };\n this.addEntity(mesageEntity);\n }\n\n return mesageEntity;\n }\n}\n"]}
1
+ {"version":3,"sources":["../../src/activities/activity.ts"],"names":[],"mappings":"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","file":"activity.mjs","sourcesContent":["import {\n Account,\n AIMessageEntity,\n ChannelData,\n ChannelID,\n ChannelInfo,\n CitationAppearance,\n CitationEntity,\n ConversationAccount,\n ConversationReference,\n Entity,\n MeetingInfo,\n MessageEntity,\n NotificationInfo,\n TeamInfo,\n} from '../models';\n\nexport interface IActivity<T extends string = string> {\n /**\n * Contains the type of the activity.\n */\n readonly type: T;\n\n /**\n * Contains an ID that uniquely identifies the activity on the channel.\n */\n id: string;\n\n /**\n * Contains the URL that specifies the channel's service endpoint. Set by the channel.\n */\n serviceUrl?: string;\n\n /**\n * Contains the date and time that the message was sent, in UTC, expressed in ISO-8601 format.\n */\n timestamp?: Date;\n\n /**\n * A locale name for the contents of the text field.\n * The locale name is a combination of an ISO 639 two- or three-letter culture code associated\n * with a language\n * and an ISO 3166 two-letter subculture code associated with a country or region.\n * The locale name can also correspond to a valid BCP-47 language tag.\n */\n locale?: string;\n\n /**\n * Contains the local date and time of the message, expressed in ISO-8601 format.\n *\n * For example, 2016-09-23T13:07:49.4714686-07:00.\n */\n localTimestamp?: Date;\n\n /**\n * Contains an ID that uniquely identifies the channel. Set by the channel.\n */\n channelId: ChannelID;\n\n /**\n * Identifies the sender of the message.\n */\n from: Account;\n\n /**\n * Identifies the conversation to which the activity belongs.\n */\n conversation: ConversationAccount;\n\n /**\n * A reference to another conversation or activity.\n */\n relatesTo?: ConversationReference;\n\n /**\n * Identifies the recipient of the message.\n */\n recipient: Account;\n\n /**\n * Contains the ID of the message to which this message is a reply.\n */\n replyToId?: string;\n\n /**\n * Represents the entities that were mentioned in the message.\n */\n entities?: Entity[];\n\n /**\n * Contains channel-specific content.\n */\n channelData?: ChannelData;\n\n /**\n * Information about the channel in which the message was sent.\n */\n get channel(): ChannelInfo | undefined;\n\n /**\n * Information about the team in which the message was sent.\n */\n get team(): TeamInfo | undefined;\n\n /**\n * Information about the tenant in which the message was sent.\n */\n get meeting(): MeetingInfo | undefined;\n\n /**\n * Notification settings for the message.\n */\n get notification(): NotificationInfo | undefined;\n\n /**\n * is this a streaming activity\n */\n isStreaming(): boolean;\n}\n\nexport class Activity<T extends string = string> implements IActivity<T> {\n /**\n * Contains the type of the activity.\n */\n readonly type!: T;\n\n /**\n * Contains an ID that uniquely identifies the activity on the channel.\n */\n id!: string;\n\n /**\n * Contains the URL that specifies the channel's service endpoint. Set by the channel.\n */\n serviceUrl?: string;\n\n /**\n * Contains the date and time that the message was sent, in UTC, expressed in ISO-8601 format.\n */\n timestamp?: Date;\n\n /**\n * A locale name for the contents of the text field.\n * The locale name is a combination of an ISO 639 two- or three-letter culture code associated\n * with a language\n * and an ISO 3166 two-letter subculture code associated with a country or region.\n * The locale name can also correspond to a valid BCP-47 language tag.\n */\n locale?: string;\n\n /**\n * Contains the local date and time of the message, expressed in ISO-8601 format.\n *\n * For example, 2016-09-23T13:07:49.4714686-07:00.\n */\n localTimestamp?: Date;\n\n /**\n * Contains an ID that uniquely identifies the channel. Set by the channel.\n */\n channelId!: ChannelID;\n\n /**\n * Identifies the sender of the message.\n */\n from!: Account;\n\n /**\n * Identifies the conversation to which the activity belongs.\n */\n conversation!: ConversationAccount;\n\n /**\n * A reference to another conversation or activity.\n */\n relatesTo?: ConversationReference;\n\n /**\n * Identifies the recipient of the message.\n */\n recipient!: Account;\n\n /**\n * Contains the ID of the message to which this message is a reply.\n */\n replyToId?: string;\n\n /**\n * Represents the entities that were mentioned in the message.\n */\n entities?: Entity[];\n\n /**\n * Contains channel-specific content.\n */\n channelData?: ChannelData;\n\n /**\n * Information about the tenant in which the message was sent.\n */\n get tenant() {\n return this.channelData?.tenant;\n }\n\n /**\n * Information about the channel in which the message was sent.\n */\n get channel() {\n return this.channelData?.channel;\n }\n\n /**\n * Information about the team in which the message was sent.\n */\n get team() {\n return this.channelData?.team;\n }\n\n /**\n * Information about the tenant in which the message was sent.\n */\n get meeting() {\n return this.channelData?.meeting;\n }\n\n /**\n * Notification settings for the message.\n */\n get notification() {\n return this.channelData?.notification;\n }\n\n constructor(value: Pick<IActivity<T>, 'type'> & Partial<Omit<IActivity<T>, 'type'>>) {\n Object.assign(this, {\n channelId: 'msteams',\n ...value,\n });\n }\n\n static from(activity: IActivity) {\n return new Activity(activity);\n }\n\n toInterface(): IActivity {\n return Object.assign({}, this);\n }\n\n clone(options: Omit<Partial<IActivity>, 'type'> = {}) {\n return new Activity({\n ...this.toInterface(),\n ...options,\n });\n }\n\n withId(value: string) {\n this.id = value;\n return this;\n }\n\n withReplyToId(value: string) {\n this.replyToId = value;\n return this;\n }\n\n withChannelId(value: ChannelID) {\n this.channelId = value;\n return this;\n }\n\n withFrom(value: Account) {\n this.from = value;\n return this;\n }\n\n withConversation(value: ConversationAccount) {\n this.conversation = value;\n return this;\n }\n\n withRelatesTo(value: ConversationReference) {\n this.relatesTo = value;\n return this;\n }\n\n withRecipient(value: Account) {\n this.recipient = value;\n return this;\n }\n\n withServiceUrl(value: string) {\n this.serviceUrl = value;\n return this;\n }\n\n withTimestamp(value: Date) {\n this.timestamp = value;\n return this;\n }\n\n withLocale(value: string) {\n this.locale = value;\n return this;\n }\n\n withLocalTimestamp(value: Date) {\n this.localTimestamp = value;\n return this;\n }\n\n withChannelData(value: ChannelData) {\n this.channelData = { ...this.channelData, ...value };\n return this;\n }\n\n /**\n * Add an entity.\n */\n addEntity(value: Entity) {\n if (!this.entities) {\n this.entities = [];\n }\n\n this.entities.push(value);\n return this;\n }\n\n /**\n * Add multiple entities\n */\n addEntities(...value: Entity[]) {\n if (!this.entities) {\n this.entities = [];\n }\n\n this.entities.push(...value);\n return this;\n }\n\n /**\n * Add the `Generated By AI` label.\n */\n addAiGenerated() {\n const messageEntity: AIMessageEntity = this.ensureSingleRootLevelMessageEntity();\n if (messageEntity.additionalType?.includes('AIGeneratedContent')) {\n return this;\n }\n\n if (!messageEntity.additionalType) {\n messageEntity.additionalType = [];\n }\n\n messageEntity.additionalType.push('AIGeneratedContent');\n return this;\n }\n\n /**\n * Enable message feedback\n */\n addFeedback() {\n if (!this.channelData) {\n this.channelData = {};\n }\n\n this.channelData.feedbackLoopEnabled = true;\n return this;\n }\n\n /**\n * Add citations\n */\n addCitation(position: number, appearance: CitationAppearance) {\n const messageEntity: CitationEntity = this.ensureSingleRootLevelMessageEntity();\n if (!messageEntity.citation) {\n messageEntity.citation = [];\n }\n\n messageEntity.citation.push({\n '@type': 'Claim',\n position,\n appearance: {\n '@type': 'DigitalDocument',\n abstract: appearance.abstract,\n name: appearance.name,\n encodingFormat: 'application/vnd.microsoft.card.adaptive',\n image: appearance.icon\n ? {\n '@type': 'ImageObject',\n name: appearance.icon,\n }\n : undefined,\n keywords: appearance.keywords,\n text: appearance.text,\n url: appearance.url,\n usageInfo: appearance.usageInfo,\n },\n });\n\n return this;\n }\n\n /**\n * is this a streaming activity\n */\n isStreaming() {\n return this.entities?.some((e) => e.type === 'streaminfo') || false;\n }\n\n /**\n * Get or create the base message entity.\n * There should only be one root level message entity.\n */\n private ensureSingleRootLevelMessageEntity(): MessageEntity {\n let mesageEntity = this.entities?.find(\n (e) => e.type === 'https://schema.org/Message' && e['@type'] === 'Message'\n ) as MessageEntity | undefined;\n\n if (!mesageEntity) {\n mesageEntity = {\n type: 'https://schema.org/Message',\n '@type': 'Message',\n '@context': 'https://schema.org',\n '@id': '',\n };\n this.addEntity(mesageEntity);\n }\n\n return mesageEntity;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/activities/message/message.ts"],"names":["Activity","cardAttachment","stripMentionsText"],"mappings":";;;;;;AAmGO,MAAM,wBAAwBA,iBAAgD,CAAA;AAAA;AAAA;AAAA;AAAA,EAInF,IAAA;AAAA;AAAA;AAAA;AAAA,EAKA,KAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,SAAA;AAAA;AAAA;AAAA;AAAA,EAKA,OAAA;AAAA;AAAA;AAAA;AAAA,EAKA,UAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,gBAAA;AAAA;AAAA;AAAA;AAAA,EAKA,WAAA;AAAA;AAAA;AAAA;AAAA,EAKA,gBAAA;AAAA;AAAA;AAAA;AAAA,EAKA,UAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,YAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,UAAA;AAAA;AAAA;AAAA;AAAA,EAKA,KAAA;AAAA,EAEA,WAAY,CAAA,IAAA,GAAe,EAAI,EAAA,KAAA,GAAiD,EAAI,EAAA;AAClF,IAAM,KAAA,CAAA;AAAA,MACJ,GAAG,KAAA;AAAA,MACH,IAAM,EAAA;AAAA,KACP,CAAA;AAED,IAAA,MAAA,CAAO,OAAO,IAAM,EAAA,EAAE,IAAM,EAAA,GAAG,OAAO,CAAA;AAAA;AACxC;AAAA;AAAA;AAAA,EAKA,OAAO,KAAK,QAA4B,EAAA;AACtC,IAAA,OAAO,IAAI,eAAA,CAAgB,QAAS,CAAA,IAAA,EAAM,QAAQ,CAAA;AAAA;AACpD;AAAA;AAAA;AAAA,EAKA,WAAgC,GAAA;AAC9B,IAAA,OAAO,MAAO,CAAA,MAAA;AAAA,MACZ;AAAA,QACE,iBAAmB,EAAA,IAAA,CAAK,iBAAkB,CAAA,IAAA,CAAK,IAAI,CAAA;AAAA,QACnD,oBAAsB,EAAA,IAAA,CAAK,oBAAqB,CAAA,IAAA,CAAK,IAAI,CAAA;AAAA,QACzD,iBAAmB,EAAA,IAAA,CAAK,iBAAkB,CAAA,IAAA,CAAK,IAAI;AAAA,OACrD;AAAA,MACA;AAAA,KACF;AAAA;AACF;AAAA;AAAA;AAAA,EAKA,KAAA,CAAM,OAAmD,GAAA,EAAI,EAAA;AAC3D,IAAO,OAAA,IAAI,eAAgB,CAAA,IAAA,CAAK,IAAM,EAAA;AAAA,MACpC,GAAG,KAAK,WAAY,EAAA;AAAA,MACpB,GAAG;AAAA,KACJ,CAAA;AAAA;AACH;AAAA;AAAA;AAAA,EAKA,SAAS,KAAe,EAAA;AACtB,IAAA,IAAA,CAAK,IAAO,GAAA,KAAA;AACZ,IAAO,OAAA,IAAA;AAAA;AACT;AAAA;AAAA;AAAA,EAKA,UAAU,KAAe,EAAA;AACvB,IAAA,IAAA,CAAK,KAAQ,GAAA,KAAA;AACb,IAAO,OAAA,IAAA;AAAA;AACT;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,cAAc,KAAkB,EAAA;AAC9B,IAAA,IAAA,CAAK,SAAY,GAAA,KAAA;AACjB,IAAO,OAAA,IAAA;AAAA;AACT;AAAA;AAAA;AAAA,EAKA,YAAY,KAAe,EAAA;AACzB,IAAA,IAAA,CAAK,OAAU,GAAA,KAAA;AACf,IAAO,OAAA,IAAA;AAAA;AACT;AAAA;AAAA;AAAA,EAKA,eAAe,KAAmB,EAAA;AAChC,IAAA,IAAA,CAAK,UAAa,GAAA,KAAA;AAClB,IAAO,OAAA,IAAA;AAAA;AACT;AAAA;AAAA;AAAA;AAAA,EAMA,qBAAqB,KAAyB,EAAA;AAC5C,IAAA,IAAA,CAAK,gBAAmB,GAAA,KAAA;AACxB,IAAO,OAAA,IAAA;AAAA;AACT;AAAA;AAAA;AAAA,EAKA,qBAAqB,KAAyB,EAAA;AAC5C,IAAA,IAAA,CAAK,gBAAmB,GAAA,KAAA;AACxB,IAAO,OAAA,IAAA;AAAA;AACT;AAAA;AAAA;AAAA,EAKA,eAAe,KAAmB,EAAA;AAChC,IAAA,IAAA,CAAK,UAAa,GAAA,KAAA;AAClB,IAAO,OAAA,IAAA;AAAA;AACT;AAAA;AAAA;AAAA;AAAA,EAMA,iBAAiB,KAAqB,EAAA;AACpC,IAAA,IAAA,CAAK,YAAe,GAAA,KAAA;AACpB,IAAO,OAAA,IAAA;AAAA;AACT;AAAA;AAAA;AAAA;AAAA,EAMA,eAAe,KAAa,EAAA;AAC1B,IAAA,IAAA,CAAK,UAAa,GAAA,KAAA;AAClB,IAAO,OAAA,IAAA;AAAA;AACT;AAAA;AAAA;AAAA,EAKA,QAAQ,IAAc,EAAA;AACpB,IAAA,IAAA,CAAK,IAAQ,IAAA,IAAA;AACb,IAAO,OAAA,IAAA;AAAA;AACT;AAAA;AAAA;AAAA,EAKA,kBAAkB,KAAqB,EAAA;AACrC,IAAI,IAAA,CAAC,KAAK,WAAa,EAAA;AACrB,MAAA,IAAA,CAAK,cAAc,EAAC;AAAA;AAGtB,IAAK,IAAA,CAAA,WAAA,CAAY,IAAK,CAAA,GAAG,KAAK,CAAA;AAC9B,IAAO,OAAA,IAAA;AAAA;AACT;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,UAAW,CAAA,OAAA,EAAkB,OAA6B,GAAA,EAAI,EAAA;AAC5D,IAAM,MAAA,IAAA,GAAO,OAAQ,CAAA,IAAA,IAAQ,OAAQ,CAAA,IAAA;AACrC,IAAgB,QAAQ,OAAW,IAAA;AAEnC,IAAa;AACX,MAAK,IAAA,CAAA,OAAA,CAAQ,CAAO,IAAA,EAAA,IAAI,CAAO,KAAA,CAAA,CAAA;AAAA;AAGjC,IAAA,OAAO,KAAK,SAAU,CAAA;AAAA,MACpB,IAAM,EAAA,SAAA;AAAA,MACN,SAAW,EAAA,OAAA;AAAA,MACX,IAAA,EAAM,OAAO,IAAI,CAAA,KAAA;AAAA,KAClB,CAAA;AAAA;AACH;AAAA;AAAA;AAAA,EAKA,OAAA,CAAsC,MAAS,OAA4C,EAAA;AACzF,IAAA,OAAO,IAAK,CAAA,cAAA,CAAeC,qBAAe,CAAA,IAAA,EAAM,OAAO,CAAC,CAAA;AAAA;AAC1D;AAAA;AAAA;AAAA,EAKA,iBAAA,CAAkB,OAAoC,GAAA,EAAI,EAAA;AACxD,IAAK,IAAA,CAAA,IAAA,GAAOC,uBAAkB,CAAA,IAAA,EAAM,OAAO,CAAA;AAC3C,IAAO,OAAA,IAAA;AAAA;AACT;AAAA;AAAA;AAAA,EAKA,oBAAuB,GAAA;AACrB,IAAA,OAAA,CAAQ,KAAK,QAAY,IAAA,IACtB,MAAO,CAAA,CAAC,MAAM,CAAE,CAAA,IAAA,KAAS,SAAS,CAClC,CAAA,IAAA,CAAK,CAAC,CAAM,KAAA,CAAA,CAAE,UAAU,EAAO,KAAA,IAAA,CAAK,UAAU,EAAE,CAAA;AAAA;AACrD;AAAA;AAAA;AAAA,EAKA,kBAAkB,SAAmB,EAAA;AACnC,IAAA,OAAA,CAAQ,KAAK,QAAY,IAAA,EACtB,EAAA,MAAA,CAAO,CAAC,CAAM,KAAA,CAAA,CAAE,IAAS,KAAA,SAAS,EAClC,IAAK,CAAA,CAAC,MAAM,CAAE,CAAA,SAAA,CAAU,OAAO,SAAS,CAAA;AAAA;AAC7C;AAAA;AAAA;AAAA;AAAA,EAMA,cAAiB,GAAA;AACf,IAAI,IAAA,CAAC,KAAK,WAAa,EAAA;AACrB,MAAA,IAAA,CAAK,cAAc,EAAC;AAAA;AAGtB,IAAK,IAAA,CAAA,WAAA,CAAY,WAAW,IAAK,CAAA,EAAA;AACjC,IAAA,IAAA,CAAK,YAAY,UAAa,GAAA,OAAA;AAE9B,IAAA,OAAO,KAAK,SAAU,CAAA;AAAA,MACpB,IAAM,EAAA,YAAA;AAAA,MACN,UAAU,IAAK,CAAA,EAAA;AAAA,MACf,UAAY,EAAA;AAAA,KACb,CAAA;AAAA;AAEL","file":"message.js","sourcesContent":["import {\r\n Account,\r\n Attachment,\r\n AttachmentLayout,\r\n cardAttachment,\r\n CardAttachmentType,\r\n CardAttachmentTypes,\r\n DeliveryMode,\r\n Importance,\r\n InputHint,\r\n MentionEntity,\r\n SuggestedActions,\r\n TextFormat,\r\n} from '../../models';\r\nimport { IActivity, Activity } from '../activity';\r\nimport { stripMentionsText, StripMentionsTextOptions } from '../utils';\r\n\r\nexport interface IMessageActivity extends IActivity<'message'> {\r\n /**\r\n * The text content of the message.\r\n */\r\n text: string;\r\n\r\n /**\r\n * The text to speak.\r\n */\r\n speak?: string;\r\n\r\n /**\r\n * Indicates whether your bot is accepting,\r\n * expecting, or ignoring user input after the message is delivered to the client. Possible\r\n * values include: 'acceptingInput', 'ignoringInput', 'expectingInput'\r\n */\r\n inputHint?: InputHint;\r\n\r\n /**\r\n * The text to display if the channel cannot render cards.\r\n */\r\n summary?: string;\r\n\r\n /**\r\n * Format of text fields Default:markdown. Possible values include: 'markdown', 'plain', 'xml'\r\n */\r\n textFormat?: TextFormat;\r\n\r\n /**\r\n * The layout hint for multiple attachments. Default: list. Possible values include: 'list',\r\n * 'carousel'\r\n */\r\n attachmentLayout?: AttachmentLayout;\r\n\r\n /**\r\n * Attachments\r\n */\r\n attachments?: Attachment[];\r\n\r\n /**\r\n * The suggested actions for the activity.\r\n */\r\n suggestedActions?: SuggestedActions;\r\n\r\n /**\r\n * The importance of the activity. Possible values include: 'low', 'normal', 'high'\r\n */\r\n importance?: Importance;\r\n\r\n /**\r\n * A delivery hint to signal to the recipient alternate delivery paths for the activity.\r\n * The default delivery mode is \"default\". Possible values include: 'normal', 'notification'\r\n */\r\n deliveryMode?: DeliveryMode;\r\n\r\n /**\r\n * The time at which the activity should be considered to be \"expired\" and should not be\r\n * presented to the recipient.\r\n */\r\n expiration?: Date;\r\n\r\n /**\r\n * A value that is associated with the activity.\r\n */\r\n value?: any;\r\n\r\n /**\r\n * remove \"\\<at>...\\</at>\" text from an activity\r\n */\r\n stripMentionsText(options?: StripMentionsTextOptions): IMessageActivity;\r\n\r\n /**\r\n * is the recipient account mentioned\r\n */\r\n isRecipientMentioned(): boolean;\r\n\r\n /**\r\n * get a mention by the account id if exists\r\n */\r\n getAccountMention(accountId: string): MentionEntity | undefined;\r\n}\r\n\r\nexport class MessageActivity extends Activity<'message'> implements IMessageActivity {\r\n /**\r\n * The text content of the message.\r\n */\r\n text!: string;\r\n\r\n /**\r\n * The text to speak.\r\n */\r\n speak?: string;\r\n\r\n /**\r\n * Indicates whether your bot is accepting,\r\n * expecting, or ignoring user input after the message is delivered to the client. Possible\r\n * values include: 'acceptingInput', 'ignoringInput', 'expectingInput'\r\n */\r\n inputHint?: InputHint;\r\n\r\n /**\r\n * The text to display if the channel cannot render cards.\r\n */\r\n summary?: string;\r\n\r\n /**\r\n * Format of text fields Default:markdown. Possible values include: 'markdown', 'plain', 'xml'\r\n */\r\n textFormat?: TextFormat;\r\n\r\n /**\r\n * The layout hint for multiple attachments. Default: list. Possible values include: 'list',\r\n * 'carousel'\r\n */\r\n attachmentLayout?: AttachmentLayout;\r\n\r\n /**\r\n * Attachments\r\n */\r\n attachments?: Attachment[];\r\n\r\n /**\r\n * The suggested actions for the activity.\r\n */\r\n suggestedActions?: SuggestedActions;\r\n\r\n /**\r\n * The importance of the activity. Possible values include: 'low', 'normal', 'high'\r\n */\r\n importance?: Importance;\r\n\r\n /**\r\n * A delivery hint to signal to the recipient alternate delivery paths for the activity.\r\n * The default delivery mode is \"default\". Possible values include: 'normal', 'notification'\r\n */\r\n deliveryMode?: DeliveryMode;\r\n\r\n /**\r\n * The time at which the activity should be considered to be \"expired\" and should not be\r\n * presented to the recipient.\r\n */\r\n expiration?: Date;\r\n\r\n /**\r\n * A value that is associated with the activity.\r\n */\r\n value?: any;\r\n\r\n constructor(text: string = '', value: Omit<Partial<IMessageActivity>, 'type'> = {}) {\r\n super({\r\n ...value,\r\n type: 'message',\r\n });\r\n\r\n Object.assign(this, { text, ...value });\r\n }\r\n\r\n /**\r\n * initialize from interface\r\n */\r\n static from(activity: IMessageActivity) {\r\n return new MessageActivity(activity.text, activity);\r\n }\r\n\r\n /**\r\n * convert to interface\r\n */\r\n toInterface(): IMessageActivity {\r\n return Object.assign(\r\n {\r\n stripMentionsText: this.stripMentionsText.bind(this),\r\n isRecipientMentioned: this.isRecipientMentioned.bind(this),\r\n getAccountMention: this.getAccountMention.bind(this),\r\n },\r\n this\r\n );\r\n }\r\n\r\n /**\r\n * copy to a new instance\r\n */\r\n clone(options: Omit<Partial<IMessageActivity>, 'type'> = {}) {\r\n return new MessageActivity(this.text, {\r\n ...this.toInterface(),\r\n ...options,\r\n });\r\n }\r\n\r\n /**\r\n * The text content of the message.\r\n */\r\n withText(value: string) {\r\n this.text = value;\r\n return this;\r\n }\r\n\r\n /**\r\n * The text to speak.\r\n */\r\n withSpeak(value: string) {\r\n this.speak = value;\r\n return this;\r\n }\r\n\r\n /**\r\n * Indicates whether your bot is accepting,\r\n * expecting, or ignoring user input after the message is delivered to the client. Possible\r\n * values include: 'acceptingInput', 'ignoringInput', 'expectingInput'\r\n */\r\n withInputHint(value: InputHint) {\r\n this.inputHint = value;\r\n return this;\r\n }\r\n\r\n /**\r\n * The text to display if the channel cannot render cards.\r\n */\r\n withSummary(value: string) {\r\n this.summary = value;\r\n return this;\r\n }\r\n\r\n /**\r\n * Format of text fields Default:markdown. Possible values include: 'markdown', 'plain', 'xml'\r\n */\r\n withTextFormat(value: TextFormat) {\r\n this.textFormat = value;\r\n return this;\r\n }\r\n\r\n /**\r\n * The layout hint for multiple attachments. Default: list. Possible values include: 'list',\r\n * 'carousel'\r\n */\r\n withAttachmentLayout(value: AttachmentLayout) {\r\n this.attachmentLayout = value;\r\n return this;\r\n }\r\n\r\n /**\r\n * The suggested actions for the activity.\r\n */\r\n withSuggestedActions(value: SuggestedActions) {\r\n this.suggestedActions = value;\r\n return this;\r\n }\r\n\r\n /**\r\n * The importance of the activity. Possible values include: 'low', 'normal', 'high'\r\n */\r\n withImportance(value: Importance) {\r\n this.importance = value;\r\n return this;\r\n }\r\n\r\n /**\r\n * A delivery hint to signal to the recipient alternate delivery paths for the activity.\r\n * The default delivery mode is \"default\". Possible values include: 'normal', 'notification'\r\n */\r\n withDeliveryMode(value: DeliveryMode) {\r\n this.deliveryMode = value;\r\n return this;\r\n }\r\n\r\n /**\r\n * The time at which the activity should be considered to be \"expired\" and should not be\r\n * presented to the recipient.\r\n */\r\n withExpiration(value: Date) {\r\n this.expiration = value;\r\n return this;\r\n }\r\n\r\n /**\r\n * Append text\r\n */\r\n addText(text: string) {\r\n this.text += text;\r\n return this;\r\n }\r\n\r\n /**\r\n * Attachments\r\n */\r\n addAttachments(...value: Attachment[]) {\r\n if (!this.attachments) {\r\n this.attachments = [];\r\n }\r\n\r\n this.attachments.push(...value);\r\n return this;\r\n }\r\n\r\n /**\r\n * `@mention` an account\r\n * @param account the account to mention\r\n * @param options options to customize the mention\r\n */\r\n addMention(account: Account, options: AddMentionOptions = {}) {\r\n const text = options.text || account.name;\r\n const addText = options.addText || true;\r\n\r\n if (addText) {\r\n this.addText(`<at>${text}</at>`);\r\n }\r\n\r\n return this.addEntity({\r\n type: 'mention',\r\n mentioned: account,\r\n text: `<at>${text}</at>`,\r\n });\r\n }\r\n\r\n /**\r\n * Add a card attachment\r\n */\r\n addCard<T extends CardAttachmentType>(type: T, content: CardAttachmentTypes[T]['content']) {\r\n return this.addAttachments(cardAttachment(type, content));\r\n }\r\n\r\n /**\r\n * remove \"\\<at>...\\</at>\" text from an activity\r\n */\r\n stripMentionsText(options: StripMentionsTextOptions = {}) {\r\n this.text = stripMentionsText(this, options);\r\n return this;\r\n }\r\n\r\n /**\r\n * is the recipient account mentioned\r\n */\r\n isRecipientMentioned() {\r\n return (this.entities || [])\r\n .filter((e) => e.type === 'mention')\r\n .some((e) => e.mentioned.id === this.recipient.id);\r\n }\r\n\r\n /**\r\n * get a mention by the account id if exists\r\n */\r\n getAccountMention(accountId: string) {\r\n return (this.entities || [])\r\n .filter((e) => e.type === 'mention')\r\n .find((e) => e.mentioned.id === accountId);\r\n }\r\n\r\n /**\r\n * Add stream info, making\r\n * this a final stream message\r\n */\r\n addStreamFinal() {\r\n if (!this.channelData) {\r\n this.channelData = {};\r\n }\r\n\r\n this.channelData.streamId = this.id;\r\n this.channelData.streamType = 'final';\r\n\r\n return this.addEntity({\r\n type: 'streaminfo',\r\n streamId: this.id,\r\n streamType: 'final',\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * options for adding a mention\r\n * to an activity\r\n */\r\nexport type AddMentionOptions = {\r\n /**\r\n * if `true`, append the mention `text` to the `activity.text`\r\n * @default true\r\n */\r\n readonly addText?: boolean;\r\n\r\n /**\r\n * the `text` to use for the mention\r\n *\r\n * @default `account.name`\r\n * @remark\r\n * this text should not include `<at>` or `</at>`\r\n */\r\n readonly text?: string;\r\n};\r\n"]}
1
+ {"version":3,"sources":["../../../src/activities/message/message.ts"],"names":["Activity","cardAttachment","stripMentionsText"],"mappings":"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","file":"message.js","sourcesContent":["import {\n Account,\n Attachment,\n AttachmentLayout,\n cardAttachment,\n CardAttachmentType,\n CardAttachmentTypes,\n DeliveryMode,\n Importance,\n InputHint,\n MentionEntity,\n SuggestedActions,\n TextFormat,\n} from '../../models';\nimport { IActivity, Activity } from '../activity';\nimport { stripMentionsText, StripMentionsTextOptions } from '../utils';\n\nexport interface IMessageActivity extends IActivity<'message'> {\n /**\n * The text content of the message.\n */\n text: string;\n\n /**\n * The text to speak.\n */\n speak?: string;\n\n /**\n * Indicates whether your bot is accepting,\n * expecting, or ignoring user input after the message is delivered to the client. Possible\n * values include: 'acceptingInput', 'ignoringInput', 'expectingInput'\n */\n inputHint?: InputHint;\n\n /**\n * The text to display if the channel cannot render cards.\n */\n summary?: string;\n\n /**\n * Format of text fields Default:markdown. Possible values include: 'markdown', 'plain', 'xml'\n */\n textFormat?: TextFormat;\n\n /**\n * The layout hint for multiple attachments. Default: list. Possible values include: 'list',\n * 'carousel'\n */\n attachmentLayout?: AttachmentLayout;\n\n /**\n * Attachments\n */\n attachments?: Attachment[];\n\n /**\n * The suggested actions for the activity.\n */\n suggestedActions?: SuggestedActions;\n\n /**\n * The importance of the activity. Possible values include: 'low', 'normal', 'high'\n */\n importance?: Importance;\n\n /**\n * A delivery hint to signal to the recipient alternate delivery paths for the activity.\n * The default delivery mode is \"default\". Possible values include: 'normal', 'notification'\n */\n deliveryMode?: DeliveryMode;\n\n /**\n * The time at which the activity should be considered to be \"expired\" and should not be\n * presented to the recipient.\n */\n expiration?: Date;\n\n /**\n * A value that is associated with the activity.\n */\n value?: any;\n\n /**\n * remove \"\\<at>...\\</at>\" text from an activity\n */\n stripMentionsText(options?: StripMentionsTextOptions): IMessageActivity;\n\n /**\n * is the recipient account mentioned\n */\n isRecipientMentioned(): boolean;\n\n /**\n * get a mention by the account id if exists\n */\n getAccountMention(accountId: string): MentionEntity | undefined;\n}\n\nexport class MessageActivity extends Activity<'message'> implements IMessageActivity {\n /**\n * The text content of the message.\n */\n text!: string;\n\n /**\n * The text to speak.\n */\n speak?: string;\n\n /**\n * Indicates whether your bot is accepting,\n * expecting, or ignoring user input after the message is delivered to the client. Possible\n * values include: 'acceptingInput', 'ignoringInput', 'expectingInput'\n */\n inputHint?: InputHint;\n\n /**\n * The text to display if the channel cannot render cards.\n */\n summary?: string;\n\n /**\n * Format of text fields Default:markdown. Possible values include: 'markdown', 'plain', 'xml'\n */\n textFormat?: TextFormat;\n\n /**\n * The layout hint for multiple attachments. Default: list. Possible values include: 'list',\n * 'carousel'\n */\n attachmentLayout?: AttachmentLayout;\n\n /**\n * Attachments\n */\n attachments?: Attachment[];\n\n /**\n * The suggested actions for the activity.\n */\n suggestedActions?: SuggestedActions;\n\n /**\n * The importance of the activity. Possible values include: 'low', 'normal', 'high'\n */\n importance?: Importance;\n\n /**\n * A delivery hint to signal to the recipient alternate delivery paths for the activity.\n * The default delivery mode is \"default\". Possible values include: 'normal', 'notification'\n */\n deliveryMode?: DeliveryMode;\n\n /**\n * The time at which the activity should be considered to be \"expired\" and should not be\n * presented to the recipient.\n */\n expiration?: Date;\n\n /**\n * A value that is associated with the activity.\n */\n value?: any;\n\n constructor(text: string = '', value: Omit<Partial<IMessageActivity>, 'type'> = {}) {\n super({\n ...value,\n type: 'message',\n });\n\n Object.assign(this, { text, ...value });\n }\n\n /**\n * initialize from interface\n */\n static from(activity: IMessageActivity) {\n return new MessageActivity(activity.text, activity);\n }\n\n /**\n * convert to interface\n */\n toInterface(): IMessageActivity {\n return Object.assign(\n {\n stripMentionsText: this.stripMentionsText.bind(this),\n isRecipientMentioned: this.isRecipientMentioned.bind(this),\n getAccountMention: this.getAccountMention.bind(this),\n },\n this\n );\n }\n\n /**\n * copy to a new instance\n */\n clone(options: Omit<Partial<IMessageActivity>, 'type'> = {}) {\n return new MessageActivity(this.text, {\n ...this.toInterface(),\n ...options,\n });\n }\n\n /**\n * The text content of the message.\n */\n withText(value: string) {\n this.text = value;\n return this;\n }\n\n /**\n * The text to speak.\n */\n withSpeak(value: string) {\n this.speak = value;\n return this;\n }\n\n /**\n * Indicates whether your bot is accepting,\n * expecting, or ignoring user input after the message is delivered to the client. Possible\n * values include: 'acceptingInput', 'ignoringInput', 'expectingInput'\n */\n withInputHint(value: InputHint) {\n this.inputHint = value;\n return this;\n }\n\n /**\n * The text to display if the channel cannot render cards.\n */\n withSummary(value: string) {\n this.summary = value;\n return this;\n }\n\n /**\n * Format of text fields Default:markdown. Possible values include: 'markdown', 'plain', 'xml'\n */\n withTextFormat(value: TextFormat) {\n this.textFormat = value;\n return this;\n }\n\n /**\n * The layout hint for multiple attachments. Default: list. Possible values include: 'list',\n * 'carousel'\n */\n withAttachmentLayout(value: AttachmentLayout) {\n this.attachmentLayout = value;\n return this;\n }\n\n /**\n * The suggested actions for the activity.\n */\n withSuggestedActions(value: SuggestedActions) {\n this.suggestedActions = value;\n return this;\n }\n\n /**\n * The importance of the activity. Possible values include: 'low', 'normal', 'high'\n */\n withImportance(value: Importance) {\n this.importance = value;\n return this;\n }\n\n /**\n * A delivery hint to signal to the recipient alternate delivery paths for the activity.\n * The default delivery mode is \"default\". Possible values include: 'normal', 'notification'\n */\n withDeliveryMode(value: DeliveryMode) {\n this.deliveryMode = value;\n return this;\n }\n\n /**\n * The time at which the activity should be considered to be \"expired\" and should not be\n * presented to the recipient.\n */\n withExpiration(value: Date) {\n this.expiration = value;\n return this;\n }\n\n /**\n * Append text\n */\n addText(text: string) {\n this.text += text;\n return this;\n }\n\n /**\n * Attachments\n */\n addAttachments(...value: Attachment[]) {\n if (!this.attachments) {\n this.attachments = [];\n }\n\n this.attachments.push(...value);\n return this;\n }\n\n /**\n * `@mention` an account\n * @param account the account to mention\n * @param options options to customize the mention\n */\n addMention(account: Account, options: AddMentionOptions = {}) {\n const text = options.text || account.name;\n const addText = options.addText || true;\n\n if (addText) {\n this.addText(`<at>${text}</at>`);\n }\n\n return this.addEntity({\n type: 'mention',\n mentioned: account,\n text: `<at>${text}</at>`,\n });\n }\n\n /**\n * Add a card attachment\n */\n addCard<T extends CardAttachmentType>(type: T, content: CardAttachmentTypes[T]['content']) {\n return this.addAttachments(cardAttachment(type, content));\n }\n\n /**\n * remove \"\\<at>...\\</at>\" text from an activity\n */\n stripMentionsText(options: StripMentionsTextOptions = {}) {\n this.text = stripMentionsText(this, options);\n return this;\n }\n\n /**\n * is the recipient account mentioned\n */\n isRecipientMentioned() {\n return (this.entities || [])\n .filter((e) => e.type === 'mention')\n .some((e) => e.mentioned.id === this.recipient.id);\n }\n\n /**\n * get a mention by the account id if exists\n */\n getAccountMention(accountId: string) {\n return (this.entities || [])\n .filter((e) => e.type === 'mention')\n .find((e) => e.mentioned.id === accountId);\n }\n\n /**\n * Add stream info, making\n * this a final stream message\n */\n addStreamFinal() {\n if (!this.channelData) {\n this.channelData = {};\n }\n\n this.channelData.streamId = this.id;\n this.channelData.streamType = 'final';\n\n return this.addEntity({\n type: 'streaminfo',\n streamId: this.id,\n streamType: 'final',\n });\n }\n}\n\n/**\n * options for adding a mention\n * to an activity\n */\nexport type AddMentionOptions = {\n /**\n * if `true`, append the mention `text` to the `activity.text`\n * @default true\n */\n readonly addText?: boolean;\n\n /**\n * the `text` to use for the mention\n *\n * @default `account.name`\n * @remark\n * this text should not include `<at>` or `</at>`\n */\n readonly text?: string;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/activities/message/message.ts"],"names":[],"mappings":"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","file":"message.mjs","sourcesContent":["import {\r\n Account,\r\n Attachment,\r\n AttachmentLayout,\r\n cardAttachment,\r\n CardAttachmentType,\r\n CardAttachmentTypes,\r\n DeliveryMode,\r\n Importance,\r\n InputHint,\r\n MentionEntity,\r\n SuggestedActions,\r\n TextFormat,\r\n} from '../../models';\r\nimport { IActivity, Activity } from '../activity';\r\nimport { stripMentionsText, StripMentionsTextOptions } from '../utils';\r\n\r\nexport interface IMessageActivity extends IActivity<'message'> {\r\n /**\r\n * The text content of the message.\r\n */\r\n text: string;\r\n\r\n /**\r\n * The text to speak.\r\n */\r\n speak?: string;\r\n\r\n /**\r\n * Indicates whether your bot is accepting,\r\n * expecting, or ignoring user input after the message is delivered to the client. Possible\r\n * values include: 'acceptingInput', 'ignoringInput', 'expectingInput'\r\n */\r\n inputHint?: InputHint;\r\n\r\n /**\r\n * The text to display if the channel cannot render cards.\r\n */\r\n summary?: string;\r\n\r\n /**\r\n * Format of text fields Default:markdown. Possible values include: 'markdown', 'plain', 'xml'\r\n */\r\n textFormat?: TextFormat;\r\n\r\n /**\r\n * The layout hint for multiple attachments. Default: list. Possible values include: 'list',\r\n * 'carousel'\r\n */\r\n attachmentLayout?: AttachmentLayout;\r\n\r\n /**\r\n * Attachments\r\n */\r\n attachments?: Attachment[];\r\n\r\n /**\r\n * The suggested actions for the activity.\r\n */\r\n suggestedActions?: SuggestedActions;\r\n\r\n /**\r\n * The importance of the activity. Possible values include: 'low', 'normal', 'high'\r\n */\r\n importance?: Importance;\r\n\r\n /**\r\n * A delivery hint to signal to the recipient alternate delivery paths for the activity.\r\n * The default delivery mode is \"default\". Possible values include: 'normal', 'notification'\r\n */\r\n deliveryMode?: DeliveryMode;\r\n\r\n /**\r\n * The time at which the activity should be considered to be \"expired\" and should not be\r\n * presented to the recipient.\r\n */\r\n expiration?: Date;\r\n\r\n /**\r\n * A value that is associated with the activity.\r\n */\r\n value?: any;\r\n\r\n /**\r\n * remove \"\\<at>...\\</at>\" text from an activity\r\n */\r\n stripMentionsText(options?: StripMentionsTextOptions): IMessageActivity;\r\n\r\n /**\r\n * is the recipient account mentioned\r\n */\r\n isRecipientMentioned(): boolean;\r\n\r\n /**\r\n * get a mention by the account id if exists\r\n */\r\n getAccountMention(accountId: string): MentionEntity | undefined;\r\n}\r\n\r\nexport class MessageActivity extends Activity<'message'> implements IMessageActivity {\r\n /**\r\n * The text content of the message.\r\n */\r\n text!: string;\r\n\r\n /**\r\n * The text to speak.\r\n */\r\n speak?: string;\r\n\r\n /**\r\n * Indicates whether your bot is accepting,\r\n * expecting, or ignoring user input after the message is delivered to the client. Possible\r\n * values include: 'acceptingInput', 'ignoringInput', 'expectingInput'\r\n */\r\n inputHint?: InputHint;\r\n\r\n /**\r\n * The text to display if the channel cannot render cards.\r\n */\r\n summary?: string;\r\n\r\n /**\r\n * Format of text fields Default:markdown. Possible values include: 'markdown', 'plain', 'xml'\r\n */\r\n textFormat?: TextFormat;\r\n\r\n /**\r\n * The layout hint for multiple attachments. Default: list. Possible values include: 'list',\r\n * 'carousel'\r\n */\r\n attachmentLayout?: AttachmentLayout;\r\n\r\n /**\r\n * Attachments\r\n */\r\n attachments?: Attachment[];\r\n\r\n /**\r\n * The suggested actions for the activity.\r\n */\r\n suggestedActions?: SuggestedActions;\r\n\r\n /**\r\n * The importance of the activity. Possible values include: 'low', 'normal', 'high'\r\n */\r\n importance?: Importance;\r\n\r\n /**\r\n * A delivery hint to signal to the recipient alternate delivery paths for the activity.\r\n * The default delivery mode is \"default\". Possible values include: 'normal', 'notification'\r\n */\r\n deliveryMode?: DeliveryMode;\r\n\r\n /**\r\n * The time at which the activity should be considered to be \"expired\" and should not be\r\n * presented to the recipient.\r\n */\r\n expiration?: Date;\r\n\r\n /**\r\n * A value that is associated with the activity.\r\n */\r\n value?: any;\r\n\r\n constructor(text: string = '', value: Omit<Partial<IMessageActivity>, 'type'> = {}) {\r\n super({\r\n ...value,\r\n type: 'message',\r\n });\r\n\r\n Object.assign(this, { text, ...value });\r\n }\r\n\r\n /**\r\n * initialize from interface\r\n */\r\n static from(activity: IMessageActivity) {\r\n return new MessageActivity(activity.text, activity);\r\n }\r\n\r\n /**\r\n * convert to interface\r\n */\r\n toInterface(): IMessageActivity {\r\n return Object.assign(\r\n {\r\n stripMentionsText: this.stripMentionsText.bind(this),\r\n isRecipientMentioned: this.isRecipientMentioned.bind(this),\r\n getAccountMention: this.getAccountMention.bind(this),\r\n },\r\n this\r\n );\r\n }\r\n\r\n /**\r\n * copy to a new instance\r\n */\r\n clone(options: Omit<Partial<IMessageActivity>, 'type'> = {}) {\r\n return new MessageActivity(this.text, {\r\n ...this.toInterface(),\r\n ...options,\r\n });\r\n }\r\n\r\n /**\r\n * The text content of the message.\r\n */\r\n withText(value: string) {\r\n this.text = value;\r\n return this;\r\n }\r\n\r\n /**\r\n * The text to speak.\r\n */\r\n withSpeak(value: string) {\r\n this.speak = value;\r\n return this;\r\n }\r\n\r\n /**\r\n * Indicates whether your bot is accepting,\r\n * expecting, or ignoring user input after the message is delivered to the client. Possible\r\n * values include: 'acceptingInput', 'ignoringInput', 'expectingInput'\r\n */\r\n withInputHint(value: InputHint) {\r\n this.inputHint = value;\r\n return this;\r\n }\r\n\r\n /**\r\n * The text to display if the channel cannot render cards.\r\n */\r\n withSummary(value: string) {\r\n this.summary = value;\r\n return this;\r\n }\r\n\r\n /**\r\n * Format of text fields Default:markdown. Possible values include: 'markdown', 'plain', 'xml'\r\n */\r\n withTextFormat(value: TextFormat) {\r\n this.textFormat = value;\r\n return this;\r\n }\r\n\r\n /**\r\n * The layout hint for multiple attachments. Default: list. Possible values include: 'list',\r\n * 'carousel'\r\n */\r\n withAttachmentLayout(value: AttachmentLayout) {\r\n this.attachmentLayout = value;\r\n return this;\r\n }\r\n\r\n /**\r\n * The suggested actions for the activity.\r\n */\r\n withSuggestedActions(value: SuggestedActions) {\r\n this.suggestedActions = value;\r\n return this;\r\n }\r\n\r\n /**\r\n * The importance of the activity. Possible values include: 'low', 'normal', 'high'\r\n */\r\n withImportance(value: Importance) {\r\n this.importance = value;\r\n return this;\r\n }\r\n\r\n /**\r\n * A delivery hint to signal to the recipient alternate delivery paths for the activity.\r\n * The default delivery mode is \"default\". Possible values include: 'normal', 'notification'\r\n */\r\n withDeliveryMode(value: DeliveryMode) {\r\n this.deliveryMode = value;\r\n return this;\r\n }\r\n\r\n /**\r\n * The time at which the activity should be considered to be \"expired\" and should not be\r\n * presented to the recipient.\r\n */\r\n withExpiration(value: Date) {\r\n this.expiration = value;\r\n return this;\r\n }\r\n\r\n /**\r\n * Append text\r\n */\r\n addText(text: string) {\r\n this.text += text;\r\n return this;\r\n }\r\n\r\n /**\r\n * Attachments\r\n */\r\n addAttachments(...value: Attachment[]) {\r\n if (!this.attachments) {\r\n this.attachments = [];\r\n }\r\n\r\n this.attachments.push(...value);\r\n return this;\r\n }\r\n\r\n /**\r\n * `@mention` an account\r\n * @param account the account to mention\r\n * @param options options to customize the mention\r\n */\r\n addMention(account: Account, options: AddMentionOptions = {}) {\r\n const text = options.text || account.name;\r\n const addText = options.addText || true;\r\n\r\n if (addText) {\r\n this.addText(`<at>${text}</at>`);\r\n }\r\n\r\n return this.addEntity({\r\n type: 'mention',\r\n mentioned: account,\r\n text: `<at>${text}</at>`,\r\n });\r\n }\r\n\r\n /**\r\n * Add a card attachment\r\n */\r\n addCard<T extends CardAttachmentType>(type: T, content: CardAttachmentTypes[T]['content']) {\r\n return this.addAttachments(cardAttachment(type, content));\r\n }\r\n\r\n /**\r\n * remove \"\\<at>...\\</at>\" text from an activity\r\n */\r\n stripMentionsText(options: StripMentionsTextOptions = {}) {\r\n this.text = stripMentionsText(this, options);\r\n return this;\r\n }\r\n\r\n /**\r\n * is the recipient account mentioned\r\n */\r\n isRecipientMentioned() {\r\n return (this.entities || [])\r\n .filter((e) => e.type === 'mention')\r\n .some((e) => e.mentioned.id === this.recipient.id);\r\n }\r\n\r\n /**\r\n * get a mention by the account id if exists\r\n */\r\n getAccountMention(accountId: string) {\r\n return (this.entities || [])\r\n .filter((e) => e.type === 'mention')\r\n .find((e) => e.mentioned.id === accountId);\r\n }\r\n\r\n /**\r\n * Add stream info, making\r\n * this a final stream message\r\n */\r\n addStreamFinal() {\r\n if (!this.channelData) {\r\n this.channelData = {};\r\n }\r\n\r\n this.channelData.streamId = this.id;\r\n this.channelData.streamType = 'final';\r\n\r\n return this.addEntity({\r\n type: 'streaminfo',\r\n streamId: this.id,\r\n streamType: 'final',\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * options for adding a mention\r\n * to an activity\r\n */\r\nexport type AddMentionOptions = {\r\n /**\r\n * if `true`, append the mention `text` to the `activity.text`\r\n * @default true\r\n */\r\n readonly addText?: boolean;\r\n\r\n /**\r\n * the `text` to use for the mention\r\n *\r\n * @default `account.name`\r\n * @remark\r\n * this text should not include `<at>` or `</at>`\r\n */\r\n readonly text?: string;\r\n};\r\n"]}
1
+ {"version":3,"sources":["../../../src/activities/message/message.ts"],"names":[],"mappings":"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","file":"message.mjs","sourcesContent":["import {\n Account,\n Attachment,\n AttachmentLayout,\n cardAttachment,\n CardAttachmentType,\n CardAttachmentTypes,\n DeliveryMode,\n Importance,\n InputHint,\n MentionEntity,\n SuggestedActions,\n TextFormat,\n} from '../../models';\nimport { IActivity, Activity } from '../activity';\nimport { stripMentionsText, StripMentionsTextOptions } from '../utils';\n\nexport interface IMessageActivity extends IActivity<'message'> {\n /**\n * The text content of the message.\n */\n text: string;\n\n /**\n * The text to speak.\n */\n speak?: string;\n\n /**\n * Indicates whether your bot is accepting,\n * expecting, or ignoring user input after the message is delivered to the client. Possible\n * values include: 'acceptingInput', 'ignoringInput', 'expectingInput'\n */\n inputHint?: InputHint;\n\n /**\n * The text to display if the channel cannot render cards.\n */\n summary?: string;\n\n /**\n * Format of text fields Default:markdown. Possible values include: 'markdown', 'plain', 'xml'\n */\n textFormat?: TextFormat;\n\n /**\n * The layout hint for multiple attachments. Default: list. Possible values include: 'list',\n * 'carousel'\n */\n attachmentLayout?: AttachmentLayout;\n\n /**\n * Attachments\n */\n attachments?: Attachment[];\n\n /**\n * The suggested actions for the activity.\n */\n suggestedActions?: SuggestedActions;\n\n /**\n * The importance of the activity. Possible values include: 'low', 'normal', 'high'\n */\n importance?: Importance;\n\n /**\n * A delivery hint to signal to the recipient alternate delivery paths for the activity.\n * The default delivery mode is \"default\". Possible values include: 'normal', 'notification'\n */\n deliveryMode?: DeliveryMode;\n\n /**\n * The time at which the activity should be considered to be \"expired\" and should not be\n * presented to the recipient.\n */\n expiration?: Date;\n\n /**\n * A value that is associated with the activity.\n */\n value?: any;\n\n /**\n * remove \"\\<at>...\\</at>\" text from an activity\n */\n stripMentionsText(options?: StripMentionsTextOptions): IMessageActivity;\n\n /**\n * is the recipient account mentioned\n */\n isRecipientMentioned(): boolean;\n\n /**\n * get a mention by the account id if exists\n */\n getAccountMention(accountId: string): MentionEntity | undefined;\n}\n\nexport class MessageActivity extends Activity<'message'> implements IMessageActivity {\n /**\n * The text content of the message.\n */\n text!: string;\n\n /**\n * The text to speak.\n */\n speak?: string;\n\n /**\n * Indicates whether your bot is accepting,\n * expecting, or ignoring user input after the message is delivered to the client. Possible\n * values include: 'acceptingInput', 'ignoringInput', 'expectingInput'\n */\n inputHint?: InputHint;\n\n /**\n * The text to display if the channel cannot render cards.\n */\n summary?: string;\n\n /**\n * Format of text fields Default:markdown. Possible values include: 'markdown', 'plain', 'xml'\n */\n textFormat?: TextFormat;\n\n /**\n * The layout hint for multiple attachments. Default: list. Possible values include: 'list',\n * 'carousel'\n */\n attachmentLayout?: AttachmentLayout;\n\n /**\n * Attachments\n */\n attachments?: Attachment[];\n\n /**\n * The suggested actions for the activity.\n */\n suggestedActions?: SuggestedActions;\n\n /**\n * The importance of the activity. Possible values include: 'low', 'normal', 'high'\n */\n importance?: Importance;\n\n /**\n * A delivery hint to signal to the recipient alternate delivery paths for the activity.\n * The default delivery mode is \"default\". Possible values include: 'normal', 'notification'\n */\n deliveryMode?: DeliveryMode;\n\n /**\n * The time at which the activity should be considered to be \"expired\" and should not be\n * presented to the recipient.\n */\n expiration?: Date;\n\n /**\n * A value that is associated with the activity.\n */\n value?: any;\n\n constructor(text: string = '', value: Omit<Partial<IMessageActivity>, 'type'> = {}) {\n super({\n ...value,\n type: 'message',\n });\n\n Object.assign(this, { text, ...value });\n }\n\n /**\n * initialize from interface\n */\n static from(activity: IMessageActivity) {\n return new MessageActivity(activity.text, activity);\n }\n\n /**\n * convert to interface\n */\n toInterface(): IMessageActivity {\n return Object.assign(\n {\n stripMentionsText: this.stripMentionsText.bind(this),\n isRecipientMentioned: this.isRecipientMentioned.bind(this),\n getAccountMention: this.getAccountMention.bind(this),\n },\n this\n );\n }\n\n /**\n * copy to a new instance\n */\n clone(options: Omit<Partial<IMessageActivity>, 'type'> = {}) {\n return new MessageActivity(this.text, {\n ...this.toInterface(),\n ...options,\n });\n }\n\n /**\n * The text content of the message.\n */\n withText(value: string) {\n this.text = value;\n return this;\n }\n\n /**\n * The text to speak.\n */\n withSpeak(value: string) {\n this.speak = value;\n return this;\n }\n\n /**\n * Indicates whether your bot is accepting,\n * expecting, or ignoring user input after the message is delivered to the client. Possible\n * values include: 'acceptingInput', 'ignoringInput', 'expectingInput'\n */\n withInputHint(value: InputHint) {\n this.inputHint = value;\n return this;\n }\n\n /**\n * The text to display if the channel cannot render cards.\n */\n withSummary(value: string) {\n this.summary = value;\n return this;\n }\n\n /**\n * Format of text fields Default:markdown. Possible values include: 'markdown', 'plain', 'xml'\n */\n withTextFormat(value: TextFormat) {\n this.textFormat = value;\n return this;\n }\n\n /**\n * The layout hint for multiple attachments. Default: list. Possible values include: 'list',\n * 'carousel'\n */\n withAttachmentLayout(value: AttachmentLayout) {\n this.attachmentLayout = value;\n return this;\n }\n\n /**\n * The suggested actions for the activity.\n */\n withSuggestedActions(value: SuggestedActions) {\n this.suggestedActions = value;\n return this;\n }\n\n /**\n * The importance of the activity. Possible values include: 'low', 'normal', 'high'\n */\n withImportance(value: Importance) {\n this.importance = value;\n return this;\n }\n\n /**\n * A delivery hint to signal to the recipient alternate delivery paths for the activity.\n * The default delivery mode is \"default\". Possible values include: 'normal', 'notification'\n */\n withDeliveryMode(value: DeliveryMode) {\n this.deliveryMode = value;\n return this;\n }\n\n /**\n * The time at which the activity should be considered to be \"expired\" and should not be\n * presented to the recipient.\n */\n withExpiration(value: Date) {\n this.expiration = value;\n return this;\n }\n\n /**\n * Append text\n */\n addText(text: string) {\n this.text += text;\n return this;\n }\n\n /**\n * Attachments\n */\n addAttachments(...value: Attachment[]) {\n if (!this.attachments) {\n this.attachments = [];\n }\n\n this.attachments.push(...value);\n return this;\n }\n\n /**\n * `@mention` an account\n * @param account the account to mention\n * @param options options to customize the mention\n */\n addMention(account: Account, options: AddMentionOptions = {}) {\n const text = options.text || account.name;\n const addText = options.addText || true;\n\n if (addText) {\n this.addText(`<at>${text}</at>`);\n }\n\n return this.addEntity({\n type: 'mention',\n mentioned: account,\n text: `<at>${text}</at>`,\n });\n }\n\n /**\n * Add a card attachment\n */\n addCard<T extends CardAttachmentType>(type: T, content: CardAttachmentTypes[T]['content']) {\n return this.addAttachments(cardAttachment(type, content));\n }\n\n /**\n * remove \"\\<at>...\\</at>\" text from an activity\n */\n stripMentionsText(options: StripMentionsTextOptions = {}) {\n this.text = stripMentionsText(this, options);\n return this;\n }\n\n /**\n * is the recipient account mentioned\n */\n isRecipientMentioned() {\n return (this.entities || [])\n .filter((e) => e.type === 'mention')\n .some((e) => e.mentioned.id === this.recipient.id);\n }\n\n /**\n * get a mention by the account id if exists\n */\n getAccountMention(accountId: string) {\n return (this.entities || [])\n .filter((e) => e.type === 'mention')\n .find((e) => e.mentioned.id === accountId);\n }\n\n /**\n * Add stream info, making\n * this a final stream message\n */\n addStreamFinal() {\n if (!this.channelData) {\n this.channelData = {};\n }\n\n this.channelData.streamId = this.id;\n this.channelData.streamType = 'final';\n\n return this.addEntity({\n type: 'streaminfo',\n streamId: this.id,\n streamType: 'final',\n });\n }\n}\n\n/**\n * options for adding a mention\n * to an activity\n */\nexport type AddMentionOptions = {\n /**\n * if `true`, append the mention `text` to the `activity.text`\n * @default true\n */\n readonly addText?: boolean;\n\n /**\n * the `text` to use for the mention\n *\n * @default `account.name`\n * @remark\n * this text should not include `<at>` or `</at>`\n */\n readonly text?: string;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/activities/utils/to-activity-params.ts"],"names":["isCard","MessageActivity"],"mappings":";;;;;AAYO,SAAS,iBAAiB,QAAwC,EAAA;AACvE,EAAI,IAAA,OAAO,aAAa,QAAU,EAAA;AAChC,IAAW,QAAA,GAAA;AAAA,MACT,IAAM,EAAA,SAAA;AAAA,MACN,IAAM,EAAA;AAAA,KACR;AAAA,GACF,MAAA,IAAWA,kBAAO,CAAA,QAAQ,CAAG,EAAA;AAC3B,IAAA,QAAA,GAAW,IAAIC,uBAAA,EAAkB,CAAA,OAAA,CAAQ,YAAY,QAAQ,CAAA;AAAA;AAG/D,EAAO,OAAA,QAAA;AACT","file":"to-activity-params.js","sourcesContent":["import { isCard } from '@microsoft/teams.cards';\r\n\r\nimport { ActivityParams } from '../../clients';\r\nimport { ActivityLike } from '../../models';\r\nimport { MessageActivity } from '../message';\r\n\r\n/**\r\n * @hidden\r\n * @internal\r\n *\r\n * Transforms supported send types into a valid `ActivityParams` object\r\n */\r\nexport function toActivityParams(activity: ActivityLike): ActivityParams {\r\n if (typeof activity === 'string') {\r\n activity = {\r\n type: 'message',\r\n text: activity,\r\n };\r\n } else if (isCard(activity)) {\r\n activity = new MessageActivity().addCard('adaptive', activity);\r\n }\r\n\r\n return activity;\r\n}\r\n"]}
1
+ {"version":3,"sources":["../../../src/activities/utils/to-activity-params.ts"],"names":["isCard","MessageActivity"],"mappings":";;;;;AAYO,SAAS,iBAAiB,QAAwC,EAAA;AACvE,EAAI,IAAA,OAAO,aAAa,QAAU,EAAA;AAChC,IAAW,QAAA,GAAA;AAAA,MACT,IAAM,EAAA,SAAA;AAAA,MACN,IAAM,EAAA;AAAA,KACR;AAAA,GACF,MAAA,IAAWA,kBAAO,CAAA,QAAQ,CAAG,EAAA;AAC3B,IAAA,QAAA,GAAW,IAAIC,uBAAA,EAAkB,CAAA,OAAA,CAAQ,YAAY,QAAQ,CAAA;AAAA;AAG/D,EAAO,OAAA,QAAA;AACT","file":"to-activity-params.js","sourcesContent":["import { isCard } from '@microsoft/teams.cards';\n\nimport { ActivityParams } from '../../clients';\nimport { ActivityLike } from '../../models';\nimport { MessageActivity } from '../message';\n\n/**\n * @hidden\n * @internal\n *\n * Transforms supported send types into a valid `ActivityParams` object\n */\nexport function toActivityParams(activity: ActivityLike): ActivityParams {\n if (typeof activity === 'string') {\n activity = {\n type: 'message',\n text: activity,\n };\n } else if (isCard(activity)) {\n activity = new MessageActivity().addCard('adaptive', activity);\n }\n\n return activity;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/activities/utils/to-activity-params.ts"],"names":[],"mappings":";;;AAYO,SAAS,iBAAiB,QAAwC,EAAA;AACvE,EAAI,IAAA,OAAO,aAAa,QAAU,EAAA;AAChC,IAAW,QAAA,GAAA;AAAA,MACT,IAAM,EAAA,SAAA;AAAA,MACN,IAAM,EAAA;AAAA,KACR;AAAA,GACF,MAAA,IAAW,MAAO,CAAA,QAAQ,CAAG,EAAA;AAC3B,IAAA,QAAA,GAAW,IAAI,eAAA,EAAkB,CAAA,OAAA,CAAQ,YAAY,QAAQ,CAAA;AAAA;AAG/D,EAAO,OAAA,QAAA;AACT","file":"to-activity-params.mjs","sourcesContent":["import { isCard } from '@microsoft/teams.cards';\r\n\r\nimport { ActivityParams } from '../../clients';\r\nimport { ActivityLike } from '../../models';\r\nimport { MessageActivity } from '../message';\r\n\r\n/**\r\n * @hidden\r\n * @internal\r\n *\r\n * Transforms supported send types into a valid `ActivityParams` object\r\n */\r\nexport function toActivityParams(activity: ActivityLike): ActivityParams {\r\n if (typeof activity === 'string') {\r\n activity = {\r\n type: 'message',\r\n text: activity,\r\n };\r\n } else if (isCard(activity)) {\r\n activity = new MessageActivity().addCard('adaptive', activity);\r\n }\r\n\r\n return activity;\r\n}\r\n"]}
1
+ {"version":3,"sources":["../../../src/activities/utils/to-activity-params.ts"],"names":[],"mappings":";;;AAYO,SAAS,iBAAiB,QAAwC,EAAA;AACvE,EAAI,IAAA,OAAO,aAAa,QAAU,EAAA;AAChC,IAAW,QAAA,GAAA;AAAA,MACT,IAAM,EAAA,SAAA;AAAA,MACN,IAAM,EAAA;AAAA,KACR;AAAA,GACF,MAAA,IAAW,MAAO,CAAA,QAAQ,CAAG,EAAA;AAC3B,IAAA,QAAA,GAAW,IAAI,eAAA,EAAkB,CAAA,OAAA,CAAQ,YAAY,QAAQ,CAAA;AAAA;AAG/D,EAAO,OAAA,QAAA;AACT","file":"to-activity-params.mjs","sourcesContent":["import { isCard } from '@microsoft/teams.cards';\n\nimport { ActivityParams } from '../../clients';\nimport { ActivityLike } from '../../models';\nimport { MessageActivity } from '../message';\n\n/**\n * @hidden\n * @internal\n *\n * Transforms supported send types into a valid `ActivityParams` object\n */\nexport function toActivityParams(activity: ActivityLike): ActivityParams {\n if (typeof activity === 'string') {\n activity = {\n type: 'message',\n text: activity,\n };\n } else if (isCard(activity)) {\n activity = new MessageActivity().addCard('adaptive', activity);\n }\n\n return activity;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/clients/bot/sign-in.ts"],"names":["Client","qs"],"mappings":";;;;;;;;;AAoBO,MAAM,eAAgB,CAAA;AAAA,EAC3B,IAAI,IAAO,GAAA;AACT,IAAA,OAAO,IAAK,CAAA,KAAA;AAAA;AACd,EACA,IAAI,KAAK,CAAG,EAAA;AACV,IAAA,IAAA,CAAK,KAAQ,GAAA,CAAA;AAAA;AACf,EACU,KAAA;AAAA,EAEV,YAAY,OAAkC,EAAA;AAC5C,IAAA,IAAI,CAAC,OAAS,EAAA;AACZ,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAIA,WAAO,EAAA;AAAA,KAC1B,MAAA,IAAW,aAAa,OAAS,EAAA;AAC/B,MAAA,IAAA,CAAK,KAAQ,GAAA,OAAA;AAAA,KACR,MAAA;AACL,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAIA,WAAA,CAAO,OAAO,CAAA;AAAA;AACjC;AACF,EAEA,MAAM,OAAO,MAA+B,EAAA;AAC1C,IAAM,MAAA,CAAA,GAAIC,mBAAG,CAAA,SAAA,CAAU,MAAM,CAAA;AAC7B,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,GAAA;AAAA,MAC1B,6DAA6D,CAAC,CAAA;AAAA,KAChE;AAEA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,YAAY,MAAoC,EAAA;AACpD,IAAM,MAAA,CAAA,GAAIA,mBAAG,CAAA,SAAA,CAAU,MAAM,CAAA;AAC7B,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,GAAA;AAAA,MAC1B,kEAAkE,CAAC,CAAA;AAAA,KACrE;AAEA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AAEf","file":"sign-in.js","sourcesContent":["import qs from 'qs';\r\n\r\nimport { Client, ClientOptions } from '@microsoft/teams.common/http';\r\n\r\nimport { SignInUrlResponse } from '../../models';\r\n\r\nexport type GetBotSignInUrlParams = {\r\n state: string;\r\n codeChallenge?: string;\r\n emulatorUrl?: string;\r\n finalRedirect?: string;\r\n};\r\n\r\nexport type GetBotSignInResourceParams = {\r\n state: string;\r\n codeChallenge?: string;\r\n emulatorUrl?: string;\r\n finalRedirect?: string;\r\n};\r\n\r\nexport class BotSignInClient {\r\n get http() {\r\n return this._http;\r\n }\r\n set http(v) {\r\n this._http = v;\r\n }\r\n protected _http: Client;\r\n\r\n constructor(options?: Client | ClientOptions) {\r\n if (!options) {\r\n this._http = new Client();\r\n } else if ('request' in options) {\r\n this._http = options;\r\n } else {\r\n this._http = new Client(options);\r\n }\r\n }\r\n\r\n async getUrl(params: GetBotSignInUrlParams) {\r\n const q = qs.stringify(params);\r\n const res = await this.http.get<string>(\r\n `https://token.botframework.com/api/botsignin/GetSignInUrl?${q}`\r\n );\r\n\r\n return res.data;\r\n }\r\n\r\n async getResource(params: GetBotSignInResourceParams) {\r\n const q = qs.stringify(params);\r\n const res = await this.http.get<SignInUrlResponse>(\r\n `https://token.botframework.com/api/botsignin/GetSignInResource?${q}`\r\n );\r\n\r\n return res.data;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"sources":["../../../src/clients/bot/sign-in.ts"],"names":["Client","qs"],"mappings":";;;;;;;;;AAoBO,MAAM,eAAgB,CAAA;AAAA,EAC3B,IAAI,IAAO,GAAA;AACT,IAAA,OAAO,IAAK,CAAA,KAAA;AAAA;AACd,EACA,IAAI,KAAK,CAAG,EAAA;AACV,IAAA,IAAA,CAAK,KAAQ,GAAA,CAAA;AAAA;AACf,EACU,KAAA;AAAA,EAEV,YAAY,OAAkC,EAAA;AAC5C,IAAA,IAAI,CAAC,OAAS,EAAA;AACZ,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAIA,WAAO,EAAA;AAAA,KAC1B,MAAA,IAAW,aAAa,OAAS,EAAA;AAC/B,MAAA,IAAA,CAAK,KAAQ,GAAA,OAAA;AAAA,KACR,MAAA;AACL,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAIA,WAAA,CAAO,OAAO,CAAA;AAAA;AACjC;AACF,EAEA,MAAM,OAAO,MAA+B,EAAA;AAC1C,IAAM,MAAA,CAAA,GAAIC,mBAAG,CAAA,SAAA,CAAU,MAAM,CAAA;AAC7B,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,GAAA;AAAA,MAC1B,6DAA6D,CAAC,CAAA;AAAA,KAChE;AAEA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,YAAY,MAAoC,EAAA;AACpD,IAAM,MAAA,CAAA,GAAIA,mBAAG,CAAA,SAAA,CAAU,MAAM,CAAA;AAC7B,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,GAAA;AAAA,MAC1B,kEAAkE,CAAC,CAAA;AAAA,KACrE;AAEA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AAEf","file":"sign-in.js","sourcesContent":["import qs from 'qs';\n\nimport { Client, ClientOptions } from '@microsoft/teams.common/http';\n\nimport { SignInUrlResponse } from '../../models';\n\nexport type GetBotSignInUrlParams = {\n state: string;\n codeChallenge?: string;\n emulatorUrl?: string;\n finalRedirect?: string;\n};\n\nexport type GetBotSignInResourceParams = {\n state: string;\n codeChallenge?: string;\n emulatorUrl?: string;\n finalRedirect?: string;\n};\n\nexport class BotSignInClient {\n get http() {\n return this._http;\n }\n set http(v) {\n this._http = v;\n }\n protected _http: Client;\n\n constructor(options?: Client | ClientOptions) {\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\n async getUrl(params: GetBotSignInUrlParams) {\n const q = qs.stringify(params);\n const res = await this.http.get<string>(\n `https://token.botframework.com/api/botsignin/GetSignInUrl?${q}`\n );\n\n return res.data;\n }\n\n async getResource(params: GetBotSignInResourceParams) {\n const q = qs.stringify(params);\n const res = await this.http.get<SignInUrlResponse>(\n `https://token.botframework.com/api/botsignin/GetSignInResource?${q}`\n );\n\n return res.data;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/clients/bot/sign-in.ts"],"names":[],"mappings":";;;AAoBO,MAAM,eAAgB,CAAA;AAAA,EAC3B,IAAI,IAAO,GAAA;AACT,IAAA,OAAO,IAAK,CAAA,KAAA;AAAA;AACd,EACA,IAAI,KAAK,CAAG,EAAA;AACV,IAAA,IAAA,CAAK,KAAQ,GAAA,CAAA;AAAA;AACf,EACU,KAAA;AAAA,EAEV,YAAY,OAAkC,EAAA;AAC5C,IAAA,IAAI,CAAC,OAAS,EAAA;AACZ,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAI,MAAO,EAAA;AAAA,KAC1B,MAAA,IAAW,aAAa,OAAS,EAAA;AAC/B,MAAA,IAAA,CAAK,KAAQ,GAAA,OAAA;AAAA,KACR,MAAA;AACL,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAI,MAAA,CAAO,OAAO,CAAA;AAAA;AACjC;AACF,EAEA,MAAM,OAAO,MAA+B,EAAA;AAC1C,IAAM,MAAA,CAAA,GAAI,EAAG,CAAA,SAAA,CAAU,MAAM,CAAA;AAC7B,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,GAAA;AAAA,MAC1B,6DAA6D,CAAC,CAAA;AAAA,KAChE;AAEA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,YAAY,MAAoC,EAAA;AACpD,IAAM,MAAA,CAAA,GAAI,EAAG,CAAA,SAAA,CAAU,MAAM,CAAA;AAC7B,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,GAAA;AAAA,MAC1B,kEAAkE,CAAC,CAAA;AAAA,KACrE;AAEA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AAEf","file":"sign-in.mjs","sourcesContent":["import qs from 'qs';\r\n\r\nimport { Client, ClientOptions } from '@microsoft/teams.common/http';\r\n\r\nimport { SignInUrlResponse } from '../../models';\r\n\r\nexport type GetBotSignInUrlParams = {\r\n state: string;\r\n codeChallenge?: string;\r\n emulatorUrl?: string;\r\n finalRedirect?: string;\r\n};\r\n\r\nexport type GetBotSignInResourceParams = {\r\n state: string;\r\n codeChallenge?: string;\r\n emulatorUrl?: string;\r\n finalRedirect?: string;\r\n};\r\n\r\nexport class BotSignInClient {\r\n get http() {\r\n return this._http;\r\n }\r\n set http(v) {\r\n this._http = v;\r\n }\r\n protected _http: Client;\r\n\r\n constructor(options?: Client | ClientOptions) {\r\n if (!options) {\r\n this._http = new Client();\r\n } else if ('request' in options) {\r\n this._http = options;\r\n } else {\r\n this._http = new Client(options);\r\n }\r\n }\r\n\r\n async getUrl(params: GetBotSignInUrlParams) {\r\n const q = qs.stringify(params);\r\n const res = await this.http.get<string>(\r\n `https://token.botframework.com/api/botsignin/GetSignInUrl?${q}`\r\n );\r\n\r\n return res.data;\r\n }\r\n\r\n async getResource(params: GetBotSignInResourceParams) {\r\n const q = qs.stringify(params);\r\n const res = await this.http.get<SignInUrlResponse>(\r\n `https://token.botframework.com/api/botsignin/GetSignInResource?${q}`\r\n );\r\n\r\n return res.data;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"sources":["../../../src/clients/bot/sign-in.ts"],"names":[],"mappings":";;;AAoBO,MAAM,eAAgB,CAAA;AAAA,EAC3B,IAAI,IAAO,GAAA;AACT,IAAA,OAAO,IAAK,CAAA,KAAA;AAAA;AACd,EACA,IAAI,KAAK,CAAG,EAAA;AACV,IAAA,IAAA,CAAK,KAAQ,GAAA,CAAA;AAAA;AACf,EACU,KAAA;AAAA,EAEV,YAAY,OAAkC,EAAA;AAC5C,IAAA,IAAI,CAAC,OAAS,EAAA;AACZ,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAI,MAAO,EAAA;AAAA,KAC1B,MAAA,IAAW,aAAa,OAAS,EAAA;AAC/B,MAAA,IAAA,CAAK,KAAQ,GAAA,OAAA;AAAA,KACR,MAAA;AACL,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAI,MAAA,CAAO,OAAO,CAAA;AAAA;AACjC;AACF,EAEA,MAAM,OAAO,MAA+B,EAAA;AAC1C,IAAM,MAAA,CAAA,GAAI,EAAG,CAAA,SAAA,CAAU,MAAM,CAAA;AAC7B,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,GAAA;AAAA,MAC1B,6DAA6D,CAAC,CAAA;AAAA,KAChE;AAEA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,YAAY,MAAoC,EAAA;AACpD,IAAM,MAAA,CAAA,GAAI,EAAG,CAAA,SAAA,CAAU,MAAM,CAAA;AAC7B,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,GAAA;AAAA,MAC1B,kEAAkE,CAAC,CAAA;AAAA,KACrE;AAEA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AAEf","file":"sign-in.mjs","sourcesContent":["import qs from 'qs';\n\nimport { Client, ClientOptions } from '@microsoft/teams.common/http';\n\nimport { SignInUrlResponse } from '../../models';\n\nexport type GetBotSignInUrlParams = {\n state: string;\n codeChallenge?: string;\n emulatorUrl?: string;\n finalRedirect?: string;\n};\n\nexport type GetBotSignInResourceParams = {\n state: string;\n codeChallenge?: string;\n emulatorUrl?: string;\n finalRedirect?: string;\n};\n\nexport class BotSignInClient {\n get http() {\n return this._http;\n }\n set http(v) {\n this._http = v;\n }\n protected _http: Client;\n\n constructor(options?: Client | ClientOptions) {\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\n async getUrl(params: GetBotSignInUrlParams) {\n const q = qs.stringify(params);\n const res = await this.http.get<string>(\n `https://token.botframework.com/api/botsignin/GetSignInUrl?${q}`\n );\n\n return res.data;\n }\n\n async getResource(params: GetBotSignInResourceParams) {\n const q = qs.stringify(params);\n const res = await this.http.get<SignInUrlResponse>(\n `https://token.botframework.com/api/botsignin/GetSignInResource?${q}`\n );\n\n return res.data;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/clients/bot/token.ts"],"names":["Client","qs"],"mappings":";;;;;;;;;AAaO,MAAM,cAAe,CAAA;AAAA,EAC1B,IAAI,IAAO,GAAA;AACT,IAAA,OAAO,IAAK,CAAA,KAAA;AAAA;AACd,EACA,IAAI,KAAK,CAAG,EAAA;AACV,IAAA,IAAA,CAAK,KAAQ,GAAA,CAAA;AAAA;AACf,EACU,KAAA;AAAA,EAEV,YAAY,OAAkC,EAAA;AAC5C,IAAA,IAAI,CAAC,OAAS,EAAA;AACZ,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAIA,WAAO,EAAA;AAAA,KAC1B,MAAA,IAAW,aAAa,OAAS,EAAA;AAC/B,MAAA,IAAA,CAAK,KAAQ,GAAA,OAAA;AAAA,KACR,MAAA;AACL,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAIA,WAAA,CAAO,OAAO,CAAA;AAAA;AACjC;AACF,EAEA,MAAM,IAAI,WAA0B,EAAA;AAClC,IAAA,IAAI,WAAW,WAAa,EAAA;AAC1B,MAAO,OAAA;AAAA,QACL,UAAY,EAAA,QAAA;AAAA,QACZ,UAAY,EAAA,EAAA;AAAA,QACZ,YAAA,EAAc,MAAM,WAAY,CAAA,KAAA;AAAA,UAC9B,uCAAA;AAAA,UACA,WAAY,CAAA;AAAA;AACd,OACF;AAAA;AAGF,IAAM,MAAA,QAAA,GAAW,YAAY,QAAY,IAAA,kBAAA;AACzC,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,IAAA;AAAA,MAC1B,qCAAqC,QAAQ,CAAA,kBAAA,CAAA;AAAA,MAC7CC,oBAAG,SAAU,CAAA;AAAA,QACX,UAAY,EAAA,oBAAA;AAAA,QACZ,WAAW,WAAY,CAAA,QAAA;AAAA,QACvB,eAAe,WAAY,CAAA,YAAA;AAAA,QAC3B,KAAO,EAAA;AAAA,OACR,CAAA;AAAA,MACD;AAAA,QACE,OAAA,EAAS,EAAE,cAAA,EAAgB,mCAAoC;AAAA;AACjE,KACF;AAEA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,SAAS,WAA0B,EAAA;AACvC,IAAA,IAAI,WAAW,WAAa,EAAA;AAC1B,MAAO,OAAA;AAAA,QACL,UAAY,EAAA,QAAA;AAAA,QACZ,UAAY,EAAA,EAAA;AAAA,QACZ,YAAA,EAAc,MAAM,WAAY,CAAA,KAAA;AAAA,UAC9B,sCAAA;AAAA,UACA,WAAY,CAAA;AAAA;AACd,OACF;AAAA;AAGF,IAAM,MAAA,QAAA,GAAW,YAAY,QAAY,IAAA,kBAAA;AACzC,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,IAAA;AAAA,MAC1B,qCAAqC,QAAQ,CAAA,kBAAA,CAAA;AAAA,MAC7CA,oBAAG,SAAU,CAAA;AAAA,QACX,UAAY,EAAA,oBAAA;AAAA,QACZ,WAAW,WAAY,CAAA,QAAA;AAAA,QACvB,eAAe,WAAY,CAAA,YAAA;AAAA,QAC3B,KAAO,EAAA;AAAA,OACR,CAAA;AAAA,MACD;AAAA,QACE,OAAA,EAAS,EAAE,cAAA,EAAgB,mCAAoC;AAAA;AACjE,KACF;AAEA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AAEf","file":"token.js","sourcesContent":["import qs from 'qs';\r\n\r\nimport { Client, ClientOptions } from '@microsoft/teams.common/http';\r\n\r\nimport { Credentials } from '../../auth';\r\n\r\nexport type GetBotTokenResponse = {\r\n readonly token_type: 'Bearer';\r\n readonly expires_in: number;\r\n readonly ext_expires_in?: number;\r\n readonly access_token: string;\r\n};\r\n\r\nexport class BotTokenClient {\r\n get http() {\r\n return this._http;\r\n }\r\n set http(v) {\r\n this._http = v;\r\n }\r\n protected _http: Client;\r\n\r\n constructor(options?: Client | ClientOptions) {\r\n if (!options) {\r\n this._http = new Client();\r\n } else if ('request' in options) {\r\n this._http = options;\r\n } else {\r\n this._http = new Client(options);\r\n }\r\n }\r\n\r\n async get(credentials: Credentials) {\r\n if ('token' in credentials) {\r\n return {\r\n token_type: 'Bearer',\r\n expires_in: -1,\r\n access_token: await credentials.token(\r\n 'https://api.botframework.com/.default',\r\n credentials.tenantId\r\n ),\r\n };\r\n }\r\n\r\n const tenantId = credentials.tenantId || 'botframework.com';\r\n const res = await this.http.post<GetBotTokenResponse>(\r\n `https://login.microsoftonline.com/${tenantId}/oauth2/v2.0/token`,\r\n qs.stringify({\r\n grant_type: 'client_credentials',\r\n client_id: credentials.clientId,\r\n client_secret: credentials.clientSecret,\r\n scope: 'https://api.botframework.com/.default',\r\n }),\r\n {\r\n headers: { 'Content-Type': 'application/x-www-form-urlencoded' },\r\n }\r\n );\r\n\r\n return res.data;\r\n }\r\n\r\n async getGraph(credentials: Credentials) {\r\n if ('token' in credentials) {\r\n return {\r\n token_type: 'Bearer',\r\n expires_in: -1,\r\n access_token: await credentials.token(\r\n 'https://graph.microsoft.com/.default',\r\n credentials.tenantId\r\n ),\r\n };\r\n }\r\n\r\n const tenantId = credentials.tenantId || 'botframework.com';\r\n const res = await this.http.post<GetBotTokenResponse>(\r\n `https://login.microsoftonline.com/${tenantId}/oauth2/v2.0/token`,\r\n qs.stringify({\r\n grant_type: 'client_credentials',\r\n client_id: credentials.clientId,\r\n client_secret: credentials.clientSecret,\r\n scope: 'https://graph.microsoft.com/.default',\r\n }),\r\n {\r\n headers: { 'Content-Type': 'application/x-www-form-urlencoded' },\r\n }\r\n );\r\n\r\n return res.data;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"sources":["../../../src/clients/bot/token.ts"],"names":["Client","qs"],"mappings":";;;;;;;;;AAaO,MAAM,cAAe,CAAA;AAAA,EAC1B,IAAI,IAAO,GAAA;AACT,IAAA,OAAO,IAAK,CAAA,KAAA;AAAA;AACd,EACA,IAAI,KAAK,CAAG,EAAA;AACV,IAAA,IAAA,CAAK,KAAQ,GAAA,CAAA;AAAA;AACf,EACU,KAAA;AAAA,EAEV,YAAY,OAAkC,EAAA;AAC5C,IAAA,IAAI,CAAC,OAAS,EAAA;AACZ,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAIA,WAAO,EAAA;AAAA,KAC1B,MAAA,IAAW,aAAa,OAAS,EAAA;AAC/B,MAAA,IAAA,CAAK,KAAQ,GAAA,OAAA;AAAA,KACR,MAAA;AACL,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAIA,WAAA,CAAO,OAAO,CAAA;AAAA;AACjC;AACF,EAEA,MAAM,IAAI,WAA0B,EAAA;AAClC,IAAA,IAAI,WAAW,WAAa,EAAA;AAC1B,MAAO,OAAA;AAAA,QACL,UAAY,EAAA,QAAA;AAAA,QACZ,UAAY,EAAA,EAAA;AAAA,QACZ,YAAA,EAAc,MAAM,WAAY,CAAA,KAAA;AAAA,UAC9B,uCAAA;AAAA,UACA,WAAY,CAAA;AAAA;AACd,OACF;AAAA;AAGF,IAAM,MAAA,QAAA,GAAW,YAAY,QAAY,IAAA,kBAAA;AACzC,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,IAAA;AAAA,MAC1B,qCAAqC,QAAQ,CAAA,kBAAA,CAAA;AAAA,MAC7CC,oBAAG,SAAU,CAAA;AAAA,QACX,UAAY,EAAA,oBAAA;AAAA,QACZ,WAAW,WAAY,CAAA,QAAA;AAAA,QACvB,eAAe,WAAY,CAAA,YAAA;AAAA,QAC3B,KAAO,EAAA;AAAA,OACR,CAAA;AAAA,MACD;AAAA,QACE,OAAA,EAAS,EAAE,cAAA,EAAgB,mCAAoC;AAAA;AACjE,KACF;AAEA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,SAAS,WAA0B,EAAA;AACvC,IAAA,IAAI,WAAW,WAAa,EAAA;AAC1B,MAAO,OAAA;AAAA,QACL,UAAY,EAAA,QAAA;AAAA,QACZ,UAAY,EAAA,EAAA;AAAA,QACZ,YAAA,EAAc,MAAM,WAAY,CAAA,KAAA;AAAA,UAC9B,sCAAA;AAAA,UACA,WAAY,CAAA;AAAA;AACd,OACF;AAAA;AAGF,IAAM,MAAA,QAAA,GAAW,YAAY,QAAY,IAAA,kBAAA;AACzC,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,IAAA;AAAA,MAC1B,qCAAqC,QAAQ,CAAA,kBAAA,CAAA;AAAA,MAC7CA,oBAAG,SAAU,CAAA;AAAA,QACX,UAAY,EAAA,oBAAA;AAAA,QACZ,WAAW,WAAY,CAAA,QAAA;AAAA,QACvB,eAAe,WAAY,CAAA,YAAA;AAAA,QAC3B,KAAO,EAAA;AAAA,OACR,CAAA;AAAA,MACD;AAAA,QACE,OAAA,EAAS,EAAE,cAAA,EAAgB,mCAAoC;AAAA;AACjE,KACF;AAEA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AAEf","file":"token.js","sourcesContent":["import qs from 'qs';\n\nimport { Client, ClientOptions } from '@microsoft/teams.common/http';\n\nimport { Credentials } from '../../auth';\n\nexport type GetBotTokenResponse = {\n readonly token_type: 'Bearer';\n readonly expires_in: number;\n readonly ext_expires_in?: number;\n readonly access_token: string;\n};\n\nexport class BotTokenClient {\n get http() {\n return this._http;\n }\n set http(v) {\n this._http = v;\n }\n protected _http: Client;\n\n constructor(options?: Client | ClientOptions) {\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\n async get(credentials: Credentials) {\n if ('token' in credentials) {\n return {\n token_type: 'Bearer',\n expires_in: -1,\n access_token: await credentials.token(\n 'https://api.botframework.com/.default',\n credentials.tenantId\n ),\n };\n }\n\n const tenantId = credentials.tenantId || 'botframework.com';\n const res = await this.http.post<GetBotTokenResponse>(\n `https://login.microsoftonline.com/${tenantId}/oauth2/v2.0/token`,\n qs.stringify({\n grant_type: 'client_credentials',\n client_id: credentials.clientId,\n client_secret: credentials.clientSecret,\n scope: 'https://api.botframework.com/.default',\n }),\n {\n headers: { 'Content-Type': 'application/x-www-form-urlencoded' },\n }\n );\n\n return res.data;\n }\n\n async getGraph(credentials: Credentials) {\n if ('token' in credentials) {\n return {\n token_type: 'Bearer',\n expires_in: -1,\n access_token: await credentials.token(\n 'https://graph.microsoft.com/.default',\n credentials.tenantId\n ),\n };\n }\n\n const tenantId = credentials.tenantId || 'botframework.com';\n const res = await this.http.post<GetBotTokenResponse>(\n `https://login.microsoftonline.com/${tenantId}/oauth2/v2.0/token`,\n qs.stringify({\n grant_type: 'client_credentials',\n client_id: credentials.clientId,\n client_secret: credentials.clientSecret,\n scope: 'https://graph.microsoft.com/.default',\n }),\n {\n headers: { 'Content-Type': 'application/x-www-form-urlencoded' },\n }\n );\n\n return res.data;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/clients/bot/token.ts"],"names":[],"mappings":";;;AAaO,MAAM,cAAe,CAAA;AAAA,EAC1B,IAAI,IAAO,GAAA;AACT,IAAA,OAAO,IAAK,CAAA,KAAA;AAAA;AACd,EACA,IAAI,KAAK,CAAG,EAAA;AACV,IAAA,IAAA,CAAK,KAAQ,GAAA,CAAA;AAAA;AACf,EACU,KAAA;AAAA,EAEV,YAAY,OAAkC,EAAA;AAC5C,IAAA,IAAI,CAAC,OAAS,EAAA;AACZ,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAI,MAAO,EAAA;AAAA,KAC1B,MAAA,IAAW,aAAa,OAAS,EAAA;AAC/B,MAAA,IAAA,CAAK,KAAQ,GAAA,OAAA;AAAA,KACR,MAAA;AACL,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAI,MAAA,CAAO,OAAO,CAAA;AAAA;AACjC;AACF,EAEA,MAAM,IAAI,WAA0B,EAAA;AAClC,IAAA,IAAI,WAAW,WAAa,EAAA;AAC1B,MAAO,OAAA;AAAA,QACL,UAAY,EAAA,QAAA;AAAA,QACZ,UAAY,EAAA,EAAA;AAAA,QACZ,YAAA,EAAc,MAAM,WAAY,CAAA,KAAA;AAAA,UAC9B,uCAAA;AAAA,UACA,WAAY,CAAA;AAAA;AACd,OACF;AAAA;AAGF,IAAM,MAAA,QAAA,GAAW,YAAY,QAAY,IAAA,kBAAA;AACzC,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,IAAA;AAAA,MAC1B,qCAAqC,QAAQ,CAAA,kBAAA,CAAA;AAAA,MAC7C,GAAG,SAAU,CAAA;AAAA,QACX,UAAY,EAAA,oBAAA;AAAA,QACZ,WAAW,WAAY,CAAA,QAAA;AAAA,QACvB,eAAe,WAAY,CAAA,YAAA;AAAA,QAC3B,KAAO,EAAA;AAAA,OACR,CAAA;AAAA,MACD;AAAA,QACE,OAAA,EAAS,EAAE,cAAA,EAAgB,mCAAoC;AAAA;AACjE,KACF;AAEA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,SAAS,WAA0B,EAAA;AACvC,IAAA,IAAI,WAAW,WAAa,EAAA;AAC1B,MAAO,OAAA;AAAA,QACL,UAAY,EAAA,QAAA;AAAA,QACZ,UAAY,EAAA,EAAA;AAAA,QACZ,YAAA,EAAc,MAAM,WAAY,CAAA,KAAA;AAAA,UAC9B,sCAAA;AAAA,UACA,WAAY,CAAA;AAAA;AACd,OACF;AAAA;AAGF,IAAM,MAAA,QAAA,GAAW,YAAY,QAAY,IAAA,kBAAA;AACzC,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,IAAA;AAAA,MAC1B,qCAAqC,QAAQ,CAAA,kBAAA,CAAA;AAAA,MAC7C,GAAG,SAAU,CAAA;AAAA,QACX,UAAY,EAAA,oBAAA;AAAA,QACZ,WAAW,WAAY,CAAA,QAAA;AAAA,QACvB,eAAe,WAAY,CAAA,YAAA;AAAA,QAC3B,KAAO,EAAA;AAAA,OACR,CAAA;AAAA,MACD;AAAA,QACE,OAAA,EAAS,EAAE,cAAA,EAAgB,mCAAoC;AAAA;AACjE,KACF;AAEA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AAEf","file":"token.mjs","sourcesContent":["import qs from 'qs';\r\n\r\nimport { Client, ClientOptions } from '@microsoft/teams.common/http';\r\n\r\nimport { Credentials } from '../../auth';\r\n\r\nexport type GetBotTokenResponse = {\r\n readonly token_type: 'Bearer';\r\n readonly expires_in: number;\r\n readonly ext_expires_in?: number;\r\n readonly access_token: string;\r\n};\r\n\r\nexport class BotTokenClient {\r\n get http() {\r\n return this._http;\r\n }\r\n set http(v) {\r\n this._http = v;\r\n }\r\n protected _http: Client;\r\n\r\n constructor(options?: Client | ClientOptions) {\r\n if (!options) {\r\n this._http = new Client();\r\n } else if ('request' in options) {\r\n this._http = options;\r\n } else {\r\n this._http = new Client(options);\r\n }\r\n }\r\n\r\n async get(credentials: Credentials) {\r\n if ('token' in credentials) {\r\n return {\r\n token_type: 'Bearer',\r\n expires_in: -1,\r\n access_token: await credentials.token(\r\n 'https://api.botframework.com/.default',\r\n credentials.tenantId\r\n ),\r\n };\r\n }\r\n\r\n const tenantId = credentials.tenantId || 'botframework.com';\r\n const res = await this.http.post<GetBotTokenResponse>(\r\n `https://login.microsoftonline.com/${tenantId}/oauth2/v2.0/token`,\r\n qs.stringify({\r\n grant_type: 'client_credentials',\r\n client_id: credentials.clientId,\r\n client_secret: credentials.clientSecret,\r\n scope: 'https://api.botframework.com/.default',\r\n }),\r\n {\r\n headers: { 'Content-Type': 'application/x-www-form-urlencoded' },\r\n }\r\n );\r\n\r\n return res.data;\r\n }\r\n\r\n async getGraph(credentials: Credentials) {\r\n if ('token' in credentials) {\r\n return {\r\n token_type: 'Bearer',\r\n expires_in: -1,\r\n access_token: await credentials.token(\r\n 'https://graph.microsoft.com/.default',\r\n credentials.tenantId\r\n ),\r\n };\r\n }\r\n\r\n const tenantId = credentials.tenantId || 'botframework.com';\r\n const res = await this.http.post<GetBotTokenResponse>(\r\n `https://login.microsoftonline.com/${tenantId}/oauth2/v2.0/token`,\r\n qs.stringify({\r\n grant_type: 'client_credentials',\r\n client_id: credentials.clientId,\r\n client_secret: credentials.clientSecret,\r\n scope: 'https://graph.microsoft.com/.default',\r\n }),\r\n {\r\n headers: { 'Content-Type': 'application/x-www-form-urlencoded' },\r\n }\r\n );\r\n\r\n return res.data;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"sources":["../../../src/clients/bot/token.ts"],"names":[],"mappings":";;;AAaO,MAAM,cAAe,CAAA;AAAA,EAC1B,IAAI,IAAO,GAAA;AACT,IAAA,OAAO,IAAK,CAAA,KAAA;AAAA;AACd,EACA,IAAI,KAAK,CAAG,EAAA;AACV,IAAA,IAAA,CAAK,KAAQ,GAAA,CAAA;AAAA;AACf,EACU,KAAA;AAAA,EAEV,YAAY,OAAkC,EAAA;AAC5C,IAAA,IAAI,CAAC,OAAS,EAAA;AACZ,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAI,MAAO,EAAA;AAAA,KAC1B,MAAA,IAAW,aAAa,OAAS,EAAA;AAC/B,MAAA,IAAA,CAAK,KAAQ,GAAA,OAAA;AAAA,KACR,MAAA;AACL,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAI,MAAA,CAAO,OAAO,CAAA;AAAA;AACjC;AACF,EAEA,MAAM,IAAI,WAA0B,EAAA;AAClC,IAAA,IAAI,WAAW,WAAa,EAAA;AAC1B,MAAO,OAAA;AAAA,QACL,UAAY,EAAA,QAAA;AAAA,QACZ,UAAY,EAAA,EAAA;AAAA,QACZ,YAAA,EAAc,MAAM,WAAY,CAAA,KAAA;AAAA,UAC9B,uCAAA;AAAA,UACA,WAAY,CAAA;AAAA;AACd,OACF;AAAA;AAGF,IAAM,MAAA,QAAA,GAAW,YAAY,QAAY,IAAA,kBAAA;AACzC,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,IAAA;AAAA,MAC1B,qCAAqC,QAAQ,CAAA,kBAAA,CAAA;AAAA,MAC7C,GAAG,SAAU,CAAA;AAAA,QACX,UAAY,EAAA,oBAAA;AAAA,QACZ,WAAW,WAAY,CAAA,QAAA;AAAA,QACvB,eAAe,WAAY,CAAA,YAAA;AAAA,QAC3B,KAAO,EAAA;AAAA,OACR,CAAA;AAAA,MACD;AAAA,QACE,OAAA,EAAS,EAAE,cAAA,EAAgB,mCAAoC;AAAA;AACjE,KACF;AAEA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,SAAS,WAA0B,EAAA;AACvC,IAAA,IAAI,WAAW,WAAa,EAAA;AAC1B,MAAO,OAAA;AAAA,QACL,UAAY,EAAA,QAAA;AAAA,QACZ,UAAY,EAAA,EAAA;AAAA,QACZ,YAAA,EAAc,MAAM,WAAY,CAAA,KAAA;AAAA,UAC9B,sCAAA;AAAA,UACA,WAAY,CAAA;AAAA;AACd,OACF;AAAA;AAGF,IAAM,MAAA,QAAA,GAAW,YAAY,QAAY,IAAA,kBAAA;AACzC,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,IAAA;AAAA,MAC1B,qCAAqC,QAAQ,CAAA,kBAAA,CAAA;AAAA,MAC7C,GAAG,SAAU,CAAA;AAAA,QACX,UAAY,EAAA,oBAAA;AAAA,QACZ,WAAW,WAAY,CAAA,QAAA;AAAA,QACvB,eAAe,WAAY,CAAA,YAAA;AAAA,QAC3B,KAAO,EAAA;AAAA,OACR,CAAA;AAAA,MACD;AAAA,QACE,OAAA,EAAS,EAAE,cAAA,EAAgB,mCAAoC;AAAA;AACjE,KACF;AAEA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AAEf","file":"token.mjs","sourcesContent":["import qs from 'qs';\n\nimport { Client, ClientOptions } from '@microsoft/teams.common/http';\n\nimport { Credentials } from '../../auth';\n\nexport type GetBotTokenResponse = {\n readonly token_type: 'Bearer';\n readonly expires_in: number;\n readonly ext_expires_in?: number;\n readonly access_token: string;\n};\n\nexport class BotTokenClient {\n get http() {\n return this._http;\n }\n set http(v) {\n this._http = v;\n }\n protected _http: Client;\n\n constructor(options?: Client | ClientOptions) {\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\n async get(credentials: Credentials) {\n if ('token' in credentials) {\n return {\n token_type: 'Bearer',\n expires_in: -1,\n access_token: await credentials.token(\n 'https://api.botframework.com/.default',\n credentials.tenantId\n ),\n };\n }\n\n const tenantId = credentials.tenantId || 'botframework.com';\n const res = await this.http.post<GetBotTokenResponse>(\n `https://login.microsoftonline.com/${tenantId}/oauth2/v2.0/token`,\n qs.stringify({\n grant_type: 'client_credentials',\n client_id: credentials.clientId,\n client_secret: credentials.clientSecret,\n scope: 'https://api.botframework.com/.default',\n }),\n {\n headers: { 'Content-Type': 'application/x-www-form-urlencoded' },\n }\n );\n\n return res.data;\n }\n\n async getGraph(credentials: Credentials) {\n if ('token' in credentials) {\n return {\n token_type: 'Bearer',\n expires_in: -1,\n access_token: await credentials.token(\n 'https://graph.microsoft.com/.default',\n credentials.tenantId\n ),\n };\n }\n\n const tenantId = credentials.tenantId || 'botframework.com';\n const res = await this.http.post<GetBotTokenResponse>(\n `https://login.microsoftonline.com/${tenantId}/oauth2/v2.0/token`,\n qs.stringify({\n grant_type: 'client_credentials',\n client_id: credentials.clientId,\n client_secret: credentials.clientSecret,\n scope: 'https://graph.microsoft.com/.default',\n }),\n {\n headers: { 'Content-Type': 'application/x-www-form-urlencoded' },\n }\n );\n\n return res.data;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/clients/conversation/activity.ts"],"names":["Client"],"mappings":";;;;AAOO,MAAM,0BAA2B,CAAA;AAAA,EAC7B,UAAA;AAAA,EAET,IAAI,IAAO,GAAA;AACT,IAAA,OAAO,IAAK,CAAA,KAAA;AAAA;AACd,EACA,IAAI,KAAK,CAAG,EAAA;AACV,IAAA,IAAA,CAAK,KAAQ,GAAA,CAAA;AAAA;AACf,EACU,KAAA;AAAA,EAEV,WAAA,CAAY,YAAoB,OAAkC,EAAA;AAChE,IAAA,IAAA,CAAK,UAAa,GAAA,UAAA;AAElB,IAAA,IAAI,CAAC,OAAS,EAAA;AACZ,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAIA,WAAO,EAAA;AAAA,KAC1B,MAAA,IAAW,aAAa,OAAS,EAAA;AAC/B,MAAA,IAAA,CAAK,KAAQ,GAAA,OAAA;AAAA,KACR,MAAA;AACL,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAIA,WAAA,CAAO,OAAO,CAAA;AAAA;AACjC;AACF,EAEA,MAAM,MAAO,CAAA,cAAA,EAAwB,MAAwB,EAAA;AAC3D,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,IAAA;AAAA,MAC1B,CAAG,EAAA,IAAA,CAAK,UAAU,CAAA,kBAAA,EAAqB,cAAc,CAAA,WAAA,CAAA;AAAA,MACrD;AAAA,KACF;AACA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,MAAA,CAAO,cAAwB,EAAA,EAAA,EAAY,MAAwB,EAAA;AACvE,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,GAAA;AAAA,MAC1B,GAAG,IAAK,CAAA,UAAU,CAAqB,kBAAA,EAAA,cAAc,eAAe,EAAE,CAAA,CAAA;AAAA,MACtE;AAAA,KACF;AACA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,KAAA,CAAM,cAAwB,EAAA,EAAA,EAAY,MAAwB,EAAA;AACtE,IAAA,MAAA,CAAO,SAAY,GAAA,EAAA;AACnB,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,IAAA;AAAA,MAC1B,GAAG,IAAK,CAAA,UAAU,CAAqB,kBAAA,EAAA,cAAc,eAAe,EAAE,CAAA,CAAA;AAAA,MACtE;AAAA,KACF;AACA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,MAAO,CAAA,cAAA,EAAwB,EAAY,EAAA;AAC/C,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,MAAA;AAAA,MAC1B,GAAG,IAAK,CAAA,UAAU,CAAqB,kBAAA,EAAA,cAAc,eAAe,EAAE,CAAA;AAAA,KACxE;AACA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,UAAW,CAAA,cAAA,EAAwB,EAAY,EAAA;AACnD,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,GAAA;AAAA,MAC1B,GAAG,IAAK,CAAA,UAAU,CAAqB,kBAAA,EAAA,cAAc,eAAe,EAAE,CAAA,QAAA;AAAA,KACxE;AACA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AAEf","file":"activity.js","sourcesContent":["import { Client, ClientOptions } from '@microsoft/teams.common/http';\r\n\r\nimport { Activity } from '../../activities';\r\nimport { Account, Resource } from '../../models';\r\n\r\nexport type ActivityParams = Pick<Activity, 'type'> & Partial<Activity>;\r\n\r\nexport class ConversationActivityClient {\r\n readonly serviceUrl: string;\r\n\r\n get http() {\r\n return this._http;\r\n }\r\n set http(v) {\r\n this._http = v;\r\n }\r\n protected _http: Client;\r\n\r\n constructor(serviceUrl: string, options?: Client | ClientOptions) {\r\n this.serviceUrl = serviceUrl;\r\n\r\n if (!options) {\r\n this._http = new Client();\r\n } else if ('request' in options) {\r\n this._http = options;\r\n } else {\r\n this._http = new Client(options);\r\n }\r\n }\r\n\r\n async create(conversationId: string, params: ActivityParams) {\r\n const res = await this.http.post<Resource>(\r\n `${this.serviceUrl}/v3/conversations/${conversationId}/activities`,\r\n params\r\n );\r\n return res.data;\r\n }\r\n\r\n async update(conversationId: string, id: string, params: ActivityParams) {\r\n const res = await this.http.put<Resource>(\r\n `${this.serviceUrl}/v3/conversations/${conversationId}/activities/${id}`,\r\n params\r\n );\r\n return res.data;\r\n }\r\n\r\n async reply(conversationId: string, id: string, params: ActivityParams) {\r\n params.replyToId = id;\r\n const res = await this.http.post<Resource>(\r\n `${this.serviceUrl}/v3/conversations/${conversationId}/activities/${id}`,\r\n params\r\n );\r\n return res.data;\r\n }\r\n\r\n async delete(conversationId: string, id: string) {\r\n const res = await this.http.delete<void>(\r\n `${this.serviceUrl}/v3/conversations/${conversationId}/activities/${id}`\r\n );\r\n return res.data;\r\n }\r\n\r\n async getMembers(conversationId: string, id: string) {\r\n const res = await this.http.get<Account[]>(\r\n `${this.serviceUrl}/v3/conversations/${conversationId}/activities/${id}/members`\r\n );\r\n return res.data;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"sources":["../../../src/clients/conversation/activity.ts"],"names":["Client"],"mappings":";;;;AAOO,MAAM,0BAA2B,CAAA;AAAA,EAC7B,UAAA;AAAA,EAET,IAAI,IAAO,GAAA;AACT,IAAA,OAAO,IAAK,CAAA,KAAA;AAAA;AACd,EACA,IAAI,KAAK,CAAG,EAAA;AACV,IAAA,IAAA,CAAK,KAAQ,GAAA,CAAA;AAAA;AACf,EACU,KAAA;AAAA,EAEV,WAAA,CAAY,YAAoB,OAAkC,EAAA;AAChE,IAAA,IAAA,CAAK,UAAa,GAAA,UAAA;AAElB,IAAA,IAAI,CAAC,OAAS,EAAA;AACZ,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAIA,WAAO,EAAA;AAAA,KAC1B,MAAA,IAAW,aAAa,OAAS,EAAA;AAC/B,MAAA,IAAA,CAAK,KAAQ,GAAA,OAAA;AAAA,KACR,MAAA;AACL,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAIA,WAAA,CAAO,OAAO,CAAA;AAAA;AACjC;AACF,EAEA,MAAM,MAAO,CAAA,cAAA,EAAwB,MAAwB,EAAA;AAC3D,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,IAAA;AAAA,MAC1B,CAAG,EAAA,IAAA,CAAK,UAAU,CAAA,kBAAA,EAAqB,cAAc,CAAA,WAAA,CAAA;AAAA,MACrD;AAAA,KACF;AACA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,MAAA,CAAO,cAAwB,EAAA,EAAA,EAAY,MAAwB,EAAA;AACvE,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,GAAA;AAAA,MAC1B,GAAG,IAAK,CAAA,UAAU,CAAqB,kBAAA,EAAA,cAAc,eAAe,EAAE,CAAA,CAAA;AAAA,MACtE;AAAA,KACF;AACA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,KAAA,CAAM,cAAwB,EAAA,EAAA,EAAY,MAAwB,EAAA;AACtE,IAAA,MAAA,CAAO,SAAY,GAAA,EAAA;AACnB,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,IAAA;AAAA,MAC1B,GAAG,IAAK,CAAA,UAAU,CAAqB,kBAAA,EAAA,cAAc,eAAe,EAAE,CAAA,CAAA;AAAA,MACtE;AAAA,KACF;AACA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,MAAO,CAAA,cAAA,EAAwB,EAAY,EAAA;AAC/C,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,MAAA;AAAA,MAC1B,GAAG,IAAK,CAAA,UAAU,CAAqB,kBAAA,EAAA,cAAc,eAAe,EAAE,CAAA;AAAA,KACxE;AACA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,UAAW,CAAA,cAAA,EAAwB,EAAY,EAAA;AACnD,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,GAAA;AAAA,MAC1B,GAAG,IAAK,CAAA,UAAU,CAAqB,kBAAA,EAAA,cAAc,eAAe,EAAE,CAAA,QAAA;AAAA,KACxE;AACA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AAEf","file":"activity.js","sourcesContent":["import { Client, ClientOptions } from '@microsoft/teams.common/http';\n\nimport { Activity } from '../../activities';\nimport { Account, Resource } from '../../models';\n\nexport type ActivityParams = Pick<Activity, 'type'> & Partial<Activity>;\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: Client;\n\n constructor(serviceUrl: string, options?: Client | ClientOptions) {\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\n async create(conversationId: string, params: ActivityParams) {\n const res = await this.http.post<Resource>(\n `${this.serviceUrl}/v3/conversations/${conversationId}/activities`,\n params\n );\n return res.data;\n }\n\n async update(conversationId: string, id: string, params: ActivityParams) {\n const res = await this.http.put<Resource>(\n `${this.serviceUrl}/v3/conversations/${conversationId}/activities/${id}`,\n params\n );\n return res.data;\n }\n\n async reply(conversationId: string, id: string, params: ActivityParams) {\n params.replyToId = id;\n const res = await this.http.post<Resource>(\n `${this.serviceUrl}/v3/conversations/${conversationId}/activities/${id}`,\n params\n );\n return res.data;\n }\n\n async delete(conversationId: string, id: string) {\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) {\n const res = await this.http.get<Account[]>(\n `${this.serviceUrl}/v3/conversations/${conversationId}/activities/${id}/members`\n );\n return res.data;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/clients/conversation/activity.ts"],"names":[],"mappings":";;AAOO,MAAM,0BAA2B,CAAA;AAAA,EAC7B,UAAA;AAAA,EAET,IAAI,IAAO,GAAA;AACT,IAAA,OAAO,IAAK,CAAA,KAAA;AAAA;AACd,EACA,IAAI,KAAK,CAAG,EAAA;AACV,IAAA,IAAA,CAAK,KAAQ,GAAA,CAAA;AAAA;AACf,EACU,KAAA;AAAA,EAEV,WAAA,CAAY,YAAoB,OAAkC,EAAA;AAChE,IAAA,IAAA,CAAK,UAAa,GAAA,UAAA;AAElB,IAAA,IAAI,CAAC,OAAS,EAAA;AACZ,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAI,MAAO,EAAA;AAAA,KAC1B,MAAA,IAAW,aAAa,OAAS,EAAA;AAC/B,MAAA,IAAA,CAAK,KAAQ,GAAA,OAAA;AAAA,KACR,MAAA;AACL,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAI,MAAA,CAAO,OAAO,CAAA;AAAA;AACjC;AACF,EAEA,MAAM,MAAO,CAAA,cAAA,EAAwB,MAAwB,EAAA;AAC3D,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,IAAA;AAAA,MAC1B,CAAG,EAAA,IAAA,CAAK,UAAU,CAAA,kBAAA,EAAqB,cAAc,CAAA,WAAA,CAAA;AAAA,MACrD;AAAA,KACF;AACA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,MAAA,CAAO,cAAwB,EAAA,EAAA,EAAY,MAAwB,EAAA;AACvE,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,GAAA;AAAA,MAC1B,GAAG,IAAK,CAAA,UAAU,CAAqB,kBAAA,EAAA,cAAc,eAAe,EAAE,CAAA,CAAA;AAAA,MACtE;AAAA,KACF;AACA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,KAAA,CAAM,cAAwB,EAAA,EAAA,EAAY,MAAwB,EAAA;AACtE,IAAA,MAAA,CAAO,SAAY,GAAA,EAAA;AACnB,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,IAAA;AAAA,MAC1B,GAAG,IAAK,CAAA,UAAU,CAAqB,kBAAA,EAAA,cAAc,eAAe,EAAE,CAAA,CAAA;AAAA,MACtE;AAAA,KACF;AACA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,MAAO,CAAA,cAAA,EAAwB,EAAY,EAAA;AAC/C,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,MAAA;AAAA,MAC1B,GAAG,IAAK,CAAA,UAAU,CAAqB,kBAAA,EAAA,cAAc,eAAe,EAAE,CAAA;AAAA,KACxE;AACA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,UAAW,CAAA,cAAA,EAAwB,EAAY,EAAA;AACnD,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,GAAA;AAAA,MAC1B,GAAG,IAAK,CAAA,UAAU,CAAqB,kBAAA,EAAA,cAAc,eAAe,EAAE,CAAA,QAAA;AAAA,KACxE;AACA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AAEf","file":"activity.mjs","sourcesContent":["import { Client, ClientOptions } from '@microsoft/teams.common/http';\r\n\r\nimport { Activity } from '../../activities';\r\nimport { Account, Resource } from '../../models';\r\n\r\nexport type ActivityParams = Pick<Activity, 'type'> & Partial<Activity>;\r\n\r\nexport class ConversationActivityClient {\r\n readonly serviceUrl: string;\r\n\r\n get http() {\r\n return this._http;\r\n }\r\n set http(v) {\r\n this._http = v;\r\n }\r\n protected _http: Client;\r\n\r\n constructor(serviceUrl: string, options?: Client | ClientOptions) {\r\n this.serviceUrl = serviceUrl;\r\n\r\n if (!options) {\r\n this._http = new Client();\r\n } else if ('request' in options) {\r\n this._http = options;\r\n } else {\r\n this._http = new Client(options);\r\n }\r\n }\r\n\r\n async create(conversationId: string, params: ActivityParams) {\r\n const res = await this.http.post<Resource>(\r\n `${this.serviceUrl}/v3/conversations/${conversationId}/activities`,\r\n params\r\n );\r\n return res.data;\r\n }\r\n\r\n async update(conversationId: string, id: string, params: ActivityParams) {\r\n const res = await this.http.put<Resource>(\r\n `${this.serviceUrl}/v3/conversations/${conversationId}/activities/${id}`,\r\n params\r\n );\r\n return res.data;\r\n }\r\n\r\n async reply(conversationId: string, id: string, params: ActivityParams) {\r\n params.replyToId = id;\r\n const res = await this.http.post<Resource>(\r\n `${this.serviceUrl}/v3/conversations/${conversationId}/activities/${id}`,\r\n params\r\n );\r\n return res.data;\r\n }\r\n\r\n async delete(conversationId: string, id: string) {\r\n const res = await this.http.delete<void>(\r\n `${this.serviceUrl}/v3/conversations/${conversationId}/activities/${id}`\r\n );\r\n return res.data;\r\n }\r\n\r\n async getMembers(conversationId: string, id: string) {\r\n const res = await this.http.get<Account[]>(\r\n `${this.serviceUrl}/v3/conversations/${conversationId}/activities/${id}/members`\r\n );\r\n return res.data;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"sources":["../../../src/clients/conversation/activity.ts"],"names":[],"mappings":";;AAOO,MAAM,0BAA2B,CAAA;AAAA,EAC7B,UAAA;AAAA,EAET,IAAI,IAAO,GAAA;AACT,IAAA,OAAO,IAAK,CAAA,KAAA;AAAA;AACd,EACA,IAAI,KAAK,CAAG,EAAA;AACV,IAAA,IAAA,CAAK,KAAQ,GAAA,CAAA;AAAA;AACf,EACU,KAAA;AAAA,EAEV,WAAA,CAAY,YAAoB,OAAkC,EAAA;AAChE,IAAA,IAAA,CAAK,UAAa,GAAA,UAAA;AAElB,IAAA,IAAI,CAAC,OAAS,EAAA;AACZ,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAI,MAAO,EAAA;AAAA,KAC1B,MAAA,IAAW,aAAa,OAAS,EAAA;AAC/B,MAAA,IAAA,CAAK,KAAQ,GAAA,OAAA;AAAA,KACR,MAAA;AACL,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAI,MAAA,CAAO,OAAO,CAAA;AAAA;AACjC;AACF,EAEA,MAAM,MAAO,CAAA,cAAA,EAAwB,MAAwB,EAAA;AAC3D,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,IAAA;AAAA,MAC1B,CAAG,EAAA,IAAA,CAAK,UAAU,CAAA,kBAAA,EAAqB,cAAc,CAAA,WAAA,CAAA;AAAA,MACrD;AAAA,KACF;AACA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,MAAA,CAAO,cAAwB,EAAA,EAAA,EAAY,MAAwB,EAAA;AACvE,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,GAAA;AAAA,MAC1B,GAAG,IAAK,CAAA,UAAU,CAAqB,kBAAA,EAAA,cAAc,eAAe,EAAE,CAAA,CAAA;AAAA,MACtE;AAAA,KACF;AACA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,KAAA,CAAM,cAAwB,EAAA,EAAA,EAAY,MAAwB,EAAA;AACtE,IAAA,MAAA,CAAO,SAAY,GAAA,EAAA;AACnB,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,IAAA;AAAA,MAC1B,GAAG,IAAK,CAAA,UAAU,CAAqB,kBAAA,EAAA,cAAc,eAAe,EAAE,CAAA,CAAA;AAAA,MACtE;AAAA,KACF;AACA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,MAAO,CAAA,cAAA,EAAwB,EAAY,EAAA;AAC/C,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,MAAA;AAAA,MAC1B,GAAG,IAAK,CAAA,UAAU,CAAqB,kBAAA,EAAA,cAAc,eAAe,EAAE,CAAA;AAAA,KACxE;AACA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,UAAW,CAAA,cAAA,EAAwB,EAAY,EAAA;AACnD,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,GAAA;AAAA,MAC1B,GAAG,IAAK,CAAA,UAAU,CAAqB,kBAAA,EAAA,cAAc,eAAe,EAAE,CAAA,QAAA;AAAA,KACxE;AACA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AAEf","file":"activity.mjs","sourcesContent":["import { Client, ClientOptions } from '@microsoft/teams.common/http';\n\nimport { Activity } from '../../activities';\nimport { Account, Resource } from '../../models';\n\nexport type ActivityParams = Pick<Activity, 'type'> & Partial<Activity>;\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: Client;\n\n constructor(serviceUrl: string, options?: Client | ClientOptions) {\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\n async create(conversationId: string, params: ActivityParams) {\n const res = await this.http.post<Resource>(\n `${this.serviceUrl}/v3/conversations/${conversationId}/activities`,\n params\n );\n return res.data;\n }\n\n async update(conversationId: string, id: string, params: ActivityParams) {\n const res = await this.http.put<Resource>(\n `${this.serviceUrl}/v3/conversations/${conversationId}/activities/${id}`,\n params\n );\n return res.data;\n }\n\n async reply(conversationId: string, id: string, params: ActivityParams) {\n params.replyToId = id;\n const res = await this.http.post<Resource>(\n `${this.serviceUrl}/v3/conversations/${conversationId}/activities/${id}`,\n params\n );\n return res.data;\n }\n\n async delete(conversationId: string, id: string) {\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) {\n const res = await this.http.get<Account[]>(\n `${this.serviceUrl}/v3/conversations/${conversationId}/activities/${id}/members`\n );\n return res.data;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/clients/conversation/index.ts"],"names":["Client","ConversationActivityClient","ConversationMemberClient","qs"],"mappings":";;;;;;;;;;;AAmCO,MAAM,kBAAmB,CAAA;AAAA,EACrB,UAAA;AAAA,EAET,IAAI,IAAO,GAAA;AACT,IAAA,OAAO,IAAK,CAAA,KAAA;AAAA;AACd,EACA,IAAI,KAAK,CAAG,EAAA;AACV,IAAA,IAAA,CAAK,KAAQ,GAAA,CAAA;AAAA;AACf,EACU,KAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA;AAAA,EAEV,WAAA,CAAY,YAAoB,OAAkC,EAAA;AAChE,IAAA,IAAA,CAAK,UAAa,GAAA,UAAA;AAElB,IAAA,IAAI,CAAC,OAAS,EAAA;AACZ,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAIA,WAAO,EAAA;AAAA,KAC1B,MAAA,IAAW,aAAa,OAAS,EAAA;AAC/B,MAAA,IAAA,CAAK,KAAQ,GAAA,OAAA;AAAA,KACR,MAAA;AACL,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAIA,WAAA,CAAO,OAAO,CAAA;AAAA;AAGjC,IAAA,IAAA,CAAK,WAAc,GAAA,IAAIC,mCAA2B,CAAA,UAAA,EAAY,KAAK,IAAI,CAAA;AACvE,IAAA,IAAA,CAAK,QAAW,GAAA,IAAIC,+BAAyB,CAAA,UAAA,EAAY,KAAK,IAAI,CAAA;AAAA;AACpE,EAEA,WAAW,cAAwB,EAAA;AACjC,IAAO,OAAA;AAAA,MACL,QAAQ,CAAC,MAAA,KAA2B,KAAK,WAAY,CAAA,MAAA,CAAO,gBAAgB,MAAM,CAAA;AAAA,MAClF,MAAA,EAAQ,CAAC,EAAY,EAAA,MAAA,KACnB,KAAK,WAAY,CAAA,MAAA,CAAO,cAAgB,EAAA,EAAA,EAAI,MAAM,CAAA;AAAA,MACpD,KAAA,EAAO,CAAC,EAAY,EAAA,MAAA,KAClB,KAAK,WAAY,CAAA,KAAA,CAAM,cAAgB,EAAA,EAAA,EAAI,MAAM,CAAA;AAAA,MACnD,QAAQ,CAAC,EAAA,KAAe,KAAK,WAAY,CAAA,MAAA,CAAO,gBAAgB,EAAE,CAAA;AAAA,MAClE,SAAS,CAAC,UAAA,KAAuB,KAAK,WAAY,CAAA,UAAA,CAAW,gBAAgB,UAAU;AAAA,KACzF;AAAA;AACF,EAEA,QAAQ,cAAwB,EAAA;AAC9B,IAAO,OAAA;AAAA,MACL,GAAK,EAAA,MAAM,IAAK,CAAA,QAAA,CAAS,IAAI,cAAc,CAAA;AAAA,MAC3C,SAAS,CAAC,EAAA,KAAe,KAAK,QAAS,CAAA,OAAA,CAAQ,gBAAgB,EAAE,CAAA;AAAA,MACjE,QAAQ,CAAC,EAAA,KAAe,KAAK,QAAS,CAAA,MAAA,CAAO,gBAAgB,EAAE;AAAA,KACjE;AAAA;AACF,EAEA,MAAM,IAAI,MAAgC,EAAA;AACxC,IAAA,MAAM,IAAIC,mBAAG,CAAA,SAAA,CAAU,QAAQ,EAAE,cAAA,EAAgB,MAAM,CAAA;AACvD,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,GAAA;AAAA,MAC1B,CAAG,EAAA,IAAA,CAAK,UAAU,CAAA,iBAAA,EAAoB,CAAC,CAAA;AAAA,KACzC;AACA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,OAAO,MAAkC,EAAA;AAC7C,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,IAAA;AAAA,MAC1B,CAAA,EAAG,KAAK,UAAU,CAAA,iBAAA,CAAA;AAAA,MAClB;AAAA,KACF;AACA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AAEf","file":"index.js","sourcesContent":["import qs from 'qs';\r\n\r\nimport { Client, ClientOptions } from '@microsoft/teams.common/http';\r\n\r\nimport { Account, Conversation, ConversationResource } from '../../models';\r\n\r\nimport { ActivityParams, ConversationActivityClient } from './activity';\r\nimport { ConversationMemberClient } from './member';\r\n\r\nexport type GetConversationsParams = {\r\n readonly continuationToken?: string;\r\n};\r\n\r\nexport type CreateConversationParams = {\r\n readonly isGroup?: boolean;\r\n readonly bot?: Partial<Account>;\r\n readonly members?: Account[];\r\n readonly topicName?: string;\r\n readonly tenantId?: string;\r\n readonly activity?: ActivityParams;\r\n readonly channelData?: Record<string, any>;\r\n};\r\n\r\nexport type GetConversationsResponse = {\r\n /**\r\n * Paging token\r\n */\r\n continuationToken: string;\r\n\r\n /**\r\n * List of conversations\r\n */\r\n conversations: Conversation[];\r\n};\r\n\r\nexport class ConversationClient {\r\n readonly serviceUrl: string;\r\n\r\n get http() {\r\n return this._http;\r\n }\r\n set http(v) {\r\n this._http = v;\r\n }\r\n protected _http: Client;\r\n protected _activities: ConversationActivityClient;\r\n protected _members: ConversationMemberClient;\r\n\r\n constructor(serviceUrl: string, options?: Client | ClientOptions) {\r\n this.serviceUrl = serviceUrl;\r\n\r\n if (!options) {\r\n this._http = new Client();\r\n } else if ('request' in options) {\r\n this._http = options;\r\n } else {\r\n this._http = new Client(options);\r\n }\r\n\r\n this._activities = new ConversationActivityClient(serviceUrl, this.http);\r\n this._members = new ConversationMemberClient(serviceUrl, this.http);\r\n }\r\n\r\n activities(conversationId: string) {\r\n return {\r\n create: (params: ActivityParams) => this._activities.create(conversationId, params),\r\n update: (id: string, params: ActivityParams) =>\r\n this._activities.update(conversationId, id, params),\r\n reply: (id: string, params: ActivityParams) =>\r\n this._activities.reply(conversationId, id, params),\r\n delete: (id: string) => this._activities.delete(conversationId, id),\r\n members: (activityId: string) => this._activities.getMembers(conversationId, activityId),\r\n };\r\n }\r\n\r\n members(conversationId: string) {\r\n return {\r\n get: () => this._members.get(conversationId),\r\n getById: (id: string) => this._members.getById(conversationId, id),\r\n delete: (id: string) => this._members.delete(conversationId, id),\r\n };\r\n }\r\n\r\n async get(params: GetConversationsParams) {\r\n const q = qs.stringify(params, { addQueryPrefix: true });\r\n const res = await this.http.get<GetConversationsResponse>(\r\n `${this.serviceUrl}/v3/conversations${q}`\r\n );\r\n return res.data;\r\n }\r\n\r\n async create(params: CreateConversationParams) {\r\n const res = await this.http.post<ConversationResource>(\r\n `${this.serviceUrl}/v3/conversations`,\r\n params\r\n );\r\n return res.data;\r\n }\r\n}\r\n\r\nexport * from './activity';\r\nexport * from './member';\r\n"]}
1
+ {"version":3,"sources":["../../../src/clients/conversation/index.ts"],"names":["Client","ConversationActivityClient","ConversationMemberClient","qs"],"mappings":";;;;;;;;;;;AAmCO,MAAM,kBAAmB,CAAA;AAAA,EACrB,UAAA;AAAA,EAET,IAAI,IAAO,GAAA;AACT,IAAA,OAAO,IAAK,CAAA,KAAA;AAAA;AACd,EACA,IAAI,KAAK,CAAG,EAAA;AACV,IAAA,IAAA,CAAK,KAAQ,GAAA,CAAA;AAAA;AACf,EACU,KAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA;AAAA,EAEV,WAAA,CAAY,YAAoB,OAAkC,EAAA;AAChE,IAAA,IAAA,CAAK,UAAa,GAAA,UAAA;AAElB,IAAA,IAAI,CAAC,OAAS,EAAA;AACZ,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAIA,WAAO,EAAA;AAAA,KAC1B,MAAA,IAAW,aAAa,OAAS,EAAA;AAC/B,MAAA,IAAA,CAAK,KAAQ,GAAA,OAAA;AAAA,KACR,MAAA;AACL,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAIA,WAAA,CAAO,OAAO,CAAA;AAAA;AAGjC,IAAA,IAAA,CAAK,WAAc,GAAA,IAAIC,mCAA2B,CAAA,UAAA,EAAY,KAAK,IAAI,CAAA;AACvE,IAAA,IAAA,CAAK,QAAW,GAAA,IAAIC,+BAAyB,CAAA,UAAA,EAAY,KAAK,IAAI,CAAA;AAAA;AACpE,EAEA,WAAW,cAAwB,EAAA;AACjC,IAAO,OAAA;AAAA,MACL,QAAQ,CAAC,MAAA,KAA2B,KAAK,WAAY,CAAA,MAAA,CAAO,gBAAgB,MAAM,CAAA;AAAA,MAClF,MAAA,EAAQ,CAAC,EAAY,EAAA,MAAA,KACnB,KAAK,WAAY,CAAA,MAAA,CAAO,cAAgB,EAAA,EAAA,EAAI,MAAM,CAAA;AAAA,MACpD,KAAA,EAAO,CAAC,EAAY,EAAA,MAAA,KAClB,KAAK,WAAY,CAAA,KAAA,CAAM,cAAgB,EAAA,EAAA,EAAI,MAAM,CAAA;AAAA,MACnD,QAAQ,CAAC,EAAA,KAAe,KAAK,WAAY,CAAA,MAAA,CAAO,gBAAgB,EAAE,CAAA;AAAA,MAClE,SAAS,CAAC,UAAA,KAAuB,KAAK,WAAY,CAAA,UAAA,CAAW,gBAAgB,UAAU;AAAA,KACzF;AAAA;AACF,EAEA,QAAQ,cAAwB,EAAA;AAC9B,IAAO,OAAA;AAAA,MACL,GAAK,EAAA,MAAM,IAAK,CAAA,QAAA,CAAS,IAAI,cAAc,CAAA;AAAA,MAC3C,SAAS,CAAC,EAAA,KAAe,KAAK,QAAS,CAAA,OAAA,CAAQ,gBAAgB,EAAE,CAAA;AAAA,MACjE,QAAQ,CAAC,EAAA,KAAe,KAAK,QAAS,CAAA,MAAA,CAAO,gBAAgB,EAAE;AAAA,KACjE;AAAA;AACF,EAEA,MAAM,IAAI,MAAgC,EAAA;AACxC,IAAA,MAAM,IAAIC,mBAAG,CAAA,SAAA,CAAU,QAAQ,EAAE,cAAA,EAAgB,MAAM,CAAA;AACvD,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,GAAA;AAAA,MAC1B,CAAG,EAAA,IAAA,CAAK,UAAU,CAAA,iBAAA,EAAoB,CAAC,CAAA;AAAA,KACzC;AACA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,OAAO,MAAkC,EAAA;AAC7C,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,IAAA;AAAA,MAC1B,CAAA,EAAG,KAAK,UAAU,CAAA,iBAAA,CAAA;AAAA,MAClB;AAAA,KACF;AACA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AAEf","file":"index.js","sourcesContent":["import qs from 'qs';\n\nimport { Client, ClientOptions } from '@microsoft/teams.common/http';\n\nimport { Account, Conversation, ConversationResource } from '../../models';\n\nimport { ActivityParams, ConversationActivityClient } from './activity';\nimport { ConversationMemberClient } from './member';\n\nexport type GetConversationsParams = {\n readonly continuationToken?: string;\n};\n\nexport type CreateConversationParams = {\n readonly isGroup?: boolean;\n readonly bot?: Partial<Account>;\n readonly members?: Account[];\n readonly topicName?: string;\n readonly tenantId?: string;\n readonly activity?: ActivityParams;\n readonly channelData?: Record<string, any>;\n};\n\nexport type GetConversationsResponse = {\n /**\n * Paging token\n */\n continuationToken: string;\n\n /**\n * List of conversations\n */\n conversations: Conversation[];\n};\n\nexport class ConversationClient {\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 _activities: ConversationActivityClient;\n protected _members: ConversationMemberClient;\n\n constructor(serviceUrl: string, options?: Client | ClientOptions) {\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._activities = new ConversationActivityClient(serviceUrl, this.http);\n this._members = new ConversationMemberClient(serviceUrl, this.http);\n }\n\n activities(conversationId: string) {\n return {\n create: (params: ActivityParams) => this._activities.create(conversationId, params),\n update: (id: string, params: ActivityParams) =>\n this._activities.update(conversationId, id, params),\n reply: (id: string, params: ActivityParams) =>\n this._activities.reply(conversationId, id, params),\n delete: (id: string) => this._activities.delete(conversationId, id),\n members: (activityId: string) => this._activities.getMembers(conversationId, activityId),\n };\n }\n\n members(conversationId: string) {\n return {\n get: () => this._members.get(conversationId),\n getById: (id: string) => this._members.getById(conversationId, id),\n delete: (id: string) => this._members.delete(conversationId, id),\n };\n }\n\n async get(params: GetConversationsParams) {\n const q = qs.stringify(params, { addQueryPrefix: true });\n const res = await this.http.get<GetConversationsResponse>(\n `${this.serviceUrl}/v3/conversations${q}`\n );\n return res.data;\n }\n\n async create(params: CreateConversationParams) {\n const res = await this.http.post<ConversationResource>(\n `${this.serviceUrl}/v3/conversations`,\n params\n );\n return res.data;\n }\n}\n\nexport * from './activity';\nexport * from './member';\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/clients/conversation/index.ts"],"names":[],"mappings":";;;;;;;AAmCO,MAAM,kBAAmB,CAAA;AAAA,EACrB,UAAA;AAAA,EAET,IAAI,IAAO,GAAA;AACT,IAAA,OAAO,IAAK,CAAA,KAAA;AAAA;AACd,EACA,IAAI,KAAK,CAAG,EAAA;AACV,IAAA,IAAA,CAAK,KAAQ,GAAA,CAAA;AAAA;AACf,EACU,KAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA;AAAA,EAEV,WAAA,CAAY,YAAoB,OAAkC,EAAA;AAChE,IAAA,IAAA,CAAK,UAAa,GAAA,UAAA;AAElB,IAAA,IAAI,CAAC,OAAS,EAAA;AACZ,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAI,MAAO,EAAA;AAAA,KAC1B,MAAA,IAAW,aAAa,OAAS,EAAA;AAC/B,MAAA,IAAA,CAAK,KAAQ,GAAA,OAAA;AAAA,KACR,MAAA;AACL,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAI,MAAA,CAAO,OAAO,CAAA;AAAA;AAGjC,IAAA,IAAA,CAAK,WAAc,GAAA,IAAI,0BAA2B,CAAA,UAAA,EAAY,KAAK,IAAI,CAAA;AACvE,IAAA,IAAA,CAAK,QAAW,GAAA,IAAI,wBAAyB,CAAA,UAAA,EAAY,KAAK,IAAI,CAAA;AAAA;AACpE,EAEA,WAAW,cAAwB,EAAA;AACjC,IAAO,OAAA;AAAA,MACL,QAAQ,CAAC,MAAA,KAA2B,KAAK,WAAY,CAAA,MAAA,CAAO,gBAAgB,MAAM,CAAA;AAAA,MAClF,MAAA,EAAQ,CAAC,EAAY,EAAA,MAAA,KACnB,KAAK,WAAY,CAAA,MAAA,CAAO,cAAgB,EAAA,EAAA,EAAI,MAAM,CAAA;AAAA,MACpD,KAAA,EAAO,CAAC,EAAY,EAAA,MAAA,KAClB,KAAK,WAAY,CAAA,KAAA,CAAM,cAAgB,EAAA,EAAA,EAAI,MAAM,CAAA;AAAA,MACnD,QAAQ,CAAC,EAAA,KAAe,KAAK,WAAY,CAAA,MAAA,CAAO,gBAAgB,EAAE,CAAA;AAAA,MAClE,SAAS,CAAC,UAAA,KAAuB,KAAK,WAAY,CAAA,UAAA,CAAW,gBAAgB,UAAU;AAAA,KACzF;AAAA;AACF,EAEA,QAAQ,cAAwB,EAAA;AAC9B,IAAO,OAAA;AAAA,MACL,GAAK,EAAA,MAAM,IAAK,CAAA,QAAA,CAAS,IAAI,cAAc,CAAA;AAAA,MAC3C,SAAS,CAAC,EAAA,KAAe,KAAK,QAAS,CAAA,OAAA,CAAQ,gBAAgB,EAAE,CAAA;AAAA,MACjE,QAAQ,CAAC,EAAA,KAAe,KAAK,QAAS,CAAA,MAAA,CAAO,gBAAgB,EAAE;AAAA,KACjE;AAAA;AACF,EAEA,MAAM,IAAI,MAAgC,EAAA;AACxC,IAAA,MAAM,IAAI,EAAG,CAAA,SAAA,CAAU,QAAQ,EAAE,cAAA,EAAgB,MAAM,CAAA;AACvD,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,GAAA;AAAA,MAC1B,CAAG,EAAA,IAAA,CAAK,UAAU,CAAA,iBAAA,EAAoB,CAAC,CAAA;AAAA,KACzC;AACA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,OAAO,MAAkC,EAAA;AAC7C,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,IAAA;AAAA,MAC1B,CAAA,EAAG,KAAK,UAAU,CAAA,iBAAA,CAAA;AAAA,MAClB;AAAA,KACF;AACA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AAEf","file":"index.mjs","sourcesContent":["import qs from 'qs';\r\n\r\nimport { Client, ClientOptions } from '@microsoft/teams.common/http';\r\n\r\nimport { Account, Conversation, ConversationResource } from '../../models';\r\n\r\nimport { ActivityParams, ConversationActivityClient } from './activity';\r\nimport { ConversationMemberClient } from './member';\r\n\r\nexport type GetConversationsParams = {\r\n readonly continuationToken?: string;\r\n};\r\n\r\nexport type CreateConversationParams = {\r\n readonly isGroup?: boolean;\r\n readonly bot?: Partial<Account>;\r\n readonly members?: Account[];\r\n readonly topicName?: string;\r\n readonly tenantId?: string;\r\n readonly activity?: ActivityParams;\r\n readonly channelData?: Record<string, any>;\r\n};\r\n\r\nexport type GetConversationsResponse = {\r\n /**\r\n * Paging token\r\n */\r\n continuationToken: string;\r\n\r\n /**\r\n * List of conversations\r\n */\r\n conversations: Conversation[];\r\n};\r\n\r\nexport class ConversationClient {\r\n readonly serviceUrl: string;\r\n\r\n get http() {\r\n return this._http;\r\n }\r\n set http(v) {\r\n this._http = v;\r\n }\r\n protected _http: Client;\r\n protected _activities: ConversationActivityClient;\r\n protected _members: ConversationMemberClient;\r\n\r\n constructor(serviceUrl: string, options?: Client | ClientOptions) {\r\n this.serviceUrl = serviceUrl;\r\n\r\n if (!options) {\r\n this._http = new Client();\r\n } else if ('request' in options) {\r\n this._http = options;\r\n } else {\r\n this._http = new Client(options);\r\n }\r\n\r\n this._activities = new ConversationActivityClient(serviceUrl, this.http);\r\n this._members = new ConversationMemberClient(serviceUrl, this.http);\r\n }\r\n\r\n activities(conversationId: string) {\r\n return {\r\n create: (params: ActivityParams) => this._activities.create(conversationId, params),\r\n update: (id: string, params: ActivityParams) =>\r\n this._activities.update(conversationId, id, params),\r\n reply: (id: string, params: ActivityParams) =>\r\n this._activities.reply(conversationId, id, params),\r\n delete: (id: string) => this._activities.delete(conversationId, id),\r\n members: (activityId: string) => this._activities.getMembers(conversationId, activityId),\r\n };\r\n }\r\n\r\n members(conversationId: string) {\r\n return {\r\n get: () => this._members.get(conversationId),\r\n getById: (id: string) => this._members.getById(conversationId, id),\r\n delete: (id: string) => this._members.delete(conversationId, id),\r\n };\r\n }\r\n\r\n async get(params: GetConversationsParams) {\r\n const q = qs.stringify(params, { addQueryPrefix: true });\r\n const res = await this.http.get<GetConversationsResponse>(\r\n `${this.serviceUrl}/v3/conversations${q}`\r\n );\r\n return res.data;\r\n }\r\n\r\n async create(params: CreateConversationParams) {\r\n const res = await this.http.post<ConversationResource>(\r\n `${this.serviceUrl}/v3/conversations`,\r\n params\r\n );\r\n return res.data;\r\n }\r\n}\r\n\r\nexport * from './activity';\r\nexport * from './member';\r\n"]}
1
+ {"version":3,"sources":["../../../src/clients/conversation/index.ts"],"names":[],"mappings":";;;;;;;AAmCO,MAAM,kBAAmB,CAAA;AAAA,EACrB,UAAA;AAAA,EAET,IAAI,IAAO,GAAA;AACT,IAAA,OAAO,IAAK,CAAA,KAAA;AAAA;AACd,EACA,IAAI,KAAK,CAAG,EAAA;AACV,IAAA,IAAA,CAAK,KAAQ,GAAA,CAAA;AAAA;AACf,EACU,KAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA;AAAA,EAEV,WAAA,CAAY,YAAoB,OAAkC,EAAA;AAChE,IAAA,IAAA,CAAK,UAAa,GAAA,UAAA;AAElB,IAAA,IAAI,CAAC,OAAS,EAAA;AACZ,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAI,MAAO,EAAA;AAAA,KAC1B,MAAA,IAAW,aAAa,OAAS,EAAA;AAC/B,MAAA,IAAA,CAAK,KAAQ,GAAA,OAAA;AAAA,KACR,MAAA;AACL,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAI,MAAA,CAAO,OAAO,CAAA;AAAA;AAGjC,IAAA,IAAA,CAAK,WAAc,GAAA,IAAI,0BAA2B,CAAA,UAAA,EAAY,KAAK,IAAI,CAAA;AACvE,IAAA,IAAA,CAAK,QAAW,GAAA,IAAI,wBAAyB,CAAA,UAAA,EAAY,KAAK,IAAI,CAAA;AAAA;AACpE,EAEA,WAAW,cAAwB,EAAA;AACjC,IAAO,OAAA;AAAA,MACL,QAAQ,CAAC,MAAA,KAA2B,KAAK,WAAY,CAAA,MAAA,CAAO,gBAAgB,MAAM,CAAA;AAAA,MAClF,MAAA,EAAQ,CAAC,EAAY,EAAA,MAAA,KACnB,KAAK,WAAY,CAAA,MAAA,CAAO,cAAgB,EAAA,EAAA,EAAI,MAAM,CAAA;AAAA,MACpD,KAAA,EAAO,CAAC,EAAY,EAAA,MAAA,KAClB,KAAK,WAAY,CAAA,KAAA,CAAM,cAAgB,EAAA,EAAA,EAAI,MAAM,CAAA;AAAA,MACnD,QAAQ,CAAC,EAAA,KAAe,KAAK,WAAY,CAAA,MAAA,CAAO,gBAAgB,EAAE,CAAA;AAAA,MAClE,SAAS,CAAC,UAAA,KAAuB,KAAK,WAAY,CAAA,UAAA,CAAW,gBAAgB,UAAU;AAAA,KACzF;AAAA;AACF,EAEA,QAAQ,cAAwB,EAAA;AAC9B,IAAO,OAAA;AAAA,MACL,GAAK,EAAA,MAAM,IAAK,CAAA,QAAA,CAAS,IAAI,cAAc,CAAA;AAAA,MAC3C,SAAS,CAAC,EAAA,KAAe,KAAK,QAAS,CAAA,OAAA,CAAQ,gBAAgB,EAAE,CAAA;AAAA,MACjE,QAAQ,CAAC,EAAA,KAAe,KAAK,QAAS,CAAA,MAAA,CAAO,gBAAgB,EAAE;AAAA,KACjE;AAAA;AACF,EAEA,MAAM,IAAI,MAAgC,EAAA;AACxC,IAAA,MAAM,IAAI,EAAG,CAAA,SAAA,CAAU,QAAQ,EAAE,cAAA,EAAgB,MAAM,CAAA;AACvD,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,GAAA;AAAA,MAC1B,CAAG,EAAA,IAAA,CAAK,UAAU,CAAA,iBAAA,EAAoB,CAAC,CAAA;AAAA,KACzC;AACA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,OAAO,MAAkC,EAAA;AAC7C,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,IAAA;AAAA,MAC1B,CAAA,EAAG,KAAK,UAAU,CAAA,iBAAA,CAAA;AAAA,MAClB;AAAA,KACF;AACA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AAEf","file":"index.mjs","sourcesContent":["import qs from 'qs';\n\nimport { Client, ClientOptions } from '@microsoft/teams.common/http';\n\nimport { Account, Conversation, ConversationResource } from '../../models';\n\nimport { ActivityParams, ConversationActivityClient } from './activity';\nimport { ConversationMemberClient } from './member';\n\nexport type GetConversationsParams = {\n readonly continuationToken?: string;\n};\n\nexport type CreateConversationParams = {\n readonly isGroup?: boolean;\n readonly bot?: Partial<Account>;\n readonly members?: Account[];\n readonly topicName?: string;\n readonly tenantId?: string;\n readonly activity?: ActivityParams;\n readonly channelData?: Record<string, any>;\n};\n\nexport type GetConversationsResponse = {\n /**\n * Paging token\n */\n continuationToken: string;\n\n /**\n * List of conversations\n */\n conversations: Conversation[];\n};\n\nexport class ConversationClient {\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 _activities: ConversationActivityClient;\n protected _members: ConversationMemberClient;\n\n constructor(serviceUrl: string, options?: Client | ClientOptions) {\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._activities = new ConversationActivityClient(serviceUrl, this.http);\n this._members = new ConversationMemberClient(serviceUrl, this.http);\n }\n\n activities(conversationId: string) {\n return {\n create: (params: ActivityParams) => this._activities.create(conversationId, params),\n update: (id: string, params: ActivityParams) =>\n this._activities.update(conversationId, id, params),\n reply: (id: string, params: ActivityParams) =>\n this._activities.reply(conversationId, id, params),\n delete: (id: string) => this._activities.delete(conversationId, id),\n members: (activityId: string) => this._activities.getMembers(conversationId, activityId),\n };\n }\n\n members(conversationId: string) {\n return {\n get: () => this._members.get(conversationId),\n getById: (id: string) => this._members.getById(conversationId, id),\n delete: (id: string) => this._members.delete(conversationId, id),\n };\n }\n\n async get(params: GetConversationsParams) {\n const q = qs.stringify(params, { addQueryPrefix: true });\n const res = await this.http.get<GetConversationsResponse>(\n `${this.serviceUrl}/v3/conversations${q}`\n );\n return res.data;\n }\n\n async create(params: CreateConversationParams) {\n const res = await this.http.post<ConversationResource>(\n `${this.serviceUrl}/v3/conversations`,\n params\n );\n return res.data;\n }\n}\n\nexport * from './activity';\nexport * from './member';\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/clients/index.ts"],"names":["http","BotClient","UserClient","ConversationClient","TeamClient","MeetingClient"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQO,MAAM,MAAO,CAAA;AAAA,EACT,UAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,aAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EAET,IAAI,IAAO,GAAA;AACT,IAAA,OAAO,IAAK,CAAA,KAAA;AAAA;AACd,EACA,IAAI,KAAK,CAAG,EAAA;AACV,IAAA,IAAA,CAAK,KAAK,IAAO,GAAA,CAAA;AACjB,IAAA,IAAA,CAAK,cAAc,IAAO,GAAA,CAAA;AAC1B,IAAA,IAAA,CAAK,MAAM,IAAO,GAAA,CAAA;AAClB,IAAA,IAAA,CAAK,MAAM,IAAO,GAAA,CAAA;AAClB,IAAA,IAAA,CAAK,SAAS,IAAO,GAAA,CAAA;AACrB,IAAA,IAAA,CAAK,KAAQ,GAAA,CAAA;AAAA;AACf,EACU,KAAA;AAAA,EAEV,WAAA,CAAY,YAAoB,OAA4C,EAAA;AAC1E,IAAA,IAAA,CAAK,UAAa,GAAA,UAAA;AAElB,IAAA,IAAI,CAAC,OAAS,EAAA;AACZ,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAIA,eAAA,CAAK,MAAO,EAAA;AAAA,KAC/B,MAAA,IAAW,aAAa,OAAS,EAAA;AAC/B,MAAA,IAAA,CAAK,KAAQ,GAAA,OAAA;AAAA,KACR,MAAA;AACL,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAIA,eAAA,CAAK,MAAO,CAAA;AAAA,QAC3B,GAAG,OAAA;AAAA,QACH,OAAS,EAAA;AAAA,UACP,GAAG,OAAS,EAAA,OAAA;AAAA,UACZ,cAAgB,EAAA;AAAA;AAClB,OACD,CAAA;AAAA;AAGH,IAAA,IAAA,CAAK,IAAO,GAAA,IAAIC,aAAU,CAAA,IAAA,CAAK,IAAI,CAAA;AACnC,IAAA,IAAA,CAAK,KAAQ,GAAA,IAAIC,eAAW,CAAA,IAAA,CAAK,IAAI,CAAA;AACrC,IAAA,IAAA,CAAK,aAAgB,GAAA,IAAIC,+BAAmB,CAAA,UAAA,EAAY,KAAK,IAAI,CAAA;AACjE,IAAA,IAAA,CAAK,KAAQ,GAAA,IAAIC,eAAW,CAAA,UAAA,EAAY,KAAK,IAAI,CAAA;AACjD,IAAA,IAAA,CAAK,QAAW,GAAA,IAAIC,qBAAc,CAAA,UAAA,EAAY,KAAK,IAAI,CAAA;AAAA;AAE3D","file":"index.js","sourcesContent":["import * as http from '@microsoft/teams.common/http';\r\n\r\nimport { BotClient } from './bot';\r\nimport { ConversationClient } from './conversation';\r\nimport { MeetingClient } from './meeting';\r\nimport { TeamClient } from './team';\r\nimport { UserClient } from './user';\r\n\r\nexport class Client {\r\n readonly serviceUrl: string;\r\n readonly bots: BotClient;\r\n readonly users: UserClient;\r\n readonly conversations: ConversationClient;\r\n readonly teams: TeamClient;\r\n readonly meetings: MeetingClient;\r\n\r\n get http() {\r\n return this._http;\r\n }\r\n set http(v) {\r\n this.bots.http = v;\r\n this.conversations.http = v;\r\n this.users.http = v;\r\n this.teams.http = v;\r\n this.meetings.http = v;\r\n this._http = v;\r\n }\r\n protected _http: http.Client;\r\n\r\n constructor(serviceUrl: string, options?: http.Client | http.ClientOptions) {\r\n this.serviceUrl = serviceUrl;\r\n\r\n if (!options) {\r\n this._http = new http.Client();\r\n } else if ('request' in options) {\r\n this._http = options;\r\n } else {\r\n this._http = new http.Client({\r\n ...options,\r\n headers: {\r\n ...options?.headers,\r\n 'Content-Type': 'application/json',\r\n },\r\n });\r\n }\r\n\r\n this.bots = new BotClient(this.http);\r\n this.users = new UserClient(this.http);\r\n this.conversations = new ConversationClient(serviceUrl, this.http);\r\n this.teams = new TeamClient(serviceUrl, this.http);\r\n this.meetings = new MeetingClient(serviceUrl, this.http);\r\n }\r\n}\r\n\r\nexport * from './user';\r\nexport * from './bot';\r\nexport * from './conversation';\r\nexport * from './meeting';\r\nexport * from './team';\r\n"]}
1
+ {"version":3,"sources":["../../src/clients/index.ts"],"names":["http","BotClient","UserClient","ConversationClient","TeamClient","MeetingClient"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQO,MAAM,MAAO,CAAA;AAAA,EACT,UAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,aAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EAET,IAAI,IAAO,GAAA;AACT,IAAA,OAAO,IAAK,CAAA,KAAA;AAAA;AACd,EACA,IAAI,KAAK,CAAG,EAAA;AACV,IAAA,IAAA,CAAK,KAAK,IAAO,GAAA,CAAA;AACjB,IAAA,IAAA,CAAK,cAAc,IAAO,GAAA,CAAA;AAC1B,IAAA,IAAA,CAAK,MAAM,IAAO,GAAA,CAAA;AAClB,IAAA,IAAA,CAAK,MAAM,IAAO,GAAA,CAAA;AAClB,IAAA,IAAA,CAAK,SAAS,IAAO,GAAA,CAAA;AACrB,IAAA,IAAA,CAAK,KAAQ,GAAA,CAAA;AAAA;AACf,EACU,KAAA;AAAA,EAEV,WAAA,CAAY,YAAoB,OAA4C,EAAA;AAC1E,IAAA,IAAA,CAAK,UAAa,GAAA,UAAA;AAElB,IAAA,IAAI,CAAC,OAAS,EAAA;AACZ,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAIA,eAAA,CAAK,MAAO,EAAA;AAAA,KAC/B,MAAA,IAAW,aAAa,OAAS,EAAA;AAC/B,MAAA,IAAA,CAAK,KAAQ,GAAA,OAAA;AAAA,KACR,MAAA;AACL,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAIA,eAAA,CAAK,MAAO,CAAA;AAAA,QAC3B,GAAG,OAAA;AAAA,QACH,OAAS,EAAA;AAAA,UACP,GAAG,OAAS,EAAA,OAAA;AAAA,UACZ,cAAgB,EAAA;AAAA;AAClB,OACD,CAAA;AAAA;AAGH,IAAA,IAAA,CAAK,IAAO,GAAA,IAAIC,aAAU,CAAA,IAAA,CAAK,IAAI,CAAA;AACnC,IAAA,IAAA,CAAK,KAAQ,GAAA,IAAIC,eAAW,CAAA,IAAA,CAAK,IAAI,CAAA;AACrC,IAAA,IAAA,CAAK,aAAgB,GAAA,IAAIC,+BAAmB,CAAA,UAAA,EAAY,KAAK,IAAI,CAAA;AACjE,IAAA,IAAA,CAAK,KAAQ,GAAA,IAAIC,eAAW,CAAA,UAAA,EAAY,KAAK,IAAI,CAAA;AACjD,IAAA,IAAA,CAAK,QAAW,GAAA,IAAIC,qBAAc,CAAA,UAAA,EAAY,KAAK,IAAI,CAAA;AAAA;AAE3D","file":"index.js","sourcesContent":["import * as http from '@microsoft/teams.common/http';\n\nimport { BotClient } from './bot';\nimport { ConversationClient } from './conversation';\nimport { MeetingClient } from './meeting';\nimport { TeamClient } from './team';\nimport { UserClient } from './user';\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\n get http() {\n return this._http;\n }\n set http(v) {\n this.bots.http = v;\n this.conversations.http = v;\n this.users.http = v;\n this.teams.http = v;\n this.meetings.http = v;\n this._http = v;\n }\n protected _http: http.Client;\n\n constructor(serviceUrl: string, options?: http.Client | http.ClientOptions) {\n this.serviceUrl = serviceUrl;\n\n if (!options) {\n this._http = new http.Client();\n } else if ('request' in options) {\n this._http = options;\n } else {\n this._http = new http.Client({\n ...options,\n headers: {\n ...options?.headers,\n 'Content-Type': 'application/json',\n },\n });\n }\n\n this.bots = new BotClient(this.http);\n this.users = new UserClient(this.http);\n this.conversations = new ConversationClient(serviceUrl, this.http);\n this.teams = new TeamClient(serviceUrl, this.http);\n this.meetings = new MeetingClient(serviceUrl, this.http);\n }\n}\n\nexport * from './user';\nexport * from './bot';\nexport * from './conversation';\nexport * from './meeting';\nexport * from './team';\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/clients/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAQO,MAAM,MAAO,CAAA;AAAA,EACT,UAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,aAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EAET,IAAI,IAAO,GAAA;AACT,IAAA,OAAO,IAAK,CAAA,KAAA;AAAA;AACd,EACA,IAAI,KAAK,CAAG,EAAA;AACV,IAAA,IAAA,CAAK,KAAK,IAAO,GAAA,CAAA;AACjB,IAAA,IAAA,CAAK,cAAc,IAAO,GAAA,CAAA;AAC1B,IAAA,IAAA,CAAK,MAAM,IAAO,GAAA,CAAA;AAClB,IAAA,IAAA,CAAK,MAAM,IAAO,GAAA,CAAA;AAClB,IAAA,IAAA,CAAK,SAAS,IAAO,GAAA,CAAA;AACrB,IAAA,IAAA,CAAK,KAAQ,GAAA,CAAA;AAAA;AACf,EACU,KAAA;AAAA,EAEV,WAAA,CAAY,YAAoB,OAA4C,EAAA;AAC1E,IAAA,IAAA,CAAK,UAAa,GAAA,UAAA;AAElB,IAAA,IAAI,CAAC,OAAS,EAAA;AACZ,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAI,IAAA,CAAK,MAAO,EAAA;AAAA,KAC/B,MAAA,IAAW,aAAa,OAAS,EAAA;AAC/B,MAAA,IAAA,CAAK,KAAQ,GAAA,OAAA;AAAA,KACR,MAAA;AACL,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAI,IAAA,CAAK,MAAO,CAAA;AAAA,QAC3B,GAAG,OAAA;AAAA,QACH,OAAS,EAAA;AAAA,UACP,GAAG,OAAS,EAAA,OAAA;AAAA,UACZ,cAAgB,EAAA;AAAA;AAClB,OACD,CAAA;AAAA;AAGH,IAAA,IAAA,CAAK,IAAO,GAAA,IAAI,SAAU,CAAA,IAAA,CAAK,IAAI,CAAA;AACnC,IAAA,IAAA,CAAK,KAAQ,GAAA,IAAI,UAAW,CAAA,IAAA,CAAK,IAAI,CAAA;AACrC,IAAA,IAAA,CAAK,aAAgB,GAAA,IAAI,kBAAmB,CAAA,UAAA,EAAY,KAAK,IAAI,CAAA;AACjE,IAAA,IAAA,CAAK,KAAQ,GAAA,IAAI,UAAW,CAAA,UAAA,EAAY,KAAK,IAAI,CAAA;AACjD,IAAA,IAAA,CAAK,QAAW,GAAA,IAAI,aAAc,CAAA,UAAA,EAAY,KAAK,IAAI,CAAA;AAAA;AAE3D","file":"index.mjs","sourcesContent":["import * as http from '@microsoft/teams.common/http';\r\n\r\nimport { BotClient } from './bot';\r\nimport { ConversationClient } from './conversation';\r\nimport { MeetingClient } from './meeting';\r\nimport { TeamClient } from './team';\r\nimport { UserClient } from './user';\r\n\r\nexport class Client {\r\n readonly serviceUrl: string;\r\n readonly bots: BotClient;\r\n readonly users: UserClient;\r\n readonly conversations: ConversationClient;\r\n readonly teams: TeamClient;\r\n readonly meetings: MeetingClient;\r\n\r\n get http() {\r\n return this._http;\r\n }\r\n set http(v) {\r\n this.bots.http = v;\r\n this.conversations.http = v;\r\n this.users.http = v;\r\n this.teams.http = v;\r\n this.meetings.http = v;\r\n this._http = v;\r\n }\r\n protected _http: http.Client;\r\n\r\n constructor(serviceUrl: string, options?: http.Client | http.ClientOptions) {\r\n this.serviceUrl = serviceUrl;\r\n\r\n if (!options) {\r\n this._http = new http.Client();\r\n } else if ('request' in options) {\r\n this._http = options;\r\n } else {\r\n this._http = new http.Client({\r\n ...options,\r\n headers: {\r\n ...options?.headers,\r\n 'Content-Type': 'application/json',\r\n },\r\n });\r\n }\r\n\r\n this.bots = new BotClient(this.http);\r\n this.users = new UserClient(this.http);\r\n this.conversations = new ConversationClient(serviceUrl, this.http);\r\n this.teams = new TeamClient(serviceUrl, this.http);\r\n this.meetings = new MeetingClient(serviceUrl, this.http);\r\n }\r\n}\r\n\r\nexport * from './user';\r\nexport * from './bot';\r\nexport * from './conversation';\r\nexport * from './meeting';\r\nexport * from './team';\r\n"]}
1
+ {"version":3,"sources":["../../src/clients/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAQO,MAAM,MAAO,CAAA;AAAA,EACT,UAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,aAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EAET,IAAI,IAAO,GAAA;AACT,IAAA,OAAO,IAAK,CAAA,KAAA;AAAA;AACd,EACA,IAAI,KAAK,CAAG,EAAA;AACV,IAAA,IAAA,CAAK,KAAK,IAAO,GAAA,CAAA;AACjB,IAAA,IAAA,CAAK,cAAc,IAAO,GAAA,CAAA;AAC1B,IAAA,IAAA,CAAK,MAAM,IAAO,GAAA,CAAA;AAClB,IAAA,IAAA,CAAK,MAAM,IAAO,GAAA,CAAA;AAClB,IAAA,IAAA,CAAK,SAAS,IAAO,GAAA,CAAA;AACrB,IAAA,IAAA,CAAK,KAAQ,GAAA,CAAA;AAAA;AACf,EACU,KAAA;AAAA,EAEV,WAAA,CAAY,YAAoB,OAA4C,EAAA;AAC1E,IAAA,IAAA,CAAK,UAAa,GAAA,UAAA;AAElB,IAAA,IAAI,CAAC,OAAS,EAAA;AACZ,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAI,IAAA,CAAK,MAAO,EAAA;AAAA,KAC/B,MAAA,IAAW,aAAa,OAAS,EAAA;AAC/B,MAAA,IAAA,CAAK,KAAQ,GAAA,OAAA;AAAA,KACR,MAAA;AACL,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAI,IAAA,CAAK,MAAO,CAAA;AAAA,QAC3B,GAAG,OAAA;AAAA,QACH,OAAS,EAAA;AAAA,UACP,GAAG,OAAS,EAAA,OAAA;AAAA,UACZ,cAAgB,EAAA;AAAA;AAClB,OACD,CAAA;AAAA;AAGH,IAAA,IAAA,CAAK,IAAO,GAAA,IAAI,SAAU,CAAA,IAAA,CAAK,IAAI,CAAA;AACnC,IAAA,IAAA,CAAK,KAAQ,GAAA,IAAI,UAAW,CAAA,IAAA,CAAK,IAAI,CAAA;AACrC,IAAA,IAAA,CAAK,aAAgB,GAAA,IAAI,kBAAmB,CAAA,UAAA,EAAY,KAAK,IAAI,CAAA;AACjE,IAAA,IAAA,CAAK,KAAQ,GAAA,IAAI,UAAW,CAAA,UAAA,EAAY,KAAK,IAAI,CAAA;AACjD,IAAA,IAAA,CAAK,QAAW,GAAA,IAAI,aAAc,CAAA,UAAA,EAAY,KAAK,IAAI,CAAA;AAAA;AAE3D","file":"index.mjs","sourcesContent":["import * as http from '@microsoft/teams.common/http';\n\nimport { BotClient } from './bot';\nimport { ConversationClient } from './conversation';\nimport { MeetingClient } from './meeting';\nimport { TeamClient } from './team';\nimport { UserClient } from './user';\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\n get http() {\n return this._http;\n }\n set http(v) {\n this.bots.http = v;\n this.conversations.http = v;\n this.users.http = v;\n this.teams.http = v;\n this.meetings.http = v;\n this._http = v;\n }\n protected _http: http.Client;\n\n constructor(serviceUrl: string, options?: http.Client | http.ClientOptions) {\n this.serviceUrl = serviceUrl;\n\n if (!options) {\n this._http = new http.Client();\n } else if ('request' in options) {\n this._http = options;\n } else {\n this._http = new http.Client({\n ...options,\n headers: {\n ...options?.headers,\n 'Content-Type': 'application/json',\n },\n });\n }\n\n this.bots = new BotClient(this.http);\n this.users = new UserClient(this.http);\n this.conversations = new ConversationClient(serviceUrl, this.http);\n this.teams = new TeamClient(serviceUrl, this.http);\n this.meetings = new MeetingClient(serviceUrl, this.http);\n }\n}\n\nexport * from './user';\nexport * from './bot';\nexport * from './conversation';\nexport * from './meeting';\nexport * from './team';\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/clients/user/token.ts"],"names":["Client","qs"],"mappings":";;;;;;;;;AAuCO,MAAM,eAAgB,CAAA;AAAA,EAC3B,IAAI,IAAO,GAAA;AACT,IAAA,OAAO,IAAK,CAAA,KAAA;AAAA;AACd,EACA,IAAI,KAAK,CAAG,EAAA;AACV,IAAA,IAAA,CAAK,KAAQ,GAAA,CAAA;AAAA;AACf,EACU,KAAA;AAAA,EAEV,YAAY,OAAkC,EAAA;AAC5C,IAAA,IAAI,CAAC,OAAS,EAAA;AACZ,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAIA,WAAO,EAAA;AAAA,KAC1B,MAAA,IAAW,aAAa,OAAS,EAAA;AAC/B,MAAA,IAAA,CAAK,KAAQ,GAAA,OAAA;AAAA,KACR,MAAA;AACL,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAIA,WAAA,CAAO,OAAO,CAAA;AAAA;AACjC;AACF,EAEA,MAAM,IAAI,MAA4B,EAAA;AACpC,IAAM,MAAA,CAAA,GAAIC,mBAAG,CAAA,SAAA,CAAU,MAAM,CAAA;AAC7B,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,GAAA;AAAA,MAC1B,yDAAyD,CAAC,CAAA;AAAA,KAC5D;AAEA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,OAAO,MAA+B,EAAA;AAC1C,IAAM,MAAA,CAAA,GAAIA,mBAAG,CAAA,SAAA,CAAU,MAAM,CAAA;AAC7B,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,IAAA;AAAA,MAC1B,6DAA6D,CAAC,CAAA,CAAA;AAAA,MAC9D;AAAA,KACF;AAEA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,UAAU,MAAkC,EAAA;AAChD,IAAM,MAAA,CAAA,GAAIA,mBAAG,CAAA,SAAA,CAAU,MAAM,CAAA;AAC7B,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,GAAA;AAAA,MAC1B,+DAA+D,CAAC,CAAA;AAAA,KAClE;AAEA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,QAAQ,MAA2B,EAAA;AACvC,IAAM,MAAA,CAAA,GAAIA,mBAAG,CAAA,SAAA,CAAU,MAAM,CAAA;AAC7B,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,MAAA;AAAA,MAC1B,wDAAwD,CAAC,CAAA,CAAA;AAAA,MACzD,EAAE,MAAM,MAAO;AAAA,KACjB;AAEA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,SAAS,MAAiC,EAAA;AAC9C,IAAM,MAAA,CAAA,GAAIA,oBAAG,SAAU,CAAA;AAAA,MACrB,QAAQ,MAAO,CAAA,MAAA;AAAA,MACf,gBAAgB,MAAO,CAAA,cAAA;AAAA,MACvB,WAAW,MAAO,CAAA;AAAA,KACnB,CAAA;AAED,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,IAAA;AAAA,MAC1B,yDAAyD,CAAC,CAAA,CAAA;AAAA,MAC1D;AAAA,QACE,iBAAiB,MAAO,CAAA;AAAA;AAC1B,KACF;AAEA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AAEf","file":"token.js","sourcesContent":["import qs from 'qs';\r\n\r\nimport { Client, ClientOptions } from '@microsoft/teams.common/http';\r\n\r\nimport { ChannelID, TokenExchangeRequest, TokenResponse, TokenStatus } from '../../models';\r\n\r\nexport type GetUserTokenParams = {\r\n userId: string;\r\n connectionName: string;\r\n channelId?: ChannelID;\r\n code?: string;\r\n};\r\n\r\nexport type GetUserAADTokenParams = {\r\n userId: string;\r\n connectionName: string;\r\n resourceUrls: string[];\r\n channelId: ChannelID;\r\n};\r\n\r\nexport type GetUserTokenStatusParams = {\r\n userId: string;\r\n channelId: ChannelID;\r\n includeFilter: string;\r\n};\r\n\r\nexport type SignOutUserParams = {\r\n userId: string;\r\n connectionName: string;\r\n channelId: ChannelID;\r\n};\r\n\r\nexport type ExchangeUserTokenParams = {\r\n userId: string;\r\n connectionName: string;\r\n channelId: ChannelID;\r\n exchangeRequest: TokenExchangeRequest;\r\n};\r\n\r\nexport class UserTokenClient {\r\n get http() {\r\n return this._http;\r\n }\r\n set http(v) {\r\n this._http = v;\r\n }\r\n protected _http: Client;\r\n\r\n constructor(options?: Client | ClientOptions) {\r\n if (!options) {\r\n this._http = new Client();\r\n } else if ('request' in options) {\r\n this._http = options;\r\n } else {\r\n this._http = new Client(options);\r\n }\r\n }\r\n\r\n async get(params: GetUserTokenParams) {\r\n const q = qs.stringify(params);\r\n const res = await this.http.get<TokenResponse>(\r\n `https://token.botframework.com/api/usertoken/GetToken?${q}`\r\n );\r\n\r\n return res.data;\r\n }\r\n\r\n async getAad(params: GetUserAADTokenParams) {\r\n const q = qs.stringify(params);\r\n const res = await this.http.post<Record<string, TokenResponse>>(\r\n `https://token.botframework.com/api/usertoken/GetAadTokens?${q}`,\r\n params\r\n );\r\n\r\n return res.data;\r\n }\r\n\r\n async getStatus(params: GetUserTokenStatusParams) {\r\n const q = qs.stringify(params);\r\n const res = await this.http.get<TokenStatus[]>(\r\n `https://token.botframework.com/api/usertoken/GetTokenStatus?${q}`\r\n );\r\n\r\n return res.data;\r\n }\r\n\r\n async signOut(params: SignOutUserParams) {\r\n const q = qs.stringify(params);\r\n const res = await this.http.delete<void>(\r\n `https://token.botframework.com/api/usertoken/SignOut?${q}`,\r\n { data: params }\r\n );\r\n\r\n return res.data;\r\n }\r\n\r\n async exchange(params: ExchangeUserTokenParams) {\r\n const q = qs.stringify({\r\n userId: params.userId,\r\n connectionName: params.connectionName,\r\n channelId: params.channelId,\r\n });\r\n\r\n const res = await this.http.post<TokenResponse>(\r\n `https://token.botframework.com/api/usertoken/exchange?${q}`,\r\n {\r\n exchangeRequest: params.exchangeRequest,\r\n }\r\n );\r\n\r\n return res.data;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"sources":["../../../src/clients/user/token.ts"],"names":["Client","qs"],"mappings":";;;;;;;;;AAuCO,MAAM,eAAgB,CAAA;AAAA,EAC3B,IAAI,IAAO,GAAA;AACT,IAAA,OAAO,IAAK,CAAA,KAAA;AAAA;AACd,EACA,IAAI,KAAK,CAAG,EAAA;AACV,IAAA,IAAA,CAAK,KAAQ,GAAA,CAAA;AAAA;AACf,EACU,KAAA;AAAA,EAEV,YAAY,OAAkC,EAAA;AAC5C,IAAA,IAAI,CAAC,OAAS,EAAA;AACZ,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAIA,WAAO,EAAA;AAAA,KAC1B,MAAA,IAAW,aAAa,OAAS,EAAA;AAC/B,MAAA,IAAA,CAAK,KAAQ,GAAA,OAAA;AAAA,KACR,MAAA;AACL,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAIA,WAAA,CAAO,OAAO,CAAA;AAAA;AACjC;AACF,EAEA,MAAM,IAAI,MAA4B,EAAA;AACpC,IAAM,MAAA,CAAA,GAAIC,mBAAG,CAAA,SAAA,CAAU,MAAM,CAAA;AAC7B,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,GAAA;AAAA,MAC1B,yDAAyD,CAAC,CAAA;AAAA,KAC5D;AAEA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,OAAO,MAA+B,EAAA;AAC1C,IAAM,MAAA,CAAA,GAAIA,mBAAG,CAAA,SAAA,CAAU,MAAM,CAAA;AAC7B,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,IAAA;AAAA,MAC1B,6DAA6D,CAAC,CAAA,CAAA;AAAA,MAC9D;AAAA,KACF;AAEA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,UAAU,MAAkC,EAAA;AAChD,IAAM,MAAA,CAAA,GAAIA,mBAAG,CAAA,SAAA,CAAU,MAAM,CAAA;AAC7B,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,GAAA;AAAA,MAC1B,+DAA+D,CAAC,CAAA;AAAA,KAClE;AAEA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,QAAQ,MAA2B,EAAA;AACvC,IAAM,MAAA,CAAA,GAAIA,mBAAG,CAAA,SAAA,CAAU,MAAM,CAAA;AAC7B,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,MAAA;AAAA,MAC1B,wDAAwD,CAAC,CAAA,CAAA;AAAA,MACzD,EAAE,MAAM,MAAO;AAAA,KACjB;AAEA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,SAAS,MAAiC,EAAA;AAC9C,IAAM,MAAA,CAAA,GAAIA,oBAAG,SAAU,CAAA;AAAA,MACrB,QAAQ,MAAO,CAAA,MAAA;AAAA,MACf,gBAAgB,MAAO,CAAA,cAAA;AAAA,MACvB,WAAW,MAAO,CAAA;AAAA,KACnB,CAAA;AAED,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,IAAA;AAAA,MAC1B,yDAAyD,CAAC,CAAA,CAAA;AAAA,MAC1D;AAAA,QACE,iBAAiB,MAAO,CAAA;AAAA;AAC1B,KACF;AAEA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AAEf","file":"token.js","sourcesContent":["import qs from 'qs';\n\nimport { Client, ClientOptions } from '@microsoft/teams.common/http';\n\nimport { ChannelID, TokenExchangeRequest, TokenResponse, TokenStatus } from '../../models';\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 class UserTokenClient {\n get http() {\n return this._http;\n }\n set http(v) {\n this._http = v;\n }\n protected _http: Client;\n\n constructor(options?: Client | ClientOptions) {\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\n async get(params: GetUserTokenParams) {\n const q = qs.stringify(params);\n const res = await this.http.get<TokenResponse>(\n `https://token.botframework.com/api/usertoken/GetToken?${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 `https://token.botframework.com/api/usertoken/GetAadTokens?${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 `https://token.botframework.com/api/usertoken/GetTokenStatus?${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 `https://token.botframework.com/api/usertoken/SignOut?${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 `https://token.botframework.com/api/usertoken/exchange?${q}`,\n {\n exchangeRequest: params.exchangeRequest,\n }\n );\n\n return res.data;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/clients/user/token.ts"],"names":[],"mappings":";;;AAuCO,MAAM,eAAgB,CAAA;AAAA,EAC3B,IAAI,IAAO,GAAA;AACT,IAAA,OAAO,IAAK,CAAA,KAAA;AAAA;AACd,EACA,IAAI,KAAK,CAAG,EAAA;AACV,IAAA,IAAA,CAAK,KAAQ,GAAA,CAAA;AAAA;AACf,EACU,KAAA;AAAA,EAEV,YAAY,OAAkC,EAAA;AAC5C,IAAA,IAAI,CAAC,OAAS,EAAA;AACZ,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAI,MAAO,EAAA;AAAA,KAC1B,MAAA,IAAW,aAAa,OAAS,EAAA;AAC/B,MAAA,IAAA,CAAK,KAAQ,GAAA,OAAA;AAAA,KACR,MAAA;AACL,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAI,MAAA,CAAO,OAAO,CAAA;AAAA;AACjC;AACF,EAEA,MAAM,IAAI,MAA4B,EAAA;AACpC,IAAM,MAAA,CAAA,GAAI,EAAG,CAAA,SAAA,CAAU,MAAM,CAAA;AAC7B,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,GAAA;AAAA,MAC1B,yDAAyD,CAAC,CAAA;AAAA,KAC5D;AAEA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,OAAO,MAA+B,EAAA;AAC1C,IAAM,MAAA,CAAA,GAAI,EAAG,CAAA,SAAA,CAAU,MAAM,CAAA;AAC7B,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,IAAA;AAAA,MAC1B,6DAA6D,CAAC,CAAA,CAAA;AAAA,MAC9D;AAAA,KACF;AAEA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,UAAU,MAAkC,EAAA;AAChD,IAAM,MAAA,CAAA,GAAI,EAAG,CAAA,SAAA,CAAU,MAAM,CAAA;AAC7B,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,GAAA;AAAA,MAC1B,+DAA+D,CAAC,CAAA;AAAA,KAClE;AAEA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,QAAQ,MAA2B,EAAA;AACvC,IAAM,MAAA,CAAA,GAAI,EAAG,CAAA,SAAA,CAAU,MAAM,CAAA;AAC7B,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,MAAA;AAAA,MAC1B,wDAAwD,CAAC,CAAA,CAAA;AAAA,MACzD,EAAE,MAAM,MAAO;AAAA,KACjB;AAEA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,SAAS,MAAiC,EAAA;AAC9C,IAAM,MAAA,CAAA,GAAI,GAAG,SAAU,CAAA;AAAA,MACrB,QAAQ,MAAO,CAAA,MAAA;AAAA,MACf,gBAAgB,MAAO,CAAA,cAAA;AAAA,MACvB,WAAW,MAAO,CAAA;AAAA,KACnB,CAAA;AAED,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,IAAA;AAAA,MAC1B,yDAAyD,CAAC,CAAA,CAAA;AAAA,MAC1D;AAAA,QACE,iBAAiB,MAAO,CAAA;AAAA;AAC1B,KACF;AAEA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AAEf","file":"token.mjs","sourcesContent":["import qs from 'qs';\r\n\r\nimport { Client, ClientOptions } from '@microsoft/teams.common/http';\r\n\r\nimport { ChannelID, TokenExchangeRequest, TokenResponse, TokenStatus } from '../../models';\r\n\r\nexport type GetUserTokenParams = {\r\n userId: string;\r\n connectionName: string;\r\n channelId?: ChannelID;\r\n code?: string;\r\n};\r\n\r\nexport type GetUserAADTokenParams = {\r\n userId: string;\r\n connectionName: string;\r\n resourceUrls: string[];\r\n channelId: ChannelID;\r\n};\r\n\r\nexport type GetUserTokenStatusParams = {\r\n userId: string;\r\n channelId: ChannelID;\r\n includeFilter: string;\r\n};\r\n\r\nexport type SignOutUserParams = {\r\n userId: string;\r\n connectionName: string;\r\n channelId: ChannelID;\r\n};\r\n\r\nexport type ExchangeUserTokenParams = {\r\n userId: string;\r\n connectionName: string;\r\n channelId: ChannelID;\r\n exchangeRequest: TokenExchangeRequest;\r\n};\r\n\r\nexport class UserTokenClient {\r\n get http() {\r\n return this._http;\r\n }\r\n set http(v) {\r\n this._http = v;\r\n }\r\n protected _http: Client;\r\n\r\n constructor(options?: Client | ClientOptions) {\r\n if (!options) {\r\n this._http = new Client();\r\n } else if ('request' in options) {\r\n this._http = options;\r\n } else {\r\n this._http = new Client(options);\r\n }\r\n }\r\n\r\n async get(params: GetUserTokenParams) {\r\n const q = qs.stringify(params);\r\n const res = await this.http.get<TokenResponse>(\r\n `https://token.botframework.com/api/usertoken/GetToken?${q}`\r\n );\r\n\r\n return res.data;\r\n }\r\n\r\n async getAad(params: GetUserAADTokenParams) {\r\n const q = qs.stringify(params);\r\n const res = await this.http.post<Record<string, TokenResponse>>(\r\n `https://token.botframework.com/api/usertoken/GetAadTokens?${q}`,\r\n params\r\n );\r\n\r\n return res.data;\r\n }\r\n\r\n async getStatus(params: GetUserTokenStatusParams) {\r\n const q = qs.stringify(params);\r\n const res = await this.http.get<TokenStatus[]>(\r\n `https://token.botframework.com/api/usertoken/GetTokenStatus?${q}`\r\n );\r\n\r\n return res.data;\r\n }\r\n\r\n async signOut(params: SignOutUserParams) {\r\n const q = qs.stringify(params);\r\n const res = await this.http.delete<void>(\r\n `https://token.botframework.com/api/usertoken/SignOut?${q}`,\r\n { data: params }\r\n );\r\n\r\n return res.data;\r\n }\r\n\r\n async exchange(params: ExchangeUserTokenParams) {\r\n const q = qs.stringify({\r\n userId: params.userId,\r\n connectionName: params.connectionName,\r\n channelId: params.channelId,\r\n });\r\n\r\n const res = await this.http.post<TokenResponse>(\r\n `https://token.botframework.com/api/usertoken/exchange?${q}`,\r\n {\r\n exchangeRequest: params.exchangeRequest,\r\n }\r\n );\r\n\r\n return res.data;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"sources":["../../../src/clients/user/token.ts"],"names":[],"mappings":";;;AAuCO,MAAM,eAAgB,CAAA;AAAA,EAC3B,IAAI,IAAO,GAAA;AACT,IAAA,OAAO,IAAK,CAAA,KAAA;AAAA;AACd,EACA,IAAI,KAAK,CAAG,EAAA;AACV,IAAA,IAAA,CAAK,KAAQ,GAAA,CAAA;AAAA;AACf,EACU,KAAA;AAAA,EAEV,YAAY,OAAkC,EAAA;AAC5C,IAAA,IAAI,CAAC,OAAS,EAAA;AACZ,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAI,MAAO,EAAA;AAAA,KAC1B,MAAA,IAAW,aAAa,OAAS,EAAA;AAC/B,MAAA,IAAA,CAAK,KAAQ,GAAA,OAAA;AAAA,KACR,MAAA;AACL,MAAK,IAAA,CAAA,KAAA,GAAQ,IAAI,MAAA,CAAO,OAAO,CAAA;AAAA;AACjC;AACF,EAEA,MAAM,IAAI,MAA4B,EAAA;AACpC,IAAM,MAAA,CAAA,GAAI,EAAG,CAAA,SAAA,CAAU,MAAM,CAAA;AAC7B,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,GAAA;AAAA,MAC1B,yDAAyD,CAAC,CAAA;AAAA,KAC5D;AAEA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,OAAO,MAA+B,EAAA;AAC1C,IAAM,MAAA,CAAA,GAAI,EAAG,CAAA,SAAA,CAAU,MAAM,CAAA;AAC7B,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,IAAA;AAAA,MAC1B,6DAA6D,CAAC,CAAA,CAAA;AAAA,MAC9D;AAAA,KACF;AAEA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,UAAU,MAAkC,EAAA;AAChD,IAAM,MAAA,CAAA,GAAI,EAAG,CAAA,SAAA,CAAU,MAAM,CAAA;AAC7B,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,GAAA;AAAA,MAC1B,+DAA+D,CAAC,CAAA;AAAA,KAClE;AAEA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,QAAQ,MAA2B,EAAA;AACvC,IAAM,MAAA,CAAA,GAAI,EAAG,CAAA,SAAA,CAAU,MAAM,CAAA;AAC7B,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,MAAA;AAAA,MAC1B,wDAAwD,CAAC,CAAA,CAAA;AAAA,MACzD,EAAE,MAAM,MAAO;AAAA,KACjB;AAEA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AACb,EAEA,MAAM,SAAS,MAAiC,EAAA;AAC9C,IAAM,MAAA,CAAA,GAAI,GAAG,SAAU,CAAA;AAAA,MACrB,QAAQ,MAAO,CAAA,MAAA;AAAA,MACf,gBAAgB,MAAO,CAAA,cAAA;AAAA,MACvB,WAAW,MAAO,CAAA;AAAA,KACnB,CAAA;AAED,IAAM,MAAA,GAAA,GAAM,MAAM,IAAA,CAAK,IAAK,CAAA,IAAA;AAAA,MAC1B,yDAAyD,CAAC,CAAA,CAAA;AAAA,MAC1D;AAAA,QACE,iBAAiB,MAAO,CAAA;AAAA;AAC1B,KACF;AAEA,IAAA,OAAO,GAAI,CAAA,IAAA;AAAA;AAEf","file":"token.mjs","sourcesContent":["import qs from 'qs';\n\nimport { Client, ClientOptions } from '@microsoft/teams.common/http';\n\nimport { ChannelID, TokenExchangeRequest, TokenResponse, TokenStatus } from '../../models';\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 class UserTokenClient {\n get http() {\n return this._http;\n }\n set http(v) {\n this._http = v;\n }\n protected _http: Client;\n\n constructor(options?: Client | ClientOptions) {\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\n async get(params: GetUserTokenParams) {\n const q = qs.stringify(params);\n const res = await this.http.get<TokenResponse>(\n `https://token.botframework.com/api/usertoken/GetToken?${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 `https://token.botframework.com/api/usertoken/GetAadTokens?${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 `https://token.botframework.com/api/usertoken/GetTokenStatus?${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 `https://token.botframework.com/api/usertoken/SignOut?${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 `https://token.botframework.com/api/usertoken/exchange?${q}`,\n {\n exchangeRequest: params.exchangeRequest,\n }\n );\n\n return res.data;\n }\n}\n"]}
package/dist/index.d.mts CHANGED
@@ -36,7 +36,7 @@ export { TaskModuleCardResponse } from './models/task-module/task-module-card-re
36
36
  export { TaskModuleContinueResponse } from './models/task-module/task-module-continue-response.mjs';
37
37
  export { TaskModuleMessageResponse } from './models/task-module/task-module-message-response.mjs';
38
38
  export { TaskModuleResponse } from './models/task-module/task-module-response.mjs';
39
- export { TaskModuleTaskInfo } from './models/task-module/task-module-task-info.mjs';
39
+ export { BaseTaskModuleTaskInfo, CardTaskModuleTaskInfo, TaskModuleTaskInfo, UrlTaskModuleTaskInfo } from './models/task-module/task-module-task-info.mjs';
40
40
  export { TaskModuleRequest, TaskModuleRequestContext } from './models/task-module/task-module-request.mjs';
41
41
  export { FileConsentCard, FileConsentCardResponse } from './models/file/file-consent-card.mjs';
42
42
  export { FileInfoCard } from './models/file/file-info-card.mjs';
package/dist/index.d.ts CHANGED
@@ -36,7 +36,7 @@ export { TaskModuleCardResponse } from './models/task-module/task-module-card-re
36
36
  export { TaskModuleContinueResponse } from './models/task-module/task-module-continue-response.js';
37
37
  export { TaskModuleMessageResponse } from './models/task-module/task-module-message-response.js';
38
38
  export { TaskModuleResponse } from './models/task-module/task-module-response.js';
39
- export { TaskModuleTaskInfo } from './models/task-module/task-module-task-info.js';
39
+ export { BaseTaskModuleTaskInfo, CardTaskModuleTaskInfo, TaskModuleTaskInfo, UrlTaskModuleTaskInfo } from './models/task-module/task-module-task-info.js';
40
40
  export { TaskModuleRequest, TaskModuleRequestContext } from './models/task-module/task-module-request.js';
41
41
  export { FileConsentCard, FileConsentCardResponse } from './models/file/file-consent-card.js';
42
42
  export { FileInfoCard } from './models/file/file-info-card.js';
@@ -35,7 +35,7 @@ export { TaskModuleCardResponse } from './task-module/task-module-card-response.
35
35
  export { TaskModuleContinueResponse } from './task-module/task-module-continue-response.mjs';
36
36
  export { TaskModuleMessageResponse } from './task-module/task-module-message-response.mjs';
37
37
  export { TaskModuleResponse } from './task-module/task-module-response.mjs';
38
- export { TaskModuleTaskInfo } from './task-module/task-module-task-info.mjs';
38
+ export { BaseTaskModuleTaskInfo, CardTaskModuleTaskInfo, TaskModuleTaskInfo, UrlTaskModuleTaskInfo } from './task-module/task-module-task-info.mjs';
39
39
  export { TaskModuleRequest, TaskModuleRequestContext } from './task-module/task-module-request.mjs';
40
40
  export { FileConsentCard, FileConsentCardResponse } from './file/file-consent-card.mjs';
41
41
  export { FileInfoCard } from './file/file-info-card.mjs';
@@ -35,7 +35,7 @@ export { TaskModuleCardResponse } from './task-module/task-module-card-response.
35
35
  export { TaskModuleContinueResponse } from './task-module/task-module-continue-response.js';
36
36
  export { TaskModuleMessageResponse } from './task-module/task-module-message-response.js';
37
37
  export { TaskModuleResponse } from './task-module/task-module-response.js';
38
- export { TaskModuleTaskInfo } from './task-module/task-module-task-info.js';
38
+ export { BaseTaskModuleTaskInfo, CardTaskModuleTaskInfo, TaskModuleTaskInfo, UrlTaskModuleTaskInfo } from './task-module/task-module-task-info.js';
39
39
  export { TaskModuleRequest, TaskModuleRequestContext } from './task-module/task-module-request.js';
40
40
  export { FileConsentCard, FileConsentCardResponse } from './file/file-consent-card.js';
41
41
  export { FileInfoCard } from './file/file-info-card.js';
@@ -2,7 +2,7 @@ export { TaskModuleCardResponse } from './task-module-card-response.mjs';
2
2
  export { TaskModuleContinueResponse } from './task-module-continue-response.mjs';
3
3
  export { TaskModuleMessageResponse } from './task-module-message-response.mjs';
4
4
  export { TaskModuleResponse } from './task-module-response.mjs';
5
- export { TaskModuleTaskInfo } from './task-module-task-info.mjs';
5
+ export { BaseTaskModuleTaskInfo, CardTaskModuleTaskInfo, TaskModuleTaskInfo, UrlTaskModuleTaskInfo } from './task-module-task-info.mjs';
6
6
  export { TaskModuleRequest, TaskModuleRequestContext } from './task-module-request.mjs';
7
7
  import './task-module-response-base.mjs';
8
8
  import '../cache-info.mjs';
@@ -2,7 +2,7 @@ export { TaskModuleCardResponse } from './task-module-card-response.js';
2
2
  export { TaskModuleContinueResponse } from './task-module-continue-response.js';
3
3
  export { TaskModuleMessageResponse } from './task-module-message-response.js';
4
4
  export { TaskModuleResponse } from './task-module-response.js';
5
- export { TaskModuleTaskInfo } from './task-module-task-info.js';
5
+ export { BaseTaskModuleTaskInfo, CardTaskModuleTaskInfo, TaskModuleTaskInfo, UrlTaskModuleTaskInfo } from './task-module-task-info.js';
6
6
  export { TaskModuleRequest, TaskModuleRequestContext } from './task-module-request.js';
7
7
  import './task-module-response-base.js';
8
8
  import '../cache-info.js';
@@ -2,11 +2,10 @@ import { Attachment } from '../attachment/attachment.mjs';
2
2
 
3
3
  /**
4
4
  *
5
- * An interface representing TaskModuleTaskInfo.
6
- * Metadata for a Task Module.
5
+ * An interface representing BaseTaskModuleTaskInfo.
7
6
  *
8
7
  */
9
- type TaskModuleTaskInfo = {
8
+ type BaseTaskModuleTaskInfo = {
10
9
  /**
11
10
  * @member {string} [title] Appears below the app name and to the right of
12
11
  * the app icon.
@@ -22,16 +21,6 @@ type TaskModuleTaskInfo = {
22
21
  * width in pixels, or a string, one of: small, medium, large.
23
22
  */
24
23
  width?: number | 'small' | 'medium' | 'large';
25
- /**
26
- * @member {string} [url] The URL of what is loaded as an iframe inside the
27
- * task module. One of url or card is required.
28
- */
29
- url?: string;
30
- /**
31
- * @member {Attachment} [card] The JSON for the Adaptive card to appear in
32
- * the task module.
33
- */
34
- card?: Attachment;
35
24
  /**
36
25
  * @member {string} [fallbackUrl] If a client does not support the task
37
26
  * module feature, this URL is opened in a browser tab.
@@ -43,5 +32,36 @@ type TaskModuleTaskInfo = {
43
32
  */
44
33
  completionBotId?: string;
45
34
  };
35
+ /**
36
+ *
37
+ * An interface representing CardTaskModuleTaskInfo.
38
+ *
39
+ */
40
+ type CardTaskModuleTaskInfo = BaseTaskModuleTaskInfo & {
41
+ /**
42
+ * @member {Attachment} [card] The JSON for the Adaptive card to appear in
43
+ * the task module.
44
+ */
45
+ card: Attachment;
46
+ };
47
+ /**
48
+ *
49
+ * An interface representing UrlTaskModuleTaskInfo.
50
+ *
51
+ */
52
+ type UrlTaskModuleTaskInfo = BaseTaskModuleTaskInfo & {
53
+ /**
54
+ * @member {string} [url] The URL of what is loaded as an iframe inside the
55
+ * task module.
56
+ */
57
+ url: string;
58
+ };
59
+ /**
60
+ *
61
+ * An interface representing TaskModuleTaskInfo.
62
+ * Metadata for a Task Module.
63
+ *
64
+ */
65
+ type TaskModuleTaskInfo = CardTaskModuleTaskInfo | UrlTaskModuleTaskInfo;
46
66
 
47
- export type { TaskModuleTaskInfo };
67
+ export type { BaseTaskModuleTaskInfo, CardTaskModuleTaskInfo, TaskModuleTaskInfo, UrlTaskModuleTaskInfo };
@@ -2,11 +2,10 @@ import { Attachment } from '../attachment/attachment.js';
2
2
 
3
3
  /**
4
4
  *
5
- * An interface representing TaskModuleTaskInfo.
6
- * Metadata for a Task Module.
5
+ * An interface representing BaseTaskModuleTaskInfo.
7
6
  *
8
7
  */
9
- type TaskModuleTaskInfo = {
8
+ type BaseTaskModuleTaskInfo = {
10
9
  /**
11
10
  * @member {string} [title] Appears below the app name and to the right of
12
11
  * the app icon.
@@ -22,16 +21,6 @@ type TaskModuleTaskInfo = {
22
21
  * width in pixels, or a string, one of: small, medium, large.
23
22
  */
24
23
  width?: number | 'small' | 'medium' | 'large';
25
- /**
26
- * @member {string} [url] The URL of what is loaded as an iframe inside the
27
- * task module. One of url or card is required.
28
- */
29
- url?: string;
30
- /**
31
- * @member {Attachment} [card] The JSON for the Adaptive card to appear in
32
- * the task module.
33
- */
34
- card?: Attachment;
35
24
  /**
36
25
  * @member {string} [fallbackUrl] If a client does not support the task
37
26
  * module feature, this URL is opened in a browser tab.
@@ -43,5 +32,36 @@ type TaskModuleTaskInfo = {
43
32
  */
44
33
  completionBotId?: string;
45
34
  };
35
+ /**
36
+ *
37
+ * An interface representing CardTaskModuleTaskInfo.
38
+ *
39
+ */
40
+ type CardTaskModuleTaskInfo = BaseTaskModuleTaskInfo & {
41
+ /**
42
+ * @member {Attachment} [card] The JSON for the Adaptive card to appear in
43
+ * the task module.
44
+ */
45
+ card: Attachment;
46
+ };
47
+ /**
48
+ *
49
+ * An interface representing UrlTaskModuleTaskInfo.
50
+ *
51
+ */
52
+ type UrlTaskModuleTaskInfo = BaseTaskModuleTaskInfo & {
53
+ /**
54
+ * @member {string} [url] The URL of what is loaded as an iframe inside the
55
+ * task module.
56
+ */
57
+ url: string;
58
+ };
59
+ /**
60
+ *
61
+ * An interface representing TaskModuleTaskInfo.
62
+ * Metadata for a Task Module.
63
+ *
64
+ */
65
+ type TaskModuleTaskInfo = CardTaskModuleTaskInfo | UrlTaskModuleTaskInfo;
46
66
 
47
- export type { TaskModuleTaskInfo };
67
+ export type { BaseTaskModuleTaskInfo, CardTaskModuleTaskInfo, TaskModuleTaskInfo, UrlTaskModuleTaskInfo };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@microsoft/teams.api",
3
- "version": "0.2.13",
3
+ "version": "0.2.14",
4
4
  "license": "MIT",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
@@ -32,8 +32,7 @@
32
32
  "lint": "npx eslint",
33
33
  "lint:fix": "npx eslint --fix",
34
34
  "build": "npx tsup",
35
- "test": "npx jest",
36
- "fmt": "npx prettier --write \"**/*.{js,ts,tsx,md,json}\""
35
+ "test": "npx jest"
37
36
  },
38
37
  "dependencies": {
39
38
  "jwt-decode": "^4.0.0",