@azure/communication-chat 1.6.0-beta.6 → 1.6.0

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.
Files changed (194) hide show
  1. package/dist/browser/chatClient.d.ts +1 -25
  2. package/dist/browser/chatClient.d.ts.map +1 -1
  3. package/dist/browser/chatClient.js +3 -8
  4. package/dist/browser/chatClient.js.map +1 -1
  5. package/dist/browser/chatThreadClient.d.ts +2 -31
  6. package/dist/browser/chatThreadClient.d.ts.map +1 -1
  7. package/dist/browser/chatThreadClient.js +5 -77
  8. package/dist/browser/chatThreadClient.js.map +1 -1
  9. package/dist/browser/generated/src/chatApiClient.js +2 -2
  10. package/dist/browser/generated/src/chatApiClient.js.map +1 -1
  11. package/dist/browser/generated/src/models/index.d.ts +23 -105
  12. package/dist/browser/generated/src/models/index.d.ts.map +1 -1
  13. package/dist/browser/generated/src/models/index.js +8 -8
  14. package/dist/browser/generated/src/models/index.js.map +1 -1
  15. package/dist/browser/generated/src/models/mappers.d.ts +1 -7
  16. package/dist/browser/generated/src/models/mappers.d.ts.map +1 -1
  17. package/dist/browser/generated/src/models/mappers.js +31 -199
  18. package/dist/browser/generated/src/models/mappers.js.map +1 -1
  19. package/dist/browser/generated/src/models/parameters.d.ts +0 -7
  20. package/dist/browser/generated/src/models/parameters.d.ts.map +1 -1
  21. package/dist/browser/generated/src/models/parameters.js +1 -73
  22. package/dist/browser/generated/src/models/parameters.js.map +1 -1
  23. package/dist/browser/generated/src/operations/chatThread.d.ts +1 -24
  24. package/dist/browser/generated/src/operations/chatThread.d.ts.map +1 -1
  25. package/dist/browser/generated/src/operations/chatThread.js +0 -98
  26. package/dist/browser/generated/src/operations/chatThread.js.map +1 -1
  27. package/dist/browser/generated/src/operationsInterfaces/chatThread.d.ts +1 -24
  28. package/dist/browser/generated/src/operationsInterfaces/chatThread.d.ts.map +1 -1
  29. package/dist/browser/generated/src/operationsInterfaces/chatThread.js.map +1 -1
  30. package/dist/browser/generated/src/tracing.js +1 -1
  31. package/dist/browser/generated/src/tracing.js.map +1 -1
  32. package/dist/browser/models/events.d.ts +3 -3
  33. package/dist/browser/models/events.d.ts.map +1 -1
  34. package/dist/browser/models/events.js.map +1 -1
  35. package/dist/browser/models/mappers.d.ts +3 -27
  36. package/dist/browser/models/mappers.d.ts.map +1 -1
  37. package/dist/browser/models/mappers.js +2 -61
  38. package/dist/browser/models/mappers.js.map +1 -1
  39. package/dist/browser/models/models.d.ts +13 -38
  40. package/dist/browser/models/models.d.ts.map +1 -1
  41. package/dist/browser/models/models.js.map +1 -1
  42. package/dist/browser/models/options.d.ts +1 -20
  43. package/dist/browser/models/options.d.ts.map +1 -1
  44. package/dist/browser/models/options.js.map +1 -1
  45. package/dist/commonjs/chatClient.d.ts +1 -25
  46. package/dist/commonjs/chatClient.d.ts.map +1 -1
  47. package/dist/commonjs/chatClient.js +3 -8
  48. package/dist/commonjs/chatClient.js.map +1 -1
  49. package/dist/commonjs/chatThreadClient.d.ts +2 -31
  50. package/dist/commonjs/chatThreadClient.d.ts.map +1 -1
  51. package/dist/commonjs/chatThreadClient.js +3 -75
  52. package/dist/commonjs/chatThreadClient.js.map +1 -1
  53. package/dist/commonjs/generated/src/chatApiClient.js +2 -2
  54. package/dist/commonjs/generated/src/chatApiClient.js.map +1 -1
  55. package/dist/commonjs/generated/src/models/index.d.ts +23 -105
  56. package/dist/commonjs/generated/src/models/index.d.ts.map +1 -1
  57. package/dist/commonjs/generated/src/models/index.js +9 -9
  58. package/dist/commonjs/generated/src/models/index.js.map +1 -1
  59. package/dist/commonjs/generated/src/models/mappers.d.ts +1 -7
  60. package/dist/commonjs/generated/src/models/mappers.d.ts.map +1 -1
  61. package/dist/commonjs/generated/src/models/mappers.js +32 -200
  62. package/dist/commonjs/generated/src/models/mappers.js.map +1 -1
  63. package/dist/commonjs/generated/src/models/parameters.d.ts +0 -7
  64. package/dist/commonjs/generated/src/models/parameters.d.ts.map +1 -1
  65. package/dist/commonjs/generated/src/models/parameters.js +2 -74
  66. package/dist/commonjs/generated/src/models/parameters.js.map +1 -1
  67. package/dist/commonjs/generated/src/operations/chatThread.d.ts +1 -24
  68. package/dist/commonjs/generated/src/operations/chatThread.d.ts.map +1 -1
  69. package/dist/commonjs/generated/src/operations/chatThread.js +0 -98
  70. package/dist/commonjs/generated/src/operations/chatThread.js.map +1 -1
  71. package/dist/commonjs/generated/src/operationsInterfaces/chatThread.d.ts +1 -24
  72. package/dist/commonjs/generated/src/operationsInterfaces/chatThread.d.ts.map +1 -1
  73. package/dist/commonjs/generated/src/operationsInterfaces/chatThread.js.map +1 -1
  74. package/dist/commonjs/generated/src/tracing.js +1 -1
  75. package/dist/commonjs/generated/src/tracing.js.map +1 -1
  76. package/dist/commonjs/models/events.d.ts +3 -3
  77. package/dist/commonjs/models/events.d.ts.map +1 -1
  78. package/dist/commonjs/models/events.js.map +1 -1
  79. package/dist/commonjs/models/mappers.d.ts +3 -27
  80. package/dist/commonjs/models/mappers.d.ts.map +1 -1
  81. package/dist/commonjs/models/mappers.js +3 -67
  82. package/dist/commonjs/models/mappers.js.map +1 -1
  83. package/dist/commonjs/models/models.d.ts +13 -38
  84. package/dist/commonjs/models/models.d.ts.map +1 -1
  85. package/dist/commonjs/models/models.js.map +1 -1
  86. package/dist/commonjs/models/options.d.ts +1 -20
  87. package/dist/commonjs/models/options.d.ts.map +1 -1
  88. package/dist/commonjs/models/options.js.map +1 -1
  89. package/dist/commonjs/tsdoc-metadata.json +1 -1
  90. package/dist/esm/chatClient.d.ts +1 -25
  91. package/dist/esm/chatClient.d.ts.map +1 -1
  92. package/dist/esm/chatClient.js +3 -8
  93. package/dist/esm/chatClient.js.map +1 -1
  94. package/dist/esm/chatThreadClient.d.ts +2 -31
  95. package/dist/esm/chatThreadClient.d.ts.map +1 -1
  96. package/dist/esm/chatThreadClient.js +5 -77
  97. package/dist/esm/chatThreadClient.js.map +1 -1
  98. package/dist/esm/generated/src/chatApiClient.js +2 -2
  99. package/dist/esm/generated/src/chatApiClient.js.map +1 -1
  100. package/dist/esm/generated/src/models/index.d.ts +23 -105
  101. package/dist/esm/generated/src/models/index.d.ts.map +1 -1
  102. package/dist/esm/generated/src/models/index.js +8 -8
  103. package/dist/esm/generated/src/models/index.js.map +1 -1
  104. package/dist/esm/generated/src/models/mappers.d.ts +1 -7
  105. package/dist/esm/generated/src/models/mappers.d.ts.map +1 -1
  106. package/dist/esm/generated/src/models/mappers.js +31 -199
  107. package/dist/esm/generated/src/models/mappers.js.map +1 -1
  108. package/dist/esm/generated/src/models/parameters.d.ts +0 -7
  109. package/dist/esm/generated/src/models/parameters.d.ts.map +1 -1
  110. package/dist/esm/generated/src/models/parameters.js +1 -73
  111. package/dist/esm/generated/src/models/parameters.js.map +1 -1
  112. package/dist/esm/generated/src/operations/chatThread.d.ts +1 -24
  113. package/dist/esm/generated/src/operations/chatThread.d.ts.map +1 -1
  114. package/dist/esm/generated/src/operations/chatThread.js +0 -98
  115. package/dist/esm/generated/src/operations/chatThread.js.map +1 -1
  116. package/dist/esm/generated/src/operationsInterfaces/chatThread.d.ts +1 -24
  117. package/dist/esm/generated/src/operationsInterfaces/chatThread.d.ts.map +1 -1
  118. package/dist/esm/generated/src/operationsInterfaces/chatThread.js.map +1 -1
  119. package/dist/esm/generated/src/tracing.js +1 -1
  120. package/dist/esm/generated/src/tracing.js.map +1 -1
  121. package/dist/esm/models/events.d.ts +3 -3
  122. package/dist/esm/models/events.d.ts.map +1 -1
  123. package/dist/esm/models/events.js.map +1 -1
  124. package/dist/esm/models/mappers.d.ts +3 -27
  125. package/dist/esm/models/mappers.d.ts.map +1 -1
  126. package/dist/esm/models/mappers.js +2 -61
  127. package/dist/esm/models/mappers.js.map +1 -1
  128. package/dist/esm/models/models.d.ts +13 -38
  129. package/dist/esm/models/models.d.ts.map +1 -1
  130. package/dist/esm/models/models.js.map +1 -1
  131. package/dist/esm/models/options.d.ts +1 -20
  132. package/dist/esm/models/options.d.ts.map +1 -1
  133. package/dist/esm/models/options.js.map +1 -1
  134. package/dist/react-native/chatClient.d.ts +1 -25
  135. package/dist/react-native/chatClient.d.ts.map +1 -1
  136. package/dist/react-native/chatClient.js +3 -8
  137. package/dist/react-native/chatClient.js.map +1 -1
  138. package/dist/react-native/chatThreadClient.d.ts +2 -31
  139. package/dist/react-native/chatThreadClient.d.ts.map +1 -1
  140. package/dist/react-native/chatThreadClient.js +5 -77
  141. package/dist/react-native/chatThreadClient.js.map +1 -1
  142. package/dist/react-native/generated/src/chatApiClient.js +2 -2
  143. package/dist/react-native/generated/src/chatApiClient.js.map +1 -1
  144. package/dist/react-native/generated/src/models/index.d.ts +23 -105
  145. package/dist/react-native/generated/src/models/index.d.ts.map +1 -1
  146. package/dist/react-native/generated/src/models/index.js +8 -8
  147. package/dist/react-native/generated/src/models/index.js.map +1 -1
  148. package/dist/react-native/generated/src/models/mappers.d.ts +1 -7
  149. package/dist/react-native/generated/src/models/mappers.d.ts.map +1 -1
  150. package/dist/react-native/generated/src/models/mappers.js +31 -199
  151. package/dist/react-native/generated/src/models/mappers.js.map +1 -1
  152. package/dist/react-native/generated/src/models/parameters.d.ts +0 -7
  153. package/dist/react-native/generated/src/models/parameters.d.ts.map +1 -1
  154. package/dist/react-native/generated/src/models/parameters.js +1 -73
  155. package/dist/react-native/generated/src/models/parameters.js.map +1 -1
  156. package/dist/react-native/generated/src/operations/chatThread.d.ts +1 -24
  157. package/dist/react-native/generated/src/operations/chatThread.d.ts.map +1 -1
  158. package/dist/react-native/generated/src/operations/chatThread.js +0 -98
  159. package/dist/react-native/generated/src/operations/chatThread.js.map +1 -1
  160. package/dist/react-native/generated/src/operationsInterfaces/chatThread.d.ts +1 -24
  161. package/dist/react-native/generated/src/operationsInterfaces/chatThread.d.ts.map +1 -1
  162. package/dist/react-native/generated/src/operationsInterfaces/chatThread.js.map +1 -1
  163. package/dist/react-native/generated/src/tracing.js +1 -1
  164. package/dist/react-native/generated/src/tracing.js.map +1 -1
  165. package/dist/react-native/models/events.d.ts +3 -3
  166. package/dist/react-native/models/events.d.ts.map +1 -1
  167. package/dist/react-native/models/events.js.map +1 -1
  168. package/dist/react-native/models/mappers.d.ts +3 -27
  169. package/dist/react-native/models/mappers.d.ts.map +1 -1
  170. package/dist/react-native/models/mappers.js +2 -61
  171. package/dist/react-native/models/mappers.js.map +1 -1
  172. package/dist/react-native/models/models.d.ts +13 -38
  173. package/dist/react-native/models/models.d.ts.map +1 -1
  174. package/dist/react-native/models/models.js.map +1 -1
  175. package/dist/react-native/models/options.d.ts +1 -20
  176. package/dist/react-native/models/options.d.ts.map +1 -1
  177. package/dist/react-native/models/options.js.map +1 -1
  178. package/package.json +7 -7
  179. package/dist/browser/xhrHttpClient.d.ts +0 -17
  180. package/dist/browser/xhrHttpClient.d.ts.map +0 -1
  181. package/dist/browser/xhrHttpClient.js +0 -186
  182. package/dist/browser/xhrHttpClient.js.map +0 -1
  183. package/dist/commonjs/xhrHttpClient.d.ts +0 -17
  184. package/dist/commonjs/xhrHttpClient.d.ts.map +0 -1
  185. package/dist/commonjs/xhrHttpClient.js +0 -191
  186. package/dist/commonjs/xhrHttpClient.js.map +0 -1
  187. package/dist/esm/xhrHttpClient.d.ts +0 -17
  188. package/dist/esm/xhrHttpClient.d.ts.map +0 -1
  189. package/dist/esm/xhrHttpClient.js +0 -186
  190. package/dist/esm/xhrHttpClient.js.map +0 -1
  191. package/dist/react-native/xhrHttpClient.d.ts +0 -17
  192. package/dist/react-native/xhrHttpClient.d.ts.map +0 -1
  193. package/dist/react-native/xhrHttpClient.js +0 -186
  194. package/dist/react-native/xhrHttpClient.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import type { ChatClientOptions, CreateChatThreadOptions, DeleteChatThreadOptions, ListChatThreadsOptions } from "./models/options.js";
2
- import type { ChatMessageDeletedEvent, ChatMessageEditedEvent, ChatMessageReceivedEvent, ChatThreadCreatedEvent, ChatThreadDeletedEvent, ChatThreadPropertiesUpdatedEvent, ParticipantsAddedEvent, ParticipantsRemovedEvent, ReadReceiptReceivedEvent, StreamingChatMessageChunkReceivedEvent, StreamingChatMessageStartEvent, TypingIndicatorReceivedEvent } from "./models/events.js";
2
+ import type { ChatMessageDeletedEvent, ChatMessageEditedEvent, ChatMessageReceivedEvent, ChatThreadCreatedEvent, ChatThreadDeletedEvent, ChatThreadPropertiesUpdatedEvent, ParticipantsAddedEvent, ParticipantsRemovedEvent, ReadReceiptReceivedEvent, TypingIndicatorReceivedEvent } from "./models/events.js";
3
3
  import type { ChatThreadItem, CreateChatThreadResult } from "./models/models.js";
4
4
  import { ChatThreadClient } from "./chatThreadClient.js";
5
5
  import type { CommunicationTokenCredential } from "@azure/communication-common";
@@ -124,18 +124,6 @@ export declare class ChatClient {
124
124
  * @param listener - The listener to handle the event.
125
125
  */
126
126
  on(event: "participantsRemoved", listener: (e: ParticipantsRemovedEvent) => void): void;
127
- /**
128
- * Subscribe function for streamingChatMessageStarted
129
- * @param event - The StreamingChatMessageStartEvent
130
- * @param listener - The listener to handle the event
131
- */
132
- on(event: "streamingChatMessageStarted", listener: (e: StreamingChatMessageStartEvent) => void): void;
133
- /**
134
- * Subscribe function for streamingChatMessageChunkReceived
135
- * @param event - The StreamingChatMessageChunkReceivedEvent
136
- * @param listener - The listener to handle the event
137
- */
138
- on(event: "streamingChatMessageChunkReceived", listener: (e: StreamingChatMessageChunkReceivedEvent) => void): void;
139
127
  /**
140
128
  * Subscribe function for realTimeNotificationConnected.
141
129
  * @param event - The realTimeNotificationConnected Event
@@ -208,18 +196,6 @@ export declare class ChatClient {
208
196
  * @param listener - The listener to handle the event.
209
197
  */
210
198
  off(event: "participantsRemoved", listener: (e: ParticipantsRemovedEvent) => void): void;
211
- /**
212
- * Unsubscribe function for streamingChatMessageStarted
213
- * @param event - The StreamingChatMessageStartEvent
214
- * @param listener - The listener to handle the event
215
- */
216
- off(event: "streamingChatMessageStarted", listener: (e: StreamingChatMessageStartEvent) => void): void;
217
- /**
218
- * Unsubscribe function for streamingChatMessageChunkReceived
219
- * @param event - The StreamingChatMessageChunkReceivedEvent
220
- * @param listener - The listener to handle the event
221
- */
222
- off(event: "streamingChatMessageChunkReceived", listener: (e: StreamingChatMessageChunkReceivedEvent) => void): void;
223
199
  private subscribeToSignalingEvents;
224
200
  }
225
201
  //# sourceMappingURL=chatClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chatClient.d.ts","sourceRoot":"","sources":["../../src/chatClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chatClient.d.ts","sourceRoot":"","sources":["../../src/chatClient.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT License.
3
3
  import { __asyncDelegator, __asyncGenerator, __asyncValues, __await } from "tslib";
4
+ import { ConnectionState } from "@azure/communication-signaling";
4
5
  import { mapToChatParticipantRestModel, mapToCreateChatThreadOptionsRestModel, mapToCreateChatThreadResultSdkModel, } from "./models/mappers.js";
5
6
  import { ChatApiClient } from "./generated/src/index.js";
6
7
  import { ChatThreadClient } from "./chatThreadClient.js";
@@ -198,10 +199,10 @@ export class ChatClient {
198
199
  throw new Error("Realtime notifications are only supported in the browser.");
199
200
  }
200
201
  this.signalingClient.on("connectionChanged", (payload) => {
201
- if (payload === 2 /* ConnectionState.Connected */) {
202
+ if (payload === ConnectionState.Connected) {
202
203
  this.emitter.emit("realTimeNotificationConnected");
203
204
  }
204
- else if (payload === 3 /* ConnectionState.Disconnected */) {
205
+ else if (payload === ConnectionState.Disconnected) {
205
206
  this.emitter.emit("realTimeNotificationDisconnected");
206
207
  }
207
208
  });
@@ -235,12 +236,6 @@ export class ChatClient {
235
236
  this.signalingClient.on("participantsRemoved", (payload) => {
236
237
  this.emitter.emit("participantsRemoved", payload);
237
238
  });
238
- this.signalingClient.on("streamingChatMessageStarted", (payload) => {
239
- this.emitter.emit("streamingChatMessageStarted", payload);
240
- });
241
- this.signalingClient.on("streamingChatMessageChunkReceived", (payload) => {
242
- this.emitter.emit("streamingChatMessageChunkReceived", payload);
243
- });
244
239
  }
245
240
  }
246
241
  //# sourceMappingURL=chatClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chatClient.js","sourceRoot":"","sources":["../../src/chatClient.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n ChatClientOptions,\n CreateChatThreadOptions,\n DeleteChatThreadOptions,\n ListChatThreadsOptions,\n} from \"./models/options.js\";\nimport type {\n ChatEventId,\n ChatMessageDeletedEvent,\n ChatMessageEditedEvent,\n ChatMessageReceivedEvent,\n ChatThreadCreatedEvent,\n ChatThreadDeletedEvent,\n ChatThreadPropertiesUpdatedEvent,\n ParticipantsAddedEvent,\n ParticipantsRemovedEvent,\n ReadReceiptReceivedEvent,\n StreamingChatMessageChunkReceivedEvent,\n StreamingChatMessageStartEvent,\n TypingIndicatorReceivedEvent,\n} from \"./models/events.js\";\nimport type { ChatThreadItem, CreateChatThreadResult, ListPageSettings } from \"./models/models.js\";\nimport type { SignalingClient, SignalingClientOptions } from \"@azure/communication-signaling\";\nimport { ConnectionState } from \"@azure/communication-signaling\";\nimport {\n mapToChatParticipantRestModel,\n mapToCreateChatThreadOptionsRestModel,\n mapToCreateChatThreadResultSdkModel,\n} from \"./models/mappers.js\";\nimport { ChatApiClient } from \"./generated/src/index.js\";\nimport { ChatThreadClient } from \"./chatThreadClient.js\";\nimport type { CommunicationTokenCredential } from \"@azure/communication-common\";\nimport type { CreateChatThreadRequest } from \"./models/requests.js\";\nimport { EventEmitter } from \"events\";\nimport type { InternalPipelineOptions } from \"@azure/core-rest-pipeline\";\nimport type { PagedAsyncIterableIterator } from \"@azure/core-paging\";\nimport { createCommunicationTokenCredentialPolicy } from \"./credential/communicationTokenCredentialPolicy.js\";\nimport { generateUuid } from \"./models/uuid.js\";\nimport { getSignalingClient } from \"./signaling/signalingClient.js\";\nimport { logger } from \"./models/logger.js\";\nimport { tracingClient } from \"./generated/src/tracing.js\";\n\ndeclare interface InternalChatClientOptions extends ChatClientOptions {\n signalingClientOptions?: SignalingClientOptions;\n}\n\n/**\n * The client to do chat operations\n */\nexport class ChatClient {\n private readonly tokenCredential: CommunicationTokenCredential;\n private readonly clientOptions: InternalChatClientOptions;\n private readonly client: ChatApiClient;\n private readonly signalingClient: SignalingClient | undefined = undefined;\n private readonly emitter = new EventEmitter();\n private isRealtimeNotificationsStarted: boolean = false;\n\n /**\n * Creates an instance of the ChatClient for a given resource and user.\n *\n * @param endpoint - The url of the Communication Services resource.\n * @param credential - The token credential. Use AzureCommunicationTokenCredential from \\@azure/communication-common to create a credential.\n * @param options - Additional client options.\n */\n constructor(\n private readonly endpoint: string,\n credential: CommunicationTokenCredential,\n options: ChatClientOptions = {},\n ) {\n this.tokenCredential = credential;\n\n const internalPipelineOptions: InternalPipelineOptions = {\n ...options,\n ...{\n loggingOptions: {\n logger: logger.info,\n },\n },\n };\n\n this.client = new ChatApiClient(this.endpoint, {\n endpoint: this.endpoint,\n ...internalPipelineOptions,\n });\n\n const authPolicy = createCommunicationTokenCredentialPolicy(this.tokenCredential);\n this.client.pipeline.addPolicy(authPolicy);\n\n this.clientOptions = { ...options };\n this.clientOptions.signalingClientOptions = {\n ...this.clientOptions.signalingClientOptions,\n resourceEndpoint: this.endpoint,\n gatewayApiVersion: this.client.apiVersion,\n };\n\n this.signalingClient = getSignalingClient(\n credential,\n logger,\n this.clientOptions.signalingClientOptions,\n );\n }\n\n /**\n * Returns ChatThreadClient with the specific thread id.\n * @param threadId - Thread ID for the ChatThreadClient\n */\n public getChatThreadClient(threadId: string): ChatThreadClient {\n return new ChatThreadClient(this.endpoint, threadId, this.tokenCredential, this.clientOptions);\n }\n\n /**\n * Creates a chat thread.\n * Returns thread client with the id of the created thread.\n * @param request - Request for creating a chat thread.\n * @param options - Operation options.\n */\n public async createChatThread(\n request: CreateChatThreadRequest,\n options: CreateChatThreadOptions = {},\n ): Promise<CreateChatThreadResult> {\n return tracingClient.withSpan(\n \"ChatClient-CreateChatThread\",\n options,\n async (updatedOptions) => {\n // We generate an UUID if the user does not provide an idempotencyToken value\n updatedOptions.idempotencyToken = updatedOptions.idempotencyToken ?? generateUuid();\n const updatedRestModelOptions = mapToCreateChatThreadOptionsRestModel(updatedOptions);\n\n const result = await this.client.chat.createChatThread(\n {\n topic: request.topic,\n participants: options.participants?.map((participant) =>\n mapToChatParticipantRestModel(participant),\n ),\n metadata: options.metadata,\n retentionPolicy: options.retentionPolicy,\n },\n updatedRestModelOptions,\n );\n return mapToCreateChatThreadResultSdkModel(result);\n },\n );\n }\n\n private async *listChatThreadsPage(\n continuationState: ListPageSettings,\n options: ListChatThreadsOptions = {},\n ): AsyncIterableIterator<ChatThreadItem[]> {\n if (!continuationState.continuationToken) {\n const currentSetResponse = await this.client.chat.listChatThreads(options);\n continuationState.continuationToken = currentSetResponse.nextLink;\n if (currentSetResponse.value) {\n yield currentSetResponse.value;\n }\n }\n\n while (continuationState.continuationToken) {\n const currentSetResponse = await this.client.chat.listChatThreadsNext(\n continuationState.continuationToken,\n options,\n );\n continuationState.continuationToken = currentSetResponse.nextLink;\n if (currentSetResponse.value) {\n yield currentSetResponse.value;\n } else {\n break;\n }\n }\n }\n\n private async *listChatThreadsAll(\n options: ListChatThreadsOptions,\n ): AsyncIterableIterator<ChatThreadItem> {\n for await (const page of this.listChatThreadsPage({}, options)) {\n yield* page;\n }\n }\n\n /**\n * Gets the list of chat threads of a user.\n * @param options - List chat threads options.\n */\n public listChatThreads(\n options: ListChatThreadsOptions = {},\n ): PagedAsyncIterableIterator<ChatThreadItem> {\n const { span, updatedOptions } = tracingClient.startSpan(\"ChatClient-ListChatThreads\", options);\n try {\n const iter = this.listChatThreadsAll(updatedOptions);\n return {\n next() {\n return iter.next();\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n byPage: (settings: ListPageSettings = {}) => {\n return this.listChatThreadsPage(settings, updatedOptions);\n },\n };\n } catch (e: any) {\n span.setStatus({\n error: e,\n status: \"error\",\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Deletes a chat thread.\n * @param threadId - The ID of the thread to delete.\n * @param options - Operation options.\n */\n public async deleteChatThread(\n threadId: string,\n options: DeleteChatThreadOptions = {},\n ): Promise<void> {\n return tracingClient.withSpan(\n \"ChatClient-DeleteChatThread\",\n options,\n async (updatedOptions) => {\n await this.client.chat.deleteChatThread(threadId, updatedOptions);\n },\n );\n }\n\n /**\n * Start receiving realtime notifications.\n * Call this function before subscribing to any event.\n */\n public async startRealtimeNotifications(): Promise<void> {\n if (this.signalingClient === undefined) {\n throw new Error(\"Realtime notifications are not supported in node js.\");\n }\n\n if (this.isRealtimeNotificationsStarted) {\n return;\n }\n\n this.isRealtimeNotificationsStarted = true;\n await this.signalingClient.start();\n this.subscribeToSignalingEvents();\n }\n\n /**\n * Stop receiving realtime notifications.\n * This function would unsubscribe to all events.\n */\n public async stopRealtimeNotifications(): Promise<void> {\n if (this.signalingClient === undefined) {\n throw new Error(\"Realtime notifications are not supported in node js.\");\n }\n\n this.isRealtimeNotificationsStarted = false;\n await this.signalingClient.stop();\n this.emitter.removeAllListeners();\n }\n\n /**\n * Subscribe function for chatMessageReceived.\n * The initial sender will also receive this event.\n * You need to call startRealtimeNotifications before subscribing to any event.\n * @param event - The ChatMessageReceivedEvent.\n * @param listener - The listener to handle the event.\n */\n public on(event: \"chatMessageReceived\", listener: (e: ChatMessageReceivedEvent) => void): void;\n\n /**\n * Subscribe function for chatMessageEdited.\n * The initial sender will also receive this event.\n * @param event - The ChatMessageEditedEvent.\n * @param listener - The listener to handle the event.\n */\n public on(event: \"chatMessageEdited\", listener: (e: ChatMessageEditedEvent) => void): void;\n\n /**\n * Subscribe function for chatMessageDeleted.\n * The initial sender will also receive this event.\n * @param event - The ChatMessageDeletedEvent.\n * @param listener - The listener to handle the event.\n */\n public on(event: \"chatMessageDeleted\", listener: (e: ChatMessageDeletedEvent) => void): void;\n\n /**\n * Subscribe function for typingIndicatorReceived.\n * The initial sender will also receive this event.\n * @param event - The TypingIndicatorReceivedEvent.\n * @param listener - The listener to handle the event.\n */\n public on(\n event: \"typingIndicatorReceived\",\n listener: (e: TypingIndicatorReceivedEvent) => void,\n ): void;\n\n /**\n * Subscribe function for readReceiptReceived.\n * @param event - The ReadReceiptReceivedEvent.\n * @param listener - The listener to handle the event.\n */\n public on(event: \"readReceiptReceived\", listener: (e: ReadReceiptReceivedEvent) => void): void;\n\n /**\n * Subscribe function for chatThreadCreated.\n * @param event - The ChatThreadCreatedEvent.\n * @param listener - The listener to handle the event.\n */\n public on(event: \"chatThreadCreated\", listener: (e: ChatThreadCreatedEvent) => void): void;\n\n /**\n * Subscribe function for chatThreadDeleted.\n * @param event - The ChatThreadDeletedEvent.\n * @param listener - The listener to handle the event.\n */\n public on(event: \"chatThreadDeleted\", listener: (e: ChatThreadDeletedEvent) => void): void;\n\n /**\n * Subscribe function for chatThreadPropertiesUpdated.\n * @param event - The ChatThreadPropertiesUpdatedEvent.\n * @param listener - The listener to handle the event.\n */\n public on(\n event: \"chatThreadPropertiesUpdated\",\n listener: (e: ChatThreadPropertiesUpdatedEvent) => void,\n ): void;\n\n /**\n * Subscribe function for participantsAdded.\n * @param event - The ParticipantsAddedEvent.\n * @param listener - The listener to handle the event.\n */\n public on(event: \"participantsAdded\", listener: (e: ParticipantsAddedEvent) => void): void;\n\n /**\n * Subscribe function for participantsRemoved.\n * @param event - The ParticipantsRemovedEvent.\n * @param listener - The listener to handle the event.\n */\n public on(event: \"participantsRemoved\", listener: (e: ParticipantsRemovedEvent) => void): void;\n\n /**\n * Subscribe function for streamingChatMessageStarted\n * @param event - The StreamingChatMessageStartEvent\n * @param listener - The listener to handle the event\n */\n public on(\n event: \"streamingChatMessageStarted\",\n listener: (e: StreamingChatMessageStartEvent) => void,\n ): void;\n\n /**\n * Subscribe function for streamingChatMessageChunkReceived\n * @param event - The StreamingChatMessageChunkReceivedEvent\n * @param listener - The listener to handle the event\n */\n public on(\n event: \"streamingChatMessageChunkReceived\",\n listener: (e: StreamingChatMessageChunkReceivedEvent) => void,\n ): void;\n\n /**\n * Subscribe function for realTimeNotificationConnected.\n * @param event - The realTimeNotificationConnected Event\n * @param listener - The listener to handle the event.\n */\n public on(event: \"realTimeNotificationConnected\", listener: () => void): void;\n\n /**\n * Subscribe function for realTimeNotificationDisconnected.\n * @param event - The realTimeNotificationDisconnected Event\n * @param listener - The listener to handle the event.\n */\n public on(event: \"realTimeNotificationDisconnected\", listener: () => void): void;\n\n public on(event: ChatEventId, listener: (e?: any) => void): void {\n if (this.signalingClient === undefined) {\n throw new Error(\"Realtime notifications are only supported in the browser.\");\n }\n if (\n !this.isRealtimeNotificationsStarted &&\n event !== \"realTimeNotificationConnected\" &&\n event !== \"realTimeNotificationDisconnected\"\n ) {\n throw new Error(\n \"You must call startRealtimeNotifications before you can subscribe to events.\",\n );\n }\n\n this.emitter.on(event, listener);\n }\n\n /**\n * Unsubscribe from chatMessageReceived.\n * @param event - The ChatMessageReceivedEvent.\n * @param listener - The listener to handle the event.\n */\n public off(event: \"chatMessageReceived\", listener: (e: ChatMessageReceivedEvent) => void): void;\n\n /**\n * Unsubscribe from chatMessageEdited.\n * @param event - The ChatMessageEditedEvent.\n * @param listener - The listener to handle the event.\n */\n public off(event: \"chatMessageEdited\", listener: (e: ChatMessageEditedEvent) => void): void;\n\n /**\n * Unsubscribe from chatMessageDeleted.\n * @param event - The ChatMessageDeletedEvent.\n * @param listener - The listener to handle the event.\n */\n public off(event: \"chatMessageDeleted\", listener: (e: ChatMessageDeletedEvent) => void): void;\n\n /**\n * Unsubscribe from typingIndicatorReceived.\n * @param event - The TypingIndicatorReceivedEvent.\n * @param listener - The listener to handle the event.\n */\n public off(\n event: \"typingIndicatorReceived\",\n listener: (e: TypingIndicatorReceivedEvent) => void,\n ): void;\n\n /**\n * Unsubscribe from readReceiptReceived.\n * @param event - The ReadReceiptReceivedEvent.\n * @param listener - The listener to handle the event.\n */\n public off(event: \"readReceiptReceived\", listener: (e: ReadReceiptReceivedEvent) => void): void;\n\n /**\n * Unsubscribe from chatThreadCreated.\n * @param event - The ChatThreadCreatedEvent.\n * @param listener - The listener to handle the event.\n */\n public off(event: \"chatThreadCreated\", listener: (e: ChatThreadCreatedEvent) => void): void;\n\n /**\n * Unsubscribe from chatThreadDeleted.\n * @param event - The ChatThreadDeletedEvent.\n * @param listener - The listener to handle the event.\n */\n public off(event: \"chatThreadDeleted\", listener: (e: ChatThreadDeletedEvent) => void): void;\n\n /**\n * Unsubscribe from chatThreadPropertiesUpdated.\n * @param event - The ChatThreadPropertiesUpdatedEvent.\n * @param listener - The listener to handle the event.\n */\n public off(\n event: \"chatThreadPropertiesUpdated\",\n listener: (e: ChatThreadPropertiesUpdatedEvent) => void,\n ): void;\n\n /**\n * Unsubscribe from participantsAdded.\n * @param event - The ParticipantsAddedEvent.\n * @param listener - The listener to handle the event.\n */\n public off(event: \"participantsAdded\", listener: (e: ParticipantsAddedEvent) => void): void;\n\n /**\n * Unsubscribe from participantsRemoved.\n * @param event - The ParticipantsRemovedEvent.\n * @param listener - The listener to handle the event.\n */\n public off(event: \"participantsRemoved\", listener: (e: ParticipantsRemovedEvent) => void): void;\n\n /**\n * Unsubscribe function for streamingChatMessageStarted\n * @param event - The StreamingChatMessageStartEvent\n * @param listener - The listener to handle the event\n */\n public off(\n event: \"streamingChatMessageStarted\",\n listener: (e: StreamingChatMessageStartEvent) => void,\n ): void;\n\n /**\n * Unsubscribe function for streamingChatMessageChunkReceived\n * @param event - The StreamingChatMessageChunkReceivedEvent\n * @param listener - The listener to handle the event\n */\n public off(\n event: \"streamingChatMessageChunkReceived\",\n listener: (e: StreamingChatMessageChunkReceivedEvent) => void,\n ): void;\n\n public off(event: ChatEventId, listener: (e: any) => void): void {\n if (this.signalingClient === undefined) {\n throw new Error(\"Realtime notifications are only supported in the browser.\");\n }\n\n this.emitter.removeListener(event, listener);\n }\n\n private subscribeToSignalingEvents(): void {\n if (this.signalingClient === undefined) {\n throw new Error(\"Realtime notifications are only supported in the browser.\");\n }\n\n this.signalingClient.on(\"connectionChanged\", (payload) => {\n if (payload === ConnectionState.Connected) {\n this.emitter.emit(\"realTimeNotificationConnected\");\n } else if (payload === ConnectionState.Disconnected) {\n this.emitter.emit(\"realTimeNotificationDisconnected\");\n }\n });\n\n this.signalingClient.on(\"chatMessageReceived\", (payload) => {\n this.emitter.emit(\"chatMessageReceived\", payload);\n });\n\n this.signalingClient.on(\"chatMessageEdited\", (payload) => {\n this.emitter.emit(\"chatMessageEdited\", payload);\n });\n\n this.signalingClient.on(\"chatMessageDeleted\", (payload) => {\n this.emitter.emit(\"chatMessageDeleted\", payload);\n });\n\n this.signalingClient.on(\"typingIndicatorReceived\", (payload) => {\n this.emitter.emit(\"typingIndicatorReceived\", payload);\n });\n\n this.signalingClient.on(\"readReceiptReceived\", (payload) => {\n this.emitter.emit(\"readReceiptReceived\", payload);\n });\n\n this.signalingClient.on(\"chatThreadCreated\", (payload) => {\n this.emitter.emit(\"chatThreadCreated\", payload);\n });\n\n this.signalingClient.on(\"chatThreadDeleted\", (payload) => {\n this.emitter.emit(\"chatThreadDeleted\", payload);\n });\n\n this.signalingClient.on(\"chatThreadPropertiesUpdated\", (payload) => {\n this.emitter.emit(\"chatThreadPropertiesUpdated\", payload);\n });\n\n this.signalingClient.on(\"participantsAdded\", (payload) => {\n this.emitter.emit(\"participantsAdded\", payload);\n });\n\n this.signalingClient.on(\"participantsRemoved\", (payload) => {\n this.emitter.emit(\"participantsRemoved\", payload);\n });\n\n this.signalingClient.on(\"streamingChatMessageStarted\", (payload) => {\n this.emitter.emit(\"streamingChatMessageStarted\", payload);\n });\n\n this.signalingClient.on(\"streamingChatMessageChunkReceived\", (payload) => {\n this.emitter.emit(\"streamingChatMessageChunkReceived\", payload);\n });\n }\n}\n"]}
1
+ {"version":3,"file":"chatClient.js","sourceRoot":"","sources":["../../src/chatClient.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport type {\n ChatClientOptions,\n CreateChatThreadOptions,\n DeleteChatThreadOptions,\n ListChatThreadsOptions,\n} from \"./models/options.js\";\nimport type {\n ChatEventId,\n ChatMessageDeletedEvent,\n ChatMessageEditedEvent,\n ChatMessageReceivedEvent,\n ChatThreadCreatedEvent,\n ChatThreadDeletedEvent,\n ChatThreadPropertiesUpdatedEvent,\n ParticipantsAddedEvent,\n ParticipantsRemovedEvent,\n ReadReceiptReceivedEvent,\n TypingIndicatorReceivedEvent,\n} from \"./models/events.js\";\nimport type { ChatThreadItem, CreateChatThreadResult, ListPageSettings } from \"./models/models.js\";\nimport type { SignalingClient, SignalingClientOptions } from \"@azure/communication-signaling\";\nimport { ConnectionState } from \"@azure/communication-signaling\";\nimport {\n mapToChatParticipantRestModel,\n mapToCreateChatThreadOptionsRestModel,\n mapToCreateChatThreadResultSdkModel,\n} from \"./models/mappers.js\";\nimport { ChatApiClient } from \"./generated/src/index.js\";\nimport { ChatThreadClient } from \"./chatThreadClient.js\";\nimport type { CommunicationTokenCredential } from \"@azure/communication-common\";\nimport type { CreateChatThreadRequest } from \"./models/requests.js\";\nimport { EventEmitter } from \"events\";\nimport type { InternalPipelineOptions } from \"@azure/core-rest-pipeline\";\nimport type { PagedAsyncIterableIterator } from \"@azure/core-paging\";\nimport { createCommunicationTokenCredentialPolicy } from \"./credential/communicationTokenCredentialPolicy.js\";\nimport { generateUuid } from \"./models/uuid.js\";\nimport { getSignalingClient } from \"./signaling/signalingClient.js\";\nimport { logger } from \"./models/logger.js\";\nimport { tracingClient } from \"./generated/src/tracing.js\";\n\ndeclare interface InternalChatClientOptions extends ChatClientOptions {\n signalingClientOptions?: SignalingClientOptions;\n}\n\n/**\n * The client to do chat operations\n */\nexport class ChatClient {\n private readonly tokenCredential: CommunicationTokenCredential;\n private readonly clientOptions: InternalChatClientOptions;\n private readonly client: ChatApiClient;\n private readonly signalingClient: SignalingClient | undefined = undefined;\n private readonly emitter = new EventEmitter();\n private isRealtimeNotificationsStarted: boolean = false;\n\n /**\n * Creates an instance of the ChatClient for a given resource and user.\n *\n * @param endpoint - The url of the Communication Services resource.\n * @param credential - The token credential. Use AzureCommunicationTokenCredential from \\@azure/communication-common to create a credential.\n * @param options - Additional client options.\n */\n constructor(\n private readonly endpoint: string,\n credential: CommunicationTokenCredential,\n options: ChatClientOptions = {},\n ) {\n this.tokenCredential = credential;\n\n const internalPipelineOptions: InternalPipelineOptions = {\n ...options,\n ...{\n loggingOptions: {\n logger: logger.info,\n },\n },\n };\n\n this.client = new ChatApiClient(this.endpoint, {\n endpoint: this.endpoint,\n ...internalPipelineOptions,\n });\n\n const authPolicy = createCommunicationTokenCredentialPolicy(this.tokenCredential);\n this.client.pipeline.addPolicy(authPolicy);\n\n this.clientOptions = { ...options };\n this.clientOptions.signalingClientOptions = {\n ...this.clientOptions.signalingClientOptions,\n resourceEndpoint: this.endpoint,\n gatewayApiVersion: this.client.apiVersion,\n };\n\n this.signalingClient = getSignalingClient(\n credential,\n logger,\n this.clientOptions.signalingClientOptions,\n );\n }\n\n /**\n * Returns ChatThreadClient with the specific thread id.\n * @param threadId - Thread ID for the ChatThreadClient\n */\n public getChatThreadClient(threadId: string): ChatThreadClient {\n return new ChatThreadClient(this.endpoint, threadId, this.tokenCredential, this.clientOptions);\n }\n\n /**\n * Creates a chat thread.\n * Returns thread client with the id of the created thread.\n * @param request - Request for creating a chat thread.\n * @param options - Operation options.\n */\n public async createChatThread(\n request: CreateChatThreadRequest,\n options: CreateChatThreadOptions = {},\n ): Promise<CreateChatThreadResult> {\n return tracingClient.withSpan(\n \"ChatClient-CreateChatThread\",\n options,\n async (updatedOptions) => {\n // We generate an UUID if the user does not provide an idempotencyToken value\n updatedOptions.idempotencyToken = updatedOptions.idempotencyToken ?? generateUuid();\n const updatedRestModelOptions = mapToCreateChatThreadOptionsRestModel(updatedOptions);\n\n const result = await this.client.chat.createChatThread(\n {\n topic: request.topic,\n participants: options.participants?.map((participant) =>\n mapToChatParticipantRestModel(participant),\n ),\n metadata: options.metadata,\n retentionPolicy: options.retentionPolicy,\n },\n updatedRestModelOptions,\n );\n return mapToCreateChatThreadResultSdkModel(result);\n },\n );\n }\n\n private async *listChatThreadsPage(\n continuationState: ListPageSettings,\n options: ListChatThreadsOptions = {},\n ): AsyncIterableIterator<ChatThreadItem[]> {\n if (!continuationState.continuationToken) {\n const currentSetResponse = await this.client.chat.listChatThreads(options);\n continuationState.continuationToken = currentSetResponse.nextLink;\n if (currentSetResponse.value) {\n yield currentSetResponse.value;\n }\n }\n\n while (continuationState.continuationToken) {\n const currentSetResponse = await this.client.chat.listChatThreadsNext(\n continuationState.continuationToken,\n options,\n );\n continuationState.continuationToken = currentSetResponse.nextLink;\n if (currentSetResponse.value) {\n yield currentSetResponse.value;\n } else {\n break;\n }\n }\n }\n\n private async *listChatThreadsAll(\n options: ListChatThreadsOptions,\n ): AsyncIterableIterator<ChatThreadItem> {\n for await (const page of this.listChatThreadsPage({}, options)) {\n yield* page;\n }\n }\n\n /**\n * Gets the list of chat threads of a user.\n * @param options - List chat threads options.\n */\n public listChatThreads(\n options: ListChatThreadsOptions = {},\n ): PagedAsyncIterableIterator<ChatThreadItem> {\n const { span, updatedOptions } = tracingClient.startSpan(\"ChatClient-ListChatThreads\", options);\n try {\n const iter = this.listChatThreadsAll(updatedOptions);\n return {\n next() {\n return iter.next();\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n byPage: (settings: ListPageSettings = {}) => {\n return this.listChatThreadsPage(settings, updatedOptions);\n },\n };\n } catch (e: any) {\n span.setStatus({\n error: e,\n status: \"error\",\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Deletes a chat thread.\n * @param threadId - The ID of the thread to delete.\n * @param options - Operation options.\n */\n public async deleteChatThread(\n threadId: string,\n options: DeleteChatThreadOptions = {},\n ): Promise<void> {\n return tracingClient.withSpan(\n \"ChatClient-DeleteChatThread\",\n options,\n async (updatedOptions) => {\n await this.client.chat.deleteChatThread(threadId, updatedOptions);\n },\n );\n }\n\n /**\n * Start receiving realtime notifications.\n * Call this function before subscribing to any event.\n */\n public async startRealtimeNotifications(): Promise<void> {\n if (this.signalingClient === undefined) {\n throw new Error(\"Realtime notifications are not supported in node js.\");\n }\n\n if (this.isRealtimeNotificationsStarted) {\n return;\n }\n\n this.isRealtimeNotificationsStarted = true;\n await this.signalingClient.start();\n this.subscribeToSignalingEvents();\n }\n\n /**\n * Stop receiving realtime notifications.\n * This function would unsubscribe to all events.\n */\n public async stopRealtimeNotifications(): Promise<void> {\n if (this.signalingClient === undefined) {\n throw new Error(\"Realtime notifications are not supported in node js.\");\n }\n\n this.isRealtimeNotificationsStarted = false;\n await this.signalingClient.stop();\n this.emitter.removeAllListeners();\n }\n\n /**\n * Subscribe function for chatMessageReceived.\n * The initial sender will also receive this event.\n * You need to call startRealtimeNotifications before subscribing to any event.\n * @param event - The ChatMessageReceivedEvent.\n * @param listener - The listener to handle the event.\n */\n public on(event: \"chatMessageReceived\", listener: (e: ChatMessageReceivedEvent) => void): void;\n\n /**\n * Subscribe function for chatMessageEdited.\n * The initial sender will also receive this event.\n * @param event - The ChatMessageEditedEvent.\n * @param listener - The listener to handle the event.\n */\n public on(event: \"chatMessageEdited\", listener: (e: ChatMessageEditedEvent) => void): void;\n\n /**\n * Subscribe function for chatMessageDeleted.\n * The initial sender will also receive this event.\n * @param event - The ChatMessageDeletedEvent.\n * @param listener - The listener to handle the event.\n */\n public on(event: \"chatMessageDeleted\", listener: (e: ChatMessageDeletedEvent) => void): void;\n\n /**\n * Subscribe function for typingIndicatorReceived.\n * The initial sender will also receive this event.\n * @param event - The TypingIndicatorReceivedEvent.\n * @param listener - The listener to handle the event.\n */\n public on(\n event: \"typingIndicatorReceived\",\n listener: (e: TypingIndicatorReceivedEvent) => void,\n ): void;\n\n /**\n * Subscribe function for readReceiptReceived.\n * @param event - The ReadReceiptReceivedEvent.\n * @param listener - The listener to handle the event.\n */\n public on(event: \"readReceiptReceived\", listener: (e: ReadReceiptReceivedEvent) => void): void;\n\n /**\n * Subscribe function for chatThreadCreated.\n * @param event - The ChatThreadCreatedEvent.\n * @param listener - The listener to handle the event.\n */\n public on(event: \"chatThreadCreated\", listener: (e: ChatThreadCreatedEvent) => void): void;\n\n /**\n * Subscribe function for chatThreadDeleted.\n * @param event - The ChatThreadDeletedEvent.\n * @param listener - The listener to handle the event.\n */\n public on(event: \"chatThreadDeleted\", listener: (e: ChatThreadDeletedEvent) => void): void;\n\n /**\n * Subscribe function for chatThreadPropertiesUpdated.\n * @param event - The ChatThreadPropertiesUpdatedEvent.\n * @param listener - The listener to handle the event.\n */\n public on(\n event: \"chatThreadPropertiesUpdated\",\n listener: (e: ChatThreadPropertiesUpdatedEvent) => void,\n ): void;\n\n /**\n * Subscribe function for participantsAdded.\n * @param event - The ParticipantsAddedEvent.\n * @param listener - The listener to handle the event.\n */\n public on(event: \"participantsAdded\", listener: (e: ParticipantsAddedEvent) => void): void;\n\n /**\n * Subscribe function for participantsRemoved.\n * @param event - The ParticipantsRemovedEvent.\n * @param listener - The listener to handle the event.\n */\n public on(event: \"participantsRemoved\", listener: (e: ParticipantsRemovedEvent) => void): void;\n\n /**\n * Subscribe function for realTimeNotificationConnected.\n * @param event - The realTimeNotificationConnected Event\n * @param listener - The listener to handle the event.\n */\n public on(event: \"realTimeNotificationConnected\", listener: () => void): void;\n\n /**\n * Subscribe function for realTimeNotificationDisconnected.\n * @param event - The realTimeNotificationDisconnected Event\n * @param listener - The listener to handle the event.\n */\n public on(event: \"realTimeNotificationDisconnected\", listener: () => void): void;\n\n public on(event: ChatEventId, listener: (e?: any) => void): void {\n if (this.signalingClient === undefined) {\n throw new Error(\"Realtime notifications are only supported in the browser.\");\n }\n if (\n !this.isRealtimeNotificationsStarted &&\n event !== \"realTimeNotificationConnected\" &&\n event !== \"realTimeNotificationDisconnected\"\n ) {\n throw new Error(\n \"You must call startRealtimeNotifications before you can subscribe to events.\",\n );\n }\n\n this.emitter.on(event, listener);\n }\n\n /**\n * Unsubscribe from chatMessageReceived.\n * @param event - The ChatMessageReceivedEvent.\n * @param listener - The listener to handle the event.\n */\n public off(event: \"chatMessageReceived\", listener: (e: ChatMessageReceivedEvent) => void): void;\n\n /**\n * Unsubscribe from chatMessageEdited.\n * @param event - The ChatMessageEditedEvent.\n * @param listener - The listener to handle the event.\n */\n public off(event: \"chatMessageEdited\", listener: (e: ChatMessageEditedEvent) => void): void;\n\n /**\n * Unsubscribe from chatMessageDeleted.\n * @param event - The ChatMessageDeletedEvent.\n * @param listener - The listener to handle the event.\n */\n public off(event: \"chatMessageDeleted\", listener: (e: ChatMessageDeletedEvent) => void): void;\n\n /**\n * Unsubscribe from typingIndicatorReceived.\n * @param event - The TypingIndicatorReceivedEvent.\n * @param listener - The listener to handle the event.\n */\n public off(\n event: \"typingIndicatorReceived\",\n listener: (e: TypingIndicatorReceivedEvent) => void,\n ): void;\n\n /**\n * Unsubscribe from readReceiptReceived.\n * @param event - The ReadReceiptReceivedEvent.\n * @param listener - The listener to handle the event.\n */\n public off(event: \"readReceiptReceived\", listener: (e: ReadReceiptReceivedEvent) => void): void;\n\n /**\n * Unsubscribe from chatThreadCreated.\n * @param event - The ChatThreadCreatedEvent.\n * @param listener - The listener to handle the event.\n */\n public off(event: \"chatThreadCreated\", listener: (e: ChatThreadCreatedEvent) => void): void;\n\n /**\n * Unsubscribe from chatThreadDeleted.\n * @param event - The ChatThreadDeletedEvent.\n * @param listener - The listener to handle the event.\n */\n public off(event: \"chatThreadDeleted\", listener: (e: ChatThreadDeletedEvent) => void): void;\n\n /**\n * Unsubscribe from chatThreadPropertiesUpdated.\n * @param event - The ChatThreadPropertiesUpdatedEvent.\n * @param listener - The listener to handle the event.\n */\n public off(\n event: \"chatThreadPropertiesUpdated\",\n listener: (e: ChatThreadPropertiesUpdatedEvent) => void,\n ): void;\n\n /**\n * Unsubscribe from participantsAdded.\n * @param event - The ParticipantsAddedEvent.\n * @param listener - The listener to handle the event.\n */\n public off(event: \"participantsAdded\", listener: (e: ParticipantsAddedEvent) => void): void;\n\n /**\n * Unsubscribe from participantsRemoved.\n * @param event - The ParticipantsRemovedEvent.\n * @param listener - The listener to handle the event.\n */\n public off(event: \"participantsRemoved\", listener: (e: ParticipantsRemovedEvent) => void): void;\n\n public off(event: ChatEventId, listener: (e: any) => void): void {\n if (this.signalingClient === undefined) {\n throw new Error(\"Realtime notifications are only supported in the browser.\");\n }\n\n this.emitter.removeListener(event, listener);\n }\n\n private subscribeToSignalingEvents(): void {\n if (this.signalingClient === undefined) {\n throw new Error(\"Realtime notifications are only supported in the browser.\");\n }\n\n this.signalingClient.on(\"connectionChanged\", (payload) => {\n if (payload === ConnectionState.Connected) {\n this.emitter.emit(\"realTimeNotificationConnected\");\n } else if (payload === ConnectionState.Disconnected) {\n this.emitter.emit(\"realTimeNotificationDisconnected\");\n }\n });\n\n this.signalingClient.on(\"chatMessageReceived\", (payload) => {\n this.emitter.emit(\"chatMessageReceived\", payload);\n });\n\n this.signalingClient.on(\"chatMessageEdited\", (payload) => {\n this.emitter.emit(\"chatMessageEdited\", payload);\n });\n\n this.signalingClient.on(\"chatMessageDeleted\", (payload) => {\n this.emitter.emit(\"chatMessageDeleted\", payload);\n });\n\n this.signalingClient.on(\"typingIndicatorReceived\", (payload) => {\n this.emitter.emit(\"typingIndicatorReceived\", payload);\n });\n\n this.signalingClient.on(\"readReceiptReceived\", (payload) => {\n this.emitter.emit(\"readReceiptReceived\", payload);\n });\n\n this.signalingClient.on(\"chatThreadCreated\", (payload) => {\n this.emitter.emit(\"chatThreadCreated\", payload);\n });\n\n this.signalingClient.on(\"chatThreadDeleted\", (payload) => {\n this.emitter.emit(\"chatThreadDeleted\", payload);\n });\n\n this.signalingClient.on(\"chatThreadPropertiesUpdated\", (payload) => {\n this.emitter.emit(\"chatThreadPropertiesUpdated\", payload);\n });\n\n this.signalingClient.on(\"participantsAdded\", (payload) => {\n this.emitter.emit(\"participantsAdded\", payload);\n });\n\n this.signalingClient.on(\"participantsRemoved\", (payload) => {\n this.emitter.emit(\"participantsRemoved\", payload);\n });\n }\n}\n"]}
@@ -1,8 +1,8 @@
1
1
  import type { CommunicationIdentifier, CommunicationTokenCredential } from "@azure/communication-common";
2
2
  import type { PagedAsyncIterableIterator } from "@azure/core-paging";
3
3
  import type { AddParticipantsRequest, SendMessageRequest, SendReadReceiptRequest } from "./models/requests.js";
4
- import type { AddChatParticipantsResult, ChatMessage, ChatMessageReadReceipt, ChatParticipant, ChatThreadProperties, SendChatMessageResult, UploadChatImageResult } from "./models/models.js";
5
- import type { AddParticipantsOptions, ChatThreadClientOptions, DeleteMessageOptions, GetMessageOptions, GetPropertiesOptions, ListMessagesOptions, ListParticipantsOptions, ListReadReceiptsOptions, RemoveParticipantOptions, SendMessageOptions, SendReadReceiptOptions, SendTypingNotificationOptions, UpdateMessageOptions, UpdateTopicOptions, UpdateChatThreadPropertiesOptions, DeleteImageOptions, UploadImageOptions, UploadImageStreamOptions } from "./models/options.js";
4
+ import type { AddChatParticipantsResult, ChatMessage, ChatMessageReadReceipt, ChatParticipant, ChatThreadProperties, SendChatMessageResult } from "./models/models.js";
5
+ import type { AddParticipantsOptions, ChatThreadClientOptions, DeleteMessageOptions, GetMessageOptions, GetPropertiesOptions, ListMessagesOptions, ListParticipantsOptions, ListReadReceiptsOptions, RemoveParticipantOptions, SendMessageOptions, SendReadReceiptOptions, SendTypingNotificationOptions, UpdateChatThreadPropertiesOptions, UpdateMessageOptions, UpdateTopicOptions } from "./models/options.js";
6
6
  /**
7
7
  * The client to do chat operations
8
8
  */
@@ -14,7 +14,6 @@ export declare class ChatThreadClient {
14
14
  readonly threadId: string;
15
15
  private readonly tokenCredential;
16
16
  private readonly client;
17
- private readonly xhrClient?;
18
17
  private timeOfLastTypingRequest;
19
18
  constructor(endpoint: string, threadId: string, credential: CommunicationTokenCredential, options?: ChatThreadClientOptions);
20
19
  /**
@@ -110,33 +109,5 @@ export declare class ChatThreadClient {
110
109
  */
111
110
  listReadReceipts(options?: ListReadReceiptsOptions): PagedAsyncIterableIterator<ChatMessageReadReceipt>;
112
111
  private canPostTypingNotification;
113
- /**
114
- * Uploads an chat image to a thread identified by threadId.
115
- * Allowed image types "jpg", "png", "gif", "heic", "webp".
116
- * Returns the id of the uploaded image.
117
- * @param image - Request for uploading an image.
118
- * @param imageFilename - The image's file name with file extension.
119
- * @param options - Operation options.
120
- */
121
- uploadImage(image: ArrayBuffer | Blob, imageFilename: string, options?: UploadImageOptions): Promise<UploadChatImageResult>;
122
- /**
123
- * Uploads an chat image stream to a thread identified by threadId.
124
- * Allowed image types "jpg", "png", "gif", "heic", "webp".
125
- * Returns the id of the uploaded image.
126
- * @param image - Request for uploading an image.
127
- * @param imageFileName - The image's file name with file extension.
128
- * @param imageBytesLength - The image's file length in bytes.
129
- * @param options - Operation options.
130
- */
131
- uploadImage(image: ReadableStream<Uint8Array> | NodeJS.ReadableStream, imageFileName: string, imageBytesLength: number, options?: UploadImageStreamOptions): Promise<UploadChatImageResult>;
132
- /**
133
- * Deletes an image identified by threadId and imageId
134
- * @param imageId - The image id of the image.
135
- * @param options - Operation options.
136
- */
137
- deleteImage(imageId: string, options?: DeleteImageOptions): Promise<void>;
138
- private supportsReadableStream;
139
- private getArrayBufferFromReadableStream;
140
- private getArrayBufferFromBlob;
141
112
  }
142
113
  //# sourceMappingURL=chatThreadClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chatThreadClient.d.ts","sourceRoot":"","sources":["../../src/chatThreadClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chatThreadClient.d.ts","sourceRoot":"","sources":["../../src/chatThreadClient.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,8 @@
3
3
  import { __asyncDelegator, __asyncGenerator, __asyncValues, __await, __rest } from "tslib";
4
4
  import { logger } from "./models/logger.js";
5
5
  import { serializeCommunicationIdentifier } from "@azure/communication-common";
6
- import { mapToAddChatParticipantsRequestRestModel, mapToChatMessageSdkModel, mapToChatParticipantSdkModel, mapToChatThreadPropertiesSdkModel, mapToReadReceiptSdkModel, mapToSendChatMessageRequestRestModel, mapToUpdateChatMessageRequestRestModel, } from "./models/mappers.js";
7
- import { ChatApiClient } from "./generated/src/index.js";
8
- import { createXhrHttpClient, isReadableStream, isBlob } from "./xhrHttpClient.js";
6
+ import { mapToAddChatParticipantsRequestRestModel, mapToChatMessageSdkModel, mapToChatParticipantSdkModel, mapToChatThreadPropertiesSdkModel, mapToReadReceiptSdkModel, } from "./models/mappers.js";
7
+ import { ChatApiClient, } from "./generated/src/index.js";
9
8
  import { createCommunicationTokenCredentialPolicy } from "./credential/communicationTokenCredentialPolicy.js";
10
9
  import { tracingClient } from "./generated/src/tracing.js";
11
10
  const minimumTypingIntervalInMilliSeconds = 8000;
@@ -26,10 +25,6 @@ export class ChatThreadClient {
26
25
  this.client = new ChatApiClient(this.endpoint, Object.assign({ endpoint: this.endpoint }, internalPipelineOptions));
27
26
  const authPolicy = createCommunicationTokenCredentialPolicy(this.tokenCredential);
28
27
  this.client.pipeline.addPolicy(authPolicy);
29
- if (typeof XMLHttpRequest !== "undefined") {
30
- this.xhrClient = new ChatApiClient(this.endpoint, Object.assign(Object.assign({ endpoint: this.endpoint }, internalPipelineOptions), { httpClient: createXhrHttpClient() }));
31
- this.xhrClient.pipeline.addPolicy(authPolicy);
32
- }
33
28
  }
34
29
  /**
35
30
  * Gets a chat thread.
@@ -56,6 +51,7 @@ export class ChatThreadClient {
56
51
  * Updates a thread's properties.
57
52
  * @param options - Operation options.
58
53
  */
54
+ // beta release already named this option as UpdateChatThreadPropertiesOptions
59
55
  // eslint-disable-next-line @azure/azure-sdk/ts-naming-options
60
56
  updateProperties(options = {}) {
61
57
  return tracingClient.withSpan("ChatThreadClient-UpdateProperties", options, async (updatedOptions) => {
@@ -72,7 +68,7 @@ export class ChatThreadClient {
72
68
  return tracingClient.withSpan("ChatThreadClient-SendMessage", options, async (updatedOptions) => {
73
69
  // reset typing notification clock
74
70
  this.timeOfLastTypingRequest = undefined;
75
- const result = await this.client.chatThread.sendChatMessage(this.threadId, mapToSendChatMessageRequestRestModel(request, options), updatedOptions);
71
+ const result = await this.client.chatThread.sendChatMessage(this.threadId, Object.assign(Object.assign({}, request), options), updatedOptions);
76
72
  return result;
77
73
  });
78
74
  }
@@ -178,7 +174,7 @@ export class ChatThreadClient {
178
174
  */
179
175
  async updateMessage(messageId, options = {}) {
180
176
  return tracingClient.withSpan("ChatThreadClient-UpdateMessage", options, async (updatedOptions) => {
181
- await this.client.chatThread.updateChatMessage(this.threadId, messageId, mapToUpdateChatMessageRequestRestModel(options), updatedOptions);
177
+ await this.client.chatThread.updateChatMessage(this.threadId, messageId, options, updatedOptions);
182
178
  });
183
179
  }
184
180
  /**
@@ -387,73 +383,5 @@ export class ChatThreadClient {
387
383
  }
388
384
  return true;
389
385
  }
390
- async uploadImage(image, imageFilename, imageBytesLengthOrOptions,
391
- // eslint-disable-next-line @azure/azure-sdk/ts-naming-options
392
- options = {}) {
393
- let uploadImageOptions = {};
394
- if (imageBytesLengthOrOptions !== undefined) {
395
- if (typeof imageBytesLengthOrOptions === "number") {
396
- uploadImageOptions = Object.assign(Object.assign({}, options), { imageBytesLength: imageBytesLengthOrOptions });
397
- }
398
- else {
399
- uploadImageOptions = Object.assign(Object.assign({}, options), imageBytesLengthOrOptions);
400
- }
401
- }
402
- return tracingClient.withSpan("ChatThreadClient-UploadImage", uploadImageOptions, async (updatedOptions) => {
403
- let result;
404
- if (this.xhrClient && // is browser
405
- ((!this.supportsReadableStream() && isReadableStream(image)) || // is readable stream but no support, need to convert
406
- !isReadableStream(image))) {
407
- // use xhrClient if (to support onUploadProgress)
408
- // - is readable stream but no support => convert to ArrayBuffer (so will have content-length)
409
- // - is not readable stream
410
- result = await this.xhrClient.chatThread.uploadChatImage(this.threadId, isReadableStream(image) ? await this.getArrayBufferFromReadableStream(image) : image, Object.assign({ imageFilename }, updatedOptions));
411
- }
412
- else {
413
- // backend (node fetch client) or readable readable stream
414
- // Backend (no browser) need to convert Blob/ReadableStream to ArrayBuffer
415
- let chatImageFile = image;
416
- if (isBlob(image)) {
417
- chatImageFile = await this.getArrayBufferFromBlob(image);
418
- }
419
- else if (isReadableStream(image)) {
420
- chatImageFile = await this.getArrayBufferFromReadableStream(image);
421
- }
422
- result = await this.client.chatThread.uploadChatImage(this.threadId, chatImageFile, Object.assign({ imageFilename }, updatedOptions));
423
- }
424
- return result;
425
- });
426
- }
427
- /**
428
- * Deletes an image identified by threadId and imageId
429
- * @param imageId - The image id of the image.
430
- * @param options - Operation options.
431
- */
432
- deleteImage(imageId, options = {}) {
433
- return tracingClient.withSpan("ChatThreadClient-DeleteImage", options, async (updatedOptions) => {
434
- await this.client.chatThread.deleteChatImage(this.threadId, imageId, updatedOptions);
435
- });
436
- }
437
- supportsReadableStream() {
438
- let duplexAccessed = false;
439
- const hasContentType = new Request("", {
440
- body: new ReadableStream(),
441
- method: "POST",
442
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
443
- // @ts-ignore
444
- get duplex() {
445
- duplexAccessed = true;
446
- return "half";
447
- },
448
- }).headers.has("Content-Type");
449
- return duplexAccessed && !hasContentType;
450
- }
451
- async getArrayBufferFromReadableStream(body) {
452
- const arrayBuffer = await new Response(body).arrayBuffer();
453
- return new Uint8Array(arrayBuffer);
454
- }
455
- async getArrayBufferFromBlob(body) {
456
- return new Uint8Array(await body.arrayBuffer());
457
- }
458
386
  }
459
387
  //# sourceMappingURL=chatThreadClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chatThreadClient.js","sourceRoot":"","sources":["../../src/chatThreadClient.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { logger } from \"./models/logger.js\";\nimport type {\n CommunicationIdentifier,\n CommunicationTokenCredential,\n} from \"@azure/communication-common\";\nimport { serializeCommunicationIdentifier } from \"@azure/communication-common\";\nimport type { PagedAsyncIterableIterator } from \"@azure/core-paging\";\nimport type {\n AddParticipantsRequest,\n SendMessageRequest,\n SendReadReceiptRequest,\n} from \"./models/requests.js\";\n\nimport type {\n AddChatParticipantsResult,\n ChatMessage,\n ChatMessageReadReceipt,\n ChatParticipant,\n ChatThreadProperties,\n ListPageSettings,\n SendChatMessageResult,\n UploadChatImageResult,\n} from \"./models/models.js\";\nimport {\n mapToAddChatParticipantsRequestRestModel,\n mapToChatMessageSdkModel,\n mapToChatParticipantSdkModel,\n mapToChatThreadPropertiesSdkModel,\n mapToReadReceiptSdkModel,\n mapToSendChatMessageRequestRestModel,\n mapToUpdateChatMessageRequestRestModel,\n} from \"./models/mappers.js\";\nimport type {\n AddParticipantsOptions,\n ChatThreadClientOptions,\n DeleteMessageOptions,\n GetMessageOptions,\n GetPropertiesOptions,\n ListMessagesOptions,\n ListParticipantsOptions,\n ListReadReceiptsOptions,\n RemoveParticipantOptions,\n SendMessageOptions,\n SendReadReceiptOptions,\n SendTypingNotificationOptions,\n UpdateMessageOptions,\n UpdateTopicOptions,\n UpdateChatThreadPropertiesOptions,\n DeleteImageOptions,\n UploadImageOptions,\n UploadImageStreamOptions,\n} from \"./models/options.js\";\nimport type {\n ChatThreadGetChatThreadPropertiesOptionalParams,\n ChatThreadUpdateChatThreadPropertiesOptionalParams,\n ChatThreadSendChatMessageOptionalParams,\n ChatThreadGetChatMessageOptionalParams,\n ChatThreadDeleteChatMessageOptionalParams,\n ChatThreadUpdateChatMessageOptionalParams,\n ChatThreadAddChatParticipantsOptionalParams,\n ChatThreadRemoveChatParticipantOptionalParams,\n ChatThreadSendChatReadReceiptOptionalParams,\n ChatThreadUploadChatImageOptionalParams,\n ChatThreadDeleteChatImageOptionalParams,\n} from \"./generated/src/index.js\";\nimport { ChatApiClient } from \"./generated/src/index.js\";\nimport type { InternalPipelineOptions } from \"@azure/core-rest-pipeline\";\nimport { createXhrHttpClient, isReadableStream, isBlob } from \"./xhrHttpClient.js\";\nimport { createCommunicationTokenCredentialPolicy } from \"./credential/communicationTokenCredentialPolicy.js\";\nimport { tracingClient } from \"./generated/src/tracing.js\";\n\nconst minimumTypingIntervalInMilliSeconds: number = 8000;\n\n/**\n * The client to do chat operations\n */\nexport class ChatThreadClient {\n /**\n * Thread ID of the ChatThreadClient\n */\n readonly threadId: string;\n\n private readonly tokenCredential: CommunicationTokenCredential;\n private readonly client: ChatApiClient;\n private readonly xhrClient?: ChatApiClient;\n\n private timeOfLastTypingRequest: Date | undefined = undefined;\n\n constructor(\n private readonly endpoint: string,\n threadId: string,\n credential: CommunicationTokenCredential,\n options: ChatThreadClientOptions = {},\n ) {\n this.threadId = threadId;\n this.tokenCredential = credential;\n\n const internalPipelineOptions: InternalPipelineOptions = {\n ...options,\n ...{\n loggingOptions: {\n logger: logger.info,\n },\n },\n };\n\n this.client = new ChatApiClient(this.endpoint, {\n endpoint: this.endpoint,\n ...internalPipelineOptions,\n });\n\n const authPolicy = createCommunicationTokenCredentialPolicy(this.tokenCredential);\n this.client.pipeline.addPolicy(authPolicy);\n\n if (typeof XMLHttpRequest !== \"undefined\") {\n this.xhrClient = new ChatApiClient(this.endpoint, {\n endpoint: this.endpoint,\n ...internalPipelineOptions,\n httpClient: createXhrHttpClient(),\n });\n this.xhrClient.pipeline.addPolicy(authPolicy);\n }\n }\n\n /**\n * Gets a chat thread.\n * Returns the chat thread.\n * @param options - Operation options.\n */\n public getProperties(options: GetPropertiesOptions = {}): Promise<ChatThreadProperties> {\n return tracingClient.withSpan(\n \"ChatClient-GetProperties\",\n options,\n async (updatedOptions: ChatThreadGetChatThreadPropertiesOptionalParams | undefined) => {\n const result = await this.client.chatThread.getChatThreadProperties(\n this.threadId,\n updatedOptions,\n );\n return mapToChatThreadPropertiesSdkModel(result);\n },\n );\n }\n\n /**\n * Updates a thread's topic.\n * @param topic - The topic needs to be updated to.\n * @param options - Operation options.\n */\n public updateTopic(topic: string, options: UpdateTopicOptions = {}): Promise<void> {\n return tracingClient.withSpan(\n \"ChatThreadClient-UpdateTopic\",\n options,\n async (updatedOptions: ChatThreadUpdateChatThreadPropertiesOptionalParams | undefined) => {\n await this.client.chatThread.updateChatThreadProperties(\n this.threadId,\n { topic: topic },\n updatedOptions,\n );\n },\n );\n }\n\n /**\n * Updates a thread's properties.\n * @param options - Operation options.\n */\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n public updateProperties(options: UpdateChatThreadPropertiesOptions = {}): Promise<void> {\n return tracingClient.withSpan(\n \"ChatThreadClient-UpdateProperties\",\n options,\n async (updatedOptions: ChatThreadUpdateChatThreadPropertiesOptionalParams | undefined) => {\n await this.client.chatThread.updateChatThreadProperties(\n this.threadId,\n options,\n updatedOptions,\n );\n },\n );\n }\n\n /**\n * Sends a chat message to a thread identified by threadId.\n * Returns the id of the created message.\n * @param request - Request for sending a message.\n * @param options - Operation options.\n */\n public sendMessage(\n request: SendMessageRequest,\n options: SendMessageOptions = {},\n ): Promise<SendChatMessageResult> {\n return tracingClient.withSpan(\n \"ChatThreadClient-SendMessage\",\n options,\n async (updatedOptions: ChatThreadSendChatMessageOptionalParams | undefined) => {\n // reset typing notification clock\n this.timeOfLastTypingRequest = undefined;\n\n const result = await this.client.chatThread.sendChatMessage(\n this.threadId,\n mapToSendChatMessageRequestRestModel(request, options),\n updatedOptions,\n );\n return result;\n },\n );\n }\n\n /**\n * Gets a chat message identified by messageId.\n * Returns the specific message.\n * @param messageId - The message id of the message.\n * @param options - Operation options.\n */\n public getMessage(messageId: string, options: GetMessageOptions = {}): Promise<ChatMessage> {\n return tracingClient.withSpan(\n \"ChatThreadClient-GetMessage\",\n options,\n async (updatedOptions: ChatThreadGetChatMessageOptionalParams | undefined) => {\n const result = await this.client.chatThread.getChatMessage(\n this.threadId,\n messageId,\n updatedOptions,\n );\n return mapToChatMessageSdkModel(result);\n },\n );\n }\n\n private async *listMessagesPage(\n pageSettings: ListPageSettings,\n options: ListMessagesOptions = {},\n ): AsyncIterableIterator<ChatMessage[]> {\n if (!pageSettings.continuationToken) {\n const currentSetResponse = await this.client.chatThread.listChatMessages(\n this.threadId,\n options,\n );\n pageSettings.continuationToken = currentSetResponse.nextLink;\n if (currentSetResponse.value) {\n yield currentSetResponse.value.map(mapToChatMessageSdkModel, this);\n }\n }\n\n while (pageSettings.continuationToken) {\n const currentSetResponse = await this.client.chatThread.listChatMessagesNext(\n this.threadId,\n pageSettings.continuationToken,\n options,\n );\n pageSettings.continuationToken = currentSetResponse.nextLink;\n if (currentSetResponse.value) {\n yield currentSetResponse.value.map(mapToChatMessageSdkModel, this);\n } else {\n break;\n }\n }\n }\n\n private async *listMessagesAll(options: ListMessagesOptions): AsyncIterableIterator<ChatMessage> {\n for await (const page of this.listMessagesPage({}, options)) {\n yield* page;\n }\n }\n\n /**\n * Gets a list of message from a thread identified by threadId.\n * Returns the list of the messages.\n * @param options - Get messages options.\n */\n public listMessages(options: ListMessagesOptions = {}): PagedAsyncIterableIterator<ChatMessage> {\n const { span, updatedOptions } = tracingClient.startSpan(\n \"ChatThreadClient-ListMessages\",\n options,\n );\n\n try {\n const iter = this.listMessagesAll(updatedOptions);\n return {\n next() {\n return iter.next();\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n byPage: (settings: ListPageSettings = {}) => {\n return this.listMessagesPage(settings, updatedOptions);\n },\n };\n } catch (e: any) {\n span.setStatus({\n status: \"error\",\n error: e,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Deletes a message identified by threadId and messageId\n * @param messageId - The message id of the message.\n * @param options - Operation options.\n */\n public deleteMessage(messageId: string, options: DeleteMessageOptions = {}): Promise<void> {\n return tracingClient.withSpan(\n \"ChatThreadClient-DeleteMessage\",\n options,\n async (updatedOptions: ChatThreadDeleteChatMessageOptionalParams | undefined) => {\n await this.client.chatThread.deleteChatMessage(this.threadId, messageId, updatedOptions);\n },\n );\n }\n\n /**\n * Updates a message identified by threadId and messageId\n * @param messageId - The message id of the message.\n * @param options - Operation options.\n */\n public async updateMessage(messageId: string, options: UpdateMessageOptions = {}): Promise<void> {\n return tracingClient.withSpan(\n \"ChatThreadClient-UpdateMessage\",\n options,\n async (updatedOptions: ChatThreadUpdateChatMessageOptionalParams | undefined) => {\n await this.client.chatThread.updateChatMessage(\n this.threadId,\n messageId,\n mapToUpdateChatMessageRequestRestModel(options),\n updatedOptions,\n );\n },\n );\n }\n\n /**\n * Adds the details of chat participants belonging to the thread identified by threadId.\n * @param request - Thread participants' details to add in the thread roster\n * @param options - Operation options.\n */\n public async addParticipants(\n request: AddParticipantsRequest,\n options: AddParticipantsOptions = {},\n ): Promise<AddChatParticipantsResult> {\n return tracingClient.withSpan(\n \"ChatThreadClient-AddParticipants\",\n options,\n async (updatedOptions: ChatThreadAddChatParticipantsOptionalParams | undefined) => {\n const result = await this.client.chatThread.addChatParticipants(\n this.threadId,\n mapToAddChatParticipantsRequestRestModel(request),\n updatedOptions,\n );\n return result;\n },\n );\n }\n\n private async *listParticipantsPage(\n continuationState: ListPageSettings,\n options: ListParticipantsOptions = {},\n ): AsyncIterableIterator<ChatParticipant[]> {\n if (!continuationState.continuationToken) {\n const currentSetResponse = await this.client.chatThread.listChatParticipants(\n this.threadId,\n options,\n );\n continuationState.continuationToken = currentSetResponse.nextLink;\n if (currentSetResponse.value) {\n yield currentSetResponse.value.map(mapToChatParticipantSdkModel, this);\n }\n }\n\n while (continuationState.continuationToken) {\n const currentSetResponse = await this.client.chatThread.listChatParticipantsNext(\n this.threadId,\n continuationState.continuationToken,\n options,\n );\n continuationState.continuationToken = currentSetResponse.nextLink;\n if (currentSetResponse.value) {\n yield currentSetResponse.value.map(mapToChatParticipantSdkModel, this);\n } else {\n break;\n }\n }\n }\n\n private async *listParticipantsAll(\n options: ListParticipantsOptions,\n ): AsyncIterableIterator<ChatParticipant> {\n for await (const page of this.listParticipantsPage({}, options)) {\n yield* page;\n }\n }\n\n /**\n * Gets the participants of the thread identified by threadId.\n * Returns the lists of the participants.\n * @param options - Operation options.\n */\n public listParticipants(\n options: ListParticipantsOptions = {},\n ): PagedAsyncIterableIterator<ChatParticipant> {\n const { span, updatedOptions } = tracingClient.startSpan(\n \"ChatThreadClient-ListParticipants\",\n options,\n );\n\n try {\n const iter = this.listParticipantsAll(updatedOptions);\n return {\n next() {\n return iter.next();\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n byPage: (settings: ListPageSettings = {}) => {\n return this.listParticipantsPage(settings, updatedOptions);\n },\n };\n } catch (e: any) {\n span.setStatus({\n status: \"error\",\n error: e,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Removes participant from the thread identified by threadId.\n * @param participant - Thread participant to remove from the thread roster\n * @param options - Operation options.\n */\n public async removeParticipant(\n participant: CommunicationIdentifier,\n options: RemoveParticipantOptions = {},\n ): Promise<void> {\n return tracingClient.withSpan(\n \"ChatThreadClient-RemoveParticipant\",\n options,\n async (updatedOptions: ChatThreadRemoveChatParticipantOptionalParams | undefined) => {\n await this.client.chatThread.removeChatParticipant(\n this.threadId,\n serializeCommunicationIdentifier(participant),\n updatedOptions,\n );\n },\n );\n }\n\n /**\n * Sends a typing notification to the thread.\n * Doesn't attempt to send if the time since last notification is smaller than the minimum typing interval\n * @param options - - Operation options\n * @returns True if the typing message notification could be sent, otherwise false.\n */\n public async sendTypingNotification(\n options: SendTypingNotificationOptions = {},\n ): Promise<boolean> {\n return tracingClient.withSpan(\n \"ChatThreadClient-SendTypingNotification\",\n options,\n async (updatedOptions: SendTypingNotificationOptions) => {\n const dateNow = new Date();\n const { senderDisplayName, ...restOptions } = updatedOptions;\n\n if (this.canPostTypingNotification(dateNow)) {\n this.timeOfLastTypingRequest = dateNow;\n\n await this.client.chatThread.sendTypingNotification(this.threadId, {\n sendTypingNotificationRequest: { senderDisplayName: senderDisplayName },\n ...restOptions,\n });\n return true;\n }\n\n logger.info(`Typing Notification NOT Send. [thread_id=${this.threadId}]`);\n return false;\n },\n );\n }\n\n /**\n * Sends a read receipt to the thread identified by threadId.\n * @param request - Request for sending a read receipt\n * @param options - Operation options.\n */\n public async sendReadReceipt(\n request: SendReadReceiptRequest,\n options: SendReadReceiptOptions = {},\n ): Promise<void> {\n return tracingClient.withSpan(\n \"ChatThreadClient-SendReadReceipt\",\n options,\n async (updatedOptions: ChatThreadSendChatReadReceiptOptionalParams | undefined) => {\n await this.client.chatThread.sendChatReadReceipt(this.threadId, request, updatedOptions);\n },\n );\n }\n\n private async *listReadReceiptsPage(\n continuationState: ListPageSettings,\n options: ListReadReceiptsOptions = {},\n ): AsyncIterableIterator<ChatMessageReadReceipt[]> {\n if (!continuationState.continuationToken) {\n const currentSetResponse = await this.client.chatThread.listChatReadReceipts(\n this.threadId,\n options,\n );\n continuationState.continuationToken = currentSetResponse.nextLink;\n if (currentSetResponse.value) {\n yield currentSetResponse.value.map(mapToReadReceiptSdkModel, this);\n }\n }\n\n while (continuationState.continuationToken) {\n const currentSetResponse = await this.client.chatThread.listChatReadReceiptsNext(\n this.threadId,\n continuationState.continuationToken,\n options,\n );\n continuationState.continuationToken = currentSetResponse.nextLink;\n if (currentSetResponse.value) {\n yield currentSetResponse.value.map(mapToReadReceiptSdkModel, this);\n } else {\n break;\n }\n }\n }\n\n private async *listReadReceiptsAll(\n options: ListReadReceiptsOptions,\n ): AsyncIterableIterator<ChatMessageReadReceipt> {\n for await (const page of this.listReadReceiptsPage({}, options)) {\n yield* page;\n }\n }\n\n /**\n * Gets a list of read receipt from a thread identified by threadId.\n * Returns the list of the messages.\n * @param options - Get messages options.\n */\n public listReadReceipts(\n options: ListReadReceiptsOptions = {},\n ): PagedAsyncIterableIterator<ChatMessageReadReceipt> {\n const { span, updatedOptions } = tracingClient.startSpan(\n \"ChatThreadClient-ListChatReadReceipts\",\n options,\n );\n\n try {\n const iter = this.listReadReceiptsAll(updatedOptions);\n return {\n next() {\n return iter.next();\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n byPage: (settings: ListPageSettings = {}) => {\n return this.listReadReceiptsPage(settings, updatedOptions);\n },\n };\n } catch (e: any) {\n span.setStatus({\n status: \"error\",\n error: e,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n private canPostTypingNotification(dateNow: Date): boolean {\n if (this.timeOfLastTypingRequest) {\n const timeSinceLastRequestInMilliSeconds =\n dateNow.getTime() - this.timeOfLastTypingRequest.getTime();\n\n if (timeSinceLastRequestInMilliSeconds < minimumTypingIntervalInMilliSeconds) {\n logger.info(`Typing interval check failed. [last_request=${this.timeOfLastTypingRequest}]`);\n return false;\n }\n }\n\n return true;\n }\n\n /**\n * Uploads an chat image to a thread identified by threadId.\n * Allowed image types \"jpg\", \"png\", \"gif\", \"heic\", \"webp\".\n * Returns the id of the uploaded image.\n * @param image - Request for uploading an image.\n * @param imageFilename - The image's file name with file extension.\n * @param options - Operation options.\n */\n public async uploadImage(\n image: ArrayBuffer | Blob,\n imageFilename: string,\n options?: UploadImageOptions,\n ): Promise<UploadChatImageResult>;\n\n /**\n * Uploads an chat image stream to a thread identified by threadId.\n * Allowed image types \"jpg\", \"png\", \"gif\", \"heic\", \"webp\".\n * Returns the id of the uploaded image.\n * @param image - Request for uploading an image.\n * @param imageFileName - The image's file name with file extension.\n * @param imageBytesLength - The image's file length in bytes.\n * @param options - Operation options.\n */\n public async uploadImage(\n image: ReadableStream<Uint8Array> | NodeJS.ReadableStream,\n imageFileName: string,\n imageBytesLength: number,\n // eslint-disable-next-line\n options?: UploadImageStreamOptions,\n ): Promise<UploadChatImageResult>;\n\n async uploadImage(\n image: ArrayBuffer | Blob | ReadableStream<Uint8Array> | NodeJS.ReadableStream,\n imageFilename: string,\n imageBytesLengthOrOptions?: number | UploadImageOptions,\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n options: UploadImageStreamOptions = {},\n ): Promise<UploadChatImageResult> {\n let uploadImageOptions = {};\n if (imageBytesLengthOrOptions !== undefined) {\n if (typeof imageBytesLengthOrOptions === \"number\") {\n uploadImageOptions = { ...options, imageBytesLength: imageBytesLengthOrOptions };\n } else {\n uploadImageOptions = { ...options, ...imageBytesLengthOrOptions };\n }\n }\n\n return tracingClient.withSpan(\n \"ChatThreadClient-UploadImage\",\n uploadImageOptions,\n async (updatedOptions: ChatThreadUploadChatImageOptionalParams | undefined) => {\n let result: UploadChatImageResult;\n if (\n this.xhrClient && // is browser\n ((!this.supportsReadableStream() && isReadableStream(image)) || // is readable stream but no support, need to convert\n !isReadableStream(image))\n ) {\n // use xhrClient if (to support onUploadProgress)\n // - is readable stream but no support => convert to ArrayBuffer (so will have content-length)\n // - is not readable stream\n result = await this.xhrClient.chatThread.uploadChatImage(\n this.threadId,\n isReadableStream(image) ? await this.getArrayBufferFromReadableStream(image) : image,\n { imageFilename, ...updatedOptions },\n );\n } else {\n // backend (node fetch client) or readable readable stream\n // Backend (no browser) need to convert Blob/ReadableStream to ArrayBuffer\n let chatImageFile = image;\n if (isBlob(image)) {\n chatImageFile = await this.getArrayBufferFromBlob(image);\n } else if (isReadableStream(image)) {\n chatImageFile = await this.getArrayBufferFromReadableStream(image);\n }\n result = await this.client.chatThread.uploadChatImage(this.threadId, chatImageFile, {\n imageFilename,\n ...updatedOptions,\n });\n }\n return result;\n },\n );\n }\n\n /**\n * Deletes an image identified by threadId and imageId\n * @param imageId - The image id of the image.\n * @param options - Operation options.\n */\n public deleteImage(imageId: string, options: DeleteImageOptions = {}): Promise<void> {\n return tracingClient.withSpan(\n \"ChatThreadClient-DeleteImage\",\n options,\n async (updatedOptions: ChatThreadDeleteChatImageOptionalParams | undefined) => {\n await this.client.chatThread.deleteChatImage(this.threadId, imageId, updatedOptions);\n },\n );\n }\n\n private supportsReadableStream(): boolean {\n let duplexAccessed = false;\n const hasContentType = new Request(\"\", {\n body: new ReadableStream(),\n method: \"POST\",\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n get duplex() {\n duplexAccessed = true;\n return \"half\";\n },\n }).headers.has(\"Content-Type\");\n return duplexAccessed && !hasContentType;\n }\n\n private async getArrayBufferFromReadableStream(\n body: ReadableStream<Uint8Array>,\n ): Promise<ArrayBuffer> {\n const arrayBuffer = await new Response(body).arrayBuffer();\n return new Uint8Array(arrayBuffer);\n }\n\n private async getArrayBufferFromBlob(body: Blob): Promise<ArrayBuffer> {\n return new Uint8Array(await body.arrayBuffer());\n }\n}\n"]}
1
+ {"version":3,"file":"chatThreadClient.js","sourceRoot":"","sources":["../../src/chatThreadClient.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;;AAElC,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAK5C,OAAO,EAAE,gCAAgC,EAAE,MAAM,6BAA6B,CAAC;AAiB/E,OAAO,EACL,wCAAwC,EACxC,wBAAwB,EACxB,4BAA4B,EAC5B,iCAAiC,EACjC,wBAAwB,GACzB,MAAM,qBAAqB,CAAC;AAkB7B,OAAO,EACL,aAAa,GAEd,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,wCAAwC,EAAE,MAAM,oDAAoD,CAAC;AAC9G,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,MAAM,mCAAmC,GAAW,IAAI,CAAC;AAEzD;;GAEG;AACH,MAAM,OAAO,gBAAgB;IAW3B,YACmB,QAAgB,EACjC,QAAgB,EAChB,UAAwC,EACxC,UAAmC,EAAE;QAHpB,aAAQ,GAAR,QAAQ,CAAQ;QAH3B,4BAAuB,GAAqB,SAAS,CAAC;QAQ5D,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC;QAElC,MAAM,uBAAuB,mCACxB,OAAO,GACP;YACD,cAAc,EAAE;gBACd,MAAM,EAAE,MAAM,CAAC,IAAI;aACpB;SACF,CACF,CAAC;QAEF,IAAI,CAAC,MAAM,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,kBAC3C,QAAQ,EAAE,IAAI,CAAC,QAAQ,IACpB,uBAAuB,EAC1B,CAAC;QAEH,MAAM,UAAU,GAAG,wCAAwC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAClF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC7C,CAAC;IAED;;;;OAIG;IACI,aAAa,CAAC,UAAgC,EAAE;QACrD,OAAO,aAAa,CAAC,QAAQ,CAAC,0BAA0B,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;YAC1F,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,uBAAuB,CACjE,IAAI,CAAC,QAAQ,EACb,cAAc,CACf,CAAC;YACF,OAAO,iCAAiC,CAAC,MAAM,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACI,WAAW,CAAC,KAAa,EAAE,UAA8B,EAAE;QAChE,OAAO,aAAa,CAAC,QAAQ,CAC3B,8BAA8B,EAC9B,OAAO,EACP,KAAK,EAAE,cAA8E,EAAE,EAAE;YACvF,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,0BAA0B,CACrD,IAAI,CAAC,QAAQ,EACb,EAAE,KAAK,EAAE,KAAK,EAAE,EAChB,cAAc,CACf,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,8EAA8E;IAC9E,8DAA8D;IACvD,gBAAgB,CAAC,UAA6C,EAAE;QACrE,OAAO,aAAa,CAAC,QAAQ,CAC3B,mCAAmC,EACnC,OAAO,EACP,KAAK,EAAE,cAA8E,EAAE,EAAE;YACvF,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,0BAA0B,CACrD,IAAI,CAAC,QAAQ,EACb,OAAO,EACP,cAAc,CACf,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACI,WAAW,CAChB,OAA2B,EAC3B,UAA8B,EAAE;QAEhC,OAAO,aAAa,CAAC,QAAQ,CAC3B,8BAA8B,EAC9B,OAAO,EACP,KAAK,EAAE,cAAc,EAAE,EAAE;YACvB,kCAAkC;YAClC,IAAI,CAAC,uBAAuB,GAAG,SAAS,CAAC;YAEzC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe,CACzD,IAAI,CAAC,QAAQ,kCACR,OAAO,GAAK,OAAO,GACxB,cAAc,CACf,CAAC;YACF,OAAO,MAAM,CAAC;QAChB,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACI,UAAU,CAAC,SAAiB,EAAE,UAA6B,EAAE;QAClE,OAAO,aAAa,CAAC,QAAQ,CAC3B,6BAA6B,EAC7B,OAAO,EACP,KAAK,EAAE,cAAc,EAAE,EAAE;YACvB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,CACxD,IAAI,CAAC,QAAQ,EACb,SAAS,EACT,cAAc,CACf,CAAC;YACF,OAAO,wBAAwB,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC,CACF,CAAC;IACJ,CAAC;IAEc,gBAAgB;8EAC7B,YAA8B,EAC9B,UAA+B,EAAE;YAEjC,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,CAAC;gBACpC,MAAM,kBAAkB,GAAG,cAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,gBAAgB,CACtE,IAAI,CAAC,QAAQ,EACb,OAAO,CACR,CAAA,CAAC;gBACF,YAAY,CAAC,iBAAiB,GAAG,kBAAkB,CAAC,QAAQ,CAAC;gBAC7D,IAAI,kBAAkB,CAAC,KAAK,EAAE,CAAC;oBAC7B,oBAAM,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAA,CAAC;gBACrE,CAAC;YACH,CAAC;YAED,OAAO,YAAY,CAAC,iBAAiB,EAAE,CAAC;gBACtC,MAAM,kBAAkB,GAAG,cAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,oBAAoB,CAC1E,IAAI,CAAC,QAAQ,EACb,YAAY,CAAC,iBAAiB,EAC9B,OAAO,CACR,CAAA,CAAC;gBACF,YAAY,CAAC,iBAAiB,GAAG,kBAAkB,CAAC,QAAQ,CAAC;gBAC7D,IAAI,kBAAkB,CAAC,KAAK,EAAE,CAAC;oBAC7B,oBAAM,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAA,CAAC;gBACrE,CAAC;qBAAM,CAAC;oBACN,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;KAAA;IAEc,eAAe,CAAC,OAA4B;;;;gBACzD,KAAyB,eAAA,KAAA,cAAA,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA,IAAA,+DAAE,CAAC;oBAArC,cAAkC;oBAAlC,WAAkC;oBAAhD,MAAM,IAAI,KAAA,CAAA;oBACnB,cAAA,KAAK,CAAC,CAAC,iBAAA,cAAA,IAAI,CAAA,CAAA,CAAA,CAAC;gBACd,CAAC;;;;;;;;;QACH,CAAC;KAAA;IAED;;;;OAIG;IACI,YAAY,CAAC,UAA+B,EAAE;QACnD,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,aAAa,CAAC,SAAS,CACtD,+BAA+B,EAC/B,OAAO,CACR,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;YAClD,OAAO;gBACL,IAAI;oBACF,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;gBACrB,CAAC;gBACD,CAAC,MAAM,CAAC,aAAa,CAAC;oBACpB,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,MAAM,EAAE,CAAC,WAA6B,EAAE,EAAE,EAAE;oBAC1C,OAAO,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;gBACzD,CAAC;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAI,CAAC,SAAS,CAAC;gBACb,MAAM,EAAE,OAAO;gBACf,KAAK,EAAE,CAAC;aACT,CAAC,CAAC;YACH,MAAM,CAAC,CAAC;QACV,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,aAAa,CAAC,SAAiB,EAAE,UAAgC,EAAE;QACxE,OAAO,aAAa,CAAC,QAAQ,CAC3B,gCAAgC,EAChC,OAAO,EACP,KAAK,EAAE,cAAc,EAAE,EAAE;YACvB,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;QAC3F,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,aAAa,CAAC,SAAiB,EAAE,UAAgC,EAAE;QAC9E,OAAO,aAAa,CAAC,QAAQ,CAC3B,gCAAgC,EAChC,OAAO,EACP,KAAK,EAAE,cAAc,EAAE,EAAE;YACvB,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAC5C,IAAI,CAAC,QAAQ,EACb,SAAS,EACT,OAAO,EACP,cAAc,CACf,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,eAAe,CAC1B,OAA+B,EAC/B,UAAkC,EAAE;QAEpC,OAAO,aAAa,CAAC,QAAQ,CAC3B,kCAAkC,EAClC,OAAO,EACP,KAAK,EAAE,cAAc,EAAE,EAAE;YACvB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,mBAAmB,CAC7D,IAAI,CAAC,QAAQ,EACb,wCAAwC,CAAC,OAAO,CAAC,EACjD,cAAc,CACf,CAAC;YACF,OAAO,MAAM,CAAC;QAChB,CAAC,CACF,CAAC;IACJ,CAAC;IAEc,oBAAoB;kFACjC,iBAAmC,EACnC,UAAmC,EAAE;YAErC,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,CAAC;gBACzC,MAAM,kBAAkB,GAAG,cAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,oBAAoB,CAC1E,IAAI,CAAC,QAAQ,EACb,OAAO,CACR,CAAA,CAAC;gBACF,iBAAiB,CAAC,iBAAiB,GAAG,kBAAkB,CAAC,QAAQ,CAAC;gBAClE,IAAI,kBAAkB,CAAC,KAAK,EAAE,CAAC;oBAC7B,oBAAM,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,4BAA4B,EAAE,IAAI,CAAC,CAAA,CAAC;gBACzE,CAAC;YACH,CAAC;YAED,OAAO,iBAAiB,CAAC,iBAAiB,EAAE,CAAC;gBAC3C,MAAM,kBAAkB,GAAG,cAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,wBAAwB,CAC9E,IAAI,CAAC,QAAQ,EACb,iBAAiB,CAAC,iBAAiB,EACnC,OAAO,CACR,CAAA,CAAC;gBACF,iBAAiB,CAAC,iBAAiB,GAAG,kBAAkB,CAAC,QAAQ,CAAC;gBAClE,IAAI,kBAAkB,CAAC,KAAK,EAAE,CAAC;oBAC7B,oBAAM,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,4BAA4B,EAAE,IAAI,CAAC,CAAA,CAAC;gBACzE,CAAC;qBAAM,CAAC;oBACN,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;KAAA;IAEc,mBAAmB,CAChC,OAAgC;;;;gBAEhC,KAAyB,eAAA,KAAA,cAAA,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA,IAAA,+DAAE,CAAC;oBAAzC,cAAsC;oBAAtC,WAAsC;oBAApD,MAAM,IAAI,KAAA,CAAA;oBACnB,cAAA,KAAK,CAAC,CAAC,iBAAA,cAAA,IAAI,CAAA,CAAA,CAAA,CAAC;gBACd,CAAC;;;;;;;;;QACH,CAAC;KAAA;IAED;;;;OAIG;IACI,gBAAgB,CACrB,UAAmC,EAAE;QAErC,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,aAAa,CAAC,SAAS,CACtD,mCAAmC,EACnC,OAAO,CACR,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;YACtD,OAAO;gBACL,IAAI;oBACF,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;gBACrB,CAAC;gBACD,CAAC,MAAM,CAAC,aAAa,CAAC;oBACpB,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,MAAM,EAAE,CAAC,WAA6B,EAAE,EAAE,EAAE;oBAC1C,OAAO,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;gBAC7D,CAAC;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAI,CAAC,SAAS,CAAC;gBACb,MAAM,EAAE,OAAO;gBACf,KAAK,EAAE,CAAC;aACT,CAAC,CAAC;YACH,MAAM,CAAC,CAAC;QACV,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,iBAAiB,CAC5B,WAAoC,EACpC,UAAoC,EAAE;QAEtC,OAAO,aAAa,CAAC,QAAQ,CAC3B,oCAAoC,EACpC,OAAO,EACP,KAAK,EAAE,cAAc,EAAE,EAAE;YACvB,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,qBAAqB,CAChD,IAAI,CAAC,QAAQ,EACb,gCAAgC,CAAC,WAAW,CAAC,EAC7C,cAAc,CACf,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,sBAAsB,CACjC,UAAyC,EAAE;QAE3C,OAAO,aAAa,CAAC,QAAQ,CAC3B,yCAAyC,EACzC,OAAO,EACP,KAAK,EAAE,cAAc,EAAE,EAAE;YACvB,MAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;YAC3B,MAAM,EAAE,iBAAiB,KAAqB,cAAc,EAA9B,WAAW,UAAK,cAAc,EAAtD,qBAAqC,CAAiB,CAAC;YAE7D,IAAI,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC5C,IAAI,CAAC,uBAAuB,GAAG,OAAO,CAAC;gBAEvC,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,sBAAsB,CAAC,IAAI,CAAC,QAAQ,kBAC/D,6BAA6B,EAAE,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,IACpE,WAAW,EACd,CAAC;gBACH,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,4CAA4C,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;YAC1E,OAAO,KAAK,CAAC;QACf,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,eAAe,CAC1B,OAA+B,EAC/B,UAAkC,EAAE;QAEpC,OAAO,aAAa,CAAC,QAAQ,CAC3B,kCAAkC,EAClC,OAAO,EACP,KAAK,EAAE,cAAc,EAAE,EAAE;YACvB,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;QAC3F,CAAC,CACF,CAAC;IACJ,CAAC;IAEc,oBAAoB;kFACjC,iBAAmC,EACnC,UAAmC,EAAE;YAErC,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,CAAC;gBACzC,MAAM,kBAAkB,GAAG,cAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,oBAAoB,CAC1E,IAAI,CAAC,QAAQ,EACb,OAAO,CACR,CAAA,CAAC;gBACF,iBAAiB,CAAC,iBAAiB,GAAG,kBAAkB,CAAC,QAAQ,CAAC;gBAClE,IAAI,kBAAkB,CAAC,KAAK,EAAE,CAAC;oBAC7B,oBAAM,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAA,CAAC;gBACrE,CAAC;YACH,CAAC;YAED,OAAO,iBAAiB,CAAC,iBAAiB,EAAE,CAAC;gBAC3C,MAAM,kBAAkB,GAAG,cAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,wBAAwB,CAC9E,IAAI,CAAC,QAAQ,EACb,iBAAiB,CAAC,iBAAiB,EACnC,OAAO,CACR,CAAA,CAAC;gBACF,iBAAiB,CAAC,iBAAiB,GAAG,kBAAkB,CAAC,QAAQ,CAAC;gBAClE,IAAI,kBAAkB,CAAC,KAAK,EAAE,CAAC;oBAC7B,oBAAM,kBAAkB,CAAC,KAAK,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAA,CAAC;gBACrE,CAAC;qBAAM,CAAC;oBACN,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;KAAA;IAEc,mBAAmB,CAChC,OAAgC;;;;gBAEhC,KAAyB,eAAA,KAAA,cAAA,IAAI,CAAC,oBAAoB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA,IAAA,+DAAE,CAAC;oBAAzC,cAAsC;oBAAtC,WAAsC;oBAApD,MAAM,IAAI,KAAA,CAAA;oBACnB,cAAA,KAAK,CAAC,CAAC,iBAAA,cAAA,IAAI,CAAA,CAAA,CAAA,CAAC;gBACd,CAAC;;;;;;;;;QACH,CAAC;KAAA;IAED;;;;OAIG;IACI,gBAAgB,CACrB,UAAmC,EAAE;QAErC,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,aAAa,CAAC,SAAS,CACtD,uCAAuC,EACvC,OAAO,CACR,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;YACtD,OAAO;gBACL,IAAI;oBACF,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;gBACrB,CAAC;gBACD,CAAC,MAAM,CAAC,aAAa,CAAC;oBACpB,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,MAAM,EAAE,CAAC,WAA6B,EAAE,EAAE,EAAE;oBAC1C,OAAO,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;gBAC7D,CAAC;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAI,CAAC,SAAS,CAAC;gBACb,MAAM,EAAE,OAAO;gBACf,KAAK,EAAE,CAAC;aACT,CAAC,CAAC;YACH,MAAM,CAAC,CAAC;QACV,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,GAAG,EAAE,CAAC;QACb,CAAC;IACH,CAAC;IAEO,yBAAyB,CAAC,OAAa;QAC7C,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;YACjC,MAAM,kCAAkC,GACtC,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,CAAC;YAE7D,IAAI,kCAAkC,GAAG,mCAAmC,EAAE,CAAC;gBAC7E,MAAM,CAAC,IAAI,CAAC,+CAA+C,IAAI,CAAC,uBAAuB,GAAG,CAAC,CAAC;gBAC5F,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nimport { logger } from \"./models/logger.js\";\nimport type {\n CommunicationIdentifier,\n CommunicationTokenCredential,\n} from \"@azure/communication-common\";\nimport { serializeCommunicationIdentifier } from \"@azure/communication-common\";\nimport type { PagedAsyncIterableIterator } from \"@azure/core-paging\";\nimport type {\n AddParticipantsRequest,\n SendMessageRequest,\n SendReadReceiptRequest,\n} from \"./models/requests.js\";\n\nimport type {\n AddChatParticipantsResult,\n ChatMessage,\n ChatMessageReadReceipt,\n ChatParticipant,\n ChatThreadProperties,\n ListPageSettings,\n SendChatMessageResult,\n} from \"./models/models.js\";\nimport {\n mapToAddChatParticipantsRequestRestModel,\n mapToChatMessageSdkModel,\n mapToChatParticipantSdkModel,\n mapToChatThreadPropertiesSdkModel,\n mapToReadReceiptSdkModel,\n} from \"./models/mappers.js\";\nimport type {\n AddParticipantsOptions,\n ChatThreadClientOptions,\n DeleteMessageOptions,\n GetMessageOptions,\n GetPropertiesOptions,\n ListMessagesOptions,\n ListParticipantsOptions,\n ListReadReceiptsOptions,\n RemoveParticipantOptions,\n SendMessageOptions,\n SendReadReceiptOptions,\n SendTypingNotificationOptions,\n UpdateChatThreadPropertiesOptions,\n UpdateMessageOptions,\n UpdateTopicOptions,\n} from \"./models/options.js\";\nimport {\n ChatApiClient,\n ChatThreadUpdateChatThreadPropertiesOptionalParams,\n} from \"./generated/src/index.js\";\nimport type { InternalPipelineOptions } from \"@azure/core-rest-pipeline\";\nimport { createCommunicationTokenCredentialPolicy } from \"./credential/communicationTokenCredentialPolicy.js\";\nimport { tracingClient } from \"./generated/src/tracing.js\";\n\nconst minimumTypingIntervalInMilliSeconds: number = 8000;\n\n/**\n * The client to do chat operations\n */\nexport class ChatThreadClient {\n /**\n * Thread ID of the ChatThreadClient\n */\n readonly threadId: string;\n\n private readonly tokenCredential: CommunicationTokenCredential;\n private readonly client: ChatApiClient;\n\n private timeOfLastTypingRequest: Date | undefined = undefined;\n\n constructor(\n private readonly endpoint: string,\n threadId: string,\n credential: CommunicationTokenCredential,\n options: ChatThreadClientOptions = {},\n ) {\n this.threadId = threadId;\n this.tokenCredential = credential;\n\n const internalPipelineOptions: InternalPipelineOptions = {\n ...options,\n ...{\n loggingOptions: {\n logger: logger.info,\n },\n },\n };\n\n this.client = new ChatApiClient(this.endpoint, {\n endpoint: this.endpoint,\n ...internalPipelineOptions,\n });\n\n const authPolicy = createCommunicationTokenCredentialPolicy(this.tokenCredential);\n this.client.pipeline.addPolicy(authPolicy);\n }\n\n /**\n * Gets a chat thread.\n * Returns the chat thread.\n * @param options - Operation options.\n */\n public getProperties(options: GetPropertiesOptions = {}): Promise<ChatThreadProperties> {\n return tracingClient.withSpan(\"ChatClient-GetProperties\", options, async (updatedOptions) => {\n const result = await this.client.chatThread.getChatThreadProperties(\n this.threadId,\n updatedOptions,\n );\n return mapToChatThreadPropertiesSdkModel(result);\n });\n }\n\n /**\n * Updates a thread's topic.\n * @param topic - The topic needs to be updated to.\n * @param options - Operation options.\n */\n public updateTopic(topic: string, options: UpdateTopicOptions = {}): Promise<void> {\n return tracingClient.withSpan(\n \"ChatThreadClient-UpdateTopic\",\n options,\n async (updatedOptions: ChatThreadUpdateChatThreadPropertiesOptionalParams | undefined) => {\n await this.client.chatThread.updateChatThreadProperties(\n this.threadId,\n { topic: topic },\n updatedOptions,\n );\n },\n );\n }\n\n /**\n * Updates a thread's properties.\n * @param options - Operation options.\n */\n // beta release already named this option as UpdateChatThreadPropertiesOptions\n // eslint-disable-next-line @azure/azure-sdk/ts-naming-options\n public updateProperties(options: UpdateChatThreadPropertiesOptions = {}): Promise<void> {\n return tracingClient.withSpan(\n \"ChatThreadClient-UpdateProperties\",\n options,\n async (updatedOptions: ChatThreadUpdateChatThreadPropertiesOptionalParams | undefined) => {\n await this.client.chatThread.updateChatThreadProperties(\n this.threadId,\n options,\n updatedOptions,\n );\n },\n );\n }\n\n /**\n * Sends a chat message to a thread identified by threadId.\n * Returns the id of the created message.\n * @param request - Request for sending a message.\n * @param options - Operation options.\n */\n public sendMessage(\n request: SendMessageRequest,\n options: SendMessageOptions = {},\n ): Promise<SendChatMessageResult> {\n return tracingClient.withSpan(\n \"ChatThreadClient-SendMessage\",\n options,\n async (updatedOptions) => {\n // reset typing notification clock\n this.timeOfLastTypingRequest = undefined;\n\n const result = await this.client.chatThread.sendChatMessage(\n this.threadId,\n { ...request, ...options },\n updatedOptions,\n );\n return result;\n },\n );\n }\n\n /**\n * Gets a chat message identified by messageId.\n * Returns the specific message.\n * @param messageId - The message id of the message.\n * @param options - Operation options.\n */\n public getMessage(messageId: string, options: GetMessageOptions = {}): Promise<ChatMessage> {\n return tracingClient.withSpan(\n \"ChatThreadClient-GetMessage\",\n options,\n async (updatedOptions) => {\n const result = await this.client.chatThread.getChatMessage(\n this.threadId,\n messageId,\n updatedOptions,\n );\n return mapToChatMessageSdkModel(result);\n },\n );\n }\n\n private async *listMessagesPage(\n pageSettings: ListPageSettings,\n options: ListMessagesOptions = {},\n ): AsyncIterableIterator<ChatMessage[]> {\n if (!pageSettings.continuationToken) {\n const currentSetResponse = await this.client.chatThread.listChatMessages(\n this.threadId,\n options,\n );\n pageSettings.continuationToken = currentSetResponse.nextLink;\n if (currentSetResponse.value) {\n yield currentSetResponse.value.map(mapToChatMessageSdkModel, this);\n }\n }\n\n while (pageSettings.continuationToken) {\n const currentSetResponse = await this.client.chatThread.listChatMessagesNext(\n this.threadId,\n pageSettings.continuationToken,\n options,\n );\n pageSettings.continuationToken = currentSetResponse.nextLink;\n if (currentSetResponse.value) {\n yield currentSetResponse.value.map(mapToChatMessageSdkModel, this);\n } else {\n break;\n }\n }\n }\n\n private async *listMessagesAll(options: ListMessagesOptions): AsyncIterableIterator<ChatMessage> {\n for await (const page of this.listMessagesPage({}, options)) {\n yield* page;\n }\n }\n\n /**\n * Gets a list of message from a thread identified by threadId.\n * Returns the list of the messages.\n * @param options - Get messages options.\n */\n public listMessages(options: ListMessagesOptions = {}): PagedAsyncIterableIterator<ChatMessage> {\n const { span, updatedOptions } = tracingClient.startSpan(\n \"ChatThreadClient-ListMessages\",\n options,\n );\n\n try {\n const iter = this.listMessagesAll(updatedOptions);\n return {\n next() {\n return iter.next();\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n byPage: (settings: ListPageSettings = {}) => {\n return this.listMessagesPage(settings, updatedOptions);\n },\n };\n } catch (e: any) {\n span.setStatus({\n status: \"error\",\n error: e,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Deletes a message identified by threadId and messageId\n * @param messageId - The message id of the message.\n * @param options - Operation options.\n */\n public deleteMessage(messageId: string, options: DeleteMessageOptions = {}): Promise<void> {\n return tracingClient.withSpan(\n \"ChatThreadClient-DeleteMessage\",\n options,\n async (updatedOptions) => {\n await this.client.chatThread.deleteChatMessage(this.threadId, messageId, updatedOptions);\n },\n );\n }\n\n /**\n * Updates a message identified by threadId and messageId\n * @param messageId - The message id of the message.\n * @param options - Operation options.\n */\n public async updateMessage(messageId: string, options: UpdateMessageOptions = {}): Promise<void> {\n return tracingClient.withSpan(\n \"ChatThreadClient-UpdateMessage\",\n options,\n async (updatedOptions) => {\n await this.client.chatThread.updateChatMessage(\n this.threadId,\n messageId,\n options,\n updatedOptions,\n );\n },\n );\n }\n\n /**\n * Adds the details of chat participants belonging to the thread identified by threadId.\n * @param request - Thread participants' details to add in the thread roster\n * @param options - Operation options.\n */\n public async addParticipants(\n request: AddParticipantsRequest,\n options: AddParticipantsOptions = {},\n ): Promise<AddChatParticipantsResult> {\n return tracingClient.withSpan(\n \"ChatThreadClient-AddParticipants\",\n options,\n async (updatedOptions) => {\n const result = await this.client.chatThread.addChatParticipants(\n this.threadId,\n mapToAddChatParticipantsRequestRestModel(request),\n updatedOptions,\n );\n return result;\n },\n );\n }\n\n private async *listParticipantsPage(\n continuationState: ListPageSettings,\n options: ListParticipantsOptions = {},\n ): AsyncIterableIterator<ChatParticipant[]> {\n if (!continuationState.continuationToken) {\n const currentSetResponse = await this.client.chatThread.listChatParticipants(\n this.threadId,\n options,\n );\n continuationState.continuationToken = currentSetResponse.nextLink;\n if (currentSetResponse.value) {\n yield currentSetResponse.value.map(mapToChatParticipantSdkModel, this);\n }\n }\n\n while (continuationState.continuationToken) {\n const currentSetResponse = await this.client.chatThread.listChatParticipantsNext(\n this.threadId,\n continuationState.continuationToken,\n options,\n );\n continuationState.continuationToken = currentSetResponse.nextLink;\n if (currentSetResponse.value) {\n yield currentSetResponse.value.map(mapToChatParticipantSdkModel, this);\n } else {\n break;\n }\n }\n }\n\n private async *listParticipantsAll(\n options: ListParticipantsOptions,\n ): AsyncIterableIterator<ChatParticipant> {\n for await (const page of this.listParticipantsPage({}, options)) {\n yield* page;\n }\n }\n\n /**\n * Gets the participants of the thread identified by threadId.\n * Returns the lists of the participants.\n * @param options - Operation options.\n */\n public listParticipants(\n options: ListParticipantsOptions = {},\n ): PagedAsyncIterableIterator<ChatParticipant> {\n const { span, updatedOptions } = tracingClient.startSpan(\n \"ChatThreadClient-ListParticipants\",\n options,\n );\n\n try {\n const iter = this.listParticipantsAll(updatedOptions);\n return {\n next() {\n return iter.next();\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n byPage: (settings: ListPageSettings = {}) => {\n return this.listParticipantsPage(settings, updatedOptions);\n },\n };\n } catch (e: any) {\n span.setStatus({\n status: \"error\",\n error: e,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n /**\n * Removes participant from the thread identified by threadId.\n * @param participant - Thread participant to remove from the thread roster\n * @param options - Operation options.\n */\n public async removeParticipant(\n participant: CommunicationIdentifier,\n options: RemoveParticipantOptions = {},\n ): Promise<void> {\n return tracingClient.withSpan(\n \"ChatThreadClient-RemoveParticipant\",\n options,\n async (updatedOptions) => {\n await this.client.chatThread.removeChatParticipant(\n this.threadId,\n serializeCommunicationIdentifier(participant),\n updatedOptions,\n );\n },\n );\n }\n\n /**\n * Sends a typing notification to the thread.\n * Doesn't attempt to send if the time since last notification is smaller than the minimum typing interval\n * @param options - - Operation options\n * @returns True if the typing message notification could be sent, otherwise false.\n */\n public async sendTypingNotification(\n options: SendTypingNotificationOptions = {},\n ): Promise<boolean> {\n return tracingClient.withSpan(\n \"ChatThreadClient-SendTypingNotification\",\n options,\n async (updatedOptions) => {\n const dateNow = new Date();\n const { senderDisplayName, ...restOptions } = updatedOptions;\n\n if (this.canPostTypingNotification(dateNow)) {\n this.timeOfLastTypingRequest = dateNow;\n\n await this.client.chatThread.sendTypingNotification(this.threadId, {\n sendTypingNotificationRequest: { senderDisplayName: senderDisplayName },\n ...restOptions,\n });\n return true;\n }\n\n logger.info(`Typing Notification NOT Send. [thread_id=${this.threadId}]`);\n return false;\n },\n );\n }\n\n /**\n * Sends a read receipt to the thread identified by threadId.\n * @param request - Request for sending a read receipt\n * @param options - Operation options.\n */\n public async sendReadReceipt(\n request: SendReadReceiptRequest,\n options: SendReadReceiptOptions = {},\n ): Promise<void> {\n return tracingClient.withSpan(\n \"ChatThreadClient-SendReadReceipt\",\n options,\n async (updatedOptions) => {\n await this.client.chatThread.sendChatReadReceipt(this.threadId, request, updatedOptions);\n },\n );\n }\n\n private async *listReadReceiptsPage(\n continuationState: ListPageSettings,\n options: ListReadReceiptsOptions = {},\n ): AsyncIterableIterator<ChatMessageReadReceipt[]> {\n if (!continuationState.continuationToken) {\n const currentSetResponse = await this.client.chatThread.listChatReadReceipts(\n this.threadId,\n options,\n );\n continuationState.continuationToken = currentSetResponse.nextLink;\n if (currentSetResponse.value) {\n yield currentSetResponse.value.map(mapToReadReceiptSdkModel, this);\n }\n }\n\n while (continuationState.continuationToken) {\n const currentSetResponse = await this.client.chatThread.listChatReadReceiptsNext(\n this.threadId,\n continuationState.continuationToken,\n options,\n );\n continuationState.continuationToken = currentSetResponse.nextLink;\n if (currentSetResponse.value) {\n yield currentSetResponse.value.map(mapToReadReceiptSdkModel, this);\n } else {\n break;\n }\n }\n }\n\n private async *listReadReceiptsAll(\n options: ListReadReceiptsOptions,\n ): AsyncIterableIterator<ChatMessageReadReceipt> {\n for await (const page of this.listReadReceiptsPage({}, options)) {\n yield* page;\n }\n }\n\n /**\n * Gets a list of read receipt from a thread identified by threadId.\n * Returns the list of the messages.\n * @param options - Get messages options.\n */\n public listReadReceipts(\n options: ListReadReceiptsOptions = {},\n ): PagedAsyncIterableIterator<ChatMessageReadReceipt> {\n const { span, updatedOptions } = tracingClient.startSpan(\n \"ChatThreadClient-ListChatReadReceipts\",\n options,\n );\n\n try {\n const iter = this.listReadReceiptsAll(updatedOptions);\n return {\n next() {\n return iter.next();\n },\n [Symbol.asyncIterator]() {\n return this;\n },\n byPage: (settings: ListPageSettings = {}) => {\n return this.listReadReceiptsPage(settings, updatedOptions);\n },\n };\n } catch (e: any) {\n span.setStatus({\n status: \"error\",\n error: e,\n });\n throw e;\n } finally {\n span.end();\n }\n }\n\n private canPostTypingNotification(dateNow: Date): boolean {\n if (this.timeOfLastTypingRequest) {\n const timeSinceLastRequestInMilliSeconds =\n dateNow.getTime() - this.timeOfLastTypingRequest.getTime();\n\n if (timeSinceLastRequestInMilliSeconds < minimumTypingIntervalInMilliSeconds) {\n logger.info(`Typing interval check failed. [last_request=${this.timeOfLastTypingRequest}]`);\n return false;\n }\n }\n\n return true;\n }\n}\n"]}
@@ -25,7 +25,7 @@ export class ChatApiClient extends coreClient.ServiceClient {
25
25
  const defaults = {
26
26
  requestContentType: "application/json; charset=utf-8",
27
27
  };
28
- const packageDetails = `azsdk-js-communication-chat/1.6.0-beta.4`;
28
+ const packageDetails = `azsdk-js-communication-chat/1.6.0`;
29
29
  const userAgentPrefix = options.userAgentOptions && options.userAgentOptions.userAgentPrefix
30
30
  ? `${options.userAgentOptions.userAgentPrefix} ${packageDetails}`
31
31
  : `${packageDetails}`;
@@ -36,7 +36,7 @@ export class ChatApiClient extends coreClient.ServiceClient {
36
36
  // Parameter assignments
37
37
  this.endpoint = endpoint;
38
38
  // Assigning values to Constant parameters
39
- this.apiVersion = options.apiVersion || "2024-06-05-preview";
39
+ this.apiVersion = options.apiVersion || "2025-03-15";
40
40
  this.chatThread = new ChatThreadImpl(this);
41
41
  this.chat = new ChatImpl(this);
42
42
  this.addCustomApiVersionPolicy(options.apiVersion);